1. 数据表规范
1.1. 数据采集表
数据采集表是整个数据表的最基本也是最底层构成部分,最原始的数据采集表需要确认以下几点:
- 首先需要整理清楚原始的设备点表有哪些寄存器可用。
- 确定这些寄存器,哪些是只读,哪些是只写,哪些是读写。
- 确定对应的 KEY。
- 确定基本含义(参考含义)。
数据采集表主体部分如下:
Image - 数据采集表主体部分
1.1.1. KEY 的含义及书写规则
1.1.1.1. KEY的含义
KEY是适配器采集的一个参数,每一个参数都对应一个唯一的KEY。例如:KEY为L1_3_1对应压力,若适配器采集的数据为L1_3_2=2,则该设备的当前压力为2。即KEY代表适配器采集的参数名。
1.1.1.2. KEY的书写规则
KEY的每一个字母和数字都代表特定的含义,因此在命名KEY时需按遵循一定的规则。举例对截图中的L1_3_4096这个KEY进行解析:
前缀:L就是L1_3_4096这个KEY的前缀,目前使用的前缀仅支持L和E两种,除事件、报警、故障类参数KEY使用E做前缀外,其余都用L作为前缀。
从站:1就是L1_3_4096这个KEY代表的从站,当一个适配器接多个设备时,为避免数据冲突,这个适配器连接的多个设备会使用不同的从站进行区分。例如当A设备,从站为1时,B设备则可以使用除1以外的其它从站。以此类推。
寄存器类型:3就是L1_3_4096这个KEY代表的寄存器类型,寄存器类型与通信协议有关,不同的通信协议对应不同的寄存器类型码。例如MODBUS_RTU协议,其中对应的寄存器类型码分别为:0=读线圈、1=读输入寄存器、2=读保持寄存器、3=读输入寄存器、4=写单个线圈、5=写单个保持寄存器、6=写多个保持寄存器。因此需用户根据实际情况选用对应的寄存器类型码。在生产中MODBUS_RTU协议一般选用3这个类型码,即读输入寄存器。
寄存器地址:4096就是L1_3_4096这个KEY代表的寄存器地址,寄存器地址对应设备控制器的每一个参数地址,目前我司采用的是10进制的书写方式,因此控制器的参数地址需转化为10进制的寄存器地址。
Bit位:在参数中还存在一种特殊情况,这类参数只会上报0和1这两个数据,多出现在设备状态、事件、报警、故障这类参数中。这类参数可以直接定位到寄存器的某个bit位,寄存器为16bit,排序为0至15。例如参数KEY占用的是第3个bit,则KEY为L1_3_4096_2。
1.1.2. 参考含义
参考含义即参数的名称,也是KEY的名称。例如:压力、温度等。
1.1.3. 缺省值/单位
缺省值指设备初始值,单位即当前参数的单位。
1.1.4. 数据类型
数据类型分别为:STA(状态)、SET(设置)、WRT(只写,一般多用于控制)、FLT(故障)、ALT(报警)、 EVNT(事件)。
1.1.5. 是否为开关量
开关量指参数只上报0和1两个数据,一般应用中0代表关,1代表开。
1.1.6. 正常变动范围
正常变动范围指参数变动的最大值和最小值的区间。
1.1.7. 报文策略
报文策略指适配器采集数据的频率和方式。目前基本方式分为I(初始化上报)、C(改变上报)、定时上报三种,基本方式可单独使用也可进行混合搭配使用。例如:
- I:适配器初始化上报。
- C:参数值改变上报。
- 300:每300秒上报一次。
- IC300:初始化和改变都上报,同时没300秒上报一次。(这种混合使用方式可任意搭配)
1.1.8. 寄存器地址
详情参考2.1.2章节即可。
1.1.9. 偏移量
偏移量指控制器采集的部分值与实际值存在一定偏差,而适配器可以通过LUA程序对偏移量进行修正。例如:
- 设备排气温度真实值为80,采集值为130,则偏移量为-50。
- 设备电压真实值为220,采集值为2200,则偏移量为x0.1。
因此,偏移量就是对采集的偏移值做一些简单的加减乘除运算修正参数的上报值。
1.1.10. 寄存器数值类型
目前适配器支持的数值类型有float、int、bool、char四种。
1.1.11. 附加报文
Image - 附加报文
附加报文指适配器上报正常的报文外,还会产生额外的报文,例如:截图中原始KEY是L1_3_4216_3,含义为设备状态;在设备上报这个状态时,该状态本身会产生一个该状态的事件,这时就会产生一个附加报文参数E1_3_4216_3生成一个事件消息。这类额外报文主要出现在事件、报警、故障参数中。这些参数即可以按正常的运行参数显示,也会产生一条相关的附加报文用于生成消息。
附加报文填写规则如下:
- 是否产生附加报文:有产生填是,相反填否。填否时,后续的KEY、值、统一代码、备注则无需填写。
- KEY:将原始KEY的前缀改为E即可。
- 值:将该KEY能上报的所有值写出即可,这类能产生附加报文的参数其值都是确定的,例如设备的状态、报警、故障码等。
统一代码:统一代码指MixIOT系统统一定义识别的代码,每一个代码都对应一个唯一的事件、报警、故障值等。例如:E1_3_4216_3这个KEY的事件值是0和1,统一代码可以写为1630和1631。统一代码除了为阿拉伯数字和不可重复外,无其它书写规则。用户可自定义。
备注:将附加报文值对应的每个含义写上即可。如截图中“E=0停止 ; E=1运行”这种格式书写即可。(“Z=0停止 , Z=1运行”这行备注在讲数据采集表中的FV时再做解释)
1.1.12. 读写
读写是指适配器对采集参数权限设定,分为R(读)和W(写)和RW(可读可写),类似于Excel文档的权限设定。SET(设置)类参数一般是RW,控制类参数一般为W,其余参数一般为R。以上设定不固定,可根据实际生产需求进行设定。
1.1.13. 反向控制
Image - 反向控制
反向控制是指用户可对设备进行异地控制,即远程控制。
反向控制填写规则如下:
- 是否允许反向控制:该参数需要进行反向控制时,填是即可;相反填否。
- 反向控制标识:无需反向控制的参数无需填写;无固定值的的设定类参数也无需填写,例如温度、转速等这些设定类的参数;有固定值的状态类参数需填写每个值对应的含义,如截图所示。
1.1.14. Dashboard
Dashboard为显示板,此处可不填写。
1.1.15. 适配器ID
适配器ID即可以是适配器的真实标识,也可以是适配器标识进行宏替换后的一组标识,
例如一台设备(注:本文档中的设备即指单个设备,也指多个设备组成的一个大设备,即设备组)连接有三个适配器,标识和连接顺序分别为A1001、A1002、A1003,则经过宏替换后的适配器ID分别为$AprusID-1、$AprusID-2、$AprusID-3
;若设备连接适配器的顺序为A1003、A1002、A1001时,其适配器ID依然是$AprusID-1、$AprusID-2、$AprusID-3
,只是这时$AprusID-1
对应的适配器是A1003,而不再是A1001,依此类推。而表中选择填写哪个适配ID则需要判定设备与适配器的连接方式和当前参数归属于哪个适配器即可。这时则需要参考数据表中的连接方式表,
Image - 连接方式表
- 连接方式:连接方式分为三种,分别为单适配器对单设备、单适配器对多设备、多适配器对单设备。
- 单适配器对单设备:指一个适配器连接一个设备,这时适配器ID全部填写为
$AprusID-1
即可。 - 单适配器对多设备:指一个适配器对应多个设备,这时适配器ID全部填写为
$AprusID-1
即可。 - 多适配器对单设备:指多个适配器连接一个设备,前文已注明这里的设备可看成是设备组组成的一个大设备,因此这里也包含了多适配器对多设备。那么在确认适配器ID时只需确认每个适配器采集的是哪个小设备的参数即可,在连接方式表中将这种连接方式进行规定,然后在数据采集表的适配器ID项填上对应的适配器ID即可。这时需特别注意,在添加设备关联适配器时也需按照这种连接方式进行关联,如
$AprusID-1
需第一个关联,$AprusID-2
需第二个关联,依次类推。
1.1.16. FV(变量)
Image - FV变量
变量是KEY的别名,是将适配器上报的KEY通过mapping(映射表)转化为系统可识别的变量,变量除了不可重复和以下一种特殊情况外,无其它书写规则,但方便统一,建议使用大写字母+数字的组合。
特殊情况:
- Z:Z统一作为设备状态专用变量,其它参数不可使用,如一个设备中存在多个设备状态(即一个设备中包含几个小设备的状态),可在Z后面加上数字区分即可,例如: Z1、Z2、Z3…以此类推。只是前缀
Z
不可变。
1.1.17. 标签
标签只中文标签和英文标签,中文标签直接使用参考含义中的名称即可,英文标签将中文标签翻译成英文即可。
1.2. 连接方式
连接方式在本文档2.15章节中已做详细讲解,这里就不再重复讲解。
1.3. 映射表
映射表的作用主要将适配器上报的 key 映射为系统可识别的变量,并将适配器和设备的关系进行关联对应。
Image - 映射表
截图标记处除了Symbol外,其余直接从数据采集表中复制过来即可,除了原始报文KEY,还需将附加报文KEY也按此格式写出来。否则事件、报警或故障将无法产生。
1.3.1. Symbol
目前我们使用的symbol有四种,分别为
$
、@
、#
、&
,其中每个符号的使用方式如下:
$
:目前就是适配器宏替换这种使用方法。例如:$AprusID-1
@
:代表某个函数,或者计算程序。(目前还未规定写法)#
:代表外部接口,例如MixIOT系统需从其它系统直接获取数据,就直接使用#
符号和相关接口去调用。(目前还未规定写法)&
:目前用于统计和离线数据
1.4. Mapping
Mapping主要是将映射表中的信息进行组合成脚本,mapping在系统中起到一个核心的作用,之前我们说过mapping的作用。如果Mapping配置错误或遗漏,那么配置错误或遗漏的参数在系统上显示不出数据。因此学会mapping的配置至关重要。关于mapping的具体写法介绍参考MixIOT脚本规则注释(R3).pdf中2.4章节。
1.5. EFA代码表
EFA代码表是将事件、报警、故障整理成脚本的一个表,主要是配置设备消息和异常的脚本。如配置错误或遗漏,将直接影响系统事件、报警、故障记录的生成。
Image - EFA代码表
截图标记处直接从数据采集表中复制过来即可,特别需注意的是value(值)、UnifiedCode(统一代码)与中英文标签需对应正确,不可重复和出错。
1.5.1. 类型
告警数据类型分为三大类:事件(EVNT)、报警(ALT)、故障(FLT)。其中报警和故障根据报警代码不同再细分为三小类。
- ALT-A(或 FLT-A):一个 KEY 只存在一个报警(故障)代码。系统代码一般是适配器寄存地址+上报代码。设备上报配置代码时,产生报警(故障);设备上报配置外代码时,报警(故障)恢复。
- ALT-B(或 FLT-B):一个 KEY存在多个报警(故障)代码,系统代码一般是适配器寄存地址+上报代码。每次上报的报警(故障)都会进行叠加;当上报 0 时,所有报警(故障)都会恢复。 例如:设备上报 KEY=1 报警(故障)时,挂板会显示 1这个报警(故障);再上报 KEY=2 时,挂板会显示 1 和 2 两个报警(故障);上报KEY=0 时,该 KEY 的所有报 警(故障)恢复,挂板不再显示。
- ALT-C(或 FLT-C):一个 KEY 存在多个报警(故障)代码,系统代码一般是适配器寄存地址+上报代码。设备上报配置代码时,产生报警(故障)并会将之前产生产生的报警(故障)进行覆盖;设备上报配置外代码时,所有报警(故障)恢复。例如:设备上报 KEY=1 报警(故障)时,挂板会显示 1 这个报警(故障);再上报KEY=2 时,挂板会显示 2 这个报警(故障), 1 的报警(故障)被覆盖掉;上报KEY=0 时,该 KEY 的所有报警(故障)恢复,挂板不再显示。
注意:一个适配器 KEY 有且只能对应一种类型。
1.5.2. Codebase_Script
CodebaseScript主要是将EFA代码表中的信息进行组合成脚本,关于Codebase_Script的具体写方法介绍参考_MixIOT脚本规则注释(R3).pdf中2.2章节。
1.6. 反向控制
反向控制是将需要远程控制的设备参数整理成表,将反向控制的脚本写入系统中后,可实现对设备的异地操作。
Image - 反向控制
同上,截图标记处直接从数据采集表中复制过来即可。
1.6.1. Action ID
Action 现使用的有:Reboot(重启)、Upgrate(升级更新)、Control(控制)。使用场景如下:
- Reboot(重启):适配器重启操作。(系统默认,无需写脚本)
- Upgrate(升级更新):适配器脚本(LUA、MCU、REMOSU)升级。 (系统默认,无需写脚本)
- Control(控制):设备状态参数控制和设定。这种在脚本中可写具体的动作名称,系统中 PUBLISH KEEPER 收到的下发请求后都会转化为“Control”。
1.6.2. QoS
我司 MQTT QoS 含义主要分四个等级,四个等级分别对应0、1、2、3。其中每个等级含义分别为:
- QoS 0: “至多一次”,接收者不会应答消息,发送者也不会保存和重发消息。这种模式常被称作“发射后不管”,会发生消息丢失或重复。
- QoS 1: “至少一次”,当使用级别 1 时,它可以保证消息至少被送达到接收者一次,但也可能被送达到多次。
- QoS 2: “只有一次”,可以保证每条消息只被接收一次。(2为我司常用等级)
- QoS 3: 在 “2” 的基础上加上时间戳。(该等级为我司自定义等级,目前 MixIOT暂不支持)
1.6.3. Codebase_Template
CodebaseTemplate主要是将反向控制表中的信息进行组合成脚本,关于Codebase_Template的具体写方法介绍参考_MixIOT脚本规则注释(R3).pdf 中2.1章节。
1.7. 统计计算
统计计算的参数是适配器不能直接采集的参数,需要通过计算后才能得出的数据。例如“每天运行时间”这个参数,适配器一般只能采集到“总运行时间”,因此这就需要统计程序进行计算得出每天的运行时间。每一个需要统计计算的参数都对应一个专门的统计程序,而程序的添加可参考MixIOT系统使用手册.docx中3.1章节。
Image - 统计计算
1.7.1. Symbol
前面章节已提过,&符号为统计计算和离线数据的专用符号。在这里就不再做讲解。
1.7.2. Category
我司目前使用种类暂只有两种,分别为:Statistics(统计)、Collect(采集),Statistics用于统计计算,Collect用于离线数据。
1.7.3. 标签
前面章节已提过,不再做说明,按要求填写即可。
1.7.4. 结果
结果一般写查询数据的数据库表名,表名前添加&符号。不用加’admin_’前缀。目前能查询的有&Statos(统计)和&Collectos(离线数据)。
1.7.5. StatisticsID
StatisticsID 是指统计程序的ID,每一组统计数据都是通过程序计算产生,不同的数据统计使用不同的计算程序。如下图所示:
Image - StatisticsID
1.7.6. 备注
备注中可写入参数统计的mapping,具体写方法介绍参考MixIOT脚本规则注释(R3).pdf中2.5.2章节。
1.8. 离线数据
离线数据指无法通过适配器获取,需人工采集数据。例如电能表电量不能被适配器采集,就需人工采集,这个电量就属于离线数据。
Image - 离线数据
离线数据表的填写方式和统计计算表一样,这里将不再对离线数据表作具体讲解,详情可参考第六章,mapping脚本程序直接参考MixIOT脚本规则注释(R3).pdf中2.5.1章节。
1.9. 设备扩展字段
设备扩展字段指系统默认的字段不能完整的描述设备信息,需另外只增加设备信息字段即为扩展字段。
Image - 设备扩展字段
扩展字段表只需按截图模板将所需的设备信息字段添加上去即可,脚本具体写方法介绍参考MixIOT脚本规则注释(R3).pdf中2.3章节。