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

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

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

VASS06中使用GET_DIAG的用法科普

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

說(shuō)明

指令“GET_DIAG”用于讀取硬件組件的診斷信息。硬件組件將通過(guò) LADDR 參數(shù)進(jìn)行選擇。通過(guò) MODE 參數(shù),選擇要讀取的診斷信息。MODE=0 時(shí),S7-1200 CPU 將忽略參數(shù) LADDR。

參數(shù)

下表列出了“GET_DIAG”指令的參數(shù):

參數(shù) 聲明 數(shù)據(jù)類型 存儲(chǔ)區(qū) 說(shuō)明
MODE Input UINT I、Q、M、D、L 或常量 通過(guò) MODE 參數(shù),選擇要輸出的診斷數(shù)據(jù)。
LADDR Input HW_ANY (UINT) I、Q、M、L 或常量 硬件組件的的硬件 ID
RET_VAL Return INT I、Q、M、D、L 指令的狀態(tài)
CNT_DIAG Output UINT I、Q、M、D、L 預(yù)留(始終為“0”)。
DIAG InOut VARIANT I、Q、M、D、L 診斷信息與所選模式一致,請(qǐng)參見(jiàn)下表
DETAIL InOut VARIANT I、Q、M、D、L 參數(shù)被隱藏。不要使用此參數(shù)!

參數(shù) MODE

根據(jù) MODE 參數(shù)中的值,在 DIAG、CNT_DIAG 和 DETAIL 輸出參數(shù)中輸出不同的診斷數(shù)據(jù)。

MODE 說(shuō)明 DIAG CNT_DIAG
0 以 DWORD 格式輸出硬件組件所有支持的診斷信息,其中位 X=1 表示支持模式 X。 DWORD 數(shù)據(jù)類型的位:
位 0 = 1:支持 MODE 0。
位 1 = 1:支持 MODE 1。
位 2 = 1:支持 MODE 2。
位 3 到 31:不相關(guān)
MODE=0 時(shí),S7-1200 CPU 將忽略參數(shù) LADDR。
0
1 輸出所尋址硬件組件的診斷狀態(tài)。 結(jié)構(gòu) DIS(請(qǐng)參見(jiàn)下文描述):
MaintenanceState
ComponentStateDetail
OwnState
IOState
OperatingState
0
2 輸出所尋址硬件對(duì)象中所有從屬組件的狀態(tài)。 結(jié)構(gòu) DNN(請(qǐng)參見(jiàn)下文描述):
SubordinateState
SubordinateIOState
DNNmode
0

DIS 結(jié)構(gòu)

參數(shù) MODE = 1 時(shí),以 DIS 結(jié)構(gòu)輸出診斷信息。此時(shí),在變量聲明中輸入系統(tǒng)數(shù)據(jù)類型“DIS”作為數(shù)據(jù)類型。

說(shuō)明
確定 OperatingState
確定標(biāo)準(zhǔn) CPU 的操作狀態(tài)時(shí),需要選擇 LADDR = 52(CPUExecUnit 的硬件標(biāo)識(shí)符)。
確定標(biāo)準(zhǔn) CPU 的操作狀態(tài)時(shí),需要選擇 LADDR = 65147(Local1~HCPUredCtrl 的硬件標(biāo)識(shí)符)或 LADDR = 65347(Local2~HCPUredCtrl 的硬件標(biāo)識(shí))。
確定 R/H 系統(tǒng)的系統(tǒng)狀態(tài)時(shí),需要選擇 LADDR = 34(Local1~RHSystem 的硬件標(biāo)識(shí)符)。

下表列出了各參數(shù)值的含義:

