精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GetError與GetErrorID指令的使用

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2023-01-29 10:57 ? 次閱讀

GetError 與 GetErrorID 指令的使用

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

請(qǐng)注意:GetError 和 GetErrorID 均支持塊內(nèi)的錯(cuò)誤處理。當(dāng)在程序塊中調(diào)用GetError 或GetErrorID 指令后,如果該程序塊發(fā)生錯(cuò)誤,CPU則將忽略任何預(yù)定義的系統(tǒng)響應(yīng)。

也就是說(shuō)CPU 會(huì)忽略此錯(cuò)誤,而且CPU 的Error 燈(紅色)也不會(huì)亮,CPU 也不會(huì)停機(jī)。所以說(shuō)該指令在某種程度上也起到了抑制程序錯(cuò)誤的作用,同時(shí)有一定的風(fēng)險(xiǎn)存在。

建議該指令在程序塊中的最后一個(gè)網(wǎng)絡(luò)中調(diào)用, 這樣可以診斷整個(gè)程序塊中的錯(cuò)誤,如果在程序中間調(diào)用該指令,則后面的程序如果有錯(cuò)誤,CPU 也會(huì)忽略錯(cuò)誤,不會(huì)停機(jī),也沒(méi)有相關(guān)報(bào)錯(cuò),將不利于問(wèn)題的診斷

1. GetError 與 GetErrorID 的調(diào)用

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

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

圖1.

2. GerError 指令的使用

GetError:使用“獲取本地錯(cuò)誤信息”指令,可以查詢塊內(nèi)出現(xiàn)的錯(cuò)誤。如果在塊執(zhí)行期間出現(xiàn)錯(cuò)誤,則發(fā)生的第一個(gè)錯(cuò)誤的詳細(xì)信息將保存在輸出 ERROR 中。

消除第一個(gè)錯(cuò)誤后,該指令會(huì)在Error 處輸出下一個(gè)錯(cuò)誤的信息。僅當(dāng)使能輸入 EN 的信號(hào)狀態(tài)為“1”且顯示了錯(cuò)誤信息時(shí),才置位“獲取本地錯(cuò)誤信息”指令的使能輸出 ENO。

GetError 指令的輸出參數(shù)Error 的數(shù)據(jù)類型為ErrorStruct(見(jiàn)圖2),請(qǐng)注意:常規(guī)的變量類型中并未包含此類型。

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

圖2

定義Error 變量的步驟:

1.需要?jiǎng)?chuàng)建一個(gè)全局?jǐn)?shù)據(jù)塊并定義變量,例如變量名為Error,在DB 塊中手動(dòng)輸入" Errorstruct ",該變量類型無(wú)法通過(guò)下拉列表選擇(見(jiàn)圖3)。

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

圖3

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

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

圖4.

2. 定義后的Error 結(jié)構(gòu)如下:(見(jiàn)圖5),詳細(xì)的參數(shù)介紹請(qǐng)參考該指令的幫助文件。(選中塊, 按鍵盤(pán)上功能鍵 F1 )

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

圖5.

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

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

圖6.

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

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

圖7.

可以通過(guò)打開(kāi)DB 塊,監(jiān)控Error的狀態(tài)判斷程序是否報(bào)錯(cuò)。詳細(xì)報(bào)錯(cuò)信息請(qǐng)參考該塊的幫助(選中塊, 按鍵盤(pán)上功能鍵 F1 )

例如: 在FC1 中編程調(diào)用一個(gè)不存在的地址 DB1.DBX0.0,此時(shí)GetError 指令執(zhí)行, cpu 運(yùn)行正常, 沒(méi)有error 燈亮,診斷緩沖區(qū)也不會(huì)報(bào)錯(cuò)( 見(jiàn)圖8 )。

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

圖8.

注意:在TIA Protal v11 中,如果程序中使用了未定義的變量或未創(chuàng)建的變量,編譯將會(huì)報(bào)警,但程序可以下載, 未定義變量不能通過(guò)變量分配,見(jiàn)下圖9。

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

圖9.

此時(shí)監(jiān)控DB 塊中Error 變量的狀態(tài), 根據(jù)監(jiān)視值查詢幫助可以知道 FC1 中調(diào)用的全局?jǐn)?shù)據(jù)塊 DB1 中,偏移地址0 不存在(圖10)。

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

圖10.

