>
在工业生产的工作现场,设备间的通讯交互至关重要,这有助于实现高效协同作业和自动化控制。ABB 机器人作为工业机器人领域 “四大家族” 的成员之一,具备极为丰富的通讯功能。
当现场需要让 ABB 机器人与支持 MODBUS TCP 通讯协议的 PLC 进行通讯时,会面临一个挑战:ABB 并未提供标准的 MODBUS 相关处理函数。
不过,我们可以采用普通 socket 进行数据的收发操作,并严格按照 MODBUS TCP 的数据格式来传输信息,以此实现二者之间的通讯。
需要注意的是,由于 ABB 工业机器人没有专用的指令用于 MODBUS TCP 通讯,所以它只能作为通讯客户端。
为确保通讯的稳定建立,可将客户端连接程序放置在初始化程序里。这样一来,机器人每次启动运行时,仅需执行一次连接操作即可,既保证了通讯连接的有效性,又避免了不必要的重复连接,提升了系统运行效率。
MODBUS TCP 是 MODBUS 协议与 TCP/IP 网络标准相结合的产物,它具体实现了 MODBUS 协议在 TCP/IP 网络上的应用。
在数据传输过程中,MODBUS TCP 会在 TCP 报文中插入 MODBUS 应用数据单元。
特别需要注意的是,Modbus 协议为其分配的 TCP 端口号是 502,这也是目前仪表与自动化行业中唯一被分配的端口号,其采用的硬件接口为以太网接口。
MODBUS TCP 信息帧主要由报文头、功能码和数据三部分组成。其中,消息报文头由四个子部分构成,共计 7 个字节。
与 MODBUS RTU 不同的是,MODBUS TCP 中没有 CRC 校验环节,这是因为校验工作由 TCP/IP 协议和以太网的链路层共同完成,这种设计既保证了数据传输的准确性,又提升了通讯效率。 以下是对 MODBUS TCP 信息帧各部分的详细解读:
传输标识符:长度为 2 个字节,它的主要作用是标志 Modbus 询问或应答的传输过程。在实际应用中,通常默认其值为 00 00。通过这个标识符,通信双方能够准确识别每一次的询问与应答对应关系,确保数据传输的有序性。 协议标识符:同样占据 2 个字节的长度。当该标识符的值为 00 00 时,表示采用的是 Modbus 协议进行通信。这一设定为通信双方提供了明确的协议依据,保证了数据能够按照 Modbus 协议的规则进行解析和处理。 数据长度:此部分也是 2 个字节。它所表示的是从单元标识符之后开始的数据个数。通过明确数据长度,接收方可以准确知道后续需要接收和处理的数据量,避免数据接收不完整或错误解析的情况发生。 单元标识符:长度为 1 个字节,其作用类似于 MODBUS RTU 通信中的从站站号。在一个包含多个从站设备的 Modbus 网络中,单元标识符用于唯一标识每个从站设备,使得主站能够准确地与特定的从站进行通信交互。 功能码:占据 1 个字节的长度。功能码在 Modbus 通信中扮演着至关重要的角色,它定义了本次通信操作的具体类型,可用于读取设备的数据,也可用于往设备中写入数据。不同的功能码对应着不同的操作,例如读取寄存器值、写入单个线圈等。 数据:数据部分的长度会根据读取数据长度的不同而变化,由 n 个字节组成。这部分承载了实际需要传输的业务数据,如设备的状态信息、测量值等。通信双方根据功能码的要求,对这部分数据进行相应的处理和解读。
由于 MODBUS/TCP 通讯协议是基于以太网实现的,所以当 ABB 机器人要使用该协议进行通讯时,必须具备 616 - 1 PC INTERFACE 选项。
您可以在机器人的主菜单中,通过选择 “系统信息” 来查看该选项是否已安装
在使用 MODBUS/TCP 进行通讯时,通讯介质采用普通网线就能够满足需求。
不过需要注意的是,这根网线要连接到机器人控制器的 “X5” 网口上,以确保通讯的正常建立和数据的稳定传输 以下是一个更为详细、清晰且具有逻辑性的案例说明,详细阐述了 ABB 机器人与调试工具之间通过 MODBUS/TCP 进行数据交互的具体过程:
案例背景 本案例旨在实现 ABB 机器人与调试工具之间的通讯,通过 MODBUS/TCP 协议,让 ABB 机器人从调试工具中读取特定的保持寄存器值,并将读取到的数据在机器人的示教器上进行显示。在此通讯过程中,ABB 机器人充当客户端,调试工具则作为服务器。
具体操作步骤1. 通讯参数设置 调试工具的 IP 地址设定为 127.0.0.1,端口号设定为 502,这是 MODBUS/TCP 协议常用的端口号,确保了与 ABB 机器人之间的通讯连接。2. 数据读取要求 ABB 机器人需要读取调试工具中的保持寄存器的值。具体来说,从第 6 字节开始,连续读取 2 个字的数据。为实现这一操作,将使用功能码 0X03,该功能码在 MODBUS 协议中专门用于读取保持寄存器的值。3. 数据显示 当 ABB 机器人成功读取到所需的数据后,会将这些数据显示在机器人的示教器上,方便操作人员直观地查看和分析。 通过以上步骤,ABB 机器人与调试工具之间完成了一次基于 MODBUS/TCP 协议的数据读取与显示操作,为工业自动化生产中的设备监控和数据采集提供了有效的解决方案。在 MODBUS 调试工具里,需预先完成相关参数的设置。首先,将 IP 地址设定为 127.0.0.1,端口号设定为 502,以此建立起标准的 MODBUS/TCP 通讯环境。
接着,针对地址 00 06 和 00 07 进行手动赋值操作,分别将这两个地址的值设定为 5 和 8,从而为后续的数据交互提供准确的数据源 在MODBUDS调试工具“消息”这一栏中可以看到信息帧数据(蓝色字体代表机器人给到调试工具的,红色字体代表调试工具给到机器人的) 在【ABB 机器人 MODBUS TCP 通讯】案例中,涉及到 MODBUS TCP 协议的请求帧与响应帧。
以下将对其各部分进行详细解读,帧中的数据以十六进制表示,不同颜色字体区分请求帧和响应帧信息。 请求帧(蓝色字体,从左往右)
1:传输标识符(00 00):长度为 2 字节,用于标志 Modbus 询问的传输,在本次通讯中默认设置为 00 00,确保数据传输的唯一性和可识别性。 2:协议标识符(00 00):同样 2 字节,00 00 明确表示使用的是 Modbus 协议,为数据传输确定协议标准。 3:数据长度(00 06):2 字节,表明从单元标识符往后的数据字节个数为 6 个,帮助接收方确定数据接收范围。 4:单元标识符(FF):1 字节,类似于 MODBUS RTU 中的从站站号,FF 代表特定的从站设备,这里即目标调试工具。 5:功能码(03):1 字节,功能码 03 用于读取保持寄存器的值,是本次请求操作的核心指令。 6:寄存器地址(00 06):2 字节,指定了要读取的保持寄存器起始地址为 00 06。 7:数据个数(00 02):2 字节,表示要从起始地址开始连续读取 2 个数据。 响应帧(红色字体,从左往右)
8:传输标识符(00 00):与请求帧对应,同样 2 字节,用于匹配响应...
文章提供程序,如需要下载 可以添加客服微信获取
【长按识别 即可添加】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |