說(shuō)明
可以使用指令“ATTACH”為硬件中斷事件指定一個(gè)組織塊 (OB)。
在 OB_NR 參數(shù)中輸入組織塊的符號(hào)或數(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)有指定將替換為最新指定。
硬件中斷事件
如果事件的未決時(shí)間不夠長(zhǎng),則可使用硬件中斷。在運(yùn)行過(guò)程中,硬件中斷將對(duì)這些事件進(jìn)行響應(yīng)。每個(gè)硬件中斷可以分配給多個(gè)硬件中斷 OB。這些 OB 包含對(duì)特定事件的響應(yīng)。
可以為不同的事件創(chuàng)建硬件中斷。例如:
檢測(cè)數(shù)字量輸入的上升沿或下降沿。
超出模擬量輸入的既定下限和上限。
高速計(jì)數(shù)器的外部重置、上溢/下溢、方向反轉(zhuǎn)等。
每個(gè)硬件中斷可以分配給一個(gè)硬件中斷 OB,當(dāng)發(fā)生硬件中斷事件時(shí),將該 OB 放入隊(duì)列進(jìn)行處理。OB 和事件的分配可以在組態(tài)時(shí)或運(yùn)行時(shí)進(jìn)行:
要在組態(tài)時(shí)將事件分配給 OB,請(qǐng)?jiān)凇坝布袛唷?Hardware interrupts) 下的硬件配置中為事件選擇硬件中斷 OB。
使用 ATTACH 指令在運(yùn)行時(shí)進(jìn)行分配。事件和硬件中斷 OB 的分配通過(guò) EVENT 和 OB_NR 參數(shù)進(jìn)行。
參數(shù)
下表列出了“ATTACH”指令的參數(shù):
| 參數(shù) | 聲明 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 說(shuō)明 |
|---|---|---|---|---|
| OB_NR | Input | OB_ATT | I、Q、M、D、L 或常量 | 組織塊(最多支持 32767 個(gè)。) |
| EVENT | Input | EVENT_ATT | I、Q、M、D、L 或常量 |
要分配給 OB 的硬件中斷事件。 必須首先在硬件設(shè)備配置中為輸入或高速計(jì)數(shù)器啟用硬件中斷事件。 |
| ADD | Input | BOOL | I、Q、M、D、L 或常量 |
對(duì)先前分配的影響: ADD=0(默認(rèn)值):該事件將取代先前為此 OB 分配的所有事件。 ADD=1:該事件將添加到此 OB 之前的事件分配中。 |
| RET_VAL | Return | INT | I、Q、M、D、L | 指令的狀態(tài) |
參數(shù) RET_VAL
|
錯(cuò)誤代碼* (W#16#....) |
說(shuō)明 |
|---|---|
| 0 | 無(wú)錯(cuò)誤 |
| 8090 | OB 不存在 |
| 8091 | OB 類型錯(cuò)誤 |
| 8093 | 事件不存在 |
| * 在程序編輯器中,錯(cuò)誤代碼將顯示為整數(shù)或十六進(jìn)制值。 | |
示例
在以下示例中,將為創(chuàng)建的硬件中斷事件指定一個(gè)硬件中斷 OB (OB40)。
要求:
在“屬性 > 輸入 0-15 > ... > 通道 0”(Properties > Inputs 0-15 > ... > Channel 0) 中,創(chuàng)建一個(gè)輸入模塊 (DI) 并組態(tài)一個(gè)上升沿硬件中斷事件。

所組態(tài)硬件中斷事件的以下硬件 ID 將存儲(chǔ)在輸出參數(shù) EVENT(“event”)中。

數(shù)據(jù)存儲(chǔ)
在全局?jǐn)?shù)據(jù)塊中,創(chuàng)建 9 個(gè)變量進(jìn)行數(shù)據(jù)存儲(chǔ)。通過(guò)指令“ATTACH”的輸入?yún)?shù) OB_NR(“obNbr”),可存儲(chǔ)待分配 OB (OB40) 的編號(hào)。

要調(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í)行過(guò)程
當(dāng)常開(kāi)觸點(diǎn)(“start”)的信號(hào)狀態(tài)為“TRUE”時(shí),執(zhí)行“ATTACH”指令并將事件分配給該 OB。輸入?yún)?shù) ADD(“add”)的值“FALSE”時(shí),該事件將取代先前為 OB40 分配的所有事件。輸出參數(shù) RET_VAL(“returnValue”)用于指示處理無(wú)錯(cuò)誤。
當(dāng)程序段 2 中常開(kāi)觸點(diǎn)(“signal”)的信號(hào)狀態(tài)為“TRUE”時(shí),PLC 變量“SLI_ATTACH_force”的信號(hào)狀態(tài)將置為“TRUE”,并執(zhí)行 OB40。調(diào)用 OB40 時(shí),“testValue1”的值傳送到“testValue2”中。
當(dāng)常開(kāi)觸點(diǎn)(“start”和“signal”)的信號(hào)狀態(tài)為“FALSE”時(shí),在程序段 4 中將復(fù)位“testValue2”和“SLI_ATTACH_force”的值。

審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5051文章
14592瀏覽量
486856 -
西門(mén)子
+關(guān)注
關(guān)注
98文章
3310瀏覽量
120365 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2315瀏覽量
98168 -
硬件中斷
+關(guān)注
關(guān)注
0文章
12瀏覽量
7130
原文標(biāo)題:西門(mén)子博途:ATTACH: 將 OB 附加到中斷事件
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
電能質(zhì)量在線監(jiān)測(cè)裝置的電壓中斷事件記錄功能可以保存多久?
電能質(zhì)量在線監(jiān)測(cè)裝置是如何實(shí)現(xiàn)對(duì)電壓中斷事件的識(shí)別的?
電能質(zhì)量在線監(jiān)測(cè)裝置是如何進(jìn)行電壓中斷事件的分類的?
電能質(zhì)量在線監(jiān)測(cè)裝置能識(shí)別電壓中斷事件嗎?
使用J-Link Attach NXP S32K3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF
瑞薩RA系列MCU的中斷過(guò)程介紹
telnet連接后,當(dāng)外部中斷觸發(fā)rt_kprintf時(shí)候,telnet服務(wù)會(huì)卡死怎么解決?
如果在FMC執(zhí)行“程序”或“擦除”時(shí)發(fā)生中斷事件,是否會(huì)處理中斷事件?
如果在FMC執(zhí)行“程序”或“擦除”時(shí)發(fā)生中斷事件,是否會(huì)處理中斷事件呢?
DAF膠膜(Die Attach Film)詳解
貼片(Die Attach)介紹
ATTACH:將OB附加到中斷事件
評(píng)論