女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

使用RDREC讀取診斷數(shù)據(jù)記錄的編程示例

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-07-24 15:59 ? 次閱讀

簡介

在以下示例中,可通過 RDREC 讀取 IO 設備的診斷數(shù)據(jù)記錄“16#E00A”。觸發(fā)斷路時,系統(tǒng)將錯誤信息輸出為一條診斷數(shù)據(jù)記錄。

說明
診斷數(shù)據(jù)記錄的數(shù)目
對于該 IO 設備,模塊上每個觸發(fā)錯誤的插槽都將生成自己的數(shù)據(jù)記錄。因此,診斷信息中可包含多條記錄。
在該示例中,將讀取多個模塊的多個硬件錯誤(通道錯誤),并將這些錯誤復制到存儲器數(shù)組的相應結構中。根據(jù)指定的設置,存儲器數(shù)組(“recordA”、“recordB”)最多可包含 6 條數(shù)據(jù)記錄、16 個通道。

77eb862e-29f6-11ee-a368-dac502259ad0.png

要求

安裝的硬件

需安裝以下硬件設備:

一個 IO 控制器(如,S7-1513-1 PN)

一個 IO 設備(如,ET 200MP IM 155-5 PN HF)

一個或多個高性能型的數(shù)字量輸出模塊(如,DQ 4x24VDC HF)

