<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    西門子SCL語言編程實例——循環調用電機!
    發布時間: 2024-04-15 22:28 更新時間: 2024-12-29 09:10

    西門子結構化編程可將不同的控制任務劃分為不同的控制區域,相同控制功能數量眾多的設備可利用具備多重背景的FB功能塊重復調用來解決,使程序簡潔、清晰、合理,易讀性強,更改方便,為以后系統的升級改造提供了極大的便利。SCL語言的應用,更是大大減小了程序代碼的占用空間,使西門子PLC能容納更大的程序,控制更大的系統。下面就舉一實例加以說明。


    01所需軟件及硬件

    博途V15編程軟件及仿真軟件、西門子1215CPU一臺、網線一條。*注:如無PLC實物,可用仿真軟件做測試*


    02項目描述

    順豐、京東、郵政等大型物流企業的中轉場的輸送分揀系統大都是由數量眾多、結構各異的皮帶機再加上數臺高效分揀機組成。因輸送分揀的路向繁多,皮帶機往往分為不同的線體,每條線體包含若干條皮帶以應對不同的路向或Zui終匯集到分揀機以滿足其大處理量的要求,因此皮帶機的自動控制是中轉場控制系統極其重要的一環。下面的例子以控制一條線體為例加以說明。


    該實例為利用SCL語言編寫的控制程序,控制一條線體當中的5條皮帶啟停。說明:

    1、此例主要的目的是使大家掌握編程的方法,不是控制的邏輯,因此每條皮帶的控制與起保停類似。具體的控制邏輯要根據實際的需求編寫;

    2、實際現場一條線體往往不止5條皮帶,這里為了測試監控方便只用5條,但利用SCL語言編寫控制再多數量的皮帶,再多的線體,代碼并不會增加,只是改下數量而已,后面會有描述;

    3、這個例子可使大家借一斑而窺全豹,初步認知具有多重背景FB塊的使用魅力。


    03程序編寫

    1、創建新項目

    實際生產中配方的數據已經定好,打開博途V15軟件,創建一個名為“SCL循環調用電機”的項目,組態一臺固件版本為4.2的1215CPU,如下圖1所示:

    圖片

    ▲圖1▲


    2、創建自定義數據類型

    將默認的SBR0子程序重命名為配方處理,創建自定義數據類型可把我們從編寫大量符號表變量的工作中解脫出來,變量越多,效果越明顯。在這個項目中我們創建一個名為“motordata”數據類型的變量,如下圖2所示。該數據類型包含4個布爾變量,分別是皮帶電機的啟動、停止、故障和運行變量。

    圖片

    圖片

    ▲圖2▲


    3、創建全局DB塊

    創建全局DB塊的目的是為了給五臺皮帶電機FB塊的形參賦實參,而DB塊建了個符號名為motor的數組變量,數組元素5個,每個元素的類型為“motordata”,即我們一開始自定義的數據類型,這樣我們就不必在DB塊里去一個個的輸5臺電機的變量。節省了時間,提高了效率。圖中顯示了電機1(Motor【0】)展開的變量,如下圖3所示:

    圖片

    ▲圖3▲


    4、編寫電機啟停程序

    該程序編寫相對簡單,這里為了測試或仿真方便,只寫了簡答的類似起保停的控制邏輯,實際的控制要根據具體要求來編寫。新建名為“Mrun”的塊FB1,該段程序用SCL編寫,如下圖4所示:

    圖片

    ▲圖4▲


    5、編寫電機調用程序

    這是該例子的核心部分,在項目中新建FB塊,命名為DYMrun,程序的變量表與代碼如下圖5所示:

    圖片

    ▲圖5▲


    創建全局DB塊的目的是為了給五臺皮帶電機FB塊的形參賦實參,在靜態參數中分別建立“dymrun”和“i”兩個變量,“dymrun”為數組變量,用FB1作為數組元素的數據類型,對應5臺電機;“i”為循環調用指針,整數類型,分別指向不同的皮帶電機。如程序所示,i為0到4,如果電機數量更多,比如12臺,那么把4改為11即可。代碼很簡單,就是一個FOR循環語句,重要的是把全局DB塊DB1的數組變量正確賦值到FB1(Mrun)各形參管腳。要理解上述程序需要掌握UDT、SCL、數組、結構化編程等等知識點。


    04測試效果

    在主程序中調用FB2,為照顧沒有實體PLC的學員,我們用仿真進行演示。新建一個監控表,監控表輸入了Motor0和Motor2兩個電機的變量。主程序及測試的結果如下圖6所示:


    圖片

    ▲圖6▲


    圖片

    ▲圖7▲



    圖片

    ▲圖8▲


    圖片

    ▲圖9▲


    圖7中Motor0的啟動信號為true,其運行信號也為true,證明程序導通,如兩個紅框內容所示,Motor2也是一樣,如兩個藍色框內容所示;圖8為復位啟動信號后,Motor0和Motor2因已自鎖仍繼續運行;圖9為Motor0按下停止信號,其運行也停止,而Motor2因為發生故障使電機停止運行。其余的幾臺請有興趣的學員自行測試。


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595