PMAC的下位机编程涉及三方面的内容:手动操作、运动(Program)程序和PLC程序。这里主要是介绍各个方面的基础编程方面的东西,还有许多需要自行去探索。
PMAC的下位机实际上是一种类Basic的编程语言,但是又类似汇编语言,所有变量的存储空间都是预先分配好的,操作的时候存储数据只能在指定的几种变量类型和变量名中存储,整个系统的参数也是存储在变量中。
变量类型和作用如下:
I变量:卡,电机和编码器等的参数变量,用于设置电机的速度,精度,回零等数值,以及坐标系的状态,编码器的反馈形式,PID参数等,一句话,设置系统参数就靠它。
举例子如下:
Ixx19->最大手动加速度限制
Ixx20->手动加速时间
Ixx22->手动速度
M变量:在PMAC工作时,会将当前运行状态(电机参数,编码器位置,IO参数)放到指定的内存中,我们要查看这部分参数,只需要用M变量绑定指定内存即可访问和设置,有点类似C语言的指针,不过一般的M参数我们都是在Pewin32中设置使用默认的M参数定义。
举例子如下:
读取电机状态->给定位置(mx61)、实际位置(mx62)、位置偏差(mx64) 其中x=1-16或1-24
读取I/O口状态->m11
P变量和Q变量:
&1 #6->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm)这样我们编程的时候,可以直接把当前运动想成现实坐标系的运动,比如我们想6轴电机正向运动10mm,8轴电机正向运动10mm,那么完整的程序如下:
;程序功能:实现XY平台6、8轴的直线运动。 ;********************************************************************** CLOSE ;确认所有缓冲区被关闭 &1 #6->819.2Y ;机械手Y向,单位mm,(819.2=8192/10,丝杆导程为10mm) #8->819.2X ;机械手X向,单位mm,(819.2=8192/10,丝杆导程为10mm) ;~~~~~~~~~~~~~~~~~~~~~~~~~ 以下部分为运动程序 ~~~~~~~~~~~~~~~~~~~~~~~ OPEN PROG 30 CLEAR ;定义矩形运动的运动参数 LINEAR ;直线运动模式 ABS ;采用绝对坐标 TA(200) ;加速时间,单位:毫秒 TS(50) ;S曲线加速时间,单位:毫秒 F(50) ;运动速度单位:单位距离/单位时间,单位距离由轴定义确定,单位时间由I5390或I5490确定 X(10) Y(10) CLOSE
;程序功能:实现XY平台6、8轴的停止 ;********************************************************************** CLOSE ;确认所有缓冲区被关闭 ;~~~~~~~~~~~~~~~~~~~~~~~~~ 以下部分为运动程序 ~~~~~~~~~~~~~~~~~~~~~~~ OPEN PLC 2 CLEAR If (p1000=1);检测p1000的值,据此确认程序是否停止 CMD "&1A" COMMAND^K DISABLE PLC 2 EndIf CLOSE ENABLE PLC 2
原文地址:http://blog.csdn.net/wenzhou1219/article/details/44118187