99精品国产在热久久无码,av无码精品一区二区三区四区_国产69精品久久久久9999_精品久久久中文字幕无码_国产精品麻豆VA在线播放_亚洲日韩欧美专区制服_色久视频_婷婷久久综合,久久久精品国产免费,欧美精品久久久久久久自慰,无码国产精品一区二区高潮,国内精品九九久久久精品_国产99久久久久久免费看_中文精品99久久国产

首頁
視頻
讓中國物聯(lián)網(wǎng)領(lǐng)先世界
搜索
歷史搜索
搜索發(fā)現(xiàn)

揭秘modbus通訊協(xié)議功能碼

2023-01-13 09:27:25| 來源:聚英電子| | 0

  對于使用 Modbus 作為其通信協(xié)議的各種設(shè)備,您會發(fā)現(xiàn)關(guān)于如何訪問這些設(shè)備中不同類型的數(shù)據(jù)的許多不同的解釋預下達、術(shù)語和標簽增持能力。有時,設(shè)備手冊可能僅提及支持的 Modbus 功能代碼以及這些功能代碼可用的偏移范圍創新為先。聚英電子逐步介紹 Modbus 功能代碼的細節(jié)以及它們與尋址的關(guān)系提高鍛煉,以及它們?nèi)绾斡绊懺?Wonderware 應(yīng)用程序的 TOP Server 中使用的地址。

  TOP 服務(wù)器支持的 Modbus 功能碼

  Modbus 中的功能代碼 (FC) 是 Modbus 請求中使用的特定代碼行業內卷,用于告訴 Modbus 從設(shè)備訪問哪種類型的內(nèi)存(即保持寄存器進行培訓、輸入線圈等)以及對該內(nèi)存執(zhí)行什么操作(即讀取或?qū)懽?。下表列出了TOP Server Modbus Suite中包含的所有 Modbus 驅(qū)動程序用于通信的特定 Modbus 功能代碼:

  根據(jù)您從客戶端應(yīng)用程序讀取或?qū)懭氲牡刂奉愋?保持寄存器凝聚力量、內(nèi)部寄存器關鍵技術、輸入線圈或輸出線圈),這將決定 TOP 服務(wù)器 Modbus 驅(qū)動程序?qū)⒃趯δ膶嶋H協(xié)議請求中使用哪些特定功能代碼設(shè)備。

  TOP 服務(wù)器 Modbus 驅(qū)動程序中還有一些特殊設(shè)置也逐步提升,可以為設(shè)備中的不同 Modbus 實現(xiàn)提供更大的靈活性,我們將在稍后介紹能力和水平。

  而且組織了,雖然我們不會在這篇文章中詳細介紹充足,但 TOP 服務(wù)器中的 Modbus 靈活性更進一步,它支持特定非標準驅(qū)動程序中的 Modbus 變體表現,例如Enron Modbus異常狀況、OMNI Flow、Lufkin ELAM的積極性、Honeywell UDC和甚至是基于 Yaskawa Memobus 的驅(qū)動程序更多可能性。

  Modbus 功能代碼如何對應(yīng)尋址

  正如我們上次提到的,當我們談?wù)?Modbus 協(xié)議和尋址特定數(shù)據(jù)位置(或內(nèi)存類型)時高效,通常有四種不同類型的 Modbus 地址:

  保持寄存器——具有讀/寫訪問權(quán)限的 16 位(模擬)地址 (4xxxxx)

  內(nèi)部寄存器——具有只讀訪問權(quán)限的 16 位(模擬)地址 (3xxxxx)

  輸入線圈——具有只讀訪問權(quán)限的 1 位(布爾)地址 (1xxxxx)

  輸出線圈——具有讀/寫訪問權(quán)限的 1 位(布爾)地址 (0xxxxx)上次我們還討論了很多設(shè)備文檔并不總是根據(jù)地址類型(例如 4xxxx 或保持寄存器)提供 Modbus 地址的詳細列表分析。

  因此,由于我們正在更深入地討論 Modbus 功能代碼質量,因此我們必須根據(jù)特定地址的內(nèi)存類型以及它是否可以讀取和寫入或只能讀取來討論 Modbus 地址從。

  這兩個因素決定了向設(shè)備發(fā)送請求時將使用哪個 Modbus 功能代碼。 讓我們討論每個功能代碼及其執(zhí)行的相應(yīng)地址和功能:

  Modbus 功能代碼 1 (Hex 0x01)

  當請求讀取一個或多個(一次最多 2000 個)輸出線圈或 0xxxxx 類型的離散/布爾地址時數字技術,TOP 服務(wù)器使用此功能代碼共享應用。

  輸出線圈是讀/寫訪問 - 您將在列表的下方看到對功能代碼 5 和 15 的支持。

  Modbus 功能代碼 2 (Hex 0x02)

  當請求讀取多個(一次最多 2000 個)輸入線圈或 1xxxxx 類型離散/布爾地址中的一個時尤為突出,TOP 服務(wù)器使用此功能代碼情況較常見。

  輸入線圈在 Modbus 設(shè)備中是只讀的,因此您會注意到?jīng)]有指定用于寫入 1xxxxx 類型地址的功能代碼標準。

  Modbus 功能代碼 3 (Hex 0x03)

  當請求讀取一個或多個(一次最多 125 個)保持寄存器或 4xxxxx 類型的模擬地址時喜愛,TOP 服務(wù)器使用此功能代碼。

  也可以使用功能代碼 3 訪問保持寄存器中的各個位機製性梗阻,只需在末尾附加一個 .x 語法齊全,其中 x 表示您希望讀取的寄存器中的位(即 400001.0 將訪問保持寄存器偏移 1 中的位 0) .

  因為保持寄存器是大多數(shù)支持 Modbus 的設(shè)備中最常支持的內(nèi)存類型,所以 Modbus 功能代碼 3 可能是使用最廣泛的功能代碼改造層面。

  并且保持寄存器是讀/寫訪問 - 因此您將在列表的下方看到對功能代碼 6 和 16 的支持機製。

  Modbus 功能代碼 4 (Hex 0x04)

  當請求讀取一個或多個(一次最多 125 個)內(nèi)部寄存器或 3xxxxx 類型的模擬地址時,TOP 服務(wù)器使用此功能代碼大面積。

  與保持寄存器一樣發力,也可以使用功能代碼 4 *u,e, 300004.2 訪問內(nèi)部寄存器中的各個位 1) - 稍后繼續(xù)閱讀以獲取基于 1 與 0 的位尋址的信息寄存器內(nèi)。

  與輸入線圈一樣集成應用,內(nèi)部寄存器在 Modbus 設(shè)備中是只讀的越來越重要的位置,因此您不會看到指定用于寫入 3xxxxxx 類型地址的功能代碼。

  筆記: 是的迎來新的篇章,如果您注意到解決方案,F(xiàn)C 3 用于訪問 4xxxxx 地址,F(xiàn)C 4 用于訪問 3xxxxx 地址共同學習,就像 FC 1 訪問 0xxxxx 和 FC 2 訪問 1xxxxx 地址一樣——這些不是印刷錯誤交流研討。

  Modbus 功能代碼 5 (Hex 0x05)

  此功能代碼由 TOP 服務(wù)器在寫入單個輸出線圈 (0xxxxx) 時使用 - 也稱為“強制”線圈推動並實現。

  Modbus 功能代碼 6 (Hex 0x06)

  此功能代碼由 TOP 服務(wù)器在寫入單個保持寄存器 (4xxxxx) 時使用 - 也稱為“預(yù)置”寄存器。

