登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:求助Q03UDECPU+QJ71C24n-R4与电脑进行485modbus通讯

点击:8562 回复:68

你很厉害,一般modbus从站(服务器)程序很少人编,因为太难.
接下来,你要处理会话时间.就是一段报文无效的话,等待一定的时间就废弃.当然不必完全按照modbus协议写.
你的程序呢?方便发吗?
19-03-24 15:51
还是上面的问题,我在我接受程序之前加了段程序,之前的如果发小于8字节的要凑齐8字节才能收发这个问题算是解决了。现在的情况是只要发3条才能回你一条。你看看。
wushunxu_modbus+1w+05+21gaizp
附件:
[本地下载]
最后修改:2019/3/25 15:58:59
19-03-25 08:59
。。。ololol
最后修改:2019/3/25 17:22:48
19-03-25 09:17
程序已上传你看看
19-03-25 18:59
大哥,最近没空?
19-04-02 08:51

引用 19970623 在 2019/4/2 8:51:24 发言【内容省略】

看了你的程序,感觉比较费劲了.能不能把通讯变成定时一次次,而不是在检测到完成时接着下一次.通讯不用那么紧凑,适合速率就好.试试?
19-04-02 09:23
另外,3条回1条的时间看得到吗?找一个别的软件,报文有时间的.
19-04-02 09:24
能不能说的太具体些,比如定时3秒,3秒时间到收到了plc才回给你,必须等3秒,没收到,继续等3秒,相当于3秒一次。是这样?另外我们发送报文是自动发送,可以调整发送时间,几秒几分钟一次。感觉plc端就没必要定时,只要plc接受到,能回就行。
另外这个3条回一条的具体是这样的:前两条是无效的,第三条发什么回什么,3条一循环。前两条发0都可以,只要满足8字节,第三条才是真正有用的会回的。在那个缓冲接收区看到,前两条接受的发送字节的存储顺序不是从第一个地址开始,顺序乱了,第三条接受的报文,存储的顺序是从第一个地址开始。如图。应该是那个清除指令程序不太对。
附件 111111111111.jpg
19-04-02 12:51
那我得好好看看.关键没有实物测试.
上面说了,会话有个时间规则,在一定静默时间,需要清除接收缓存.要不然后续的又接上,形不成有效报文.
19-04-02 18:57
缓冲接受区里有个存储接受字节的地址。我之前试过把他弄出来做比较,等于8字节就plc发送,不是8字节就清除接收区。没有加什么定时。就是现在的程序。被你这么一提醒。我想改下程序:每次plc发回报文后,把之前接受的报文清除,再只要有发过来0字节判断,先延时一秒,再判断是否是8字节,不是的话立即清除接受区且在一秒钟内禁止接受,1秒后再次允许接受,是8字节且正确的报文在延时一秒钟,发出。仔细想想有点问题,你觉得呢?是你的意思吗?
19-04-02 20:12

上一页 下一页

工控新闻

更多新闻资讯