參數(shù) 數(shù)據(jù)類型 說(shuō)明 參數(shù)構(gòu)成規(guī)則
MaintenanceState DWORD 枚舉 MaintenanceState 取決于 ComponentStateDetail。
0 良好 ComponentStateDetail 的位 15 始終為 1。
ComponentStateDetail 的位 11 到 14 的值可以是 0 或 1。
ComponentStateDetail 的位 3 可以是 1。
ComponentStateDetail 的所有其它位均為 0。
1 硬件組件已禁用。 如果 ComponentStateDetail 的位 16 為 1
如果 ComponentStateDetail 的位 17 為 1
2 - -
3 - -
4 - -
5 需要維護(hù) 如果 ComponentStateDetail 的位 4 為 1
6 要求維護(hù) 如果 ComponentStateDetail 的位 5 為 1
7 錯(cuò)誤 如果 ComponentStateDetail 的位 6 為 1
8 上一級(jí)硬件組件的狀態(tài)為“未知/錯(cuò)誤” 如果 ComponentStateDetail 的位 11 到 14 的值為 3
如果 ComponentStateDetail 的位 7 到 10 的值為 3 或 4
9 - -
10 輸入/輸出不可用。 如果 ComponentStateDetail 的位 11 到 14 的值為 2
如果 ComponentStateDetail 的位 7 到 10 的值為 1 或 2
如果 ComponentStateDetail 的位 18 為 1
如果 ComponentStateDetail 的位 19 為 1
ComponentStateDetail DWORD 位數(shù)組 狀態(tài):
位 0 到 15:硬件組件的狀態(tài)
位 16 到 31:CPU 的狀態(tài)
-
0 到 2(枚舉) 其它信息:
0:無(wú)其它信息
1:不允許傳送
-
3 位 3 = 1:至少一個(gè)合格診斷可用 -
4 位 4 = 1:至少一個(gè)通道或組件需要維護(hù) -
5 位 5 = 1:至少一個(gè)通道或組件需要維護(hù) -
6 位 6 = 1:至少一個(gè)通道或組件錯(cuò)誤 -
7 到 10(枚舉) 0:Own - 硬件組件可用
1:Application Ready Pending - 無(wú) I/O 訪問(wèn)
2:Locked by Superordinated - 硬件組件不可訪問(wèn)
3:Locked by IOController - 硬件組件不可訪問(wèn)
4:Locked by IOSupervisor - 硬件組件不可訪問(wèn)
-
11 到 14(枚舉) 0(位 11 = 0,位 12 = 0,位 13 = 0,位 14 = 0):OK - 元素正確。
1(位 11 = 1,位 12 = 0,位 13 = 0,位 14 = 0):Substitute - 該元素將替代為一個(gè)兼容元素。
2(位 11 = 0,位 12 = 1,位 13 = 0,位 14 = 0):Wrong - 該元素將替代為一個(gè)非兼容元素(該元素可訪問(wèn),但尚未就緒無(wú)法操作)。
3(位 11 = 1,位 12 = 1,位 13 = 0,位 14 = 0):No Submodule - 該元素不存在。
-
15 預(yù)留(始終為“1”)。 -
16 到 31 CPU 生成的模塊狀態(tài)信息:
第 16 位 = 1:子模塊或模塊已禁用
第 17 位 = 1:激活 CiR 操作
位 18 = 1:輸入不可用
第 19 位 = 1:輸出不可用
位 20 = 1:診斷緩沖區(qū)溢出
位 21 = 1:診斷不可用
位 22 = 1:Partial device failure(帶有 PNIO,可用于共享設(shè)備)
位 23 到 31:預(yù)留(始終為 0)
-
OwnState UINT 枚舉 維護(hù)狀態(tài) OwnState 取決于 MaintenanceState。
0 良好 如果 MaintenanceState 的值為 0。
1 禁用 如果 MaintenanceState 的值為 1。
2 需要維護(hù) 如果 MaintenanceState 的值為 5。
3 要求維護(hù) 如果 MaintenanceState 的值為 6。
4 錯(cuò)誤 如果 MaintenanceState 的值為 7。
5 不可訪問(wèn) 如果 MaintenanceState 的值為 8。
6 診斷狀態(tài)未知 未返回診斷事件的組件的默認(rèn)值。
7 IO not available - 輸入/輸出不可用。 如果 MaintenanceState 的值為 10。
IOState WORD 位數(shù)組 硬件組件的 I/O 狀態(tài) 可設(shè)置一個(gè)或多個(gè)位。
IOState 取決于 ComponentStateDetail。
位 0 = 1 良好 ComponentStateDetail 的位 15 始終為 1。
ComponentStateDetail 的位 11 到 14 的值可以是 0 或 1。
ComponentStateDetail 的位 3 可以是 1。
ComponentStateDetail 的所有其它位均為 0。
如果位 0 = 1,則位 1 到 5 和位 7 = 0。
位 1 = 1 禁用 如果 ComponentStateDetail 的位 16 為 1
如果 ComponentStateDetail 的位 17 為 1
如果位 1 = 1,則所有其它位均為 0。
位 2 = 1 需要維護(hù) 如果 ComponentStateDetail 的位 4 為 1
位 3 = 1 要求維護(hù) 如果 ComponentStateDetail 的位 5 為 1
位 4 = 1 錯(cuò)誤 如果 ComponentStateDetail 的位 6 為 1
位 5 = 1 Hardware component not reachable - 硬件組件無(wú)法訪問(wèn)。 如果 ComponentStateDetail 的位 11 到 14 的值為 3
如果 ComponentStateDetail 的位 7 到 10 的值為 3 或 4
如果位 5 = 1,則所有其它位均為 0。
位 6 = 1: Qualified:位 6 = 1:至少一個(gè)合格診斷可用 如果 ComponentStateDetail 的位 3 為 1。
在這種情況下,將位 0、2 或 3 置位。
第 7 位 = 1: I/O data not available - I/O 數(shù)據(jù)不可用 如果 ComponentStateDetail 的位 11 到 14 的值為 2
如果 ComponentStateDetail 的位 7 到 10 的值為 1 或 2
如果 ComponentStateDetail 的位 18 為 1
如果 ComponentStateDetail 的位 19 為 1
8 到 14 預(yù)留(始終為“0”) -
位 15 網(wǎng)絡(luò)/硬件故障
S7-1200:預(yù)留(始終為“0”)
S7-1500:如果位 4 = 1 或位 5 = 1:
位 15 = 0:網(wǎng)絡(luò)錯(cuò)誤
位 15 = 1:硬件錯(cuò)誤
-
OperatingState UINT 枚舉 -
0 Not Supported - 對(duì)于 I/O 模塊,OperatingState 的值始終為“0”。 -
1 STOP / 固件更新 -
2 STOP / 存儲(chǔ)器復(fù)位 -
3 STOP / 自啟動(dòng) -
4 STOP -
5 存儲(chǔ)器復(fù)位 -
6 啟動(dòng) -
7 - -
8 RUN -
9 RUN-Redundant -
10 HOLD -
11 - -
12 - -
13 DEFECT(注:僅在診斷緩沖區(qū)條目中可見(jiàn)) -
14 - -
15 斷電(注:僅在診斷緩沖區(qū)條目中可見(jiàn)) -
16 CiR -
17 STOP,且無(wú) ODIS -
18 RUN ODIS -
19 PgmTest -
20 RunPgmTest(備用 CPU 處于測(cè)試模式時(shí)主 CPU 的狀態(tài)) -
21 Run-Syncup(只有主 CPU 處于 SYNCUP 系統(tǒng)狀態(tài)) -
22 SYNCUP(僅備用 CPU 處于 SYNCUP 系統(tǒng)狀態(tài)) -
31 伙伴 CPU 的狀態(tài)未知(如,伙伴 CPU 不可用) -
32 - -
33 STOP 系統(tǒng)狀態(tài) -
34 預(yù)留 -
35 STARTUP 系統(tǒng)狀態(tài) -
36 預(yù)留 -
37 RUN-Solo 系統(tǒng)狀態(tài) -
38 SYNCUP 系統(tǒng)狀態(tài) -
39 預(yù)留 -
40 RUN-Redundant 系統(tǒng)狀態(tài) -

