跳转到内容

配置文件模板

全部配置文件下载:配置文件模板

下载:AOE文件配置模板

用途:定义PLCC核心控制逻辑的AOE网络,包含网络触发、变量声明、事件节点、动作边四个部分。

文件结构:单Sheet,按行分为4个区块,区块之间空1行。

区块1:AOE网络定义(表头位于第1行)

Section titled “区块1:AOE网络定义(表头位于第1行)”
列序列名类型是否必填说明
1AOE ID<u64>是AOE网络唯一标识,必须从 65536 后开始编号
2AOE是否启用<Bool>是TRUE / FALSE
3AOE 名称<String>是自定义AOE功能名
4触发类型<Enum>是可选值见下方「触发类型枚举表」
5触发参数<String/u64>条件必填格式见下方「触发参数规则表」
6变量定义<String>否格式:变量名:表达式;变量名2:表达式2;
枚举值中文名称说明
SimpleRepeat简单重复驱动按设定时间间隔周期性触发AOE网络
TimeDrive时间驱动在 Cron 表达式指定的时间点触发
EventDrive事件驱动默认方式,由AOE首节点的事件条件触发
EventTimeMix事件和时间混合驱动满足事件条件 或 到达设定时间,均可触发
EventRepeatMix事件和周期混合驱动满足事件条件 或 到达周期间隔,均可触发
触发类型参数类型示例说明
SimpleRepeat<u64> 毫秒数1000每1000ms触发一次
TimeDriveCron 表达式(6位)0 0 12 * * ?每天12:00触发
EventDrive留空(空)无需参数
EventTimeMixCron 表达式0 30 8 * * ?与时间驱动相同
EventRepeatMix<u64> 毫秒数5000与简单重复相同

区块2:AOE变量定义(表头位于第4行)

Section titled “区块2:AOE变量定义(表头位于第4行)”
列序列名类型是否必填说明
1AOE ID<u64>是关联「AOE网络定义」中的AOE ID,多个AOE共享变量用分号分隔,如 65550;65551
2变量定义<String>是格式:变量名:表达式;变量名2:表达式2;;仅需初始值的变量直接写在区块1的「变量定义」列即可
写法含义
&测点号 或 _测点号取当前测点值(如 &100001 或 pv_voltage)
&测点号_err当前测点值 与 上一次云端发布值 之差
&测点号_t当前测点采集时间(单位 ms)
&测点号_dt当前采集时间 与 上一次云端发布时间 之差(单位 ms)
&测点号_ddt测点值变化率 = (当前值 - 上次发布值) / (当前时间 - 上次发布时间),分母单位为秒

列序列名类型是否必填说明
1AOE ID<u64>是关联「AOE网络定义」中的AOE ID
2节点ID<u64>是同一AOE内唯一,从1开始递增
3节点名称<String>是节点的语义描述
4类型<Enum>是可选值:Condition / Switch / Switch2
5超时时间(ms)(ms)<u64>是表达式在该时间内持续为真才触发节点;事件触发的AOE中尾节点不能设为0
6表达式<Expr>条件必填Condition/Switch 节点必填;Switch2 节点无需表达式
类型名称说明
Condition条件节点超时时间内表达式为真,则节点事件被触发,该节点发出的所有动作边并行执行
Switch分支节点有两条分支:表达式为真时执行第1条边,为假或超时时执行第2条边;若作为AOE首节点则直接触发判断
Switch2分支节点2节点自身无需表达式,以指向本节点的动作执行结果为判断依据:全部成功→执行第1条边,否则→执行第2条边

区块4:AOE动作定义 / 边声明(起始行 = 区块3结束行 + 2)

