CN116431142A - 一种可快速构建且不易出错的高效率编程方法 - Google Patents

一种可快速构建且不易出错的高效率编程方法 Download PDF

Info

Publication number
CN116431142A
CN116431142A CN202310394256.4A CN202310394256A CN116431142A CN 116431142 A CN116431142 A CN 116431142A CN 202310394256 A CN202310394256 A CN 202310394256A CN 116431142 A CN116431142 A CN 116431142A
Authority
CN
China
Prior art keywords
program
function
error
engineering
code
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
CN202310394256.4A
Other languages
English (en)
Other versions
CN116431142B (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.)
Sichuan Quick Test Technology Co ltd
Sichuan Firets Test Equipment Co ltd
Original Assignee
Sichuan Quick Test Technology Co ltd
Sichuan Firets Test Equipment Co ltd
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 Sichuan Quick Test Technology Co ltd, Sichuan Firets Test Equipment Co ltd filed Critical Sichuan Quick Test Technology Co ltd
Priority to CN202310394256.4A priority Critical patent/CN116431142B/zh
Publication of CN116431142A publication Critical patent/CN116431142A/zh
Application granted granted Critical
Publication of CN116431142B publication Critical patent/CN116431142B/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/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明涉及一种可快速构建且不易出错的高效率编程方法,属于物联网边缘计算机程序、数据采集软件、组态软件、自动化设备控制上位机软件等技术领域,本发明采用基础功能代码配置生成、插件代码配置生成、自定义代码引用、代码编译执行的方法实现用户可快速构建具有不易出错的高性能应用程序。通过对基础库的长期验证和自定义库的管理,减少了使用者的编程工作量,工作量的减少和图形化的编程方式。使得不易出错。

Description

