<sup id="iueye"><noscript id="iueye"></noscript></sup>
<object id="iueye"></object>
<object id="iueye"></object>
<object id="iueye"></object>
<sup id="iueye"></sup>
<object id="iueye"></object>
<object id="iueye"><wbr id="iueye"></wbr></object>

當(dāng)前位置:首頁(yè)  >  技術(shù)文章  >  西門子博途:EN/ENO 機(jī)制的基本知識(shí)

西門子博途:EN/ENO 機(jī)制的基本知識(shí)

更新時(shí)間:2023-07-04 點(diǎn)擊量:4951

簡(jiǎn)介

使用使能輸出 ENO,可檢測(cè)和處理某些運(yùn)行系統(tǒng)錯(cuò)誤。后續(xù)指令的執(zhí)行取決于該使能輸出的信號(hào)狀態(tài)。使用 EN/ENO 機(jī)制可避免程序崩潰。塊狀態(tài)將以布爾型變量的形式進(jìn)行傳遞。

EN/ENO 機(jī)制可用于以下兩個(gè)方面:




    LAD 和 FBD 支持 EN/ENO 機(jī)制,可調(diào)用程序代碼中的簡(jiǎn)單指令和高級(jí)指令。

    使用 EN/ENO 機(jī)制時(shí),可對(duì)以下指令調(diào)用進(jìn)行影響,并使用指令“RET:返回"定制到程序塊外的跳轉(zhuǎn)。同時(shí),還可為程序塊的使能輸出 ENO 賦值(0 或 1)。該特性通常用于 LAD 和 FBD 程序塊。在 SCL 程序塊中,也可使用該功能,無(wú)需再使用指令“RET"對(duì) SCL 程序塊的使能輸出 ENO 進(jìn)行影響。

    在程序段邊界處,該使能輸出的信號(hào)狀態(tài)將重復(fù)性地置位為“1"。例如,在 LAD 程序塊中,可通過(guò)以下方式識(shí)別:即使上一個(gè)程序段中最后一個(gè)指令的使能輸出 ENO 返回信號(hào)狀態(tài)“0",左側(cè)母線也始終提供電流。

    指令“RET:返回"(LAD/FBD) 的功能

    邏輯運(yùn)算結(jié)果為 0 時(shí),不執(zhí)行該指令而執(zhí)行下一個(gè)程序段。

    邏輯運(yùn)算結(jié)果為 1 時(shí),將執(zhí)行該指令并返回調(diào)用程序塊。

    ENO 塊的信號(hào)狀態(tài)可通過(guò)以下四個(gè)選項(xiàng)確定:

    • RLO:RLO = 1 時(shí),ENO 塊將置位為 TRUE。

    • TRUE:ENO 塊將置位為 TRUE。

    • FALSE:ENO 塊將置位為 FALSE。

    • Operand:由操作數(shù)的信號(hào)狀態(tài)確定 ENO 塊的信號(hào)狀態(tài)。

    編程與 I/O 訪問(wèn)錯(cuò)誤

    EN/ENO 機(jī)制無(wú)法編程和 I/O 訪問(wèn)錯(cuò)誤。為此,可通過(guò) OB 進(jìn)行全局錯(cuò)誤處理或使用“GET_ERROR"、“GET_ERR_ID"指令進(jìn)行本地錯(cuò)誤處理或(僅 S7-1200/1500)。如果指令成功執(zhí)行無(wú)任何錯(cuò)誤,則可評(píng)估相關(guān)的使能輸出 ENO。

    所有編程語(yǔ)言中的程序塊調(diào)用 (S7-300/400)

    以下示例適用于 S7-300/400 系列 CPU:如果調(diào)用的程序塊中不含任何指令,則 BR 位和 ENO 使能輸出均不受影響。BR 位的信號(hào)狀態(tài)將保持為一個(gè)常量結(jié)果。此時(shí),所有語(yǔ)句都無(wú)法成功調(diào)用該程序塊。

    影響 SCL 程序塊的使能輸出 ENO

    說(shuō)明

    SCL 程序塊中的最后一個(gè)指令 ENO 通常會(huì)影響 ENO 塊。

    另外,也可跳出該程序塊,并同時(shí)使用指令“RETURN"為 ENO 塊賦值“1"或“0"。

    操作步驟

    要影響 ENO 塊的信號(hào)狀態(tài),請(qǐng)按以下步驟操作:

    1. 激活 EN/ENO 機(jī)制。

    2. 然后編程:

      IF ENO := 0 THEN

      RETURN;

      END_IF;

    結(jié)果

    發(fā)生錯(cuò)誤時(shí)(如,結(jié)果發(fā)生溢出),使能輸出 ENO 將先返回信號(hào)狀態(tài)“0",如一個(gè)加指令。該 ENO 塊因此為 FALSE,并在上一個(gè)程序塊調(diào)用完成后從該程序塊跳到下一個(gè)指令處。在一個(gè) SCL 程序段(如,包含多個(gè)數(shù)學(xué)函數(shù)等)中,可對(duì)該操作步驟進(jìn)行多次編程。

    但無(wú)需編程跳轉(zhuǎn),跳出該程序塊。在 SCL 程序塊中,如果單個(gè)指令的使能輸出 ENO 信號(hào)狀態(tài)為“0",則可確定不執(zhí)行后續(xù)指令。為此,指令 ENO 將在后續(xù)的 IF 指令中與以下指令進(jìn)行關(guān)聯(lián)。


    說(shuō)明

    ENO 塊的影響

    通過(guò) SCL 程序塊,最后一個(gè)指令 ENO 的信號(hào)狀態(tài)將在該塊結(jié)束處傳送到 ENO 塊中。

    因此,指令 ENO 可直接影響 ENO 塊。


    在 SCL 中使用 EN/ENO 機(jī)制的示例

    使用 EN/ENO 機(jī)制的指令示例

    要在指令中使用 EN/ENO 機(jī)制,則需激活塊屬性“自動(dòng)設(shè)置 ENO"。下文中舉例說(shuō)明了如何在“a + b"運(yùn)算中使用使能輸出 ENO:




    "MyOutputREAL":= #a + #b;

    "MyOutputBOOL":= ENO;


    如果執(zhí)行“a/b"運(yùn)算后成功無(wú)錯(cuò)誤,則操作數(shù)“MyOutputBool"的信號(hào)狀態(tài)為“1"。發(fā)生錯(cuò)誤時(shí),使能輸出 ENO 的信號(hào)狀態(tài)為“0"。

    通過(guò) EN/ENO 機(jī)制調(diào)用程序塊的示例

    以下示例顯示了程序塊的調(diào)用過(guò)程。為此,需激活 EN/ENO 機(jī)制,且必須事先編程一個(gè)影響塊 ENO 的指令:




    IF ENO := 1 THEN

    "Block name_DB"();

    END_IF;


    僅當(dāng)使能輸出 ENO 的信號(hào)狀態(tài)為“1"時(shí),才調(diào)用并執(zhí)行該程序塊。如果激活了 EN/ENO 機(jī)制,則被調(diào)用的程序塊還將返回一個(gè) ENO 塊。該 ENO 塊之后將在被調(diào)用的程序塊中使用。


