最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何在niagara中優(yōu)化Modbus通訊以達(dá)到最快速度

2023-08-27 00:36 作者:asdarg  | 我要投稿

高波特率、良好的線纜和其他一些事情都有幫助。但是有一個設(shè)置可以真正提速,如果你不知道它,它可能真的很有幫助。

介紹

對任何網(wǎng)絡(luò)來說,確保您具有正確的電纜和布線以確保最可靠和快速的通信都是非常重要的。在RS485上,我們寫了幾篇文章,介紹如何布線RS485設(shè)備以及偏置和終端電阻背后的原因。

隨著所有電纜都整理好了,您可能會認(rèn)為波特率越快(僅適用于RS485)和輪詢率越快,是使Modbus連接盡可能快速和優(yōu)化的唯一方法。我們將展示您還有一個更重要的方法,可以確保您的通信盡可能快速地工作。

即使您不需要Modbus“快速”,我們也建議您繼續(xù)閱讀,因?yàn)閮?yōu)化協(xié)議在您有大量網(wǎng)絡(luò)數(shù)據(jù)交換的情況下也可能很有用。

涵蓋基礎(chǔ)知識

Modbus是一個簡單的主-從協(xié)議,它在IP或RS485上的工作方式基本相同:主機(jī)總是用命令啟動通信,從機(jī)對這些命令做出響應(yīng)。

主設(shè)備將命令打包成一系列字節(jié),其中包含以下信息:

  1. 從機(jī)地址

  2. 功能碼

  3. 起始寄存器

  4. 寄存器計數(shù)

  5. 數(shù)據(jù)

  6. 校驗(yàn)和

被尋址的從機(jī)將驗(yàn)證命令并根據(jù)“功能碼”進(jìn)行響應(yīng)。

功能碼通常如下:


功能碼 請求的命令

1 讀取線圈

2 讀取離散輸入

3 讀取保持寄存器

4 讀取輸入寄存器

5 寫單個線圈

6 寫單個保持寄存器

15 寫多個線圈

16 寫多個保持寄存器


Niagara默認(rèn)如何處理讀取命令


現(xiàn)在,當(dāng)您需要讀取一系列數(shù)據(jù)點(diǎn)時,您可以使用不同的方法來獲取數(shù)據(jù)。


一種方法是為每個單獨(dú)的數(shù)據(jù)點(diǎn)發(fā)送讀取命令(根據(jù)數(shù)據(jù)類型為1、2、3或4),其中“起始寄存器”是數(shù)據(jù)點(diǎn)地址,”寄存器計數(shù)“為”1“。


如果您不添加我們將在本文中看到的其他配置,這正是Niagara Modbus驅(qū)動程序默認(rèn)所做的。


讓我們看下面的示例:

我正在讀取7個保持寄存器,地址為102、103、106、107、108、112和113,所有這些都配置為“快速”頻率,默認(rèn)驅(qū)動程序設(shè)置為快速輪詢頻率的1秒輪詢率。


如果我們?yōu)镸odbus TCP驅(qū)動程序啟用本地日志記錄,我們可以在應(yīng)用程序?qū)а葜锌吹津?qū)動程序正在向每個數(shù)據(jù)點(diǎn)發(fā)送專用的“讀取保持寄存器”(功能碼“3”)命令(在下面的圖片中,您可以看到總共7個命令中的4個,讀取寄存器102、103、106和107):

這可以工作,但這顯然不是獲取數(shù)據(jù)最優(yōu)化的方式,特別是在使用大量連接的設(shè)備和數(shù)據(jù)點(diǎn)時。


多次讀取優(yōu)化


有方法可以“壓縮”這些命令,以便它們可以一次讀取多個寄存器。

以上面的例子為例,我們可以使用總共3個命令 instead of 7個命令:


  • 命令1 讀取地址102和103(起始寄存器102,寄存器數(shù)量2)


  • 命令2 讀取地址106、107和108(起始寄存器106,寄存器數(shù)量3)


  • 命令3 讀取地址112和113(起始寄存器112,寄存器數(shù)量2)


這已經(jīng)大大優(yōu)化了通信。