Modbus RTU

  Modbus 功能代碼 15 (Hex 0x0F)

  此功能代碼由 TOP 服務(wù)器在寫入(強制)多個輸出線圈 (0xxxxx) 時使用№樆嘏浜?,F(xiàn)在更加完善,某些設(shè)備僅支持 FC 15 對輸出線圈進行單次和多次寫入的情況并不少見。

  為了解決這種情況上高質量,TOP 服務(wù)器 Modbus 驅(qū)動程序在設(shè)備設(shè)置中有一個特殊設(shè)置精準調控,用于禁用“Modbus 功能 05” - 當禁用時,驅(qū)動程序?qū)H使用 FC 15 對輸出線圈的所有寫入建設應用。

  Modbus 功能代碼 16 (Hex 0x10)

  此功能代碼由 TOP 服務(wù)器在寫入(預(yù)設(shè))多個保持寄存器 (4xxxxx) 時使用優化程度。與 FC 15 一樣,設(shè)備制造商僅支持 FC 16 以對保持寄存器進行單次和多次寫入的情況并不少見 - 這是一種更便宜的實施方式實現,只需添加對一個與兩個功能代碼的支持持續向好。

  針對這種情況,TOP 服務(wù)器 Modbus 驅(qū)動程序中還有一個設(shè)置,允許您禁用“Modbus 功能 06”,這樣習慣,當禁用時記得牢,驅(qū)動程序?qū)H使用 FC 16 對保持寄存器的所有寫入。

  Modbus 功能代碼 22 (Hex 0x16)

  此功能專門用于單個事務(wù)中保持寄存器 (4xxxxx) 中的位寫入 - 默認情況下覆蓋,在 TOP 服務(wù)器的 Modbus 驅(qū)動程序設(shè)備屬性中禁用它服務體系,因為許多 Modbus 設(shè)備不支持 FC 22、選擇代替支持另一種方法重要的作用。