DNN 結(jié)構(gòu)

參數(shù) MODE = 2 時(shí),以 DNN 結(jié)構(gòu)輸出診斷的詳細(xì)信息。此時(shí),在變量聲明中輸入系統(tǒng)數(shù)據(jù)類型“DNN”作為數(shù)據(jù)類型。

下表列出了各參數(shù)值的含義:

參數(shù) 數(shù)據(jù)類型 說(shuō)明
SubordinateState UINT Enum 從屬組件的狀態(tài)(請(qǐng)參見(jiàn) DIS 結(jié)構(gòu)的參數(shù) OwnState)
SubordinateIOState WORD Bitarray 從屬組件的輸入和輸出狀態(tài)(請(qǐng)參見(jiàn) DIS 結(jié)構(gòu)的參數(shù) IO State)
DNNmode WORD Bitarray 第 0 位 = 0:診斷已啟用
位 0 = 1:診斷已禁用
位 1 至 15:預(yù)留

參數(shù) RET_VAL

錯(cuò)誤代碼*
(W#16#...)
說(shuō)明
0 無(wú)錯(cuò)誤
n DETAIL 參數(shù)中的數(shù)據(jù)區(qū)域太小。未輸出診斷數(shù)據(jù)的所有詳細(xì)信息。
8080 不支持 MODE 參數(shù)中的值。
8081 所選模式(參數(shù) MODE)不支持 DIAG 參數(shù)中的類型。
8082 所選模式(參數(shù) MODE)不支持 DETAIL 參數(shù)中的類型。
8090 LADDR 不存在
80C1 并行執(zhí)行的資源不足。
* 在程序編輯器中,錯(cuò)誤代碼將顯示為整數(shù)或十六進(jìn)制值。有關(guān)切換顯示格式的信息,請(qǐng)參見(jiàn)“另請(qǐng)參見(jiàn)”。

示例

在以下示例中,讀取 CPU 的診斷信息。

在全局?jǐn)?shù)據(jù)塊中創(chuàng)建四個(gè)變量和一個(gè)“myDIAG”結(jié)構(gòu)(數(shù)據(jù)類型為 DIS),用于存儲(chǔ)數(shù)據(jù)。

