modbus协议中,是否可以几台主机带一台从机的?

2024年11月15日 13:30
有3个网友回答
网友(1):

在同一个modbus网络中,只能有1台主机,多台从机。
你的系统中,PLC是通过不同的通讯口与三台pc通讯的,则每个通讯口的网络独立,组成3个modbus网络,仍符合“1台主机:1台从机”,所以是可以的。
由于3个modbus网络是分开的,故要设定3个从机地址,地址号可以相同,也可以不相同。而且每个modbus网络的协议是分别编程的。

网友(2):

TS-8515-A  modbus协议多主机智能管理器(Modbus协议通讯主机代理器)

Modbus是一种串行通信协议,是Modicon公司于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。

大多数Modbus设备通信通过串口EIA-485物理层进行,RS-485是半双工通讯。

Modbus协议是一个master/slave(主/从)架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在Modbus网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。

所以Modbus串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点连接于同一个串行总线。Modbus通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。

如果Modbus通讯网络中存在多主机时,如图(1),存在以下问题:(1)两个主机同时在向基于RS485(半双工)通讯的总线发送数据时,RS485总线中会同时收到两条命令,两条命令叠加在一起时,产生总线竞争或冲突,两条命令都变成的乱码,从机(传感器、智能仪表灯)不能识别的Modbus命令。

两条命令即使没有叠加在一起,但是总线接收的命令多了一倍,并且时间间隔存在不确定性,实际测试,发现△t小于50ms时,会造成从机来不及反应,最终造成数据丢失。

但是在现实的工业通讯中,很多时候需要两个以上主机应用:

(1)两个以上主机都希望对所有从机发送命令和接受数据;
(2)旧系统改造时,对原控制主机和系统不能有任何改变,必须保证原系统还能正常运行,使用增加的主机与原来从机或更多的从机通讯,这时,对总线上的数据不进行必要处理,总线通常会很快崩溃。这种情况在实际的工程改造应用中非常多。

依据modbus协议的要求和针对目前的技术现状,提出以下设计方案,目的使modbus多主机通讯更加符合工业通讯实际应用,让此类通讯更加稳定。

解决MODBUS RTU/ACSII通讯中不能有两个上位机的问题。将该模块接到两个主机与从机之间,通过该模块的信号转接,实现两个以上主机同时与多个从机的通讯。

采用主机代理方式:所有modbus主机只直接与代理主机通讯,用四个(或多个)RS485/RS232端口同时与各个modbus主机通讯。

代理主机从堆栈中按先进先出原则分别取出modbus通讯主机命令,向从机总线发送命令。

微处理器从4个(或多个)端口得到modbus通讯主机的命令后,进行CRC校验后,将正确的命令压入堆栈。从端口5得到的返回数据进行CRC校验后,将返回数据传送到对应主机的端口。

发送modbus通讯主机命令时间间隔可以设定,按照工业系统的可靠性和稳定性原则,设计发送命令时间间隔最小时间为250ms。如果系统中有两台modbus通讯主机,则需要设定modbus通讯主机的发送命令时间间隔为500ms(一般默认值)。依次类推。

系统使用堆栈,并且周期取出存贮命令,所以不会造成存贮或数据溢出。

系统的稳定性和可靠性也是预知的。稳定的发送命令时间间隔是可以计算的。

如果发生个别从机故障或者线路故障,系统不会一直处于等待状态,其他的主机和从机仍能正常工作。

此设备已通过实际测试和得到现场应用。

陕西天顺光电技术有限公司  技术部

更多详细资料请访问 www.ts232.com

网友(3):

串口的话,有几个口,就可以连几个PC