基于TCP/IP协议的Modbus (3)

基于TCP/IP协议的Modbus

功能代码划分:按应用深浅,可分为3个类别。

类别0,对于客户机/服务器最小的可用子集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)。

类别1,可实现基本互易操作的常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)。

类别2,用于人机界面、监控系统的例行操作和数据传送功能:

强制多个线圈(fc.15);读通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)。

4. Modbus应用举例

读寄存器(见表5)。

Modbus TCP请求报文举例(见表6)。

Modbus TCP客户端的实况。

用Connect()命令建立目标设备TCP 502端口的连接数据通信的过程:

准备Modbus报文,包括7个字节的MBAP在内的请求;

使用send()命令发送;

在同一连接等待应答;

同recv()读报文,完成一次数据交换过程。
当通信任务结束时,关闭TCP连接,使服务器可以为其他服务。

Modbus TCP的样板程序

用户可通过网站下载到:

JAVA的应用程序;

基于Unix系统下,C的应用程序;

基于Win32系统下,C的应用程序。

Modbus TCP协议

协议文本的英文版可从 modbus.org下载,如需协议文本的中文版,可向施耐德电气(中国)投资有限公司各地区办事处索要。

基于TCP/IP协议的Modbus

基于TCP/IP协议的Modbus

五 使用TCP/IP Modbus的原因

TCP/IP已成为信息行业的事实标准:世界上93%的网络都使用TCP/IP,只要在应用层使用Modbus TCP,就可实现工业以太网数据交换;

易于与各种系统互连:可用于管理网、实时监控网及现场设备通信;

网络实施价格低廉:可全部使用通用网络部件;

用户强烈要求:目前中国已把Modbus TCP作为工业网络标准之一,用户可免费获得协议及样板程序,可在Unix、Linux、Windows下运行,不需要专门驱动程序。在国外,Modbus TCP被国际半导体业SEMI定为网络标准,国际水处理、电力系统也把它作为应用的事实标准,还有越来越多行业作为标准来用;

高速的数据:用户最关心的是所使用网络的传输能力,100M以太网的传输结果为:每秒4000个Modbus TCP报文,而每个报文可传输125个字(16bit),故相当于4000×125=500000个模拟量数据(8000000开关量!);

厂家能提供完整解决方案:工业以太网的接线元件,包括工业集成器、工业交换机、工业收发器、工业连接电缆。工业以太网服务器,包括远程、分布式I/O扫描功能,设备地址IP的设置功能,故障设备在线更换。功能,分组的信息发布与订阅功能,网络动态监视功能,还有支持瘦客户机的Web服务。其他工控设备的支持:如工业用人机界面、变频器、软起动器、电动机控制中心、以太网I/O、各种现场总线的网桥、甚至带TCP/IPModbus的传感器,都为用户使用提供了方便。

RTU和TCP对比

Modbus rtu和Modbus tcp两个协议的本质都是baiMODBUS协议,都是靠duMODBUS寄存器地址来交换数据;

但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/422,而daoModbus TCP一般采用以太网口。

现在市场上有很多协议转换器,可以轻松的将这些不同的协议相互转换 如:Intesisbox可以把modbus rtu转换成Modbus tcp。

实际上Modbus协议包括ASCII、RTU、TCP。

标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。

ModbusTCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

TCP和RTU协议非常类似,只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpfzj.html