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

表1. Modbus地址對(duì)應(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存儲(chǔ)區(qū)地址,推算Modbus地址的公式如下:

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