3. GetErrorID 的使用

GetErrorID:使用“獲取本地錯(cuò)誤 ID”指令(見(jiàn)圖11),可以查詢塊內(nèi)出現(xiàn)的錯(cuò)誤。如果在塊執(zhí)行過(guò)程中系統(tǒng)信號(hào)出錯(cuò),會(huì)將發(fā)生的第一個(gè)錯(cuò)誤的 ID 保存在輸出 ID 的變量中。

ID 輸出中只能指定 WORD 數(shù)據(jù)類型的操作數(shù)(見(jiàn)圖12)。消除第一個(gè)錯(cuò)誤后,該指令才會(huì)輸出發(fā)生的下一個(gè)錯(cuò)誤的ID。

僅當(dāng)“獲取本地錯(cuò)誤 ID”指令的輸入的信號(hào)狀態(tài)為“1”且顯示了錯(cuò)誤信息時(shí),才置位該指令的輸出。

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

圖11

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

圖12

下表列出了GetRrrorID 指令的輸出參數(shù) ID 可以輸出的值對(duì)應(yīng)的報(bào)錯(cuò)信息。(GetError 指令輸出結(jié)構(gòu)變量中的ErrorID適用于下表)

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

常問(wèn)問(wèn)題

GetError 與GetErrorID 的區(qū)別?

:GetError 與GetErrorID 區(qū)別在于 GetError 可以得到比較詳細(xì)的信息,如塊編號(hào),偏移地址等, 便于問(wèn)題的快速診斷及定位。GetErrorID 指令僅輸出簡(jiǎn)單報(bào)錯(cuò)信息。

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

是否可以在一個(gè)塊中( FC 或 FB )中不同的網(wǎng)絡(luò)段中(Network)多次調(diào)用 GetError 或 GetError ID 指令?

:可以。在一個(gè)塊中不同的網(wǎng)絡(luò)段中調(diào)用多次GetError 指令或 GetErrorID 指令,可以診斷一個(gè)塊中不同網(wǎng)絡(luò)段中的錯(cuò)誤(見(jiàn)圖13)。

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

圖13.

當(dāng)然也可以在一個(gè)塊中的最后一個(gè)網(wǎng)絡(luò)只調(diào)用一次,如果程序中存在多處錯(cuò)誤,發(fā)生的第一個(gè)錯(cuò)誤的詳細(xì)信息將輸出至輸出參數(shù)Error 或 ID 處, 當(dāng)?shù)谝粋€(gè)錯(cuò)誤消失后,第二個(gè)錯(cuò)誤的錯(cuò)誤信息才被輸出至輸出參數(shù)。

是否可以在 OB1 中調(diào)用GetError 或 GetError ID 指令?

答:可以,使用方法與在FC 或 FB 中調(diào)用類似。

情況一:OB1 程序中出錯(cuò):

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

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

圖14.

此時(shí)如果在OB1 中最后一條網(wǎng)絡(luò)調(diào)用GetError 或GetErrorID 指令,則診斷緩沖區(qū)的報(bào)錯(cuò)信息消失, CPU 指示燈恢復(fù)正常。

情況二:OB1 本身的網(wǎng)絡(luò)中沒(méi)有錯(cuò)誤, 但在 OB1 中調(diào)用的塊中存在錯(cuò)誤, 例如FC1中存在錯(cuò)誤:

1 )如果OB1 中無(wú)條件調(diào)用的塊例如FC1 出錯(cuò),OB1的其它網(wǎng)絡(luò)沒(méi)有錯(cuò)誤, FC1 中有錯(cuò)誤但并沒(méi)有調(diào)用Get Error 指令,CPU error 燈也會(huì)紅色閃爍,診斷緩沖區(qū)報(bào)錯(cuò)(見(jiàn)圖15),但CPU不會(huì)停機(jī)( 僅限于CPU 固件版本v2.0 以上版本,固件版本為V1.0 的CPU 在此種情況下會(huì)停機(jī)),當(dāng)在FC1 調(diào)用GetError 指令后, CPU 報(bào)錯(cuò)信息消失,指示燈恢復(fù)正常。

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

圖15.

