CN111124384A - 基于json的io与控制逻辑组态的集成方法 - Google Patents

基于json的io与控制逻辑组态的集成方法 Download PDF

Info

Publication number
CN111124384A
CN111124384A CN201911335599.3A CN201911335599A CN111124384A CN 111124384 A CN111124384 A CN 111124384A CN 201911335599 A CN201911335599 A CN 201911335599A CN 111124384 A CN111124384 A CN 111124384A
Authority
CN
China
Prior art keywords
data
json
json file
interface
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911335599.3A
Other languages
English (en)
Other versions
CN111124384B (zh
Inventor
朱昊林
李晓磊
刘阳
张伟
房耿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AECC Aero Engine Control System Institute
Original Assignee
AECC Aero Engine Control System Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AECC Aero Engine Control System Institute filed Critical AECC Aero Engine Control System Institute
Priority to CN201911335599.3A priority Critical patent/CN111124384B/zh
Publication of CN111124384A publication Critical patent/CN111124384A/zh
Application granted granted Critical
Publication of CN111124384B publication Critical patent/CN111124384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于JSON的IO与控制逻辑组态的集成方法,其包括如下步骤:步骤1、根据控制代码中IO数据的结构体封装格式,编写JSON文件,所述编写的JSON文件与控制代码中IO数据的结构体的层次保持一致;步骤2、在组态软件的工程中建立与上述JSON文件每一层级相对应的数据类;步骤3、编写JSON文件读取的函数ReadJSON以及JSON文件写入的函数WriteJSON;步骤4、形成接口数据的集成功能函数UpdateSoftJosnData;在每次组态软件启动、或IO接口信号发生变化后,都调用此函数进行接口数据的更新。本发明通过JSON可快速的生成接口交换文件,高效的输出依赖接口资源数据,大大提升数据交换的效率;同时利用JSON的清晰简洁的自描述能力,实现对整个依赖资源的完整描述。

Description

基于JSON的IO与控制逻辑组态的集成方法
技术领域
本发明涉及一种集成方法,尤其是一种基于JSON的IO与控制逻辑组态的集成方法,属于JSON数据交互的技术领域。
背景技术
IO信号与控制逻辑的集成是组态开发过程中不可或缺的功能,它的作用是将控制软件的逻辑部分与硬件接口模块、通讯模块集成在一起,实现模块间的数据交换。
组态化开发是目前燃机轮机市场上的主流方式,它具有用户界面友好、维护管理方便、解决方案一站式服务等优点,能够使用户经过培训,不必掌握具体的编程语言就可以搭建或更改自己的产品控制软件,需求支持自由度高。目前,国外先进的燃气轮机供应商均已拥有自己的组态化开发平台,这给国内燃机轮机的自主研发带来了压力和挑战。
燃气轮机控制系统控制软件具有硬件信号数量多、通讯数据量大、控制逻辑复杂、安全性要求高等特点。因为IO信号数据量大、格式复杂、形式多样,这些数据往往都需要以不同的数据结构体进行接收和存储,而在控制软件开发过程中需要频繁、大量地引用这些数据,造成模块间耦合度高、数据关系复杂,开发维护成本高等问题。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于JSON的IO与控制逻辑组态的集成方法,其通过JSON可快速的生成接口交换文件,高效的输出依赖接口资源数据,大大提升数据交换的效率;同时利用JSON的清晰简洁的自描述能力,实现对整个依赖资源的完整描述。
按照本发明提供的技术方案,一种基于JSON的IO与控制逻辑组态的集成方法,所述集成方法包括如下步骤:
步骤1、根据控制代码中IO数据的结构体封装格式,编写JSON文件,所述编写的JSON文件与控制代码中IO数据的结构体的层次保持一致;
步骤2、在组态软件的工程中建立与步骤1中JSON文件每一层级相对应的数据类;
步骤3、编写JSON文件读取的函数ReadJSON 以及JSON文件写入的函数WriteJSON ,通过ReadJSON 能从JSON文件读取数据到数据类对象,并将所述读取的数据类型对象返回调用,通过WriteJSON 能将传入的数据类对象写入JSON文件,且返回写成功标志;
步骤4、形成接口数据的集成功能函数UpdateSoftJosnData ,用ReadJSON 读取步骤1中建立的JSON文件数据到步骤2中数据类的实例中,然后处理IO数据并更新数据类的实例,最后调用WriteJSON 将数据类的实例写回JSON文件;在每次组态软件启动、或IO接口信号发生变化后,都调用此函数进行接口数据的更新,即更新上述JSON文件的“"ChanDatas":[]”。
步骤1中,在JSON文件中,需要对控制代码中每层IO数据的结构体的结构体名称、数据类型、数据定义、描述信息进行填充,并预留信号接口。
本发明的优点:在IO接口组态软件的开发中,使用JSON文件描述各种数据结构,提供读和写的方法,并在代码中建立与JSON数据结构相对应的数据类,将数据类与JSON文件形成映射关系。在进行数据交互更新时,首先读取JSON文件,将其中的信息映射到数据类的实例上,然后根据具体硬件或通讯信号更新数据对象,最后再把更新后的对象写入JSON文件保存起来,这样就完成了数据的集成。在逻辑组态软件开发中,无论以何种方式获取到JSON文件,只需要读入文件信息就可以获取到接口信号的所有信息,完成与控制逻辑的集成。
JSON作为一种轻量级的数据交换格式,有着简洁和清晰的层次结构,在控制软件逻辑组态时,依赖大量的外部接口信号以及大量待描述的结构体信息,通过JSON可快速的生成接口交换文件,高效的输出依赖接口资源数据,大大提升数据交换的效率;同时利用JSON的清晰简洁的自描述能力,实现对整个依赖资源的完整描述。
附图说明
图1为集成功能函数UpdateSoftJosnData 的工作流程图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
为了通过JSON可快速的生成接口交换文件,高效的输出依赖接口资源数据,大大提升数据交换的效率;同时利用JSON的清晰简洁的自描述能力,实现对整个依赖资源的完整描述,本发明述集成方法包括如下步骤:
步骤1、根据控制代码中IO数据的结构体封装格式,编写JSON文件,所述编写的JSON文件与控制代码中IO数据的结构体的层次保持一致;
本发明实施例中,根据控制代码中IO数据的结构体封装格式,能直接编写得到JSON文件,具体编写得到JSON文件的过程为本技术领域人员所熟知,此处不再赘述。
所有IO数据都写在一个JSON文件里,在JSON文件内再对不同类型的IO接口设置不同的数据结构体。在JSON文件中,需要对控制代码中每层IO数据的结构体的结构体名称、数据类型、数据定义、描述信息进行填充,并预留信号接口。
步骤2、在组态软件的工程中建立与步骤1中JSON文件每一层级相对应的数据类CDLFileStruct;
本发明实施例中,利用组态软件的工程标签能建立与JSON文件每一层级相对应的数据类,具体建立过程为本技术领域人员所熟知,此处不再赘述。组态软件就是最终要完成的燃机组态化开发软件平台,本发明就是在开发组态软件的过程中应用的。至于组态软件与控制代码,通过在组态软件中搭建模型,可以生成用于实际控制的控制代码,所以组态软件的设计开发过程中要先敲定最终生成的控制代码格式,包括各种数据结构体等。
步骤3、编写JSON文件读取的函数ReadJSON 以及JSON文件写入的函数WriteJSON,通过ReadJSON 能从JSON文件读取数据到数据类对象,并将所述读取的数据类型对象返回调用,通过WriteJSON 能将传入的数据类对象写入JSON文件,且返回写成功标志状态;
具体地,利用本技术领域常规的技术手段能编写得到读取函数ReadJSON 以及写入函数WriteJSON ,具体编写得到读取函数ReadJSON 以及写入函数WriteJSON 的过程为本技术领域人员所熟知,此处不再赘述。
步骤4、形成接口数据的集成功能函数UpdateSoftJosnData ,首先用ReadJSON 读取步骤1中建立的JSON文件数据到步骤2中数据类的实例中,然后处理IO数据并更新数据类的实例,最后调用WriteJSON 将数据类的实例写回JSON文件;在每次组态软件启动、或IO接口信号发生变化后,都调用此函数进行接口数据的更新,即更新上述JSON文件的“"ChanDatas": []”。
本发明实施例中,设计的JSON文件中,ChanDatas是用来保存IO接口具体数据的,在ReadJSON 读的时候是空的或旧的,因为此时还没处理IO数据,处理完后就有了数据,即数据类的实例中有了这些数据,那么在WriteJSON 写回的时候就更新了ChanDatas。
如图1所示,为集成功能函数UpdateSoftJosnData 的流程图,具体地:
步骤4.1、实例化CDLFileStruct为cdlData,从而为读取JSON数据准备好映射对象;
步骤4.2、获取JSON文件路径,当JSON文件存在时,跳转至步骤4.3,否则,跳转至步骤4.7,防止文件不存在时产生读取异常错误;
步骤4.3、读取JSON文件数据到cdlData;
步骤4.4、读取存储接口信号的XML文件,当读取成功时,跳转至步骤4.5,否则,跳转至步骤4.7,即为了实现组态软件的功能:在组态软件的IO组态部分,用户配置的IO数据会保存为XML文件,现在需要将这些IO数据读取上来与逻辑组态部分集成,所以要读取XML;
步骤4.5、根据XML信息更新cdlData,即将用户配置的IO数据获取到组态软件的逻辑组态部分,供逻辑组态使用;
步骤4.6、将cdlData数据写回JSON文件,目的是将本次处理好的IO数据保存起来,作用:1)下次组态软件启动后逻辑组态就可以直接读取JSON文件而不用再从XML转换,提高效率;2)部分IO配置改变后,UpdateSoftJosnData 读取JSON后就得到了上次的IO数据,在处理数据过程中就可以与本次从XML读取的进行对比,可以通知和显示给逻辑组态用户哪些IO发生了变化;
步骤4.7、设置操作状态码并返回;
步骤4.8、结束。
综上,本发明实施例中,在IO接口组态软件的开发中,使用JSON文件描述各种数据结构,提供读和写的方法,并在代码中建立与JSON数据结构相对应的数据类,将数据类与JSON文件形成映射关系。在进行数据交互更新时,首先读取JSON文件,将信息映射到数据类的一个对象上,然后根据具体硬件或通讯信号更新数据对象,最后再把更新后的对象写入JSON文件保存起来。在逻辑组态软件开发中,读入JSON文件信息,并将信息传递给控制逻辑。
具体地,以硬件IO接口为例,在用户完成每一个信号的信息配置后,软件内部就会调用UpdateSoftJosnData 对JSON文件进行更新。然后在逻辑组态过程中,在需要引用接口的地方只需要选择绑定变量,就会从已保存的JSON文件中读出所有IO信号的信息,并呈现给用户,用户选择与确定后即可直接集成到逻辑代码中。

