步驟?
要創(chuàng)建 SCL ?函數塊,請按以下步驟操作:?
1. ??打開“程序塊” 文件夾。?
2. ??雙擊“添加新塊”。?

3. ??要添加一個函數塊:?
–? 單擊“函數塊” 。?
–? 指定塊名稱“SCL_Best_before_date” 。?
–? 選擇語言“SCL” 。?
–? 單擊“確定”。?

4. ??保存項目。?
定義 SCL? 函數塊的接口?
步驟?
要定義接口,請按以下步驟操作:?
1. ??在“Input” 部分定義帶有以下屬性的輸入參數:?
–? 名稱:"Duration"?
–? 數據類型:"Int"?
可在此參數中指定保質期(年)。?

2. ??在“Output” 部分定義帶有以下屬性的輸出參數:?
–? 名稱:"Best_before_date_Output"?
–? 數據類型:"Int"?
需要此參數輸出計算出的保質期。?

3. ??在“Temp”部分定義帶有以下屬性的一個參數:?
–? 名稱:"Error"?
–? 數據類型:"Int"?
需要此臨時參數臨時存儲指令“RD_SYS_T” 的返回值,該參數將在項目過程中稍后設定。?

4. ??在“Temp”部分定義帶有以下屬性的第二個參數:?
–? 名稱:"System_Time_DT"?
–? 數據類型:"Date_And_Time"?
需要此臨時參數臨時存儲指令“RD_SYS_T” 的系統(tǒng)時間。?

5. ??在“Temp”部分定義帶有以下屬性的第三個參數:?
–? 名稱:"System_Time_Array"?
–? 數據類型:"AT"?
需要此臨時參數覆蓋接口“System_Time_DT” 。?

部分名稱后將自動添加后綴“AT "System_Time_DT"” ,同時將數據類型“AT” 轉換為“Date_And_Time” 。?
6. ??將文本“Date_And_Time” 替換為“Array [0 .. 7] of Byte” 。?

7. ??在“Temp”部分定義帶有以下屬性的第四個參數:?
–? 名稱:"Year"?
–? 數據類型:"Int"?
需要此臨時參數臨時存儲所讀取的系統(tǒng)時間的年份值。?

8. ??保存項目。?
在 SCL ?函數塊的接口中成功定義了所有必需參數。?

編寫計算保質期的程序?
在以下部分中,將編寫計算保質期的 SCL ?函數塊。?
對于項目“Filling Station” ,則只輸出年份值:?
●? 要執(zhí)行此操作,需要使用指令“RD_SYS_T” 讀取 CPU ?塊的當前系統(tǒng)時間。? 讀出的數據以 DT (Date_And_Time)? 格式存儲在該指令的臨時接口“System_Time_DT” 中。?
●? 然后用臨時參數“System_Time_Array” 覆蓋臨時參數“System_Time_DT” 。? 該操作將數據類型“DT” 的各個值對應數組中的相應字節(jié)。?
●? 數組的第一個字節(jié)包含當前年份值。? 將值“2000” 添加到年份字段中,由于格式為“DT (Date_And_Time)”,因此只指定了年份的最后兩位(例如:? 值“11” 對應于“2011”年)。? 除了當前年份外,還會加上輸入接口“Duration” 中指定的持續(xù)時間。?
步驟?
要編寫 SCL? 函數塊,請按以下步驟操作:?
1.? ?定義程序代碼的第一行:?
–? 在指令前寫入: "#Error :="?
–? 寫入指令: "RD_SYS_T"?
–? 在指令后寫入: "(OUT => #System_Time_DT);"?

2.? ?定義程序代碼的第二行:?
–? 在指令前寫入: "#Year :="?
–? 寫入指令: "BCD_TO_INT"?
–? 在指令后寫入: "(#System_Time_Array[0]);"?
該指令用于將“BCD” 格式轉換為“INT”格式。?

3.? ?定義程序代碼的第三行:?
–? ?"#Best_Before_Date_Output :=? #Year + 2000 + #Duration;"?
該指令用于將值“2000” 和輸入接口“Duration” 的當前值加到值“Year” 上。?

4.? ?保存項目。?
編輯:黃飛
?
電子發(fā)燒友App


















評論