兼容西門子S7-200 PLC Modbus通訊應用
S7-200的串口Modbus通信被廣泛應用于S7-200與儀表、變頻器、HMI及第三方plc的數據交換。S7-200 Modbus串口通信指令本身使用簡單,但由于應用范圍廣泛,所以在應用中會遇到各種問題。
Modbus是公開通信協議,其最簡單的串行通信部分僅規定了在串行線路的基本數據傳輸格式,在OSI七層協議模型中只到1,2層。Modbus具有 兩種串行傳輸模式,ASCII和RTU。它們定義了數據如何打包、解碼的不同方式。支持Modbus協議的設備一般都支持RTU格式。通信雙方必須同時支 持上述模式中的一種。Modbus是一種單主站的主/從通信模式。Modbus網絡上只能有一個主站存在,主站在Modbus網絡上沒有地址,從站的地址 范圍為0-247,其中0為廣播地址,從站的實際地址范圍為1-247。Modbus通信標準協議可以通過各種傳輸方式傳播,如RS232C、 RS485、光纖、無線電等。在S7-200 CPU通信口上實現的是RS485半雙工通信,使用的是S7-200的自由口功能。
S7-200通過以下方式支持Modbus通信協議:S7-200 CPU上的通信口0(Port0)通過指令庫支持Modbus RTU從站模式。S7-200 CPU上的通訊口0和1(Port0和Port1)通過指令庫支持Modbus RTU主站模式。
一、s7200 PLC MOdbus rtu通訊基礎
1.Modbus RTU主站指令庫的功能是通過在用戶程序中調用預先編好的程序功能塊實現的,該庫對Port0和Port1有效。該指令庫將設置通信口工作在自由口模式下。
2.Modbus RTU主站指令庫使用了一些用戶中斷功能,編其他程序時不能在用戶程序中禁止中斷。
3.Modbus RTU主站庫對CPU的版本有要求。CPU的版本必須為2.00或者2.01(即訂貨號為6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200 CPU不支持。
使用Modbus RTU主站指令庫,可以讀寫Modbus RTU從站的數字量、模擬量I/O以及保持寄存器。
要使用Modbus RTU主站指令庫,須遵循下列步驟:
安裝西門子標準指令庫;
按照要求編寫用戶程序調用 Modubs RTU 主站指令庫 ;
二、主站和從站功能塊
1、主站控制功能塊和數據讀寫功能塊可以參見幫助文件,寫的非常詳細!
三、注意及常見問題
1、MODBUS通訊是一種輪詢的方式,即一次只能讀取一個站的數據。所以在觸發讀取數據的時候要用脈沖觸發,而非長期為1去觸發。
2、在讀取多個從站的時候,要注意每個站的輪詢,輪詢程序沒做好,將導致通訊超時得錯誤,從而無法讀取數據。
3、參數設計的時候,奇偶校驗,通訊速率得一致,站地址不能有沖突。
4、主站與從站的數據區必須一致。
5、詳細故障可以通過程序塊得故障代碼查詢。
S7-200 PLC比較300 plc實現Modbus的優點:
雖然s7-200在實現modbus通訊時使用的是s7-200的自由口功能,借口采用rs485,或通過適配器轉換成rs232接口類型不如 cp341的豐富,但其實現modbus功能上無需組態和額外購買組件,所以實現起來既簡單而且成本低廉,在比較低端的場合是不錯的選擇.
S7-300plc+cp341的優點:
1.由于cp341可以安裝在etm200站上通過profibus方式與主站相通,此方案適合于較大型系統進行modbus通信設計和改造.
2.cp341的接口類型多,包含rs232,rs422/rs485.
從MODBUS RTU庫中調用MODBUS子程序后需要給其分配庫存儲區。即選擇項目目錄樹下的“程序塊”->“庫”,點擊鼠標右鍵,在彈出的菜單中選擇“庫存儲區(M)...”,在彈出的對話框中分配庫存儲區地址,此地址不要與其他程序使用的存儲區重疊。
1.地址選擇:由于指令庫占用一定地址空間,編程時要注意,可以使用建議地址,不會有沖突(注意:間接接尋址檢測不到)。
2.STEP 7-Micro/WIN V4.0以上版內部已經帶有新的指令庫,但在未安裝西門子Instruction Library軟件包的情況下,不能顯示出來使用。
要使用西門子的標準指令庫,必須先安裝西門子的指令庫軟件包Instruction Library。安裝了Instruction Library之后,只要安裝的STEP7-Micro/WIN版本是最新的,就能獲得相應版本的新指令庫。安裝Micro/WIN的升級包 (Service Pack)也會更新指令庫的版本。
需要下載:
Toolbox_V32-STEP7-Micro WIN 32 Instruction Library
3.PLC間邏輯地應連接好。
S7-300、CP341作主站時需要安裝的軟件及功能塊注意事項:
串行通訊模板的驅動程序,安裝后才能驅動PTP模板,STEP7中才能使用相應功能塊。CP341做主站時還需要安裝MODBUS MASTER的驅動協議。
另外,功能塊中R-TYP必須為大寫如“X”(extended data block),“E”(I區),“A”(Q區),LEN的內容要按通訊功能碼來填寫,如功能碼“01”--》長度“6”。