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

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

【必學技能】自己動手——基于C#實現(xiàn)手機APP遠程訪問西門子PLC(附源碼)

2020-06-16 15:47 作者:新閣教育  | 我要投稿


公眾號:thinger_swj

??? 對于文中涉及的MQTT服務(wù)器及MQTT客戶端的源碼,大家可以點擊上方公眾號,關(guān)注后發(fā)送關(guān)鍵詞:MQTT通信源碼。

隨著5G時代的來臨,物聯(lián)網(wǎng)開始加速盛行,慢慢地融入到我們的生活當中,萬物互聯(lián)互通將不再只是紙上談兵。

現(xiàn)在各大物聯(lián)網(wǎng)平臺層出不窮,看似離我們很遙遠,其實只要我們敢于去研究,敢于去發(fā)現(xiàn),萬物互聯(lián),近在咫尺之間。

今天給大家介紹一下,作為一個普通的.NET開發(fā)人員,如何不借助第三方的物聯(lián)網(wǎng)平臺,搭建一個簡單實用的物聯(lián)網(wǎng)平臺框架。

一、物聯(lián)網(wǎng)框架

此物聯(lián)網(wǎng)框架是在上位機框架的基礎(chǔ)上,結(jié)合物聯(lián)網(wǎng)通信協(xié)議MQTT實現(xiàn)。上位機本身就集成有采集、歸檔及日志等功能,只需要在這個基礎(chǔ)上,連接MQTT服務(wù)器之后,并向指定的主題Topic中發(fā)布相關(guān)的數(shù)據(jù),相關(guān)的WEB、APP只需要訂閱相應(yīng)的主題,即可獲取到數(shù)據(jù)。

整體軟件框架如下圖示所示:

圖表 1 整體軟件框架實現(xiàn)

????從上圖可以看出,整體軟件基于MQTT協(xié)議搭建,依據(jù)此軟件框架搭建的MQTT物聯(lián)網(wǎng)拓撲圖如下圖所示:

圖表 2 MQTT物聯(lián)網(wǎng)平臺拓撲圖


二、框架實現(xiàn)

為了測試方便,這里選擇西門子S7-1200 PLC作為下位機,采用西門子S7進行通信,上位機先與PLC進行通信,同時連接MQTT服務(wù)器,并向指定主題發(fā)布數(shù)據(jù)。

(1)首先創(chuàng)建一個新的Windows窗體應(yīng)用,從NuGet上下載xktComm.dll:

圖表 3 xktComm下載


(2)開發(fā)UI界面開發(fā),按照功能設(shè)計如下圖所示:

圖表 4 MQTT客戶端UI界面


(3)UI界面設(shè)計完成之后,進行代碼的編寫,這里使用開源的mqtt庫mqttnet,仍然通過NuGet下載安裝一下,這里選擇版本為2.8.2,選擇不同的版本,使用上會有一些區(qū)別:

圖表 5 MQTTnet下載


(4)先實現(xiàn)基本的MQTT連接服務(wù)器及斷開連接:


(5)基于委托創(chuàng)建日志處理對象及方法體:

?

(6)確定并創(chuàng)建通信變量實體類及集合:

???? 實際開發(fā)過程中,這里是基于CMSPro實現(xiàn)的,本案例用于測試,以讀取以下四個變量為例(實際應(yīng)用時變量數(shù)據(jù)及結(jié)構(gòu)可能要比這復(fù)雜),如下圖所示:


表格 1通信變量列表

????按照這個結(jié)構(gòu),創(chuàng)建一個實體類,如下圖所示:

????(7)Nuget添加Newtonsoft.Json,引入JSON轉(zhuǎn)換類,便于后續(xù)將對象轉(zhuǎn)換成JSON格式字符串進行傳輸。

????(8)基于xktComm.dll與西門子PLC之間建立連接:

????(9)通過定時器定時向指定的主題發(fā)布實時數(shù)據(jù):

????(10)在云服務(wù)器端開啟MQTT服務(wù)器:

圖表 6 MQTT服務(wù)器開啟


????(11)運行MQTT客戶端,連接服務(wù)器,并點擊開始定時:

圖表 7 運行MQTT客戶端


????(12)連接成功后,可以觀察到MQTT服務(wù)器中收到了來自MQTT客戶端發(fā)來的信息:

圖表 8 MQTT服務(wù)器接收消息


三、框架應(yīng)用

????當數(shù)據(jù)已經(jīng)上傳到MQTT服務(wù)器后,那么如果需要獲取這些數(shù)據(jù),只需要開發(fā)一個MQTT,并訂閱那個主題,這樣,MQTT服務(wù)器就會自動將相關(guān)的信息推送到客戶端軟件中,可以先用MQTT.fx測試一下,MQTT.fx是一款基于Eclipse Paho,使用Java語言編寫的MQTT客戶端工具,支持通過Topic訂閱和發(fā)布消息。打開MQTT.fx,輸入正確的服務(wù)器地址、端口號、用戶及密碼,并訂閱主題thinger后,就可以實時收到服務(wù)器發(fā)送過來的數(shù)據(jù)了,如下圖所示:

圖表 9 MQTT.fx應(yīng)用


????與此同時,我們也可以通過開發(fā)相關(guān)的WEB網(wǎng)頁或者APP來獲取數(shù)據(jù),下面是一個簡易APP的數(shù)據(jù)展示:

圖表 10 TIA博途數(shù)據(jù)
圖表 11 APP數(shù)據(jù)展示


四、整體總結(jié)

????本文主要是基于MQTT協(xié)議實現(xiàn)了本地PLC控制器數(shù)據(jù)上傳的過程。基于阿里云服務(wù)器,你可以在任意地方訪問到本地PLC的實時數(shù)據(jù),實現(xiàn)數(shù)據(jù)的遠程上傳。本文主要針對的是電氣和工控人員,物聯(lián)網(wǎng)必然是未來發(fā)展的趨勢,建議所有的PLC工程師及電氣工程師,都應(yīng)該掌握一門編程語言,也許現(xiàn)在用不到,但未來總會用得到。

????對于文中涉及的MQTT服務(wù)器及MQTT客戶端的源碼,大家可以點擊上方公眾號,關(guān)注后發(fā)送關(guān)鍵詞:MQTT通信源碼。



歡迎關(guān)注抖音




【必學技能】自己動手——基于C#實現(xiàn)手機APP遠程訪問西門子PLC(附源碼)的評論 (共 條)

分享到微博請遵守國家法律
永兴县| 桐乡市| 伊金霍洛旗| 新竹市| 马公市| 防城港市| 固原市| 安顺市| 渝北区| 阳东县| 县级市| 西盟| 英德市| 利津县| 噶尔县| 义马市| 嘉祥县| 永安市| 辽宁省| 当雄县| 偃师市| 竹溪县| 界首市| 古交市| 北碚区| 大洼县| 犍为县| 满城县| 邹城市| 甘南县| 寻甸| 泰来县| 冀州市| 广饶县| 五大连池市| 山阴县| 余干县| 崇信县| 大埔区| 武安市| 调兵山市|