数据:这个数字312.55 我们能想到什么?只能说它的有效数字是小数点后两位!
当指明了场景,数字才有一定意义。例如:这数字出现在商场内;它可能代表金额。但还是缺少单位!是元?还是刀?这说明,有效数据一定要有相关(场景、单位)的标注!
日常中,我们最常见到的数据,就是财务数据;
财务数据除了上述的数值、单位外,还必须有日期(时间)、摘要(内容背景)、入/出(借/贷);凭借数据原始性,达到可分析、可追溯。
我们工业控制AI所需要记录的项目也应如此。
原始数据来源于感知器(各类传感器);
我们就从感知器(模拟量AD传感器)说起:
如前所说,工程量(距离、重量、压力、温度、亮度等等)通过换能器转换到电量;然后,再使用AD芯片将电量模拟量(电压、电流)转换成数字量数据。
我们知道AD转换是有不同的分辨率(精度)位数的。
西门子控制系统对此做了如下格式的统一。
AD模拟量统一格式

在西门子规范中,采用左对齐,一个16位字长,统一了模拟量格式。

黄色部分为置信度误差,可通过平滑、滤波显示为估读。
对于数字模拟量,我们系统工程师最直接、最关心的两点:分辨率(精度)和单位(量纲)
1、分辨率(精度)问题
西门子控制器PLC方面:为了同时兼顾分辨率(精度)和实际场景的信号过冲;规定范围值为0-27648即hex 6C00=100.00%;这保留17%信号过冲时,分辨率达到2.7万分之一。
实际AD转换精度:通常主机本体自带模拟量输入的AD为10位。SM信号模块实际AD是13位+符号位。(除了LOGO!外,新一代主机端子基本取消了AD接口。)
西门子驱动器(变频器)方面:MM4、G120系列变频器上的AI端子,AD转换12位;而最新的G220系列,AD转换为16位。
你可以看出:西门子的工业控制设备,给用户准备了更高转换精度的AD;12、14、16位(达到3.2万分之一);并将其统一为一个16位字长的固定格式。
实际工业控制场景下,我们真的需要这些高分辨精度的AD转换么?
我国工业传感器通用精度等级分为0.1、0.2、0.5、1.0、1.5、2.5、5.0七个等级,主流产品集中在0.5~2级区间。

由此可见,我们的信号源:仪表、电位器等等,在大多数工业场景的测量仪表精度等级是0.5;0.2;(误差+/-0.5%,+/-0.2%;)
一个16位字(符号整数)可以表示0- +/-32768。很明显一个10位的AD转换可以表示0-1023;满足大多数的千分之一精度工业场景。
题外话:
从机械工程师的角度看,在机械加工上,一个16位带符号的INT表达的范围是-32768 – 32767,对于加工直径500毫米的工件,这意味着分辨率:500mm/32767=0.015mm。
0.015/500mm偏差范围达到IT5。属于精密级加工了。而大部分的加工精度只需要IT6-IT8。
西门子 一个16位字长的智慧
我们知道,在通讯领域,最小的传送单位是字节(Byte);
在西门子主导的ProfiBus/ProfiNet组织下,对模拟量做了如下特别适宜的规定:
采用一个16位的字长度,带符号的INT整数。
规范中规定:
hex 4000=16384=100.00%;
它的分辨率(精度)为:1/16384;1.6万分之一。
它表达范围+/- 200%;也就是:-32768 =-200%; 32767=200%
在物理层面,它可以较好地表达信号的过冲;例如:表达电感反电势叠加100%信号。而又不丢失较高的分辨率(精度)。
题外话:
事实上,我们在工业控制过程中,对传感器分辨率(精度)并非要求很高;重点关注的是传感器的最小感度;更关心的是不同场景下,控制器对模拟量变化量的响应!这也正是AI Agent 需要做的事情。
2、量纲(单位)问题
在实际工程控制应用上,我们面对着大量的带有单位的物理量;速度、转矩、转动惯量、电流、电压、温度℃、湿度%等等;不胜枚举。它们是我们数据记录的对象。
如何才能有效记录他们呢?
我们知道,所有这些物理量,都是由SI的7个基本量纲演化出来的。
(长度m、质量Kg、时间s、电流A、温度K、物质量mol、发光强度cd)
一个数据 20,标上单位:安培A;它就具有了一定的意义。
但是,20A;这对于11kW的驱动器来说,是个满负荷;对于110kW的驱动器来说,却是个轻微载荷。由此看来,即便是带有工程单位的数据,没有指定的工业场景对象;对于AI数据训练来说,价值并不大。
从驱动工程师的角度看来,控制对象从微型驱动系统到大型控制系统,从开环到闭环,貌似差异很大,但实际控制对象模型都具有相似性。
为此,西门子在过程控制领域,早就给出了具体的解决方案:
在数字化驱动中,使用固定的参数,标定了数据的参考值、单位(量纲)

