「C#上位機」西門子1200PLC實用定位控制程序案例

2020-09-03 新閣上位機編程

​1. 引言

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

2. 項目開發平臺

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

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

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

3. 硬體接線

4. PLC編程

5. 上位機開發思路

目前比較主流開發上位機的方式,主要是組態軟體(觸控螢幕)、C開發上位機與傳統的組態軟體之間的區別,主要體現在如下三個方面:

  • 功能限制:組態軟體對於一些特定的需求或者邏輯,會有一定的局限性,使用上也受到軟體本身的約束;C開發需要完全自己搭建框架和實現底層代碼,對開發者的技術要求會更高一些。
  • 價格成本:組態軟體需要按套、按點位收費,意味著每個項目無形中都有一個基礎成本;C上位機開發,首先需要考慮的是通信問題。西門子S7-1200支持很多種不同的通信協議,包括S7、ModbusTCP、TCP/IP、UDP、OPC等,從開發成本上來說,我們優先考慮S7和ModbusTCP,對於S7和ModbusTCP通信協議,比較一下兩者的優缺點:

    • S7協議為西門子內部協議,協議本身不公開,需要調用或者自己開發通信庫,使用S7通信協議需要勾選CPU中的允許來自遠程對象的PUT/GET通信訪問。
    • ModbusTCP為公開、免費協議,可以自己開發通信庫或者使用開源庫,使用ModbusTCP通信協議需要編寫一定的PLC程序來實現地址映射。

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

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

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

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

    ModbusServer程序編寫

    上位機UI界面設計

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

    6. 上位機功能開發

    • 首先創建一個Windows窗體應用項目,項目名稱為thinger.com.MotionPro。
    • 日誌顯示功能:日誌顯示採用ListView進行顯示,綁定一個ImageList用來區分信息、報警、錯誤,添加日誌方法的參數包含日誌等級及日誌內容。
    • 自己開發ModbusTCP通信庫或者使用開源庫,該庫應該具備建立連接、斷開連接、預置寄存器、讀取寄存器的功能。
    • 建立連接和斷開連接:這裡通過按鈕實現建立連接和斷開連接2個功能。
    • 相對位置運動:設置相對運動速度和相對運動位置,實現電機的相對運動。
    • 絕對位置運動:設置絕對運動速度和絕對運動位置,實現電機的相對運動。
    • 點動運動模式:設置點動運動速度,按住正向點動或者反向點動,實現電機的點動運動。
    • 回原點模式:點擊回原點,可以控制物體回到原點位置並停止。
    • 運動停止、運動暫停、復位相關功能。

