"); //-->
在亿佰特介绍了西门子PLC如何通过函数块连接MQTT服务器和发布消息,本文为大家介绍如何通过函数与函数块实现MQTT云消息的订阅,直接切入重点。

一、飞燕物联网平台配置
这里的配置和上一篇发布的配置基本相同,唯一的不同在于将数据的读写属性修改为支持读写,其余部分根据实际情况配置不同参数,这里我已控制关照为例说明,如下图所示:

二、服务器下发数据格式分析
先从阿里云官方资料中获取Alink JSON通讯协议的格式,选择“消息通讯”选项下的“设备属性、事件、服务”;

找到“设置设备属性”展开“Topic和数据格式”的介绍;

下发数据格式如下:{"id":"123","version":"1.0","params":{"temperature":30.5},"method":"thing.service.property.set"}
对于PLC来说首先需要找到关键词“"temperature":”是否存在,若存在再将其后的数据字符串提取出来,再将该字符串转换为数据用于修改PLC变量实现控制功能;
这里查找关键词就会用到上传提到的“FIND” 在字符串中查找字符的功能块,先看官方提供的使用例程,这个功能块会将第一次找到的字符位置输出,否则输出为零。

这里我们主要使用输出的位置信息结合“LEN”(计算判断字符串长度)和“SUB”(判断字符串长度-1个字符长度)功能块(用于计算相对偏移)来定位数据点位置,在使用“DELFTE”功能块删除多余的无效字符,方便后续提取有效数据;

注意这里传入的需要删除的字符串数量并非“FIND”功能块输出的位置值,而是该位置值加上相对偏移,这样我们就得到了一个从有效数据开始的字符串,接下来可以利用“STRG_VAL”功能块遇到不可转换字符停止转换的特性转换为数值(JSON中数据的结束一般有‘,’与‘}’来结束该数据,字符型数据除外),还是以官方的例程说明:

刚才在飞燕平台配置的数据类型都是整数,因此需要修改为下图实列,若为浮点数还需要单独配置,方法和整形一致仅转换类型需要调整。

经过上述步骤就可以将数值型变量的值提取出来,不过上述方法不支持提取字符数据,需要提取字符型数据的可以参照该方法实现,字符型数据就需要判断数据的长度在通过”MID”功能块提取,字符串的结束字符为‘"’,通过“FIND”功能块便能或者字符长度。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
谈PLC编程之前 先聊一下Ladder logic语言
灵活、高精度、低漂移的PLC/DCS模拟输出模块 (CN0204)
西门子200smartPLC定时器怎么用
基于 LabVIEW 的虚拟轧机系统
上海猎头职位:应用工程师AE(电表)
三菱FX系列PLC教程 5 —— 可编程控制器的分类和应用
三洋 PLC-XU9000C 投影机拆解清洗【精华】(二)
恒压供水系统PID控制器的设计及PLC实现
三洋 PLC-XU9000C 投影机拆解清洗【精华】(一)
灵活、高精度、低漂移的PLC/DCS模拟输出模块 (CN0202)
在PLC中使用固态隔离器时,设计注意事项是什么?
逻辑与可编程控制系统
现代可编程序控制器原理与应用(书)
意法半导体 x Gridspertise:推动智能电表革命
大联大友尚集团推出基于ST产品的工业PLC方案
闪联与HD-PLC联盟签约 技术互补推助3C融合
十几年前的PLC拆解,看起来相当过瘾!
近百家PLC厂商亮相工博会,虚拟PLC成AI落地新引擎
如何更好对微控制器和输出外设进行电气隔离
05 三菱FX系列PLC报价
可编程控制器的PID调节在电厂控制系统的应用
PLC控制电动机正反转电路
机器人安全用例与实施:护航未来安全
仅需使用两个模拟器件的灵活的PLC/DCS模拟输出模块 (CN0203)
三菱FX系列PLC教程 3 —— 可编程控制器的基本功能
三菱FX系列PLC教程 1 —— 可编程控制器的历史
三菱FX系列PLC教程 2 —— 可编程控制器的发展趋势
PLC编程实例如何使用一个定时器实现这个功能
三菱FX系列PLC教程 4 —— 可编程控制器的特点
霍尔接近开关用于数控机床PLC的电路