PLC程序分析和数据下发测试教程
  lUXbf8VVGMZE 2023年11月13日 10 0

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


PLC程序分析

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


先定义输入变量:

如下:

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程序分析和数据下发测试教程_数据_02

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

PLC程序分析和数据下发测试教程_字段_03

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

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

PLC程序分析和数据下发测试教程_字符串_04

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

PLC程序分析和数据下发测试教程_字段_05


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

luminance:光照强度;

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

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

PLC程序分析和数据下发测试教程_字符串_06


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

PLC程序分析和数据下发测试教程_字符串_07

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

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


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

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

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

PLC程序分析和数据下发测试教程_字段_09

再调用解析函数块;

PLC程序分析和数据下发测试教程_字符串_10


四、数据下发测试

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

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


PLC成功解析数据;

PLC程序分析和数据下发测试教程_字段_12

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
lUXbf8VVGMZE
最新推荐 更多