經典STEP7的SCL語言和博途的SCL略有不同,下面就經典STEP7的SCL與STL區別及一些常見問題做一個總結。
SCL(Structured Control Language)語言,也就是結構化控制語言,它其實和IEC標準制定的ST語言是一樣的。S7-SCL 可以編譯成 STL, 雖然其代碼量相對于 STL 編程有所增加,但我們更關心的是程序結構和程序的總體效率。類似于計算機行業的發展,匯編語言已經被舍棄,取而代之的是 C/C++等gaoji語言。S7-SCL 對工程設計人員要求較高,需要其具有一定的計算機gaoji語言的知識和編程技巧。
STL是STEP7時代推出的語言,它不是STRUCT TEXT LANGUAGE的縮寫,所以它和ST語言完全沒關系。STL語言是一種匯編語言,是面向機器底層的語言,可以直接操作寄存器,可讀性不強,和80C51單片機的機器語言是一個層面。所以它是一種低級語言,而ST和SCL都是中gaoji語言。
(1)如何規范地的開發一個 S7-SCL 程序?
解答:開發一個 S7-SCL 程序,應當遵循如下流程:
? 規劃需要的塊類型,即程序的整體結構。
? 規劃子任務(FB,FC 等等)
? 定義各個子任務的之間輸入/輸出接口
? 定義各個子任務在原文件中的順序及調用關系
? 定義符號表
? 編譯檢查
? 下載調試
(2)S7-SCL 支持哪些 STEP7 塊,與其它語言有什么關系?
解答:S7-SCL 支持如下 STEP7 的塊:OB,FC,FB,DB,UDT。在 S7 程序中,S7-SCL 塊可以與其它STEP7 編程語言生成的塊互相調用。S7-SCL 可以被編譯成 STL, S7-SCL 生成的塊也可以作為庫文件被其它語言引用。由于 S7-SCL 程序由 ASCII 文本構成,所以它非常容易被導入或導出。
(3)為什么雙擊打開 S7-SCL 類型的程序后,顯示的格式卻是 STL 格式?
解答:S7-SCL 程序編譯后生成的執行代碼實際上為 STL 格式,如下圖中的 FC1, 雖然其標示為 SCL格式,但如果用戶將 Source 目錄中的 FC1 的源文件刪除后,再雙擊打開 FC1 后,顯示的將為 STL格式。
(4)什么是 OK Flag?
解答:在 S7-SCL 程序中,OK 是一個布爾類型的特殊本地變量。它用來顯示塊執行是否正確。OK 標志的使用與 STL 編程中對于 FC/FB 的 ENO 處理(STL 是用狀態字的 BR 位來保存狀態)非常相似。在程序的開始,可以將 OK 標志賦值為 TURE,如果程序執行有錯誤(例如 0 作為除數),則當程序退出時,用戶通過程序將 OK 標志改寫為 FALSE,此數值將被存儲在輸出參數 ENO 當中。OK 標志是一個系統變量,不需要定義,如果用戶希望在程序中使用此標志,可以在 S7-SCL編程菜單 Options>Customize>Compiler 中,應當選擇 Set OK flag.項。否則 ENO 將無法被評估。
OK 標志使用的例子:
OK:= TRUE;
Division:= 1 / IN;
IF OK THEN // 除法操作正常
;// 此處可以添加在除法操作正常情況下,其它的用戶程序
ELSE //除法操作不正常
;// :
END_IF;
(5)在 STL 中可以讀取一個組織塊的信息 (例如 OB1 中的循環時間),在 S7-SCL 中是否存在同樣的可能?
解答:STEP7 中的任意 OB 塊在生成之后,其內部都自動生成一些特有的臨時變量,例如 OB1 中的變量OB1_PREV_CYCLE 即為CPU 上個掃描周期所用的時間。在 S7-SCL 編輯器中,通過“Insert> Block Template > OB”創建一個 OB 模板。在缺省情況下,此模板的臨時變量區域將創建一個ARRAY OF BYTE 類型的臨時變量。此區域與 OB 塊的臨時變量區域是相對應的,但由于沒有變量名稱標識,并且數據類型也不相同,所以用戶使用起來非常不方便。如果用戶想要使用 S7-SCL格式的 OB 塊內的特有變量,請按下列步驟進行:
? 在路徑 STEP7 的安裝路徑 \Step7\S7DATA\S7wiz 下,包含所有 OB 塊的 STL 格式模板,可以使用寫字板打開這些模板 (例如 OB31.awl), 并復制相應變量定義。
? 創建一個新的 S7-SCL 源文件并插入剛才復制的變量定義。
? 調整 S7-SCL 源文件中的語法結構
? 在這個程序的開始部分, 可以設置 "Title" 和"Version" , 例如 Title=' ' 和 Version= '0.1'
? 在 BEGIN 語句后面插入一個分號,至此,即完成格式修改。
另外,也可以打開本文中的 S7-SCL 例子目錄中的 OB_Templ 項目,其中包括了 44 個 S7-SCL 源文件格式的組織塊。
(6)如何理解 FC/SFC 的輸出參數 RET_VAL(返回值)?
解答:對于此問題,如果讀者對 PASCAL 語言或者gaoji編程語言非常熟悉,可能此問題就非常容易解釋。許多 SFC (系統功能) 都有輸出參數 RET_VAL (返回值) ,它提供一個可供評估的錯誤代碼。STEP 7 在線幫助中提供有更多關于系統功能和輸出參數 RET_VAL 的信息。通過在 SIMATIC管理器中選中 SFC 然后按“F1”鍵可以獲取相關的在線幫助信息。同樣,一個 FC 也可以返回一個結果,下面給出了一些例子,說明了如何在 S7-SCL 中調用帶有返回值 (RET_VAL) 的功能 (FC 或 SFC)。
- 西門子S7-1500 PLC的通信基礎知識 2024-11-23
- 教你一個在HMI上顯示西門子PLC代碼流程的方法 2024-11-23
- Wincc與西門子PLC的通訊方式有哪幾種 2024-11-23
- 西門子S7-1500高速脈沖采集功能和應用及數據的處理 2024-11-23
- 西門子博途Modbus RTU通信如何編程 2024-11-23
- 西門子伺服電機速度模式 2024-11-23
- 西門子伺服電機位置控制方式 2024-11-23
- 西門子伺服電機轉矩控制方式 2024-11-23
- 西門子伺服電機通信控制方式 2024-11-23
- 西門子伺服電機模擬量控制方式 2024-11-23
- 西門子伺服電機脈沖控制方式 2024-11-23
- 觸摸屏與西門子PLC之間能否實現無線以太網口通訊 2024-11-23
- 西門子觸摸屏 一個彈出窗口如何顯示多組PID調節參數 2024-11-23
- 西門子PLC里面的立即尋址、直接尋址、間接尋址你都搞懂了嗎 2024-11-23
- 老司機對非標自動化項目設計編程步驟之總結 2024-11-23
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415