說明
可以使用指令“ATTACH”為硬件中斷事件指定一個組織塊 (OB)。
在 OB_NR 參數(shù)中輸入組織塊的符號或數(shù)字名稱。隨后將其分配給 EVENT 參數(shù)中指定的事件。
在 EVENT 參數(shù)處選擇硬件中斷事件。已經(jīng)生成的硬件中斷事件列在“系統(tǒng)常量”(System constants) 下的 PLC 變量中。
如果在成功執(zhí)行“ATTACH”指令后發(fā)生了 EVENT 參數(shù)中的事件,則將調(diào)用 OB_NR 參數(shù)中的組織塊并執(zhí)行其程序。
使用 ADD 參數(shù)指定應(yīng)取消還是保留該組織塊到其它事件的先前指定。如果 ADD 參數(shù)的值為“0”,則現(xiàn)有指定將替換為最新指定。
硬件中斷事件
如果事件的未決時間不夠長,則可使用硬件中斷。在運(yùn)行過程中,硬件中斷將對這些事件進(jìn)行響應(yīng)。每個硬件中斷可以分配給多個硬件中斷 OB。這些 OB 包含對特定事件的響應(yīng)。
可以為不同的事件創(chuàng)建硬件中斷。例如:
檢測數(shù)字量輸入的上升沿或下降沿。
超出模擬量輸入的既定下限和上限。
高速計數(shù)器的外部重置、上溢/下溢、方向反轉(zhuǎn)等。
每個硬件中斷可以分配給一個硬件中斷 OB,當(dāng)發(fā)生硬件中斷事件時,將該 OB 放入隊列進(jìn)行處理。OB 和事件的分配可以在組態(tài)時或運(yùn)行時進(jìn)行:
要在組態(tài)時將事件分配給 OB,請在“硬件中斷”(Hardware interrupts) 下的硬件配置中為事件選擇硬件中斷 OB。
使用 ATTACH 指令在運(yùn)行時進(jìn)行分配。事件和硬件中斷 OB 的分配通過 EVENT 和 OB_NR 參數(shù)進(jìn)行。
參數(shù)
下表列出了“ATTACH”指令的參數(shù):
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 存儲區(qū) | 說明 |
---|---|---|---|---|
OB_NR | Input | OB_ATT | I、Q、M、D、L 或常量 | 組織塊(最多支持 32767 個。) |
EVENT | Input | EVENT_ATT | I、Q、M、D、L 或常量 |
要分配給 OB 的硬件中斷事件。 必須首先在硬件設(shè)備配置中為輸入或高速計數(shù)器啟用硬件中斷事件。 |
ADD | Input | BOOL | I、Q、M、D、L 或常量 |
對先前分配的影響: ADD=0(默認(rèn)值):該事件將取代先前為此 OB 分配的所有事件。 ADD=1:該事件將添加到此 OB 之前的事件分配中。 |
RET_VAL | Return | INT | I、Q、M、D、L | 指令的狀態(tài) |
參數(shù) RET_VAL
錯誤代碼* (W#16#....) |
說明 |
---|---|
0 | 無錯誤 |
8090 | OB 不存在 |
8091 | OB 類型錯誤 |
8093 | 事件不存在 |
* 在程序編輯器中,錯誤代碼將顯示為整數(shù)或十六進(jìn)制值。 |
示例
在以下示例中,將為創(chuàng)建的硬件中斷事件指定一個硬件中斷 OB (OB40)。
要求:
在“屬性 > 輸入 0-15 > ... > 通道 0”(Properties > Inputs 0-15 > ... > Channel 0) 中,創(chuàng)建一個輸入模塊 (DI) 并組態(tài)一個上升沿硬件中斷事件。
所組態(tài)硬件中斷事件的以下硬件 ID 將存儲在輸出參數(shù) EVENT(“event”)中。
數(shù)據(jù)存儲
在全局?jǐn)?shù)據(jù)塊中,創(chuàng)建 9 個變量進(jìn)行數(shù)據(jù)存儲。通過指令“ATTACH”的輸入?yún)?shù) OB_NR(“obNbr”),可存儲待分配 OB (OB40) 的編號。
要調(diào)用硬件中斷事件,可創(chuàng)建帶有 PLC 變量的變量表(地址“I0.0”)。
互連
互連該指令的參數(shù),如下所示:
互連以下 PLC 變量,調(diào)用硬件中斷事件。
程序段 2:
程序段 3:
要進(jìn)行復(fù)位,可互連“testValue2”和“SLI_ATTACH_force”,如下所示。
程序段 4:
在 OB40 中創(chuàng)建以下互連:
執(zhí)行過程
當(dāng)常開觸點(“start”)的信號狀態(tài)為“TRUE”時,執(zhí)行“ATTACH”指令并將事件分配給該 OB。輸入?yún)?shù) ADD(“add”)的值“FALSE”時,該事件將取代先前為 OB40 分配的所有事件。輸出參數(shù) RET_VAL(“returnValue”)用于指示處理無錯誤。
當(dāng)程序段 2 中常開觸點(“signal”)的信號狀態(tài)為“TRUE”時,PLC 變量“SLI_ATTACH_force”的信號狀態(tài)將置為“TRUE”,并執(zhí)行 OB40。調(diào)用 OB40 時,“testValue1”的值傳送到“testValue2”中。
當(dāng)常開觸點(“start”和“signal”)的信號狀態(tài)為“FALSE”時,在程序段 4 中將復(fù)位“testValue2”和“SLI_ATTACH_force”的值。
審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5012文章
13304瀏覽量
463595 -
西門子
+關(guān)注
關(guān)注
94文章
3041瀏覽量
115928 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94614 -
硬件中斷
+關(guān)注
關(guān)注
0文章
11瀏覽量
6861
原文標(biāo)題:西門子博途:ATTACH: 將 OB 附加到中斷事件
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論