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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

邊緣網(wǎng)關(guān)教程-Modbus協(xié)議轉(zhuǎn)MQTT協(xié)議

IOTRouter ? 來(lái)源:IOTRouter ? 作者:IOTRouter ? 2024-07-03 10:37 ? 次閱讀

需求概述

主要實(shí)現(xiàn)一個(gè)流程:

1.采集Modbus電表數(shù)據(jù)上傳到MQTT指定topic

2.如果傳感器未響應(yīng)需要發(fā)送報(bào)警信息到指定topic

3.MQTT連接成功時(shí)發(fā)送注冊(cè)信息

4.周期推送心跳到指定topic

5.云端下發(fā)控制EG8200繼電器并回復(fù)

對(duì)接資料

1.南向接口 RS485對(duì)接協(xié)議(標(biāo)準(zhǔn)modbus)

點(diǎn)位 字段 寄存器地址 解析方式
A相電壓 voltageA 40001~40002 float32 ABCD
B相電壓 voltageB 40003~40004 float32 ABCD
C相電壓 voltageC 40005~40006 float32 ABCD
A相電壓 currentA 40007~40008 float32 ABCD
B相電壓 currentB 40009~40010 float32 ABCD
C相電壓 currentC 40011~40012 float32 ABCD

2.北向接口協(xié)議說明:

MQTT連接信息
Broker 139.129.229.113
Clientid TestClient
Username 82000000305E144F
Password EG12345678
Topic報(bào)文格式
功能 Topic 數(shù)據(jù)流向 報(bào)文示例
信息注冊(cè) data/sg/${sn}/info 網(wǎng)關(guān)->平臺(tái) {
"sn":"82000000305E144F",
"time":"2023-01-01 12:00:00"
}
數(shù)據(jù)上報(bào) data/sg/${sn}/report 網(wǎng)關(guān)->平臺(tái) {
"sn":"82000000305E144F",
"data":{
"voltageA":0,
"voltageB":0,
"voltageC":0,
"currentA":0,
"currentB":0,
"currentC":0
},
time:"2023-01-01 12:00:00"
}
心跳 data/sg/${sn}/heart 網(wǎng)關(guān)->平臺(tái) {
"sn":"82000000305E144F",
"data":{},
"message":"heart",
"time":"2023-01-01 12:00:00"
}
報(bào)警 data/sg/${sn}/warn 網(wǎng)關(guān)->平臺(tái) {
"sn":"82000000305E144F",
"data":{},
"message":"offline",
"time":"2023-01-01 12:00:00"
}
平臺(tái)控制 /data/sg/${sn}/request 平臺(tái)->網(wǎng)關(guān) {
"event_id":"HsUCigC4Jk",
"data": {
"parameter": "DO1",
"value": 0
}
}
控制回復(fù) data/sg/${sn}/response 網(wǎng)關(guān)->平臺(tái) {
"event_id":"HsUCigC4Jk",
"message":"OK",
"data":{},
"time":"2023-01-01 12:00:00"
}

需求分析

注冊(cè)與連接工作

a.建立MQTT連接,發(fā)布到注冊(cè)主題(MQTT發(fā)布節(jié)點(diǎn))注:MQTT訂閱發(fā)布節(jié)點(diǎn)連接信息共享,其他MQTT無(wú)需在配置連接參數(shù),選擇第一次配置的連接參數(shù)即可

b.監(jiān)聽MQTT連接狀態(tài)(狀態(tài)變化節(jié)點(diǎn))

c.封裝注冊(cè)信息(函數(shù)節(jié)點(diǎn))

數(shù)據(jù)上報(bào)

a.modbus讀取電表數(shù)據(jù)(modbus讀節(jié)點(diǎn))

b.判斷傳感器是否有回復(fù)并封裝上報(bào)報(bào)文(函數(shù)節(jié)點(diǎn))

c.配置對(duì)應(yīng)的發(fā)布主題(MQTT發(fā)布節(jié)點(diǎn))

心跳推送

a.注入節(jié)點(diǎn)周期觸發(fā)(注入節(jié)點(diǎn))

b.封裝心跳報(bào)文(函數(shù)節(jié)點(diǎn))

