使用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实现数据库。

相关推荐
一碗白开水一2 分钟前
Day 5 · 弹性 | 微观
java·前端·数据库
迪飞特科技2 分钟前
大模型接入业务系统:API、本地部署、RAG、智能体四种路线怎么选
java·数据库·人工智能·知识图谱·deepseek·本地化大模型
星轨zb5 分钟前
[专题5]支付发放物品的一致性保障:事务、幂等与状态流转
数据库·后端·mongodb·支付架构学习
保密资质顾问说11 分钟前
保密培训三大误区纠正:从形式主义到持续合规
数据库
泡海椒15 分钟前
JQuick-SQL GROUP BY 聚合:COUNT、SUM、AVG、MIN 与 MAX
数据库·sql
Flynn Liang19 分钟前
5分钟跑通MQTT:EMQX Docker部署+MQTTX联调(2026最新版,含踩坑)
物联网·mqtt·docker·iot·emqx
小冯不疯21 分钟前
销售订单同步实战:从聚水潭到金蝶云星空的线上出库单落地
大数据·数据库
qq_4017004132 分钟前
Qt 实时大数据量存储:自己动手实现 TDMS 读写
数据库·qt
Leon-Ning Liu44 分钟前
Oracle参数对比脚本分享:对比 SPFILE 参数与内存参数差异,支持 11g 到 19c
数据库·oracle
涛思数据(TDengine)1 小时前
TDengine TSDB 3.4.3.3 上线:流计算分层闭环、虚拟表跨层引用,查询关联一次写完
数据库·人工智能·数据分析·时序数据库·tdengine·工业