上节中讲到ModBus协议是工业应用中应用最广泛的协议。在ModBus协议系统中,主机一般为PLC、HMI、组态软件等,但是在一个略微复杂的系统中,通常会存在同时需要多个主机的情况。由于通信线缆一般是RS485,半双工的特性导致多个主机同时采集数据时,会有较大的数据延迟。(因为同一时刻只能有一个主机或从机在发送数据,否则会造成数据冲突,形成乱码)
前文指路《串口服务器——简单协议转换介绍及使用方法》
因此主机在通信时一般会采用网口进行,这样会保证数据的及时性。上一节给大家讲到串口服务器可以将网口数据转换为串口数据进行通信,这样在保证了全双工通信的同时,又可以将数据接入互联网,这样大大提高通信距离。
虽然网线上可以做到全双工(发送和接收同时进行),但是针对低延迟的应用场景,这样一对一的通信优势不是很明显,今天给大家讲到一个特色功能——多主机网关模式。
ModBus多主机网关支持多台ModBus TCP主机同时操作RTU设备,利用TCP/IP协议通讯打破RTU数据总线上同时只能存在一台主机的限制。
简单协议转换模式只适用于单一主机用于与从机通信的场景,因为串口服务器只是将数据做了转换,并且串口的数据会广播给全部主机。如果遇到多个主机同时发送数据时,串口服务器会将数据直接进行发送,这样就会造成通讯超时或数据异常。
多主机网关
多主机网关模式与简单协议转换比起来,针对多主机同时发送数据场景,做了单独的数据处理。例如在主机1、2、3发送数据时间较短时,串口服务器将把请求的数据拦截在网络端,数据将会按照先后顺序将指令发送给串口设备,此时串口设备收到数据后将数据返回给主机,并且是哪个主机请求数据就会将数据指定发送给哪个主机,这样就会避免出现通信异常现象,提高通信的可靠性。
下面主要给大家介绍一下多主机网关的应用方法,优于主机端操作各有各的特色,本处只使用ModBus Pool与ModBus Slave作为展示,PLC/HMI等参照此进行链路连接。如何配置参数在上一章中已经做出了讲解,在本节不再单独介绍。
使用EBYTE网络配置工具查看当前串口服务器参数情况,IP需要修改为与电脑同一网段,设置串口服务器为TCP服务器模式,记录当前本机IP、本地端口。
打开ModBus Slave软件模拟从机,连接方式使用串口,选择串口服务器的串口号、连接参数(波特率、数据位、校验位、停止位,这里采用默认115200,8N1)
数据返回内容选择从机ID为1,功能码选择03,寄存器地址选择为0,数量为10(稍后读取也为这个参数)。
打开ModBus Pool软件,连接方式选择为ModBus TCP/IP,目标IP设置为串口服务器IP地址,目标端口设置为串口服务器本地端口(192.168.0.113/8887)超时时间可使用默认。
读取参数也选用从机ID为1,功能码选择03,寄存器地址选择为0,数量为10。参照此参数可以连接6个主机,如下图。
产品推荐
串口服务器——NA111