在許多情況下,可以實(shí)現(xiàn)進(jìn)一步優(yōu)化。 從設(shè)備可能響應(yīng)未列出的寄存器上的讀取,如果寄存器之間的間隙不大,將間隙包含在內(nèi)的較大數(shù)量的寄存器讀取可能更有效。


例如,我們可以通過讀取102到113之間的所有寄存器來讀取所有7個數(shù)據(jù)點(diǎn),讀取命令從寄存器102開始,寄存器數(shù)量為12。 我們將簡單地忽略不需要的數(shù)據(jù)(間隙)。 這將使一個命令更有效,帶有略大的“數(shù)據(jù)響應(yīng)”。


如何在Niagara中使用“設(shè)備輪詢配置”來實(shí)現(xiàn)這種優(yōu)化


在Niagara中,需要指示Modbus驅(qū)動程序進(jìn)行這些優(yōu)化。

這是通過Modbus從站設(shè)備上的驅(qū)動程序的屬性表實(shí)現(xiàn)的。 我們將查看的屬性是“設(shè)備輪詢配置”

您會注意到,默認(rèn)情況下,此屬性為空,這就解釋了驅(qū)動程序?yàn)槊總€單獨(dú)的數(shù)據(jù)點(diǎn)創(chuàng)建單個讀取命令的原因。


首先,我們確保已將所有Modbus數(shù)據(jù)點(diǎn)添加到Modbus設(shè)備的“points”部分。 然后,我們右鍵單擊“Device Poll Config”,并選擇“Actions - Learn Optimum Device Poll Config”選項。

這基本上就是查看您的Modbus數(shù)據(jù)點(diǎn),查找所有連續(xù)且類型相同的點(diǎn),并在設(shè)備上自動創(chuàng)建一系列指令,以指示Modbus驅(qū)動程序根據(jù)數(shù)據(jù)類型將它們作為單個多個寄存器/線圈讀取。


讓我們看看我們簡單示例中的結(jié)果:

系統(tǒng)創(chuàng)建了3個預(yù)期的命令,一個讀取寄存器102和103,另一個讀取寄存器106、107和108,還有一個讀取寄存器112和113。


在Modbus TCP驅(qū)動程序的應(yīng)用程序?qū)а莸募?xì)節(jié)中,我可以清楚地看到現(xiàn)在有3個優(yōu)化的命令,而不是我之前的7個命令:

當(dāng)然,配置可以手動完成并進(jìn)行編輯。


讓我們將Device Poll Config轉(zhuǎn)換為單個命令,該命令讀取102到113之間的所有寄存器。 Niagara將只取作為“數(shù)據(jù)點(diǎn)”添加的數(shù)據(jù),并自動忽略中間的任何其他數(shù)據(jù)(間隙)。


我可以右鍵單擊自動定義的輪詢配置中的2個,然后刪除它們,然后修改剩余的一個,從寄存器102開始讀取總共12個寄存器(我需要的和所有間隙):

現(xiàn)在查看應(yīng)用程序?qū)а?我看到的唯一命令是:

而且我的所有點(diǎn)都以最佳優(yōu)化方式讀取:

重要說明:Modbus消息不能超過256字節(jié)。 因此,每個命令可以讀取的最大寄存器數(shù)為125。 請與制造商聯(lián)系您正在連接的設(shè)備,因?yàn)樗赡苡嗅槍Υ藬?shù)字的特定進(jìn)一步限制。


如何在niagara中優(yōu)化Modbus通訊以達(dá)到最快速度的評論 (共 條)

分享到微博請遵守國家法律
剑河县| 冕宁县| 麻城市| 镇赉县| 高密市| 濮阳县| 满城县| 当雄县| 南汇区| 镇安县| 巨鹿县| 乐平市| 绩溪县| 海丰县| 旬阳县| 凌云县| 四川省| 宝兴县| 永修县| 衡东县| 淮北市| 永寿县| 平阳县| 宜城市| 罗定市| 灯塔市| 会理县| 灌云县| 松溪县| 衢州市| 馆陶县| 永年县| 皮山县| 米林县| 灌云县| 镇原县| 承德市| 漳州市| 文成县| 怀来县| 霍城县|