631729a0-82d5-11ee-939d-92fbcf53809c.png

互連該指令的參數(shù),如下所示:

632846ae-82d5-11ee-939d-92fbcf53809c.png

通過(guò)參數(shù) LADDR(“myLADDR”)使“GET_DIAG”指令了解 CPU 的硬件標(biāo)識(shí)符。根據(jù)參數(shù) MODE(“diagMODE”)的值“1”,以下幾點(diǎn)適用:

指令將讀?。–PU 的)所尋址硬件對(duì)象的狀態(tài)。

在參數(shù) DIAG(“myDIAG”)中,診斷信息將在結(jié)構(gòu)(DIS 數(shù)據(jù)類型)中輸出。

要了解診斷信息,必須將十六進(jìn)制值轉(zhuǎn)換為二進(jìn)制代碼。通過(guò)參數(shù) DIAG(“myDIAG”),指示以下信息:

MaintenanceState:根據(jù)值“0”,CPU 無(wú)需維護(hù)。

ComponentStateDetail:根據(jù)十六進(jìn)制值“0000_8000”,位 15 已激活。

OwnState:根據(jù)值“0”,無(wú)故障發(fā)生。

IOState:根據(jù)十六進(jìn)制值“0001”,無(wú)需維護(hù)。

OperatingState:輸出“0”。

輸出參數(shù) RET_VAL(“returnValue”)用于指示處理無(wú)錯(cuò)誤。通過(guò)輸出參數(shù) CNT_DIAG(“CountDiagDetails”),指示參數(shù) DETAIL 的“0”診斷詳情已輸出。

6344a3ee-82d5-11ee-939d-92fbcf53809c.png

注:例如,可以從 ComponentStateDetail 變量單獨(dú)讀取位 3(通道診斷“是/否”)。

尋址該位,如下所示:ComponentStateDetail.%X3







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    10805

    瀏覽量

    210847
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    17878

原文標(biāo)題:VASS06中使用GET_DIAG的用法

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DIAG內(nèi)部是否與EN連接?

    在L6229Q的數(shù)據(jù)表,第5.2節(jié)“引腳EN(使能)具有相同的輸入結(jié)構(gòu),但過(guò)流和熱保護(hù)MOSFET的漏極也連接到該引腳。” 然而,第5.7節(jié)說(shuō)明''引腳DIAG可用于將故障狀態(tài)信號(hào)發(fā)送到?C或
    發(fā)表于 06-19 16:39

    20個(gè)在Linux操作中使用到的ls用法的示例詳解

    ls命令用于列出文件和目錄,默認(rèn)列出當(dāng)前目錄的內(nèi)容。帶上參數(shù)后,我們可以用ls做更多的事情。這里是一些在日常操作中使用到的ls用法的示例。
    的頭像 發(fā)表于 12-11 15:22 ?2588次閱讀

    大眾VASS06報(bào)警信息提示功能

    SIMATIC ProDiag是用于機(jī)器和工廠診斷的完全集成的TIA解決方案。它節(jié)省了在工程階段在CPU中進(jìn)行編程診斷的需求,并提供了對(duì)HMI進(jìn)行故障排除的支持。ProDiag使得監(jiān)視機(jī)器或工廠并在發(fā)生故障時(shí)進(jìn)行干預(yù)成為可能。
    的頭像 發(fā)表于 05-10 10:44 ?4619次閱讀
    大眾<b class='flag-5'>VASS06</b>報(bào)警信息提示功能

    博途VASS06的CPU設(shè)置要求

    VASS06版使用的CPU為: CPU 1517F CPU: 為了實(shí)現(xiàn) VASS 標(biāo)準(zhǔn)的預(yù)期功能范圍,CPU 1517F至少需要固件版本 V2.5。 安全系統(tǒng): 這里需要固件版本 V2.1
    的頭像 發(fā)表于 12-23 15:51 ?4123次閱讀

    VASS06版使用的CPU為: CPU 1517F

    為此,請(qǐng)打開提供的示例項(xiàng)目;TIA將安裝那些尚未安裝在 TIA 的 GSD 文件。也可以通過(guò)菜單項(xiàng)“選項(xiàng)à管理設(shè)備描述文件(GSD)”在“HW-Config”安裝附加的GSD文件。
    的頭像 發(fā)表于 01-18 11:40 ?2729次閱讀
    <b class='flag-5'>VASS06</b>版使用的CPU為: CPU 1517F

    關(guān)于博途VASS6的Profinet診斷

    Profinet 診斷 操作頁(yè)面包含以下功能范圍: ? 顯示所有 Profinet 參與者的狀態(tài)信息和導(dǎo)航到 Profinet 詳細(xì)診斷 ? Profinet I/O 拓?fù)?這一點(diǎn)VASS06的界面
    的頭像 發(fā)表于 06-09 16:46 ?2986次閱讀

    關(guān)于FB148系統(tǒng)診斷

    /接觸器反饋監(jiān)控)正常 AC :??無(wú)鈍化(沒(méi)有模塊被鈍化;“安全關(guān)機(jī)”) ACKR :?去鈍化請(qǐng)求 _Cfg : 組態(tài)位(見(jiàn)組態(tài)位表) F-PROG_SIG : ?在VASS06規(guī)定
    的頭像 發(fā)表于 07-07 16:33 ?1514次閱讀

    VASS 標(biāo)準(zhǔn)的預(yù)期功能范圍

    為了實(shí)現(xiàn) VASS 標(biāo)準(zhǔn)的預(yù)期功能范圍,CPU 1517F至少需要固件版本 V2.5。
    的頭像 發(fā)表于 07-15 10:50 ?2071次閱讀

    大眾VASS06報(bào)警信息提示功能

    VASS06由于PLC使用博途1500,博途1500,具有ProDiag功能,因此VASS06PLC的報(bào)警功能通過(guò)ProDiag來(lái)實(shí)現(xiàn)的!
    的頭像 發(fā)表于 01-05 10:04 ?1124次閱讀

    JavaGet和Post的使用

    JavaGet和Post的使用
    的頭像 發(fā)表于 01-12 15:38 ?699次閱讀
    Java<b class='flag-5'>中</b><b class='flag-5'>Get</b>和Post的使用

    HTTPGET與POST的區(qū)別是什么?

    GET和POST是HTTP請(qǐng)求的兩種基本方法,要說(shuō)它們的區(qū)別,接觸過(guò)WEB開發(fā)的人都能說(shuō)出一二。 最直觀的區(qū)別就是GET把參數(shù)包含在URL,POST通過(guò)request body傳遞參數(shù)。
    發(fā)表于 08-05 12:21 ?465次閱讀

    淺談博途VASS06的CPU設(shè)置要求

    必須始終在 WinCC 運(yùn)行系統(tǒng)的設(shè)備組態(tài)設(shè)置運(yùn)行系統(tǒng)軟件(WinCC Runtime Advanced)的相應(yīng)組態(tài)。
    發(fā)表于 10-12 11:24 ?1336次閱讀
    淺談博途<b class='flag-5'>VASS06</b>的CPU設(shè)置要求

    PipelinethrowIt的用法

    字如其名,來(lái)看下PipelinethrowIt的用法,是怎么個(gè)丟棄方式。
    的頭像 發(fā)表于 10-21 16:24 ?508次閱讀
    Pipeline<b class='flag-5'>中</b>throwIt的<b class='flag-5'>用法</b>

    VASS06:用戶 DB/數(shù)據(jù)塊配置應(yīng)用案例

    編號(hào)分配 為了簡(jiǎn)化編號(hào)分配并且避免搜索空閑編號(hào),可將編號(hào)切換到手動(dòng) (1) 并且指定實(shí)例 DB 的開始范圍“2000”(2)。 出現(xiàn)提示 (3) 該編號(hào)已存在的消息。
    的頭像 發(fā)表于 10-26 10:48 ?515次閱讀
    <b class='flag-5'>VASS06</b><b class='flag-5'>中</b>:用戶 DB/數(shù)據(jù)塊配置應(yīng)用案例

    VASS06機(jī)器人關(guān)于A23的用法控制

    編程“無(wú)訪問(wèn)要求”/“保護(hù)柵鎖定”E23/A23 該功能必須在相應(yīng)機(jī)器人程序(序列和子程序)的每個(gè)精度點(diǎn)進(jìn)行編程。 這個(gè)函數(shù)不能在一集的第一點(diǎn)和最后一點(diǎn)調(diào)用!
    發(fā)表于 12-07 10:46 ?453次閱讀
    <b class='flag-5'>VASS06</b>機(jī)器人關(guān)于A23的<b class='flag-5'>用法</b>控制