在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GetError與GetErrorID指令的使用

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-01-29 10:57 ? 次閱讀

GetError 與 GetErrorID 指令的使用

在 STEP7 11 中,可以通過GetError (獲取本地錯誤信息)或者GetErrorID (獲取本地錯誤ID )指令查詢塊內出現的錯誤。

請注意:GetError 和 GetErrorID 均支持塊內的錯誤處理。當在程序塊中調用GetError 或GetErrorID 指令后,如果該程序塊發生錯誤,CPU則將忽略任何預定義的系統響應。

也就是說CPU 會忽略此錯誤,而且CPU 的Error 燈(紅色)也不會亮,CPU 也不會停機。所以說該指令在某種程度上也起到了抑制程序錯誤的作用,同時有一定的風險存在。

建議該指令在程序塊中的最后一個網絡中調用, 這樣可以診斷整個程序塊中的錯誤,如果在程序中間調用該指令,則后面的程序如果有錯誤,CPU 也會忽略錯誤,不會停機,也沒有相關報錯,將不利于問題的診斷

1. GetError 與 GetErrorID 的調用

編程界面下, 點擊右側 “指令-> 基本指令-> 程序控制操作” 中可以找到GetError及GetErrorID 兩個指令。(見下圖1)

1c161f06-9ec0-11ed-bfe3-dac502259ad0.jpg

圖1.

2. GerError 指令的使用

GetError:使用“獲取本地錯誤信息”指令,可以查詢塊內出現的錯誤。如果在塊執行期間出現錯誤,則發生的第一個錯誤的詳細信息將保存在輸出 ERROR 中。

消除第一個錯誤后,該指令會在Error 處輸出下一個錯誤的信息。僅當使能輸入 EN 的信號狀態為“1”且顯示了錯誤信息時,才置位“獲取本地錯誤信息”指令的使能輸出 ENO。

GetError 指令的輸出參數Error 的數據類型為ErrorStruct(見圖2),請注意:常規的變量類型中并未包含此類型。

1c303a1c-9ec0-11ed-bfe3-dac502259ad0.jpg

圖2

定義Error 變量的步驟:

1.需要創建一個全局數據塊并定義變量,例如變量名為Error,在DB 塊中手動輸入" Errorstruct ",該變量類型無法通過下拉列表選擇(見圖3)。

1c44cfc2-9ec0-11ed-bfe3-dac502259ad0.jpg

圖3

通常輸入“ E ” 時就可以看見該變量類型,可以直接點選。(見圖4)

1c723ff2-9ec0-11ed-bfe3-dac502259ad0.jpg

圖4.

2. 定義后的Error 結構如下:(見圖5),詳細的參數介紹請參考該指令的幫助文件。(選中塊, 按鍵盤上功能鍵 F1 )

1c8407a0-9ec0-11ed-bfe3-dac502259ad0.jpg

圖5.

3. 定義完成后可以直接在引腳輸入所創建的DB 塊的名稱,即可在下拉框中找到所定義的Error 變量( 見圖6)。

1d2f5218-9ec0-11ed-bfe3-dac502259ad0.jpg

圖6.

直接選擇Error 即可完成輸出參數的定義(圖7)。

1d37c29a-9ec0-11ed-bfe3-dac502259ad0.jpg

圖7.

可以通過打開DB 塊,監控Error的狀態判斷程序是否報錯。詳細報錯信息請參考該塊的幫助(選中塊, 按鍵盤上功能鍵 F1 )

例如: 在FC1 中編程調用一個不存在的地址 DB1.DBX0.0,此時GetError 指令執行, cpu 運行正常, 沒有error 燈亮,診斷緩沖區也不會報錯( 見圖8 )。

1d46a684-9ec0-11ed-bfe3-dac502259ad0.jpg

圖8.

注意:在TIA Protal v11 中,如果程序中使用了未定義的變量或未創建的變量,編譯將會報警,但程序可以下載, 未定義變量不能通過變量分配,見下圖9。

1d79828e-9ec0-11ed-bfe3-dac502259ad0.jpg

圖9.

