库卡机器人使用profinet进行实数发送和接受 点击:369 | 回复:2



MT天马行空

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:10帖 | 14回
  • 年度积分:57
  • 历史总积分:1595
  • 注册:2018年9月22日
发表于:2023-08-05 08:29:22
楼主

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函数解析数据)




楼主最近还看过

菊香斋主人

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 1848回
  • 年度积分:1926
  • 历史总积分:2556
  • 注册:2012年7月28日
发表于:2023-09-13 11:57:08
2楼

学习学习


热门招聘
相关主题

官方公众号

智造工程师