使用IOT-Tree消息流【标签读写】功能详细说明

IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了各种设备接入、数据组织管理、数据分享使用、消息流控制逻辑和人机交互多个方面的功能。当然,你也可以仅仅使用这个软件作为数据采集终端或边缘计算的软件。

这是IOT-Tree Server相关的系列文章,你可以参考其他文章更多了解IOT-Tree能给你带来的好处:

使用IOT-Tree Server通过MC协议连接三菱Q系列PLC

使用IOT-Tree Server连接西门子PLC S7-300/1200/1500

使用IOT-Tree Server通过PPI(RS485)连接西门子PLC S7-200

系列文章还包含IOT-Tree完成一个具体项目的过程,非常详细,如下:

机房自动化监控手把手分享给你 - 10 项目完成总结

IOT-Tree无论现场接入是哪种设备或哪种系统,最终配置组织完成之后,都形成了项目中的标签Tag。很明显,我们后续对数据的使用、处理等最基本的都应该先围绕标签进行。

而IOT-Tree对这些后续处理支持都通过消息流(MsgNet)进行,因此专门为项目中的标签提供了专门的处理节点。这些节点可以说是数据处理的基础,本文针对我们可能的数据处理需求,结合IOT-Tree提供的标签进行一个列表说明,以方便你对IOT-Tree在项目中的更好利用。

在任意一个消息流中,都可以在左边看到支持的功能节点。我们只需要展开"接入与设备"这个分类,可以看到如下标签:

我们对此进行封闭说明

1 标签数据读取

此节点允许你选择项目中的一些标签,并且为每个标签做个var命名。节点运行过程中,有消息触发此节点时,会在输出消息的负载(payload)中输出基于var名称作为成员的JSON对象,每个成员值由对应的标签提供。

这是最基本的标签读取------JSON对象转换支持。

2 标签数据写入

此节点在有输入消息触发时,会对内部选定的若干标签进行赋值操作,这些值可以是常数,也可以是输入消息中的payload成员值,也可以是流程上下文中的变量等。

3 标签读取过滤器

此节点对输入的消息不做任何处理,输入消息仅仅是一个触发运行的作用。这是通过过滤批量获取多标签数据的支持节点。

在项目数据组织中,所有的标签(Tags)都在一颗项目树中。如果我们要提取利用里面的部分数据,最简单的是以这棵树为基础,使用过滤的方式获取一颗子树,并发送到数据使用端。这也是IOT-Tree应用的典型场景。

4 标签写入过滤器

这也是批量写入多个标签节点支持

  • 写单个标签命令格

    "payload":{
    "tag":"ch1.gg1.tag11",
    "value":true,
    "cmd_ts":12312445345,"cmd_to":20000
    }

"cmd":"write_tag" 代表了单个标签写入

"cmd_ts":123124453 代表了这个指令创建时间戳

"cmd_to":20000 代表了这个指令的过期时间(毫秒),如果当前时间和创建指令的时间戳跨度超过这个过期时间,则消息不被处理

"tag":"ch1.gg1.tag11" 标签路径

"value":true 写入值

  • 写多个标签命 令格式

    "payload":{
    "cmd":"write_tags","cmd_ts":12312445345,"cmd_to":20000,
    "tags":[
    {"delay":0, "tag":"ch1.gg1.tag11","value":true},
    {"delay":2000,"tag":"ch1.gg1.tag11","value":false}
    ]
    }

"cmd":"write_tags" 代表了多个标签写入

"cmd_ts":123124453 代表了这个指令创建时间戳

"cmd_to":20000 代表了这个指令的过期时间(毫秒),如果当前时间和创建指令的时间戳跨度超过这个过期时间,则消息不被处理

"tags":[] 具体按顺序写入标签内容,每个写入标签有如下内容:

"delay":2000 写入前延迟毫秒

"tag":"ch1.gg1.tag11" 标签路径

"value":true 写入值

5 实时数据表同步

此节点专门支持项目中全部标签数据同步到关系数据库表,以支持基于传统关系数据的数据共享。

请参考:使用IOT-Tree消息流实现实时数据同步:标签实时数据--关系数据库表

6 标签变化触发器

通过选择的标签,监听标签在运行过程中更新变化,并根据一定策略产生消息输出

每个标签变化就会触发一个输出消息,每个消息payload格式如下:

复制代码
"payload": {
		"valid": true,
		"chgdt": 1752453543170,
		"tag_title": "TotalV",
		"tag_id": "r25",
		"tag_path": "dlb1.d1.eng",
		"updt": 1752462618027,
		"tag_val": 12407.9,
		"vt": "float"
	}

你可以选择监听标签只需要更新就会触发(而不考虑值是否变化)。同时,也可以选择只有在标签值变化时才会触发。

7 标签事件/报警触发器

在标签编辑界面中,可以设定是否要支持触发事件/报警,如下图:

只有设置了事件/报警的标签才会被此消息流节点选择使用。如下图:

此节点在参数配置时,会列举出项目中所有配置了事件/报警信息的标签。只需要选择需要监听的相关标签即可。

节点有3个输出端子,第一个是标签触发了事件/报警,就会产生一个消息输出;第二个是解除了这个事件/报警时输出;第三个是关系表资源关联,必须和关系数据库模块包含的数据库表资源节点配合使用------用来支持事件/报警的自动数据库表记录。

8 标签过滤存入时序数据库

这是在项目中支持对选定的标签往时序数据库中写入(记录)的支持节点。当有效性输入时,就会触发一次记录。目前支持InfluxDB实现数据库。

相关推荐
鲲志说4 小时前
电子证照系统国产化改造实践:从MongoDB到金仓数据库的平滑迁移与性能优化
大数据·数据库·mongodb·性能优化·数据库开发·数据库架构·金仓数据库
范纹杉想快点毕业4 小时前
单片机开发中的队列数据结构详解,队列数据结构在单片机软件开发中的应用详解,C语言
c语言·数据库·stm32·单片机·嵌入式硬件·mongodb·fpga开发
缘来如此095 小时前
MQTT-物联网轻量级通信
物联网
William_cl5 小时前
【连载2】 MySQL 事务原理详解
数据库·mysql
java水泥工6 小时前
师生健康信息管理系统|基于SpringBoot和Vue的师生健康信息管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
chirrupy_hamal6 小时前
PostgreSQL WAL 日志发展史 - pg7
数据库·postgresql
五颜六色的池7 小时前
my sql 常用函数及语句的执行顺序
数据库·sql
Gold Steps.7 小时前
从 “T+1” 到 “秒级”:MySQL+Flink+Doris 构建实时数据分析全链路
大数据·数据库·数据分析
花北城7 小时前
【MySQL】Oracle与MySQL,跨库数据转储
数据库·mysql·oracle