說明
可以使用指令“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)行過程中,硬件中斷將對(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 的分配通過 EVENT 和 OB_NR 參數(shù)進(jìn)行。
參數(shù)
下表列出了“ATTACH”指令的參數(shù):
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 說明 |
---|---|---|---|---|
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#....) |
說明 |
---|---|
0 | 無錯(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ǔ)。通過指令“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í)行過程
當(dāng)常開觸點(diǎn)(“start”)的信號(hào)狀態(tài)為“TRUE”時(shí),執(zhí)行“ATTACH”指令并將事件分配給該 OB。輸入?yún)?shù) ADD(“add”)的值“FALSE”時(shí),該事件將取代先前為 OB40 分配的所有事件。輸出參數(shù) RET_VAL(“returnValue”)用于指示處理無錯(cuò)誤。
當(dāng)程序段 2 中常開觸點(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)常開觸點(diǎn)(“start”和“signal”)的信號(hào)狀態(tài)為“FALSE”時(shí),在程序段 4 中將復(fù)位“testValue2”和“SLI_ATTACH_force”的值。
審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5037文章
13919瀏覽量
474558 -
西門子
+關(guān)注
關(guān)注
98文章
3173瀏覽量
118252 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2291瀏覽量
96413 -
硬件中斷
+關(guān)注
關(guān)注
0文章
11瀏覽量
7032
原文標(biāo)題:西門子博途: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)先 登錄
貼片(Die Attach)介紹

如何將VCP功能添加到UVC應(yīng)用程序代碼中?
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux系統(tǒng)中斷之Linux中斷介紹
飛凌嵌入式ElfBoard ELF 1板卡-Linux系統(tǒng)中斷之Linux中斷介紹
HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-ArkTS代碼調(diào)試attach啟動(dòng)調(diào)試
單片機(jī)中斷技術(shù)詳解
串口中斷是內(nèi)部中斷還是外部中斷,串口中斷是怎么觸發(fā)的
程序中斷的100種寫法
c51單片機(jī)中斷
關(guān)于中斷知識(shí)學(xué)習(xí)總結(jié)筆記
西門子博途中循環(huán)中斷功能的編程示例

OB2273AMP昂寶反激電源30W-100W參考系列
12W OB5682PJP昂寶隔離LED驅(qū)動(dòng)芯片
CKS32F107xx系列MCU的中斷和事件

評(píng)論