这样一来,只要保存绑定一次上述特定设备的参考值,那么所有相关数据就变得整齐划一。且达到原值(带单位)复现。(实际值【带单位】=百分比X标定的参考值)
这样一来,控制器的数字模拟量的指令和控制对象返回的模拟量实际值,不再需要具体带单位的设定值/实际值;而仅需给出(通讯交换)分辨率(精度)1.6万分之一的百分比数值。
这些就是西门子工业控制系统的“精华”!
我们再深入一点。
我们知道,一个工业控制系统的性能,响应非常重要。在物理世界中,它主要取决与驱动系统的能力和系统的惯量。这就是说,在物理层面上,驱动能力/系统惯量相近,则系统响应既可以相近。
在西门子驱动器中:

这同样采用了参考值(标准电机的转子的转动惯量。)通过上电驱动测试运转,输出转矩和降速、滑行,即可准确分辨整个传动系的转动惯量和滑动摩擦。
参照驱动实际转矩与参考值;整体传动系统的驱动性能,(角加速度=转矩/转动惯量)就可将其计算得清清楚楚了。
以上表述说明,西门子工业控制系统采用的就是“归一化”;
具体来说:它采用同样一个字16位的长度,用数据类型为带符号整数(INT)来表示百分比。定标为hex 4000=16384=100.00%;那么其表达范围就是+/-200.00%;且分辨率1.6万分之一;这非常适合大多数场景。
(更高精度的场合,还预留了hex 4000 0000这类双字的分辨率可用。)
通过深入了解西门子的工业控制系统,你就会发现,无论是很小的控制系统还是大型的控制系统,(每个系列)使用一套统一的数字模型。包括运动过程控制采用无量纲(LU)参数。有了这些归一化的标定,那么我们就可以对同一类型的控制建立数学模型。
也就是说,我们采集记录这种类型的数据,通过AI对数据的训练,完全可以扩展应用到更宽泛的相似工业控制系统中。这正是训练AI Agent所需要的模型数据(集)。
题外话:
像HMI的显示,其实(监控)操作者根本不想看那个20A电流的(浮点)数值,(尤其是生产线多台驱动)他想看到是各驱动的负荷率。
而HMI的柱状显示,你只需要标定0-hex 3FFF绿色(<100%负荷);hex 4000 – hex 5FFF(150%)黄色;hex 6000以上红色;就可以了。这样标定,可用于所有相似系统。当然,你也可以 0-90%绿色,90-99.9%橙色,>=100%红色;一目了然,心中有数。
3、时间问题
数据产生的时间:
就像一开始提到财务数据那样,产生数据的时间非常重要!因为,只有按前后发生时间顺序记录,才能分析模拟量的变化量、发现问题。
对于驱动工程师来说,在以前,这一直是个“痛点”;驱动器出现报警,故障等,只能看到相对运行时间(本次上电开始计时);只能靠控制器(PLC)上的时钟,推测发生报警/故障的时间。
最新的SINAMICS G2xx、S2xx系列内置了时钟,直接通过NTP显示时间:

而且除PN/IO接口X150;以太网接口X127之外,添加了千兆的X128网口,专门用于AI时代的数据采集。
数据组的时间对齐。
我们工业控制系统需要获得数据,并非单一数据。而是需要一组相关数据:
例如:命令、设定值(控制字)和状态(转速、转矩、电流、反馈量等等)一组(百分比)实际值;
这些数据,理应是同一时刻的;若时间上错位,则这组数据就失去了相关性。
对于这点,西门子工业控制系统早就有DPRD这些功能块,保证读取数据的一致性。为工业控制AI打下了基础。
以上,我仅仅是通过一个机械工程师、驱动工程师的侧面视角,来探索AI Agent训练所需要的数据特点。如何采集数据,如何标准统一?如何适应工业控制AI Agent的训练需要?
对此,各位有啥看法?
连载系列——《工业AI之我见》
一、西门子RXD大会 参会感受
二、什么是工业AI智能体
三、如何从工业传统控制模式走向工业AI智能控制模式
四、传统数字开关量逻辑控制的缺陷与工业AI智能化重在关注数字化模拟量
五、关注数字模拟量变化量的重要性
六、历史变化数据积累的重要性及场景标定的重要性
七、专家系统组合智能体与端到端大模型智能体的区别(两步走)
八、由预设逻辑规则控制到模糊控制-标注-适配智能控制的改变
九、数据,西门子 – 一个16位字长的智慧