聯(lián)系方式

郵箱:15214375780@163.com 地址:上海市松江區(qū)高技路655號(hào)4棟413-415
咨詢熱線

15214375780

(周一至周日9:00-19:00) 在線咨詢
微信二維碼
移動(dòng)端瀏覽
上海茂碩機(jī)械設(shè)備有限公司©2024版權(quán)所有    備案號(hào):滬ICP備18010475號(hào)-4 技術(shù)支持:化工儀器網(wǎng)    管理登陸    sitemap.xml
<sup id="iueye"><noscript id="iueye"></noscript></sup>
<object id="iueye"></object>
<object id="iueye"></object>
<object id="iueye"></object>
<sup id="iueye"></sup>
<object id="iueye"></object>
<object id="iueye"><wbr id="iueye"></wbr></object>
武功县| 饶平县| 天柱县| 融水| 久治县| 昌邑市| 轮台县| 奉新县| 肃南| 南阳市| 娱乐| 莱阳市| 岫岩| 英山县| 达尔| 林州市| 广昌县| 永昌县| 邻水| 龙井市| 江北区| 睢宁县| 苏尼特右旗| 九江市| 叶城县| 彭州市| 得荣县| 沂南县| 类乌齐县| 乌海市| 凤阳县| 丰顺县| 灵宝市| 三门县| 疏勒县| 桃园县| 贵州省| 甘肃省| 江城| 临猗县| 邵阳市| http://444 http://444 http://444 http://444 http://444 http://444