西門子1200PLC實用定位控制程序案例

引言

本文是一篇綜合性比較強的文章,從PLC輸入輸出及步進電機接線開始,到PLC運動控制程序編寫,再到後續的ModbusTCP通信協議及上位機編程實現最終控制,涉及知識面比較廣,能夠讓我們很好地將所學知識結合起來。

開發平臺

採用西門子TIA Portal V16編程軟件編寫運動控制程序,實現PLC(S7-1200系列:CPU1214C DC/DC/DC )對步進電機的控制,再通過編寫ModbusTCP程序,將控制地址進行映射,從而方便上位機(VS 2019開發)與PLC進行通信,最終實現步進電機的運動方向、速度及距離的靈活控制。

涉及硬件:開關電源、S7-1200PLC、步進驅動器、步進電機、單軸模組、限位開關

涉及軟件:TIA Portal V16、VS2019、ModbusPoll(用於測試通信)

硬件接線

 

 

PLC編程

 

 

 

 

 

 

上位機開發思路

爲了便於操作,需要配一個HMI人機界面來進行使用。這個的HMI形式是比較多樣化的,如觸摸屏、組態軟件等,但是這裏,我們採用目前比較流行的方式——C#開發上位機,來供用戶使用。C#開發上位機相對於傳統的組態軟件,各自都有自己的優缺點,主要體現在如下三個方面:

  1. 功能限制:組態軟件對於一些特定的需求或者邏輯,會有一定的侷限性,使用上也受到軟件本身的約束;C#開發上位機完全自主開發,幾乎不存在功能上的限制,並且擴展方便。

  2. 技術要求:組態軟件最大的優勢在於方便,因爲它本身都集成了一些通用協議和元件,只需要按照使用說明進行組態配置即可;C#開發需要完全自己搭建框架和實現底層代碼,對開發者的技術要求會更高一些。

  3. 價格成本:組態軟件需要按套、按點位收費,意味着每個項目無形中都有一個基礎成本;C#開發上位機自主開發,不需要二次授權費用,並且開發一套之後,可以快速應用到其他項目中。

採用C#上位機開發,首先需要考慮的是通信問題。西門子S7-1200支持很多種不同的通信協議,包括S7、ModbusTCP、TCP/IP、UDP、OPC等,從開發成本上來說,我們優先考慮S7和ModbusTCP,對於S7和ModbusTCP通信協議,比較一下兩者的優缺點:

  1. S7協議爲西門子內部協議,協議本身不公開,需要調用或者自己開發通信庫,使用S7通信協議需要勾選CPU中的允許來自遠程對象的PUT/GET通信訪問。

  2. ModbusTCP爲公開、免費協議,可以自己開發通信庫或者使用開源庫,使用ModbusTCP通信協議需要編寫一定的PLC程序來實現地址映射。

從公開免費和使用範圍的角度來考慮,這裏採用ModbusTCP通信協議,因爲你學會了ModbusTCP,意味着市場上的大部分儀表、PLC通信你都可以搞得定,PLC程序編寫如下所示:

1、創建DB塊

這裏首先創建一個DB塊,裏面包含了常用的一些操作和參數設置,值得注意的是,由於Modbus保持型寄存器的Bit位操作比較麻煩,因此這裏我們統一使用Word類型來代替Bit。

 

 2、Modbus地址與PLC地址的映射(控制位)

 

 

 3、Modbus地址與PLC地址的映射(參數地址)

 

 4、ModbusServer程序編寫

 

 5、上位機UI界面設計

 

 

6、ModbusTCP通信庫

上位機開發功能實現的核心在於ModbusTCP通信庫編寫,由於Modbus協議是公開免費,可以自己根據Modbus協議來開發,也可以使用開源的Modbus庫,如NModbus等,有了ModbusTCP通信庫之後,我們可以將更多的精力放在業務處理及邏輯處理上面。

7、ModbusTCP通信點表

 

 

上位機開發功能

1、首先創建一個Windows窗體應用項目,項目名稱爲thinger.cn.MotionPro。

2、日誌顯示功能:日誌顯示採用ListView進行顯示,綁定一個ImageList用來區分信息、報警、錯誤,添加日誌方法的參數包含日誌等級及日誌內容。

3、自己開發ModbusTCP通信庫或者使用開源庫,該庫應該具備建立連接、斷開連接、預置寄存器、讀取寄存器的功能。

4、建立連接和斷開連接:這裏通過按鈕實現建立連接和斷開連接2個功能。

5、相對位置運動:設置相對運動速度和相對運動位置,實現電機的相對運動。

6、絕對位置運動:設置絕對運動速度和絕對運動位置,實現電機的相對運動。

7、點動運動模式:設置點動運動速度,按住正向點動或者反向點動,實現電機的點動運動。

8、回原點模式:點擊回原點,可以控制物體回到原點位置並停止。

9、運動停止、運動暫停、復位相關功能。

寫在最後

這個項目整體來說難度不是很大,但是涉及的知識面比較廣,非常適合上位機初學者進行學習和練手。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章