在调试有关机器人项目的时候,PLC那里的数据发给机器人有的需要做预处理,例如KUKA机器人,超过8位的数据,PLC发送前需经过SWAP指令处理一下,比如发送程序号,任务号,产品品规等数据时,这些数据一般在PLC当中是整数,双整数或者实数的类型。下面就以KUKA机器人作为案例,来具体谈谈。
解释一下SWAP指令
SWAP这个交换指令在指令集中的位置如下
具体作用:
我用红色字体做了标准,相当于做了个比方,PLC的整数通过二进制地址存放时,是从高地址开始的,而KUKA机器人例如,上图中1和2为Q0(Q0.0~0.7)和Q1(Q1.0~1.7),3和4为Q2(Q2.0~2.7)和Q3(Q3.0~3.7),PLC将双整数放入Q地址的时候,以二进制,先从Q3开始的,Q3存满后,存入Q2,依次Q1,Q0。而KUKA机器人处理数据将整数转化为二进制,先从Q0开始,依次Q1至Q3。
PLC中实验程序对比如下:例如传输一个整数11,数据类型为16位整数,这里先说明一下,实际项目中KUKA机器人里如果有整数型变量,一般是定义一个16位的组信号存放整数,具体机器人程序中定义如下图所示:
继续说PLC的程序
同样是11的整数,未经过转换是这样的:
经过转换后11的整数存放如下:
上面两张图对比发现,经过交换指令处理后,KUKA机器人输入端口就可直接读取数据,无需另写程序转换,例如任务号,品规等。
具体项目实例:
导入KUKA机器人GSD文件,分配IO
程序处理如下,程序中为SCL语言
QW600是发送给机器人的,是将IW104里的数据,经过了SWAP的交换处理.