发布于 2021-04-20 21:04:40
8楼
嗯,看到你说的是跟电脑通讯调试…
这样的话基本上明白了…而且你肯定也是用Win10系统吧?并且还是不知名品牌的RS485数据线吧?
原因在于Win10电脑的串口通讯数据更新周期基本上都是15~100ms之间,再加上你的不知名品牌USB转RS485估计是软模拟串口,通讯延迟50ms以上妥妥的…所以你测试的结果都是电脑的锅。
你应该拿两个PLC来测试,然后USB转RS485线并到PLC间的数据线上,打开电脑的串口调试助手就可以看到通讯数据流,用秒表计时10秒的数据流,然后自己分析数据帧就知道通讯数据帧间隔时间了。
记得以前WinXP的串口数据流可以做到2~3ms一次中断、Win7可以做到10~15ms一次中断,到了反~人~类的Win10就糟糕透顶20ms~100ms………烂系统一大堆无用的系统服务在后台浪费系统资源。
给你个参考:我的Win7系统,Smart200仅ModbusS库,9600波特率读取电脑ModbusSlave10个寄存器,一秒钟大概读取了13~14,也就是70ms一次。用115200波特率也就17~18次。通讯时间大概可以算出来的。9600波特率时PLC请求3 + 4 + 8 = 15ms、电脑响应处理反馈数据(10~15) + (3~10) + 26 =40ms、PLC检验返回数据10ms,一共15+40+10也就65ms以上。波特率增加到57600后减少的是通讯帧时间,帧间隔等待数据检验等时间是没法减小的,时间大概10+20+10也就40ms以上,所以只要是跟电脑扯淡都不会快到哪里去的。
算了,我都不知道我乱说些什么了………