c.MQTT發(fā)布數(shù)據(jù)(MQTT發(fā)布節(jié)點(diǎn))

下發(fā)控制

a.MQTT訂閱云端下發(fā)主題(MQTT訂閱節(jié)點(diǎn))

b.解析云端數(shù)據(jù),并控制對(duì)應(yīng)DO(函數(shù)節(jié)點(diǎn))

c.響應(yīng)MQTT控制情況(函數(shù)節(jié)點(diǎn))

d.上報(bào)響應(yīng)報(bào)文(MQTT發(fā)布)

實(shí)現(xiàn)流程框架

wKgZomaEt1uAGN4qAABu4JP5xmw397.png

需求實(shí)現(xiàn)

1.監(jiān)聽MQTT狀態(tài)并發(fā)布注冊(cè)信息

a.從節(jié)點(diǎn)庫(kù)拖出一個(gè)MQTT發(fā)布節(jié)點(diǎn),函數(shù)節(jié)點(diǎn),調(diào)試節(jié)點(diǎn),狀態(tài)監(jiān)測(cè)節(jié)點(diǎn)和條件判斷節(jié)點(diǎn),MQTT發(fā)布用于消息發(fā)布,函數(shù)節(jié)點(diǎn)用于注冊(cè)信息封裝,狀態(tài)檢測(cè)節(jié)點(diǎn)用于檢測(cè)MQTT的連接狀態(tài),調(diào)試節(jié)點(diǎn)用于打印發(fā)布的報(bào)文

wKgZomaEt2uAWCAWAAF4ebgsg2A254.png

b.從上可以看見日志打印了注冊(cè)報(bào)文,以及MQTTx端以及接收到了注冊(cè)信息

wKgaomaEt32AM3yLAAGesr-MT8g037.png

c.注冊(cè)流程使用的代碼塊:

const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())

let obj = {
    "sn": "82000000305E144F",
    "time": fmt
}