說明
觸發(fā)斷路
確保觸發(fā)斷路的 DQ 模塊通道未接線。
說明
硬件配置的操作步驟
要進行硬件配置,請按以下步驟操作:
通過 PROFINET 連接 CPU 和 IO,并將 CPU 分配給 IO 設備作為 IO 控制器。
打開相應 DQ 模塊的路徑“屬性 > 輸出 0-x > 輸出 > 通道 0-y”(Properties > Output 0-x > Outputs > Channel 0-y)。
選擇待組態(tài)的每個通道,然后在“診斷”("Diagnostics) 區(qū)域中選中“斷路”(Wire break) 選項。

創(chuàng)建 PLC 數(shù)據(jù)類型

要傳輸和存儲數(shù)據(jù),需要以下 PLC 數(shù)據(jù)類型:

說明
數(shù)組的大小
如果要更改數(shù)組的大小(用于讀取存儲器、數(shù)據(jù)記錄或通道),則需執(zhí)行以下操作:
通道:在 PLC 數(shù)據(jù)類型(“RECdiag_0100”、“RECdiag_0101”)中修改數(shù)組的大小(“Array[0..y] of USI_v..”)。在 gDB 中修改“maxChannelPos”值。
數(shù)據(jù)記錄:在 gDB 中修改數(shù)組的大小(“recordA”、“recordB”)。在 gDB 中修改“maxRecordPos”值。
讀取存儲器(“recordBYTE”):在 gDB 中修改數(shù)組的大小(“recordBYTE”)和“maxPosition”的值。請注意,診斷數(shù)據(jù)記錄“16#E00A”的最大總長度為 4176 個字節(jié)。

創(chuàng)建監(jiān)控表

要觸發(fā)斷路,需使用監(jiān)控表的“強制”(Force) 功能。

例如,如果要將輸出“%QW0”的值強制為“16#FFFF”,則所有組態(tài)有斷路的通道可使用該輸出觸發(fā)一個硬件錯誤。

數(shù)據(jù)的存儲

創(chuàng)建以下變量和結構,將數(shù)據(jù)存儲在一個全局數(shù)據(jù)塊 (gDB) 中:

78976d04-29f6-11ee-a368-dac502259ad0.png

讀取 IO 設備前端模塊的硬件標識符,并使用“id”變量進行存儲。通過“PLC 變量 > 系統(tǒng)常量”(PLC tags > System constants) 以及 等條目,可查找到前端模塊的硬件標識符。所用的數(shù)據(jù)類型為“HW_SubModule”。

函數(shù)“SLI_FC_start_RDiag”:參數(shù)互連

要啟動“RDREC”指令,可根據(jù)硬件故障創(chuàng)建函數(shù)“SLI_FC_start_RDiag”。

在 FC 中創(chuàng)建以下互連。

78b436aa-29f6-11ee-a368-dac502259ad0.png

在診斷中斷 OB (OB82) 中,調(diào)用函數(shù)“SLI_FC_start_RDiag”。

函數(shù)“SLI_FC_reset_RDiag”:參數(shù)互連

要在發(fā)生錯誤后復位過程值,需創(chuàng)建函數(shù)“SLI_FC_reset_RDiag”。

在 FC 中創(chuàng)建以下局部變量。

78c5beac-29f6-11ee-a368-dac502259ad0.png

在 FC 中創(chuàng)建以下互連。

程序段 1:要復位過程值,需創(chuàng)建以下互連。第 1 部分:

78d62ecc-29f6-11ee-a368-dac502259ad0.png

第 2 部分:

78efc5d0-29f6-11ee-a368-dac502259ad0.png

第 3 部分:

7908c2f6-29f6-11ee-a368-dac502259ad0.png

第 4 部分:

7923ecf2-29f6-11ee-a368-dac502259ad0.png

程序段 2:要復位“reset”變量,需創(chuàng)建以下互連。

7931f496-29f6-11ee-a368-dac502259ad0.png

函數(shù)塊“SLI_FB_chooseStruct_RDiag”:參數(shù)互連

創(chuàng)建函數(shù)塊“SLI_FB_chooseStruct_RDiag”,選擇相應的數(shù)據(jù)記錄結構,并將數(shù)據(jù)復制到數(shù)組中的指定位置。

更多信息,請參見“程序段 6”的“結果”(Result) 部分或該程序段的注釋字段(參見“程序代碼”)。

函數(shù)塊“SLI_FB_RDREC_Diag”:參數(shù)互連

創(chuàng)建函數(shù)塊“SLI_FC_start_RDiag”,調(diào)用并處理“RDREC”指令以及所有其它后續(xù)進程。

在該函數(shù)塊中創(chuàng)建以下局部變量。

793f0e38-29f6-11ee-a368-dac502259ad0.png

在該 FB 中創(chuàng)建以下互連:

程序段 1:調(diào)用函數(shù)“SLI_FC_reset_RDiag”并創(chuàng)建名為“RDREC”的“Label”指令。

7951fcf0-29f6-11ee-a368-dac502259ad0.png

程序段 2:互連“RDREC”指令的參數(shù),如下所示:

7964c81c-29f6-11ee-a368-dac502259ad0.png

程序段 3:發(fā)生 RDREC 錯誤時,如果要保存該狀態(tài),則需進行參數(shù)互連,如下所示

7979a994-29f6-11ee-a368-dac502259ad0.png

程序段 4:要結束 RDREC 的執(zhí)行,需創(chuàng)建以下互連。

7991d10e-29f6-11ee-a368-dac502259ad0.png

程序段 5:要跳轉(zhuǎn)回程序段 1,需創(chuàng)建以下互連。

79a446f4-29f6-11ee-a368-dac502259ad0.png

程序段 6:調(diào)用函數(shù)塊“SLI_FB_chooseStruct_RDiag”,如下所示。

79b166f4-29f6-11ee-a368-dac502259ad0.png

在循環(huán) OB (OB1) 中調(diào)用函數(shù)塊“SLI_FB_RDREC_Diag”。

事件 FB“SLI_FB_RDREC_Diag”

程序段 1:

如果常開觸點(“reset”)的信號狀態(tài)為“TRUE”,則系統(tǒng)將復位 FB“SLI_FB_chooseStruct_RDiag”的過程值和全局數(shù)據(jù)塊的過程值。

程序段 2:

輸入?yún)?shù) REQ(“startRead”)返回信號狀態(tài)“TRUE”時,啟動指令“RDREC”。

說明
調(diào)用“startRead”
根據(jù) OB82 的調(diào)用結果,每次檢測到硬件錯誤時,“startRead”將復位為“TRUE”。通過變量“countCalls”,可計數(shù) RDREC 成功調(diào)用的次數(shù)。觸發(fā)三個通道錯誤后,“countCalls”值將為“3”。

“RDREC”指令將通過輸入?yún)?shù) ID(“id”)調(diào)用 IO 設備的前端模塊。輸入?yún)?shù) INDEX(“dataRecNbr”)用于調(diào)用 IO 設備的診斷數(shù)據(jù)記錄“16#E00A”。

