如果有31个相同的仪表等待主站一一访问,则主站从访问第一个仪表开始,到最后回应完毕,总历时:
这里的1.12秒就是在通信速率为9600bps下这31台仪表的读数据循环周期,且忽略了主站再次发送下行通信帧的等待时间,实际时间会略微再长一些。
相信,看到这里,大家对MODBUS-RTU下的通信帧应当有了较为深刻的认识。
提醒大家:一个字有两个字节。一般地,字节只能用来表达8个开关量。但对于模拟量,则要用字来表达。例如电流1250A,16进制下是04E2H,要用2个字节才能表达完整。也因此,各种电力仪表中,模拟量都是用字来表达的。
以下是MODBUS的部分常用功能码,也即命令码:
以下是PLC在读取双投开关ASCO控制器的数据点表的下行和上行通信帧范例:
几个相关的问题解释一下:
1)有些现场总线,用令牌解决了总线的控制权问题。
大家很容易想到,如果从站有紧急事项需要主站来服务,可是MODBUS规定了轮询规则,等到自己的时候,可能会太迟了。于是许多现场总线就发明了一个特殊的东西,叫做令牌。令牌很短,只有一个字节,它可以很快地在总线上传递。令牌在各站点中传递,谁拿到令牌,谁就是主站,就可以发布信息。如果本站没有事情需要发布,就把令牌交给下一个站点,由此解决了总线占用问题。
2)当链路发生断路时,为了避免出现通信中断,可采用双主站措施。双主站(PLC的两个主站RS485接口)之间用握手线连接,平时主用RS485开通,而辅助RS485浮空。浮空的RS485虽然接在总线上,但它处于高阻态等效于完全脱离。当发生断路时,从站确认后立即开通通信,从链路两头进行连接通信。
有时,还采取环状通信措施。限于篇幅,不做介绍。
3)MODBUS可工作在网络层,此时协议变为MODBUS-TCP,但还是符合主从结构。
4)MODBUS协议是美国莫迪康公司发明的,该公司的宗旨是:MODBUS协议为不收费的公开协议。后来莫迪康公司被施耐德公司收购了,施耐德公司继承了莫迪康公司的做法,MODBUS是不收费的公开协议。既然MODBUS已经成为施耐德的协议,施耐德把它延伸到网络层,构建了网络层的MODBUS-TCP协议,以及内部专用的MODBUS-PLUS协议。限于篇幅,对于这两个协议的描述此处从略。
5)关于RS232和RS485的区别
学过模电和数电的人都知道差分电路。差分电路具有共模抑制比,能够消除共模误差。RS485接口就具有此特征。因此RS232接口的传输距离仅为十几米,而RS485/RS422接口的传输距离为1200米。