一种开关量数据的处理方法、装置、设备、介质及产品与流程
本发明涉及工业自动化,尤其涉及一种开关量数据的处理方法、装置、设备、介质及产品。
背景技术:
1、铁路行业涉及大量设备监控需求,如信号设备状态、道岔位置、轨道电路占用、供电设备运行状态等,这些设备均以开关量形式输出状态信号。组态软件广泛应用于工业自动化领域,用于实时采集和控制现场设备的数据。组态软件通常以点(tag/point)为基本数据单元来组织和管理数据,每个点对应一个设备参数,例如温度值、压力值或设备的运行状态等。在实际工程应用中,往往需要将组态软件采集到的数据转发至上层关系数据库,供管理信息系统或第三方应用使用。目前,组态软件对外提供数据转发的方式主要包括以下几种。(1)通过操作系统提供的开放式数据库连接(odbc)接口将组态数据直接写入关系数据库,该方法需要为每个数据点配置数据源和表字段映射关系,配置过程繁琐且容易出错。(2)调用组态软件内置的ado(activex数据对象)组件,在脚本中编写sql语句执行数据插入或更新操作,该方法需要具备一定的编程能力,且频繁的数据库操作会增加组态软件的运行负载。(3)利用组态软件自带的专用数据转发工具(如odbcrouter),通过图形化界面配置数据映射规则实现转发。
2、现有方案均基于各数据点独立转发的方式实现数据导出,即每个数据点逐一写入数据库或逐一对外输出。当需要转发的数据点数量较大时,这种逐点转发方式会导致通信报文数量激增,占用大量网络带宽和处理器资源。此外,上述方案中数据转发功能与组态软件的主程序运行在相同进程或线程环境中,一旦数据库连接异常、网络闪断或sql语句执行缓慢,会直接阻塞组态软件的画面刷新和实时数据采集等主要功能,影响系统的正常运行。
技术实现思路
1、本发明提供了一种开关量数据的处理方法、装置、设备、介质及产品,以解决现有组态软件在转发开关量数据时逐点转发效率低且数据转发功能影响组态主程序正常运行的问题。
2、根据本发明的一方面,提供了一种开关量数据的处理方法,包括:
3、在满足预设触发条件时获取各开关量数据点的状态值;
4、根据预设的开关量数据点与模拟量寄存器之间的位映射关系,将各状态值写入至少一个模拟量寄存器的对应数据位中,生成组合数据;所述位映射关系中,一个模拟量寄存器的每一数据位唯一对应一个开关量数据点;
5、将各所述模拟量寄存器映射至通信协议的寄存器地址空间,通过数据服务进程监听基于所述通信协议的读取请求;
6、当所述数据服务进程接收到外部接口程序的读取请求时,将所述组合数据发送至所述外部接口程序,所述组合数据用于供所述外部接口程序按照所述位映射关系解码后写入关系数据库。
7、根据本发明的另一方面,提供了一种开关量数据的处理装置,包括:
8、状态值获取模块,用于在满足预设触发条件时获取各开关量数据点的状态值;
9、组合数据生成模块,用于根据预设的开关量数据点与模拟量寄存器之间的位映射关系,将各状态值写入至少一个模拟量寄存器的对应数据位中,生成组合数据;所述位映射关系中,一个模拟量寄存器的每一数据位唯一对应一个开关量数据点;
10、协议服务模块,用于将各所述模拟量寄存器映射至通信协议的寄存器地址空间,通过数据服务进程监听基于所述通信协议的读取请求;
11、数据转发模块,用于当所述数据服务进程接收到外部接口程序的读取请求时,将所述组合数据发送至所述外部接口程序,所述组合数据用于供所述外部接口程序按照所述位映射关系解码后写入关系数据库。
12、根据本发明的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本发明任一实施例所述的开关量数据的处理方法。
13、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
14、至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的开关量数据的处理方法。
15、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的开关量数据的处理方法。
16、根据本发明的另一方面,提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现如本发明任一实施例所述的开关量数据的处理方法。
17、本发明实施例通过将多个开关量数据点的状态值按位组合写入模拟量寄存器的对应数据位中生成组合数据,使原本需要逐一传输的多个开关量数据点被整合为少量的模拟量寄存器数值,显著减少了数据转发过程中的报文数量和通信频次;通过将模拟量寄存器映射至通信协议的寄存器地址空间并由独立于组态主程序的数据服务进程对外提供服务,使数据转发功能与组态软件的主程序运行隔离;通过外部接口程序独立读取组合数据并解码写入关系数据库,使数据库写入操作与组态软件主程序解耦,即使数据库连接异常或写入缓慢也不会影响组态软件的画面刷新和实时数据采集等主要功能,保证了组态软件的运行稳定性。
18、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种开关量数据的处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述模拟量寄存器通过在组态界面中创建模拟量数据点的方式预先配置;所述位映射关系中,以模拟量寄存器为单位配置映射条目,每个映射条目记录该模拟量寄存器的地址及该模拟量寄存器中每一位所绑定的开关量数据点的标签。
3.根据权利要求2所述的方法,其特征在于,所述位映射关系以配置文件形式分别存储于组态软件所在设备和外部接口程序所在设备;所述将各状态值写入至少一个模拟量寄存器的对应数据位中,包括:
4.根据权利要求1所述的方法,其特征在于,所述通信协议为modbus协议;所述数据服务进程由组态软件启动,作为modbus从站响应外部接口程序的读取请求。
5.根据权利要求1所述的方法,其特征在于,所述外部接口程序根据所述数据服务进程所在设备的网络地址及端口号向所述数据服务进程发起连接,所述外部接口程序接收到所述组合数据后,根据所述位映射关系将所述组合数据解码为各开关量数据点的状态值,并通过数据库连接将各开关量数据点的状态值写入关系数据库。
6.根据权利要求1所述的方法,其特征在于,所述预设触发条件为定时触发,所述组合数据按照组态软件的运行周期定时生成。
7.一种开关量数据的处理装置,其特征在于,所述装置包括:
8.一种电子设备,其特征在于,所述电子设备包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的开关量数据的处理方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的开关量数据的处理方法。