的两个变种,在一个数据链路上只能处理247个地址,采用主/从结构,主节点必须循环的询问每个节点设备,并查找数据中的变化,没有办法要求设备"报告异常"。
大多数Modbus设备通信通过串口EIA-485物理层进行,每个链路的设备数量受到485收发器的负载能力和灵敏度的限制。根据485标准,32个收发器没有问题,数量再多就要看收发器的性能,或者增加驱动增强器。
MODBUS 的速度有限,如果每个点数据量大、点数又多的话,扫描周期会变长,实时性变差.其中,MODBUS RTU传输的效率较高.
在一个办公楼,接VAVBOX的MODBUS线路,一个厂家建议每个链路接20个左右,不知道是否合理?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
http://zh.wikipedia.org/wiki/Modbus
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus
RTU是一种紧凑的,采用二进制表示数据的方式,Modbus
ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通讯(serial
communication)方式。RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和
Modbus不同。它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。连接Modbus
Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PCMCIA总线的板卡。
Modbus协议是一个 master/slave 架构的协议。有一个节点是 master 节点,其他使用Modbus协议参与通信的节点是
slave 节点。每一个 slave
设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
* 由于Modbus是一个主/从协议,没有办法要求设备"报告异常"(构建在以太网的TCP/IP协议之上,被称为open-mbus除外)-
主节点必须循环的询问每个节点设备,并查找数据中的变化。在带宽可能比较宝贵的应用中,这种方式在应用中消耗带宽和网络时间,例如在低速率的无线链路上。
* Modbus在一个数据链路上只能处理247个地址,这种情况限制了可以连接到主控站点的设备数量(再一次指出以太网TCP/IP除外)
http://bbs.cechina.cn/ShowTopic.aspx?id=42613
作为现代自控系统中常用的协议之一,Modbus采用主从应答方式,即只有一个设备作为主机能主动发送询问信息,其它设备都是作为从机响应主机的命令或将所需的信息返回至主机。该协议支持在串行总线上有一个主机和247个从机,每个从机具有唯一的地址。读取或写入信息除要求从机地址外,还需要数据寄存器的地址。Modbus协议可使用两种模式进行通讯:ASCII和RTU,这两种模式在报文结构、功能命令上是相同的,仅帧信息的表示方法不同而已。它们的区别是:采用RTU模式通讯时,信息是以8位二进制方式传输的,而采用ASCII时,信息是以字符为基本单位传输的,每个字符都用ASCII码表示。ASCII的优点是通用性好,读取容易。但在相同传输速率下,RTU
模式比ASCII模式传输效率提高一倍。
http://www.eehome.cn/read.php?tid=1510
通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输'F''9'的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。
http://www.laogu.com/wz_27790.htm
当前自动控制系统中常用的网络,如现场总线CAN、Profibus、INTERBUS-S以及ARCNet的物理层都是基于RS-485的总线进行总结和研究。
RS-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求: ・接收器的输入电阻RIN≥12kΩ
・驱动器能输出±7V的共模电压 ・输入端的电容≤50pF
・在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)
・接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号"0";(V+)-(V-)≤-0.2V,表示信号"1")
RS-485驱动器的负载能力为:
RL=32个输入电阻并联||2个终端电阻=((12000/32)×(150/2))/(12000/32)+(150/2))≈51.7Ω
现在比较常用的RS-485驱动器有MAX485、DS3695、MAX1488/1489以及和利时公司使用的SN75176A/D等,其中有的RS-485驱动器负载能力可以达到20Ω。在不考虑其它诸多因素的情况下,按照驱动能力和负载的关系计算,一个驱动器可带节点的最大数量将远远大于32个。
http://boshika.cn.made-in-china.com/product/YecQMTiuvpVL/RS-485/RS-422%E4%B8%AD%E7%BB%A7%E5%99%A8%E9%A9%B1%E5%8A%A8%E5%A2%9E%E5%BC%BA%E5%99%A8%EF%BC%88Y485TC%3BEH485C%EF%BC%89.html
EH485C型RS485/RS422 驱动增强器与 RS485/422 中继器的区别在于:中继器仅仅是将原来的RS485/422
的驱动能力进行了重现,也就是说中继器的输出仍然是1倍的驱动能力,而波士EH485C 型 RS485/RS422 驱动增强器具有
RS485/422 中继器的全部功能,而输出是2 倍的驱动能力。比如原来的RS485/422口只能够带128个下位机,则通过EH485C
后的输出口可以带256个下位机。如果加上原来的RS485/422的本身的驱动能力(比如 128 个)则总共可达到 383 个。
没有评论:
发表评论