CN107179910A - 一种在线编辑即时生效的逻辑组态方法 - Google Patents
一种在线编辑即时生效的逻辑组态方法 Download PDFInfo
- Publication number
- CN107179910A CN107179910A CN201710353054.XA CN201710353054A CN107179910A CN 107179910 A CN107179910 A CN 107179910A CN 201710353054 A CN201710353054 A CN 201710353054A CN 107179910 A CN107179910 A CN 107179910A
- Authority
- CN
- China
- Prior art keywords
- symbol
- running environment
- message
- page
- instance name
- 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.)
- Pending
Links
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/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种在线编辑即时生效的逻辑组态方法,首先确定客户端中待编辑图形化程序页面和运行环境中的页面是否一致,获取页面编辑过程中鼠标或键盘事件,将符号的新建和删除、符号间数据连线的新建和删除、符号数据属性修改等操作形成编辑报文下发给运行环境。运行环境解析相关报文,即时调整内存中页面数据区、数据连接关系和符号对应的运行函数队列,并周期上送数据区运行值,客户端实时显示符号的输入输出值。客户端断开连接前,下发保存报文,运行环境将当前内存中运行页面数据存储为文件。
Description
技术领域
本发明属于图形化编程领域,具体涉及一种图形化程序页面的在线编辑且即时生效的方法。
背景技术
图形化编程由于直观、易于理解、操作方便,已经在嵌入式装置程序开发中进行了应用。当前的图形化编程分为离线编辑、在线调试2个环节,即在客户端软件打开页面,进行编辑后,形成相关产物,下载到运行环境,然后进行在线调试,对于页面逻辑搭建是否正确,不能立即进行互动校验判断。而在工业过程控制领域,迫切需要连接上装置后,进行在线编程且能立即生效,在旁置跳闸出口的情况下,当新建删除符号、数据连线后,能够立即在页面上查看到数据值和效果,便于编程人员立即判断编程逻辑是否达到预期,从而增量式的修改和调试,需要一种在线编辑且即时生效的方法,本案由此产生。
目前,有的图形化编程工具实现了在线编辑的功能,但其需要用户手动选择下载操作,且下载的是整个图形化程序页面,甚至是整个应用程序。不仅操作繁琐不够流畅,而且可能给运行环境中的未修改程序带来额外扰动。
发明内容
本发明的目的,在于提供一种图形化程序页面的在线编辑即时生效的方法,满足工业控制领域实时编辑调试的需求,实现所见即所得的功能。为了达成上述目的,本发明的解决方案是:
一种在线编辑即时生效的逻辑组态方法,包括如下步骤:
步骤1,客户端与装置建立通讯连接,并确认当前待编辑的图形化程序页面和运行环境中对应的图形化程序页面是否一致,若不一致,则进行同步;
步骤2,客户端获取当前页面中鼠标和键盘事件,分析出各种编辑操作,并形成报文下发给运行环境;
步骤3,运行环境解析各种编辑操作报文,即时调整页面数据区、数据连接关系和运行函数队列;
步骤4,运行环境周期上送当前编辑页面的数据区运行值,客户端在符号输入输出管脚、连接线上实时显示运行值;
步骤5,客户端和装置断开连接前,可选下发保存报文,运行环境将内存中的图形化程序页面保存为文件。
所述步骤1中,客户端通过报文通讯,比较待编辑图形化程序页面和运行环境中对应的图形化程序页面的循环冗余校验码值,确认是否一致。
所述步骤1中,运行环境包括嵌入式实时运行环境、PC机虚拟仿真运行环境,支持管理运行多个等级的任务,每个任务运行多个图形化程序页面。
所述步骤2中,通过获取待编辑页面中鼠标的单击、双击、释放事件和键盘事件,提取图形化符号的新建和删除动作、连接线的新建和删除动作、连接关系修改动作、符号属性修改动作,并生成不同种类的编辑操作报文,即时下发给运行环境。
所述步骤3中,运行环境解析新建符号报文,获取符号类型、实例名;根据符号类型从内置的符号程序库中获取其数据结构模板和功能函数指针,并在图形化程序页面的内存数据区中顺序查找大小匹配的空闲区域,分配该符号的数据区;若空闲区域空间不足,则在内存数据区的末尾创建分配;将该符号对应的函数指针、实例名和数据区地址信息添加到运行函数队列,以便实时运算任务运行调用。
所述步骤3中,运行环境解析删除符号报文,获取符号类型、实例名;根据实例名,在图形化程序页面的内存数据区中查找对应的符号数据区,并置为空闲状态;从运行函数队列中删除该符号的功能函数。
所述步骤3中,运行环境解析新建连接线报文,获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找对应变量的内存区域,将目的端对应变量的引用地址设置为源端对应变量的地址,目的端符号的功能函数运行时,利用该引用地址获取源端变量的实时值参与运算。
所述步骤3中,运行环境解析删除连接线报文,获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找到对应变量的内存区域,将目的端对应变量的引用地址设置为空,目的符号的功能函数运行时,利用该输入变量的默认值参与运算。
所述步骤3中,运行环境解析连接关系修改报文,即修改连接线源端、目的端的报文,转换为新建连接线、删除连接线的报文处理。
所述步骤3中,运行环境解析修改符号属性的报文,即修改符号的实例名、修改符号变量值;根据符号的旧实例名,查找到运行函数队列,将其中旧实例名修改为新实例名;对于修改符号变量值,根据符号实例名和变量名查找对应变量内存区,并写入新值。
采用上述方案后,客户端进行在线编辑逻辑组态时,只需要1-2个运行周期的时间,即可完成下发到运行环境并即时生效,同时将生效后的实时数据回传至客户端即时显示的过程;实现了在线编辑所见即所得的组态效果。同时由于仅下发编辑操作相关的符号和连线等信息,对运行环境中的图形化程序影响最小,从根本上达到无扰的效果。本发明在工业控制的应用开发中进行了应用,提高了在线编辑调试的效率。
附图说明
图1是本发明中在线编辑即时生效流程图;
图2是本发明中新建、删除符号时数据区处理示意图;
图3是本发明中新建、删除符号时运行函数队列处理示意图;
图4是本发明中新建、删除连接线时处理示意图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图1所示,其实现步骤如下:
(1) 客户端与装置建立通讯连接,并确认当前待编辑的图形化程序页面和运行环境中对应的图形化程序页面是否一致,若不一致,则进行同步。客户端通过报文比较待编辑图形化程序页面和运行环境中对应的图形化程序页面的CRC值,确认是否一致。如若不一致,可选择下载或上装,实现同步,确保一致。
(2) 客户端获取当前页面中鼠标和键盘事件,分析出各种编辑操作,并形成报文下发给运行环境。通过获取待编辑页面中鼠标的单击、双击、释放事件和键盘事件,形成图形化符号的新建和删除动作、连接线的新建和删除动作、连接关系修改动作、符号属性修改动作,将上述编辑动作生成不同种类的编辑操作报文,即时下发给运行环境。
(3) 运行环境根据如下详细步骤解析编辑操作报文,即时调整页面数据区、数据连接关系和运行队列。
(3.1)解析新建符号报文,运行环境的内存区处理示意如图2所示,运行环境的运行函数队列处理示意如图3所示。首先获取符号类型、实例名;根据符号类型从内置的符号程序库中获取其数据结构模板和功能函数指针,并在图形化程序页面的内存数据区中顺序查找大小匹配的空闲区域,分配该符号的数据区;若空闲区域空间不足,则在内存数据区的末尾创建分配;将该符号对应的函数指针、实例名和数据区地址信息添加到运行函数队列,以便实时运算任务运行调用。
(3.2)解析删除符号报文,获取符号类型、实例名;根据实例名,在图形化程序页面的内存数据区中查找对应的符号数据区,并置为空闲状态;若相邻的区域为空间状态,则进行合并;从运行函数队列中删除该符号的功能函数。
(3.3)解析新建连接线报文,客户端和运行环境的处理同步如图4所示。首先获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找对应变量的内存区域,将目的端对应变量的引用地址设置为源端对应变量的地址,目的端符号的功能函数运行时,利用该引用地址获取源端变量的实时值参与运算。
(3.4)解析删除连接线报文,获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找到对应变量的内存区域,将目的端对应变量的引用地址设置为空,目的符号的功能函数运行时,利用该输入变量的默认值参与运算。
(3.5)解析连接关系修改报文,即修改连接线源端、目的端的报文,转换为新建连接线、删除连接线的报文处理。
(3.6)解析修改符号属性的报文,即修改符号的实例名、修改符号变量值;根据符号的旧实例名,查找到运行函数队列,将其中旧实例名修改为新实例名;对于修改符号变量值,根据符号实例名和变量名查找对应变量内存区,并写入新值。
(4) 运行环境周期上送当前编辑页面的数据区运行值,客户端在符号输入输出管脚、连接线上实时显示运行值。
(5) 客户端和装置断开连接前,可选下发保存报文,运行环境将内存中的图形化程序页面保存为文件。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (10)
1.一种在线编辑即时生效的逻辑组态方法,其特征在于:包括如下步骤:
步骤1,客户端与装置建立通讯连接,并确认当前待编辑的图形化程序页面和运行环境中对应的图形化程序页面是否一致,若不一致,则进行同步;
步骤2,客户端获取当前页面中鼠标和键盘事件,分析出各种编辑操作,并形成报文下发给运行环境;
步骤3,运行环境解析各种编辑操作报文,即时调整页面数据区、数据连接关系和运行函数队列;
步骤4,运行环境周期上送当前编辑页面的数据区运行值,客户端在符号输入输出管脚、连接线上实时显示运行值;
步骤5,客户端和装置断开连接前,可选下发保存报文,运行环境将内存中的图形化程序页面保存为文件。
2.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤1中,客户端通过报文通讯,比较待编辑图形化程序页面和运行环境中对应的图形化程序页面的循环冗余校验码值,确认是否一致。
3.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤1中,运行环境包括嵌入式实时运行环境和PC机虚拟仿真运行环境,支持管理运行多个等级的任务,每个任务运行多个图形化程序页面。
4.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤2中,通过获取待编辑页面中鼠标的单击、双击、释放事件和键盘事件,提取图形化符号的新建和删除动作、连接线的新建和删除动作、连接关系修改动作、符号属性修改动作,并生成不同种类的编辑操作报文,即时下发给运行环境。
5.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析新建符号报文,获取符号类型、实例名;根据符号类型从内置的符号程序库中获取其数据结构模板和功能函数指针,并在图形化程序页面的内存数据区中顺序查找大小匹配的空闲区域,分配该符号的数据区;若空闲区域空间不足,则在内存数据区的末尾创建分配;将该符号对应的函数指针、实例名和数据区地址信息添加到运行函数队列,以便实时运算任务运行调用。
6.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析删除符号报文,获取符号类型、实例名;根据实例名,在图形化程序页面的内存数据区中查找对应的符号数据区,并置为空闲状态;从运行函数队列中删除该符号的功能函数。
7.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析新建连接线报文,获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找对应变量的内存区域,将目的端对应变量的引用地址设置为源端对应变量的地址,目的端符号的功能函数运行时,利用该引用地址获取源端变量的实时值参与运算。
8.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析删除连接线报文,获取连接线源端对应的符号实例名和输出变量名、目的端对应的符号实例名和输入变量名,查找到对应变量的内存区域,将目的端对应变量的引用地址设置为空,目的符号的功能函数运行时,利用该输入变量的默认值参与运算。
9.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析连接关系修改报文,即修改连接线源端、目的端的报文,转换为新建连接线、删除连接线的报文处理。
10.如权利要求1所述的一种在线编辑即时生效的逻辑组态方法,其特征在于:所述步骤3中,运行环境解析修改符号属性的报文,即修改符号的实例名、修改符号变量值;根据符号的旧实例名,查找到运行函数队列,将其中旧实例名修改为新实例名;对于修改符号变量值,根据符号实例名和变量名查找对应变量内存区,并写入新值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710353054.XA CN107179910A (zh) | 2017-05-18 | 2017-05-18 | 一种在线编辑即时生效的逻辑组态方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710353054.XA CN107179910A (zh) | 2017-05-18 | 2017-05-18 | 一种在线编辑即时生效的逻辑组态方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107179910A true CN107179910A (zh) | 2017-09-19 |
Family
ID=59831134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710353054.XA Pending CN107179910A (zh) | 2017-05-18 | 2017-05-18 | 一种在线编辑即时生效的逻辑组态方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107179910A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669689A (zh) * | 2018-12-29 | 2019-04-23 | 深圳点猫科技有限公司 | 一种对图形化编程应用进行离线化处理的方法、电子设备 |
CN112328233A (zh) * | 2020-10-29 | 2021-02-05 | 许继集团有限公司 | 一种可视化逻辑图形化代码解释执行方法及装置 |
CN113065174A (zh) * | 2021-03-19 | 2021-07-02 | 南京南瑞继保电气有限公司 | 一种逻辑图的转换方法、装置、系统和计算机存储介质 |
CN113238748A (zh) * | 2021-06-17 | 2021-08-10 | 南方电网科学研究院有限责任公司 | 一种直流控保程序页面修改校验方法、装置、终端及介质 |
CN113495535A (zh) * | 2020-03-19 | 2021-10-12 | 中国科学院沈阳自动化研究所 | 一种通过配置实现生产运行控制的方法 |
CN113779324A (zh) * | 2021-11-15 | 2021-12-10 | 西安热工研究院有限公司 | 一种交叉参考同步处理方法、系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788797A (zh) * | 2010-01-06 | 2010-07-28 | 大连理工大学 | 一种嵌入式人机界面组态信息编码方法 |
CN102646035A (zh) * | 2012-02-17 | 2012-08-22 | 南京南瑞继保电气有限公司 | 基于api接口和脚本定义相结合的可视化代码生成方法 |
CN103853147A (zh) * | 2012-12-06 | 2014-06-11 | 中国科学院软件研究所 | 一种嵌入式系统的在线调试系统及方法 |
CN103885782A (zh) * | 2014-04-03 | 2014-06-25 | 南京南瑞继保电气有限公司 | 一种可视化编程页面程序库函数封装重用方法 |
CN103995777A (zh) * | 2014-05-29 | 2014-08-20 | 上海科梁信息工程有限公司 | 嵌入式软件黑盒自动化测试系统及测试方法 |
CN104317236A (zh) * | 2014-09-29 | 2015-01-28 | 上海电机学院 | 基于软plc技术的无线传感器网络控制终端 |
-
2017
- 2017-05-18 CN CN201710353054.XA patent/CN107179910A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788797A (zh) * | 2010-01-06 | 2010-07-28 | 大连理工大学 | 一种嵌入式人机界面组态信息编码方法 |
CN102646035A (zh) * | 2012-02-17 | 2012-08-22 | 南京南瑞继保电气有限公司 | 基于api接口和脚本定义相结合的可视化代码生成方法 |
CN103853147A (zh) * | 2012-12-06 | 2014-06-11 | 中国科学院软件研究所 | 一种嵌入式系统的在线调试系统及方法 |
CN103885782A (zh) * | 2014-04-03 | 2014-06-25 | 南京南瑞继保电气有限公司 | 一种可视化编程页面程序库函数封装重用方法 |
CN103995777A (zh) * | 2014-05-29 | 2014-08-20 | 上海科梁信息工程有限公司 | 嵌入式软件黑盒自动化测试系统及测试方法 |
CN104317236A (zh) * | 2014-09-29 | 2015-01-28 | 上海电机学院 | 基于软plc技术的无线传感器网络控制终端 |
Non-Patent Citations (2)
Title |
---|
毕文彬: "嵌入式图形组态软件的研究与开发", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
赵小建: "嵌入式组态软件图形界面系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669689A (zh) * | 2018-12-29 | 2019-04-23 | 深圳点猫科技有限公司 | 一种对图形化编程应用进行离线化处理的方法、电子设备 |
CN113495535A (zh) * | 2020-03-19 | 2021-10-12 | 中国科学院沈阳自动化研究所 | 一种通过配置实现生产运行控制的方法 |
CN112328233A (zh) * | 2020-10-29 | 2021-02-05 | 许继集团有限公司 | 一种可视化逻辑图形化代码解释执行方法及装置 |
CN112328233B (zh) * | 2020-10-29 | 2024-04-16 | 许继集团有限公司 | 一种可视化逻辑图形化代码解释执行方法及装置 |
CN113065174A (zh) * | 2021-03-19 | 2021-07-02 | 南京南瑞继保电气有限公司 | 一种逻辑图的转换方法、装置、系统和计算机存储介质 |
CN113238748A (zh) * | 2021-06-17 | 2021-08-10 | 南方电网科学研究院有限责任公司 | 一种直流控保程序页面修改校验方法、装置、终端及介质 |
CN113238748B (zh) * | 2021-06-17 | 2023-05-23 | 南方电网科学研究院有限责任公司 | 一种直流控保程序页面修改校验方法、装置、终端及介质 |
CN113779324A (zh) * | 2021-11-15 | 2021-12-10 | 西安热工研究院有限公司 | 一种交叉参考同步处理方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107179910A (zh) | 一种在线编辑即时生效的逻辑组态方法 | |
CN107885499A (zh) | 一种接口文档生成方法及终端设备 | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
CN111427561A (zh) | 业务代码的生成方法、装置、计算机设备和存储介质 | |
CN103092585A (zh) | 一种用于综合监控软件的图库的组态化设计系统 | |
CN105068815A (zh) | 页面编辑器交互装置和方法 | |
CN102693281B (zh) | 一种基于autocad的pdms中辅助线的生成方法 | |
US8930923B2 (en) | Generating debugging extension source code utilizing debugging information | |
CN105320806A (zh) | PML结合Excel-VBA处理数据汇总核电工艺管道材料的方法 | |
CN111273900A (zh) | 基于gitlab实时代码共享的在线拖拽编码生成方法 | |
CN115495069A (zh) | 基于模型驱动的煤炭工业软件流程实现方法、装置及设备 | |
CN114140047B (zh) | 一种系统物料清单生成方法、系统、存储介质及设备 | |
CN104778071A (zh) | 智能规则多语言类型解释系统及其创建方法 | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
CN102929853A (zh) | 基于Excel表单关联的DCS项目数据生成系统和方法 | |
CN103677841A (zh) | 基于元素级模板的ietm的代码生成方法及装置 | |
CN104679499A (zh) | 一种ic装备人机交互界面可定制数据显示方法 | |
CN114064012B (zh) | 一种动静结合的接口代码生成方法、系统及电子设备 | |
CN102306109A (zh) | 一种实现通讯管理机内部逻辑可编程方法 | |
CN116679974A (zh) | 一种多软件封装运行方法、计算机程序产品及终端设备 | |
CN113867714A (zh) | 一种适配多语言的自动代码生成方法 | |
US8694293B2 (en) | Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus | |
CN107918958B (zh) | 一种可视化和可定制的三维渲染系统及方法 | |
CN112579454A (zh) | 一种任务数据的处理方法、装置以及设备 | |
CN110457107A (zh) | 组态软件操作指令管理方法、装置和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170919 |
|
RJ01 | Rejection of invention patent application after publication |