[西门子] 三轴多点搬运控制案例(含插补算法)

[复制链接]
查看224 | 回复0 | 2024-6-25 22:04:43 | 显示全部楼层 |阅读模式
>导读:在工业自动化中,通常会使用步进或者伺服电机来来实现设备的点胶、搬运等,那么针对这种设备我们该如何编程呢?

一、控制要求
①手动可以控制X、Y、Z轴的点动
②按下回原点按钮,设备开始回原点
③HMI上手动示教抓取基准点和放置基准点
④示教完后,按下启动按钮,开始进行搬运
专栏中更多精彩案例,可提供源程序!!!



二、程序设计
手动控制程序( FC4 )
1.程序段1、2、3、4分别实现的是轴使能、回原点、点动以及复位功能。




抓取位置计算( FC1 )
抓取位置计算程序使用SCL的FOR循环来做会更加方便,总共需要搬运的是8个产品,产品之间的距离是50mm,每个产品的位置点由三个位置数据(X、Y、Z),所以可以利用3个FOR循环的嵌套来做,这样可以便于下次多个物料堆叠的情况可以直接更改循环次数即可。
第一个产品的位置为:(X:=0, Y:=0, Z:=0)
第二个产品的位置为:(X:=0, Y:=50, Z:=0)
第二个产品的位置为:(X:=0, Y:=100, Z:=0)
第二个产品的位置为:(X:=0, Y:=150, Z:=0)


放置位置计算( FC2 )


直线插补( FC5 )
设计思路:
1)假如我们需要画出从C点到A点所示的斜线,这个时候可以把轴位移的距离进行分解,如图2中可以看到C点的位置X=0,Y=0。而轴从C点走到A点可以算出X轴的位移是15mm,Y轴上的位移是30mm。X轴和Y轴位移距离是不一样的,但是X轴和Y轴都有速度,根据X轴移动距离=V1*t,Y轴移动距离=V1*t公式。可以得出:当改变X轴和Y轴的速度时,可以使两轴同时到达。注:V1为X轴的速度,V2为Y轴的速度,t为时间。
2)根据项目控制需求,两个轴需要同时到达一个点上,到达的时间必须一致才行,而两轴所移动的距离不一定一致,因此需要运算每个轴的运行移动速度;我们可以把每个轴的移动距离/移动距离则得到运行移动的时间,公式如下所示:

根据上述公式,我们还得运算其移动距离才行,可以根据X轴的目标位置和当前位置求移动距离;根据Y轴的目标位置和当前位置,求移动距离;为了避免移动距离运算结果为负值,需要取其绝对值。
X轴移动距离=X轴目标位置-X轴当前位置。
Y轴移动距离=Y轴目标位置-Y轴当前位置。
计算运行移动速度,我们可设定一个运行速度,去运算另一个轴的移动速度,因此有可能存在三种情况。
①若X轴的移动距离> Y轴移动移动距离时,则X轴的运行移动速度为最大速度,计算Y轴移动速度。
②若Y轴的移动距离> X轴移动移动距离时,则Y轴的运行速度为最大速度,计算X轴速度。
③若Y轴的移动距离= X轴移动移动距离时,则Y轴移动速度=最大速度=X轴移动速度。

  • 程序设计:我们只需要根据设计思路中的第2点把它转换成PLC代码




主程序( OB1 )
程序段1是将相关数据初始化。
程度段2是调用FC1程序块,分别填写要搬运和放置的物料个数


程序段3:HMI上示教基准位置点(抓取点)
通过将XYZ轴手动移动(可以通过JOG指令实现)至第一个位置点,然后点击HMI上的示教,把相关的点位传送给基准位置的X和Y及Z。MD22,MD26,MD30来源于轴的当前位置
程度段4:HMI上示教基准位置点(放置点)
通过将XYZ轴手动移动(可以通过JOG指令实现)至第一个位置点,然后点击HMI上的示教,把相关的点位传送给基准位置的X和Y及Z。MD22,MD26,MD30来源于轴的当前位置

程度段5:抓取
抓取点分三步:
1.移动至抓取上方点   
2.移动至抓取点  
3.移动至抓取上方点,其中第一和第二步都是Z轴偏移100.0mm





抓取位置定位

程度段9:放置
抓取点分三步:
1.移动至放置上方点   
2.移动至放置点  
3.移动至放置上方点,其中第一和第二步都是Z轴偏移100.0mm







程度段14是示教
示教功能主要是实现起始点的定义,也就是我们人为的将轴移动到相关位置,然后点击触摸屏上的“示教”按钮从而记住位置







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则