此時監控DB 塊中Error 變量的狀態, 根據監視值查詢幫助可以知道 FC1 中調用的全局數據塊 DB1 中,偏移地址0 不存在(圖10)。

1da08dde-9ec0-11ed-bfe3-dac502259ad0.jpg

圖10.

3. GetErrorID 的使用

GetErrorID:使用“獲取本地錯誤 ID”指令(見圖11),可以查詢塊內出現的錯誤。如果在塊執行過程中系統信號出錯,會將發生的第一個錯誤的 ID 保存在輸出 ID 的變量中。

ID 輸出中只能指定 WORD 數據類型的操作數(見圖12)。消除第一個錯誤后,該指令才會輸出發生的下一個錯誤的ID。

僅當“獲取本地錯誤 ID”指令的輸入的信號狀態為“1”且顯示了錯誤信息時,才置位該指令的輸出。

1dbb84b8-9ec0-11ed-bfe3-dac502259ad0.jpg

圖11

1dd07418-9ec0-11ed-bfe3-dac502259ad0.jpg

圖12

下表列出了GetRrrorID 指令的輸出參數 ID 可以輸出的值對應的報錯信息。(GetError 指令輸出結構變量中的ErrorID適用于下表)

ID ID 說明
0 0 無錯誤
2503 9475 指針無效
2505 9477 在用戶程序中調用“Stop”指令 (SFC46)
2520 9504 STRING 無效
2522 9506 讀取錯誤:操作數超出有效范圍
2523 9507 寫入錯誤:操作數超出有效范圍
2524 9508 讀取錯誤:操作數無效
2525 9509 寫入錯誤:操作數無效
2528 9512 讀取錯誤:數據對齊
2529 9513 寫入錯誤:數據對齊
252C 9516 指針無效
2530 9520 寫入錯誤:數據塊
2533 9523 使用了無效指針
2534 9524 塊編號錯誤 FC
2535 9525 塊編號錯誤 FB
2538 9528 訪問錯誤:DB 不存在
2539 9529 訪問錯誤:使用了錯誤 DB
253A 9530 全局數據塊不存在
253C 9532 故障信息或函數不存在
253D 9533 系統函數不存在
253E 9534 故障信息或函數塊不存在
253F 9535 系統塊不存在
2550 9552 訪問錯誤:DB 不存在
2551 9553 訪問錯誤:使用了錯誤 DB
2575 9589 程序嵌套深度出錯
2576 9590 本地數據分配出錯
2942 10562 讀取錯誤:Input
2943 10563 寫入錯誤:Output

常問問題

GetError 與GetErrorID 的區別?

:GetError 與GetErrorID 區別在于 GetError 可以得到比較詳細的信息,如塊編號,偏移地址等, 便于問題的快速診斷及定位。GetErrorID 指令僅輸出簡單報錯信息。

如果程序比較復雜,建議使用GetError 指令可以更快捷的幫助查找程序錯誤 。

是否可以在一個塊中( FC 或 FB )中不同的網絡段中(Network)多次調用 GetError 或 GetError ID 指令?

:可以。在一個塊中不同的網絡段中調用多次GetError 指令或 GetErrorID 指令,可以診斷一個塊中不同網絡段中的錯誤(見圖13)。

1df99b54-9ec0-11ed-bfe3-dac502259ad0.jpg

圖13.

當然也可以在一個塊中的最后一個網絡只調用一次,如果程序中存在多處錯誤,發生的第一個錯誤的詳細信息將輸出至輸出參數Error 或 ID 處, 當第一個錯誤消失后,第二個錯誤的錯誤信息才被輸出至輸出參數。

是否可以在 OB1 中調用GetError 或 GetError ID 指令?

答:可以,使用方法與在FC 或 FB 中調用類似。

情況一:OB1 程序中出錯:

如果OB1 中的程序出錯,例如調用未組態硬件的 I 地址,但未調用GetError 指令,CPU error 燈會紅色閃爍,診斷緩沖區報錯(見圖14), 但CPU不會停機( 僅限于CPU 固件版本v2.0 以上版本,固件版本為V1.0 的CPU 在此種情況下會停機)

1e1e0638-9ec0-11ed-bfe3-dac502259ad0.jpg

