bkqwz
級別: 略有小成
|
我剛用S7-200不久,想學MODBUS RTU通訊,我想用實現兩個PLC之間的通信,用主站的輸入控制從站輸出,用從站的輸入控制主站的輸出,能實現嗎,該怎樣編程,謝謝! 問題補充:1比如主站指令的讀操作,可以把從站的輸入讀到主站的dataPtr指向的V存儲區,然后用傳送指令把這個數據傳到QB0是否就能實現從站控制主站的輸出了?反之,我把主站的輸入傳送到V存儲區然后用主站的寫指令把數據寫進從站的QB0,是否就實現了主站的輸入控制了從站的輸出了,我做了個實驗咋不行啊,2兩個PLC用MODBUS通訊是不是主站用主站庫,從站用從站庫,要配對使用啊,3從站指令的HOIDSTART寄存器放的是啥數據,有何作用?4主站尋址10001-19999是離散輸入,它對應的不是主站側的輸入啊,而從站尋址010001-010128是實際輸入I0.0-I15.7它是從站的實際輸入嗎,那么主站尋址中10001對應的不是主站側的實際輸入嗎? |
---|---|
|
小菜
級別: *
|
當然要主站的用主站庫,從站的用從站庫。但我建議200PLC通信走網絡讀寫指令,就是走PPI,非常的方便。加入你非要走Modbus通信,主站的你就一邊讀從站的數字量輸入,一邊用V來輸出給從站的V,然后從站就用v寫Q。主站也可以讀從站的V,這樣從站就能控制主站了 |
---|---|
|
小菜
級別: *
|
Modbus地址總是以00001、30004之類的形式出現。S7-200內部的數據存儲區與Modbus的0、1、3、4共4類地址的對應關系如下: 表1. Modbus地址對應表 Modbus地址 S7-200數據區 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中的緩沖區起始地址,即 HoldStart。 如果已知S7-200中的V存儲區地址,推算Modbus地址的公式如下: Modbus地址 = 40000 + (T/2+1) ; T為偶數 |
---|---|
|