kuka机器人编程中real数据为4byte,即对应32个IO。
库卡机器人使用profinet传输该real类型数据时,需将该real数据转化为对应的32位数据编码,可如以下编写:
1.定义数据
REAL DATA1
int offset
CHAR Bytes[4]
SIGNAL KUKA1 $OUT[256] TO $OUT[263]
SIGNAL KUKA2 $OUT[264] TO $OUT[271]
SIGNAL KUKA3 $OUT[272] TO $OUT[279]
SIGNAL KUKA4 $OUT[280] TO $OUT[287]
SIGNAL PLC1 $IN[256] TO $IN[263]
SIGNAL PLC2 $IN[264] TO $IN[271]
SIGNAL PLC3 $IN[272] TO $IN[279]
SIGNAL PLC4 $IN[280] TO $IN[287]
(OUT[256] 至OUT[287]为KUKA要发送的profinet数据IO,IN[256] 至IN[287]为KUKA要接收的profinet数据IO)
2.设置real数据
DATA1 = 7.891123
3.置位OUT[256] 至OUT[287],即发送数据
offset = 0
CAST_TO(Bytes[],offset,DATA1)
KUKA1 = Bytes[4]
KUKA2 = Bytes[3]
KUKA3 = Bytes[2]
KUKA4 = Bytes[1]
以上即可发送标准编码的real数据,PLC端可直接使用ID数据进行real数据的判断。
(注:使用CAST_TO函数后,Bytes[1]为对应二进制的低位,Bytes[4]为高位。以上第3步骤设置只是为了对应PLC端ID数据的容易读取,这样在PLC端才不需要将数据倒置。)
4.接收来自PLC的实数QD数据
Bytes[1] = PLC4
Bytes[2] = PLC3
Bytes[3] = PLC2
Bytes[4] = PLC1
offset = 0
CAST_FROM(Bytes[],offset,DATA1)
接收到的数据存于DATA1中。
(注:PLC端直接设置QD数据为实数,则PLC端对应的IO映射到KUKA机器人端的IO,则PLC1为数据的高位,PLC4为数据的低位,所以步骤4这样设置,才能使用CAST_FROM函数解析数据)
来源:网络
更多资讯:库卡机器人