“RDREC”指令將通過多次調(diào)用讀取診斷數(shù)據(jù),并使用 RECORD 參數(shù)(“recordBYTE”)保存所讀取的數(shù)據(jù)(x 條數(shù)據(jù)記錄)。讀取的數(shù)據(jù)長度記錄在 LEN 輸出參數(shù)(“#lengthOut”)中,并使用變量“readLength”進行保存進行進一步處理。根據(jù)輸入?yún)?shù) MLEN 的值(“maxLength”的值為“0”),待讀取的數(shù)據(jù)長度無限制。

在執(zhí)行過程中,輸出參數(shù) BUSY(“busy”)將置位為“TRUE”;VALID(“checkedValid”)將置位為“FALSE”。僅當執(zhí)行完成后,才會輸出成功讀取的結果(“checkedValid”置位為“TRUE”);函數(shù)塊“SLI_FB_chooseStruct_RDiag”將該結果用作一個起始條件。要結束函數(shù)塊“SLI_FB_chooseStruct_RDiag”的執(zhí)行,系統(tǒng)將變量“checkedValid”置位為“FALSE”。

并在輸出參數(shù) STATUS(“#statusExe”)處,顯示該塊的狀態(tài)。在本示例中,該過程成功執(zhí)行且無任何錯誤。

79bfd7e8-29f6-11ee-a368-dac502259ad0.png

程序段 3:

當常開觸點(“error”)的信號狀態(tài)為“TRUE”時,如果發(fā)生錯誤(“memErrStatus”),則系統(tǒng)保存該狀態(tài)(“#statusExe”)。同時復位變量“checkedValid”和“startRead”,并停止 RDREC 的執(zhí)行。函數(shù)塊“SLI_FB_chooseStruct_RDiag”的執(zhí)行將無法啟動。

程序段 4:

RDREC 完全執(zhí)行后(“#statusExe”的值為“16#0070_0200”),“startRead”將置位為“FALSE”。并停止 RDREC 的執(zhí)行。

程序段 5:

如果常開觸點(“startRead”)的信號狀態(tài)為“TRUE”,則將跳轉(zhuǎn)到程序段 1 的“RDREC”標簽處(使用 "JMP" 指令)。

程序段 6:

如果變量“checkedValid”的信號狀態(tài)為“TRUE”,且變量“reset”的信號狀態(tài)為“FALSE”,則在函數(shù)塊“SLI_FB_chooseStruct_RDiag”中啟動排序過程。

在函數(shù)塊“SLI_FB_chooseStruct_RDiag”中,將選擇相應數(shù)據(jù)記錄的結構類型以及與 UserStructureIdentifier 相匹配的結構類型。系統(tǒng)將數(shù)據(jù)記錄的數(shù)據(jù)復制到相應數(shù)組中的正確位置中。之后,將根據(jù)相應數(shù)據(jù)記錄的大小多次重復執(zhí)行以上操作。此時,系統(tǒng)將讀取一個或多個通道的信息。

如果對數(shù)據(jù)記錄內(nèi)容進行操作后,“數(shù)據(jù)記錄的長度 + 前置長度”(“#allRecLEN”)小于所有讀取的數(shù)據(jù)長度(“readLength”),則將從頂部重新開始函數(shù)塊的執(zhí)行。此時,系統(tǒng)將讀取另一個數(shù)據(jù)記錄、進行內(nèi)容比較,并將該數(shù)據(jù)記錄的數(shù)據(jù)復制到相應數(shù)組的正確位置處。

通過將局部變量(“#readComplete”、“#dbComplete”、“#limitReach”)和全局變量“checkedValid”設置為“FALSE”,可完成排序過程。

基于以下變量,可記錄該排序過程:

“data_sorting_done”:該變量用于指示函數(shù)塊“SLI_FB_chooseStruct_RDiag”的執(zhí)行已結束。同時變量“checkedValid”復位,表示該函數(shù)塊無法重新執(zhí)行。

“outputOverflow”:該結構中包含三個變量,每個變量分別記錄不同的數(shù)組超出限值錯誤。例如,讀取的數(shù)據(jù)記錄數(shù)量超出相應數(shù)組(“recordA”或“recordB”)可存儲的最大數(shù)量。

“different_structs_used”:如果使用“recordA”和“recordB”存儲診斷數(shù)據(jù)記錄,則變量“different_structs_used”將返回值“TRUE”。

“countRecs”:該變量用于計數(shù)復制的數(shù)據(jù)數(shù)目。

“chooseStruct”:該變量用于指示上一次所用的結構。值“4”用于指示“recordB”結構中上一次以“USI Type 1”形式存儲的數(shù)據(jù)記錄。

“posForRec”:該變量將存儲數(shù)據(jù)記錄(“recordA”或“recordB”)的數(shù)組中最近使用的位置。值“1”用于指示“recordB[1]”中上一次存儲的數(shù)據(jù)記錄(參見“chooseStruct”)。

“posForChannel”:該變量將存儲通道(“USI_DetailsType[x]”)的數(shù)組中最近使用的位置。值“0”用于指示“recordB[1]/USI_DetailsType[0]”中存儲的通道(參見“chooseStruct”和“posForRec”)。

79e3d45e-29f6-11ee-a368-dac502259ad0.png

下圖中顯示了位置“0”(“recordB[0]”)處,結構為“B”/“0101”的數(shù)據(jù)記錄。

“ChannelLocation”的值“16#8000”顯示了子模塊級的診斷信息。基于“ChannelErrorType”的值“16#0006”,插槽 2 處(參見“SlotNumber”)模塊上子模塊 1(“SubSlotNumber”)的通道 0 和 1(參見“ChannelNumber”)發(fā)生斷路。

79f72bda-29f6-11ee-a368-dac502259ad0.png

“A”/“0100”的結構體:

7817d0d0-29f6-11ee-a368-dac502259ad0.png

“B”/“0101”的結構體:

78307ee6-29f6-11ee-a368-dac502259ad0.png

類型 1 的結構,與“UserStructureIdentifier”中的值相同:

類型 1 的結構用于基本通道診斷。

783d4568-29f6-11ee-a368-dac502259ad0.png

類型 2 的結構,與“UserStructureIdentifier”中的值相同:

類型 2 的結構用于擴展通道診斷。

784982ec-29f6-11ee-a368-dac502259ad0.png

類型 3 的結構,與“UserStructureIdentifier”中的值相同:

類型 3 的結構用于制造商特定的通道診斷。在本示例中,結構的組態(tài)未定義,并假定類型 3 的長度為 28 個字節(jié)。

7858f86c-29f6-11ee-a368-dac502259ad0.png

“A”/“0100”結構的匯總信息:

786b02c8-29f6-11ee-a368-dac502259ad0.png

“B”/“0101”結構的匯總信息:

787a1772-29f6-11ee-a368-dac502259ad0.png






審核編輯:劉清

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

    關注

    114

    文章

    16959

    瀏覽量

    182829
  • 存儲器
    +關注

    關注

    38

    文章

    7632

    瀏覽量

    166352
  • PLC控制
    +關注

    關注

    9

    文章

    253

    瀏覽量

    27794
  • 觸發(fā)器
    +關注

    關注

    14

    文章

    2032

    瀏覽量

    61853

原文標題:西門子PLC:使用 RDREC 讀取診斷數(shù)據(jù)記錄的編程示例

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    讀取數(shù)據(jù)時間記錄問題,小弟著急啊,求大神相助。

    從數(shù)組讀取一段數(shù)據(jù)到文件中,并記錄讀取的時間,精度到秒,怎么設計啊,本人剛剛接觸這個軟件,求大神相助!
    發(fā)表于 09-05 09:47

    LabVIEW 數(shù)據(jù)記錄文件讀取,讀回來是空數(shù)組

    在使用LabVIEW數(shù)據(jù)記錄文件存儲時,偶爾想查看之前的數(shù)據(jù),所以讀取全部數(shù)據(jù)記錄文件,但是讀回
    發(fā)表于 03-28 14:48

    LabVIEW 數(shù)據(jù)記錄文件讀取問題

    在使用LabVIEW數(shù)據(jù)記錄文件存儲時,偶爾想查看之前的數(shù)據(jù),所以讀取全部數(shù)據(jù)記錄文件,但是讀回
    發(fā)表于 03-28 14:55

    LabVIEW數(shù)據(jù)記錄

    數(shù)據(jù)記錄文件是LabVIEW特有的以二進制存儲,適合存儲簇類型的數(shù)據(jù)塊,位于文件IO-高級-數(shù)據(jù)記錄,如下圖同理配置其他文件,打開對應關閉,
    發(fā)表于 07-14 08:43

    labview設置數(shù)據(jù)記錄位置問題

    請教為什么讀取數(shù)據(jù)時設置了數(shù)據(jù)記錄位置,每次讀出的數(shù)據(jù)都是上次設置的位置記錄,也就是說
    發(fā)表于 11-02 16:02

    基于Labview的數(shù)據(jù)記錄編程

    短時間內(nèi)記錄一些熱電偶單元的數(shù)據(jù) 一個基本的數(shù)據(jù)記錄系統(tǒng)包含著數(shù)據(jù)記錄器的所有要素,只不過i/o
    的頭像 發(fā)表于 04-09 16:29 ?4961次閱讀
    基于Labview的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>記錄</b><b class='flag-5'>編程</b>

    溫濕度記錄儀如何讀取,溫濕度記錄儀的操作介紹

    在運輸過程中的溫度狀況進行實時自動監(jiān)測。 那么溫濕度記錄儀到底怎么讀取數(shù)據(jù)? 一、顯示屏讀取數(shù)據(jù) 溫濕度
    發(fā)表于 06-28 16:31 ?4076次閱讀

    LTC2512-24的分布式讀取示例

    本文提供了其他示例,以更全面地解釋具有可配置平坦通帶數(shù)字濾波器的 LTC2512-24 24 位過采樣 ADC 中使用的分布式讀取功能。數(shù)據(jù)手冊解釋說,數(shù)據(jù)可以通過多次轉(zhuǎn)換
    的頭像 發(fā)表于 01-05 14:52 ?1058次閱讀
    LTC2512-24的分布式<b class='flag-5'>讀取</b><b class='flag-5'>示例</b>

    labview數(shù)據(jù)記錄和監(jiān)控模塊

    數(shù)據(jù)記錄文件是labview特有的以二進制存儲,適合存儲簇類型的數(shù)據(jù)塊,位于文件IO-高級-數(shù)據(jù)記錄,如下圖同理配置其他文件,打開對應關閉,
    發(fā)表于 01-15 11:42 ?0次下載

    運動編程示例:定時按壓操作

    運動編程示例:定時按壓操作
    的頭像 發(fā)表于 03-14 14:42 ?1148次閱讀
    運動<b class='flag-5'>編程</b><b class='flag-5'>示例</b>:定時按壓操作

    運動編程示例:重復運動的循環(huán)功能

    運動編程示例:重復運動的循環(huán)功能
    的頭像 發(fā)表于 03-13 16:59 ?1558次閱讀
    運動<b class='flag-5'>編程</b><b class='flag-5'>示例</b>:重復運動的循環(huán)功能

    TCON、TDISCON、TSEND和TRCV的編程示例

    在以下示例中,將在 S7-1500 系列的兩個 CPU 間創(chuàng)建一個編程連接,并將數(shù)據(jù)記錄從 CPU 1 發(fā)送到 CPU 2 中。
    的頭像 發(fā)表于 07-08 17:16 ?1w次閱讀
    TCON、TDISCON、TSEND和TRCV的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>

    三菱fx5u用什么軟件編程讀取多臺儀表數(shù)據(jù)

    示例以 FX5U-32MR/ES 為例讀取 ModbusTCP 網(wǎng)口儀表數(shù)據(jù),本示例采用 ModbusTCP 協(xié)議實現(xiàn),對 ModbusTCP 從站協(xié)議的儀表,F(xiàn)X5U 可直接
    的頭像 發(fā)表于 07-25 08:59 ?2059次閱讀
    三菱fx5u用什么軟件<b class='flag-5'>編程</b><b class='flag-5'>讀取</b>多臺儀表<b class='flag-5'>數(shù)據(jù)</b>

    移動數(shù)據(jù)編程示例

    編程示例 在此編程示例中,將移動在生產(chǎn)班次期間為示例收集的數(shù)據(jù)值以作進一步處理。收集的
    的頭像 發(fā)表于 08-23 10:10 ?1817次閱讀
    移動<b class='flag-5'>數(shù)據(jù)</b>的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>

    時間中斷函數(shù)的編程示例

    在以下示例中,將讀取延時中斷 OB (OB20) 的狀態(tài),設置新的延時并啟動或禁用 OB20。
    的頭像 發(fā)表于 09-01 09:47 ?1400次閱讀
    時間中斷函數(shù)的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>