恭喜,你发布的帖子
发布于 2019-06-25 11:33:29
19楼
呵呵,我发现版主总是喜欢答非所问,我说A你就说B来反驳我,这是什么反驳呢??就你的程序没BUG然后就可以证明我的程序不行了?什么逻辑啊?我只是说需要注意有这个问题编程的时候需要避免而已,你怎么就知道我因为这个问题就没解决?
“调用
要组态 Modbus RTU 的端口,必须调用“MB_COMM_LOAD”一次。完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。
如果要修改其中一个通信参数,则只需再次调用“MB_COMM_LOAD”。每次“MB_COMM_LOAD”调用将删除通信缓冲区中的内容。为避免通信期间数据丢失,应避免不必要地调用该指令。”
上面是模块的使用说明,从说明可以看出如果不需要修改通讯参数则只需调用一次“MB_COMM_LOAD”模块即可。
我根据博图的使用说明没理解错吧??然而实际的是在通讯正常的情况下如果你的
REQ只使用一次的情况下就有可能存在因通讯卡死导致你在实际使用中会出现卡死情况,卡死后无论你怎么调用“MB_MASTER”都不会发送数据出去!这个时候只有重新触发“MB_COMM_LOAD”的 REQ才可正常。
如果自带的库没问题,不会出现卡死的情况下,“MB_COMM_LOAD”模块有需要重复调用吗??出了问题,解决问题,我们是否可以称之为补丁程序?你的程序里是否有重复调用的处理呢??如果没有是否存在BUG?如果有那你的目的是什么呢??是否是为了防止通讯卡死或错误做的处理??
我只是提示说有这个风险,然后让别人注意而已,然后你就认为我不会编程了??你怎么知道大家都是用你的块不需要注意该问题啊??
PS:我说西门子有BUG是说PN的地址会清0这个帖子里的,LW0和1200的MB通讯这两个帖子我有说BUG这个词吗??还不是你张冠李戴的??你这么喜欢聊BUG可以去我新开的帖子里讨论,看看我说的西门子的BUG有没有理据还是我自作多情。另外希望斑竹不要总张冠李戴答非所问!
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1568709&b_id=80
西门子BUG帖子
明确的告诉你,你通讯功能块的逻辑处理有问题才会导致MB_Master卡死,这与版本没有任何关系,哪怕是现在的版本逻辑处理不对,也会出现所谓通讯卡死的状况。
MODBUS-RTU通讯功能块之所以存在不同的版本,是因为硬件固件版本变化的原因,并不是低版本功能块存在缺陷的问题。
请填写推广理由:
分享
只看
楼主