Claims (2)

1.一种基于JSON的IO与控制逻辑组态的集成方法,其特征是,所述集成方法包括如下步骤:
步骤1、根据控制代码中IO数据的结构体封装格式,编写JSON文件,所述编写的JSON文件与控制代码中IO数据的结构体的层次保持一致;
步骤2、在组态软件的工程中建立与步骤1中JSON文件每一层级相对应的数据类;
步骤3、编写JSON文件读取的函数ReadJSON 以及JSON文件写入的函数WriteJSON ,通过ReadJSON 能从JSON文件读取数据到数据类对象,并将所述读取的数据类型对象返回调用,通过WriteJSON 能将传入的数据类对象写入JSON文件,且返回写成功标志;
步骤4、形成接口数据的集成功能函数UpdateSoftJosnData ,用ReadJSON 读取步骤1中建立的JSON文件数据到步骤2中数据类的实例中,然后处理IO数据并更新数据类的实例,最后调用WriteJSON 将数据类的实例写回JSON文件;在每次组态软件启动、或IO接口信号发生变化后,都调用此函数进行接口数据的更新,即更新上述JSON文件的“"ChanDatas":[]”。
2.根据权利要求1所述的基于JSON的IO与控制逻辑组态的集成方法,其特征是:步骤1中,在JSON文件中,需要对控制代码中每层IO数据的结构体的结构体名称、数据类型、数据定义、描述信息进行填充,并预留信号接口。
CN201911335599.3A 2019-12-23 2019-12-23 基于json的io与控制逻辑组态的集成方法 Active CN111124384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911335599.3A CN111124384B (zh) 2019-12-23 2019-12-23 基于json的io与控制逻辑组态的集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911335599.3A CN111124384B (zh) 2019-12-23 2019-12-23 基于json的io与控制逻辑组态的集成方法

Publications (2)

Publication Number Publication Date
CN111124384A true CN111124384A (zh) 2020-05-08
CN111124384B CN111124384B (zh) 2021-12-07

Family

ID=70501162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911335599.3A Active CN111124384B (zh) 2019-12-23 2019-12-23 基于json的io与控制逻辑组态的集成方法

Country Status (1)

Country Link
CN (1) CN111124384B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104674A (zh) * 2014-07-01 2014-10-15 广东艾科技术股份有限公司 设备传感器的多协议分布式数据采集控制系统及方法
US20160294605A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
CN106951231A (zh) * 2017-02-23 2017-07-14 微梦创科网络科技(中国)有限公司 一种计算机软件开发方法及装置
WO2017193140A1 (en) * 2016-05-06 2017-11-09 Enterpriseweb Llc Systems and methods for domain-driven design and execution of modular and dynamic services, applications and processes
US20170330153A1 (en) * 2014-05-13 2017-11-16 Monster Worldwide, Inc. Search Extraction Matching, Draw Attention-Fit Modality, Application Morphing, and Informed Apply Apparatuses, Methods and Systems
CN109254771A (zh) * 2018-08-24 2019-01-22 北京国电智深控制技术有限公司 一种监控页面生成方法和装置
CN110347749A (zh) * 2019-06-27 2019-10-18 绿漫科技有限公司 一种基于crdt的分布式类json数据自动合并的方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170330153A1 (en) * 2014-05-13 2017-11-16 Monster Worldwide, Inc. Search Extraction Matching, Draw Attention-Fit Modality, Application Morphing, and Informed Apply Apparatuses, Methods and Systems
CN104104674A (zh) * 2014-07-01 2014-10-15 广东艾科技术股份有限公司 设备传感器的多协议分布式数据采集控制系统及方法
US20160294605A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
WO2017193140A1 (en) * 2016-05-06 2017-11-09 Enterpriseweb Llc Systems and methods for domain-driven design and execution of modular and dynamic services, applications and processes
CN106951231A (zh) * 2017-02-23 2017-07-14 微梦创科网络科技(中国)有限公司 一种计算机软件开发方法及装置
CN109254771A (zh) * 2018-08-24 2019-01-22 北京国电智深控制技术有限公司 一种监控页面生成方法和装置
CN110347749A (zh) * 2019-06-27 2019-10-18 绿漫科技有限公司 一种基于crdt的分布式类json数据自动合并的方法及系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
STEPHEN KNOX等: ""An open-source data manager for network models"", 《ENVIRONMENTAL MODELLING & SOFTWARE》 *
伍瑾斐 等: ""组态软件与管理信息系统的深度集成化研究"", 《微计算机信息》 *
朱超等: "高组态化电力调度管理信息系统架构方法", 《电力自动化设备》 *
王华志: ""基于JSON的异构数据源数据交换技术研究"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
王振铎等: "一种内部威胁实时检测与防护中间件模型", 《数学的实践与认识》 *
邵刚等: "组态软件中的数据交换技术应用分析研究", 《天津理工大学学报》 *

Also Published As

Publication number Publication date
CN111124384B (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN101963915A (zh) 一种编译的构建方法及系统
CN110795095B (zh) 建立业务逻辑组件与业务组件及生成页面的方法与系统
CN100383755C (zh) 一种软件接口测试方法和装置
CN101763280A (zh) 编译模型
CN104407863A (zh) 抽象控件模型编程装置和方法
CN113934684B (zh) 一种数据格式自动转换方法、装置、电子设备及存储介质
CN102111282A (zh) 一种基于电信业务的信息管理系统架构及其构建方法
CN111176791A (zh) 一种基于多虚拟机区块链平台跨虚拟机调用方法
CN104317559A (zh) 基于gmf的可视化建模平台
CN115658042A (zh) 混合应用组件式开发方法、系统、设备及存储介质
CN103530165B (zh) 一种应用于物联网行业的java解决方案
CN111124384B (zh) 基于json的io与控制逻辑组态的集成方法
CN111399829B (zh) 一种基于模型驱动的波形建模方法及终端
CN102214103A (zh) 以功能单元为基础的任务程序的创建和执行方法及系统
CN113448643A (zh) 配置数据管理系统及方法
US10929121B2 (en) Method, device and related system for dynamically repairing application
CN100468347C (zh) 一种在应用模块与com组件之间传递参数的方法及装置
CN102663038A (zh) 一种提供地理信息系统接口服务的方法和装置
CN116466915A (zh) 一种基于MVP架构的iOS开发框架构建方法和装置
CN104615539A (zh) 一种测试参数的处理方法和系统
CN111581817B (zh) 一种基于opc-ua的仿真软件数据通信方法
CN109614656B (zh) 一种用于OpenGL显示列表调用的TLM系统
CN109947406B (zh) 一种通用化星务管理系统架构
CN104932877A (zh) 智能终端应用程序界面设计方法
CN116795356B (zh) Flutter与原生平台的混合开发方法、系统及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant