bkqwz
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 167 個
工控威望: 216 點
下載積分: 611 分
在線時間: 49(小時)
注冊時間: 2009-01-02
最后登錄: 2019-08-22
查看bkqwz的 主題 / 回貼
樓主  發(fā)表于: 2010-08-07 15:23
我剛用S7-200不久,想學(xué)MODBUS  RTU通訊,我想用實現(xiàn)兩個PLC之間的通信,用主站的輸入控制從站輸出,用從站的輸入控制主站的輸出,能實現(xiàn)嗎,該怎樣編程,謝謝!
問題補充:1比如主站指令的讀操作,可以把從站的輸入讀到主站的dataPtr指向的V存儲區(qū),然后用傳送指令把這個數(shù)據(jù)傳到QB0是否就能實現(xiàn)從站控制主站的輸出了?反之,我把主站的輸入傳送到V存儲區(qū)然后用主站的寫指令把數(shù)據(jù)寫進從站的QB0,是否就實現(xiàn)了主站的輸入控制了從站的輸出了,我做了個實驗咋不行啊,2兩個PLC用MODBUS通訊是不是主站用主站庫,從站用從站庫,要配對使用啊,3從站指令的HOIDSTART寄存器放的是啥數(shù)據(jù),有何作用?4主站尋址10001-19999是離散輸入,它對應(yīng)的不是主站側(cè)的輸入啊,而從站尋址010001-010128是實際輸入I0.0-I15.7它是從站的實際輸入嗎,那么主站尋址中10001對應(yīng)的不是主站側(cè)的實際輸入嗎?
小菜
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看小菜的 主題 / 回貼
1樓  發(fā)表于: 2010-08-23 10:00
當(dāng)然要主站的用主站庫,從站的用從站庫。但我建議200PLC通信走網(wǎng)絡(luò)讀寫指令,就是走PPI,非常的方便。加入你非要走Modbus通信,主站的你就一邊讀從站的數(shù)字量輸入,一邊用V來輸出給從站的V,然后從站就用v寫Q。主站也可以讀從站的V,這樣從站就能控制主站了
小菜
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看小菜的 主題 / 回貼
2樓  發(fā)表于: 2010-08-23 10:01
Modbus地址總是以00001、30004之類的形式出現(xiàn)。S7-200內(nèi)部的數(shù)據(jù)存儲區(qū)與Modbus的0、1、3、4共4類地址的對應(yīng)關(guān)系如下:

表1. Modbus地址對應(yīng)表
Modbus地址 S7-200數(shù)據(jù)區(qū)
00001 ~ 00128  Q0.0 ~ Q15.7  
10001 ~ 10128 I0.0 ~ I15.7  
30001 ~ 30032  AIW0 ~ AIW62
40001 ~ 4xxxx  T ~ T + 2 * (xxxx -1)

其中T為S7-200中的緩沖區(qū)起始地址,即 HoldStart。

如果已知S7-200中的V存儲區(qū)地址,推算Modbus地址的公式如下:

Modbus地址 = 40000 + (T/2+1) ; T為偶數(shù)