在億佰特介紹了西門(mén)子PLC如何通過(guò)函數(shù)塊連接MQTT服務(wù)器和發(fā)布消息,前文為大家介紹如何通過(guò)函數(shù)與函數(shù)塊實(shí)現(xiàn)MQTT云消息的訂閱,介紹到了MQTT服務(wù)器下發(fā)數(shù)據(jù)分析部分,本文接著講述PLC程序分析和數(shù)據(jù)下發(fā)測(cè)試。
PLC程序分析
每個(gè)變量的提取過(guò)程都是類似的,我們可以將其封裝為函數(shù)塊方便多次調(diào)用,先創(chuàng)建FC函數(shù)塊,選擇LAD語(yǔ)言,如下圖:
先定義輸入變量:
如下:
main_str:待解析字符串,云平臺(tái)下發(fā)的字符串;
Compare_str:解析字段,需要從云平臺(tái)提取的有效數(shù)據(jù)標(biāo)簽;
outdata_type:數(shù)據(jù)類型,解析后輸出的數(shù)據(jù)類型,0(Uint)、1(Real)、2(String);
輸出變量如下:
DONE:輸出解析狀態(tài),非零有效,為零代表輸入的“main_str”不包含“Compare_str”解析失??;
valid_value_int:解析的整形結(jié)果,非整形該輸出無(wú)效;
valid_value_real:解析的浮點(diǎn)數(shù)結(jié)果,非浮點(diǎn)該輸出無(wú)效;
valid_str:輸出的字符串,非字符串輸出無(wú)效;
還需要定義一些中間變量,主要用來(lái)存儲(chǔ)轉(zhuǎn)換所需要的條件和轉(zhuǎn)換的中間結(jié)果,就不再贅述。
上圖為判斷該輸入的待解析字符串是否存在解析字段,若有輸出位置信息,再將其轉(zhuǎn)換為相對(duì)偏移地址用于后續(xù)有效數(shù)據(jù)提取。
上圖為不同類型數(shù)據(jù)調(diào)用不同的解析方法,上一章已經(jīng)介紹過(guò)原理了,LAD編程語(yǔ)言不太適合這種功能的實(shí)現(xiàn),使用STL語(yǔ)言就要簡(jiǎn)潔的多,有機(jī)會(huì)再給大家介紹。
在創(chuàng)建一個(gè)FB(函數(shù)塊)將需要解析的字段放在一個(gè)函數(shù)塊內(nèi)方便后續(xù)維護(hù),
在飛燕平臺(tái)定義如下參數(shù):
同樣的也需要定義一些輸出變量方便主程序?qū)⑻崛〗Y(jié)果配置給對(duì)應(yīng)設(shè)備,我這里只通過(guò)在線調(diào)試演示沒(méi)有正式設(shè)備,輸出變量定義如下:
luminance:光照強(qiáng)度;
luminance_set_en,是否修改,非零代表存在修改;
類似方法定義剩余的兩個(gè)變量,如下圖所示:
先將Mqtt函數(shù)塊收到的云平臺(tái)下發(fā)數(shù)組轉(zhuǎn)換為字符串,用于其他步驟使用;
調(diào)用剛才創(chuàng)建的有效數(shù)據(jù)提取函數(shù)(get_server_srt_validdata),輸入需要解析的數(shù)據(jù)和字段(“luminance”:)以及變量類型”0“;
在通過(guò)變量“luminance_set_en“判斷數(shù)據(jù)點(diǎn)是否存在修改,若存在則將提取到的有效數(shù)據(jù)輸出,若不存在則不進(jìn)行輸出;
后面的“speed”與“DO1”采用相同的配置方法。
接下來(lái)就是在主程序中調(diào)用該函數(shù)塊實(shí)現(xiàn)MQTT訂閱消息的解析,第一步創(chuàng)建自動(dòng)訂閱功能,通過(guò)下圖方法,將在請(qǐng)求連接后的10s自動(dòng)進(jìn)行訂閱;
再調(diào)用解析函數(shù)塊;
四、數(shù)據(jù)下發(fā)測(cè)試
進(jìn)入設(shè)備詳情的在線調(diào)試界面選擇屬性調(diào)試,方法采用設(shè)置發(fā)送下列字符串;
PLC成功解析數(shù)據(jù);
下次為大家介紹云智能APP的制作。
億佰特人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的官網(wǎng)http://enlgzep.cn/進(jìn)行了解,還有客服小姐姐在線答疑哦!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)-3