西門子6ES7522-1BH01-0AB0
西門子6ES7522-1BH01-0AB0
通常 Modbus 協(xié)議的保持寄存器地址范圍在 之間。對(duì)于多數(shù)應(yīng)用來說已經(jīng)夠了。但有些 Modbus 從站把地址映保持寄存器區(qū)的地址超過 的部分。
Modbus Master 協(xié)議庫支持超過 9999 的保持寄存器地址。地址范圍為。只需在調(diào)用 MBUS_MSG 子程序時(shí)給 Addr 參數(shù)賦相應(yīng)的值即可,如 。
Modubs Master 擴(kuò)展地址僅支持保持寄存器區(qū),不支持其他地址類型。
S7-200 作為 Modbus 主站方接收上來的數(shù)據(jù)格式與第三方設(shè)備不一樣怎么辦?
西門子PLC數(shù)據(jù)的存儲(chǔ)格式為高位低存。舉例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方設(shè)備與西門子數(shù)據(jù)存儲(chǔ)格式不同,是低位低存的,那么通信上來的數(shù)據(jù)就會(huì)存在錯(cuò)誤,需要進(jìn)行轉(zhuǎn)換才能使用。編程的比較多樣,針對(duì)雙字中高低字的交換可以使用SWAP(字交換)指令,若是字節(jié)交換可以考慮循環(huán)移位指令。
S7-200 是否支持如 Modbus TCP 等其它協(xié)議?
不支持。S7-200自身的通信端口或其通信擴(kuò)展模塊均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信協(xié)議。
為什么 S7-200 作 Modbus 主站時(shí) MBUS_MSG 指令報(bào)6號(hào)錯(cuò)誤?
引起6號(hào)錯(cuò)誤主要有兩方面的原因:1.多個(gè) MBUS_MSG 指令同時(shí)使能執(zhí)行;2. Modbus庫存儲(chǔ)區(qū)中分配的建議地址區(qū)與編程中已使用的V存儲(chǔ)區(qū)有重疊。
2Modbus RTU從站
2.1 CPU 上的通信口(Port0)支持 Modbus RTU 從站通信協(xié)議
S7-200 CPU上的通信口Port0可以支持Modbus RTU協(xié)議,成為Modbus RTU從站。此功能是通過S7-200的口通信實(shí)現(xiàn),因此可以通過無線數(shù)據(jù)電臺(tái)等慢速通信設(shè)備傳輸。
詳情請(qǐng)參考《S7-200手冊(cè)》之相關(guān)章節(jié)。
要實(shí)現(xiàn)Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的編程,而且須安裝STEP 7-Micro/WIN32 V3.2 Instruction Library(指令庫)。Modbus RTU功能是通過指令庫中預(yù)先編好的程序功能塊實(shí)現(xiàn)的。
Modbus RTU從站指令庫只支持CPU上的通信0口(Port0)。
2.2 編程基本步驟:
檢查Micro/WIN的版本,應(yīng)當(dāng)是STEP 7-Micro/WIN V3.2以上版本。
檢查Micro/WIN的指令樹中是否存在Modbus RTU從站指令庫(圖1),庫中應(yīng)當(dāng)包括MBUS_INIT和MBUS_SLE兩個(gè)子程序。如果沒有,須安裝Micro/WIN32 V3.2的Instruction Library(指令庫)包;
圖1. 指令樹中的庫指令
編程時(shí)使用0.1調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用0.0調(diào)用MBUS_SLE,并相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說明,可在子程序的局部變量表中找到;
圖2. 調(diào)用Modbus RTU通信指令庫
圖中參數(shù)意義如下:
- 選擇:?jiǎn)?dòng)/停止Modbus,1=啟動(dòng);0=停止
- 從站地址:Modbus從站地址,取值1~247
- 波特率:可選奇偶校驗(yàn):0=無校驗(yàn);1=奇校驗(yàn);2=偶校驗(yàn)
- 延時(shí):附加字符間延時(shí),缺省值為0
- 大I/Q位:參與通信的大I/O點(diǎn)數(shù),S7-200的I/O映像區(qū)為,缺省值為128
- 大AI字?jǐn)?shù):參與通信的大AI通道數(shù),可為16或32
- 大保持寄存器區(qū):參與通信的V存儲(chǔ)區(qū)字(VW)
- 保持寄存器區(qū)起始地址:以&VBx(間接尋址)
- 初始化完成標(biāo)志:初始化后置1
- 初始化錯(cuò)誤代碼
- Modbus執(zhí)行:通信中時(shí)置1,無 Modbus 通信活動(dòng)時(shí)為 0。