基于PLC等控制伺服3点坐标系计算

发布于:2023-01-02 ⋅ 阅读:(744) ⋅ 点赞:(0)

如图所示,在XY坐标是不规则的托盘,怎么实现输入一个点编号就能得到实际坐标值呢?

 首先必须托盘内每个工位(放置工件)是很规则的,间隔误差小于工装最大误差!

为了方便理解,我又重新用CAD绘制了2种常用的托盘:

 以上2种托盘,每种2个起始点不同,他们是怎么实现的?

设计思路:因为每个点,相对间距规则,所以相对机械坐标系XY方向的垂直点间距也是规则。找到各点的垂直点与起点的X方向或Y方向偏移值就可以得到该点所在机械坐标系位置。不需要使用过于复杂的数学函数算法,只需要使用加减乘除就可以实现了。

只要有点数学几何基础的相信看过上面图片,就知道怎么做了。

下面是我实现这个功能,做的程序:

定义3个点位坐标、X方向和Y方向数量和间距

格子左手前,算术如下:

c=|X2-X|/b

d=|Y2-Y|/b

e=|X1-X|/a

f=|Y1-Y|/a

g=商(n/b)

h=(n/b)

'P10

X(P10)=e*1*(+1)+X

Y(P10)=f*1*(+1)+Y

'P11

X(P11)=e*2*(+1)+X

Y(P11)=f*2*(+1)+Y

'P20

X(P20)=e*3*(+1)+X

Y(P20)=f*3*(+1)+Y

'计算1-5排列坐标

IF 1<=n<=5 THEN

Xn=c*(n-1)*(-1)+X

Yn=d*(n-1)*(+1)+Y

ENDIF

'计算6-10排列坐标

IF 6<=n<=10 THEN

Xn=c*(10-n)*(-1)+X(P10)

Yn=d*(10-n)*(+1)+Y(P10)

ENDIF

'计算11-15排列坐标

IF 11<=n<=15 THEN

n1=n-11

Xn=c*(n1)*(-1)+X(P11)

Yn=d*(n1)*(+1)+Y(P11)

ENDIF

'计算16-20排列坐标

IF 16<=n<=20 THEN

Xn=c*(20-n)*(-1)+X(P20)

Yn=d*(20-n)*(+1)+Y(P20)

ENDIF

 

 格子右手前,算术如下:

c=|X2-X|/b

d=|Y2-Y|/b

e=|X1-X|/a

f=|Y1-Y|/a

g=商(n/b)

h=(n/b)

'P10

X(P10)=e*1*(-1)+X

Y(P10)=f*1*(-1)+Y

'P11

X(P11)=e*2*(-1)+X

Y(P11)=f*2*(-1)+Y

'P20

X(P20)=e*3*(-1)+X

Y(P20)=f*3*(-1)+Y

'计算1-5排列坐标

IF 1<=n<=5 THEN

Xn=c*(n-1)*(-1)+X

Yn=d*(n-1)*(+1)+Y

ENDIF

'计算6-10排列坐标

IF 6<=n<=10 THEN

Xn=c*(10-n)*(-1)+X(P10)

Yn=d*(10-n)*(+1)+Y(P10)

ENDIF

'计算11-15排列坐标

IF 11<=n<=15 THEN

n1=n-11

Xn=c*(n1)*(-1)+X(P11)

Yn=d*(n1)*(+1)+Y(P11)

ENDIF

'计算16-20排列坐标

IF 16<=n<=20 THEN

Xn=c*(20-n)*(-1)+X(P20)

Yn=d*(20-n)*(+1)+Y(P20)

ENDIF

 

c=|X2-X|/b

d=|Y2-Y|/b

e=|X1-X|/a

f=|Y1-Y|/a

g=商(n/b)

h=(n/b)

'P8

X(P8)=e*1*(+1)+X

Y(P8)=f*1*(+1)+Y

'P14

X(P14)=e*1*(+1)+X

Y(P14)=f*1*(+1)+Y

'计算1-3排列坐标

IF 1<=n<=3 THEN

Xn=c*(n-1)*(-1)+X

Yn=d*(n-1)*(+1)+Y

ENDIF

'计算4-7排列坐标

IF 4<=n<=7 THEN

Xn=c*(7-n)*(-1)+X(P7)

Yn=d*(7-n)*(+1)+Y(P7)

ENDIF

'计算8-10排列坐标

IF 8<=n<=10 THEN

n1=n-8

Xn=c*(n1)*(-1)+X(P8)

Yn=d*(n1)*(+1)+Y(P8)

ENDIF

'计算11-14排列坐标

IF 11<=n<=14 THEN

Xn=c*(14-n)*(-1)+X(P14)

Yn=d*(14-n)*(+1)+Y(P14)

ENDIF

'计算15-17排列坐标

IF 15<=n<=17 THEN

n1=n-15

Xn=c*(n1)*(-1)+X(P15)

Yn=d*(n1)*(+1)+Y(P15)

ENDIF

'计算18-21排列坐标

IF 18<=n<=21 THEN

Xn=c*(21-n)*(-1)+X(P21)

Yn=d*(21-n)*(+1)+Y(P21)

ENDIF

以上程序相信没有人会去认真算,也不用认真看,最重要的是知道原理就行。


网站公告

今日签到

点亮在社区的每一天
去签到