Modbus总结文档
2017/8/30
1. 国际互联网组织保留TCP/IP协议栈上的系统502端口,专门用于访问Modbus设备。
2. Modbus串行网络结构:
3. 串行链路连接有两个模式: RTU和ASCII 两种模式之间不能通信。 RTU模式采用二进制表示数据,ASCII是人工可读。 RTU用循环冗余校验, ASCII采用纵向冗余检验。
TCP/IP的连接不需要检验和。
4.
通用的
Modbus
帧结构:
过程:
主机设备
Master
(或客户端)创建
Modbus
应用数据单元形成查询报文。其中的功能码标识了向从机设备
Slave
(或服务器)指示将执行哪种操作。(注:每个系统只能有一个
Master
,每个
Slave
都有一个唯一地址),
功能码一个字节,有效是1~255. 这其中128—~255为异常响应保留。(也可以向一些功能码加入子功能码来定义多项操作)
查询报文创建完毕,主机设备(或客户端)向从机或服务器发送该报文,收到后,根据功能码做相应动作,并发相应报文给主机设备。如图:
但如果主机请求有错误,响应报文的功能码域将包括一个异常码。详细下图,从机设备返回一个功能码(注:异常的功能码8bit位的第一位位1. 也就是128~255)然后再还有一个异常码,所以
回来的响应包括功能码和异常码
。
5. 两种通用的Modbus消息帧格式:
这地方字符概念比较模糊,没懂。
这里解释一下串行通信中的字符: 传送一个字符一般包括12位(也有其他情况的),1bit 起始位,通知对方接收, 8bit数据位,也就是你要传输的,1bit检验位(或没有),1bit或2bit停止位。所以一般是12bit传输一个8bit<