掌桥专利:专业的专利平台
掌桥专利
首页

一种用于工业类IO设备的软件设计方法和系统

文献发布时间:2024-04-18 19:58:21


一种用于工业类IO设备的软件设计方法和系统

技术领域

本发明涉及软硬件设计技术领域,具体而言,涉及一种用于工业类IO设备的软件设计方法和系统。

背景技术

在常规的嵌入式软件开发流程中通常需要经过以下步骤:需求分析、功能设计、编码实现、系统测试、发布维护等,通过上述步骤实现产品的整个生命周期,在开发过程中往往是软硬件同时开工,这就不可避免的产生由于前期工作准备不足或其他意外情况导致事实功能与设计功能出现一定偏差。同时嵌入式软件开发中特定功能又极度依赖于硬件设计,对于开发中一些小的功能变更如数字量输入输出通道绑定、模拟量采集通道变更等无法做到灵活调整,对于后续推出相同定位产品但配置不同的产品,需要对单一硬件设备采用单独的固件进行烧录和升级对后期管理维护都带来了额外的开支。

有鉴于此,为了解决这类同定位不同配置产品的固件问题,本发明提出了一种用于工业类IO设备的软件设计方法和系统,通过在应用程序中加载配置文件后解析执行即可根据配置文件初始化成不同的配置,以适应不同的产品。

发明内容

本发明的目的在于提供一种用于工业类IO设备的软件设计方法,包括:定义系统软件中的可配置项;基于硬件设备的配置和所述可配置项,创建配置文件;解析所述配置文件,得到配置结构;基于所述配置结构,对所述系统软件进行驱动统一初始化。

进一步的,所述配置文件使用JSON格式进行保存,至少包括产品名称、版本号、配置点和详细点位配置。

进一步的,通过C语言库对所述配置文件进行JSON字符串解析,得到所述配置结构,包括:定义结构体形式;将所述结构体形式组合成可配置对象;通过动态内存申请的方式,基于所述可配置对象,解析所述配置文件,得到所述配置结构。

进一步的,所述可配置对象至少包括产品名称、版本号、配置点和详细点位配置。

进一步的,基于所述配置结构,对所述系统软件进行驱动统一初始化,包括:判断所述可配置项中是否被设置有初始化标志;若设置有所述初始化标志,则加载所述配置结构,并对所述系统软件进行初始化;若未设置有所述初始化标志,则加载所述配置文件,并判断所述配置文件是否损坏;若所述配置文件损坏,则进行提示;若所述配置文件未损坏,则解析所述配置文件,并判断是否解析成功;若未解析成功,则重新加载所述配置文件,并解析;若解析成功,则将所述初始化标志写入到所述可配置项中,并加载所述配置结构,对所述系统软件进行初始化。

本发明的目的在于提供一种用于工业类IO设备的软件设计系统,包括可配置项确定模块、配置文件生成模块、解析器和执行器;所述可配置项确定模块用于定义系统软件中的可配置项;所述配置文件生成模块用于基于硬件设备的配置和所述可配置项,创建配置文件;所述解析器用于解析所述配置文件,得到配置结构;所述执行器用于基于所述配置结构,对所述系统软件进行驱动统一初始化。

进一步的,所述配置文件使用JSON格式进行保存,至少包括产品名称、版本号、配置点和详细点位配置。

进一步的,所述解析器通过C语言库对所述配置文件进行JSON字符串解析,得到所述配置结构,包括:定义结构体形式;将所述结构体形式组合成可配置对象;通过动态内存申请的方式,基于所述可配置对象,解析所述配置文件,得到所述配置结构。

进一步的,所述可配置对象至少包括产品名称、版本号、配置点和详细点位配置。

进一步的,所述执行器基于所述配置结构,对所述系统软件进行驱动统一初始化,包括:判断所述可配置项中是否被设置有初始化标志;若设置有所述初始化标志,则加载所述配置结构,并对所述系统软件进行初始化;若未设置有所述初始化标志,则加载所述配置文件,并判断所述配置文件是否损坏;若所述配置文件损坏,则进行提示;若所述配置文件未损坏,则解析所述配置文件,并判断是否解析成功;若未解析成功,则重新加载所述配置文件,并解析;若解析成功,则将所述初始化标志写入到所述可配置项中,并加载所述配置结构,对所述系统软件进行初始化。

本发明实施例的技术方案至少具有如下优点和有益效果:

本发明提供的用于工业类IO设备的软件设计方法和系统,可以使得多种相同定位硬件产品仅需要一个固件,避免一机一码,提高了硬件开发效率。

本发明通过配置文件和配置结构可以灵活配置每个硬件产品的点位。

本发明提供的用于工业类IO设备的软件设计方法和系统,软硬件分离,不依赖于具体硬件平台,移植仅需替换执行器。

附图说明

图1为本发明提供的一种用于工业类IO设备的软件设计方法的示例性流程图;

图2为本发明提供的一种用于工业类IO设备的软件设计系统的示例性模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

图1为本发明提供的一种用于工业类IO设备的软件设计方法的示例性流程图。流程100可以由系统200执行。流程200可以包括以下内容:

步骤110,定义系统软件中的可配置项。

系统软件可以是指硬件设备的固件。可配置项是指允许用户在不修改源代码的情况下进行配置的参数、选项和设置等。这些可配置项允许用户根据不同的硬件平台来自定义软件(固件)的功能,以适应不同的硬件设备。可以通过硬件设备的需求和端口设置可配置项。

步骤120,基于硬件设备的配置和所述可配置项,创建配置文件。配置文件是一种用于存储程序、应用程序或系统设置、选项和参数的文本文件。通常包含键值对、属性、标记等,用来配置软件在运行时的功能。配置文件允许用户或管理员在不修改源代码的情况下,自定义和调整程序的设置,以适应不同的需求和环境。在一些实施例中,所述配置文件使用JSON格式进行保存,至少包括产品名称、版本号、配置点和详细点位配置等。使得配置文件易于阅读和理解,方便地通过解析器解析成配置结构,从而进行存储、加载和校验。例如,配置文件可以为{"name":"XXX","ver":0.1,"DI":1,"DO":1,"AI":1,"DIGroup":[{"ch":0,"port":0,"pin":0,"lport":0,"lpin":0}],"DOGroup":[{"ch":1,"port":0,"pin":1,"lport":0,"lpin":1}],"AIGroup":[{"ch":2,"port":0,"pin":2,"lport":0,"lpin":2}]}

系统130,解析所述配置文件,得到配置结构。

配置结构是指在配置文件中定义的数据布局和组织方式。描述了配置项、参数、设置等在配置文件中的排列和关系。配置结构决定了如何存储和组织不同配置信息,以便程序能够正确地读取和使用这些信息。在一些实施例中,通过C语言库对所述配置文件进行JSON字符串解析,得到所述配置结构,包括:定义结构体形式;将所述结构体形式组合成可配置对象;通过动态内存申请的方式,基于所述可配置对象,解析所述配置文件,得到所述配置结构。所述可配置对象至少包括产品名称、版本号、配置点和详细点位配置。例如,可配置对象的结构可以为typdef struct{uint8_t*name;uint8_t*ver;uint8_t DI_cnt;uint8_t DO_cnt;uint8_t AI_cnt;cfg_pin_t*DI_Group;cfg_pin_t*DO_Group;cfg_pin_t*AI_Group;}cfg。

系统140,基于所述配置结构,对所述系统软件进行驱动统一初始化。在一些实施例中,基于所述配置结构,对所述系统软件进行驱动统一初始化,包括:判断所述可配置项中是否被设置有初始化标志;若设置有所述初始化标志,则加载所述配置结构,并对所述系统软件进行初始化;若未设置有所述初始化标志,则加载所述配置文件,并判断所述配置文件是否损坏;若所述配置文件损坏,则进行提示;若所述配置文件未损坏,则解析所述配置文件,并判断是否解析成功;若未解析成功,则重新加载所述配置文件,并解析;若解析成功,则将所述初始化标志写入到所述可配置项中,并加载所述配置结构,对所述系统软件进行初始化。

初始化标志用于将特定的标志或标识写入到可配置项中,以表示该配置项已经完成初始化。

图2为本发明提供的一种用于工业类IO设备的软件设计系统的示例性模块图。如图2所示,系统200包括可配置项确定模块210、配置文件生成模块220、解析器230和执行器240。

可配置项确定模块210用于定义系统软件中的可配置项.

配置文件生成模块220用于基于硬件设备的配置和所述可配置项,创建配置文件。其中,所述配置文件使用JSON格式进行保存,至少包括产品名称、版本号、配置点和详细点位配置。

解析器230用于解析所述配置文件,得到配置结构。解析使用C语言库进行JSON字符串解析,通过定义结构体形式将其组合成可以配置对象,其基本结构与JSON字符串一致,主要部分均采用动态内存申请方式。其中,所述解析器通过C语言库对所述配置文件进行JSON字符串解析,得到所述配置结构,包括:定义结构体形式;将所述结构体形式组合成可配置对象;通过动态内存申请的方式,基于所述可配置对象,解析所述配置文件,得到所述配置结构。其中,所述可配置对象至少包括产品名称、版本号、配置点和详细点位配置。

执行器240用于基于所述配置结构,对所述系统软件进行驱动统一初始化。执行器主要根据解析器生成的配置结构体对系统配置进行驱动统一初始化。针对不同单片机需要移植官方驱动层。其中,所述执行器基于所述配置结构,对所述系统软件进行驱动统一初始化,包括:判断所述可配置项中是否被设置有初始化标志;若设置有所述初始化标志,则加载所述配置结构,并对所述系统软件进行初始化;若未设置有所述初始化标志,则加载所述配置文件,并判断所述配置文件是否损坏;若所述配置文件损坏,则进行提示;若所述配置文件未损坏,则解析所述配置文件,并判断是否解析成功;若未解析成功,则重新加载所述配置文件,并解析;若解析成功,则将所述初始化标志写入到所述可配置项中,并加载所述配置结构,对所述系统软件进行初始化。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种用于工业设备检修的加密方法及系统
  • 一种集群系统中IO请求的处理方法、装置及相关设备
  • 一种运用于工业自动化设备的远程监控系统
  • 一种工业设备风险分析方法、系统及相关设备
  • 一种基于IO场景识别的读加速方法、装置及电子设备
  • 用于触摸显示工业控制器的IO处理动态重构系统及方法
  • 基于外部中断的嵌入式平台IO设备动态识别系统及该系统的IO设备动态识别方法
技术分类

06120116481690