技术论坛

 用间接寻址做Modbus RTU通讯,遇见的一些问题

返回主题列表
作者 主题
萌新一号
游侠

经验值: 389
发帖数: 55
精华帖: 0
楼主    2020-06-03 19:39:17
主题:用间接寻址做Modbus RTU通讯,遇见的一些问题

最近在玩V90,想试试200smart和V90通讯,做了一次正常的轮询,就是一路下来改地址轮询的那种,想试试能不能用简便的方法,就试了试做间接寻址,具体程序如下




具体程序就是这样,利用间接寻址改变地址和存储位置


但是运行后发现写数据一直报错102,找了半天以为是程序问题,结果就是变量的问题,只要我的addr位上是变量,写数据块就报错误码102,改成常数40100就正常运行。当我还在头疼这件事的时候,有出现了无法读出和写入数据的问题,用间接寻址无法读与存数据。 



具体的流程就是这样,不知道为什么会导致其原因,还望各位能够指点一二,或者有更好的方法希望坛友不吝赐教

shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
6楼    2020-06-04 15:11:15
主题:回复:用间接寻址做Modbus RTU通讯,遇见的一些问题

库内存分配的地址?有没有别的地方修改了VD500?

这是你的测试程序吧?还是把整个文件传上来看一下

shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
8楼    2020-06-05 07:53:24
主题:回复:用间接寻址做Modbus RTU通讯,遇见的一些问题

如果是我,我是这么做的:

MSG块用SM0.0调用,块的参数全部使用变量而不是立即数,需要读/写另外一个地址的时候,先把相应的数值传递到变量中,再给first一个上升沿,整个程序中只有一个msg

200中的子程序,是不具备给每个不同调用分别存储过程数据的能力的,不像300/1200/1500的FB有静态变量。分时多次调用,有点像这么一个场景:长得很像的两个人A1和A2,同一时间只有一个人是清醒的,另外一个必须休眠,在其他人看来他们就是同一个人A,即使老婆孩子也不能分辨,如果A1和老婆吵架了,然后A1去休眠,A2清醒了,但是他不知道A1曾经和老婆吵架,但老婆还在和他冷战,他就会觉得莫名其妙了

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。