圖14.

此時如果在OB1 中最后一條網絡調用GetError 或GetErrorID 指令,則診斷緩沖區的報錯信息消失, CPU 指示燈恢復正常。

情況二:OB1 本身的網絡中沒有錯誤, 但在 OB1 中調用的塊中存在錯誤, 例如FC1中存在錯誤:

1 )如果OB1 中無條件調用的塊例如FC1 出錯,OB1的其它網絡沒有錯誤, FC1 中有錯誤但并沒有調用Get Error 指令,CPU error 燈也會紅色閃爍,診斷緩沖區報錯(見圖15),但CPU不會停機( 僅限于CPU 固件版本v2.0 以上版本,固件版本為V1.0 的CPU 在此種情況下會停機),當在FC1 調用GetError 指令后, CPU 報錯信息消失,指示燈恢復正常。

1e336dca-9ec0-11ed-bfe3-dac502259ad0.jpg

圖15.

2 )如果OB1 中有條件調用塊,例如FC1, 但FC1 在OB 1 中的執行條件沒有滿足,則 CPU 不會報錯。一旦FC1 調用條件滿足被執行,且FC1 中的錯誤一直存在,則CPU error 燈也會閃,診斷緩沖區報錯(見圖15), 但CPU不會停機( 僅限于CPU 固件版本v2.0 以上版本,固件版本為V1.0 的CPU 在此種情況下會停機) 。

3) 如果OB1 中調用的塊FC 有錯誤,在OB1 中調用了GetError 指令,但出錯的塊 FC1 中未調用 GetError 指令,則CPU 也會出現 指示燈Error 紅色閃爍,診斷緩沖器報錯。見圖16。

1e489d30-9ec0-11ed-bfe3-dac502259ad0.jpg

圖16.

總結:由此可見, GetErrorID 或GetError 指令是基于塊的指令,只能診斷調用它的塊中的錯誤,如果出錯的程序中未調用該指令,則無法診斷該塊中的錯誤。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10905

    瀏覽量

    213031
  • tia
    tia
    +關注

    關注

    1

    文章

    82

    瀏覽量

    28167

