上位機(jī)開發(fā)之西門子PLC-S7通信實(shí)踐

就目前而言,在中國的工控市場(chǎng)上,西門子仍然占了很大的份額,因此對(duì)于上位機(jī)開發(fā)而言,經(jīng)常會(huì)存在需要與西門子PLC進(jìn)行通信的情況。然后對(duì)于西門子PLC來說,通信方式有很多,下面簡單列舉一下:
(1)? S7通信:PLC作為服務(wù)器,上位機(jī)作為客戶端
(2)? 開放式TCP通信:PLC作為服務(wù)器,上位機(jī)作為客戶端
(3)? 開放式TCP通信:PLC作為客戶端,上位機(jī)作為服務(wù)器
(4)?? ModbusTCP通信:PLC作為服務(wù)器,上位機(jī)作為客戶端
(5)?? ModbusTCP通信:PLC作為客戶端,上位機(jī)作為服務(wù)器
(6)?? ModbusRTU通信:PLC作為主站,上位機(jī)作為從站
(7)?? ModbusRTU通信:PLC作為從站,上位機(jī)作為主站
(8)?? Simatic Net OPCDA通信
(9)?? Simatic Net OPCUA通信
(10) KepServer OPCDA通信
(11) KepServer OPCUA通信
由于篇幅有限,這次僅以西門子S7通信為例,說明下如何基于S7通信協(xié)議實(shí)現(xiàn)與西門子PLC之間的通信。
1. PLC軟件安裝及配置
目前西門子PLC主要使用的軟件包括STEP7-MicroWIN SMART、SIMATIC STEP7以及TIA Portal。TIA Portal已經(jīng)完全兼容STEP 7,因此以后應(yīng)該是STEP 7-MicroWIN SMART作為小型PLC的編程軟件,TIA作為中大型PLC的編程軟件,這里主要以博途為例進(jìn)行說明:
如果大家需要軟件的,可以關(guān)注左上方公眾號(hào),或者搜索微信公眾號(hào):dotNet工控上位機(jī),關(guān)注后發(fā)送關(guān)鍵詞:200SMART編程軟件即可獲取STEP 7-MicroWIN SMART V2.5軟件,發(fā)送關(guān)鍵詞:博圖V15即可獲取TIA V15.1編程軟件。
軟件安裝完成后,PLC的配置也很簡單,如果大家手頭沒有實(shí)際的PLC,也可以通過仿真的方式搭建PLC環(huán)境,具體可以參考文章:戳↓
基于S7-PLCSIM Advanced搭建S7通信仿真環(huán)境
無論使用何種方式,以下兩個(gè)地方需要進(jìn)行配置一下:
PLC配置一:需要將PLC的允許來自遠(yuǎn)程對(duì)象的PUT/GET通信訪問勾選。
PLC配置二:對(duì)于DB塊的訪問,需要取消勾選優(yōu)化訪問。
2. 通信平臺(tái)測(cè)試
(1)完成以上配置后,就可以通過自己開發(fā)的喜科堂通信測(cè)試平臺(tái)軟件進(jìn)行測(cè)試,導(dǎo)航欄中選擇西門子PLC,然后輸入正確的IP地址,在CPU類型中選擇自己的CPU類型:

(1)輸入完成之后,點(diǎn)擊建立連接,建立連接之后,日志欄會(huì)有連接成功提示。
(2)在讀寫測(cè)試中,輸入相應(yīng)的變量地址及變量類型,即可實(shí)現(xiàn)相關(guān)變量的通信讀寫及測(cè)試。

3. 項(xiàng)目級(jí)別應(yīng)用
通信測(cè)試平臺(tái)僅僅只是用于測(cè)試通信是否正常,實(shí)現(xiàn)正常的單變量數(shù)據(jù)讀取和寫入。但是如果是項(xiàng)目級(jí)別開發(fā),還需要有一套更完善的通信架構(gòu),這里我采用的是自主開發(fā)的上位機(jī)通信配置一體化軟件(簡稱CMS配置軟件)。
(1)通過PLC設(shè)備右擊選擇西門子PLC,在打開的窗體中設(shè)置好相關(guān)參數(shù):
設(shè)備名稱:根據(jù)實(shí)際情況填寫(無特殊字符即可)
設(shè)備備注:根據(jù)實(shí)際情況填寫(無特殊字符即可)
IP地址:根據(jù)實(shí)際PLC的IP地址填寫
機(jī)架號(hào)、插槽號(hào):根據(jù)實(shí)際PLC的情況填寫
PLC類型:根據(jù)實(shí)際PLC的情況填寫
連接超時(shí):PLC連接時(shí)的超時(shí)時(shí)間,默認(rèn)是2000ms
容錯(cuò)次數(shù):判斷連接故障的容錯(cuò)次數(shù),默認(rèn)為1,即表示某次讀取出錯(cuò),即判斷連接故障,根據(jù)實(shí)際情況可以適當(dāng)放大
重連周期:通信過程中,出現(xiàn)斷線時(shí),重連的周期,默認(rèn)是5000ms

(2)在PLC設(shè)備下,右擊添加通信組,根據(jù)需要填寫相應(yīng)的存儲(chǔ)區(qū)及起始地址及長度:

(3)通信組下面,根據(jù)實(shí)際情況配置相應(yīng)的變量,輸入開始地址及變量類型即可,變量地址會(huì)自動(dòng)變換,這里可以輸入比例系數(shù)及偏移量,用于做線性變換使用:

(4)對(duì)于變量配置,左下角會(huì)有一個(gè)報(bào)警歸檔配置,主要用于配置該變量的報(bào)警類型、歸檔方式及設(shè)定限制:

(5)完成上述配置后,可以點(diǎn)擊保存配置,再點(diǎn)擊啟動(dòng)運(yùn)行,即可實(shí)現(xiàn)實(shí)時(shí)通信:

(6)同時(shí)可以通過另存為,存儲(chǔ)為一個(gè)配置文件的形式,再基于配置dll,可以通過快速方式實(shí)現(xiàn)配置解析及通信數(shù)據(jù)解析,這樣整個(gè)項(xiàng)目的通信框架即可搭建完成。
4. 整體總結(jié)
本文主要針對(duì)西門子PLC的通信配置、通信配置及項(xiàng)目應(yīng)用做了較為詳細(xì)的描述,希望可以給一些想要去開發(fā)西門子PLC項(xiàng)目的同學(xué)一些幫助。這樣的一套思路同樣適用于其他品牌的PLC,我們旨在節(jié)約大家開發(fā)項(xiàng)目中在通信方面的時(shí)間,而將更多的精力投放在項(xiàng)目工藝開發(fā)中。
寫在后面:
很多小伙伴想要CMSPro軟件來進(jìn)行學(xué)習(xí),因此綜合考慮,現(xiàn)提供CMSPro軟件試用版供大家學(xué)習(xí)使用,試用版功能方面可能會(huì)存在部分刪減,但是可以滿足大部分小伙伴的學(xué)習(xí)需求,目前僅針對(duì)本公眾號(hào)粉絲,具體獲取方式,通過關(guān)注本公眾號(hào):dotNet工控上位機(jī),發(fā)送關(guān)鍵詞:CMSPro試用,即可獲取。同時(shí)我們的通信庫xktComm.dll也提供試用版,大家可以通過nuget搜索xktComm,安裝使用,最后祝大家工作生活愉快。

2020年最新C#/.Net上位機(jī)快速入門試學(xué)教程全集
(C#/Sql/Winform/Modbus/OPC/西門子/三菱/歐姆龍)
?長按掃碼進(jìn)入學(xué)習(xí)↓↓↓