dam-2222

  另一種方法是默認和最常用的方法特點,即對保持寄存器中的位執(zhí)行讀/修改/寫操作。

  在此方法中搶抓機遇,當客戶端應(yīng)用程序請求寫入保持寄存器位時綠色化發展,會發(fā)生以下情況:

  正如您可能已經(jīng)猜到的那樣,這種常用方法存在一些風(fēng)險結論,特別是如果您的 Modbus 設(shè)備中的寄存器值經(jīng)常更改 - 執(zhí)行讀取/修改/寫入操作可能會將位更改為不正確的狀態(tài)應用創新,如果它們之前已更改操作完成所需的時間。

  例如足夠的實力,假設(shè)我們正在對 400001 的第 1 位執(zhí)行讀取/修改/寫入操作和諧共生。如果第 2 位在操作開始時為“on”,但在寫入之前已切換為“off”全面闡釋,則它將是再次錯誤地“打開”用上了。

  FC 22 旨在通過直接修改保持寄存器中的各個位來避免這種風(fēng)險,而周圍的位保持不變適應性強。問題是 FC 22 只有在實際的 Modbus 從設(shè)備實現(xiàn)了對 FC 22 的支持時才能使用的特性,而這種情況通常并非如此拓展基地。

  因此,請務(wù)必確認您的設(shè)備是否真的支持 FC 22 - 如果支持多元化服務體系,您可以在 TOP 服務(wù)器的 Modbus 驅(qū)動程序的設(shè)備屬性中啟用“Holding Register Bit Writes”處理。

  TOP 服務(wù)器將對整個寄存器執(zhí)行 FC 3 讀取

  然后驅(qū)動程序只修改有問題的位(這會改變該保持寄存器的 16 位值的整體值)

  然后使用 FC 6 或 16 將修改后的 16 位值寫回 Modbus 從設(shè)備(取決于您的設(shè)備支持什么以及根據(jù)剛才描述的特殊設(shè)置啟用什么)。因此實力增強,該函數(shù)確定正在訪問哪種類型的內(nèi)存以及它是讀操作還是寫操作自然條件。但是功能代碼與 Modbus 請求中的其他信息一起使用,包括所謂的偏移量供給。

  偏移尋址如何與 Modbus 功能代碼一起使用

  TOP Server Modbus Suite 驅(qū)動程序支持不同內(nèi)存類型的以下地址范圍:

  持有登記冊 – 400001- 465536

  內(nèi)部寄存器 – 300001- 365536

  輸入線圈 – 100001- 165536

  輸出線圈 – 000001- 065536所以我們支持所有內(nèi)存類型的偏移量 1 到 65,536全過程。但什么是偏移量?

  我通常解釋偏移量的方式是,您必須查看地址的第一個數(shù)字(即 4積極參與、3優勢領先、1 或 0)來告訴驅(qū)動程序訪問哪種類型的內(nèi)存。第一個數(shù)字之后的所有內(nèi)容都是偏移量 - 您在該內(nèi)存類型中感興趣的特定內(nèi)存地址探討。

  Modbus 保持寄存器偏移Modbus 文件說:TOP 服務(wù)器說它支持:400140000140001400001

  Modbus 功能代碼和偏移量在 Modbus 請求中協(xié)同工作新技術,以告知設(shè)備應(yīng)返回或修改的特定信息。

  什么是 Modbus 從零與從一的尋址?

  在討論基于偏移的 Modbus 尋址時共創美好,最后一個重要的細節(jié)是設(shè)備是否支持基于零或一的尋址趨勢。最初,從零開始的尋址是 Modbus 的預(yù)期實現(xiàn)方式預判。但是,隨著時間的推移和 Modbus 作為一種開放協(xié)議被如此廣泛地采用,某些設(shè)備制造商采用了一種稱為 one-based 尋址的概念調解製度。

  從零開始的尋址涉及從零開始的內(nèi)存類型的第一個偏移量深入。因此,例如覆蓋範圍,如果您請求保持寄存器 400001一站式服務,則實際的 Modbus 協(xié)議請求將為偏移量 0 的 FC 3。而 400002 將請求偏移量 1 的 FC 3高質量發展,依此類推資源配置。

  正如您可以想象的那樣,這可能會令人困惑攻堅克難。因此機遇與挑戰,一些制造商采用了一種稱為基于一的尋址的實現(xiàn)方式。對于從 1 開始的尋址相關,偏移量與實際地址請求對齊取得明顯成效。例如,如果您請求保持寄存器 1影響力範圍,則該請求仍然使用 FC 3大力發展,但用于偏移量 1約定管轄。而 400002 將請求 FC 3 用于偏移量 2,依此類推說服力。它更加“用戶友好”的積極性。

  但是,由于有些設(shè)備支持從零開始尋址深刻變革,而有些設(shè)備支持從一開始的尋址高效,因此了解這一點很重要。TOP 服務(wù)器 Modbus 驅(qū)動程序有一個可配置的設(shè)置至關重要,用于指定您的 Modbus 從設(shè)備支持的實現(xiàn)質量。

  “基于零的尋址”的默認設(shè)置已啟用,因為這是 Modbus 規(guī)范的默認設(shè)置表示。將此設(shè)置切換為禁用將導(dǎo)致驅(qū)動程序使用基于 1 的尋址不久前。始終確保您使用的是正確的設(shè)置,否則意味著顯示的值可能是您設(shè)備中的錯誤地址質生產力。

  例如機構,如果您讀取 400001 的值,并且與您期望的值相比背景下,它是“錯誤”值多種場景,請查看它是否是 400001 旁邊的寄存器的值。如果是開展試點,您需要從 1 交換為從零開始尋址(反之亦然)。

  此外可靠保障,還有基于 1 或基于 0 的位尋址規劃。默認情況下,TOP Server Modbus 驅(qū)動程序也支持從零開始的位尋址共同,因為它是 Modbus 規(guī)范的默認設(shè)置發展。這意味著位的尋址范圍為 0 到 15。

  基于 1 的位尋址意味著位從 1 到 16 尋址——同樣在此基礎上,對于計算 16 位的人來說推進一步,這感覺更自然。而且開展,TOP Server Modbus 驅(qū)動程序有一個可配置的設(shè)置帶動擴大,這取決于您的設(shè)備支持什么。

  與偏移尋址一樣簡單化,在 TOP Server 中選擇的位尋址方法必須與您的設(shè)備支持的匹配 - 否則實現了超越,如果不正確,您將訪問的位值將用于錯誤的位開拓創新。該設(shè)置應(yīng)為 0-15 位訪問啟用推動並實現,或應(yīng)為 1-16 位訪問禁用。

  始終查閱制造商的文檔或與制造商交談以確定他們支持的方法。如果您注意到某位“開啟”但應(yīng)該“關(guān)閉”(反之亦然)更加完善,您可能需要切換此設(shè)置薄弱點。

  正如您所看到的,Modbus 有很多怪癖精準調控,因為它是一個如此完善和廣泛使用的開放協(xié)議效高。一個靈活的 Modbus 主站,如 TOP 服務(wù)器信息化,提供了一系列可配置的設(shè)置(包括交換字節(jié)發展需要、字和雙字排序,將在以后的文章中介紹)以與最廣泛的 Modbus 從站實現(xiàn)一起工作全方位,無論制造商如何信息,以獲得最大的兼容性。


聯(lián)系銷售
銷售王經(jīng)理微信 銷售王經(jīng)理
微信公眾號 微信公眾號
服務(wù)熱線
400-6688-400
乌兰浩特市| 十堰市| 雅江县| 桂东县| 铁岭市| 垫江县| 茌平县| 平湖市| 河间市| 子长县| 枣庄市| 南华县| 班戈县| 陵水| 渝中区| 高台县| 涿鹿县| 册亨县| 芜湖县| 临猗县| 双江| 天台县| 玉溪市| 双流县| 乌海市| 丰都县| 怀集县| 沧州市| 万载县| 宜昌市| 垣曲县| 昌邑市| 巴彦淖尔市| 迭部县| 焉耆| 黔江区| 会泽县| 青神县| 仲巴县| 广元市| 太谷县|