一种面向大语言模型的PLC工程文件解析与安全直写编辑方法及系统与流程

摘要: 本发明属于工业自动化与人工智能交叉,具体涉及一种面向大语言模型的plc工程文件解析与安全直写编辑方法及系统。背景技术:1、可编程逻辑控制器(plc,progra...
一种面向大语言模型的PLC工程文件解析与安全直写编辑方法及系统与流程

本发明属于工业自动化与人工智能交叉,具体涉及一种面向大语言模型的plc工程文件解析与安全直写编辑方法及系统。

背景技术:

1、可编程逻辑控制器(plc,programmable logic controller)广泛应用于工业自动化领域,其工程文件包含梯形图程序、设备注释、硬件配置等核心数据,是工业控制系统的重要组成部分。然而,现有技术在以下三个方面存在明显不足:

2、1、plc工程文件格式封闭,非专业人员难以介入。主流plc编程软件采用私有封闭格式存储工程文件,文件内部结构及数据库组织方式均未公开。用户必须依赖厂商提供的专用软件方可打开、查看或编辑工程内容。对于不具备plc编程背景的维护人员、工程管理人员或系统集成人员而言,理解和修改plc工程的门槛极高,严重制约了工业现场的运维效率。目前尚无面向非专业用户的plc工程内容提取与可读化呈现工具。

3、2、大语言模型无法直接处理plc工程数据,人机交互存在断层。 大语言模型在代码理解、自然语言交互及自动化推理方面具备显著能力,但现有plc工程文件以封闭二进制或私有数据库格式存储,大语言模型无法直接读取和理解其内容。缺乏将plc工程数据结构化转化并向大语言模型开放的标准接口与方法,导致ai辅助plc程序理解与修改的应用场景难以落地。

4、3、plc程序修改依赖厂商软件,缺乏可编程的安全直写机制。 现有plc程序的修改必须通过厂商专用开发环境完成,操作步骤繁琐,且无法以编程方式批量执行或由ai自动驱动。目前尚无针对plc工程文件内嵌数据库进行直接写入操作的系统性方法,亦缺乏对直写过程中数据完整性与工程文件合法性的有效保障机制,制约了plc程序自动化修改的工程化应用。

技术实现思路

1、本发明旨在提供一种面向大语言模型的plc工程文件解析与安全直写编辑方法及系统,以解决现有技术中plc工程文件格式封闭,非专业人员难以介入、大语言模型无法直接处理该plc工程文件数据,人机交互存在断层以及该plc工程文件修改依赖厂商软件,缺乏可编程的安全直写机制的问题。

2、为实现上述目的,本发明提供如下技术方案:

3、一种面向大语言模型的plc工程文件解析与安全直写编辑方法,包括以下步骤:

4、s1:将目标plc工程文件作为压缩容器解压,识别其中的成员文件,得到成员文件清单;所述成员文件包括数据库文件、二进制编译产物和硬件配置文件;

5、s2:基于各所述数据库文件的文件名中的程序组标识,将属于同一程序组的多个所述数据库文件配对,生成程序组映射关系;

6、s3:启动与所述plc工程文件对应的编程软件,获取所述plc工程文件被所述编程软件加载时生成的运行时缓存数据,将所述成员文件清单中的各成员文件与所述缓存数据中的同名文件建立双向映射关系,生成缓存对比报告;

7、s4:基于所述程序组映射关系和所述缓存对比报告生成结构化报告,所述结构化报告包含强制读序约束,所述强制读序约束用于限定大语言模型读取所述结构化报告中各数据文件的顺序;

8、s5:由大语言模型按照所述强制读序约束读取所述结构化报告中的各数据文件,基于自然语言修改意图生成修改计划,并对所述修改计划进行合法性校验;

9、s6:根据通过合法性校验的所述修改计划,对所述plc工程文件执行数据库直写操作,所述数据库直写操作仅对所述数据库文件执行写入,对所述二进制编译产物和所述硬件配置文件保持原有字节不变,且仅允许写入属于允许写入类型的程序块,得到修改后的数据库文件,对所述修改后的数据库文件执行完整性校验,校验通过后按所述缓存对比报告中的成员映射关系将修改后的数据库文件同步替换回所述plc工程文件的压缩容器,校验不通过时回滚至修改前状态;

10、s7:将更新后的工程文件重新封装为plc工程文件,并记录审计日志。

11、优选地,所述基于各所述数据库文件的文件名中的程序组标识,将属于同一程序组的多个所述数据库文件配对,生成程序组映射关系,包括:所述数据库文件包括梯形图数据库、变量数据库和步骤信息数据库;所述程序组标识为所述数据库文件的文件名中的哈希前缀;以各所述数据库文件的文件名中的哈希前缀为关联键,将同一哈希前缀下的所述梯形图数据库、所述变量数据库和所述步骤信息数据库归并为一个程序组;以所述梯形图数据库中的梯形图物理块总数与所述步骤信息数据库中的登记块总数进行比对,以校验所述归并是否正确;其中,所述梯形图物理块总数为所述梯形图数据库中实际存储的程序逻辑块数量,所述登记块总数为所述步骤信息数据库中记录的步骤索引数量,来自同一程序组的所述梯形图物理块总数与所述登记块总数应当一致;当所述梯形图物理块总数与所述登记块总数一致时,确认所述归并正确,生成所述程序组映射关系;当所述梯形图物理块总数与所述登记块总数不一致时,标记告警并禁止该程序组执行写入操作。

12、优选地,所述获取所述plc工程文件被所述编程软件加载时生成的运行时缓存数据,包括:记录所述编程软件的缓存根目录下所有已有会话目录的状态,形成基线快照;通过系统默认关联程序打开所述plc工程文件,触发所述编程软件加载所述plc工程文件并向所述编程软件的缓存目录写入运行时缓存数据;以0.5秒为间隔轮询监控所述缓存根目录,识别所述基线快照之后新增或最新修改时间发生变化的会话目录;对识别出的会话目录,基于其文件数量、累计字节数和最新修改时间进行稳态判定,当所述文件数量、累计字节数和最新修改时间连续8秒保持不变且总等待时长不少于10秒时,判定所述会话目录的缓存写入完成,所述会话目录达到稳态;对所述会话目录中的目标工程子目录单独执行二次稳态判定,当所述目标工程子目录的文件数量、累计字节数和最新修改时间连续8秒保持不变时,判定所述目标工程子目录的缓存写入完成,所述目标工程子目录达到稳态;关闭本次启动的所述编程软件进程;将所述会话目录复制至工作区,作为所述运行时缓存数据。

13、优选地,所述强制读序约束通过以下方式实现:通过唯一入口路径绑定,限定所述大语言模型的读取请求仅通过统一入口发起;通过读取状态串行锁,使多个读取请求按预设顺序执行;通过前置顺序校验,在每次读取请求执行前校验当前请求读取的结构化报告是否符合所述预设顺序中应读的结构化报告;通过读取时序日志核验,记录读取请求的时间戳及报告标识。

14、优选地,所述对所述修改计划进行合法性校验,包括:对所述修改计划中每条写入操作的程序块类型进行允许类型校验,确认所述修改计划中每条写入操作的程序块类型是否属于允许写入类型的程序块,若属于则通过校验,若不属于则判定校验不通过;确认所述修改计划中目标数据库文件的文件名与所述结构化报告中的程序组结构记录是否一致,若一致则通过校验,若不一致则判定校验不通过;验证所述修改计划中设备地址是否在有效范围内,所述有效范围包括所述plc工程文件对应型号的plc官方规定的软元件地址区间以及所述硬件配置文件中记录的本机实际硬件分配地址,若在所述有效范围内则通过校验,若超出则判定校验不通过。

15、优选地,所述允许写入类型的程序块包括blocktype=0的真实梯形图块与blocktype=5的end终止块;禁止写入blocktype=1的行注释块与blocktype=2的标题块;所述end终止块允许对已存在的end终止块进行位置更新,或在end终止块缺失时补写一个end终止块,禁止新增多个end终止块。

16、优选地,所述对所述修改后的数据库文件执行完整性校验,包括:对每个被修改的数据库文件执行pragma integrity_check,以确认所述数据库文件的内部结构是否完整;当全部数据库文件返回ok时,判定校验通过;当任一数据库文件返回异常时,触发全过程回滚至修改前状态。

17、本发明还提供一种面向大语言模型的plc工程文件解析与安全直写编辑系统,包括:

18、容器解析模块,被配置为将目标plc工程文件作为压缩容器解压,识别其中的成员文件,得到成员文件清单;所述成员文件包括数据库文件、二进制编译产物和硬件配置文件;

19、程序组配对模块,被配置为基于各所述数据库文件的文件名中的程序组标识,将属于同一程序组的多个所述数据库文件配对,生成程序组映射关系;

20、缓存捕获与映射模块,被配置为启动与所述plc工程文件对应的编程软件,获取所述plc工程文件被所述编程软件加载时生成的运行时缓存数据,将所述成员文件清单中的各成员文件与所述缓存数据中的同名文件建立双向映射关系,生成缓存对比报告;

21、结构化报告生成模块,被配置为基于所述程序组映射关系和所述缓存对比报告生成结构化报告,所述结构化报告包含强制读序约束,所述强制读序约束用于限定大语言模型读取所述结构化报告中各数据文件的顺序;

22、大语言模型决策模块,被配置为由大语言模型按照所述强制读序约束读取所述结构化报告中的各数据文件,基于自然语言修改意图生成结构化修改计划,并对所述结构化修改计划进行合法性校验;

23、安全直写与校验模块,被配置为根据通过合法性校验的所述结构化修改计划,对所述plc工程文件执行数据库直写操作,所述数据库直写操作仅对所述数据库文件执行写入,对所述二进制编译产物和所述硬件配置文件保持原有字节不变,且仅允许写入属于允许写入类型的程序块,得到修改后的数据库文件,并对所述修改后的数据库文件执行完整性校验,校验通过后根据所述缓存对比报告中的成员映射关系将修改后的数据库文件同步替换回所述plc工程文件的压缩容器,校验不通过时回滚至修改前状态;

24、封装与审计模块,被配置为将更新后的工程文件重新封装为plc工程文件,并记录审计日志。

25、优选地,所述安全直写与校验模块执行数据库直写操作时,仅允许写入blocktype值为0的真实梯形图块和blocktype值为5的end终止块,拒绝写入blocktype值为1的行注释块和blocktype值为2的标题块;所述end终止块允许对已存在的end终止块进行位置更新,或在end终止块缺失时补写一个end终止块,禁止新增多个end终止块。

26、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一技术方案所述的方法。

27、本发明与现有技术相比,具备如下有益效果:

28、1.打破封闭格式壁垒,显著降低了plc工程理解门槛。现有技术要求操作人员必须具备plc专业知识并依赖厂商专用软件方可查看工程内容。本发明通过自主研发的解析软件,将封闭格式 plc工程文件转化为标准化结构化数据,使不具备plc编程背景的维护人员、管理人员及系统集成人员无需安装或操作厂商软件,即可快速获取梯形图程序结构、设备注释及硬件配置等核心工程信息,大幅降低工业现场的运维与管理门槛。

29、2.实现大语言模型与plc工程数据的有效接入。现有技术中大语言模型无法直接读取和理解plc工程文件内容,ai辅助plc编程缺乏数据基础。本发明通过建立结构化报告体系与强制读序约束机制,为大语言模型提供可直接消费的plc工程数据接口。所述强制读序通过唯一入口路径绑定、读取状态串行锁、前置顺序校验、时序日志核验等程序层面硬性规则实现,强制大语言模型按预设顺序读取结构化报告,从机制上降低因上下文缺失导致的理解偏差。使大语言模型能够准确理解梯形图语义、解释设备逻辑,并将非专业用户的自然语言指令转化为可执行的程序修改方案,实现了工业控制程序领域人机自然语言的交互。

30、3.实现无需厂商软件的plc工程文件安全直写编辑,支持自动化修改流程。现有技术对plc工程文件的任何修改均须通过厂商开发环境手动操作完成,无法以编程方式驱动或自动化执行。本发明通过直接操作工程文件内嵌数据库实现程序修改,结合块类型合法性白名单、设备地址范围校验及完整性校验机制,保障修改数据的合法性与工程文件的可识别性;修改全程不覆盖原始文件,以新文件形式导出,确保操作的安全性与可追溯性,为plc程序的批量修改与ai自动化编辑提供了工程化实现路径。

31、4.三项核心技术协同形成完整闭环,具备良好的工程实用性。解析软件、大语言模型接入机制与数据库直写编辑三项技术相互配合,构成从工程文件读取、ai理解决策到程序安全修改的完整技术闭环,已在实际工业plc工程项目中完成验证,修改后工程文件经编程软件校验编译通过,证明本发明具备直接落地应用的工程实用价值。