ABB机器人使用profinet传输real类型数据的问题 您所在的位置:网站首页 abb机器人输出信号怎么改名字 ABB机器人使用profinet传输real类型数据的问题

ABB机器人使用profinet传输real类型数据的问题

2023-09-06 13:15| 来源: 网络整理| 查看: 265

ABB机器人使用profinet传输real类型数据的问题

profinet即为实时数据通信,以IO的形式对应二进制数。 ABB机器人编程中real数据为4byte,即对应32个IO。

ABB机器人使用profinet传输该real类型数据时,需将该real数据转化为对应的32位数据编码,所以需要在配置对应signal时将Device Mapping 只包含8个IO的跨度,分为 4个输出signal: profinet_out_byte0 profinet_out_byte1 profinet_out_byte2 profinet_out_byte3 4个输入signal: profinet_in_byte0 profinet_in_byte1 profinet_in_byte2 profinet_in_byte3

1.定义数据 LOCAL VAR rawbytes raw_DA; LOCAL VAR num FZ:=0; LOCAL VAR byte byte_0:=0; LOCAL VAR byte byte_2:=0; LOCAL VAR byte byte_3:=0; LOCAL VAR byte byte_1:=0;

2.设置real数据 FZ := 14.33478;//need to send

3.置位4个输出signal,即发送数据 ClearRawBytes raw_DA; PackRawBytes FZ, raw_DA, 1\Float4; UnpackRawBytes raw_DA, 1, byte_3\Hex1; UnpackRawBytes raw_DA, 2, byte_2\Hex1; UnpackRawBytes raw_DA, 3, byte_1\Hex1; UnpackRawBytes raw_DA, 4, byte_0\Hex1; SetGO profinet_out_byte0, byte_0; SetGO profinet_out_byte1, byte_1; SetGO profinet_out_byte2, byte_2; SetGO profinet_out_byte3, byte_3; 以上即可发送标准编码的real数据,PLC端可直接使用ID数据进行real数据的判断。 (注:使用PackRawBytes 函数将发送的数据以Float4的方式编码后再用UnpackRawBytes 函数解出每一位的数据,byte_0为对应二进制的高位,byte_3为低位。以上第3步骤设置只是为了对应PLC端ID数据的容易读取,这样在PLC端才不需要将数据倒置。)

4.接收来自PLC的实数QD数据 byte_0 := profinet_in_byte0; byte_1 := profinet_in_byte1; byte_2 := profinet_in_byte2; byte_3 := profinet_in_byte3; ClearRawBytes raw_DA; PackRawBytes byte_3, raw_DA, 1\Hex1; PackRawBytes byte_2, raw_DA, 2\Hex1; PackRawBytes byte_1, raw_DA, 3\Hex1; PackRawBytes byte_0, raw_DA, 4\Hex1; UnpackRawBytes raw_DA, 1, FZ\Float4; 接收到的数据存于FZ中。 (注:PLC端直接设置QD数据为实数,PLC端对应的IO映射到ABB机器人端的IO,则profinet_in_byte0为数据的高位,profinet_in_byte3为数据的低位,所以步骤4这样设置,才能使用UnpackRawBytes 函数解析数据)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有