您现在所在的是:

三菱Mitsubishi

回帖:68个,阅读:8124 [上一页] [1] [2] [3] [4] [5] [6] [7] [下一页]
19260
pqsh 版主
文章数:7424
年度积分:1090
历史总积分:19260
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/3/24 15:51:18
#50楼
你很厉害,一般modbus从站(服务器)程序很少人编,因为太难.
接下来,你要处理会话时间.就是一段报文无效的话,等待一定的时间就废弃.当然不必完全按照modbus协议写.
你的程序呢?方便发吗?
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/3/25 8:59:00
#51楼
还是上面的问题,我在我接受程序之前加了段程序,之前的如果发小于8字节的要凑齐8字节才能收发这个问题算是解决了。现在的情况是只要发3条才能回你一条。你看看。
wushunxu_modbus+1w+05+21gaizp
附件:
[本地下载]
[此贴子已经被jint于2019/3/25 15:58:59编辑过]
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/3/25 9:17:36
#52楼
。。。ololol
[此贴子已经被作者于2019/3/25 17:22:48编辑过]
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/3/25 18:59:29
#53楼
回复 #50楼 pqsh
程序已上传你看看
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/4/2 8:51:24
#54楼
回复 #50楼 pqsh
大哥,最近没空?
19260
pqsh 版主
文章数:7424
年度积分:1090
历史总积分:19260
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/4/2 9:23:19
#55楼
以下是引用199706232019/4/2 8:51:24的发言:
大哥,最近没空?
看了你的程序,感觉比较费劲了.能不能把通讯变成定时一次次,而不是在检测到完成时接着下一次.通讯不用那么紧凑,适合速率就好.试试?
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
19260
pqsh 版主
文章数:7424
年度积分:1090
历史总积分:19260
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/4/2 9:24:29
#56楼
另外,3条回1条的时间看得到吗?找一个别的软件,报文有时间的.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/4/2 12:51:47
#57楼
回复 #56楼 pqsh
能不能说的太具体些,比如定时3秒,3秒时间到收到了plc才回给你,必须等3秒,没收到,继续等3秒,相当于3秒一次。是这样?另外我们发送报文是自动发送,可以调整发送时间,几秒几分钟一次。感觉plc端就没必要定时,只要plc接受到,能回就行。
另外这个3条回一条的具体是这样的:前两条是无效的,第三条发什么回什么,3条一循环。前两条发0都可以,只要满足8字节,第三条才是真正有用的会回的。在那个缓冲接收区看到,前两条接受的发送字节的存储顺序不是从第一个地址开始,顺序乱了,第三条接受的报文,存储的顺序是从第一个地址开始。如图。应该是那个清除指令程序不太对。
附件 111111111111.jpg
19260
pqsh 版主
文章数:7424
年度积分:1090
历史总积分:19260
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/4/2 18:57:21
#58楼
那我得好好看看.关键没有实物测试.
上面说了,会话有个时间规则,在一定静默时间,需要清除接收缓存.要不然后续的又接上,形不成有效报文.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
479
19970623
文章数:42
年度积分:50
历史总积分:479
注册时间:2018/6/1
发站内信
发表于:2019/4/2 20:12:30
#59楼
回复 #58楼 pqsh
缓冲接受区里有个存储接受字节的地址。我之前试过把他弄出来做比较,等于8字节就plc发送,不是8字节就清除接收区。没有加什么定时。就是现在的程序。被你这么一提醒。我想改下程序:每次plc发回报文后,把之前接受的报文清除,再只要有发过来0字节判断,先延时一秒,再判断是否是8字节,不是的话立即清除接受区且在一秒钟内禁止接受,1秒后再次允许接受,是8字节且正确的报文在延时一秒钟,发出。仔细想想有点问题,你觉得呢?是你的意思吗?

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003