PLC程序分析和数据下发测试教程

电子说

1.3w人已加入

描述

在亿佰特介绍了西门子PLC如何通过函数块连接MQTT服务器和发布消息,前文为大家介绍如何通过函数与函数块实现MQTT云消息的订阅,介绍到了MQTT服务器下发数据分析部分,本文接着讲述PLC程序分析和数据下发测试。
 

PLC程序分析

每个变量的提取过程都是类似的,我们可以将其封装为函数块方便多次调用,先创建FC函数块,选择LAD语言,如下图:

plc

先定义输入变量:

如下:

main_str:待解析字符串,云平台下发的字符串;

Compare_str:解析字段,需要从云平台提取的有效数据标签;

outdata_type:数据类型,解析后输出的数据类型,0(Uint)、1(Real)、2(String);

输出变量如下:

DONE:输出解析状态,非零有效,为零代表输入的“main_str”不包含“Compare_str”解析失败;

valid_value_int:解析的整形结果,非整形该输出无效;

valid_value_real:解析的浮点数结果,非浮点该输出无效;

valid_str:输出的字符串,非字符串输出无效;

plc

还需要定义一些中间变量,主要用来存储转换所需要的条件和转换的中间结果,就不再赘述。

plc


 

上图为判断该输入的待解析字符串是否存在解析字段,若有输出位置信息,再将其转换为相对偏移地址用于后续有效数据提取。

plc


 

上图为不同类型数据调用不同的解析方法,上一章已经介绍过原理了,LAD编程语言不太适合这种功能的实现,使用STL语言就要简洁的多,有机会再给大家介绍。

在创建一个FB(函数块)将需要解析的字段放在一个函数块内方便后续维护,

plc


 

在飞燕平台定义如下参数:

plc

同样的也需要定义一些输出变量方便主程序将提取结果配置给对应设备,我这里只通过在线调试演示没有正式设备,输出变量定义如下:

luminance:光照强度;

luminance_set_en,是否修改,非零代表存在修改;

类似方法定义剩余的两个变量,如下图所示:

plc

先将Mqtt函数块收到的云平台下发数组转换为字符串,用于其他步骤使用;

plc


 

调用刚才创建的有效数据提取函数(get_server_srt_validdata),输入需要解析的数据和字段(“luminance”:)以及变量类型”0“;

plc

在通过变量“luminance_set_en“判断数据点是否存在修改,若存在则将提取到的有效数据输出,若不存在则不进行输出;

后面的“speed”与“DO1”采用相同的配置方法。

接下来就是在主程序中调用该函数块实现MQTT订阅消息的解析,第一步创建自动订阅功能,通过下图方法,将在请求连接后的10s自动进行订阅;

plc


 

再调用解析函数块;

plc

四、数据下发测试

进入设备详情的在线调试界面选择属性调试,方法采用设置发送下列字符串;

plc

PLC成功解析数据;

plc


 

下次为大家介绍云智能APP的制作。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分