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

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

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

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

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2022-09-13 10:04 ? 次閱讀

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)營商在不斷降低云開發(fā)難度,之前需要前端工程師開發(fā)的網(wǎng)頁,現(xiàn)在只要你對界面美觀沒有要求只是想實(shí)現(xiàn)功能,服務(wù)器運(yùn)營商都有對應(yīng)的可視化開發(fā)工具支持,比如下文使用的阿里云飛燕平臺的“人機(jī)交互”設(shè)計(jì)就可以快速設(shè)置手機(jī)控制界面。bbc326a4-2fb0-11ed-9ade-dac502259ad0.png

同樣的騰訊有騰訊連連小程序可視化界面設(shè)計(jì),OneNET有可視化Web Server界面設(shè)計(jì),幾乎所有的服務(wù)器運(yùn)營商都在降低開發(fā)難度。最近幾年PLC廠家也在提供MQTT函數(shù)功能塊,只要設(shè)備支持TCP客戶端并且可以發(fā)送16進(jìn)制透明數(shù)據(jù),就可以通過數(shù)據(jù)組合的方式實(shí)現(xiàn)MQTT服務(wù)器連接,并根據(jù)協(xié)議要求發(fā)送對應(yīng)的數(shù)據(jù)包就可以實(shí)現(xiàn)MQTT通訊,之前我就利用組態(tài)屏搭配串口服務(wù)器通過腳本編程實(shí)現(xiàn)TCP客戶端連接MQTT服務(wù)器,下面介紹一種直接通過PLC連接MQTT服務(wù)器的方法。下面是MQTT常用的報(bào)文列舉:CONNECT報(bào)文:10+字符總長度(遵循剩余字符算法)+00+04+4D 51 54 54+04+C2 +?;顣r間(120s:00 78)+客戶端長度(2字節(jié))+客戶端ID+用戶名長度(2字節(jié))+用戶名+密碼長度(2字節(jié))+PASSWORDPUBLISH報(bào)文:30 +字符總長度(遵循剩余字符算法)+發(fā)布地址長度(2字節(jié))+發(fā)布地址+用戶數(shù)據(jù)SUBSCRIBE報(bào)文:82 +字符總長度(遵循剩余字符算法)+00 00+訂閱地址長度(2字節(jié))+訂閱地址+服務(wù)等級(00、01、02)

博圖開發(fā)環(huán)境搭建

從零開始編寫程序,需要熟悉西門子SLC編程語言,現(xiàn)學(xué)可能比較困難也不符合我寫這篇文章的初衷,利用這篇文章只需要原來熟悉博圖的梯型圖編程和功能塊調(diào)用,就可以利用下文使用函數(shù)塊連接MQTT服務(wù)器。西門子全球技術(shù)支持中心可以下載到一篇關(guān)于MQTT連接的實(shí)例,這里小編采用“國際版”下載MQTT實(shí)例講解,在“中文”技術(shù)支持中心也有一篇關(guān)于“MQTT連接”的實(shí)例(中文實(shí)例地址:SIMATIC CPU 的 MQTT 發(fā)布服務(wù)器),但我們有沒有使用過,有可能是同一實(shí)例,用什么實(shí)例本質(zhì)都是相同的(MQTT協(xié)議不變,最終與服務(wù)器通訊的數(shù)據(jù)不變),中間過程可能不同但變量描述與協(xié)議相同也相同,建議在開發(fā)中變量名盡量與協(xié)議相同,方便程序閱讀。小編使用的是“國際版”下載的實(shí)例(國際版實(shí)例下載地址:Use the SIMATIC controller as an MQTT client)。后面會通過PLC仿真軟件仿真真實(shí)的S7-1500設(shè)備,例程提供了兩個PLC的連接的實(shí)例,其實(shí)都是一樣的,把S7-1200刪除仿真下載程序時報(bào)錯;bbd967c0-2fb0-11ed-9ade-dac502259ad0.png后面會連接阿里云,需要PLC接入外網(wǎng),需要連接可以上網(wǎng)的路由器并配置正確的IP地址;
bbf02582-2fb0-11ed-9ade-dac502259ad0.png之面會使用域名連接,默認(rèn)的DNS可能無法解析,需要在“高級組態(tài)”的”DNS”下配置阿里云域名解析服務(wù)器(223.5.5.5),我這可以解析域名可以忽略配置DNS服務(wù)器;
bc0763f0-2fb0-11ed-9ade-dac502259ad0.png

