<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LabVIEW實(shí)現(xiàn)Modbus通信

          共 2179字,需瀏覽 5分鐘

           ·

          2022-05-23 18:47

          7418fa66c2c0830ff03ced404194e5b8.webp

          點(diǎn)擊上方藍(lán)色字體,關(guān)注我們


          Modbus通信協(xié)議是儀器控制中常用的通信協(xié)議之一,基于Modbus協(xié)議可實(shí)現(xiàn)數(shù)據(jù)的讀、寫操作。


          Modbus只是工業(yè)控制中常用的一種協(xié)議方式,本篇博文依舊是通過串口通信的方式實(shí)現(xiàn)基本的Mosbus操作。


          Modbus協(xié)議常用功能主要包括四部分:讀寫線圈、讀取離散輸入、讀取輸入寄存器和讀寫保持寄存器,具體基礎(chǔ)知識可參見上文發(fā)的基礎(chǔ)知識鏈接。


          a65693f9a1e2a7507b90273cba67e43c.webp


          使用LabVIEW實(shí)現(xiàn)Modbus協(xié)議通信有兩種方式:Modbus庫函數(shù)實(shí)現(xiàn)和VISA串口實(shí)現(xiàn)。下面分別介紹這兩種方式。



          1


          Modbus庫


          Modbus庫主要是依托封裝好的LabVIEW VI庫,直接調(diào)用就可以實(shí)現(xiàn)Modbus通信。使用Modbus庫之前需要使用NI Package Manager進(jìn)行安裝。


          最簡單的方式就是直接搜索Modbus,這里我們選擇:LabVIEW NXG GModBus Over SerialLine工具包,串行通信就可以,如下圖所示:


          e846c892e98030bb0536730e70dfb530.webp


          還有一種方式安裝Modbus庫,搜索下載:LabVIEW數(shù)據(jù)記錄與監(jiān)控模塊,如下圖所示:


          872fabc5c7c0954957c2312bd6f6a29f.webp


          這兩種方式下載的ModBus庫均位于:函數(shù)數(shù)據(jù)通信,如下圖所示:


          10bcfee4a1a410d6abeeb964360934c6.webp


          本篇博文將以LabVIEW數(shù)據(jù)記錄與監(jiān)控模塊下載方式的庫為例進(jìn)行講解,主要原因是使用范圍廣泛,而且說明文檔詳實(shí)。


          90c31d2ccc1704798248a10f308f2a56.webp


          下面分享一下ModBus庫的使用代碼。?


          1.1、線圈操作


          1.1.1、讀取線圈


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址0讀取8個(gè)數(shù)量長度的寄存器數(shù)值。


          d781d89cad4d87829717c7feaab62a7d.webp



          1.1.2、寫入單線圈?


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址2寫入1個(gè)數(shù)量線圈寄存器(數(shù)值為:TRUE)。


          e935c180fc62db1b7de761c329020cef.webp


          ?1.1.3、寫入多線圈?


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址0寫入5個(gè)數(shù)量線圈寄存器(數(shù)值均為:TRUE)。


          d33a776ecd12bcbf10d989524648994a.webp


          1.2、保持寄存器操作


          1.2.1、讀取保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址0讀取4個(gè)數(shù)量長度的寄存器數(shù)值。


          06d30033a76afd5286f4ffa3a054858e.webp


          1.2.2、?寫入單個(gè)保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,將保持寄存器地址0寫入數(shù)值33。


          cce66cc54ac1370a538011577c034994.webp


          1.2.3、寫入多個(gè)保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址0寫入4個(gè)數(shù)量保持寄存器(數(shù)值為:1、4、6和8)。


          e118686ead359e0e3da07a5466dd8c63.webp


          1.3、讀取離散輸入


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址0讀取10個(gè)數(shù)量長度的寄存器數(shù)值。


          fc3d6da1f36a3861501503f701878d59.webp


          1.4、?讀取輸入寄存器


          以下示例打開COM3端口,通信速率115200/bps,串口模式為RTU模式,ID號為1,從起始地址1讀取4個(gè)數(shù)量長度的寄存器數(shù)值。


          cecc99d596c79553008dc75dcfc84547.webp



          2


          VISA串口


          VISA串口方式實(shí)現(xiàn)Modbus協(xié)議,本質(zhì)上就是自己手寫協(xié)議幀,每一類幀格式都需要自己來編寫。


          這里可以再回顧一下LabVIEW串口通信的基礎(chǔ)知識:LabVIEW串口通信_不脫發(fā)的程序猿的博客-CSDN博客_labview 串口通信


          2.1、線圈操作


          2.1.1、讀取線圈


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為01,ID號為1,從起始地址0讀取8個(gè)數(shù)量長度的寄存器數(shù)值。


          82c0cc93fd5a0bccaad110a942d04b82.webp


          2.1.2、?寫入單線圈?


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為05,ID號為1,從起始地址0寫入數(shù)值0。


          f980ffe8be3a494519da6a50da782f8a.webp


          2.1.3、?寫入多線圈?


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為0F,ID號為1,從起始地址0寫入8個(gè)數(shù)量線圈寄存器,字節(jié)數(shù)為1,數(shù)值為0。


          363770a4e6fe8c1fa71e14e7909726fd.webp


          2.2、保持寄存器操作


          2.2.1、讀取保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為03,ID號為1,從起始地址0讀取4個(gè)數(shù)量寄存器。



          2.2.2、?寫入單個(gè)保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為06,ID號為1,從起始地址1寫入數(shù)值0X0099。


          790247fe232568318ca287f8dea7ca58.webp


          2.2.3、寫入多個(gè)保持寄存器


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為10,ID號為1,從起始地址0寫入4個(gè)寄存器,字節(jié)數(shù)為8,數(shù)值分別為:0X00、0X11、0X00、0X22、0X00、0X33、0X00、0X44。


          ba6e9c8d83c3fa24a534a31c048f4505.webp


          2.3、讀取離散輸入


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為02,ID號為1,從起始地址0讀取8個(gè)數(shù)量長度的寄存器數(shù)值。



          ad72c7c01fefafd58b27bc7b394aa414.webp


          2.4、讀取輸入寄存器


          以下示例打開COM3端口,通信速率115200/bps,Modbus功能碼為04,ID號為1,從起始地址1讀取4個(gè)數(shù)量長度的寄存器數(shù)值。?


          c8f13ab590640042f07ed4e534d6256c.webp


          9f68fc4a12159815c45fb69ae53d4a34.webp往期推薦



          9458923156159b25ddb10ca86cec5143.webp點(diǎn)擊閱讀原文,更精彩~
          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美操逼虐待视频网 | 无码人妻一区二区三区蜜桃视频 | 色婷婷在线视频观看 | 色婷亚洲五月天 | 欧美色小说 |