CN111124384A - 基于json的io与控制逻辑组态的集成方法 - Google Patents
基于json的io与控制逻辑组态的集成方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-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信号与控制逻辑的集成是组态开发过程中不可或缺的功能,它的作用是将控制软件的逻辑部分与硬件接口模块、通讯模块集成在一起,实现模块间的数据交换。
组态化开发是目前燃机轮机市场上的主流方式,它具有用户界面友好、维护管理方便、解决方案一站式服务等优点,能够使用户经过培训,不必掌握具体的编程语言就可以搭建或更改自己的产品控制软件,需求支持自由度高。目前,国外先进的燃气轮机供应商均已拥有自己的组态化开发平台,这给国内燃机轮机的自主研发带来了压力和挑战。
燃气轮机控制系统控制软件具有硬件信号数量多、通讯数据量大、控制逻辑复杂、安全性要求高等特点。因为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数据的结构体的结构体名称、数据类型、数据定义、描述信息进行填充,并预留信号接口。
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)
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数据自动合并的方法及系统 |
-
2019
- 2019-12-23 CN CN201911335599.3A patent/CN111124384B/zh active Active
Patent Citations (7)
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)
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 |