function dateFormat(fmt, timestamp) {
    let ret;
    const opt = {
        "Y+": timestamp.getFullYear().toString(), // 年
        "m+": (timestamp.getMonth() + 1).toString(),  // 月
        "d+": timestamp.getDate().toString(), // 日
        "H+": timestamp.getHours().toString(), // 時(shí)
        "M+": timestamp.getMinutes().toString(), // 分
        "S+": timestamp.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以繼續(xù)添加,必須轉(zhuǎn)化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

msg.payload = JSON.stringify(obj)
return msg

2.數(shù)據(jù)上報(bào)

a.從節(jié)點(diǎn)庫(kù)拖出一個(gè)注入節(jié)點(diǎn),函數(shù)節(jié)點(diǎn)和一個(gè)MQTT發(fā)布節(jié)點(diǎn),注入節(jié)點(diǎn)用于周期觸發(fā),函數(shù)節(jié)點(diǎn)用于封裝心跳報(bào)文,MQTT發(fā)布節(jié)點(diǎn)用于心跳發(fā)布

wKgaomaEt5yAGYc1AAHXgK03t6I764.png

b.從上面可以看到日志窗口打印了數(shù)據(jù)報(bào)文,MQTTx也接收到了上報(bào)數(shù)據(jù)

wKgZomaEt6qAblqPAAHzi27BQzo469.png

c.數(shù)據(jù)上報(bào)流程使用的代碼塊:

function dateFormat(fmt, timestamp) {
    let ret;
    const opt = {
        "Y+": timestamp.getFullYear().toString(), // 年
        "m+": (timestamp.getMonth() + 1).toString(),  // 月
        "d+": timestamp.getDate().toString(), // 日
        "H+": timestamp.getHours().toString(), // 時(shí)
        "M+": timestamp.getMinutes().toString(), // 分
        "S+": timestamp.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以繼續(xù)添加,必須轉(zhuǎn)化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

var flag = msg.status
var data = msg.payload
var payload
const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())

if (flag == "TIMEOUT") {
    payload = {
        "sn": "82000000305E144F",
        "data": {},
        "message": "offline",
        "time": fmt
    }
    msg.payload = JSON.stringify(payload)
    return [msg, null]
}
else if (flag == "OK") {
    payload = {
        sn: "02C00081275A574E",
        data,
        time: fmt
    }
    msg.payload = JSON.stringify(payload)
    return [null, msg]
}

3.心跳推送

a.從節(jié)點(diǎn)庫(kù)拿出一個(gè)注入節(jié)點(diǎn),函數(shù)節(jié)點(diǎn),MQTT發(fā)布節(jié)點(diǎn)。注入節(jié)點(diǎn)用于周期發(fā)發(fā)送心跳,函數(shù)節(jié)點(diǎn)用于封裝心跳報(bào)文,MQTT發(fā)布節(jié)點(diǎn)用于發(fā)布到MQTT

wKgZomaEt7-AWVocAAJlZz-ZS_Y845.png

b.從上面可以看到日志窗口打印了心跳報(bào)文,MQTTx也接收到了心跳報(bào)

wKgaomaEt8eAQMTlAAHOWaHue9g429.png

心跳上報(bào)流程使用的代碼塊:

const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())

function dateFormat(fmt, timestamp) {
  let ret;
  const opt = {
    "Y+": timestamp.getFullYear().toString(), // 年
    "m+": (timestamp.getMonth() + 1).toString(),  // 月
    "d+": timestamp.getDate().toString(), // 日
    "H+": timestamp.getHours().toString(), // 時(shí)
    "M+": timestamp.getMinutes().toString(), // 分
    "S+": timestamp.getSeconds().toString() // 秒
    // 有其他格式化字符需求可以繼續(xù)添加,必須轉(zhuǎn)化成字符串
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    };
  };
  return fmt;
}

let obj = {
  "sn": "82000000305E144F",
  "data": {},
  "message": "heart",
  "time": fmt
}
msg.payload = JSON.stringify(obj)
return msg;

4.下發(fā)控制及響應(yīng)

a.從節(jié)點(diǎn)庫(kù)拿出一個(gè)MQTT訂閱節(jié)點(diǎn),MQTT發(fā)布節(jié)點(diǎn),函數(shù)節(jié)點(diǎn)和DO節(jié)點(diǎn),MQTT訂閱節(jié)點(diǎn)和MQTT發(fā)布節(jié)點(diǎn)用于接收云端發(fā)來(lái)的數(shù)據(jù)和控制響應(yīng),函數(shù)節(jié)點(diǎn)用于解析下發(fā)的報(bào)文和控制的響應(yīng)報(bào)文封裝

wKgaomaEt9aAYWXtAAJQ_PKGmCk107.png

b.從上面可以看到日志窗口打印了報(bào)文,MQTTx也接收到了控制響應(yīng)

wKgZomaEt-aANZv_AAGjccNC5Zk976.png

c.控制流程使用的代碼塊


//云端下發(fā)解析
//############################
if (msg.payload.length < 10) { return }

if (typeof (msg.payload) == "object") {
    var obj = msg.payload
    //信息獲取
    let event_id = obj.event_id;
    global.set("event_id", event_id)
    let parameter = obj.data.parameter
    let value = obj.data.value
    let arr = []
    switch (parameter) {
        case "DO1":
            arr = value
            break
        case "DO2":
            arr = value
            break
    }

    msg.payload = arr


    return msg;
}
//############################

//反饋?lái)憫?yīng)封裝
//############################
let event_id = global.get("event_id")
const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())
function dateFormat(fmt, timestamp) {
    let ret;
    const opt = {
        "Y+": timestamp.getFullYear().toString(), // 年
        "m+": (timestamp.getMonth() + 1).toString(),  // 月
        "d+": timestamp.getDate().toString(), // 日
        "H+": timestamp.getHours().toString(), // 時(shí)
        "M+": timestamp.getMinutes().toString(), // 分
        "S+": timestamp.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以繼續(xù)添加,必須轉(zhuǎn)化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

let obj = {
    "event_id": event_id,
    "message": "OK",
    "data": {},
    "time": fmt

}

msg.payload = JSON.stringify(obj);
return msg;
//############################

通過以上步驟,你可以在邊緣網(wǎng)關(guān)上成功實(shí)現(xiàn) Modbus 協(xié)議到 MQTT 協(xié)議的轉(zhuǎn)換。這種集成方式不僅簡(jiǎn)化了工業(yè)設(shè)備與物聯(lián)網(wǎng)平臺(tái)的通信,還增強(qiáng)了數(shù)據(jù)的實(shí)時(shí)性和可靠性。希望本文能為你提供有用的指導(dǎo),助你更好地利用 Modbus 和 MQTT 技術(shù)

審核編輯 黃宇

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

    關(guān)注

    28

    文章

    1810

    瀏覽量

    77083
  • 網(wǎng)關(guān)
    +關(guān)注

    關(guān)注

    9

    文章

    4516

    瀏覽量

    51201
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    651

    瀏覽量

    22547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Modbus協(xié)議轉(zhuǎn)Profinet協(xié)議網(wǎng)關(guān)與氣體監(jiān)測(cè)系統(tǒng)配置案例

    Modbus協(xié)議和Profinet協(xié)議作為工業(yè)領(lǐng)域常見的兩種通訊協(xié)議,各自具有一定的特點(diǎn)和應(yīng)用范圍。Modbus轉(zhuǎn)Profinet
    的頭像 發(fā)表于 06-13 17:50 ?1424次閱讀
    <b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b>Profinet<b class='flag-5'>協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>與氣體監(jiān)測(cè)系統(tǒng)配置案例

    Modbus協(xié)議轉(zhuǎn)Profibus協(xié)議網(wǎng)關(guān)接溫控表與PLC通訊

    Modbus協(xié)議轉(zhuǎn)Profibus協(xié)議網(wǎng)關(guān)(XD-MDPB100)則是實(shí)現(xiàn)這一通訊的重要工具。Modbus
    的頭像 發(fā)表于 06-21 11:31 ?1936次閱讀
    <b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b>Profibus<b class='flag-5'>協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>接溫控表與PLC通訊

    巴圖自動(dòng)化Profinet協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)模塊連接智能儀表與PLC通訊

    巴圖自動(dòng)化Profinet協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)模塊(BT-MDPN10)的主要功能是實(shí)現(xiàn)Modbus協(xié)議和Profinet
    的頭像 發(fā)表于 07-04 11:35 ?2693次閱讀
    巴圖自動(dòng)化Profinet<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>模塊連接智能儀表與PLC通訊

    Modbus轉(zhuǎn)profient網(wǎng)關(guān)連接Smart PLC實(shí)現(xiàn)Profinet轉(zhuǎn)modbus協(xié)議轉(zhuǎn)換

    Modbus轉(zhuǎn)profinet網(wǎng)關(guān)連接西門子/DCS及機(jī)器人Profinet轉(zhuǎn)modbus協(xié)議轉(zhuǎn)換,不需要PLC或者Profinet主站編程
    發(fā)表于 03-22 19:13

    西門子S7協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)

    西門子S7協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)
    發(fā)表于 11-13 15:03 ?1850次閱讀

    歐姆龍CP1L-EL轉(zhuǎn)Modbus協(xié)議歐姆龍PLC轉(zhuǎn)Modbus協(xié)議

    歐姆龍PLC轉(zhuǎn)Modbus協(xié)議 歐姆龍CP1L-EL轉(zhuǎn)Modbus協(xié)議
    的頭像 發(fā)表于 11-06 15:55 ?3017次閱讀
    歐姆龍CP1L-EL<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b>歐姆龍PLC<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b>

    4G無(wú)線Modbus轉(zhuǎn)MQTT協(xié)議網(wǎng)關(guān)BL100產(chǎn)品簡(jiǎn)介

    4G無(wú)線Modbus轉(zhuǎn)MQTT協(xié)議網(wǎng)關(guān)
    發(fā)表于 08-19 15:22 ?22次下載

    Modbus協(xié)議網(wǎng)關(guān)是什么?Modbus協(xié)議網(wǎng)關(guān)的功能

    數(shù)據(jù)的互聯(lián)互通。Modbus協(xié)議作為一種廣泛應(yīng)用于工業(yè)控制領(lǐng)域的通信協(xié)議,主要用于在主設(shè)備(如PLC、SCADA系統(tǒng))與從設(shè)備(如傳感器、執(zhí)行器、智能儀表等)之間交換數(shù)據(jù)。 Modbus協(xié)議網(wǎng)
    的頭像 發(fā)表于 04-11 15:51 ?764次閱讀

    Profibus協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)模塊在船舶中的應(yīng)用

    本文主要介紹了Profibus協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)模塊(XD-MDPB100)在船舶中的應(yīng)用。 Profibus轉(zhuǎn)
    的頭像 發(fā)表于 06-27 17:25 ?524次閱讀
    Profibus<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>模塊在船舶中的應(yīng)用

    鋇錸協(xié)議網(wǎng)關(guān)輕松實(shí)現(xiàn)Modbus轉(zhuǎn)MQTT協(xié)議

    效的數(shù)據(jù)交換。本文從Modbus協(xié)議轉(zhuǎn)換為MQTT協(xié)議的必要性為出發(fā)點(diǎn),分析鋇錸Modbus轉(zhuǎn)MQTT
    的頭像 發(fā)表于 07-23 15:51 ?372次閱讀
    鋇錸<b class='flag-5'>協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>輕松實(shí)現(xiàn)<b class='flag-5'>Modbus</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    基于MQTT協(xié)議云平臺(tái)的Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)

    鋇錸Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)BL100是一款高性能、高性價(jià)比的物聯(lián)網(wǎng)網(wǎng)關(guān),它支持將Modbus協(xié)議
    的頭像 發(fā)表于 07-29 17:59 ?786次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>云平臺(tái)的<b class='flag-5'>Modbus</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>MQTT</b><b class='flag-5'>網(wǎng)關(guān)</b>

    鋇錸技術(shù)Modbus轉(zhuǎn)MQTT網(wǎng)關(guān):橋接Modbus協(xié)議MQTT協(xié)議

    提供了一鍵對(duì)接亞馬遜云平臺(tái)的解決方案。 BL101網(wǎng)關(guān)是鋇錸技術(shù)研發(fā)的一款高性能工業(yè)物聯(lián)網(wǎng)設(shè)備,通過橋接Modbus協(xié)議MQTT通信協(xié)議,實(shí)現(xiàn)了工業(yè)設(shè)備與云端平臺(tái)之間的高效互聯(lián)。支持
    的頭像 發(fā)表于 07-30 16:28 ?404次閱讀
    鋇錸技術(shù)<b class='flag-5'>Modbus</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>MQTT</b><b class='flag-5'>網(wǎng)關(guān)</b>:橋接<b class='flag-5'>Modbus協(xié)議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    BACnet轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)實(shí)現(xiàn)設(shè)備無(wú)縫對(duì)接GE Digital iFIX

    與整合,實(shí)現(xiàn)協(xié)議間的無(wú)縫轉(zhuǎn)換,鋇錸技術(shù)隆重推出BACnet轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)BL120BN,為用戶提供了一個(gè)既高效又可靠的解決方案。 一、BACnet
    的頭像 發(fā)表于 08-06 17:32 ?421次閱讀
    BACnet<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>實(shí)現(xiàn)設(shè)備無(wú)縫對(duì)接GE Digital iFIX

    Modbus、樓宇自控、電力協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)BL120ML支持一鍵對(duì)接LabVIEW

    Modbus樓宇自控電力協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)BL120ML在LabVIEW中的實(shí)際應(yīng)用中,我們首先需要理解LabVIEW和
    的頭像 發(fā)表于 08-10 10:40 ?425次閱讀
    <b class='flag-5'>Modbus</b>、樓宇自控、電力<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>BL120ML支持一鍵對(duì)接LabVIEW

    使用Modbus、樓宇自控、電力協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)實(shí)現(xiàn)生產(chǎn)設(shè)備的遠(yuǎn)程監(jiān)控和管理

    Modbus協(xié)議、樓宇自控、電力協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān),將不同類型的生產(chǎn)設(shè)備數(shù)據(jù)集中傳輸?shù)奖O(jiān)控系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和管理。 我們先來(lái)看整
    的頭像 發(fā)表于 08-08 17:29 ?394次閱讀
    使用<b class='flag-5'>Modbus</b>、樓宇自控、電力<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus協(xié)議</b><b class='flag-5'>網(wǎng)關(guān)</b>實(shí)現(xiàn)生產(chǎn)設(shè)備的遠(yuǎn)程監(jiān)控和管理