簡介
在以下示例中,將通過 GETIO讀取數字量輸入模塊的通道,并通過 SETIO 將新值寫入數字量輸出模塊的通道中。之后,再通過 GETIO 和數字量輸入模塊讀取相應變化。
要求
要傳遞位序列 (0..7) 的值,可創建函數“SLI_itemiseByte_gsIO”。
在該函數中創建以下局部變量。
程序段 1:根據程序段 1 的示例,為所有位 (0..7) 創建互連。
互連參數:“SLI_FB_GETIO_SETIO”函數塊
在函數塊“SLI_FB_GETIO_SETIO”中創建以下互連。在 IO 設備/DP 從站中,在程序循環 OB (OB1) 中調用函數塊“SLI_FB_GETIO_SETIO”。
程序段 1:互連“GETIO”指令的參數,如下所示:
程序段 2:結束“GETIO”指令,如下所示:
程序段 3:根據以下示例創建互連,轉換 GETIO 的通道值。此時,將互連函數“SLI_itemiseByte_gsIO”中所有的輸入和輸出 (0..7)。
程序段 4:根據以下示例創建互連,轉換 SETIO 的通道值。此時,將互連函數“SLI_itemiseByte_gsIO”中所有的輸入和輸出 (0..7)。
程序段 5:互連“SETIO”指令的參數,如下所示:
程序段 6:結束“SETIO”指令,如下所示:
程序段 1 (GETIO) 的運行結果
輸入參數 EN(“executeRead”)返回信號狀態“TRUE”時,啟動指令“GETIO”。“GETIO”指令將通過輸入參數 ID(“id_Read”)調用該輸入模塊。并通過輸入參數 INPUTS(“#readBYTE”)讀取該輸入模塊的通道。在輸出參數 LEN(“lengthRead”)中,將記錄 BYTE 中讀取的通道長度。“2”值引用 16 個輸入通道。
并在輸出參數 STATUS(“statusRead”)處,顯示該塊的狀態。該過程成功執行且無任何錯誤。
程序段 2 (GETIO) 的運行結果
執行“GETIO”指令時,輸出參數 ENO(“doneRead”)將返回信號狀態“TRUE”。此后,重置程序將變量“executeRead”置位為“FALSE”,并結束“GETIO”的運行。
程序段 3 (GETIO) 的運行結果
通過函數 SLI_itemiseByte_gsIO,結構“#readBYTE”將變量值傳送到結構“readInputs”的變量中。此時,通道 0 到 7 和 8 到 15 的值從 BYTE 轉換為 ARRAY of BOOL。
為了便于理解,可使用具體的描述性名稱表示“readInputs”結構的變量。
程序段 4 (SETIO) 的運行結果
通過函數 SLI_itemiseByte_gsIO,結構“writeOutputs”將變量值傳送到結構“#writeBYTE”的變量中。通道 0 到 7 和 8 到 15 的值從 ARRAY of BOOL 轉換為 BYTE。
為了便于理解,可使用具體的描述性名稱表示“writeOutputs”結構的變量。
程序段 5 (SETIO) 的運行結果
輸入參數 EN(“executeWrite”)返回信號狀態“TRUE”時,啟動指令“SETIO”。“SETIO”指令將通過輸入參數 ID(“id_Write”)調用該輸出模塊。新值將通過輸入參數 OUTPUTS(“#writeBYTE”)寫入輸出模塊的通道中。
并在輸出參數 STATUS(“statusWrite”)處,顯示該塊的狀態。該過程成功執行且無任何錯誤。
程序段 6 (SETIO) 的運行結果
執行“SETIO”指令時,輸出參數 ENO(“doneWrite”)將返回信號狀態“TRUE”。此后,重置程序將變量“executeWrite”置位為“FALSE”,并結束“SETIO”的運行。
GETIO 重新運行的結果
如果變量“executeRead”復位為“TRUE”,則在執行 GETIO 后將在“readInputs”結構中顯示該輸入模塊通道中的新值。通道 1 和 2(“Channel_0-7[1]..[2]”)將返回信號狀態“TRUE”。
說明 更改通道的信號狀態 如果已為通道賦值但該通道的信號狀態將改變(如,通過 PLC 變量),則可通過 SETIO 將信號狀態的變更轉至無效。此時,請確保將發送變更的通道信號狀態與其它因素無關。 |
創建帶有一個數字量輸入模塊和一個數字量輸出模塊的 IO 設備/DP 從站。
說明 使用 SETIO 進行更改,并使用 GETIO 讀取更改 數字量輸入模塊必須連接到數字量輸出模塊處,確保寫入的值可使用 GETIO通過 SETIO 進行讀取。 |
在全局數據塊中,創建 9 個變量和 2 個結構“readinputs”和“writeOutputs”進行數據存儲。 使用“id_Read”變量,存儲數字量輸入模塊的硬件標識符。使用“id_Write”變量,存儲數字量輸出模塊的硬件標識符。
說明 查找硬件標識符 使用“PLC 變量 > 系統常量”(PLC tags > System constants),查找硬件標識符。例如,數字量輸入模塊可使用數據類型“HW_Submodule”搜索“Local~<數字量輸入模塊名稱>”。在相關單元格“值”(value) 中,將列出該硬件的標識符。 |
要進行數據傳送,需在函數塊“SLI_FB_GETIO_SETIO”中創建以下局部變量。
要更改通道狀態,需在全局數據塊中,將以下位(通道 1 和 2)設置為“TRUE”:
審核編輯:湯梓紅
-
plc
+關注
關注
5013文章
13323瀏覽量
464026 -
西門子
+關注
關注
94文章
3048瀏覽量
116036 -
編程
+關注
關注
88文章
3627瀏覽量
93809 -
數字量
+關注
關注
0文章
67瀏覽量
11294
原文標題:西門子PLC: 讀取數字量輸入模塊/寫入數字量輸出模塊
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論