若需在实地与PLC交换信息,且该PLC采用MODBUS TCP通讯模式,ABB并未配备标准的MODBUS相关处理功能,要实现modbus/tcp通讯,可借助常规socket进行数据收发,并遵循modbus TCP的格式规范来传输数据。
ABB工业机器人本身不带特定指令,所以它只能充当客户端角色。客户端的程序连接部分能够放在初始化程序里,每次启动时进行一次连接操作。
掌握MODBUS TCP通讯协议,需明白其信息帧的构成方式:帧由特定部分组成,各部分包含不同内容,理解这些部分对于使用协议至关重要。
MODBUS TCP融合了MODBUS规范与TCP/IP网络准则,属于MODBUS协议基于TCP/IP的特定版本,数据交互时将MODBUS应用消息块嵌入TCP数据段内,MODBUS标准指定TCP的502端口,该端口是仪表及自动化领域唯一专用的端口,通信依赖以太网物理连接。
信息帧由报文头、功能码、数据三部分组成,报文头包含四个部分,总共七个字节,与MODBUS RTU相比,MODBUS TCP中没有CRC校验,这个校验功能由TCP/IP协议和以太网的链路层共同负责
信息帧解读:
传输标识符占用两个字节,其作用是表明这是一个Modbus的查询或响应过程,通常情况下该值设置为00和00。
协议标识符:2个字节长度,00 00 表示Modbus协议
数据长度:2个字节长度,即从单元标识符以后的数据个数
单元识别码仅占用一个字节的存储空间,在MODBUS RTU通信协议里,它对应着设备地址位
功能码仅占用一个字节的存储空间,它具备从设备中获取信息的能力,也能用于向设备发送指令。
数据:根据读取数据长度的不同。由n个字节组成。
功能码(决定了是写数据还是读取数据):
MODBUS/TCP运行在以太网平台上,因此ABB设备在应用时必须配备616-1PCINTERFACE功能。(具体操作是在机器人主界面里,找到“系统详情”功能进行确认)
MODBUS/TCP通信可以借助标准网络线进行,不过这些网线必须连接到机器人控制器上标有“X5”的接口处。
案例:
ABB机器人现在需要从调试工具中获取保持寄存器的数据,起始位置是第6个字节,总共读取2个字,所用的功能码是0X03,调试工具的IP地址设置为127.0.0.1,端口号为502。
2.读取到了数据在机器人的示教器上显示
3.机器人作为客户端,调试工具作为服务器
源程序下载,请看文末!!!
机器人端程序编写:
源程序下载,请看文末!!!
MODBUDS调试工具里要设定IP地址和端口号,具体是127.0.0.1以及502,对于地址00 06和00 07这两个位置,需要分别手动输入数值5和8。
在MODBUDS调试工具的“消息”部分,能够查看到信息帧数据,其中蓝色字体显示的是机器人发送给调试工具的内容,红色字体表示的是调试工具传送给机器人的信息,同时还包括源程序下载内容,具体请参考文章末尾部分。
蓝色字体(从左往右):00 00传输表示符
00 00协议表示符
00 06 数据长度
FF: 单元标识符
03: 功能码