Section titled “区块4:AOE动作定义 / 边声明(起始行 = 区块3结束行 + 2)”
列序列名类型是否必填说明
1AOE ID<u64>是关联「AOE网络定义」中的AOE ID
2首尾节点<u64>;<u64>是格式:<尾节点ID>;<首节点ID>,方向为 尾节点→首节点(AOE 边的方向)
3动作名称<String>是动作的语义描述
4失败模式<Enum>是详见下方「失败模式表」
5类型<Enum>是详见下方「动作类型完整表」
6动作参数1<String>条件必填根据「类型」不同含义不同
7动作参数2<String>条件必填根据「类型」不同含义不同
枚举值名称行为
Default默认尝试重新执行失败的动作
Ignore忽略忽略本次失败,不影响其他动作,后续节点正常进入判断
StopFailed停止受影响停止受到影响的动作;动作失败时,后续节点不会进入判断
StopAll停止全部停止整个AOE网络的执行;动作失败时,后续节点不会进入判断,且AOE整体退出
类型枚举名称动作参数1动作参数2说明
None无动作(留空)(留空)不执行任何操作,仅做节点间的逻辑连接
SetPoints / SET_POINTS置点变量名/测点名:表达式; (数字量/离散量)变量名/测点名:表达式; (模拟量/浮点量)对测点或变量赋值;参数1用于离散型,参数2用于浮点型
Set_Points2向量置点[变量1,变量2,...]:向量计算表达式;(数字量)同参数1但为浮点量支持向量运算(+、-、*)的置点
SET_POINTS_WITH_CHECK带检查置点同 SetPoints同 SetPoints置点后等待测点实际值与指令一致才触发下一节点(整型全等,浮点差 < 1e-6)
SET_POINTS_WITH_CHECK2向量带检查置点同 Set_Points2同 Set_Points2向量版的带检查置点
Solve线性方程组求解方程组(每行一个方程,以;结尾)+ 最后一行写变量声明 x1,x2,x3(留空)求解 Ax = b 形式的线性方程组
NLSOLVE非线性方程组求解方程组 + 变量声明(可带初值 x1:1.0)max_iter:50; tol:1e-6(可选)求解非线性方程组;参数2为求解器配置
MILP稀疏混合整数线性规划目标函数 max/min(...) + 约束条件(bool表达式) + 变量声明 x1:1,x2:3maxIt:500; primalT:1e-6(可选)稀疏矩阵形式的混合整数规划
SimpleMilp稠密混合整数线性规划同 MILP同 MILP稠密矩阵形式的混合整数规划
NLP非线性规划目标函数 + 约束条件(带上下限 表达式:[下限/上限]) + 变量声明 x1:[0/10/5]max_iter:50; tol:1e-6(可选)非线性规划求解

下载:测点文件配置模板

用途:定义系统中所有测点(采集点 + 计算点)的完整属性,测点文件是通信配置与 AOE 控制策略之间的桥梁。

文件结构:单 Sheet,表头位于第1行,每行定义一个测点。

完整列结构(共 21 列,按顺序)

Section titled “完整列结构(共 21 列,按顺序)”
列序列名类型是否必填默认值说明
1序号<u64>是从1递增配置表格内部标记,方便编辑,不影响程序功能
2测点号<u64>是从500001起唯一标识ID,必须从 100001 后开始编号;与通信配置文件中的点号一一对应
3名称<String>是point{N}语义描述,可含中文
4变量名<String>是同名称英文字母+数字+下划线组成,用于计算公式、AOE表达式、动作中引用
5是否离散<Bool>是FALSETRUE=开关量/整型存储(i64);FALSE=模拟量/浮点存储(f64)
6是否计算点<Bool>是FALSETRUE=计算点(值由公式得出);FALSE=采集点(通过通信采集)
7计算公式<Expr>条件必填空计算点必填;引用变量名或测点号,如 &100001 * 2 - 1 或 pv_voltage * sqrt(3)
8变换公式<Expr>否空采集点可选;对设备原始数据做变换,如 raw_val * 0.1
9逆变换公式<Expr>否空采集点可选;遥控逆变换,如 target / 0.1
10变化公式<Expr>否空判断是否上传云端:计算结果>0时本次采集需要上传
11判零公式<Expr>否空消除零飘,变量只能是该测点本身,如 abs(&测点) < 0.01
12单位<String>否空物理量单位(如 V、A、kW、%、℃)
13上限值<Float>否99999999坏数据辨识:采集值 > 上限则抛弃
14下限值<Float>否-99999999坏数据辨识:采集值 < 下限则抛弃
15告警判据1<Expr>否空告警级别1触发条件,如 pv_voltage > 420;结果>0触发告警
16告警判据2<Expr>否空告警级别2触发条件,格式同上
17是否实时点<Bool>是FALSETRUE=每次采集均发布到云端(变化公式失效)
18是否SOE<Bool>是FALSETRUE=记录事件顺序(Sequence Of Event)
19默认值<Float/Bool>否0测点的初始值(AOE启动时使用)
20Tags<String>否空自定义标签,逗号分隔
21Description<String>否空备注说明
属性采集点(是否计算点=FALSE)计算点(是否计算点=TRUE)
计算公式不生效必须填写
变换公式可选,生效不生效
逆变换公式可选,生效不生效
变化公式可选,生效可选,生效
判零公式可选,生效不生效
是否SOE可选,生效不生效

3、ModBus TCP 通道文件(服务端 tcp-mbd / 客户端 tcp-mbc)

Section titled “3、ModBus TCP 通道文件(服务端 tcp-mbd / 客户端 tcp-mbc)”

服务端下载:tcp-mbd-transport-example.xlsx 客户端下载:tcp-mbc-transport-example.xlsx

用途:定义 Modbus TCP 通信的通道参数、连接参数、测点寄存器映射。

文件结构:Builder 左右三栏布局(不是按行分区),单 Sheet。第 1 行同时是三栏的”标签对齐行”:

A-B 列:通道级参数(键值对,竖排) D-E 列:连接级参数(键值对,竖排) F-L 列:测点寄存器映射表(标准表格,第1行为表头,第2行起为数据)