一种可快速构建且不易出错的高效率编程方法
技术领域
本发明属于物联网边缘计算机程序、数据采集软件、组态软件、自动化设备控制上位机软件等技术领域,具体涉及一种可快速构建且不易出错的高效率编程方法。
背景技术
目前,在物联网边缘计算机程序、数据采集软件、组态软件、自动化设备控制上位机软件等应用场景中,较多的方式为使用组态软件或者底层编程语言实现。主要存在以下问题:
组态软件工作策略为根据预先设计的控件进行配置来实现预期功能,在工作时组态软件动态解释运行程序。具有运行效率低、自定义能力弱的缺点。
使用底层语言编写程序,如VB,VC++等。该技术为编译运行,其运行效率较高,但有开发难度大、开发效率低、调试麻烦等缺点。
当前流行的基于WEB技术的低代码开发,主要基于对应用的归纳后总结共通性,对功能进行预先设计,用户简单配置即可满足应用需求。缺点是无法满足本地应用,只能针对ERP等办公、管理类软件进行配置使用。
因此,现阶段需设计一种可快速构建且不易出错的高效率编程方法,来解决以上问题。
发明内容
本发明目的在于提供一种可快速构建且不易出错的高效率编程方法,用于解决上述现有技术中存在的技术问题,如:在实验室测试分析、设备研发、组态控制软件编写过程中,存在大量的重复劳动(阅读芯片手册、编写器件驱动、通信协议、单元测试等);编程工作量较大,运行效率低,容易出错等。
为实现上述目的,本发明的技术方案是:
一种可快速构建且不易出错的高效率编程方法,包括以下步骤:
S1、根据具体应用场景的具体需求,建立基础工程;
S2、结合所述基础工程,进行对应匹配的程序设计;
S3、根据程序运行逻辑,构建程序的源代码工程;
S4、根据所述源代码工程,进行对应的编译工程设计;
S5、程序运行,编译平台调用系统指令,启动编译后的代码;
S6、完成程序的显示和监控。
进一步的,步骤S1包括以下子步骤:
S101 选择程序类型,包括但不限于窗口程序、指令行程序、后台程序;
S102 配置工程拓扑图;即定义设备、网络的物理连接和软件连接规则。
进一步的,步骤S102中具体有,外部的网络设备、采集设备、控制设备的IP地址、信号量地址及数据。
进一步的,步骤S2包括以下子步骤:
S201 基于拖动控件实现程序界面的布局,包括但不限于:层次关系和坐标关系、控件属性配置;
S202 定义全局变量符号表,符号表预先定义或编程过程中反向创建;用于数据交换、暂存、交互;
S203 基于图形化的拖动和定义来编写,程序组织单元,POU分3种类型,分别是
函数:有输入/输出参数,但是没有静态变量;使用相同的参数调用函数时,总会产生相同的输出结果;另外,定义函数时,必须指定返回值类型;
函数块:也被称为“功能块”,有输入/输出参数,并且有静态变量;使用相同的参数调用函数块时,由于静态变量的保持性,可能产生不同的输出结果;
程序:类似于C语言的Main函数;程序内部调用函数或函数块,外部被任务调用而执行;
S204 通过插件管理或POU导入,引用外部已经编辑好的POU程序组织单元;
S205 基于图形化的任务编辑,任务最终会编译为程序线程;在程序运行时至少有一个主任务;在性能要求较高的地方独立创建任务,使得应用程序具有多线程并行工作的性能。
进一步的,步骤S3包括以下子步骤:
S301 检查各FB,FC,Prog的引用关系是否异常;
S302 检查全局符号表,是否重名和权限检查;
S303 根据函数和函数块模版生成程序源代码片段;
S304 生成程序POU代码片段,并植入用于程序监控、断点调试、日志输出的代码;
S305 生成任务代码、程序入口main函数代码;
S306 植入通用功能代码;
S307 将代码写入文件。
进一步的,步骤S4包括以下子步骤:
S401 整理代码片段生成的源代码文件;
S402 整理工程引用过库和依赖,引入到源程序目录;
S403 根据工程配置的目标平台,生成编译语句;
S404 执行编译语句,生成运行平台程序。
进一步的,步骤S6包括以下子步骤:
S601 程序启动后工具植入的调试代码功能通过网络向低代码平台软件发送变量信息,用于显示和监控;
S602 平台软件发送断点语句,程序将暂停运行。
一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被运行时执行如上述的一种可快速构建且不易出错的高效率编程方法。
与现有技术相比,本发明所具有的有益效果为:
本方案其中一个有益效果在于,本发明采用基础功能代码配置生成、插件代码配置生成、自定义代码引用、代码编译执行的方法实现用户可快速构建具有不易出错的高性能应用程序。通过对基础库的长期验证和自定义库的管理,减少了使用者的编程工作量,工作量的减少和图形化的编程方式。使得不易出错。
附图说明
图1为本方案实施方式的步骤原理示意图;
图2为本方案实施方式的流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
而且,术语“包括”,“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程,方法,物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程,方法,物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程,方法,物品或者设备中还存在另外的相同要素。
因此,如图1所示,提出一种可快速构建且不易出错的高效率编程方法,包括以下步骤:
S1、根据具体应用场景的具体需求,建立基础工程;
S2、结合所述基础工程,进行对应匹配的程序设计;
S3、根据程序运行逻辑,构建程序的源代码工程;
S4、根据所述源代码工程,进行对应的编译工程设计;
S5、程序运行,编译平台调用系统指令,启动编译后的代码;
S6、完成程序的显示和监控。
优选的编程语言为C++。
方法实现流程:S100建立工程->S200 设计程序->S300 构建源代码工程->S400编译工程->S500程序运行->S600 程序监控
S100建立工程流程:
S101选择程序类型(如窗口程序、指令行程序、后台程序等);
S102 配置工程拓扑图(定义设备、网络的物理连接和软件连接规则,如外部的网络设备、采集设备、控制设备等的IP地址、信号量地址及数据)
S200 程序设计:
S201 基于拖动控件实现程序界面的布局(包含层次关系和坐标关系、控件属性配置等)。
S202 定义全局变量符号表,符号表可以预先定义或编程过程中反向创建。用于数据交换、暂存、交互。
S203 基于图形化的拖动和定义来编写,程序组织单元( Program OrganisationUnit,POU)。POU分3种类型,分别是
函数(FC):可以有输入/输出参数,但是没有静态变量。使用相同的参数调用函数时,总会产生相同的输出结果。另外,定义函数时,必须指定返回值类型;
函数块(FB):也被称为“功能块”,可以有输入/输出参数,并且可以有静态变量。使用相同的参数调用函数块时,由于静态变量的保持性,可能产生不同的输出结果;
程序(Prog):类似于C语言的Main函数。程序内部调用函数或函数块,外部被任务(Task)调用而执行;
S204 通过插件管理或POU导入,引用外部已经编辑好的POU程序组织单元。
S205 基于图形化的任务编辑,任务最终会编译为程序线程。在程序运行时至少有一个主任务(如MAIN任务,作为程序的启动入口和UI界面操作实践的响应)。在性能要求较高的地方(如数据采集、数据存储),我们可以独立创建任务,使得应用程序具有多线程并行工作的性能。
S300 构建源代码工程:
程序运行时调用顺序为主任务->创建子任务->子任务调用Prog类型程序组织单元(POU) ->调用函数(FC)和函数块(FB)。
构建源代码顺序:
S301检查各FB,FC,Prog等POU的引用关系是否异常。
S302检查全局符号表,是否重名和权限检查。
S303根据函数(FC)和函数块(FB)模版生成程序源代码片段。
S304生成程序(Prog)POU代码片段,并植入用于程序监控、断点调试、日志输出的代码。
S305生成任务代码、程序入口main函数代码。
S306植入通用功能代码,如队列、消息转发、日志等功能代码。
S307将代码写入文件。
S400 编译工程:
优选的编程语言为C++,具有静态编译和高性能执行的优点。
S401整理代码片段生成的源代码文件。
S402整理工程引用过库和依赖,引入到源程序目录。
S403根据工程配置的目标平台,生成编译语句。
S404执行编译语句,生成运行平台程序。
S500 程序运行:
S501编译平台调用系统指令,启动编译后的代码。
S600 程序监控:
S601程序启动后工具植入的调试代码功能通过网络向低代码平台软件发送变量信息,用于显示和监控。
S602 平台软件发送断点语句,程序将暂停运行。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (8)

1.一种可快速构建且不易出错的高效率编程方法,其特征在于,包括以下步骤:
S1、根据具体应用场景的具体需求,建立基础工程;
S2、结合所述基础工程,进行对应匹配的程序设计;
S3、根据程序运行逻辑,构建程序的源代码工程;
S4、根据所述源代码工程,进行对应的编译工程设计;
S5、程序运行,编译平台调用系统指令,启动编译后的代码;
S6、完成程序的显示和监控。
2.根据权利要求1所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S1包括以下子步骤:
S101 选择程序类型,包括但不限于窗口程序、指令行程序、后台程序;
S102 配置工程拓扑图;即定义设备、网络的物理连接和软件连接规则。
3.根据权利要求2所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S102中具体有,外部的网络设备、采集设备、控制设备的IP地址、信号量地址及数据。
4.根据权利要求3所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S2包括以下子步骤:
S201 基于拖动控件实现程序界面的布局,包括但不限于:层次关系和坐标关系、控件属性配置;
S202 定义全局变量符号表,符号表预先定义或编程过程中反向创建;用于数据交换、暂存、交互;
S203 基于图形化的拖动和定义来编写,程序组织单元,POU分3种类型,分别是
函数:有输入/输出参数,但是没有静态变量;使用相同的参数调用函数时,总会产生相同的输出结果;另外,定义函数时,必须指定返回值类型;
函数块:也被称为“功能块”,有输入/输出参数,并且有静态变量;使用相同的参数调用函数块时,由于静态变量的保持性,可能产生不同的输出结果;
程序:类似于C语言的Main函数;程序内部调用函数或函数块,外部被任务调用而执行;
S204 通过插件管理或POU导入,引用外部已经编辑好的POU程序组织单元;
S205 基于图形化的任务编辑,任务最终会编译为程序线程;在程序运行时至少有一个主任务;在性能要求较高的地方独立创建任务,使得应用程序具有多线程并行工作的性能。
5.根据权利要求4所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S3包括以下子步骤:
S301 检查各FB,FC,Prog的引用关系是否异常;
S302 检查全局符号表,是否重名和权限检查;
S303 根据函数和函数块模版生成程序源代码片段;
S304 生成程序POU代码片段,并植入用于程序监控、断点调试、日志输出的代码;
S305 生成任务代码、程序入口main函数代码;
S306 植入通用功能代码;
S307 将代码写入文件。
6.根据权利要求5所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S4包括以下子步骤:
S401 整理代码片段生成的源代码文件;
S402 整理工程引用过库和依赖,引入到源程序目录;
S403 根据工程配置的目标平台,生成编译语句;
S404 执行编译语句,生成运行平台程序。
7.根据权利要求6所述的一种可快速构建且不易出错的高效率编程方法,其特征在于,步骤S6包括以下子步骤:
S601 程序启动后工具植入的调试代码功能通过网络向低代码平台软件发送变量信息,用于显示和监控;
S602 平台软件发送断点语句,程序将暂停运行。
8.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被运行时执行如权利要求1-7任一项所述的一种可快速构建且不易出错的高效率编程方法。
CN202310394256.4A 2023-04-13 2023-04-13 一种可快速构建且不易出错的高效率编程方法 Active CN116431142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310394256.4A CN116431142B (zh) 2023-04-13 2023-04-13 一种可快速构建且不易出错的高效率编程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310394256.4A CN116431142B (zh) 2023-04-13 2023-04-13 一种可快速构建且不易出错的高效率编程方法

Publications (2)

Publication Number Publication Date
CN116431142A true CN116431142A (zh) 2023-07-14
CN116431142B CN116431142B (zh) 2024-02-13

Family

ID=87079294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310394256.4A Active CN116431142B (zh) 2023-04-13 2023-04-13 一种可快速构建且不易出错的高效率编程方法

