C#上位機(jī)通過標(biāo)簽讀寫西門子PLC的兩種方案
-Begin-
寫在前面
經(jīng)常有小伙伴問我,歐姆龍、倍福、AB、Codesys這些PLC都可以實(shí)現(xiàn)標(biāo)簽變量讀取,那么西門子PLC是否支持標(biāo)簽變量讀取呢?
那么今天跟大家分享一下,上位機(jī)與西門子PLC實(shí)現(xiàn)標(biāo)簽讀取的兩種方案。
S7 Comm Plus
可能大家都聽過S7協(xié)議,這個(gè)是西門子的官方協(xié)議,那么S7 Comm Plus是什么協(xié)議呢?
Siemens S7 Comm Plus,顧名思義,就是S7協(xié)議的升級(jí)版。
S7-200、S7-300、S7-400系列的PLC采用早期的西門子私有協(xié)議S7comm進(jìn)行通信。S7-1200/1500系列固件版本為V3.0以下的PLC采用西門子新一代的S7comm-Plus協(xié)議進(jìn)行通信,該協(xié)議采用了一些特殊編碼規(guī)范。
KepServer V6.6版本支持Siemens S7 Plus Ethernet驅(qū)動(dòng),通過本地S7 Comm Plus協(xié)議采集 S7-1200 和 S7-1500 PLC 的符號(hào)地址。使用在線自動(dòng)生成標(biāo)簽功能,用戶不再需要從 TIA Portal 項(xiàng)目中手動(dòng)導(dǎo)入標(biāo)簽。
我們測試使用的是西門子S7-1500的PLC,創(chuàng)建好一個(gè)用于測試使用的DB塊,這里的DB塊是優(yōu)化的塊訪問,沒有偏移量。

通過KepServer添加一個(gè)通道,驅(qū)動(dòng)選擇Siemens S7 Plus Ethernet,如下圖所示。

然后再添加一個(gè)設(shè)備,設(shè)備向?qū)е?,ID填寫IP地址,如下圖所示:

再添加一個(gè)靜態(tài)標(biāo)記,如下圖所示:

這里的標(biāo)記地址可以參考幫助,格式如下:PLC名稱.Blocks.DB塊名稱.變量名稱。
運(yùn)行看下效果:

我們用OPC客戶端軟件來連接測試一下:

OPC UA
目前西門子新出的1200和1500PLC大多數(shù)都支持OPCUAServer,所以只需要簡單做一個(gè)配置,激活一下OPCUA服務(wù)器功能,即可實(shí)現(xiàn)OPCUA通信。

配置完成后,西門子OPCUA的URL為opc.tcp://192.168.2.153:4840。
我們通過OPCUA客戶端來連接測試一下:
