一种具备数据追溯功能的工业数据采集测试方法及系统与流程

摘要: 本发明涉及工业数据采集,尤其涉及一种具备数据追溯功能的工业数据采集测试方法及系统。背景技术:1、工业数据采集技术主要涉及工业现场运行数据的获取、传输、处理、存储...
一种具备数据追溯功能的工业数据采集测试方法及系统与流程

本发明涉及工业数据采集,尤其涉及一种具备数据追溯功能的工业数据采集测试方法及系统。

背景技术:

1、工业数据采集技术主要涉及工业现场运行数据的获取、传输、处理、存储、分析及管理等关键技术,属于工业自动化、工业互联网、智能制造、信息采集与控制等技术的交叉应用领域。

2、现有工业数据采集技术通常侧重工业现场运行数据的获取、传输、处理、存储、分析及管理,实际运作过程中多以采集结果、通信日志、报警记录及运行状态作为判断依据,数据进入采集程序后的分支选择、状态变量变化、时间间隔影响及内存执行轨迹往往缺少连续对应关系。工业数据报文包含控制字段、序列号、模拟量及负载内容,不同字段组合可能触发不同处理路径,而传统测试常采用固定样本或人工构造样本,样本覆盖范围受测试经验限制,难以系统识别接近异常边界的取值区间。工业现场还存在报文到达间隔波动、网络抖动、设备响应延迟等情况,同一报文内容在不同时延条件下可能形成不同程序状态,现有技术通常将时间参数作为通信性能指标单独记录,难以同具体报文字段及程序状态建立关联。因此,需要进行改进。

技术实现思路

1、本发明的目的是解决现有技术中存在的缺点,而提出的一种具备数据追溯功能的工业数据采集测试方法及系统。

2、为了实现上述目的,本发明采用了如下技术方案,一种具备数据追溯功能的工业数据采集测试方法,包括以下步骤:

3、将工业数据采集软件的报文控制字段设为具体常数项,将报文负载数据内的序列号与模拟量设为符号变量;

4、向目标采集程序注入经重组的工业数据报文,提取路径约束条件,生成协议报文状态约束集;调用可满足性模理论求解器合并所述协议报文状态约束集的冗余状态,为状态节点附加时间戳标签,建立工业协议时空状态转移矩阵;

5、根据所述工业协议时空状态转移矩阵注入时延数值,调用内存探针读取状态变量取值,生成时延状态转移序列;

6、比对所述时延状态转移序列的状态变量取值差异,筛选报错中断节点,提取报错中断节点对应的协议报文字段特征与关键时延参数,生成时空异常临界图谱;

7、根据所述时空异常临界图谱定位工业数据报文区间,根据工业数据报文区间内的路径约束条件构建符号约束方程组;

8、调用所述可满足性模理论求解器推导数据约束边界区间,提取数据约束边界区间内的极限特征数值,并与关键时延参数绑定,生成时空越界复现报文集合。

9、较佳地,所述方法还包括:

10、按照所述时空越界复现报文集合中绑定的关键时延参数,将复现报文按目标时间间隔注入目标采集程序的网络端口;

11、读取内存指令指针的跳转地址序列,生成内存越界追溯路径;提取所述内存越界追溯路径中触发溢出报错地址对应的报文控制字段参数,将报文控制字段参数、越界负载数据数值与时间戳参数进行关联拼接,输出故障根因定位参数组。

12、较佳地,所述协议报文状态约束集的获取步骤为:

13、读取工业数据采集软件对应工业协议的报文结构,按照报文控制字段的排列顺序,逐项确认每个报文控制字段的位宽、编码位置和取值边界,将每个报文控制字段写入测试期间保持不变的具体常数项,定位报文负载数据内的序列号字段和模拟量字段,保留序列号字段和模拟量字段的原始位宽及编码位置,将序列号字段值和模拟量字段值分别替换为可独立赋值的符号变量,按照原始字段顺序完成报文头部、报文控制字段和报文负载数据的重新排列,得到经重组的工业数据报文;

14、根据所述经重组的工业数据报文,按照报文输入顺序逐条注入目标采集程序的网络端口,记录每条所述经重组的工业数据报文进入目标采集程序后到达的程序分支跳转位置,在每个程序分支跳转位置读取参与分支判断的寄存器取值、内存取值和报文字段映射位置,按照分支跳转地址的执行先后顺序提取各判断条件对应的路径约束条件,将路径约束条件同所述经重组的工业数据报文编号、程序分支跳转地址和分支选择方向逐项关联,生成协议报文状态约束集。

15、较佳地,所述工业协议时空状态转移矩阵的获取步骤为:

16、根据所述协议报文状态约束集,调用可满足性模理论求解器逐组检验不同状态对应路径约束条件的可满足结果,比较各状态对应的程序分支跳转地址序列、分支选择方向和控制流出口位置,将程序分支跳转地址序列相同、分支选择方向一致、控制流出口位置相同且仅序列号符号变量取值或模拟量符号变量取值不同的状态归入同一状态节点,删除归入同一状态节点的重复状态记录,读取每个状态节点形成时对应的系统时钟值,按照所述经重组的工业数据报文注入顺序为每个状态节点附加时间戳标签,将源状态节点、目标状态节点、路径约束条件和时间戳标签写入对应行列,建立工业协议时空状态转移矩阵。

