s7200与6个modbus从站仪表通讯,用s7200的modbus库,但有一个情况,就是经常性的,每个仪表要反应4秒,表上的面板显示值才过来,各位大虾,有没什么好办法,提高下速度
最佳答案
当MBUS_MSB子程序执行请求时,延长扫描时间。大部分时间用于计算请求和响应的modbusCRC。CRC(循环冗余校验)确保通讯信息的完整性。对请求和响应的每个字,扫描时间约延长1.85毫秒。最大请求/响应(读或写120个字)将扫描时间延长约222毫秒。当从从站接收响应时,主要由读请求延长扫描时间,当发送请求时,读请求对扫描时间的影响较小。当将数据发送至从站时,主要由写请求延长扫描时间,而在接收响应时,写请求影响程度较小
modbus从站协议 -- modbus通讯使用CRC(循环冗余检验)以确保通讯信息的完整性。modbus从站协议使用一个预计算值的表以减少信息处理所需的时间。CRC表的初始化需要大约240毫秒。该初始化在MBUS_INIT内部完成,而且通常是在进入RUN模式的第一个用户程序周期完成。如果MBUS_INIT子程序和任何其它用户初始化所需的时间超过500毫秒的循环时间监控,您需要复位时间看门狗并保持输出使能(如果扩展模块要求)。输出模块时间看门狗可通过写模板输出复位.
当MBUS_SLAVE子程序进行请求服务时循环时间增加。由于大部分时间消耗在计算modbus CRC上,所以对于每一字节的请求和响应,循环时间增加420微秒。最大的请求/响应(读或写120字)可增加循环时间大约100毫秒。
由此可见,花个4秒是正常的了。
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc347059.html