2 )如果OB1 中有條件調(diào)用塊,例如FC1, 但FC1 在OB 1 中的執(zhí)行條件沒(méi)有滿足,則 CPU 不會(huì)報(bào)錯(cuò)。一旦FC1 調(diào)用條件滿足被執(zhí)行,且FC1 中的錯(cuò)誤一直存在,則CPU error 燈也會(huì)閃,診斷緩沖區(qū)報(bào)錯(cuò)(見(jiàn)圖15), 但CPU不會(huì)停機(jī)( 僅限于CPU 固件版本v2.0 以上版本,固件版本為V1.0 的CPU 在此種情況下會(huì)停機(jī)) 。

3) 如果OB1 中調(diào)用的塊FC 有錯(cuò)誤,在OB1 中調(diào)用了GetError 指令,但出錯(cuò)的塊 FC1 中未調(diào)用 GetError 指令,則CPU 也會(huì)出現(xiàn) 指示燈Error 紅色閃爍,診斷緩沖器報(bào)錯(cuò)。見(jiàn)圖16。

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

圖16.

總結(jié):由此可見(jiàn), GetErrorID 或GetError 指令是基于塊的指令,只能診斷調(diào)用它的塊中的錯(cuò)誤,如果出錯(cuò)的程序中未調(diào)用該指令,則無(wú)法診斷該塊中的錯(cuò)誤。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10824

    瀏覽量

    211135
  • tia
    tia
    +關(guān)注

    關(guān)注

    1

    文章

    81

    瀏覽量

    28078

原文標(biāo)題:S-1500 :GetError 與 GetErrorID 指令的使用

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    WEEE指令和ROHS指令概況

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

    指令系統(tǒng),指令系統(tǒng)是什么意思

    指令系統(tǒng),指令系統(tǒng)是什么意思 一臺(tái)計(jì)算機(jī)所能執(zhí)行的各種指令集合稱為指令系統(tǒng)或指令集。一臺(tái)特定的計(jì)算機(jī)只能執(zhí)行自己
    發(fā)表于 03-24 17:04 ?1863次閱讀

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

    指令周期,什么是指令周期 指令周期的基本概念   CPU從內(nèi)存取出一條指令并執(zhí)行這條指令的時(shí)間總和。   
    發(fā)表于 03-24 17:08 ?6398次閱讀

    指令指令系統(tǒng)概述

    指令指令系統(tǒng)概述 基本概念 指令:引起計(jì)算機(jī)執(zhí)行某種操作的最小的功能單位。 指令系統(tǒng):一臺(tái)計(jì)算機(jī)的全部指令
    發(fā)表于 04-15 14:35 ?4222次閱讀

    指令、宏指令

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

    數(shù)據(jù)傳送指令之MVN指令

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

    Thumb指令集之Thumb指令應(yīng)用

    11.9 Thumb指令應(yīng)用 11.9.1 Thumb的實(shí)現(xiàn) 對(duì)3級(jí)流水線的ARM處理器來(lái)說(shuō),做相對(duì)較小的改動(dòng)就可以實(shí)現(xiàn)Thumb指令集(5級(jí)流水線的實(shí)現(xiàn)要復(fù)雜些)。為實(shí)現(xiàn)Thumb指令集,在
    發(fā)表于 10-19 09:34 ?0次下載
    Thumb<b class='flag-5'>指令</b>集之Thumb<b class='flag-5'>指令</b>應(yīng)用

    指令和偽指令分得清嗎?

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

    plc傳送指令和比較指令的運(yùn)用實(shí)例

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

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

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

    GetErrorGetErrorID指令的區(qū)別與應(yīng)用場(chǎng)景分析

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

    PLC指令是什么、基本類型有常見(jiàn)指令有哪些

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

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

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

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

    一、ANB.ORB指令 在梯形圖中,可能會(huì)出現(xiàn)電路塊與電路塊串聯(lián)或者電路塊與電路塊并聯(lián)的情況,這時(shí)就要使用ANB指令或ORB指令。ANB指令稱為“電路塊與
    的頭像 發(fā)表于 09-18 09:59 ?5737次閱讀

    什么是AT指令?進(jìn)入AT指令的方法 發(fā)送AT指令的方法

    什么是AT指令?進(jìn)入AT指令的方法 發(fā)送AT指令的方法 AT指令(AT Command)是一種用于無(wú)線通信設(shè)備進(jìn)行控制、調(diào)制解調(diào)器和其他串口設(shè)備進(jìn)行通信的
    的頭像 發(fā)表于 10-25 15:14 ?4122次閱讀