- 西門子6DD
- 西門子SIMATIC TDC
- 西門子伺服備件
- 西門子變頻器
- 西門子電源
- 西門子交換機(jī)
- 西門子電機(jī)
- 西門子PLC
- 西門子儀器儀表
- 西門子冷卻風(fēng)機(jī)
- 西門子停產(chǎn)備件
- 西門子低壓軟啟3RW40
- MDEXX(美德克斯)
- 西門子羅賓康變頻器
- 變頻器配件
- 西門子6GT識(shí)別系統(tǒng)
- 奧鋼聯(lián)冶金備件
- 西門子PCS7過(guò)程控制系統(tǒng)
- 伺服數(shù)控型S7-300
- 德國(guó)AK產(chǎn)品
- 德國(guó)TWK
- 德國(guó)派克PARKER
- 海德漢
- 西門子S7-200 SMART
- 利德華福變頻器功率單元
- 西門子硬件狗
- 西門子保護(hù)
- 電話: 010-64734946 64734947 64738638
- 傳真: 010-64738090
西門子Modbus通訊地址問(wèn)題分析
Modbus地址實(shí)際上分為兩種情況即PLC作Modbus主站,Modbus地址和PLC手冊(cè)里的地址一與PLC作從站,PLC不用管什么Modbus地址。
Modbus地址實(shí)際上分為兩種情況。下面以西門子S7-200/S7-200SMART/和S7-1200為例來(lái)說(shuō)明:
第一種情況:西門子PLC作Modbus主站,Modbus地址和PLC手冊(cè)里的地址一致,例如作主站的S7-200的MBUS_MSG指令用于向Modbus從站發(fā)送請(qǐng)求消息,和處理從站返回的響應(yīng)消息。要讀取從站(另一臺(tái)S7-200)的I0.0開(kāi)始的地址區(qū)時(shí),它的輸入?yún)?shù) Addr(Modbus地址)為10001。S7-200從站保持寄存器的V區(qū)起始地址為VB200時(shí),要讀取從站VW200開(kāi)始的V存儲(chǔ)區(qū)時(shí),保持寄存器的地址是40001。
第二種情況:PLC作從站,PLC不用管什么Modbus地址,等著主站來(lái)讀寫它的地址區(qū)就是了。
主站的計(jì)算機(jī)軟件(例如DCS或組態(tài)軟件)的編程人員需要編寫實(shí)現(xiàn)Modbus通信的程序,首先需要確定ModbusRTU的報(bào)文結(jié)構(gòu)。他們一般不熟悉PLC,因此PLC的編程人員往往需要和上位機(jī)軟件的編程人員一起來(lái)討論Modbus的報(bào)文結(jié)構(gòu)。
最容易出問(wèn)題的就是報(bào)文里Modbus地址與PLC存儲(chǔ)區(qū)地址的對(duì)應(yīng)關(guān)系。曾經(jīng)有工作人員做過(guò)的一個(gè)系統(tǒng)的上位機(jī)是專用的組態(tài)軟件,通過(guò)分析 GEPLC手冊(cè)給出的CRC的循環(huán)異或計(jì)算實(shí)例每一步的中間數(shù)據(jù),編寫出了CRC計(jì)算的C語(yǔ)言程序。通過(guò)實(shí)驗(yàn)驗(yàn)證了Modbus報(bào)文結(jié)構(gòu)和CRC的計(jì)算的可行性。
S7PLC手冊(cè)給出的Modbus地址與Modicon公司和GE公司PLC使用的地址相同,是基于1的地址,即同類元件的首地址為1。而西門子PLC采用的是基于0的地址,即同類元件的首地址為0。Modbus報(bào)文中西門子PLC的Modbus地址也采用基于0的地址。
PLC系統(tǒng)手冊(cè)中的Modbus地址的最高位用來(lái)表示地址區(qū)的類型,例如I0.0的Modbus地址為10001。因?yàn)榈刂穮^(qū)類型的信息已經(jīng)包含在報(bào)文的功能碼中了,報(bào)文中S7-200的I0.0的Modbus地址不是10001,而是0。報(bào)文中其他地址區(qū)的Modbus地址也應(yīng)按相同的原則處理。例如當(dāng)S7-200從站保持寄存器的V區(qū)起始地址為VB200時(shí),VW200對(duì)應(yīng)的保持寄存器在報(bào)文中的Modbus地址為0,而不是40001。