西門子PLC仿真

手上沒有PLC也可以學(xué)習(xí)MQTT Client函數(shù)塊的使用,只需要使用“SIMATIC S7-PLCSIM Advanced V4.0”西門子PLC高級仿真器即可實(shí)現(xiàn)S7-1500PLC的仿真運(yùn)行。1、配置虛擬網(wǎng)卡,填寫PLC參數(shù),如下圖所示:bc19f380-2fb0-11ed-9ade-dac502259ad0.png

2、切回博圖界面點(diǎn)擊“編譯”,忽略警告,在點(diǎn)擊下載,按照下圖配置:
bc38425e-2fb0-11ed-9ade-dac502259ad0.png3、再點(diǎn)擊“下載”,第一次使用會彈出幾個配置窗口,全部選“同意”或者“是”,經(jīng)過以上步驟后點(diǎn)擊“裝載”選擇同意,選擇啟動設(shè)備:bc58b34a-2fb0-11ed-9ade-dac502259ad0.png至此完成博圖仿真調(diào)試的全部說明。

云平臺設(shè)備創(chuàng)建

準(zhǔn)備云平臺賬號,這里小編使用阿里云飛燕平臺進(jìn)行演示,你也可以O(shè)neNET、騰訊云、華為云、百度云等,方法基本類似,這個函數(shù)庫也是使用標(biāo)準(zhǔn)MQTT3.1.1的三要素Client ID、UserName、Password,因此阿里云的三要素與標(biāo)準(zhǔn)MQTT3.1.1三要素不同也需要轉(zhuǎn)換,轉(zhuǎn)換規(guī)則可以通過云平臺使用手冊查詢,不過阿里云在設(shè)備詳情下提供了標(biāo)準(zhǔn)MQTT3.1.1三要素的參數(shù)可以直接使用,使用其他平臺的應(yīng)當(dāng)根據(jù)對應(yīng)方法進(jìn)行轉(zhuǎn)換。1、進(jìn)入飛燕物聯(lián)網(wǎng)平臺(https://living.aliyun.com),登錄自己的阿里云賬號,沒有開通該功能的點(diǎn)擊開通(需要實(shí)名認(rèn)證),開通的點(diǎn)擊進(jìn)入控制臺;bc7398e0-2fb0-11ed-9ade-dac502259ad0.png2、沒有項(xiàng)目的點(diǎn)擊“創(chuàng)建新項(xiàng)目”,輸入名稱點(diǎn)擊“確定”即可,點(diǎn)擊“項(xiàng)目”進(jìn)入“項(xiàng)目詳情”,點(diǎn)擊“創(chuàng)建新產(chǎn)品”,輸入產(chǎn)品名,配置“功能定義”可以隨便選一個后面根據(jù)需求在重新定義,聯(lián)網(wǎng)方式一定不要選擇“WIFI接入”,通訊格式使用“ICA標(biāo)準(zhǔn)數(shù)據(jù)格式(Alink JSON)”;
bc97b87e-2fb0-11ed-9ade-dac502259ad0.png

3、進(jìn)入“產(chǎn)品詳情”,首先進(jìn)入的是“功能定義”,這里先講如何連接,直接跳過“功能定義”與“人機(jī)交互”,在“設(shè)備調(diào)試”,選擇開發(fā)的模組,目前沒有與阿里云合作的模組,直接選擇未知模組即可;bcc9ca6c-2fb0-11ed-9ade-dac502259ad0.png4、點(diǎn)擊”新增設(shè)備”,創(chuàng)建PLC連接的認(rèn)證參數(shù),進(jìn)入創(chuàng)建設(shè)備的詳情界面,查詢連接MQTT3.1.1所需要的地址、端口、Client ID、UserName、Password,這里我們不在飛燕平臺下查詢,需要在“物聯(lián)網(wǎng)平臺”的設(shè)備列表下設(shè)備詳情查詢,這樣就可不用自己去轉(zhuǎn)換三要素;
bcfb27d8-2fb0-11ed-9ade-dac502259ad0.png

配置MqttDB塊

1、修改MqttDB塊中的參數(shù),用于連接阿里云MQTT服務(wù)器,打開變量組“connparams”在展開變量“mqttBrokerAddress”,配置參數(shù)“qdnAddress”為“a1pc9X6nd09.iot-as-mqtt.cn-shanghai.aliyuncs.com.”,配置“post”為1883。【注意】輸入域名需要“.“結(jié)束輸入。bd15f52c-2fb0-11ed-9ade-dac502259ad0.png2、填入對應(yīng)的三要素:
bd4002ea-2fb0-11ed-9ade-dac502259ad0.png3、再次點(diǎn)擊編譯下載:
bd59f060-2fb0-11ed-9ade-dac502259ad0.png

仿真連接MQTT服務(wù)器

1、點(diǎn)擊在線監(jiān)控?cái)?shù)據(jù),需改“connect“為”true“,函數(shù)塊自動連接MQTT服務(wù)器;bd723ef4-2fb0-11ed-9ade-dac502259ad0.png【注意】阿里云不支持20s的心跳請求,最少配置30s,這里使用120s。
2、登錄平臺查詢MQTT狀態(tài):bd8efba2-2fb0-11ed-9ade-dac502259ad0.png

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

    關(guān)注

    5004

    文章

    13048

    瀏覽量

    460893
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8857

    瀏覽量

    84956
