一种面向多工业场景的配置参数双状态管理系统及方法与流程
本发明涉及工业自动化控制软件及计算机信息数据管理,尤其涉及一种面向多工业场景的配置参数双状态管理系统及方法。
背景技术:
1、在工业自动化控制领域,如安全仪表系统(sis)中,软件系统往往需要高并发地处理来自硬件层、通信层、用户交互层的配置参数。目前的工业配置管理机制主要存在以下缺陷:
2、1、运行风险高:用户的参数修改往往即时生效,若在系统运行过程中发生误操作,由于缺乏有效的“初始持久化状态”与“用户运行时修改状态”的物理隔离,极易导致下位机或工业现场系统崩溃,且难以实现一键无缝回滚。
3、2、多线程冲突与脏读:工业软件内部常驻有日志诊断线程、示波器数据刷新线程、通信高频吞吐线程等。当多线程同时读取配置,而用户同时在界面修改配置时,传统的互斥锁机制容易导致系统吞吐率下降甚至发生死锁,或读出处于中间状态的“脏数据”。
4、3、架构耦合度高:sis系统通常集成了组态软件、诊断软件、soe软件等,传统参数管理将所有子系统的校验逻辑硬编码在一起,无法根据工程类型动态进行参数剪裁。
5、针对上述问题,现有技术通常采用“单内存拷贝+全局互斥锁”或“整树拷贝的读写分离(双缓冲)”技术,但前者存在高并发下性能瓶颈极高、死锁风险大的缺陷;后者则存在内存开销巨大、缺乏原子维度的状态追踪与上下文联动等问题,不适合轻量级、嵌入式或高频响应的工业场景。
技术实现思路
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、步骤s1,初始化与加载阶段:获取当前的工业工程场景标签,并向所述多路全局锁调度单元申请独占写锁,解析物理配置文件,动态激活对应的参数拓扑分支,将参数初始值同时写入所述第一存储区间和所述第二存储区间,随后释放所述独占写锁;
26、步骤s2,高并发线程安全读取阶段:接收外部业务线程携带路由标识的读取请求,申请并获取共享读锁,根据路由标识的真假定向读取第一存储区间或第二存储区间的值,返回数据后释放共享读锁;
27、步骤s3,基于边界约束的排他改写阶段:接收参数改写请求及原始目标值,申请并获取独占写锁,触发参数上下文联动校验机制动态计算安全边界,对原始目标值进行边界约束截断计算得到安全合法值,将安全合法值写入第二存储区间,并释放独占写锁;
28、步骤s4,双状态数据的回滚与同步阶段:响应取消指令将第一存储区间值覆盖至第二存储区间,或响应保存指令将第二存储区间值持久化并覆盖至第一存储区间。
29、进一步,所述方法还包含一种基于写时复制的变通方式:初始化时,参数双状态原子封装单元的内部指针共享同一物理内存;当接收到写入请求时,在独占写锁保护下复制出新内存并写入修改值,将第二存储区间的指针重定向到所述新内存。
30、可见,本发明提出的方案,通过在最底层实现参数对象原子级的“双槽位”封装,利用“多路读写锁+布尔标签”的动态条件路由实现了高并发下读操作的零延迟与写操作的安全隔离。同时将边界约束内聚于原子存储层,从数据源头保证了系统的安全健壮性。即使在上位机操作员频繁试验参数的极限情况下,下位机控制线程读取到的依然是高可靠的持久化基准稳定配置,彻底消除了中间态脏读和误操作瘫痪风险,显著提升了工业生产的本质安全和软件吞吐率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com