CN109669721B - 一种可二次开发软件的方法 - Google Patents
一种可二次开发软件的方法 Download PDFInfo
- Publication number
- CN109669721B CN109669721B CN201811574527.XA CN201811574527A CN109669721B CN 109669721 B CN109669721 B CN 109669721B CN 201811574527 A CN201811574527 A CN 201811574527A CN 109669721 B CN109669721 B CN 109669721B
- Authority
- CN
- China
- Prior art keywords
- instruction
- function
- interface
- program
- designing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明一种可二次开发软件的方法,包括步骤S11,创建数据结构;步骤S12,设计程序开发界面;步骤S13,建立程序开发指令;步骤S14,设计外部动态加载动态链接库功能,在不需要编译程序的情况下,将动态链接库里的函数作为所述程序开发指令;以及步骤S15,设计主程序界面及界面管理功能。本方法不但具有简洁、友好的用户界面,而且具有强大的二次开发功能,可以满足不同应用场景;减少了项目开发周期,降低了软件管理与维护成本。
Description
技术领域
本发明涉及光通信行业自动化领域,具体涉及一种可二次开发软件的方法。
背景技术
随着光通信行业的快速发展,自动化耦合技术成为行业生产主流,由于光通信产品种类繁多,诞生了许多针对不同产品的耦合机台;机台上软件各不相同,为软件调试和生产维护带来了大量的困难及重复劳动。
现有耦合机台软件开发思路有两种。第一种是根据项目需求分解各个动作步骤及参数形成流程图,然后根据流程图直接进行编程,所有步骤及参数都写在代码里,这种方式优点是前期开发速度很快,缺点是后期调试及流程调整非常繁琐,因为实际生产中经常需要更改流程、参数及功能扩展。这会导致同一个机台上出现多个软件版本的问题,无疑这增加了软件维护的工作量;第二种是以各个基本动作为模块写在代码里,并对其进行标识,实际应用中由软件工程师或工艺工程师根据步骤标识决定动作的执行顺序。这种方式解决了上述提到的频繁更改流程的问题,但是对于需要增加新功能及新流程的需求,则无能为力;此外,这种方式也会导致同一种产品类型机台上的软件出现至少一个版本的问题,这为软件的管理及维护提供了巨大的挑战。
在实际生产中急切需要一种软件平台,能够涵盖所有耦合机台软件版本的功能,并且使用时界面简洁、友好。本发明提出的方法将有效地解决上述提到的问题,所有耦合机台都可以用同一个软件版本进行编程与调试,这不仅大大地减少了项目开发周期,而且降低了软件管理与维护难度。
发明内容
本发明的目的是针对统一不同耦合机台软件版本,降低软件开发、管理及维护难度的问题,提出一种可二次开发软件的方法,拥有可二次开发功能,满足不同应用场景,减少项目开发周期,降低软件管理与维护成本。
为实现上述目的,本发明一种可二次开发软件的方法,包括以下步骤:
创建数据结构;
设计程序开发界面;
建立程序开发指令;
设计外部动态加载动态链接库功能,在不需要编译程序的情况下,将动态链接库里的函数作为所述程序开发指令;以及
设计主程序界面及界面管理功能。
可选的,对于所述一种可二次开发软件的方法,在创建数据结构中,包括:建立哈希表、指令链表结构和全局变量结构体,用于分别存放函数信息、程序指令信息和全局变量信息。
可选的,对于所述一种可二次开发软件的方法,在设计程序开发界面中,包括:程序开发界面以表格形式描述指令,一行代表一条指令,表格列以包括“number”、“BreakPoint”、“lable”、“Name”、“Para1”、“Para2”、“Para3”、“Para4”、“Para5”及“Para6”来描述每条指令中内容;程序运行顺序自上而下,保存后将一张表中所有指令存到本地文件中,运行时将文件中内容载入到指令链表中。
可选的,对于所述一种可二次开发软件的方法,所述程序开发界面中的功能包括代码调试功能、运行/暂停功能、***及删除指令功能。
可选的,对于所述一种可二次开发软件的方法,在建立程序开发指令中,包括:建立变量定义指令、逻辑运算指令、人机交互指令、数学运算指令、子函数调用指令、运动控制指令、通讯指令、数据显示存储指令和多线程指令。
可选的,对于所述一种可二次开发软件的方法,在设计外部动态加载动态链接库功能中,包括:
通过解析头文件获取函数信息并将信息存入哈希表中,包括函数名,输入输出参数及类型;
利用包括LoadLibrary,GetProcAddress,FreeLibrary三个函数实现动态解析动态链接库功能;
将所述哈希表中的函数载入到程序开发指令中,在调用时显示帮助信息。
在不需要编译程序的情况下,将DLL里的函数作为程序开发的指令。
可选的,对于所述一种可二次开发软件的方法,所述设计主程序界面包括:菜单栏、图形显示区、数据显示区、***状态显示区和快捷按钮区,所述菜单栏不可配置,所述图形显示区、数据显示区、***状态显示区和快捷按钮区可个性化配置。
可选的,对于所述一种可二次开发软件的方法,所述界面管理功能包括:界面曲线颜色配置、用户权限管理及***配置;
所述界面曲线颜色配置是针对多通道耦合功率曲线显示的颜色进行个性化设置;
所述用户权限管理包括添加/删除用户账户及权限功能,用户权限分为管理员权限、工程师权限、技术员权限与操作工权限;权限等级由上自下,高等级账户可对低等级账户进行配置,包括添加、删除、更改密码及更改账户等级;
所述***配置包括运动控制硬件参数配置、硬件输入输出I/O配置、主界面快捷控制按钮配置及程序Logo显示配置。
本发明的有益效果至少在于:提出一种可二次开发软件的方法,其不仅具有界面简洁、友好的特点,而且具有二次开发及动态载入DLL(Dynamic Link Library,动态链接库)的功能,可以使软件适用于所有耦合机台平台,这大大减少了项目开发周期,降低了软件管理与维护成本。
附图说明
图1为本发明提出的一种可二次开发软件的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的:提出一种基可二次开发软件的方法,使其适用于所有光通信行业自动化耦合机台。
本发明针对自动化耦合机台软件提出一种基于LabWindows/CVI开发平台的可编程软件平台方法,以保证软件工程师或工艺工程师可以在软件不需要重新编译的情况下,对设备进行二次开发或调试,来满足不同的应用场景。首先建立数据结构用于存放数据;其次设计程序二次开发界面包括指令***、删除、单步运行(Step)及运行(Run)功能;然后编写程序开发基本指令,以便二次开发调用;随后设计外部动态加载DLL(DynamicLinkLibrary,动态链接库)功能,在不需要编译程序的情况下,将DLL里的函数作为程序开发基本指令;最后设计主程序界面及主程序界面管理功能。
本发明一个实施例的设计主程序界面中,包括多个图形显示区,显示耦合曲线,例如可以设置在中间上方;作为数据显示区的表格,显示耦合数据,例如可以在图形显示区下方;状态框,作为***状态显示区,显示程序执行动作运行状态,例如可以在表格下方;右侧自上而下分别可以为公司Logo、产品序列号、快捷键按钮;各个区域都可以根据客户需求进行个性化配置。例如结果数据显示的行数列数可以在***配置文件里面定义;快捷键的名称可以在配置文件里面配置。
本发明一个实施例的程序二次开发界面,可以包括位于表格上方的程序操作区,实现***/删除表格、输入指令、单步调试等等;中间的所述表格为程序二次开发区,开发客户需求的程序;下方为变量状态观测区,显示运行过程中变量的数值。
在本发明中,将耦合平台常用基本功能(串口通信、单通道耦合、多通道耦合…)作为基本指令,然后通过程序开发指令实现逻辑运算及数学运算,外加动态载入DLL(DynamicLink Library,动态链接库)功能从而实现适应不同应用场景的作用。如图1所示,具体实现步骤为:
步骤S11,创建数据结构;
步骤S12,设计程序开发界面;
步骤S13,建立程序开发指令;
步骤S14,设计外部动态加载动态链接库功能,在不需要编译程序的情况下,将动态链接库里的函数作为所述程序开发指令;以及
步骤S15,设计主程序界面及界面管理功能。
在一个实施例中,对于步骤S11,包括:建立哈希表、指令链表结构和全局变量结构体,用于分别存放函数信息、程序指令信息和全局变量信息。
在一个实施例中,对于步骤S12,包括:程序开发界面以表格形式描述指令,一行代表一条指令,表格列以包括“number”、“BreakPoint”、“lable”、“Name”、“Para1”、“Para2”、“Para3”、“Para4”、“Para5”及“Para6”等来描述每条指令中内容;程序运行顺序自上而下,保存后将一张表中所有指令存到本地文件中,运行时将文件中内容载入到指令链表中。
例如,所述程序开发界面中的功能包括代码调试功能、运行/暂停功能、***及删除指令功能。
在一个实施例中,对于步骤S13,在建立程序开发指令中,包括:建立变量定义指令、逻辑运算指令、人机交互指令、数学运算指令、子函数调用指令、运动控制指令、通讯指令、数据显示存储指令和多线程指令等。
在一个实施例中,对于步骤S14,在设计外部动态加载动态链接库功能中,包括:
通过解析头文件获取函数信息并将信息存入哈希表中,包括函数名,输入输出参数及类型;
例如利用包括LoadLibrary,GetProcAddress,FreeLibrary三个函数实现动态解析动态链接库功能;
将所述哈希表中的函数载入到程序开发指令中,在调用时显示帮助信息。
在不需要编译程序的情况下,将DLL里的函数作为程序开发的指令。
在一个实施例中,对于步骤S15,所述设计主程序界面包括:菜单栏、图形显示区、数据显示区、***状态显示区和快捷按钮区,所述菜单栏不可配置,所述图形显示区、数据显示区、***状态显示区和快捷按钮区可个性化配置。例如结果数据显示的行数列数可以在***配置文件里面定义;快捷键的名称个数可以在配置文件里面配置。
在一个实施例中,对于步骤S15,所述界面管理功能包括:界面曲线颜色配置、用户权限管理及***配置;
所述界面曲线颜色配置是针对多通道耦合功率曲线显示的颜色进行个性化设置;
所述用户权限管理包括添加/删除用户账户及权限功能,用户权限分为管理员权限、工程师权限、技术员权限与操作工权限;权限等级由上自下,高等级账户可对低等级账户进行配置,包括添加、删除、更改密码及更改账户等级;
所述***配置包括运动控制硬件参数配置、硬件输入输出I/O配置、主界面快捷控制按钮配置及程序Logo显示配置。
综上所述,本发明一种可二次开发软件的方法,其不仅具有界面简洁、友好的特点,而且具有二次开发及动态载入DLL(Dynamic Link Library,动态链接库)的功能,可以使软件适用于所有耦合机台平台,这大大减少了项目开发周期,降低了软件管理与维护成本。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (1)
1.一种可二次开发软件的方法,包括以下步骤:
创建数据结构,在创建数据结构中,包括:建立哈希表、指令链表结构和全局变量结构体,用于分别存放函数信息、程序指令信息和全局变量信息;
设计程序开发界面,在设计程序开发界面中,包括:程序开发界面以表格形式描述指令,一行代表一条指令,表格列以包括“number”、“BreakPoint”、“lable”、“Name”、“Para1”、“Para2”、“Para3”、“Para4”、“Para5”及“Para6”来描述每条指令中内容;程序运行顺序自上而下,保存后将一张表中所有指令存到本地文件中,运行时将文件中内容载入到指令链表中,所述程序开发界面中的功能包括代码调试功能、运行/暂停功能、***及删除指令功能;
建立程序开发指令,在建立程序开发指令中,还包括:建立变量定义指令、逻辑运算指令、人机交互指令、数学运算指令、子函数调用指令、运动控制指令、通讯指令、数据显示存储指令和多线程指令;
设计外部动态加载动态链接库功能,在不需要编译程序的情况下,将动态链接库里的函数作为所述程序开发指令;以及
设计主程序界面及界面管理功能,所述设计主程序界面包括:菜单栏、图形显示区、数据显示区、***状态显示区和快捷按钮区,所述菜单栏不可配置,所述图形显示区、数据显示区、***状态显示区和快捷按钮区可个性化配置;设计外部动态加载动态链接库功能中,包括:
通过解析头文件获取函数信息并将信息存入哈希表中,包括函数名,输入输出参数及类型;
利用包括LoadLibrary,GetProcAddress,FreeLibrary三个函数实现动态解析动态链接库功能;
将所述哈希表中的函数载入到程序开发指令中,在调用时显示帮助信息;
所述界面管理功能包括:界面曲线颜色配置、用户权限管理及***配置;
所述界面曲线颜色配置是针对多通道耦合功率曲线显示的颜色进行个性化设置;
所述用户权限管理包括添加/删除用户账户及权限功能,用户权限分为管理员权限、工程师权限、技术员权限与操作工权限;权限等级由上自下,高等级账户可对低等级账户进行配置,包括添加、删除、更改密码及更改账户等级;
所述***配置包括运动控制硬件参数配置、硬件输入输出I/O配置、主界面快捷控制按钮配置及程序Logo显示配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574527.XA CN109669721B (zh) | 2018-12-21 | 2018-12-21 | 一种可二次开发软件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574527.XA CN109669721B (zh) | 2018-12-21 | 2018-12-21 | 一种可二次开发软件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669721A CN109669721A (zh) | 2019-04-23 |
CN109669721B true CN109669721B (zh) | 2022-04-01 |
Family
ID=66145790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574527.XA Active CN109669721B (zh) | 2018-12-21 | 2018-12-21 | 一种可二次开发软件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669721B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212673B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Component-neutral builder interface |
CN102236602A (zh) * | 2011-07-21 | 2011-11-09 | 南京大学 | 一种可视化软件测试设计平台 |
CN104461503A (zh) * | 2014-11-06 | 2015-03-25 | 华自科技股份有限公司 | 动态组成软件界面的方法与*** |
CN105224353A (zh) * | 2014-06-26 | 2016-01-06 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 动态加载界面导航的方法及*** |
-
2018
- 2018-12-21 CN CN201811574527.XA patent/CN109669721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212673B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Component-neutral builder interface |
CN102236602A (zh) * | 2011-07-21 | 2011-11-09 | 南京大学 | 一种可视化软件测试设计平台 |
CN105224353A (zh) * | 2014-06-26 | 2016-01-06 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 动态加载界面导航的方法及*** |
CN104461503A (zh) * | 2014-11-06 | 2015-03-25 | 华自科技股份有限公司 | 动态组成软件界面的方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN109669721A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273286B (zh) | 针对任务应用的场景自动化测试平台及方法 | |
CN110663006B (zh) | 对可编程逻辑控制器执行故障转移并控制物理***的方法 | |
CN109918081B (zh) | 一种编译方法及编译器 | |
CN104021080A (zh) | 基于自定义脚本的自动化测试*** | |
CN109143953B (zh) | 一种基于中间语言的plc程序验证方法 | |
CN103150249A (zh) | 一种自动化测试的方法和*** | |
US8701079B2 (en) | Procedure and development environment for generation of an executable overall control program | |
US9824000B1 (en) | Testing calling code dynamically with random error injection based on user-specified configuration | |
CN103389939A (zh) | 一种针对堆可控分配漏洞的检测方法及*** | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
Hopsu et al. | On portability of IEC 61499 compliant structures and systems | |
CN104391754A (zh) | 一种任务异常的处理方法及装置 | |
CN107122203B (zh) | 一种配置文件的设置方法及装置 | |
CN115934062A (zh) | 一种工业控制程序开发平台及方法 | |
CN109669721B (zh) | 一种可二次开发软件的方法 | |
US20180059634A1 (en) | Engineering tool | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
WO2018096717A1 (ja) | コントロールシステム及びコントロール方法 | |
CN111597105A (zh) | 一种基于lv环境的自动化测试***及方法 | |
CN101561779A (zh) | 一种调试方法和调试器 | |
CN102306109A (zh) | 一种实现通讯管理机内部逻辑可编程方法 | |
CN111310313A (zh) | 基于iap的仿真模拟方法、装置以及晶圆清洗设备 | |
CN115686462A (zh) | 基于React-Native的工程化架构方法及*** | |
CN109901831A (zh) | 软件的多平台兼容运行方法及兼容运行装置 | |
Ulewicz et al. | Proving equivalence between control software variants for Programmable Logic Controllers |
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 |