廣西壯族自治區西門子代理商-伺服電機驅動變頻器代理
| 更新時間 2024-12-02 08:00:00 價格 請來電詢價 西門子變頻器 西門子觸摸屏 西門子伺服電機 西門子PLC 西門子直流調速器 西門子電纜 聯系電話 13922889745 聯系手機 18475208684 聯系人 向小姐 立即詢價 |
正常監視如圖1所示,無法監控到循環程序內部的執行情況。
圖1 監視頁面
①點擊監視按鈕
②可以看到FOR循環內部沒有任何變量顯示
如果希望監視循環內部執行情況,可以在監視中的SCL程序任意位置,如圖2中操作。
圖2 點擊監視循環
激活監視循環后,跳出窗口如圖3所示,點擊按鈕“是”。
圖3 警告窗口
之后,就可以如圖4所示的,看到循環內的情況,不過這會造成增加CPU循環時間,并且只能監控到第一個循環。
圖4 監視循環
問題2:CASE指令如何實現順控功能?通過CASE OF指令,可以比較容易實現類似順控的功能,并且編程方法便捷、可讀性較好。可以使用類似于下面的編程方式實現類似順控的功能:
CASE 步驟號 OF //Int類型步驟號,一般位于FB的Static
0:
步驟0
邏輯編程 //一般初始步不執行具體操作,只是初始化,然后是等待開始
IF 條件 THEN
步驟號:=1;
ELSIF 錯誤 THEN
步驟號:=100;
END_IF;
1:
步驟1
邏輯編程
置位復雜指令i.REQ
IF 復雜指令i.DONE THEN
復位復雜指令i.REQ
步驟號:=2;
ELSIF 復雜指令i.ERROR
復位復雜指令i.REQ
步驟號:=100;
END_IF;
2:
步驟2
邏輯編程
置位復雜指令m.REQ
IF 復雜指令m.DONE THEN
復位復雜指令m.REQ
步驟號:=3;
ELSIF 復雜指令m.ERROR
復位復雜指令m.REQ
步驟號:=100;
END_IF;
.
.
.
n:
步驟n
邏輯編程
置位復雜指令x.REQ
IF 復雜指令x.DONE THEN
復位復雜指令x.REQ
步驟號:=n+1;
ELSIF 復雜指令x.ERROR
復位復雜指令x.REQ
步驟號:=100;
END_IF;
.
.
.
100:
錯誤處理 邏輯編程
步驟號:=0
END_CASE;
復雜指令0 //復雜指令調用
復雜指令1
.
.
.
復雜指令n
輸出Busy、Done、Status等
復雜指令一般包含:通信、運動控制、讀配方、寫數據日志、讀寫數據記錄、定時器等異步指令,這些指令通常不放在CASE語句的邏輯中,而是在Zui后統一調用。
一般通過復雜指令完成位、錯誤位等作為跳轉條件。如果是定時器,也可以通過判斷時間是否到達作為跳轉條件。
例子:使用CASE OF指令編程運動控制,第一步相對運動以200mm/s的速度移動10000mm,第二步速度控制以100mm/s的速度移動15s,第三步停止。
圖5為FB塊的參數部分,圖6為程序。
圖5 FB參數
圖6 源程序
問題3:如何導入導出SCL源文件?可以將SCL編寫的塊,或者全局DB以及UDT導出成源文件,可以導出塊或UDT,也可以導出所關聯嵌套的塊或者UDT,如圖7所示。
外層塊 | |||||||
SCL編寫 OB/FC/FB | 全局DB | UDT | 背景DB | 工藝DB | PLC變量 | ||
嵌套 | 無 | 可以導出 | 可以導出 | 可以導出 | 可以導出但沒有變量 | 不可以導出 | 不可以導出 |
UDT | 可以導出 | 可以導出 | 可以導出 | 可以導出但沒有變量 | 不可以導出 | 不可以導出 | |
SCL編寫 FC/FB | 可以導出 | - | - | - | - | - | |
背景DB | - | - | - | 可以導出但沒有變量 | - | - |
導出方式參見圖7。
圖7 導出源文件
通過選擇“僅所選塊”導出當前塊,即表中綠色底色的部分。通過選擇“包含所有關聯塊”,導出嵌套的UDT、程序塊,即表中紅色底色的部分。
導入源文件方式如圖8-9所示。
圖8 導入源文件
圖9 從源生成塊
通過導入的方式可以導入單獨內容的源文件,也可以導入包含多個內容的源文件。
問題4:如何使用經典Step7的接口型式在TIA PORTAL V15.1之前,SCL塊的接口方式和其他編程語言是一致的。從V15.1開始,SCL塊的接口方式可以修改成和經典STEP7相同的方式,操作方式如圖10所示。
圖10 塊接口設置
①在TIA PORTAL選項中選擇設置
②左邊選擇“SCL(結構化控制語言)”
③在塊接口選擇“文本視圖”,此設置默認選擇表格視圖。設置完,再新建的SCL塊即使用所選擇的視圖。之前新建的SCL塊不變。
如圖11所示為文本視圖的SCL。
圖11 文本視圖SCL
問題5:為什么GOTO指令會編譯報錯?如圖12-13所示,在LAD/FBD中的SCL編寫GOTO指令時會編譯報錯,所以不要在這里編寫GOTO指令。建議在LAD/FBD中的SCL不要使用過于復雜的編程,如果需要實現較為復雜的程序,建議單獨把SCL組織成為一個子程序,然后在LAD/FBD中調用。
圖12 編譯報錯
圖13 語法錯誤
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684