<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      PLC 工程師需要了解的幾個 SCL 實用小技巧
      發布時間: 2024-05-31 16:12 更新時間: 2024-12-04 08:00

      1

      /


       概述


      SCL(結構化控制語言)是一種基于PASCAL的gaoji編程語言。隨著S7-1200/1500的普及,以及PLC編程中大量引入IT編程思想和編程理念,SCL在西門子PLC中使用的比重越來越大。

      SCL 在復雜編程、數學運算、間接尋址等方面相對傳統的梯形圖(LAD)有著juedui的優勢,即使是位邏輯控制也有其自身的特點。

      下面介紹幾個SCL非常有用但又不太為人所知的技巧供大家參考。


      /

      2

      /

       如何改變塊接口參數顯示模式?
      經常有客戶問,在TIA Portal 的SCL編輯器中,如何展示出像經典STEP 7里面SCL源文件那樣的文本式塊接口參數,如圖1所示。這種方式編輯起來更加靈活,也可以像文本一樣復制粘貼。
      圖片

      圖 1. 文本式塊接口參數


      其實,您會發現圖1中輸入參數數據類型Array[*]不是 S7-300/400 能支持的數據類型,也就是說其實上面圖1是在TIA Portal中編輯的,那這是如何實現呢?答案非常簡單,只要使用TIA Poral V15.1及其以上的版本,然后進行如圖2所示的設置就可以實現。


      圖片

      圖 2. 設置塊接口形式


      設置過后,新建的SCL塊的接口形式就是文本式的了。那怎么修改已有SCL塊的接口形式呢?我們可以通過將塊導出源文件然后再導入源文件的方式來進行改變。有了這個設置,就可以根據需要自由選擇塊接口參數顯示形式了。


      /

      3

      /

      如何進行循環程序的調試?


      SCL的一大特色就是非常適合循環程序編寫,如果再配合上間接尋址那就更是如虎添翼。

      但是隨之而來的是調試問題,很少有人能一次性寫出完全沒有錯誤的程序,總會有各式各樣的問題,而通過監視功能,只能像如圖3所示的那樣,Zui多監視1次循環。


      圖片

      圖3. 監視循環


      那如何解決這個問題呢?
      有gaoji語言開發經驗的人知道,此時應該使用斷點調試功能來解決。是的,S7-1500從TIA Portal V15,固件版本V2.5開始支持SCL的斷點調試。有了這個功能,就可以非常方便地調試循環內的程序執行情況。具體步驟:

      1.首先,在需要監視的循環語句那行Zui左邊灰色區域位置左鍵單擊,此時會出現一個小圓點,這就是斷點,如圖4所示。


      圖片

      圖4. 監視程序及斷點



      2.然后監視程序,并激活監視菜單中“監視循環”。如圖3所示。

      3.在右邊測試側邊欄中的“斷點”里面,左鍵選中指定斷點,然后點擊“啟用/禁用斷點”并確認。如圖5所示。


      圖片

      圖5. 啟用斷點


      4. 這時,在側邊欄中的“斷點”里面,每次點擊圖6紅色方框中的運行按鈕,就可以看到監視值的變化,如圖7所示。

      圖片

      圖6. 點擊運行


      圖片

      圖7. 監視值變化


      過程就是這樣簡單。有了這個方法,再復雜的程序調試起來也是易如反掌,并且這種方法對循環外的程序也是一樣好用。


      /

      4

      /

      順序控制能否用 SCL 來編寫?


      對于復雜的順序控制,西門子推薦使用Graph編程語言。這個專用于順控控制的語言功能強大,使用直觀,還便于和HMI互動。而對于一些簡單的順序控制,可以通過LAD/FBD去搭建邏輯,通過斷開使能、置位復位相關變量也可以實現。那可不可以使用SCL來實現該功能呢?

      答案是可以的。不僅可以,而且現在西門子官方有越來越多庫的順序控制部分都是通過SCL來實現的。并且結構清晰,易于修改,還相對Graph使用更少的程序資源。

      那是如何實現的呢?

      答案很簡單,通過CASE OF指令就可以實現。有些小伙伴就會納悶了,CASE OF不就是判斷某個變量為幾的時候,執行某些動作嗎?感覺和順控沒有任何聯系。

      不不不,聯系很大,判斷某個變量為幾,可以當做判斷目前到了哪一步,執行某些動作,我們可以當做執行該步驟時執行的動作。除此以外,還可以在步驟中加上判斷是否滿足跳轉條件,然后修改步驟號。這樣一個簡單的順控邏輯框架就搭建起來了。

      當然了,一個完整的順控還需要考慮順控如何開始,如何斷電保持,如何報警以及復位,如何控制輸出等功能,這些可以通過相關邏輯或設置進行實現。

      話不多說,可以看一下基于這個方法編的Modbus TCP輪詢功能,如圖8和9所示,是不是比自己之前LAD編的更加清晰直觀啊?是不是在這之前,根本沒覺得順控和通信輪詢有聯系?


      圖片

      圖8. 接口參數


      圖片

      圖片


      圖9. 程序示例

      怎么樣?是不是有種豁然開朗的感覺?是不是有種沖動,想趕緊看看自己的項目有沒有可以改造成順控的程序,然后使用SCL重新編寫。那就趕緊行動吧。


      /

      5

      /

      如何把SCL程序分段


      現在的生產工藝越來越復雜,甲方提的要求也是越來越多,于是程序代碼是越來越長,即使是用SCL來寫,也是占滿了程序編輯器的。和LAD這種自帶網絡段的編程語言不同,SCL作為文本語言,本身就是不分段的,正常只能通過空行或者加注釋行分隔,但是程序結構依然不是很清晰。

      不過不要緊,我們現在鄭重向您推薦一個分段神器,它使用簡單,效果顯著,功能強大,那就是—REGION指令

      從 TIA Portal V14開始,支持通過REGION指令來實現分區分段功能。并且可以實現區域命名,區域折疊,區域定位,區域嵌套等多個功能。V16以后甚至可以做到區域名稱多語言的功能。如圖10所示,展示了不同區域功能的使用。

      圖片

      圖10. 區域功能使用

      有了這個功能,就可以輕松地把復雜的程序劃分成若干個區域,在編輯器左側自由地管理分區。輕松地定位到需要的位置,折疊暫時不需要顯示的區域。程序架構也是一目了然,程序也更加易讀。



      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684