假设,我通过modbus,把启动命令的控制字047F发送给V20,v20响应启动信号,启动并返回一个帧值。
启动的命令是:地址+06+40100+047F+CRC,一共4个字节
返回的响应是:地址+06+40100+047F+CRC,一共4个字节
波特率按照默认值9600bps,间隔时间>=3.5字符
调试笔记本就在v20旁边
那么,这一段从启动发出到返回响应的时间是多少?怎么算?
最佳答案
1.字符传输的时间取决于波特率,如果设置波特率为9.6k,那么传输一个字符帧中的一位用时等于1/9600*1000000=104us,如果这个字符帧有11位,那么这个字符帧的传输时间等于11/9600*1000=1.145ms.一个字符帧包含1个起始位,8位数据位,1个校验位,一个停止位。然后根据这个你去对Modbus的报文帧结构具体算多少个字符帧(不只四个字节了)。
2.上面说的是字符帧的传输时间,但拿这个时间来当响应时间是不合适的,因为还要考虑Modbus 主站程序的时间,比如PLC,那你要考虑程序扫描周期,而且Modbus是异步块,不是一个周期完成的,像CRC校验都需要消耗时间的,这个时间参考Modbus主站的资料。而且V20也有一个接到报文后回报文的一个响应时间。这些时间都要考虑。
3.Modbus 通讯不是实时通讯,至少百ms级,如果数据量大能到s级。
提问者对于答案的评价:
看懂了,谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc128377.html