原文標題:S-1500 :GetError 與 GetErrorID 指令的使用

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    WEEE指令和ROHS指令概況

      第一部份 WEEE指令和ROHS指令概況   一、WEEE指令   1、WEEE:2002/96/EC 報廢電子電氣設備指令Waste Electrical and Elect
    發表于 09-14 16:35 ?0次下載

    指令系統,指令系統是什么意思

    指令系統,指令系統是什么意思 一臺計算機所能執行的各種指令集合稱為指令系統或指令集。一臺特定的計算機只能執行自己
    發表于 03-24 17:04 ?1876次閱讀

    指令周期,什么是指令周期

    指令周期,什么是指令周期 指令周期的基本概念   CPU從內存取出一條指令并執行這條指令的時間總和。   
    發表于 03-24 17:08 ?6436次閱讀

    指令指令系統概述

    指令指令系統概述 基本概念 指令:引起計算機執行某種操作的最小的功能單位。 指令系統:一臺計算機的全部指令
    發表于 04-15 14:35 ?4270次閱讀

    指令、宏指令

    指令: 匯編語言程序的語句除指令外還包括偽指令和宏指令,偽指令又稱為偽操作,它不象機器指令那樣
    發表于 06-30 10:47 ?1977次閱讀

    數據傳送指令之MVN指令

    5.2 MVN指令 1.指令編碼格式 MVN是反相傳送(Move Negative)指令。它將操作數的反碼傳送到目的寄存器。 MVN指令多用于向寄存器傳送一個負數或生成位掩碼。
    發表于 10-18 14:36 ?0次下載
    數據傳送<b class='flag-5'>指令</b>之MVN<b class='flag-5'>指令</b>

    Thumb指令集之Thumb指令應用

    11.9 Thumb指令應用 11.9.1 Thumb的實現 對3級流水線的ARM處理器來說,做相對較小的改動就可以實現Thumb指令集(5級流水線的實現要復雜些)。為實現Thumb指令集,在
    發表于 10-19 09:34 ?0次下載
    Thumb<b class='flag-5'>指令</b>集之Thumb<b class='flag-5'>指令</b>應用

    指令和偽指令分得清嗎?

    指令(instruction):告訴計算機從事某一特殊運算的代碼,如數據傳送指令、算術運算指令、位運算指令、程序流程控制指令、串操作
    的頭像 發表于 06-01 10:58 ?6994次閱讀
    <b class='flag-5'>指令</b>和偽<b class='flag-5'>指令</b>分得清嗎?

    plc傳送指令和比較指令的運用實例

    我們應該都知道,傳送指令和比較指令可以說是功能指令中最常用的指令。傳送指令有傳送指令MOV,數位
    的頭像 發表于 01-30 09:51 ?1.4w次閱讀
    plc傳送<b class='flag-5'>指令</b>和比較<b class='flag-5'>指令</b>的運用實例

    什么是“AT”指令,如何使用?

    AT指令是S7-SCL中特有的一個指令,初學者可能會忽略此指令,或者對其理解不夠深刻。AT指令在S7-SCL中有著非常重要的地位,很多應用程序都必須使用此
    的頭像 發表于 04-09 15:25 ?2.3w次閱讀
    什么是“AT”<b class='flag-5'>指令</b>,如何使用?

    GetErrorGetErrorID指令的區別與應用場景分析

    在 STEP7 11 中,可以通過GetError (獲取本地錯誤信息)或者GetErrorID (獲取本地錯誤ID )指令查詢塊內出現的錯誤。
    的頭像 發表于 03-14 17:55 ?3329次閱讀

    PLC指令是什么、基本類型有常見指令有哪些

     PLC指令是可編程邏輯控制器(PLC)的指令集,也稱為PLC編程指令。這些指令是用于編寫和控制PLC程序的基本構建塊,它們包括輸入和輸出指令
    發表于 03-15 14:12 ?1.6w次閱讀

    PLC指令的基本類型 PLC指令如何輸入

      PLC指令是可編程邏輯控制器(PLC)的指令集,也稱為PLC編程指令。這些指令是用于編寫和控制PLC程序的基本構建塊,它們包括輸入和輸出指令
    發表于 03-15 14:36 ?4766次閱讀

    電路塊ANB指令與ORB指令操作

    一、ANB.ORB指令 在梯形圖中,可能會出現電路塊與電路塊串聯或者電路塊與電路塊并聯的情況,這時就要使用ANB指令或ORB指令。ANB指令稱為“電路塊與
    的頭像 發表于 09-18 09:59 ?6650次閱讀

    什么是AT指令?進入AT指令的方法 發送AT指令的方法

    什么是AT指令?進入AT指令的方法 發送AT指令的方法 AT指令(AT Command)是一種用于無線通信設備進行控制、調制解調器和其他串口設備進行通信的
    的頭像 發表于 10-25 15:14 ?4520次閱讀
    主站蜘蛛池模板: 狠狠干夜夜爽 | 欧美午夜视频一区二区三区 | 四虎在线成人免费网站 | 岛国三级在线看 | www.jizz中国| 亚洲午夜久久久久国产 | 国产三级精品最新在线 | 欧美高清免费一级在线 | 国模在线| 成人永久免费视频 | 久久亚洲成人 | 天天干天天操天天插 | 天天做爽夜夜做爽 | 香蕉成人999视频 | 天堂视频在线 | 性生大片免费观看无遮挡 | 国产小视频免费看 | 国产大乳美女挤奶视频 | 日本免费黄色大片 | 碰免费人人人视频 | 很黄网站| 亚州一级毛片 | 我想看一级播放片一级的 | 手机在线看片你懂的 | 三级毛片在线播放 | 五月天亚洲综合 | sihu在线| 天天操天天擦 | 亚洲电影在线 | 精品视频在线观看视频免费视频 | sss华人在线play | 欧美精品一二区 | 日韩毛片在线影视 | 好男人社区www在线观看 | 九九碰| 欧美极品第一页 | 抽搐一进一出gif免费男男 | www.a级片 | 五月亭亭激情五月 | 99国产国人青青视频在线观看 | 亚洲最大的成人网 |