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