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

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

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

PLC利用函數(shù)塊連接MQTT訂閱消息(一)

jf_10471008 ? 來源:jf_10471008 ? 作者:jf_10471008 ? 2023-02-06 17:29 ? 次閱讀

在億佰特介紹了西門子PLC如何通過函數(shù)塊連接MQTT服務(wù)器和發(fā)布消息,本文為大家介紹如何通過函數(shù)與函數(shù)塊實(shí)現(xiàn)MQTT云消息的訂閱,直接切入重點(diǎn)。

pYYBAGPgyHaAMSEpAAMptcxAfzY826.png

一、飛燕物聯(lián)網(wǎng)平臺(tái)配置

這里的配置和上一篇發(fā)布的配置基本相同,唯一的不同在于將數(shù)據(jù)的讀寫屬性修改為支持讀寫,其余部分根據(jù)實(shí)際情況配置不同參數(shù),這里我已控制關(guān)照為例說明,如下圖所示:

poYBAGPgyHeAKKM1AAA1H-rn9VI396.png


二、服務(wù)器下發(fā)數(shù)據(jù)格式分析

先從阿里云官方資料中獲取Alink JSON通訊協(xié)議的格式,選擇“消息通訊”選項(xiàng)下的“設(shè)備屬性、事件、服務(wù)”;

poYBAGPgyHiAWtHGAAEU4KOWP2k634.png


找到“設(shè)置設(shè)備屬性”展開“Topic和數(shù)據(jù)格式”的介紹;

pYYBAGPgyHqAMw8RAAC0Ofe71HU253.png


下發(fā)數(shù)據(jù)格式如下:{"id":"123","version":"1.0","params":{"temperature":30.5},"method":"thing.service.property.set"}

對(duì)于PLC來說首先需要找到關(guān)鍵詞“"temperature":”是否存在,若存在再將其后的數(shù)據(jù)字符串提取出來,再將該字符串轉(zhuǎn)換為數(shù)據(jù)用于修改PLC變量實(shí)現(xiàn)控制功能;

這里查找關(guān)鍵詞就會(huì)用到上傳提到的“FIND” 在字符串中查找字符的功能塊,先看官方提供的使用例程,這個(gè)功能塊會(huì)將第一次找到的字符位置輸出,否則輸出為零。

poYBAGPgyHuAZwTuAACq_1TPgm0106.png


這里我們主要使用輸出的位置信息結(jié)合“LEN”(計(jì)算判斷字符串長(zhǎng)度)和“SUB”(判斷字符串長(zhǎng)度-1個(gè)字符長(zhǎng)度)功能塊(用于計(jì)算相對(duì)偏移)來定位數(shù)據(jù)點(diǎn)位置,在使用“DELFTE”功能塊刪除多余的無效字符,方便后續(xù)提取有效數(shù)據(jù);

pYYBAGPgyH2AEVdgAAC5-JUKpzU882.png


注意這里傳入的需要?jiǎng)h除的字符串?dāng)?shù)量并非“FIND”功能塊輸出的位置值,而是該位置值加上相對(duì)偏移,這樣我們就得到了一個(gè)從有效數(shù)據(jù)開始的字符串,接下來可以利用“STRG_VAL”功能塊遇到不可轉(zhuǎn)換字符停止轉(zhuǎn)換的特性轉(zhuǎn)換為數(shù)值(JSON中數(shù)據(jù)的結(jié)束一般有‘,’與‘}’來結(jié)束該數(shù)據(jù),字符型數(shù)據(jù)除外),還是以官方的例程說明:

poYBAGPgyH-APF3BAADwuIHRIVU122.png


剛才在飛燕平臺(tái)配置的數(shù)據(jù)類型都是整數(shù),因此需要修改為下圖實(shí)列,若為浮點(diǎn)數(shù)還需要單獨(dú)配置,方法和整形一致僅轉(zhuǎn)換類型需要調(diào)整。

pYYBAGPgyICAest6AAAYAAcRsK4364.png