17、较佳地,所述时延状态转移序列的获取步骤为:

18、根据所述工业协议时空状态转移矩阵,按照时间戳标签的排列顺序读取相邻状态节点对应工业数据报文的发送时刻,确定每组相邻工业数据报文的发送间隙,将时延数值写入发送间隙对应的报文调度位置,按照连续递增、连续递减和间隔跳变的顺序改变时延数值,逐次记录工业数据报文编号、源状态节点、目标状态节点、原始发送时刻、延后发送时刻、时延数值和目标采集程序响应状态,保持报文控制字段及报文负载数据不变,形成时延突变测试记录;

19、根据所述时延突变测试记录,按照每条工业数据报文的延后发送时刻启动内存探针,定位目标采集程序地址空间内用于记录报文接收状态、报文解析进度、分支执行状态、缓存写入位置和超时标识的状态变量地址,在工业数据报文进入网络端口、完成报文头部解析、完成报文负载数据解析、进入程序分支跳转位置和结束报文处理时分别读取状态变量取值,将状态变量地址、状态变量取值、读取时刻、工业数据报文编号和时延数值按照读取时刻依次排列,生成时延状态转移序列。

20、较佳地,所述时空异常临界图谱的获取步骤为:

21、根据所述时延状态转移序列,按照工业数据报文编号提取连续读取时刻对应的状态变量取值,逐项比较报文接收状态、报文解析进度、分支执行状态、缓存写入位置和超时标识的变化方向,筛选缓存写入位置超出目标缓冲区起始地址至终止地址范围的内存越界节点,筛选报文解析进度在允许处理时段内保持不变且超时标识发生置位的逻辑超时节点,提取每个报错中断节点对应的报文控制字段取值、报文负载字段偏移位置、报文负载字段长度、时延数值、时延注入位置和中断发生时刻,按照报错中断节点之间的状态转移关系进行关联,生成时空异常临界图谱。

22、较佳地,所述符号约束方程组的获取步骤为:

23、根据所述时空异常临界图谱,读取每个报错中断节点对应的工业数据报文编号、中断发生时刻、时延注入位置和状态转移方向,沿报错中断节点的前向状态转移关系回溯首个状态变量取值异常的工业数据报文,沿报错中断节点的后向状态转移关系检索目标采集程序恢复正常处理的工业数据报文,将首个状态变量取值异常的工业数据报文编号设为区间起点,将目标采集程序恢复正常处理的工业数据报文编号设为区间终点,按照工业数据报文发送顺序提取区间起点至区间终点之间的工业数据报文,得到工业数据报文区间;

24、根据所述工业数据报文区间,按照工业数据报文发送顺序提取每条工业数据报文对应的路径约束条件,解析每个路径约束条件对应的报文字段位宽、字段偏移位置、符号扩展方向、移位位数、按位运算关系、运算关系、数值比较关系和分支成立方向,将报文控制字段的具体常数项写入对应字段约束,将报文负载数据内的序列号符号变量和模拟量符号变量写入对应字段位置,按照程序分支跳转顺序连接位向量约束和逻辑约束,构建符号约束方程组。

25、较佳地,所述时空越界复现报文集合的获取步骤为:

26、将所述符号约束方程组中的异常分支成立条件、相邻正常分支成立条件、序列号符号变量取值范围和模拟量符号变量取值范围提交至可满足性模理论求解器,依次逆向求取进入异常分支的最小取值、进入异常分支的最大取值、退出异常分支的相邻取值和维持异常分支成立的连续取值范围,获取数据约束边界区间;根据所述数据约束边界区间,分别提取序列号符号变量和模拟量符号变量对应的区间下限数值、区间上限数值、下限相邻数值及上限相邻数值,按照报文字段位宽校验极限特征数值的编码长度,按照字段编码规则转换极限特征数值的字节排列顺序,从所述时空异常临界图谱中读取报错中断节点对应的关键时延参数、时延注入位置、中断发生时刻和工业数据报文编号,将每个极限特征数值分别绑定同一报错中断节点对应的关键时延参数,使用绑定后的极限特征数值替换测试报文内对应的序列号字段值或模拟量字段值,保留报文控制字段的具体常数项,按照原始字段偏移位置重新排列报文头部、报文控制字段和报文负载数据,重新计算报文长度标识及完整性校验字段,生成时空越界复现报文集合。

27、较佳地,所述故障根因定位参数组的获取步骤为:

28、读取所述时空越界复现报文集合中每一条复现报文绑定的关键时延参数,按照复现报文标识建立复现报文、目标时间间隔、目标采集程序网络端口之间的对应关系,根据每一条复现报文对应的目标时间间隔确定相邻复现报文的计划注入时刻,记录每一条复现报文的复现报文标识、计划注入时刻、前序复现报文标识、目标采集程序网络端口编号,按照计划注入时刻的先后顺序完成编排,生成报文注入调度序列;