相關焦點

  • S7-1200PLC與上位機ModbusTCP通信
    西門子PLC作為市場佔有率非常高的一款PLC,支持Profinet、Profibus、S7、Modbus、TCP等多種通信協議,本案例以S7-1200 PLC為例,主要講述使用西門子PLC作為ModbusTCP伺服器,上位機作為ModbusTCP客戶端的應用場景。
  • 西門子1200PLC的運動控制功能
    西門子 S7-1200是一款緊湊型、模塊化的PLC,擴展性能比較優秀,可完成一些簡單和高級的邏輯控制、自帶乙太網口,與HMI,PC等上位機通訊方便快捷 。此外,它具有支持小型運動控制系統、過程控制系統的高級應用功能。接下來為大家分享一下西門子1200運動控制程序。點擊「指令」、「工藝」、「運動控制」,出現運動控制指令。
  • 西門子PLC和觸控螢幕的常見問題分享「技成周報27期」
    答:這個都可以PLC和接線,可以雙重保險6、問:S7-1200作為IO設備與S7-200SMART的PN通信,組態完的S7-1200與S7-200SMART的IO地址映射關係測試沒問題,怎麼在1200寫程序控制200samrt呢答:你只需要把數據放入到對應的
  • 西門子1200PLC通過EPOS方式控制V90伺服
    西門子1200PLC EPOS方式運動控制到底是什麼?其實是1200PLC通過PROFINET通信實現西門子V90 PN伺服驅動器的基本定位控制。西門子EPOS方式的運動控制共三個主要的部分:第一部分,西門子PROFINET通信概述;第二部分,V90PN伺服驅動器與西門子的PROFINET通信;第三部分,V90PN伺服驅動與S7-1200PLC通過EPOS的方式實現定位控制。
  • 三菱plc與西門子plc的區別及優缺點對比
    打開APP 三菱plc與西門子plc的區別及優缺點對比 發表於 2019-04-28 17:47:24 三菱PLC與西門子PLC
  • 「必學技能」基於C#實現手機APP遠程訪問西門子PLC(附源碼)
    對於文中涉及的MQTT伺服器及MQTT客戶端的源碼,大家可以關注dotNet工控上位機公眾號,關注後發送關鍵詞:MQTT通信源碼。隨著5G時代的來臨,物聯網開始加速盛行,慢慢地融入到我們的生活當中,萬物互聯互通將不再只是紙上談兵。
  • 西門子PLC與三菱PLC的區別在哪裡?
    西門子plc:德國品牌,指令比較抽象,學習難度較大,但指令較少。窩窩個人認為三菱(日系的中高端品牌)PLC的軟體至少落後西門子5年以上,大中型的暫且不說,就拿三菱比較有優勢的小型機FX系列和西門子S7-200系列相比,西門子有如下優勢:1、三菱的編程軟體從早期的FXGPWIN到近期的GX8.0(小編所知道最新的),和所有的日系品牌一樣,該軟體的編程思路是自上而下的單一縱向結構,而西門子的MicroWIN則是縱向和橫向兼備的結構,而且子程序支持局部變量
  • VisualStudio2010-C#跟西門子1200(Sharp7)簡單上位機界面④-數據
    VisualStudio2010-C#跟西門子1200(Sharp7)-簡單上位機界面④-數據上期回顧(上期主要是對啟動,停止,復位,清零等按鈕複雜的代碼進行縮編,簡化代碼方便閱覽)
  • 西門子1200PLC 配置運動控制工藝,控制面板實現位置控制控制
    使用西門子1200PLC控制步進電機時,需要用到博途軟體中的運動控制功能,運動控制工藝配置相關的運動參數,工藝控制面板,可以在不用編寫控制程序的情況下,測試工藝參數的正確性。圖 11 PLC程序下載選擇
  • 「C#上位機必看」你們要的Iot物聯網項目來了
    那麼這次,我們就採用S7.NET+Log4Net+SQLSugar+MySQL來實現一個西門子PLC數據上雲的案例。這個實現過程分為兩部分,首先在阿里雲伺服器中部署一個MySQL資料庫,一側通過S7.NET採集西門子PLC,然後使用
  • 三菱實用定位控制程序案例(賦程序)
    首先,看這篇文章需要具備定位的基礎知識,知道步進電機怎麼通過脈衝去控制的。下面是電機的示意圖,plc通過Y0發脈衝,Y7控制電機的方向。X2是正極限,X4是負極限,X3是原點回歸。控制由觸控螢幕去控制,控制的功能鍵如下M0是手自動切換開關,M1是啟動按鈕,再自動狀態下,按下M1,電機會走到位置1,再走到位置2,再走到位置3,再到4,再到5,然後回到第一步,不斷循環。
  • 西門子PLC編程軟體下載_西門子PLC編程軟體官方免費下載「中文版...
    西門子plc編程軟體是一款專為西門子設備而專門開發的plc編程軟體。西門子編程軟體中文版的主要為了幫助用戶使用西門子的設備,機械設備需要進行特定的程序才能夠進行工作,這款軟體就是讓你的設備按你的想法去工作。太平洋下載中心為您提供西門子plc編程軟體官方下載。
  • C#實現上位機與PLC通信
    1、三菱 MX COMPONENT下載及安裝測試2、通訊測試及數據監控打開PLC監控程序:PS:1:plc選中該程序,右擊屬性:找到程序所在文件夾以上大家可以參考源碼進行測試;下面就告訴大家怎麼自己建項目:新建一個C#窗體應用,添加引用,發現沒有案例程序中的
  • VisualStudio2010-C 跟西門子1200(Sharp7)-簡單上位機界面-參數
    VisualStudio2010-C#跟西門子1200(Sharp7)-簡單上位機界面-參數上期回顧(上期主要是對IO監控的輸入輸出做了調試,基本上都能達到要求)如下圖:本期要在補充說一個參數修改,這是作為PLC上位機也經常用的一個,你要是看了之前的文章,還是比較簡單的
  • 西門子1200PLC,組態王與資料庫通訊-⑤設置PLC設備
    西門子1200PLC,組態王與Access資料庫通訊--⑤設置PLC設備設置PLC設備1.0 打開組態王軟體,打開工程,會看到如下界面,點擊COM22.0 可以看到新建,點擊新建設備,現在我們要連的是西門子系列的1200,所有選擇西門子--S7-1200--TCP,下一步
  • 西門子PLC編程軟體
    西門子plc編程軟體是一款專為西門子設備而專門開發的plc編程軟體。西門子編程軟體中文版的主要為了幫助用戶使用西門子的設備,機械設備需要進行特定的程序才能夠進行工作,這款軟體就是讓你的設備按你的想法去工作。太平洋下載中心為您提供西門子plc編程軟體官方下載。
  • 西門子1200與編碼器的連接
    由於西門子1200的經濟性,與絕對值編碼器的連接首選較為經濟和方便的4—20mA信號接口,西門子1200均自帶2路4—20mA輸入接口,可直接連接2個帶有4—20mA輸出接口的絕對值編碼器。
  • 基於臺達PLC和變頻器的定位控制系統
    比如很多設備上都要使用的定位控制的實現就有很多種方法。有的利用單片機結合伺服系統實現定位控制;有的使用plc高速脈衝輸出功能或配定位單元結合伺服系統實現;還有的利用變頻器的多段速控制來實現定位控制。但不同的定位控制系統有不同的特點,成本也有很大的差異,於是針對不同的設備對精度和響應速度的要求,選用合適的定位控制系統以實現最優的性價比就非常必要。
  • 「C#上位機必看」你們想要的練手項目來了
    最近有越來越多做電氣的小夥伴開始學習C#來做上位機開發,很多人在學習一段時間後,都有這種感覺,似乎學到了很多知識,但是不知道怎麼應用,因此我找了一個真實的上位機小項目,讓大家來練練手。這篇文章主要對這個項目案例及開發過程做個整體介紹。
  • 西門子PLC編程中FB和FC的區別
    打開APP 西門子PLC編程中FB和FC的區別 葉子 發表於 2011-06-20 10:54:04     用西門子