西門子PLC通信
發布日期:2025-03-09 點擊次數:65
西門子PLC通信
西門子PLC是工控領域使用非常多的一種PLC品牌,對于上位機開發人員來說,對于西門子PLC的通信,我們一般可以采取哪些通信方式呢?
今天跟大家分享一下上位機實現與西門子PLC的通信方案。
串口通信西門子PLC早期主要以S7-200、S7-300/400為主,后面逐步被S7-200Smart、S7-1200/1500所替代。目前只有S7-200與S7-200Smart是自帶串口,接口標準為RS485。如果是其他型號,想要實現串口通信,需要增加相應的串口通信模塊。西門子PLC的串口通信協議主要有2種,一種是西門子的PPI協議,另一種是ModbusRTU協議。
西門子PPI協議是一個不開放的協議,可以通過抓包來進行報文分析,但是一般不推薦使用,因為PPI協議是一個需要二次確認的協議,使用時比較麻煩。
西門子PLC也支持ModbusRTU協議,提供Modbus庫指令,直接調用即可,但是會涉及到一定的編程。
如果選擇ModbusRTU協議,需要區分主站從站,一般來說,上位機與PLC通信,上位機作為主站,PLC作為從站。
以太網通信以太網是西門子PLC主要的通信方式,目前主流的S7-200Smart、S7-1200/1500都內置以太網接口,上位機與西門子PLC實現以太網通信主要有S7通信、ModbusTCP通信、開放式TCP通信以及OPCUA通信。
S7協議是西門子PLC的私有協議,雖然不開放,但是目前有很多開源免費的通信庫可以使用,.Net框架下比較推薦使用s7netPlus、sharp7。如果想要實現標簽通信,S7協議有個升級版叫做S7Plus協議,可以實現標簽通信,目前尚未成熟,項目上使用較少。
西門子PLC同樣支持ModbusTCP通信,會有對應的Server和Client庫指令,一般來說,上位機與PLC通信,西門子PLC作為ModbusTCPServer,上位機作為ModbusTCPClient。
開放式TCP通信,就是我們常說的自由口通信,這個主要是針對一些自定義協議的情景,自由度較高,但是對開發人員的要求也較高。上位機與PLC之間進行開放式TCP,上位機可以作為TCPClient或者TCPServer,PLC需要編寫對應的TCPServer和TCPClient程序。
OPCUA通信,對于S7-1200、S7-1500的部分型號,可以支持OPCUA通信,一般來說,PLC作為OPCUA服務器,上位機作為OPCUA客戶端,OPCUA也是一種基于標簽名稱的通信方式。
OPC通信OPC通信是工業控制中常用的一種通信方式,OPC相當于是中間件,由OPC軟件對接PLC,然后開放一個OPC接口給上位機進行使用。西門子PLC常用的OPC通信方案有以下幾種:
PC Access系列:西門子針對S7-200提供PC-Access軟件,針對S7-200 Smart提供PC-Access Smart軟件,可以直接通過這些軟件實現OPC通信。
Simatic Net系列:Simatic Net是西門子主推的OPC軟件,支持西門子全系列,通過Simatic Net可以支持OPCUA和OPCDA通信接口。
KepServer軟件:KepServer同樣作為一款商業OPC軟件,在國內使用率非常高,同樣也支持西門子全系列,通過KepServer也可以支持OPCUA和OPCDA通信接口。如何選擇在以上眾多的通信方式中,我們該如何選擇?如果我們要實現串口通信,優先選擇ModbusRTU,其次考慮PPI,最后考慮OPC方式。如果我們要實現以太網通信,優先選擇S7協議,其次考慮ModbusTCP和開放式TCP,最后考慮OPC方式。S7通信協議最大的優勢在于不用編寫PLC程序,且覆蓋面較廣,只要是西門子PLC,無論是S7-200/300/400,還是S7-200Smart/1200/1500,只要PLC具備以太網接口,均支持S7通信協議。雖然S7通信協議不需要編寫PLC程序,但仍然需要進行一定的配置,具體如下:
勾選允許Put/Get:PLC側需要設置勾選允許來自遠程對象的Put/Get通信訪問
DB塊去除優化訪問:如果要與DB塊數據通信,需要要去除DB的優化的塊訪問
務必保證通信地址是有效地址:如果你要讀取DB存儲區,必須要提前創建好DB存儲區,必須保證讀取的必須是有效地址,其他存儲區也不能超過范圍。
調整通信負載:如果以上均沒問題,可以適當調整一下通信負載參數。
v
上一條:為什么變壓器不認kW?kVA
下一條:變頻電機和普通電機:為什么不能互通?