簡介
在以下示例中,將讀取循環中斷 OB (OB31) 的相位和循環時間,并設置一個新的循環時間。
OB31 具有以下默認值:
要求
互連參數:“SLI_itemiseStatus_CINT”函數 要評該估狀態信息,需創建一個函數“SLI_itemiseStatus_CINT”。 在該函數中創建以下局部變量。
為所有相關位創建互連。
程序段 1:
程序段 2:
程序段 3:
互連參數:“SLI_FB_SET_CINT”函數塊
要調用指令,可創建函數塊(“SLI_FB_SET_CINT”)。在函數塊“SLI_FB_SET_CINT”中創建以下局部變量。
程序段 1:互連“QRY_CINT”指令的參數,如下所示:
程序段 2:互連“SET_CINT”指令的參數,如下所示:
程序段 3:互連“SLI_itemiseStatus_CINT”函數的參數,如下所示。
互連參數:OB31
在 OB31 中創建以下互連:
“QRY_CINT”的結果
通過指令“QRY_CINT”和“SET_CINT”的輸入參數 OB_NR(“obNbr”),存儲待調用 OB 的編號 (OB31)。
當常開觸點(“executeQry”)的信號狀態為“TRUE”時,執行“QRY_CINT”指令并讀取 OB31 的數據。
循環時間將在輸出參數 CYCLE(“qryCycle”)中輸出。相位偏移在輸出參數 PHASE(“qryPhase”)中輸出。
輸出參數 STATUS(“#statWord”)中將顯示 OB31 的狀態。輸出參數 RET_VAL(“returnValueQry”)可用于指示該過程是否存在錯誤。
OB31 的當前狀態信息(“#statWord”),將在程序段 3 中通過函數“SLI_itemiseStatus_CINT”進行解釋,然后通過結構“itemiseStatus”進行輸出。
將變量“#statWord”的值映射到結構“itemiseStatus”中。
“SET_CINT”的結果
當常開觸點(“executeSet”)的信號狀態為“TRUE”時,執行“SET_CINT”指令。新循環時間將通過指令“SET_CINT”的輸入參數 CYCLE(“setCycle”),傳送到 OB31 中?!?”值將作為相位偏移值存儲在輸入參數 PHASE(“setPhase”)中。
輸出參數 RET_VAL(“returnValueSet”)用于指示處理無錯誤。
“SET_CINT”指令執行后,OB31 將保留新的循環中斷數據,直至 CPU 轉入 STOP 模式。指令執行后,可將常開觸點(“executeSet”)的信號狀態再次置位為“FALSE”?!癝ET_CINT”指令的執行不影響 OB31 的默認屬性。
OB31 的結果
當常開觸點(“executeSet”)的信號狀態為“TRUE”時,在 OB31 中啟動 IEC 定時器“TP”。2 分鐘后,該 IEC 定時器停止運行。
要進行調用,需創建一個 OB31。
在全局數據塊中,創建 12 個變量進行數據存儲。
-
編程
+關注
關注
88文章
3615瀏覽量
93731 -
中斷
+關注
關注
5文章
898瀏覽量
41495 -
函數
+關注
關注
3文章
4331瀏覽量
62609
原文標題:西門子博途:循環中斷功能的編程示例
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論