經(jīng)過上述步驟就可以將數(shù)值型變量的值提取出來,不過上述方法不支持提取字符數(shù)據(jù),需要提取字符型數(shù)據(jù)的可以參照該方法實(shí)現(xiàn),字符型數(shù)據(jù)就需要判斷數(shù)據(jù)的長(zhǎng)度在通過”MID”功能塊提取,字符串的結(jié)束字符為‘"’,通過“FIND”功能塊便能或者字符長(zhǎng)度。

審核編輯黃宇

聲明:本文內(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)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5007

    文章

    13114

    瀏覽量

    461480
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4284

    瀏覽量

    62325
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    647

    瀏覽量

    22392
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MQTT網(wǎng)關(guān)快速連接三菱系列PLC實(shí)現(xiàn)遠(yuǎn)程監(jiān)控

    __MQTT協(xié)議網(wǎng)關(guān)串口連接三菱FX3UPLC操作說明 __ __MQTT協(xié)議網(wǎng)關(guān)串口連接三菱FX3UPLC操作說明v1.2 __ 前言:MQTT
    的頭像 發(fā)表于 10-17 15:28 ?1339次閱讀
    <b class='flag-5'>MQTT</b>網(wǎng)關(guān)快速<b class='flag-5'>連接</b>三菱系列<b class='flag-5'>PLC</b>實(shí)現(xiàn)遠(yuǎn)程監(jiān)控

    如何查看及更改函數(shù)/函數(shù)的調(diào)用環(huán)境

    模塊化設(shè)計(jì)的思想是把些相似的功能(比如電機(jī)控制、閥控制)設(shè)計(jì)成函數(shù)函數(shù),這樣就可以反復(fù)調(diào)用。其優(yōu)點(diǎn)是:使程序架構(gòu)更加清晰,避免重復(fù)編寫相似功能的代碼。不過可能會(huì)產(chǎn)生
    的頭像 發(fā)表于 11-17 09:08 ?839次閱讀
    如何查看及更改<b class='flag-5'>函數(shù)</b>/<b class='flag-5'>函數(shù)</b><b class='flag-5'>塊</b>的調(diào)用環(huán)境

    IG902如何連接公有MQTT測(cè)試平臺(tái)?

    ;amp;gt;&gt;云服務(wù)”,配置MQTT連接。 7.配置腳本將數(shù)據(jù)上傳至云端。 1)選擇“云服務(wù)”,點(diǎn)擊發(fā)布中的“+”。 2)配置相關(guān)的發(fā)布設(shè)置。 3)配置訂閱
    發(fā)表于 07-25 08:06

    MQTT協(xié)議介紹之二:連接

    介紹MQTT的基本知識(shí)。這章,我們討論的主題是MQTT客戶端和代理服務(wù)器的定義以及MQTT連接的基礎(chǔ)知識(shí),如何
    發(fā)表于 08-25 19:57

    MQTT協(xié)議介紹之:發(fā)布/訂閱

    因?yàn)榇砩系牟僮骺梢愿叨炔⑿谢⑻幚硎录?qū)動(dòng),消息緩存和消息的智能路由通常也是提高可擴(kuò)展性的決定性因素,但是,擴(kuò)展發(fā)布/訂閱數(shù)百萬的連接絕對(duì)是個(gè)挑戰(zhàn),這可以使用集群代理節(jié)點(diǎn)實(shí)現(xiàn),以便通過負(fù)載平衡器將負(fù)載
    發(fā)表于 08-25 19:58

    基于Eclipse paho-mqtt源碼包的MQTT客戶端設(shè)計(jì)(上)

    連接,提供兩者之間的個(gè)有序的、無損的、基于字節(jié)流的雙向傳輸。當(dāng)應(yīng)用數(shù)據(jù)通過 MQTT 網(wǎng)絡(luò)發(fā)送時(shí), MQTT 會(huì)把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連,其特點(diǎn)包
    發(fā)表于 08-04 16:28

    基于Eclipse paho-mqtt源碼包的MQTT客戶端設(shè)計(jì)(下)

    */paho_mqtt_start(&client);啟動(dòng) MQTT 客戶端之后,客戶端會(huì)自動(dòng)連接代理服務(wù)器,自動(dòng)訂閱已經(jīng)設(shè)置的 Topic,根據(jù)事件執(zhí)行回調(diào)
    發(fā)表于 08-04 16:33

    文教你快速讀懂MQTT網(wǎng)關(guān)

    MQTT種發(fā)布(publish)/訂閱(subscribe)協(xié)議,MQTT協(xié)議采用發(fā)布/訂閱模式,所有的物聯(lián)網(wǎng)終端都通過TCP
    發(fā)表于 03-24 16:09 ?1755次閱讀

    NodeMCU學(xué)習(xí)(十一)--MQTT訂閱與發(fā)布

    NodeMCU實(shí)現(xiàn)訂閱和發(fā)布主題。1、要點(diǎn)掃盲1.1 MQTTMQTT協(xié)議--MQTT協(xié)議簡(jiǎn)介及原理》《MQTT協(xié)議--
    發(fā)表于 10-26 13:05 ?29次下載
    NodeMCU學(xué)習(xí)(十一)--<b class='flag-5'>MQTT</b>的<b class='flag-5'>訂閱</b>與發(fā)布

    PLC程序分析和數(shù)據(jù)下發(fā)測(cè)試教程

    在億佰特介紹了西門子PLC如何通過函數(shù)連接MQTT服務(wù)器和發(fā)布消息,前文為大家介紹如何通過函數(shù)
    的頭像 發(fā)表于 02-06 17:56 ?1439次閱讀
    <b class='flag-5'>PLC</b>程序分析和數(shù)據(jù)下發(fā)測(cè)試教程

    基于MQTT協(xié)議JSON格式發(fā)布與訂閱PLC智能網(wǎng)關(guān)

    通過物通博聯(lián)PLC智能網(wǎng)關(guān)的串口網(wǎng)口連接PLC(西門子、三菱、歐姆龍、施耐德、臺(tái)達(dá)、匯川等),實(shí)時(shí)采集數(shù)據(jù)并上傳到云平臺(tái)或本地上位機(jī),實(shí)現(xiàn)MQTT協(xié)議JSON格式發(fā)布與
    的頭像 發(fā)表于 03-21 14:06 ?985次閱讀
    基于<b class='flag-5'>MQTT</b>協(xié)議JSON格式發(fā)布與<b class='flag-5'>訂閱</b>的<b class='flag-5'>PLC</b>智能網(wǎng)關(guān)

    西門子SMART200PLC連接自建MQTT云平臺(tái)操作教程

    前言:MQTT個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT 協(xié)議的特點(diǎn)是輕量、簡(jiǎn)單、 開放和易于實(shí)現(xiàn)的,同時(shí),西門子 PLC
    發(fā)表于 05-17 14:40 ?14次下載

    【教程】PLC利用函數(shù)連接MQTT服務(wù)器

    MQTT低協(xié)議消耗、數(shù)據(jù)安全性高等優(yōu)點(diǎn),在物聯(lián)網(wǎng)領(lǐng)域已經(jīng)發(fā)展很多年,網(wǎng)絡(luò)上有很多資料可以學(xué)習(xí),并且有很多的服務(wù)器運(yùn)營(yíng)商在不斷降低云開發(fā)難度,之前需要前端工程師開發(fā)的網(wǎng)頁,現(xiàn)在只要你對(duì)界面美觀沒有要求
    的頭像 發(fā)表于 09-13 10:04 ?1277次閱讀
    【教程】<b class='flag-5'>PLC</b><b class='flag-5'>利用</b><b class='flag-5'>函數(shù)</b><b class='flag-5'>塊</b><b class='flag-5'>連接</b><b class='flag-5'>MQTT</b>服務(wù)器

    MQTT協(xié)議網(wǎng)關(guān)串口連接三菱FX3UPLC操作說明

    前言:MQTT個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議的特點(diǎn)是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,同時(shí),三菱PLC廣泛應(yīng)用于
    發(fā)表于 08-14 15:19 ?0次下載

    西門子PLC如何輕松實(shí)現(xiàn)將數(shù)據(jù)上傳到MQTT云平臺(tái)

    前言:MQTT個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議的特點(diǎn)是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,同時(shí),西門子PLC廣泛應(yīng)用
    發(fā)表于 08-14 15:17 ?1次下載