
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完成一个具体项目的过程,非常详细,如下:
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实现数据库。