• <menu id="w2i4a"></menu>
  • logo TOP Server OPC Server教程

    文檔首頁(yè)>>TOP Server OPC Server教程>>使用Top Server為Wonderware揭開Modbus寄存器尋址的神秘面紗

    使用Top Server為Wonderware揭開Modbus寄存器尋址的神秘面紗


    從1979年開始,Modbus已經(jīng)作為一種“開放式”協(xié)議使用,多年來(lái)各行各業(yè)對(duì)Modbus有許多不同的解釋。對(duì)于那些不同的Modbus解釋,有很多關(guān)于訪問(wèn)數(shù)據(jù)的不同術(shù)語(yǔ)的困惑。在這篇文章中,我將逐步介紹Modbus尋址的基礎(chǔ)知識(shí),包括偏移如何發(fā)揮作用,以及它們?nèi)绾斡绊懺赥OP Server for Wonderware應(yīng)用程序中使用的地址。

    由于在世界各地幾乎有同樣多的不同設(shè)備制造商在同時(shí)實(shí)現(xiàn)Modbus協(xié)議,因此設(shè)備文檔有時(shí)不清楚該為特定數(shù)據(jù)請(qǐng)求什么數(shù)字地址。所以,本文的目的是為Modbus尋址如何工作提供一個(gè)解釋,以便更容易理解如何使用TOP Server訪問(wèn)Modbus設(shè)備中的數(shù)據(jù)。

    Modbus地址的類型

    當(dāng)我們討論Modbus協(xié)議以及如何處理特定的數(shù)據(jù)位置時(shí),通常有四種不同類型的Modbus地址:

         1.保持寄存器 - 具有讀/寫訪問(wèn)權(quán)限的16位地址(4xxxxx)

         2.內(nèi)部寄存器 - 具有只讀訪問(wèn)權(quán)限的16位地址(3xxxxx)

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

         4.輸出線圈 - 具有讀/寫訪問(wèn)權(quán)限的1位(布爾)地址(0xxxxx)

    由于某些設(shè)備文檔沒(méi)有提供對(duì)地址類型(如4xxxxx或保持寄存器)引用的Modbus地址的詳細(xì)列表,因此考慮根據(jù)特定地址包含的數(shù)據(jù)類型以及是否可以讀取和寫入或者僅能讀取來(lái)讀取Modbus地址是有意義的。

    modbus 1

    由于它們所代表的數(shù)據(jù)類型,您還可能會(huì)看到離散或數(shù)字地址的模擬或線圈寄存器。

    偏移尋址:4001和40001和400001之間有區(qū)別嗎?

    正如我之前提到的,Modbus協(xié)議已經(jīng)存在了幾十年,可以說(shuō)是世界上最廣泛使用的設(shè)備通信協(xié)議。話雖如此,隨著Modbus協(xié)議的誕生,當(dāng)內(nèi)存大小不做出改變時(shí),與目前可用的大量?jī)?nèi)存相比,70年代后期設(shè)備上的內(nèi)存總量很小。

    在考慮TOP Server Modbus Suite是否與設(shè)備兼容時(shí),最常見的問(wèn)題之一是TOP Server是否支持特定的地址范圍。TOP Server支持的列出的地址范圍如下:

    • 保持寄存器-400001- 465536
    • 內(nèi)部寄存器-300001- 365536
    • 輸入線圈 - 100001-165536
    • 輸出線圈 - 000001- 065536

    對(duì)于許多設(shè)備,支持的地址范圍遠(yuǎn)小于此。例如,通過(guò)保持寄存器,在這樣的設(shè)備中,4001的地址作為起始地址無(wú)法接近400001。那么,鑒于這些數(shù)據(jù),TOP Server如何聲稱對(duì)Modbus設(shè)備有如此廣泛的支持?

    事實(shí)上,TOP Server Modbus Suite支持4001,40001甚至400001。TOP Server支持所有Modbus地址,因?yàn)镸odbus使用一種稱為偏移尋址的尋址。為了說(shuō)明偏移地址的工作原理,請(qǐng)注意一下在上圖中,我們是怎么將起始編號(hào)與地址的其余部分分開的。

    圖中的地址“4001”,有兩條我們感興趣的信息:

       1.起始編號(hào)“4”表示應(yīng)該從設(shè)備請(qǐng)求什么類型的地址。(保持寄存器 = 4)

       2.數(shù)字“001”表示應(yīng)該從設(shè)備請(qǐng)求哪個(gè)地址偏移。(偏移 = 1)

    根據(jù)這些知識(shí),我們將相同的原理應(yīng)用于TOP Server支持的起始保持寄存器地址“400001”。

       1.我們的起始編號(hào)是“4”,這意味著我們要有保持寄存器。

       2.移除“4”后的剩余數(shù)字是“00001”,其在數(shù)值上與“001”相同,并且表示相同的偏移量“1”。

    請(qǐng)一定注意,許多Modbus設(shè)備可能不支持TOP Server支持的所有數(shù)據(jù)偏移。為了避免在輸入此類設(shè)備的地址時(shí)出現(xiàn)錯(cuò)誤,TOP Server Modbus驅(qū)動(dòng)程序會(huì)根據(jù)在地址字段中輸入的內(nèi)容“填充”地址(添加一個(gè)或多個(gè)數(shù)字)。 因此,TOP Server會(huì)自動(dòng)在中間考慮“額外”的零,并根據(jù)需要填充地址。

    對(duì)于所有不同的Modbus地址類型(內(nèi)部寄存器 = 3,輸入線圈 = 1,輸出線圈 = 0),同樣的原則也適用。原因是Modbus在發(fā)出請(qǐng)求后發(fā)送到Modbus設(shè)備時(shí)不包含“400001”或“4001”。而只有地址偏移量作為命令的一部分和指定讀取或?qū)懭氩僮鞯拇a以及Modbus地址類型(保持寄存器等)一起發(fā)送。

    您需要什么類型的Modbus地址?

    確定在TOP Server中使用哪個(gè)地址的最簡(jiǎn)單方法是確定您在設(shè)備中訪問(wèn)的是哪種地址:

    1.您的文檔指定特定的數(shù)據(jù)片段是模擬的(非布爾/二進(jìn)制/離散 - 例如2,500或2.5689或58,535等),您具有對(duì)此數(shù)據(jù)的讀寫權(quán)限:

    • 您需要訪問(wèn)保持寄存器。
    • 您可以在文檔指定的任何地址偏移的開頭添加“4”。

    2.您的文檔指定一段數(shù)據(jù)是模擬的,您只能讀取此數(shù)據(jù):

    • 您需要訪問(wèn)內(nèi)部寄存器。
    • 您可以在文檔指定的任何地址偏移的開頭添加“3”。

    3.您的文檔指定了布爾/二進(jìn)制/離散值(如 開/關(guān),真/假或0/1),您只具有對(duì)此地址的只讀訪問(wèn)權(quán)限:

    • 您需要訪問(wèn)輸入線圈。
    • 您可以在文檔指定的任何地址偏移的開頭添加“1”。

    4.您的文檔指定了布爾/二進(jìn)制/離散值,您具有對(duì)此地址的讀寫權(quán)限:

    • 您需要訪問(wèn)輸出線圈
    • 您可以在文檔指定的任何地址偏移的開頭添加“0”。

    準(zhǔn)備開始從您自己的Modbus設(shè)備訪問(wèn)數(shù)據(jù)了嗎?

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();