S7-1200PLC與上位機ModbusTCP通信


​ 西門子PLC作為市場占有率非常高的一款PLC,支持Profinet、Profibus、S7、Modbus、TCP等多種通信協議,本案例以S7-1200 PLC為例,主要講述使用西門子PLC作為ModbusTCP服務器,上位機作為ModbusTCP客戶端的應用場景。西門子S7-1200 PLC並不支持直接ModbusTCP,需要編寫一些PLC程序,PLC程序的主要目的是通信參數及地址映射的設置。

【新閣在線教育 服務號:thinger_as】

1. PLC程序編寫

步   驟 操作 說明
1 通過博圖軟件創建一個新的PLC項目,
根據硬件型號插入新設備,這里為
CPU 1214C DC DC DC
2 雙擊PLC的以太網口,設置IP地址,
這里設置為192.168.1.210
3 創建一個新的DB塊用於數據傳輸,定義為DB100,其中<ModbusData為200個
字節的數組,注意DB塊要去除優化的塊
訪問
4 打開OB1,將指令MB_SERVER拖拽至OB1的程序段1中,根據操作提示,添加背景數據塊
5 將MB_SERVER功能塊各個引腳填寫完整:
(1)DISCONNECT設置為False
(2)CONNECT_ID設置為1
(3)IP_PORT使用默認502
(4)MB_HOLD_REG使用創建的ModbusData
6 編譯PLC程序,下載PLC程序

 

2. Modbus地址映射

PLC程序編寫完成后,下一步進行Modbus測試,在測試之前,首先明確Modbus地址與PLC地址的映射關系:

 

 

由上表可知,Modbus的0區、1區和3區,分別對應PLC的過程映像輸出、過程映像輸入和過程映像輸入,但實際應用中,這三個區應用較少,主要使用的是4區,4區的映射地址是由自己設置,也就是MB_HOLD_REG。

3. 通信功能測試

下面我們使用ModbusPoll軟件來針對各個區做下簡單的測試,具體如下所示:

  • 輸出Q點對應0區:該存儲區是可讀可寫的,可以通過ModbusPoll讀取到PLC中Q點的值,也可以進行寫入,PLC監控及Modbus軟件監控結果如下:

  • 輸入I點對應1區:該存儲區是只讀的,可以通過ModbusPoll讀取到PLC中I點的值,PLC監控及Modbus軟件監控結果如下:

  • 過程輸入存儲區對應3區:該存儲區是只讀的,可以通過ModbusPoll讀取到PLC中輸入存儲區的值,PLC監控及Modbus軟件監控結果如下:

  • 創建的DB存儲區對應4區:該存儲區是可讀可寫的,可以通過ModbusPoll讀取到PLC中DB存儲區的值,也可以進行寫入,PLC監控及Modbus軟件監控結果如下:

 

4. 寫在最后

       公司開通了服務號,用於活動通知。針對本群粉絲,直接掃描下方二維碼,關注新閣教育公眾號,后台回復【抽獎】,獎品豐厚,先到先得。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM