一种I/O信号的引用方法技术

技术编号:27685164 阅读:17 留言:0更新日期:2021-03-17 03:49
本发明专利技术提供一种I/O信号的引用方法,包括S1、定义好可引用的I/O信号的标识;S2、应用模块通过引用I/O信号的标识在本地创建一个与之对应的变量对象,并加入到I/O信号的标识与变量对象一一对应的映射表中;S3、根据上述映射表,通过内部通信机制建立变量对象与I/O信号的访问映射关系;S4、应用模块通过对变量对象的读写从而控制和访问I/O信号;应用模块运行时访问外部I/O信号都是通过对本地变量对象的操作实现对外部I/O信号的控制访问,程序架构分层解耦,具备I/O访问灵活高效,支持了应用模块动态加载运行的优点。

【技术实现步骤摘要】
一种I/O信号的引用方法
本专利技术属于嵌入式设备
,具体涉及一种I/O信号的引用方法。
技术介绍
嵌入式通用控制平台通常由CPU板、通信板、输入输出接口板等组成,输入输出接口板通常包括开关量输入板、开关量输出板、模拟量输入板、模拟量输出板。为了各板卡间协同工作,板卡间需要交互输入输出信号(简称I/O信号)。常规做法是:设计专用的板卡间通信协议,完成指定的信号交互,采用这种方法,只要上层应用模块(简称APP)访问I/O需求发生变化,通信协议就会修改,适应性差;或者由可视化组态工具提前生成包含板间交互信号的配置信息,下载到板卡里解析运行,这种方法依赖工具,运行时需要先解析配置信息,影响启动速度,也无法支持应用模块动态加载(运行时的外部I/O访问新需求,工具无法提前配置)运行。因此,应用模块如何灵活、高效地访问I/O信号值得进一步深入研究,同时为了解决上述问题,本申请提出了一种I/O信号的引用方法。
技术实现思路
本专利技术的目的是提供一种I/O信号的引用方法,支持应用模块运行时灵活、高效地访问I/O信号;支持应用模块动态加载运行时的I/O访问,从而解决卡板间通讯不够灵活高效的问题。本专利技术提供了如下的技术方案:一种I/O信号的引用方法,包括以下步骤:S1、定义好可引用的I/O信号的标识;S2、应用模块通过引用I/O信号的标识在本地创建一个与之对应的变量对象,并加入到I/O信号的标识与变量对象一一对应的映射表中;S3、根据上述映射表,通过内部通信机制建立变量对象与I/O信号的访问映射关系;S4、应用模块通过对变量对象的读写从而控制和访问I/O信号。优选的,所述变量对象的属性成员包括数据值、品质、时标、读操作函数以及写操作函数,所述时标用于标记I/O信号的变化时刻。优选的,所述内部通信机制建立变量对象与I/O信号的访问映射关系包括:对于输出类的I/O信号,所述内部通信机制根据映射表将变量对象的属性成员值发送到对应标识的I/O信号,继而更新I/O信号的信息;对于输入类的I/O信号,所述内部通信机制接收对应标识的I/O信号发出的状态信息,根据映射表继而更新本地的变量对象的属性成员值。优选的,所述对变量对象的读写从而控制和访问I/O信号包括:所述应用模块通过变量对象的写操作,即可更新对应标识的I/O信号值;所述应用模块通过变量对象的读操作,即可读取对应标识的I/O信号值。优选的,所述应用模块针对每个I/O信号的标识仅创建一个变量对象,若映射表中I/O信号的标识已经存在,则直接引用该I/O信号的标识对应的变量对象。本专利技术的有益效果是:本专利技术的一种I/O信号的引用方法,应用模块运行时访问I/O信号都是通过对本地变量对象的操作实现对I/O信号的控制访问,程序架构分层解耦,具备I/O访问灵活高效,支持了应用模块动态加载运行的优点。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1是本专利技术的方法流程示意图;图2是本专利技术的引用方式示意图;图3是本专利技术的实施例的控制装置I/O信号图;图4是本专利技术的实施例的映射关系示意图;图5是通过对变量对象的读写从而控制和访问I/O信号的示意图。具体实施方式如图1、图2所示,该I/O信号的引用方法,包括以下步骤:S1、定义好可引用的I/O信号的标识。S2、应用模块通过引用I/O信号的标识在本地创建一个与之对应的变量对象,并加入到I/O信号的标识与变量对象的映射表中,若映射表中I/O信号的标识已经存在,则直接引用该I/O信号的标识对应的变量对象。变量对象的属性成员包括数据值、品质、时标、读操作函数以及写操作函数,所述时标用于标记I/O信号的变化时刻。S3、通过内部通信机制建立变量对象与I/O信号的标识的访问映射关系;具体包括:对于输出类的I/O信号,所述内部通信机制根据映射表将变量对象的属性成员值发送到对应标识的I/O信号,继而更新I/O信号的信息;对于输入类的I/O信号,所述内部通信机制接收对应标识的I/O信号发出的状态信息,根据映射表继而更新本地的变量对象的属性成员值。S4、应用模块通过对变量对象的读写从而控制和访问I/O信号;具体包括应用模块通过变量对象的写操作,即可更新对应标识的I/O信号值;所述应用模块通过变量对象的读操作,即可读取对应标识的I/O信号值。以一台控制装置为例,除CPU板卡外,还包括开关量输入、开关量输出、模拟量输入、模拟量输出四大类接口板,各接口板内已固化软件,实现了各板卡对应的功能,并且定义了相应的I/O信号的标识,如图3所示:例如标识“S3.BI1”、“S3.BI2”、“S4.BO1”等,标识中S3、S4、S5、S6表示板卡号,举例:3号板卡软件运行时会将第一路开入通道当前的状态保存在信号标识“S3.BI1”对应的数据结构里,当第一路开入通道状态发生变化,3号板软件会将信号标识“S3.BI1”和开入状态值发送出去;4号板卡软件将第一路开出通道的控制信息保存在信号标识“S4.BO1”对应的数据结构里,4号板软件会实时根据数据结构里的控制命令控制第一路开关量出口。控制装置的CPU卡板上一般情况会存在多个独立的应用模块,各个应用模块需要访问不同的外部的I/O信号,同时不同应用模块也存在访问相同的外部的I/O信号的需求。具体实施时,LinkIO函数用于引用外部I/O信号的标识,该函数调用时创建本地变量对象,并加入到I/O信号的标识与本地变量对象一一对应的访问映射表中。LinkIO函数调用举例:var_obj=LinkIO(“S3.BI1”),var_obj为引用外部I/O信号的标识“S3.BI1”创建的本地变量对象。变量对象的数据结构成员在本实施中包括数据值、品质、时标等。如图4所示,应用模块访问外部的I/O信号需求及创建的本地变量对象访问映射表。应用模块1启动运行后,根据自身访问外部的I/O信号需求调用LinkIO函数创建变量对象var_obj1用于访问标识为“S3.BI1”的I/O信号;应用模块2启动后需要访问标识为“S3.BI1”、“S3.BI2”、“S3.BI3”以及“S4.BO1”的I/O信号,在创建“S3.BI1”的变量对象时,由于该I/O信号的标识对应的变量对象已被应用模块1创建,则直接引用var_obj1,接着分别创建了变量对象var_obj2、var_obj3和var_obj4;应用模块3需要访问标识为“S4.BO2”、“S4.BO3”的I/O信号,启动后创建了变量对象var_obj5和var_obj6。所有应用模块创建对象完成后,形成了I/O信号的标识与本地变量对象一一对应的访问映射表。如图5所示,通过内部通信机制实现了I/O信号与本地变量对象的访问映射,内部通信机制可以是共享内存或者是各类通信总线等,本案中采用板卡间通信总线方式,通信帧为一种自描述的信息体,格式为{I/O信号本文档来自技高网...

【技术保护点】
1.一种I/O信号的引用方法,其特征在于,包括以下步骤:/nS1、定义好可引用的I/O信号的标识;/nS2、应用模块通过引用I/O信号的标识在本地创建一个与之对应的变量对象,并加入到I/O信号的标识与变量对象一一对应的映射表中;/nS3、根据上述映射表,通过内部通信机制建立变量对象与I/O信号的访问映射关系;/nS4、应用模块通过对变量对象的读写从而控制和访问I/O信号。/n

【技术特征摘要】
1.一种I/O信号的引用方法,其特征在于,包括以下步骤:
S1、定义好可引用的I/O信号的标识;
S2、应用模块通过引用I/O信号的标识在本地创建一个与之对应的变量对象,并加入到I/O信号的标识与变量对象一一对应的映射表中;
S3、根据上述映射表,通过内部通信机制建立变量对象与I/O信号的访问映射关系;
S4、应用模块通过对变量对象的读写从而控制和访问I/O信号。


2.根据权利要求1所述的一种I/O信号的引用方法,其特征在于,所述变量对象的属性成员包括数据值、品质、时标、读操作函数以及写操作函数,所述时标用于标记I/O信号的变化时刻。


3.根据权利要求1所述的一种I/O信号的引用方法,其特征在于,所述内部通信机制建立变量对象与I/O信号的访问映射关系包括:
对于输出类的...

【专利技术属性】
技术研发人员:冯亚东李秋华丁子民朱继红
申请(专利权)人:苏州云电电力科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1