该文档阅读对象为数采施工工程师,需要具备一定的数采协议知识,了解PLC、OPC UA、OPC DA、modbus等通信协议概念。
术语
点位:指PLC、DCS等自动化系统中I/O数字量或A/D模拟量。一个自动化系统由几千到几万个点位组成,为了方便施工配置,这些点位通过excel点表来整理汇总。
点表:泛指记录点位配置信息的excel表格,包含模板表、设备表、点位表。
模板表:技术属性模板excel表的简称,又称设备模板表,记录一批设备共用的配置信息,如点位在OT地址空间中的相对偏移地址。
设备表:设备配置excel表的简称,记录设备相关的配置,如设备链接地址,设备在OT地址空间中的全局偏移地址,设备全局偏移地址 + 点位相对偏移地址 = 点位在OT地址空间中的绝对地址。
点位表:模板表和设备表通过工具可以自动生成点位表,同时也支持手工编辑整理点位表,点位表记录了每个IT属性的信息、OT点位的信息、以及两者之间的映射关系,即IT属性 = OT点位 + 公式映射。
IT:Information Technology,本文中特指信息化软件系统相关的技术。
OT:Operational technology,本文中特指自动化系统相关的技术。
产品功能
边缘数采一体机功能如下
采集,支持主流DCS、PLC通信协议,如OPC UA、MODBUS等,通过excel点表完成大批量点位导入,支持设备模板,便于数采配置、应用开发、以及数据分析。同时提供SDK方便私有协议定制开发。
存储,包括点位时序数据存储,告警记录存储。点位时序数据存储支持按点精细化配置,默认存储周期一年。告警记录默认存储一年。
可视,提供基于web的组态编辑界面,做图标、图纸开发、数据绑定,发布的图纸可以通过浏览器访问,以及被三方应用集成。
告警,支持配置告警模板,配合excel点表做批量配置。
转发,支持自定义转发规则,按设备过滤、去重转发。支持对接阿里云IoT平台、以及kafka转发其他平台。
openAPI,提供MQTT实时订阅和HTTP按需查询2种接口,其中MQTT订阅支持共享订阅、全量订阅、按设备订阅、按点订阅。
主备,支持双机主备,提高系统可靠性。工程配置支持一键同步,实时数据自动同步。
监控,支持端到端流量监控,覆盖采集、加工、存储、转发各个环节的实时流量。支持数据流转时延检测、存储监控检测、系统检测、硬件检测等。
采集
本章节包括以下内容
点表配置
驱动视图
设备视图
设备模板
模板管理
OPC UA导入属性
资源部署
驱动视图
整体展示结构为:驱动-连接-设备-点位。
左侧为驱动-连接列表,驱动即数采协议包,如下图所示,左侧驱动列表包括bacnet、device_simulator、iec61850、modbus,驱动下可以通过导入点表添加多条连接,如下图所示modbus驱动下有CON57、CON58等连接。
左侧窗口选中驱动,可以查看各条连接状态、连接/断连时间,数采点个数、属性点个数和进度,点击详情,可以查看连接配置。
数采点,指从PLC或DCS中直接采集到的原始变量,原始变量经过bit拆分、json提取得到属性点。如一个DWORD数采点拆分得到多个属性点。 进度条,驱动、连接、设备都有各自维度的属性点进度统计。
进度=100%,代表从连接建立开始,下面所有的属性点都正常上报过。
进度<100%,代表截止目前有属性点未上报过,需要排查连接配置、设备配置、数采地址配置、加工公式配置是否正确。 左侧窗口选中驱动下的某条连接,可以在右侧窗口看到该连接下的设备列表、各设备接入进度,点击详情可以查看设备配置。双击某一行或点击查看属性点可以进入设备下的属性点列表。
属性点列表,可以看到某个设备下各属性点实时值、质量码、时间戳,其中质量码0代表正常,0xC0(192)代表连接已断开(此时展示的实时值为系统缓存值),有写权限的属性点位会有写入按钮。 属性点有3个状态,如下
异常:代表截止目前该属性点未上报过。
正常:代表截止目前该属性点上报过。
待部署:代表后台配置变更后,未点击部署,即驱动未加载新的配置。
双击某一行或点击查看详情可以进入属性点详情页面。
属性点详情,基础信息包括驱动-连接-设备-数采点-公式转换-属性点状态,便于异常问题定位。
驱动异常,需要检查驱动是否正常运行。
连接异常,需要检查连接的IP、Port等配置是否正确。
设备异常,需要检查设备配置是否异常。
数采点异常,需要检查数采地址配置是否正确。
转换异常,需要检查加工公式拼写是否正确。
数采点,指从PLC或DCS中直接采集到的原始变量,原始变量经过bit拆分、json提取得到属性点。如一个DWORD数采点拆分得到多个属性点。数采点和属性点都有唯一的标识符ID。
历史数据,支持表格、图表2种展示方式。表格方式更准确,图表方式适合看趋势。图表展示时,会根据时间范围做间隔采样,即降采样,采样方法为在固定的时间间隔内抽取数据,有数据则展示,无数据不展示(未采取平均值、最大值、最小值等补值手段)。
设备视图
支持按连接编码、模板名称或编码、设备名称或编码、设备数采状态、属性名称或编码组合搜索,模糊搜索。其中模板名称或编码、设备名称或编码是必选,其他可选。
模板管理
相同的设备配置可以复用一套模板,参考下文的模板表excel说明。 模板搜索:支持按模板名称、模板编码搜索,模糊搜索。更新时间:模板表有修改,重新导入后,更新时间会变化。更新时间支持时间排序。
单个模板有2种视图,属性视图和采集视图。属性视图中属性按照属性组名称归类。
下图为OPC UA协议的采集视图(通过OPC UA扫描导入)。
excel点表介绍
什么是模板表(全称为技术属性模板表)
什么是设备表(全称为设备配置表)
什么是点位表(用于离散点位管理)
以一个例子来展开说明3张表的差异,假设工厂中通过PLC接入了 10个电机、1个机械臂,且10个电机在PLC协议地址空间中是对称的,则可以创建1张电机模板表,1张电机设备表,1张机械臂设备表,1张机械臂设备点位表。如果PLC连接协议一样,变频器设备表和机械臂设备表也可以合2为1。
模板表详细说明
电机的模板表(技术属性模板表)如下(以OPC DA协议为例):
蓝色列代表IT信息(属性编码、属性名称、存储类型、单位、取值范围等),*代表必选,其他字段选填。
绿色列代表OT信息(数采地址、数采加工公式)。 灰色列代表分隔符,没有实际意义。
提示:模板表的绿色列字段跟具体的协议强相关,如OPC DA的绿色列有ItemID、ValueType、IsWritable列,MODBUS的绿色列有寄存器偏移地址,OPC UA的绿色列有nodeid偏移地址等等。
整个表格传递的信息是IT属性 = 数据转换公式Expression + OT点。
表头包含如下信息
模板编码 AssetTypeCode,模板的唯一标识符,用于三方应用开发对接使用。
模板名称 AssetTypeName,模板名称,用于控制台搜索和展示。
基础类型,默认为Device。
提示:模板表支持添加多张excel sheet页,每张sheet页代表一张新的模板。
每列字段含义如下
属性编码 AttributeCode,用于组态界面、三方应用开发对接的标识符,要求在
模板内唯一
;属性编码只支持字母、数字、下划线和点,且不超过64个字符。
属性名称 AttributeName,用于控制台展示和搜索,
不要求唯一
;属性名称只支持字母、数字、下划线和点,且不超过64个字符。
存储类型,包括Bool、Int、Double、Enum、Text、Time。
告警事件模板,用于配置属性变化是否触发告警,此处填写对应的告警模板id,见告警模板章节。
数据转换公式,OT点位经过公式转换变为IT属性点,当前支持的公式有
bit(N),其中N取值范围为[0, 31],代表取第N个bit
json_number(PATH),其中PATH为json文本中的路径,如'/state/switch',包含引号,代表取json文本某
数字量
成员
json_string(PATH),其中PATH为json文本中的路径,如'/state/name',包含引号,代表取json文本某
文本
成员
bit(json_number(PATH)),代表2个公式嵌套使用
OT地址,根据数采协议不同OT地址和参数有所差异,如MODBUS协议的绿色列有寄存器偏移地址,OPC UA的绿色列有nodeid偏移地址,OPC DA的绿色列有ItemID、ValueType、IsWritable列,具体含义请参考对应的协议表格说明。
设备表详细说明
设备配置表,包含10台电机的链接信息,样例如下
蓝色列代表IT信息,如设备名称、模板编码。
绿色列代表OT信息,如数采连接地址、数采采样频率等,具体请参考对应的协议接入说明。 灰色列作为分隔符列,没有实际含义。 资产模板编码列代表设备引用了哪个模板,可以为空,为空代表设备的点位配置由点位表记录。
设备配置表可以添加多个设备,多个PLC,多套DCS的连接。
点位表详细说明
点位表主要用于散点设备的接入,散点设备指设备点位地址无规律、无法使用模板表,此时可以使用设备表 + 点位表完成数采实施。点位表和模板表的差异点,在于OT地址列是完整的。
前面的例子中,点位表的样例如下:
MODBUS点位接入流程
该章节包含以下内容
MODBUS的excel模板表配置说明
MODBUS的excel设备表配置说明
MODBUS的excel点位表配置说明
如何接入模板设备
如何接入散点设备
异常点位排查方法
模板表配置说明
表格下载:控制台->采集->模板管理->导入模板->驱动名称选中"modbus"->点击下载。
绿色列代表驱动配置:
寄存器地址
驱动程序采用MODBUS寻址,功能码+寄存器地址(0~65535),其他寻址模式需要进行转化。
数据类型
指从设备中读取的数据格式,同时驱动程序通过相应的数据类型来告知读取一个、两个、四个或八个寄存器或者可能的布尔值;
1)BOOL(布尔型)
2)INT16(16位有符号整型)
3)UINT16(16位无符号整型)
4)INT32(32位有符号整型)
5)UINT32(32位无符号整型)
6)INT64(64位有符号整型)
7)UINT64(64位无符号整型)
8)DOUBLE(双精度浮点型)
9)FLOAT(单精度浮点型)
读功能码
1)0x01(读线圈寄存器)
2)0x02(读离散输入寄存器)
3)0x03(读保持寄存器)
4)0x04(读输入寄存器)
写功能码
1)0x05(写单个线圈寄存器)
2)0x06(写单个保持寄存器)
3)0x0F(写多个线圈寄存器)
4)0x10(写多个保持寄存器)
批量操作
是否允许驱动程序将其和与其相邻的点位进行合并读取。
交换字节顺序
是否交换保持/输入寄存器内的字节顺序。
交换寄存器顺序
是否交换多个保持/输入寄存器之间的顺序。
缩放因子
缩放原始数据,目前支持“线性”缩放.
设备表配置说明
绿色列代表跟数采相关的配置。 连接配置:
IP地址
MODBUS-TCP通讯的服务器的以太网IP地址。
端口
MODBUS-TCP通讯默认端口为502。
设备配置:
设备ID
设备在MODBUS-TCP通讯的服务器上的从站地址。
轮询周期
点位读取周期,单位ms。
轮询超时
点位读取超时,单位ms。
同模板表。
操作路径:模板管理->导入模板->选择对应的数采驱动->上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
操作路径:点表配置->驱动视图->选择对应驱动->导入点表->设备表->上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
点击部署,让以上点表配置生效,该过程需要几分钟。
提示:启用主备配置后,会多一个主备部署的按钮,主备部署可以让点表配置、告警配置等工程配置信息同步一份到另一台主机。建议定期做主备配置同步,以免两台机器配置不一致,造成使用上的混乱。
常见问题FAQ
OPC UA点位接入流程
该章节展示了如何通过OPC UA扫描工具自动生成设备模板,批量接入点位,以及异常点位排查。OPC UA点位接入流程分成四个部分,具体如下:
创建模板表
导入设备表
部署资源
异常点位排查
1)创建和导入模板表和设备表
方式一:通过Excel表格配置
a) 模板表配置说明
字段名称 | 字段格式 | 字段说明 |
点位编码 PointCode | 例如:idxxxx | 用户自定义点位全局id,内容无限制,长度不超过64个字符。 选填,默认为空,由一体机默认生成。 |
设备点位路径 VariableName | 例如:ns=2;s=Motor1.State | 采集点在OPC UA服务器中设备NodeId的偏移地址 或点位NodeId 如果设备NodeId为空,则必须填写完整点位NodeId, 否则选填。 |
采样间隔 SamplingInterval | 例如:500,代表500ms | 采样间隔,单位:毫秒 选填,默认500毫秒 |
b) 设备表配置说明
字段名称 | 字段格式 | 字段说明 |
服务器地址(Url) | opc.tcp://127.0.0.1:4840 | OPC UA服务器URL,格式:opc.tcp://ip:port 必填 |
安全策略(SecurityPolicy) | 空 None Sign SignAndEncrypt | 是否加密, 选填,默认为空 |
安全模式(SecurityMode) | 空 None Basic128Rsa15 Basic256 Basic256Sha256 | 加密方式, 选填,默认为空 |
公钥文件(PublicKeyPath) | 空 或 .pem 或 .der格式文件 | 公钥文件在一体机上绝对路径, 选填,默认为空 |
私钥文件(PrivateKeyPath) | 空 或 .pem 或 .der格式文件 | 私钥文件在一体机上绝对路径, 选填,默认为空 |
用户名(UserName) | 空 或 字符串 | 登录用户名, 选填,默认为空 |
密码(Password) | 空 或 字符串 | 登录用户密码 选填,默认为空 |
连接超时时间(ConnectionTimeout) | 60 | 连接超时时间,单位:秒, 选填,默认60秒钟 |
空闲超时时间(IdleSessionTimeout) | 20 | 会话空闲超时时间,单位:毫秒, 选填,默认20分钟 |
通道更新时间(RenewalInternal) | 60 | 通道更新时间,单位:毫秒, 选填,默认60分钟 |
会话保活间隔(KeepaliveInterval) | 5 | 会话保活间隔,单位:秒, 选填,默认5秒钟 |
会话保活超时次数(KeepaliveTimeoutCount) | 3 | 会话保活超时次数,单位:次 选填,默认3次 |
会话重连间隔(ReconnectInterval) | 5 | 会话重连间隔,单位:秒, 选填,默认5秒钟 |
数据推送间隔(RequestedPublishingInterval) | 500 | 数据推送间隔,单位:毫秒, 选填,默认500毫秒 |
订阅超时计数(RequestedLifetimeCount) | 600 | 订阅超时计数,单位:次, 选填,默认600次 |
订阅超时计数(RequestedMaxKeepAliveCount) | 60 | 订阅保活计数,单位:次, 选填,默认60次 |
数据推送最大点位个数(MaxNotificationsPerPublishl) | 10000 | 数据推送最大点位数,单位:个, 选填,默认10000个 |
订阅优先级(Priority) | 0 | 订阅优先级,0-255, 选填,默认0 |
最大读取点位个数(MaxNodesPerRead) | 100 | 最大读取点位个数,单位:个, 选填,默认100个 |
最大写入点位个数(MaxNodesPerWrite) | 10 | 最大写入点位个数,单位:个, 选填,默认10个 |
读超时时间(WriteTiemout) | 5 | 写求超时时间,单位:毫秒, 选填,默认5秒钟 |
全量上报间隔(FullReportInternal) | 5 | 全量上报间隔,单位:秒, 选填,默认5分钟,0表示禁用 |
c) 点位表配置说明
字段名称 | 字段格式 | 字段说明 |
点位编码 (PointCode) | 例如:idxxx | 用户自定义点位全局id,内容无限制,长度不超过64个字符。默认为空,由一体机默认生成。 |
设备点位路径 (VariableName) | 例如:ns=2;s=Motor1.State | 采集点在OPC UA服务器中设备NodeId的偏移地址 或点位NodeId |
采样间隔 (SamplingInterval) | 例如:500,代表500ms | 采样间隔,单位:毫秒,默认500毫秒 |
d) 导入模板表
模板表内容见 模板表配置说明
操作路径:采集 -> 模板管理 -> 导入模板 -> opcua驱动 -> 模板表 -> 上传文件。
提示:
选中文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
2) 导入设备表
设备表内容见 设备表配置说明。
操作路径:数采 -> 点表配置 -> 驱动视图 -> opcua驱动 -> 导入点表 -> 设备配置表 -> 上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
3)导入点位表
点位表内容见 点位表配置说明。
操作路径:数采 -> 点表配置 -> 驱动视图 -> opcua驱动 -> 导入点表 -> 点位配置表 -> 上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
OPC DA点位接入流程
OPC DA常用于散点设备的接入,散点设备的接入使用设备表 + 点位表。
1)模板表配置说明
字段名称 | 字段格式 | 字段说明 |
点位编码 | 字符串 | 点位编码ID, 选填 |
OPC点位地址 | 字符串 | 点位在OPC服务器的ItemId值, 必填 |
数据类型 | Boolean/Int8/Int16/Int32/Int64/UInt8/UInt16/UInt32/UInt64/Float/Double/String | 点位在OPC服务器的ItemId对应值的类型, 必填 |
可写 | FALSE/TRUE | 点位在OPC服务器的ItemId对应值是否支持写, 必填 |
2)设备表配置说明
字段名称 | 字段格式 | 字段说明 |
OPC代理IP | IP地址 | OPC代理所在主机IP,必须为物理网卡配置IP, 必填 |
OPC代理Port | 整数 | OPC代理Port, 必填 |
OPC服务器地址 | IP地址 | OPC服务软件所在主机地址, 必填 |
OPC服务应用注册ID | 字符串 | OPC服务在Windows系统注册的ID, 必填 |
采样间隔 | 整数 | 采样周期,单位:秒 选填,默认5秒钟 |
3)点位表配置说明
字段名称 | 字段格式 | 字段说明 |
点位编码 | 字符串 | 点位编码ID, 选填 |
OPC点位地址 | 字符串 | 点位在OPC服务器的ItemId值, 必填 |
数据类型 | Boolean/Int8/Int16/Int32/Int64/UInt8/UInt16/UInt32/UInt64/Float/Double/String | 点位在OPC服务器的ItemId对应值的类型, 必填 |
可写 | FALSE/TRUE | 点位在OPC服务器的ItemId对应值是否支持写, 必填 |
4)导入模板表
操作路径:数采 -> 模板管理 -> 导入模板 -> 选择opcda驱动 ->上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
5)导入设备表
操作路径:数采 -> 点表配置 -> 驱动视图 -> 选择opcda驱动 -> 导入点表 -> 设备配置表 ->上传文件。
提示:
支持同时导入多个文件。
选中每个文件可以看到报错提示。
文件较大时,前台会提示导入超时,但后台仍会继续导入。
前台取消导入时,后台仍会继续导入。
6)资源部署
点击部署,让以上点表配置生效,该过程需要几分钟。
提示:启用主备配置后,会多一个主备部署的按钮,主备部署可以让点表配置、告警配置等工程配置信息同步一份到另一台主机。建议定期做主备配置同步,以免两台机器配置不一致,造成使用上的混乱。
三色灯异常诊断
连接状态
连接状态包含连接、异常。
绿色
:代表该连接下有数采点上报过(至少有一个数采点上报过)。
红色
:代表驱动上报了断连事件,或未有任何数采点上报。
属性点三色灯
针对异常的点位,数采一体机提供诊断功能,用来快速排查问题。
各阶段异常的原因:
驱动
:驱动程序运行异常,可以查看/linkedge/run/logger/fc-base/下驱动日志
连接
:无法连接到该设备,请检查设备连接配置信息。
设备
:无法采集该设备上的任何点位数据,检查设备配置信息。
数采点
:无法采集该点位数据,检查数采协议点位地址配置信息。
转换
:无法对采集到的原始数据进行公式转换,检查点位格式和公式是否匹配。
属性点
:无法查询到该属性点信息。
状态灯是根据点位上报情况推导出来的,不强依赖驱动上报的连接状态、设备状态虚拟点位。
Q. 和驱动上报的虚拟点位之间的关系?
连接成功、设备上线的虚拟点位上报不会影响状态灯。
连接断开的虚拟点位上报,会重置该连接及其下的设备、点位的状态,变红。
设备下线的虚拟点位上报,会重置该设备及其下的点位的状态,变红。
Q. 和部署之间的关系?
部署会重连修改过的连接,会重置该连接及其下的设备、点位的状态,导致相关状态都变红。
Q. 和点位质量码之间的关系?
点位质量码为零,认为该点位正常,显示绿色。
点位质量码为非零,认为该点位异常,显示红色。
告警
告警模板
典型场景:大量I/O数字量需要批量配置告警信息
操作路径:告警模板 -> 新建模板 -> 填写模板信息 -> 在excel模板表或点位表填写告警模板编码
步骤一:创建告警模板
告警标题
支持多语言。
告警级别、告警分类、告警类型
支持自定义配置,
告警内容
支持变量引用。
步骤二:操作路径1:采集->模板管理->选择对应的模板->查看->属性视图->选择属性->编辑->选择告警模板->保存,然后部署。
操作路径2:在excel点表(模板表或点位表)中填充告警模板编码,并在控制台重新导入excel模板表,然后部署。
步骤3:资源部署 -> 本机部署
步骤4:查看告警事件
未解除:指进行中的告警(告警条件被触发,且当前仍满足触发条件)已解除:指已消除的告警(告警条件曾被触发,当前触发条件不满足)
告警确认:运维人员通过手动确认告警,来保障整个自动化系统的正常运行。 告警搜索:支持通过时间窗口、设备资产编码来搜索过滤告警。
常见问题
Q. 新建或修改告警模板后是否需要部署?
不需要部署,保存即生效。
Q. 如何配置或恢复两台机器之间的告警数据同步?
一、清理原有数据库
1、docker stop postgres12
2、docker rm postgres12
3、rm -rf /datafactory_data/postgres
二、下载新的pg安装文件:
wget http://xxx/postgres12_install_file.tar.gz
三、重新走一遍双机postgres的安装流程
sudo mkdir -p /datafactory_data/postgres/
sudo ./install_PG.sh /datafactory_data/postgres/
sudo ./config_PG_step1.sh
# 在LE1上执行
sudo ./config_PG_step2.sh ${LE2_IP} 5432
# 在LE2上执行
sudo ./config_PG_step2.sh ${LE1_IP} 5432
可视
详见组态编辑器使用手册。
转发
一体机支持多种数据转发方式
转发上云,阿里云IoT
转发到三方Kafka平台
通过MQTT openAPI订阅数据,自定义转发到其他平台
阿里云IoT
一体机内部和阿里云IoT平台有2条通道,一条为管控通道,一条为数据通道。
管控通道:对应一个管控通道三元组,管控通道用于云端下发各种参数配置。 数据通道:对应N个数据通道三元组,数据通道用于一体机上报数据。由于上云数据通常较大,物联网平台单条连接流量上限约1MB/s,可以在一体机上配置起N条链接,N条链接对应N个三元组。配置方法见后续说明。数据通道对应物联网平台的虚拟网方案(子设备数据可以选择任意一条通道上云),同时配合物联网连接型实例,一体机做了数据聚合、压缩优化。因此配置时重点关注以下几点
根据上云流量,预估上云数据通道数,创建对应N个三元组。
根据物联网平台实例类型,在边缘一体机上配置连接型实例、普通实例。
配置步骤如下
控制通道配置
登录数字工厂平台。操作路径:数据采集->边缘实例->新建边缘实例->复制 DeviceName、ProductKey、DeviceSecret,注意主备的边缘实例会有2套三元组。
在物模型映射,查看数字工厂对应的物联网平台LP(Link Platform)对应的接入地址。
将上一步骤复制的ProductKey、DeviceName、deviceSecret以及物联网平台接入地址和端口号信息填充到对应的边缘一体机中。
提示: 1. 域名后面需要拼接端口,端口固定为1883。如:iot-xxxxoktpaa.mqtt.iothub.aliyuncs.com:1883。 2. 物联网平台需要区分连接型实例和普通实例!两者在一体机中的配置不同,前者需要开启数据压缩选项,支持更大并发,后者不支持压缩。
对接物联网平台:使能开关,在开关打开后数采一体机开始尝试和阿里云物联网平台进行连接。
ProductKey:产品名称,在阿里云物联网平台上进行产品创建时生成。
DeviceName:设备名称,在阿里云物联网平台上进行设备创建时生成。
deviceSecret:设备密钥,阿里云物联网平台上进行设备创建时生成。
物联网平台接入地址:阿里云物联网平台接入地址,对应实例的连接地址。
设备过滤规则:对应上元数据转发的OT数据的过滤规则,参考下文中的过滤规则集说明。
数据通道配置
操作路径:登录物联网平台,选择对应的企业实例,任意一个创建产品和设备,保存设备三元组。
配置数据通道三元组
和控制通道不同,阿里云Iot数据通道配置通过现场施工时进行后台修改配置文件完成,对应配置文件路径如下:
vim /linkedge/gateway/build/config/data_cloudproxy/data_proxy_client.json
配置文件中包含数据上云的N个三元组信息,需要上云的数据流量事先进行规划。
下文以3对三元组为例,进行配置说明。
{
"identityInform":[
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_111",
"DeviceSecret": "xxxxxx"
},
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_222",
"DeviceSecret": "xxxxxxx"
},
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_333",
"DeviceSecret": "xxxxxxxxx"
}]
}
注意:此处的三元组和边缘实例中的三元组不同!配置重复会导致连接互踢!!!
配置物联网平台类型(普通实例还是连接型实例)
vim /linkedge/gateway/build/config/data_cloudproxy/data_cloudproxy.json
{
"TingChangGoNum" : 5,
"CompressGoNum" : 5, //控制是否需要压缩数据,修改为0代表不压缩--对应普通物联网平台实例。
"EdgeMqttClientNum" : 5,
"CloudMqttClientNum" :3,
"EdgeMqttChannelBuffers" : 80000,
"VirtualBufferChannelBuffers" : 4000,
"CompressBufferChannelBuffers" : 4000,
"BufferMaxPropertyNum" : 100,
"BufferMaxDeviceNum" : 20,
"BufferSendCount" : 5,
"BufferMaxCacheArrayNum": 200,
"NetworkKey": "qwertyuiopasdfghjklzxcvbnm0123456789qwertyuiopasdfghjklzxcvbnm12",
"Kafka_Client_Num": 2,
"mqtt_received_message_buffer_len": 200000,
"merge_size": 100,
"mergers_num": 10,
"alarm_send_buffer_len": 1000,
"alarm_rcv_buffer_len": 10000
}
配置文件修改后,重启LE,
重启服务
systemctl restart LinkIoTEdge.service
查看服务运行状态
/linkedge/gateway/build/script/iot_gateway_status.sh
数字工厂->边缘实例->数据下发等待部署完成后,可以在一体机配置文件中看到以下变化。
vim /linkedge/run/cloud_db_resource_bak/thing_asset_relation_resource/thing_asset_device_relation_file
文件内容为资产设备到物模型的映射配置
{"assetCode":"xx","assetTypeCode":"XX","deviceName":"xx","deviceSecret":"xx","productKey":"xx"}
{"assetCode":"xx","assetTypeCode":"XX","deviceName":"xx","deviceSecret":"xx","productKey":"xx"}
vim /linkedge/run/cloud_db_resource_bak/thing_asset_relation_resource/thing_asset_property_relation_file
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
数据通道连接成功打印如下
SubDeviceJoinNet start, DeviceName:xxx,netId:xxx
提示:若看不到netId的打印,说明连接的物联网平台为普通实例!需要修改配置!
常见问题
Q. 修改管控通道后系统连接丢失
控制面三元组和物联网接入地址是数采一体机的关键环境变量信息,需要系统重启才能全局生效。在修改相关信息保存后触发系统的重启生效流程。
Q. 修改数据通道三元组信息未生效
转发面三元组信息是在系统启动后进行读取和连接创建的,后台修改对应三元组,在软件重启前无法实时生效,需要进行软件重启。
消息队列kafka
作为南向接入设备,数采一体机在支持采集的设备数据上行转发到公有云场景的同时,也存在支持将采集的设备数据转发到三方数据中台的场景。消息队列kafka功能提供了的数采一体连接三方数据中台kafka_server的相关配置能力,当进行对应连接信息的录入后,数采一体机能够实现和三方数据中台kafka_server的远程连接和南向工业数据采集后的转发能力。
工作原理
数采一体机连接三方数据中台kafka_server进行上行数据转发的工作原理类似于kafka的标准生产者(producer)的流程,主要包括:
数采一体机作为kafka_client和指定的kafka_server建立连接,对应kafka_server的连接信息来自界面配置,主要包括:broker连接地址、sasl鉴权信息(用户名/密码)、cert证书(安全连接)等。
数据一体机作为数据的生产者(producer)向kafka_broker的指定topic转发数据,当前主要支持设备数据和告警数据的数据转发,需要在界面指定broker映射的不同topic。
配置说明
对于消息队列kafka的转发配置,在数采一体机上提供了可视化界面,对应侧边栏:数据转发--->kafka转发。
点击编辑
kafka转发的配置信息默认只读,需要点击“编辑”按钮进行编辑操作。
输入kafka转发的配置信息
是否开启:kafka转发的使能开关,在开关打开后数采一体机开始尝试和三方数据中台的kafka_broker进行连接。
broker地址:三方数据中台的broker地址,支持通过“;”符号连接多个,地址组成包括:ip地址(域名) + port端口号。
设备数据Topic:三方数据中台作为kafka_broker提供的设备上报属性数据的topic,需要在kafka_broker侧进行规划和配置。
告警数据Topic:三方数据中台作为kafka_broker提供的上报告警数据的topic,需要在kafka_broker侧进行规划和配置。
启用SASL鉴权:连接kafka_broker鉴权开关,在kafka_broker连接需要开启时打开。
SASL鉴权信息:对应kafka_broker连接时输入正确的鉴权信息,包括用户名/密码。
kafka证书:对应kafka_broker需要证书认证时进行上传,默认支持一个证书,后面上传会覆盖前面上传的证书。
设备过滤规则:对应kafka转发的OT数据的过滤规则,参考下文中的过滤规则集说明。
点击保存,配置生效。
常见问题
Q. kafka_broker多个地址的录入
本地控制台支持多个kafka_broker地址的输入,在kafka_broker在集群模式下需要多地址录入的场景下,可以在本地控制台上通过“;”进行不同地址间的隔离。
过滤规则集
考虑作为生产制造过程中产生的OT数据并非都是北向设备需要的,因此需要在数采一体机设备数据上云转发前实现报文按照一定维度的过滤,以此提升带宽利用率。数据一体机当前提供了按照设备维度的上报属性数据的过滤能力,并支持为重复数据设置过滤时间窗,以满足提高上行数据有效性的诉求。
工作原理
数采一体机的过滤规则主要支持三种类型:
全量同步:
默认不进行过滤,上报所有设备的属性。
只同步选中:
白名单方式进行过滤,只上报规则中选中设备的属性。
不同步选中:
黑名单方式进行过滤,只上报在没有在规则中设备的属性。
数据一体机的过滤规则集支持创建多个,用户可以根据需求创建多条不同类型和指定多个设备的过滤规则。但过滤规则的生效需要通过和对应的上云连接进行绑定,为了防止规则间的冲突,一个上云连接只支持绑定一条规则,当前支持的绑定模式包括mqtt(阿里云物联网平台)和kafka(三方数据中台)。
过滤规则除了支持按照设备维度进行属性过滤外,还支持设备属性在时间维度上的时间窗过滤,通过时间窗设置:对于在周期时间内(从收到报文开始进行技术)属性值相同的设备属性上报认为是重复数据,在上报前进行过滤处理。
配置说明
对于过滤规则集的添加、编辑和删除,数采一体机提供了可视化界面,对应侧边栏:数据转发--->过滤规则集
新建规则
通过过滤规则集界面上“新建规则”按钮创建规则,输入规则编码、规则类型、去重间隔(去重时间窗)、选中设备等信息创建过滤规则。其中规则类型分为三种,全量同步规则不需要选设备。
修改/删除规则
在规则创建后,可以通过过滤规则集界面中选中规则进行编辑和删除操作,控制台还提供了批量删除功能方便删除的批量操作。
使用规则
在规则创建后,通过在上云链路对应界面中进行绑定生效。当前支持mqtt(阿里云物联网平台)和kafka(三方数据中台)两种上云方式,分别对应数据转发菜单中“阿里云IoT”和“kafka转发”配置中的“设备过滤规则”的选项配置。
常见问题
Q. 配置过滤规则集并绑定到kafka转发后,告警转发没有进行过滤生效
过滤规则当前只对设备属性数据进行过滤,对告警数据不进行过滤,过滤规则对于告警的转发无效。
Q. 修改绑定到kafka转发或者阿里云IoT的过滤规则,发现存在设置的时间窗内相同属性值的设备属性重复上报
过滤规则支持热加载,在用户修改已绑定到上元转发的规则立即生效。但在规则生效后对已有设备属性的时间窗信息会重新加载,已有时间窗内的数据会被重置。
Q. 界面配置了多条过滤规则(白名单)方式,但无法进行多个规则绑定到同一条转发链路
数据转发设置多条过滤规则意味着计算的冗余和性能的下降,当前转发链路只支持绑定一条设备过滤规则,需要将相同维度过滤放到一条过滤规则中。
系统
主备配置
工作原理
资产一体机使用VRRP协议来实现两台主机之间的状态同步、主机选举;备机上的数采驱动、规则告警、数据转发服务处于热备状态。
配置说明
是否开启:控制是否启用主备功能。
本机地址:填写本机的局域网IP地址,和对端主机处于同一网络。
对端地址:规则同“本机地址”,填写互为主备的另一台网关/服务器。
配置密钥:同控制台的账户/密码,用于访问主/备机服务的。
主备调试:调试开关,关闭后意味着本机禁止参与主备抢占,此时对端会进入主机状态(mater)。
状态:当前主备工作状态,一共4个状态:主机、备机、异常、禁用。
主备策略:支持两种策略。
自主协商,两台服务器协商随机产生主机(推荐配置)。
XX 优先,指定一台服务器 XX 具有更高的优先级,只要 XX 正常,就一定为主。
提示:“XX 优先”模式下,XX发生异常会切换为备机(backup),异常消失后会再切换为主机(master)。
浮动虚拟IP:主备服务器器统一对外提供服务的IP,该IP会跟随着主机;配置主备功能后,建议后续使用该IP来访问控制台,以及MQTT和HTTP openAPI。
常见问题
Q. 两节点同时为“主机”
检查现场网络拓扑,两节点网络是否能互通;
检查防火墙和Selinux;
查看防火墙
sudo systemctl status firewalld.service
关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
关闭Selinux
vi /etc/sysconfig/selinux ## 修改 SELINUX=disabled
setenforce 0
getenforce
检查keepalived组件是否冲突;
查看系统keepalived
sudo systemctl status keepalived
关闭系统keepalived
sudo systemctl stop keepalived
sudo systemctl disable keepalived
Q. 某节点显示为“异常”
登入备机的控制台,查看备机的主备运行日志,可以看到异常原因;
Q. 如何通过命令行查询主备状态
ssh登录对应的主机,执行以下命令
curl -v -X POST http://127.XX.XX.XX/api/v1/ha/status/get
正常情况下会返回
备机:{"value":"backup"}
主机:{"value":"master"}
系统监控
一体机自带系统运行指标监控,对关键数据指标进行采集,进行可视化展示,并且可以配置规则,推送告警事件。
操作路径:系统监控 -> 搜索并输入"overview" -> 打开系统监控overview画面
Overview监控大盘
Overview看板展示了系统运行的核心指标,运维工程师需要重点关注Overview看板。
图表指标说明
图表名称 | 指标名称 | 说明 |
点位数据计算监控 | in | 代表数采驱动上报的原始数采点流量。 |
out | 代表经过bit拆分、json字段拆分后,得到的属性点流量。 | |
drop | 代表内部队列丢包情况,非0代表异常。 | |
TSDB代理 | in | 代表内部队列入口流量,写请求会先缓存在内部队列,然后批量写时序数据库。 |
in_drop | 代表内部队列满后的丢包情况。非0代表异常。 | |
out | 代表内部队列出口流量。 | |
out_drop | 代表内部队列出口写时序数据库的错误流量。非0代表异常。 | |
点位和资产转换监控 | in | 代表内部队列入口流量。 |
in_drop | 代表内部队列满后的丢包情况。非0代表异常。 | |
out | 代表内部队列出口流量。 | |
out+mismatch | 代表内部队列出口流量 + 转换mismatch的流量。 | |
out_drop | 代表内部队列出口流量丢包情况。非0代表异常。 | |
mqtt分发监测 | infrom=clientId | 代表某个mqtt clientId在mqtt broker上发送的数据流量。 |
outto=clientId | 代表mqtt broker发给某个clientId的流量。 | |
infrom_client_drop | 代表所有客户端发给mqtt broker的入口流量丢包情况。非0代表异常。 | |
outto_client_drop | 代表mqtt broker发给client的丢包流量。非0代表异常。 | |
数据流转延时 | 内部有个模拟驱动会定时发送1个ping包,覆盖系统整个链路,包括数采驱动接入、加工(bit拆分)、存储、融合、MQTT分发,同时有个mqtt客户端会订阅这个ping包,计算系统整体延时,延时=mqtt客户端接收到数据时的时间戳-数据报文里自带的时间戳,最终形成该图表;超时则指指标记为0。指标跌0代表系统异常。 | |
数据存储健康检测 | 复用数据流转延时的ping包,间隔500ms轮询该ping包是否落库,轮询超时则指标跌0。指标跌0代表系统异常。 | |
Netping | 本地其他主机的ping包延迟(默认为127.0.0.1) | |
异常日志 | xxx | xxx模块的异常日志输出速率 |
数据流转延时计算流程,见下图。
告警
如上图所示,红色图标表示告警产生,绿色图标表示告警恢复
磁盘
Panel名称 | 时间线 | 时间线说明 |
磁盘使用率 | device=xxx | xxx磁盘分区的使用率 |
inode使用率 | device=xxx | xxx磁盘分区的使用率 |
文件句柄数 | total | 所有进程打开的文件句柄总数 |
name=xxx | xxx进程打开的文件句柄总数 |
异常日志
可以查看系统各模块产生异常日志的速率,当模块异常日志输出异常时,进入的边缘一体机后台/linkedge/run/logger目录下查看模块的异常日志。
NetPing
此监控项用于通过ping的方式判断本机与对端IP的网络质量。
横坐标代表时间,纵坐标代表ping的环回延迟
系统默认ping的为本地lo
需要增加对端IP按如下步骤操作,下面添加了x.x.x.x和y.y.y.y两个ip
cd /linkedge/gateway/build/bin/
./tool_config -s system_metric_netprobe_list '["x.x.x.x","y.y.y.y"]'
sudo killall -9 edge_metric