上位機開發之西門子PLC-S7通訊實踐

常哥說程式設計發表於2020-06-08

 

寫在前面:

就目前而言,在中國的工控市場上,西門子仍然佔了很大的份額,因此對於上位機開發而言,經常會存在需要與西門子PLC進行通訊的情況。然後對於西門子PLC來說,通訊方式有很多,下面簡單列舉一下:

 

(1)  S7通訊:PLC作為伺服器,上位機作為客戶端

(2)  開放式TCP通訊:PLC作為伺服器,上位機作為客戶端

(3)  開放式TCP通訊:PLC作為客戶端,上位機作為伺服器

(4)   ModbusTCP通訊:PLC作為伺服器,上位機作為客戶端

(5)   ModbusTCP通訊:PLC作為客戶端,上位機作為伺服器

(6)   ModbusRTU通訊:PLC作為主站,上位機作為從站

(7)   ModbusRTU通訊:PLC作為從站,上位機作為主站

(8)   Simatic Net OPCDA通訊

(9)   Simatic Net OPCUA通訊

(10) KepServer OPCDA通訊

(11) KepServer OPCUA通訊

由於篇幅有限,這次僅以西門子S7通訊為例,說明下如何基於S7通訊協議實現與西門子PLC之間的通訊。

 

1. PLC軟體安裝及配置

目前西門子PLC主要使用的軟體包括STEP7-MicroWIN SMART、SIMATIC STEP7以及TIA Portal。TIA Portal已經完全相容STEP 7,因此以後應該是STEP 7-MicroWIN SMART作為小型PLC的程式設計軟體,TIA作為中大型PLC的程式設計軟體,這裡主要以博途為例進行說明:

如果大家需要軟體的,可以關注左上方公眾號,或者搜尋微信公眾號:dotNet工控上位機,關注後傳送關鍵詞:200SMART程式設計軟體即可獲取STEP 7-MicroWIN SMART V2.5軟體,傳送關鍵詞:博圖V15即可獲取TIA V15.1程式設計軟體。

軟體安裝完成後,PLC的配置也很簡單,如果大家手頭沒有實際的PLC,也可以通過模擬的方式搭建PLC環境,具體可以參考文章:戳↓

基於S7-PLCSIM Advanced搭建S7通訊模擬環境

 

無論使用何種方式,以下兩個地方需要進行配置一下:

PLC配置一:需要將PLC的允許來自遠端物件的PUT/GET通訊訪問勾選。

PLC配置二:對於DB塊的訪問,需要取消勾選優化訪問。

 

2. 通訊平臺測試

(1)完成以上配置後,就可以通過自己開發的喜科堂通訊測試平臺軟體進行測試,導航欄中選擇西門子PLC,然後輸入正確的IP地址,在CPU型別中選擇自己的CPU型別:

上位機開發之西門子PLC-S7通訊實踐

圖表 1新閣通訊測試平臺

 

(1)輸入完成之後,點選建立連線,建立連線之後,日誌欄會有連線成功提示。

(2)在讀寫測試中,輸入相應的變數地址及變數型別,即可實現相關變數的通訊讀寫及測試。

上位機開發之西門子PLC-S7通訊實踐

圖表 2新閣通訊測試平臺測試

 

3. 專案級別應用

通訊測試平臺僅僅只是用於測試通訊是否正常,實現正常的單變數資料讀取和寫入。但是如果是專案級別開發,還需要有一套更完善的通訊架構,這裡我採用的是自主開發的上位機通訊配置一體化軟體(簡稱CMS配置軟體)。

(1)通過PLC裝置右擊選擇西門子PLC,在開啟的窗體中設定好相關引數:

裝置名稱:根據實際情況填寫(無特殊字元即可)

裝置備註:根據實際情況填寫(無特殊字元即可)

IP地址:根據實際PLC的IP地址填寫

機架號、插槽號:根據實際PLC的情況填寫

PLC型別:根據實際PLC的情況填寫

連線超時:PLC連線時的超時時間,預設是2000ms

容錯次數:判斷連線故障的容錯次數,預設為1,即表示某次讀取出錯,即判斷連線故障,根據實際情況可以適當放大

重連週期:通訊過程中,出現斷線時,重連的週期,預設是5000ms

上位機開發之西門子PLC-S7通訊實踐

圖表 3建立PLC

 

(2)在PLC裝置下,右擊新增通訊組,根據需要填寫相應的儲存區及起始地址及長度:

上位機開發之西門子PLC-S7通訊實踐

圖表 4新增通訊組

 

(3)通訊組下面,根據實際情況配置相應的變數,輸入開始地址及變數型別即可,變數地址會自動變換,這裡可以輸入比例係數及偏移量,用於做線性變換使用:

上位機開發之西門子PLC-S7通訊實踐

圖表 5新增變數

 

(4)對於變數配置,左下角會有一個報警歸檔配置,主要用於配置該變數的報警型別、歸檔方式及設定限制:

上位機開發之西門子PLC-S7通訊實踐

圖表 6報警歸檔配置

 

(5)完成上述配置後,可以點選儲存配置,再點選啟動執行,即可實現實時通訊:

上位機開發之西門子PLC-S7通訊實踐

圖表 7實時通訊

 

(6)同時可以通過另存為,儲存為一個配置檔案的形式,再基於配置dll,可以通過快速方式實現配置解析及通訊資料解析,這樣整個專案的通訊框架即可搭建完成。

 

4. 整體總結

本文主要針對西門子PLC的通訊配置、通訊配置及專案應用做了較為詳細的描述,希望可以給一些想要去開發西門子PLC專案的同學一些幫助。這樣的一套思路同樣適用於其他品牌的PLC,我們旨在節約大家開發專案中在通訊方面的時間,而將更多的精力投放在專案工藝開發中。

 

寫在後面:

很多小夥伴想要CMSPro軟體來進行學習,因此綜合考慮,現提供CMSPro軟體試用版供大家學習使用,試用版功能方面可能會存在部分刪減,但是可以滿足大部分小夥伴的學習需求,目前僅針對本公眾號粉絲,具體獲取方式,通過關注本公眾號:dotNet工控上位機,傳送關鍵詞:CMSPro試用,即可獲取。同時我們的通訊庫xktComm.dll也提供試用版,大家可以通過nuget搜尋xktComm,安裝使用,最後祝大家工作生活愉快。

 

更多精彩內容:

(點選即可閱讀)

西門子PLC上位機軟體開發歷程

上位機C#通過TCP/IP和庫卡機器人通訊

上位機C#通過OPCUA和西門子PLC通訊

基於C#實現本地資料上傳至雲伺服器

上位機開發之三菱Q系列PLC通訊實踐

 


相關文章