问一个关于s7-200 modbus程序的问题
林慧玲
发布于2014-03-21 17:24
1
0
标签:
按照网上的例子进行了modbus通信,虽然通信成功了,但是出现了以下几个问题。
1.当进行读取单一仪表通信的时候,如何保持循环通信(不要用计时器啊,sm0.5之类的计时办法……希望的是一直保持通信)。
2.按照官网的例子编了一个顺序读取三个仪表的程序,但是因为这里只有一个仪表,所以通信就只能进行一次(即读取一次以后就不再读了,想再读取就只能关了再开),想问一下都这样吗?是不是仪表中只要有一个不通就不能循环了?
3.后一个问题,觉得程序有问题,在进行配置主站的时候,一般都会设置超时时间为1秒,每一次读取以后都会进行复位,然后读取下一个。但是官网的例子是这样的(如图),通信结束后复位,哪原本的被置1的寄存器(例如例子中的m2.1)还为1吗?如果不为1了,也就是下一个通信的使能不能为1,进行不下去了,那么1s的超时限制还有用?就不能进行循环读取了?
一下子问了不少,知道会很麻烦。
不要网上的例子了,好能讲一下!
图片说明: 1,官网程序
佳答案
1:按照西门子官网的那个轮训程序直接编写就可以了,靠完成位进行触发,即可进行循环。参照下属文档中的例子程序,直接搜索modbus这个关键字就可以找到例子的
。micropower0.95
https://www.ad.siemens.com.cn/download/searchresult.aspx?searchtext=a0136
2:如果只有一块仪表其实也很简单,讲一个数据读取三次就可以解决,同时也是按照完成位触发下一个msg指令来完成的,思路一样