ABB机器人与外部设备通讯-Modbus TCP介绍

一、定义

Modbus通信协议,最主要的是Modbus RTU (RS-485总线)转232接线ABB的COM口,Modbus ASCII和Modbus TCP(以太网)三种。

Modbus RTU协议,一般大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。

Modbus ASCII协议:报文使用 ASCII 字符。ASCII 格式使用纵向冗余校验和。Modbus ASCII 报文由冒号 (“:”)开始 和换行符 (CR/LF) 结尾构成。

Modbus TCP协议,则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码的,所以就常用一句比较通俗的话来说:Modbus TCP协议就是ModbusRTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK。

通讯模式:轮询(读0.1s,写0.1s)

二、功能

Modbus TCP就是使用TCP协议传输数据,传输的数据是Modbus格式。客户端传输数据时是以十六进制发送,每次发送两位;服务器接收数据时也是以十六进制的形式接收,每次接收两位。 如:0X00,两位十六进制数是8位二进制数。

Modbus TCP的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。

对象

含义

线圈

PLC的输出位,开关量,在Modbus中可读可写

离散量

PLC的输入位,开关量,在Modbus中只读

输入寄存器

PLC中只能从模拟量输入端改变的寄存器,在Modbus中只读

保持寄存器

PLC中用于输出模拟量信号的寄存器,在Modbus中可读可写

Modbus的功能码有:(使用16进制)

功能码

含义

功能码

含义

0x01

读线圈

0x04

读输入寄存器

0x05

写单个线圈

0x03

读保持寄存器

0x0F

写多个线圈

0x06

写单个保持寄存器

0x02

读离散量输入

0x10

写多个保持寄存器

三、通讯

  • 通信方式

Modbus TCP设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。

主站请求:功能码+数据

从站正常响应:请求功能码+响应数据

从站异常响应:异常功能码+异常码,其中异常功能码即将请求功能码的最高有效位置1,异常码指示差错类型

注意:需要超时管理机制,避免无期限的等待可能不出现的应答

  • 通信过程

1,connect 建立TCP连接

2,准备Modbus报文

3,使用send命令发送报文

4,在同一连接下等待应答

5,使用recv命令读取报文,完成一次数据交换

6,通信任务结束时,关闭TCP连接

ABB机器人与外部设备通讯-Modbus TCP介绍

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...