在以下部分中,將創建 SCL 函數塊“SCL_Best_before_date” 。 可使用 SCL 函數塊計算保質期。
要創建 SCL 函數塊,請按以下步驟操作:
1. 打開“程序塊” 文件夾。
2. 雙擊“添加新塊”。
3. 要添加一個函數塊:
– 單擊“函數塊” 。
– 指定塊名稱“SCL_Best_before_date” 。
– 選擇語言“SCL” 。
– 單擊“確定”。
4. 保存項目。成功創建了 SCL 函數塊“SCL_Best_before_date” 。 程序編輯器將自動打開。
要定義接口,請按以下步驟操作:
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” 的系統時間。
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"
需要此臨時參數臨時存儲所讀取的系統時間的年份值。
8. 保存項目。在 SCL 函數塊的接口中成功定義了所有必需參數。
在以下部分中,將編寫計算保質期的 SCL 函數塊。
對于項目“Filling Station” ,則只輸出年份值:
● 要執行此操作,需要使用指令“RD_SYS_T” 讀取 CPU 塊的當前系統時間。 讀出的數據以 DT (Date_And_Time) 格式存儲在該指令的臨時接口“System_Time_DT” 中。
● 然后用臨時參數“System_Time_Array” 覆蓋臨時參數“System_Time_DT” 。 該操作將數據類型“DT” 的各個值對應數組中的相應字節。
● 數組的第一個字節包含當前年份值。 將值“2000” 添加到年份字段中,由于格式為“DT(Date_And_Time)”,因此只指定了年份的最后兩位(例如: 值“11” 對應于“2011”年)。 除了當前年份外,還會加上輸入接口“Duration” 中指定的持續時間。
要編寫 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. 保存項目。成功編寫了計算保質期的 SCL 函數塊。
審核編輯:郭婷
-
函數
+關注
關注
3文章
4333瀏覽量
62697 -
編輯器
+關注
關注
1文章
806瀏覽量
31193
原文標題:SCL-編寫計算保質期的程序
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論