6.PMAC下位机-下位机编程
1.命令序列程序
i620=200 i621=20 i622=10 #6j/这里先设置6轴电机的运动参数,然后激活电机,类似的写法经常用于PMAC参数的初始化中。
2.运动(Program)程序
为了便于编写运动程序,PMAC中使用一个坐标系的概念,比如有6号电机和8号电机,我们在一个的坐标系下将其分别映射到X和Y坐标,如下所示&1 #6->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm)这样我们编程的时候,可以直接把当前运动想成现实坐标系的运动,实际行我们在程序中指定X运动1个单位就是电机运动819.2个脉冲,换算成轴的运动距离就是1mm,这样编写程序简洁易懂。
&1 ;坐标系为1 CLOSE ;确认所有缓冲区被关闭 OPEN PROG 40 ;程序号为40 CLEAR ;;;;;;;;;;;;;;;;;;;;;运动程序主体-开始 ;;;;;;;;;;;;;;;;;;;;;运动程序主体-结束 CLOSE这些指令都是命令指令,所以他们都是在程序下载的时候运行,之间的运动程序主体会被写到特定的缓冲区,但是在这时候程序是不运行的。
&1 CLOSE ;确认所有缓冲区被关闭 #6->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #6j/ #8j/ OPEN PROG 40 CLEAR INC ;增量运动模式 X(10) Y(10) ;X正方向前进10mm,Y正方向前进10mm CLOSE注意这里,使用命令序列完成了轴的定义和电机的激活,但是中间的两行运动程序代码只是被写到对应的缓冲区,还没有执行。在terminal窗口输入命令&1b40r程序才运行。注意一个坐标系下关联的所有电机必须都激活,运动程序才能正常运行。在实际中,轴的定义和电机的激活最好放到单独的命令序列文件中。
&1 CLOSE ;确认所有缓冲区被关闭 #6->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #6j/ #8j/ OPEN PROG 40 CLEAR ;运动参数设置 TA(200) ;ms TS(20) ;ms F(50) ;mm/s ABS ;绝对模式 Linear ;直线运动 p1 = 0 While (p1 < 10) F(50) X(30) Y(10) F(10) X(10) Y(30) If (p1 > 2) Return EndIf p1=p1+1 EndWhile CLOSE上面程序的含义就是从当前位置以速度50mm/s直线运动到绝对坐标(30,10)的位置,再从当前位置以速度10mm/s直线运动到绝对坐标(10,30)的位置,如此循环,如果没有If语句的话,循环10次,但是这里加了If语句就只循环2次了。
3.PLC运动程序
&1 CLOSE ;确认所有缓冲区被关闭 #6->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #6j/ #8j/ OPEN PROG 40 CLEAR TA(200) ;ms TS(20) ;ms F(50) ;mm/s ABS ;绝对模式 Linear ;直线运动 p1 = 0 While (p1 < 10) F(50) X(30) Y(10) F(10) X(10) Y(30) p1=p1+1 EndWhile CLOSE
OPEN PLC 20 CLEAR If (p1 = 2) COMMAND "&1b40a" EndIf CLOSE enable plc 20
4.PMAC运动程序Lookhead功能
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。