問一個關于s7-200 modbus程序的問題
林慧玲
發(fā)布于2014-03-21 17:24
1
0
標簽:
按照網上的例子進行了modbus通信,雖然通信成功了,但是出現了以下幾個問題。
1.當進行讀取單一儀表通信的時候,如何保持循環(huán)通信(不要用計時器啊,sm0.5之類的計時辦法……希望的是一直保持通信)。
2.按照官網的例子編了一個順序讀取三個儀表的程序,但是因為這里只有一個儀表,所以通信就只能進行一次(即讀取一次以后就不再讀了,想再讀取就只能關了再開),想問一下都這樣嗎?是不是儀表中只要有一個不通就不能循環(huán)了?
3.后一個問題,覺得程序有問題,在進行配置主站的時候,一般都會設置超時時間為1秒,每一次讀取以后都會進行復位,然后讀取下一個。但是官網的例子是這樣的(如圖),通信結束后復位,哪原本的被置1的寄存器(例如例子中的m2.1)還為1嗎?如果不為1了,也就是下一個通信的使能不能為1,進行不下去了,那么1s的超時限制還有用?就不能進行循環(huán)讀取了?
一下子問了不少,知道會很麻煩。
不要網上的例子了,好能講一下!
圖片說明: 1,官網程序
佳答案
1:按照西門子官網的那個輪訓程序直接編寫就可以了,靠完成位進行觸發(fā),即可進行循環(huán)。參照下屬文檔中的例子程序,直接搜索modbus這個關鍵字就可以找到例子的
。micropower0.95
https://www.ad.siemens.com.cn/download/searchresult.aspx?searchtext=a0136
2:如果只有一塊儀表其實也很簡單,講一個數據讀取三次就可以解決,同時也是按照完成位觸發(fā)下一個msg指令來完成的,思路一樣