收藏 人收藏

    評論

    相關(guān)推薦

    RAKsmart國外大帶寬服務(wù)器怎么連接

    RAKsmart是一家提供數(shù)據(jù)中心托管服務(wù)的公司,其提供的國外大帶寬服務(wù)器因其高性能和穩(wěn)定性受到了很多用戶的青睞。如果您正在使用RAKsmart的大帶寬服務(wù)器,了解如何連接和管理您的
    的頭像 發(fā)表于 10-22 09:35 ?45次閱讀

    使用SDK中的MQTT連接服務(wù)器,導(dǎo)致mqtt永遠(yuǎn)斷開,請問是什么原因?

    使用SDK中的MQTT連接服務(wù)器,由于wifi信號不好會經(jīng)常出現(xiàn)斷網(wǎng)重新連接的情況,重連次數(shù)多了以后MQTT_Connect
    發(fā)表于 07-19 14:37

    PLC連接串口服務(wù)器RS485轉(zhuǎn)以太網(wǎng)步驟

    連接RS485端口 :使用適當(dāng)?shù)碾娎|將PLC的RS485端口連接到串口服務(wù)器的RS485端口。 連接以太網(wǎng) :使用以太網(wǎng)線纜將串口
    的頭像 發(fā)表于 07-18 09:11 ?1307次閱讀
    <b class='flag-5'>PLC</b><b class='flag-5'>連接</b>串口<b class='flag-5'>服務(wù)器</b>RS485轉(zhuǎn)以太網(wǎng)步驟

    MQTT啟動太慢的原因?

    我發(fā)現(xiàn)MQTT啟動太慢:從調(diào)用esp_mqtt_client_start()函數(shù),到返回連接成功,這個過程耗時7秒鐘左右。我讓服務(wù)器端工程師
    發(fā)表于 06-14 07:46

    NB81如何通過MQTT對接EMQX服務(wù)器?

    NB81如何通過MQTT對接EMQX服務(wù)器,有對接流程的參考文檔么
    發(fā)表于 06-04 06:02

    美國硅谷云服務(wù)器的網(wǎng)絡(luò)連接速度如何?

     美國硅谷云服務(wù)器的網(wǎng)絡(luò)連接速度如何?Rak部落小編為您整理發(fā)布美國硅谷云服務(wù)器的網(wǎng)絡(luò)連接速度。
    的頭像 發(fā)表于 04-22 09:56 ?336次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器硬盤燈顯示紅色,服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例

    一臺服務(wù)器中有一組由多硬盤組建的raid陣列,在運(yùn)行過程中服務(wù)器突然崩潰,管理員檢查服務(wù)器發(fā)現(xiàn)該服務(wù)器raid陣列中有兩
    的頭像 發(fā)表于 03-15 11:17 ?420次閱讀
    <b class='flag-5'>服務(wù)器</b>數(shù)據(jù)恢復(fù)—<b class='flag-5'>服務(wù)器</b>硬盤燈顯示紅色,<b class='flag-5'>服務(wù)器</b>崩潰的數(shù)據(jù)恢復(fù)案例

    服務(wù)器連接應(yīng)用解決方案

    C4201系列線對板連接器服務(wù)器連接應(yīng)用--C4201系列線對板連接器,防震、防塵、防脫,電源及信號傳輸高效穩(wěn)定。服務(wù)器是一種專門的計(jì)算機(jī)
    的頭像 發(fā)表于 02-19 12:38 ?209次閱讀
    <b class='flag-5'>服務(wù)器</b><b class='flag-5'>連接</b>應(yīng)用解決方案

    服務(wù)器數(shù)據(jù)恢復(fù)-服務(wù)器raid6陣列3磁盤故障離線的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 服務(wù)器上有一組由12硬盤組建的raid6磁盤陣列,raid6陣列上層有一個lun,映射到WINDOWS系統(tǒng)上使用,WINDOWS系統(tǒng)劃分了一個GPT分區(qū)。 服務(wù)
    的頭像 發(fā)表于 12-26 11:57 ?506次閱讀

    【飛騰派4G版免費(fèi)試用】如何在飛騰開發(fā)板上安裝EMQX MQTT服務(wù)器

    EMQX 是一款大規(guī)模分布式物聯(lián)網(wǎng)接入平臺,同時作為一個高性能、可擴(kuò)展的 MQTT 消息服務(wù)器,它可以為物聯(lián)網(wǎng)(IoT)應(yīng)用提供可靠的實(shí)時消息傳輸和設(shè)備連接解決方案。通過強(qiáng)大的內(nèi)置規(guī)則引擎和數(shù)據(jù)集成
    發(fā)表于 12-26 11:16

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

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

    apollo服務(wù)器mqtt單片機(jī)怎么往上發(fā)報(bào)文?

    apollo服務(wù)器mqtt單片機(jī)怎么往上發(fā)報(bào)文
    發(fā)表于 11-03 06:00

    服務(wù)器怎么連接到設(shè)備,MQTT和TCP的通訊方式有什么不同?

    采用ESP8266進(jìn)行開發(fā),服務(wù)器怎么連接到設(shè)備的,MQTT 和TCP的通訊方式有什么不用呢
    發(fā)表于 11-02 08:34

    基于EMQX平臺自建MQTT服務(wù)器并實(shí)現(xiàn)通訊

    MQTT消息服務(wù)器,提供了穩(wěn)定可靠的消息傳輸服務(wù)。本次教程中,我們將探討如何基于EMQX平臺自建MQTT服務(wù)器,并實(shí)現(xiàn)設(shè)備之間的高效通訊。
    的頭像 發(fā)表于 10-27 08:21 ?1088次閱讀
    基于EMQX平臺自建<b class='flag-5'>MQTT</b><b class='flag-5'>服務(wù)器</b>并實(shí)現(xiàn)通訊

    串口服務(wù)器如何使用OneNET平臺MQTT服務(wù)器通訊教程 #MQTT #串口服務(wù)器 #OneNET平臺

    串口服務(wù)器
    億佰特物聯(lián)網(wǎng)應(yīng)用專家
    發(fā)布于 :2023年10月26日 15:47:36