200 SMART PLC基于Modbus TCP服務(wù)器的通信
一、引言
在應(yīng)用西門子中小型PLC通信的時候,西門子目前主推的PLC比如s7-200 SMART PLC的CPU模塊都自帶有網(wǎng)口和RS485口,可以非常方便的組網(wǎng)。除了RS485口能定義Modbus RTU通信,網(wǎng)口也能定義Modbus TCP通信。
二、ModbusTCP服務(wù)器通信
Modbus TCP通信,使得Modbus RTU協(xié)議運(yùn)行于以太網(wǎng),Modbus TCP使用TCP/IP和以太網(wǎng)在站點(diǎn)間傳送Modbus報文,Modbus TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡(luò)和網(wǎng)絡(luò)標(biāo)準(zhǔn)TCP/IP以及以Modbus作為應(yīng)用協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)表示方法。Modbus TCP通信報文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。
2.1 配置PLC為ModbusTCP服務(wù)器
西門子s7-200SMART系列PLC,如CPU型號為CPU ST40,集成有一個RS485口和一個網(wǎng)口,可以方便的組態(tài)為串口或自由口通信,比如Modbus RTU;而STEP 7-Micro/WIN SMART V2.2 和S7-200 SMART CPU 固件V2.2的發(fā)布,S7-200 SMART CPU開始支持TCP通信。

如圖1所示,在STEP 7-MicroWIN SMART軟件中配置PLC的硬件組態(tài),CPU行選擇相應(yīng)型號,EM0開始選擇擴(kuò)展模塊。CPU ST40(DC/DC/DC)集成有24點(diǎn)輸入和16點(diǎn)輸出。
2.2 Modbus TCP通信程序編寫
在STEP 7-MicroWIN SMART中將硬件組態(tài)下載至PLC,也可以連帶程序一并下載。通信程序包括添加指令庫,調(diào)用通信指令,及通信指令編程。
2.2.1 添加指令庫MB_Server_0
首先要確定CPU和編程軟件的版本是否支持Modbus TCP通信,硬件如圖1所示,軟件如圖2所示,保證兩者的版本都在V02.02以上。

其次確定指令庫是否更新有支持Modbus TCP通信的指令庫,注意庫文件夾Open User Comm Test下的TCP_CONNECT(如圖3)并不是指Modbus TCP。

一般沒有支持Modbus TCP通信的指令庫,需要購買并添加,當(dāng)然可以去網(wǎng)上下載網(wǎng)友共享出來的該指令庫。

STEP 7-Micro/WIN SMART庫文件夾一般存儲路徑為C:\Users\Public\ Documents\Siemens\STEP 7-MicroWIN SMART\Lib(如圖5),將下載的格式為smartlib的庫文件拷入該路徑下,然后進(jìn)行添加(如圖4)。

重啟編程軟件,可以看見“MB_Server_0”指令庫已經(jīng)被添加到項目樹的庫節(jié)點(diǎn)下(如圖4),此外還可以添加客戶端指令庫“MB_Client_0”。
2.2.2 在程序中調(diào)用通信指令

MBS_Connect指令用于建立或斷開Modbus TCP連接;MBS_Slave指令用于處理來自Modbus TCP客戶端的請求,并且該指令必須在每次掃描時執(zhí)行,以便檢查和響應(yīng) Modbus 請求。指令塊的接口參數(shù)的類型和定義及功能,可按F1獲取系統(tǒng)幫助。
2.3 Modscan32通信測試
至此,已經(jīng)完成了Modbus TCP服務(wù)器的通信設(shè)置和編程,接下來就可以連接通信口開始數(shù)據(jù)包的測試了。

相比于眾多的串口調(diào)試工具小軟件需要手動發(fā)送報文,解析接收到的報文以此來判斷通信是否正常,Modscan32,可以非常方便簡單地測試Modbus通信。為測試PLC的Modbus TCP服務(wù)器通信,在調(diào)試工具做如圖7設(shè)置。

如圖8,Modscan32軟件界面03功能碼的地址40001-40010分別寫入1.11、2.22、3.33、4.44、5.55,注意浮點(diǎn)數(shù)占用兩個字,且西門子PLC浮點(diǎn)數(shù)雙字需要交換高低字(如圖11紅框)。

在PLC側(cè),在編程軟件中監(jiān)視狀態(tài)表VD1000~VD1016,對應(yīng)40001~40010的數(shù)值,如圖9所示。

交換讀寫,如圖10、11。通過簡單測試,可以說明s7-200 SMART PLC通過Modbus TCP服務(wù)器通信配置正確,編程沒有問題,通信正常。

三、總結(jié)
西門子PLC的通信設(shè)置較為復(fù)雜,尤其是非以太網(wǎng)或自由口通信,需要調(diào)用通信指令,定義通信模式,設(shè)置通信參數(shù)和數(shù)據(jù)收發(fā)區(qū)。
對于西門子中小型PLC s7-200 SMART,其CPU模塊都自帶有網(wǎng)口和RS485口,可以非常方便的組網(wǎng)。除了RS485口能定義Modbus RTU通信,網(wǎng)口也能定義Modbus TCP通信。
在實際工程應(yīng)用中,當(dāng)CPU的一個端口(RS485)被觸摸屏占用時,本文提供了另外一個網(wǎng)口配置成Modbus TCP服務(wù)器進(jìn)而與上位機(jī)通信的解決方案,希望對大家有所啟發(fā)和幫助。