位置tcp-mbd 服务端tcp-mbc 客户端
文件名前缀tcp-mbdtcp-mbc
A-B 列第3行服务端口服务端IP
A-B 列第4行(空)服务端端口
D3-D4 字段客户端IP / 客户端端口slave id / 通信协议(提前2行)
D10 字段名超时(ms)(单值)超时;最小间隔(选填)(ms)(分号分隔如 1000;30)
D12 字段无写功能码(coil;holding)(选填)(如 2;16)
D-E 列总行数13 行12 行

A-B 列:通道级参数(左栏,键值对竖排)

Section titled “A-B 列:通道级参数(左栏,键值对竖排)”
行A列(字段名)B列(值)类型必填说明
1通道名称自定义<String>是可含中文
2连接个数正整数<u64>是TCP 服务端建立的通道数量
3服务端口正整数<u64>是1–65535,未占用端口
行A列(字段名)B列(值)类型必填说明
1通道名称自定义<String>是可含中文
2连接个数正整数<u64>是TCP 客户端的连接数量
3服务端IPIPv4 地址<String>是如 192.168.1.100
4服务端端口正整数<u64>是1–65535

D-E 列:连接级参数(右栏,键值对竖排)

Section titled “D-E 列:连接级参数(右栏,键值对竖排)”
行D列(字段名)E列(值)类型必填说明
1连接名称自定义<String>是可含中文
2测点个数正整数<u64>是必须与 F-L 列的数据行数一致
3客户端IPIPv4 地址<String>是如 127.0.0.1
4客户端端口正整数<u64>是1–65535
5slave id正整数<u64>是Modbus 从站地址,常用 1–247
6通信协议XA 或 ENCAP<Enum>是XA=Modbus TCP/IP;ENCAP=Modbus RTU Over TCP/IP
7一次读寄存器数上限正整数<u64>是单次读取寄存器的最大数量,常用 125
8一次读开关数上限正整数<u64>是单次读取离散量的最大数量,常用 2000
9一次写寄存器数上限正整数<u64>是单次写入寄存器的最大数量,常用 120
10一次写开关数上限正整数<u64>是单次写入离散量的最大数量,常用 1968
11轮询周期(ms)正整数<u64>是毫秒
12超时(ms)正整数<u64>是毫秒
13通道状态测点号正整数<u64>否对应测点文件中的测点号;没有专用状态点时可留空
行D列(字段名)E列(值)类型必填说明
1连接名称自定义<String>是可含中文
2测点个数正整数<u64>是必须与 F-L 列的数据行数一致
3slave id正整数<u64>是Modbus 从站地址,常用 1–247
4通信协议XA 或 ENCAP<Enum>是同服务端
5一次读寄存器数上限正整数<u64>是常用 125
6一次读开关数上限正整数<u64>是常用 2000
7一次写寄存器数上限正整数<u64>是常用 120
8一次写开关数上限正整数<u64>是常用 1968
9轮询周期(ms)正整数<u64>是毫秒
10超时;最小间隔(选填)(ms)正整数<u64>;<u64>是格式:超时;最小间隔,如 1000;30;最小间隔可留空
11通道状态测点号正整数<u64>否同服务端
12写功能码(coil;holding)(选填)如 2;16<String>否指定 coil 写功能码和 holding 写功能码;只设一个可写 ;16;多个连接未设置时沿用前值

F-L 列:测点寄存器映射表(标准表格)

Section titled “F-L 列:测点寄存器映射表(标准表格)”

表头位置:第 1 行,与 A-B 列、D-E 列的第一行水平对齐 数据起始行:第 2 行(直接跟在表头下,无空行)

列表头名类型是否必填说明
F序号<u64>是从 1 开始连续编号
G寄存器类型<Enum>是COILS(线圈)/ DISCRETE(离散输入)/ INPUT(输入寄存器)/ HOLDING(保持寄存器)
H起始地址<u64>是Modbus 寄存器地址偏移,正整数
I数据类型<Enum>是见下方「Modbus 数据类型对照表」
J新请求标志<Bool>是TRUE / FALSE
K轮询周期<u64>是毫秒
L点号<u64>是对应测点文件中的测点号,完成对接
  • 同一个连接内,不同寄存器类型不能使用相同起始地址,否则 LCC 报错
  • COILS 必须关联离散测点(测点文件中”是否离散”为 TRUE)
  • 起始地址需根据数据类型占用字节数正确递增(见数据类型表)
枚举值字节数说明
Binary1 bit开关量(COILS / DISCRETE)
OneByteIntUnsignedUpper1无符号上半字节
OneByteIntUnsignedLower1无符号下半字节
TwoByteIntUnsigned2无符号16位整型
TwoByteIntSigned2有符号16位整型
FourByteIntUnsigned4无符号32位整型
FourByteIntSigned4有符号32位整型
FourByteFloat4单精度浮点
EightByteIntUnsigned8无符号64位整型
EightByteIntSigned8有符号64位整型
EightByteFloat8双精度浮点

每个数据类型均支持 Swapped 后缀控制字节序(如 TwoByteIntUnsignedSwapped)。