600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > ABB机器人profinet通讯传输正负整数及浮点数

ABB机器人profinet通讯传输正负整数及浮点数

时间:2023-03-29 01:17:22

相关推荐

ABB机器人profinet通讯传输正负整数及浮点数

前言

大家好,之前在其它公众号上看到有篇付费文章介绍ABB机器人profinet通讯传输正负整数及浮点数,抽空测试了以下,发现它提供的代码还是有问题的。

今天我把完整的测试后的代码发布出来,供大家参考!

PLC发送到ABB机器人

这部分代码是没问题的,注意一下高低字节转换就行。

高低字节转换配置 代码实现,FUNC是功能块程序,可以程序调用返回特定数据类型的值。 接收实例,Plc_offset_X为ABB机器人配置的32位的组输入

PERS num ntest;PROC Routine1()ntest:=recvdata(\Float,Plc_offset_X);Stop;ENDPROC

问题就出在,ABB机器人发送给PLC上

按照它的代码,会提示如下错误。

PackRawBytes打包指令\IntX := UDINT或\IntX := LINT,报错参数Value不是整数,只能对应为\Float4类型。

PackRawBytes打包指令\Float4类型,只能打包num数据类型,如果把num改成dnum,报错存在非法数据类型。

32位的组输出不能在if语句中出现

那么,如何发送浮点数呢?

无法发送32个bit,那就把32个bit分开,分成4个字节;同样的,也需要把Go组输出分成4个,信号名称例如,GoutputX,GoutputX_1,GoutputX_2,GoutputX_3,GoutputX_4。

3. 接收实例,Rob_offset_X为ABB机器人配置的32位的组输出,Rob_offset_X_1Rob_offset_X_2Rob_offset_X_3Rob_offset_X_4是分开的8位的组输出

PROC Routine1()senddata\Float,"Rob_offset_X",-1.23;Stop;ENDPROC

本文已同步至 博客 及 论坛 ,如需 复制代码、讨论交流,请移步至论坛!

论坛: /t/abb-profinet/78

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。