Country Status (1)

Country Link
CN (1) CN116431142B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090064103A1 (en) * 2007-09-04 2009-03-05 Shih Hsueh-Fu Method for editing programmer logic controller (plc) program
CN109976760A (zh) * 2017-12-27 2019-07-05 北京东土科技股份有限公司 一种图形语言的交叉编译方法及交叉编译器
CN110442520A (zh) * 2019-07-24 2019-11-12 中电智能科技有限公司 一种基于plc编程语言的交叉调试系统及方法
CN110704044A (zh) * 2019-09-11 2020-01-17 苏州德创测控科技有限公司 一种可视化编程系统
EP3751412A1 (en) * 2019-06-11 2020-12-16 ENGEL AUSTRIA GmbH A computer-implemented method to generate an opc ua information model
CN113110853A (zh) * 2021-03-15 2021-07-13 杭州康吉森自动化科技有限公司 一种组态数据在线下载方法、装置及电子设备
CN114594937A (zh) * 2022-02-21 2022-06-07 南京南瑞继保电气有限公司 一种程序组态方法和系统
CN115640014A (zh) * 2022-10-25 2023-01-24 国电南瑞科技股份有限公司 一种基于编译植入特征码的功能块在线校核方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090064103A1 (en) * 2007-09-04 2009-03-05 Shih Hsueh-Fu Method for editing programmer logic controller (plc) program
CN109976760A (zh) * 2017-12-27 2019-07-05 北京东土科技股份有限公司 一种图形语言的交叉编译方法及交叉编译器
EP3751412A1 (en) * 2019-06-11 2020-12-16 ENGEL AUSTRIA GmbH A computer-implemented method to generate an opc ua information model
CN110442520A (zh) * 2019-07-24 2019-11-12 中电智能科技有限公司 一种基于plc编程语言的交叉调试系统及方法
CN110704044A (zh) * 2019-09-11 2020-01-17 苏州德创测控科技有限公司 一种可视化编程系统
CN113110853A (zh) * 2021-03-15 2021-07-13 杭州康吉森自动化科技有限公司 一种组态数据在线下载方法、装置及电子设备
CN114594937A (zh) * 2022-02-21 2022-06-07 南京南瑞继保电气有限公司 一种程序组态方法和系统
CN115640014A (zh) * 2022-10-25 2023-01-24 国电南瑞科技股份有限公司 一种基于编译植入特征码的功能块在线校核方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XIAOYE CAI等: "Automated generation of PLC code for implementing mode-based control algorithms in buildings", 《2022 30TH MEDITERRANEAN CONFERENCE ON CONTROL AND AUTOMATION (MED)》, pages 1087 - 1092 *
程京都: "工控现场数据采集系统的图形化组态编程技术研", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 06, pages 140 - 294 *
谭良良等: "支持IEC61131-3 标准的编程软件设计", 《工业控制计算机》, vol. 32, no. 6, pages 1 - 3 *

Also Published As

Publication number Publication date
CN116431142B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US8055995B2 (en) System and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
Balci Requirements for model development environments
CN111241454B (zh) 一种生成网页代码的方法、系统和装置
US7873939B2 (en) Processing logic modeling and execution
US20240045850A1 (en) Systems and methods for database orientation transformation
CN102541521B (zh) 基于结构化查询语言的操作指令自动生成装置及方法
CN111796831B (zh) 一种多芯片兼容的编译方法和装置
US20050223360A1 (en) System and method for providing a generic user interface testing framework
CN109918081B (zh) 一种编译方法及编译器
CN103718155A (zh) 运行时系统
Pautasso et al. Visual composition of web services
CN112328229A (zh) 一种快速创建Jenkins流水线的方法
Walker et al. The symbolics Genera programming environment
US20050228644A1 (en) Generic user interface testing framework with rules-based wizard
JP3577400B2 (ja) システム設計装置及びデータウエアハウス設計システム
CN114647416A (zh) 基于注解的业务流实现方法及装置、存储介质、电子设备
CN116431142B (zh) 一种可快速构建且不易出错的高效率编程方法
CN106250147A (zh) 应用程序开发管理方法和装置
CN115756433A (zh) 代码平台的迁移方法、装置、电子设备及可读存储介质
Anquetil et al. Modular Moose: A new generation software reverse engineering environment
CN114356430A (zh) 一种基于airflow调度系统的DAG依赖配置工具
Deiters et al. Software process evolution in MELMAC
CN112181387A (zh) 一种web多人协同开发过程中模块管理方法
CN114518875A (zh) 一种图形化编程系统及其编程方法
KR101085114B1 (ko) 피엘씨 소프트웨어 개발환경 제공 시스템

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