SIMATIC S7-SCL FOR S7-300/400 有效使用S7-SCL。首先,你或許會有一些問題,如: ?? 我怎樣用SCL來設計程序? ?? 哪些S7-SCL語言功能適合執行任務? ?? 有什么調試功能可用? 本部分中將回答這些及其他問題。 用到的S7-SCL語言元素(S7-SCL language Elements Used) 例子程序采用了下列S7-SCL語言功能: ?? 各種S7-SCL塊類型的結構和應用 ?? 帶參數傳遞的塊調用和賦值 ?? 各種輸入和輸出格式 ?? 用基本數據類型的數組編程 ?? 初始化變量 ?? 程序結構,分支及循環的使用 硬件要求(Required Hardware) 能夠在SIMATIC S7-300或SIMATIC S7-400運行例子程序,需要以下外部設備: ?? 一個16點的輸入模塊 ?? 一個16點的輸出模塊 調試功能(Debugging Functions) 程序已經創建,用輸入模塊上的開關和顯示在輸出模塊上,能夠迅速測試此程序。要運行全 面的測試,使用S7-SCL的調試功能。 也能夠使用STEP 7標準包提供的其他系統函數。 任務 Task 概述(Overview) 通過輸入模塊獲取測量值,然后通過S7-SCL存貯和處理測量值。結果將顯示在輸出模塊上。 獲取測量值(Acquire Measured Values) 測量值用8個輸入開關設置,當檢測到輸入開關的邊沿時,然后將測量值讀入存中的測量值 數組(見下圖)。 測量值的范圍是0到255,為此需要1個字節。 處理測量值(Processing Measured Values) 測量值數組組織成一個多8個輸入項目的環形緩沖區。當檢測到排序開關的信號,測量值數 組中存貯的值則按增序進行排列。其后,計算每個數的均方根和平方值。為此需要1個字。 
選擇性輸出(Selectable Outputs) 只能顯示一個值在輸出模塊上,要進行如下選擇: ?? 從列表中元素的選擇 ?? 測量值、均方根和平方值的選擇 按如下選擇顯示的值如下: ?? 3個開關用來設置代碼,檢測到第4個開關——取碼開關的信號,則記錄下代碼。從此,被計算的地址用 來存取輸出。 ?? 同一個地址標識三個值:測量值、及其均方根和平方值。要選擇這三個值中的一個,要求2個選擇器開 關。

結構化S7-SCL程序的設計 Design of a Structured S7-SCL Program
塊的種類(Block Types) 采用結構化S7-SCL程序是前面定義的任務的解決方案。換言之,意思是采用模塊化設 計,程序分成幾個塊,每塊對應特定的子任務。在SCL中,與在STEP 7中的其他語言一樣,有 下列塊類型可用。

在S7-SCL源文件中塊的約定(Arrangement of Blocks in S7-SCL Source Files) 一個S7-SCL程序包含一個或幾個S7-SCL源文件。一個源文件能夠包含單個塊或一個有幾個塊 的完整程序。 
定義子任務 Defining the Subtasks
子任務(Subtasks) 下圖顯示了子任務,方形區域表示塊。邏輯塊從左到右排列,也是他們被調用的次序。 
選擇和要用的塊類型(Selecting and Assigning the Available Block Types) 根據下列準則選擇各個塊: 定義塊間接口 Defining the Interfaces Between Blocks 概述(Overview) 功能 Function 塊名稱 Block Name 用戶程序只能在一個OB啟動。因測量值將被不斷地獲取,要求有一個循環調用的組織塊(OB1)。 程序部分——數據輸入和數據輸出在此OB中編程。 "Cycle" OB
子任務“獲取測量數據”要求一個帶存的塊,即功能塊,因為某些本地塊數據(如環形緩沖區)必須從一個程序循環保留至下一個程序循環。排序數據()的位在實例數據塊ACQUIRE_DATA中。同樣的FB也能夠管理地址和選擇輸出子任務,因數據是在此用。 "Acquire" FB
當為子任務排序測量數據和計算結果選擇塊類型時,記住須要一個包含每個測量值的計算結果“均方根”和“平方值”的輸出緩沖區。只有FB是合適的塊類型。因為在調用層次中,此FB被上層的FB調用,它不需要擁有自己的DB。其實例數據能夠存貯在調用它的FB的實例數據塊中。"Evaluate" FB
函數適合子任務計算均方根和平方值,因結果能夠作為函數值返回,而且無可用數據在一個程序循環后再需要保留。標準的S7-SCL函數SORT能夠用來計算均方根。建立特殊函數SQUARE來計算均方根,同時檢查其值是否在允許的范圍。"SQRT" FC(square root)and"Square" FC
定義塊間接口 Defining the Interfaces Between Blocks 概述(Overview) 塊的接口由能夠為其他塊存取的參數組成。 聲明的參數是一個占位符,當塊被實際地使用(被調用)時,則有一個值。占位符當作形式參 數,當塊被調用時的值作為實際參數。當一個塊被調用,輸入數據作為實際參數傳遞給 它。程序返回到凋用塊后,輸出數據可用作更多的處理。函數能夠傳遞其結果作為函數值。 塊參數能夠分為以下幾類: |