29、根据所述报文注入调度序列,在每一个计划注入时刻将对应的复现报文发送至所述目标采集程序网络端口,在所述目标采集程序开始解析报文头、读取报文控制字段、处理报文负载数据的过程中,通过受控调试接口连续采集内存指令指针的跳转地址,对每一个跳转地址同步记录采集时间戳、复现报文标识、处理线程标识,按照采集时间戳对跳转地址进行排序,截取从复现报文进入报文处理流程开始至溢出报错地址首次出现为止的连续地址节点,保留每一个地址节点对应的复现报文标识、采集时间戳和处理线程标识,生成内存越界追溯路径;

30、根据所述内存越界追溯路径,定位触发溢出报错地址的地址节点,读取触发溢出报错地址的地址节点绑定的复现报文标识、采集时间戳和处理线程标识,根据复现报文标识回溯对应的复现报文,解析对应的复现报文中用于控制负载长度、数据偏移、分段位置、解析范围的报文控制字段参数,提取目标采集程序在触发溢出报错地址时实际读取或写入的越界负载数据数值,读取系统时钟记录的复现报文注入时刻时间戳参数、溢出报错出现时刻时间戳参数,按照复现报文标识和采集时间戳将报文控制字段参数、越界负载数据数值、时间戳参数进行顺序拼接,生成故障根因定位参数组。

31、本发明还提供一种系统,包括:

32、协议状态建模模块:用于将工业数据采集软件的报文控制字段设为具体常数项,将报文负载数据内的序列号与模拟量设为符号变量;向目标采集程序注入经重组的工业数据报文,提取路径约束条件,生成协议报文状态约束集;调用可满足性模理论求解器合并所述协议报文状态约束集的冗余状态,为状态节点附加时间戳标签,建立工业协议时空状态转移矩阵;

33、时空异常分析模块:用于根据所述工业协议时空状态转移矩阵注入时延数值,调用内存探针读取状态变量取值,生成时延状态转移序列;比对所述时延状态转移序列的状态变量取值差异,筛选报错中断节点,提取报错中断节点对应的协议报文字段特征与关键时延参数,生成时空异常临界图谱;

34、越界复现生成模块:用于根据所述时空异常临界图谱定位工业数据报文区间,根据工业数据报文区间内的路径约束条件构建符号约束方程组;调用所述可满足性模理论求解器推导数据约束边界区间,提取数据约束边界区间内的极限特征数值,并与关键时延参数绑定,生成时空越界复现报文集合;

35、故障追溯定位模块:用于按照所述时空越界复现报文集合中绑定的关键时延参数,将复现报文按目标时间间隔注入目标采集程序的网络端口;读取内存指令指针的跳转地址序列,生成内存越界追溯路径;提取所述内存越界追溯路径中触发溢出报错地址对应的报文控制字段参数,将报文控制字段参数、越界负载数据数值与时间戳参数进行关联拼接,输出故障根因定位参数组。

36、与现有技术相比,本发明的优点和积极效果在于:

37、本发明通过将工业数据采集软件中的报文控制字段固定为具体常数项,并将报文负载数据中的序列号及模拟量设置为符号变量,使报文结构保持协议规则稳定,同时保留负载数据的可变搜索空间,能够在不破坏工业协议格式的前提下覆盖更多异常取值组合。经重组的工业数据报文被注入目标采集程序后,持续提取程序处理过程中的路径约束条件,并形成协议报文状态约束集,使报文输入、程序分支及状态变化建立明确对应关系。可满足性模理论求解器对冗余状态进行合并,再为状态节点附加时间戳标签,使离散状态关系扩展为同时包含状态迁移顺序及时间变化特征的工业协议时空状态转移矩阵,减少重复状态对后续分析造成的干扰,并提升复杂执行路径的表达完整性。基于工业协议时空状态转移矩阵注入不同时延数值,同时读取状态变量取值,可形成反映时延变化对程序状态影响的时延状态转移序列。通过比对状态变量取值差异筛选报错中断节点,并关联协议报文字段特征及关键时延参数,能够将异常触发条件由单一数据值扩展至报文字段、程序状态及时间条件的联合关系。进一步依据时空异常临界图谱定位工业数据报文区间,利用对应路径约束条件构建符号约束方程组,再推导数据约束边界区间,可从大范围报文数据中收敛出接近异常临界位置的极限特征数值。将极限特征数值同关键时延参数绑定生成时空越界复现报文集合,使异常复现具备确定的数据边界及时间条件。按照关键时延参数完成复现报文注入,同步读取内存指令指针跳转地址序列并形成内存越界追溯路径,能够还原报文负载数据进入程序后直至触发溢出报错地址的执行轨迹。将报文控制字段参数、越界负载数据数值及时间戳参数关联拼接,可形成具有输入条件、时间条件、状态路径及内存地址依据的故障根因定位参数组,从而提高工业数据采集测试中的异常覆盖能力。