CN114594937A - 一种程序组态方法和系统 - Google Patents
一种程序组态方法和系统 Download PDFInfo
- Publication number
- CN114594937A CN114594937A CN202210155789.2A CN202210155789A CN114594937A CN 114594937 A CN114594937 A CN 114594937A CN 202210155789 A CN202210155789 A CN 202210155789A CN 114594937 A CN114594937 A CN 114594937A
- Authority
- CN
- China
- Prior art keywords
- variable
- program
- subsystem
- configuration
- task
- 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
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/33—Intelligent editors
-
- 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
-
- 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/37—Compiler construction; Parser generation
-
- 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/38—Creation or generation of source code for implementing user interfaces
-
- 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/71—Version control; Configuration management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开了一种程序组态方法,通过数据类型定义、全局变量声明、IO映射配置、程序功能定义、任务配置、录波配置、编译排错、下载运行的过程完成可编程控制器的程序组态。同时,本发明还公开一种程序组态系统,包括软件主框架、工程管理树子系统、数据类型定义子系统、全局变量定义子系统、IO配置子系统、程序组织单元子系统、任务配置子系统、录波配置子系统、编译子系统和下载调试子系统。本发明通过合理地展示树形操作节点,支持实时变量索引和调用树分析,支持程序封装复用,提升编辑效率。
Description
技术领域
本发明属于嵌入式控制器领域,具体涉及控制器数据和程序的组态方法。
背景技术
IEC61131将信息技术领域的先进思想和技术引入到工业控制领域,弥补了传统PLC、DCS控制系统可维护性差、开放性差、兼容性差等不足,当前基于IEC61131标准的产品已经在工业领域中使用。目前,市面上的组态软件由于过于强调通用性,存在功能庞杂,操作过程繁琐难于理解的弊端。此外,在高实时性、高复杂度应用场景,基于IEC61131-3结构化文本编程或图形化编程的效率或灵活性无法满足要求,需要嵌入C/C++语言实现部分功能。因此在支持IEC61131-3的5种语言基础上,需要简化组态操作场景,支持自定义库封装,支持C/C++编程,本发明由此产生。
发明内容
本发明的目的是采用模板和向导的方式,简化程序组态过程,支持自定义库封装复用和IEC61131-3语言、C/C++混合编程。
一种程序组态方法,包括如下步骤:
第一步:导入系统或用户预定义数据类型和编程符号库;
第二步:自定义枚举、数组、结构体和类数据类型;
第三步:声明全局变量,引用基本数据类型、预定义和自定义数据类型;
第四步:创建若干硬件,设置硬件通道对应变量信息;
第五步:定义程序组织单元,按照层级目录创建若干程序、功能块和函数,程序输入输出变量关联全局变量;
第六步:配置任务,在各个子任务节点下关联程序组织单元;
第七步:可选配置录波监视变量;
第八步:保存工程,编译程序,下载编译产物到控制器运行。
进一步地,上述第一步中,用户预定义的数据类型和编程符号库通过步骤一、步骤二、步骤三、步骤五组合实现,可封装导出为用户库文件;新的工程支持导入若干用户库文件进行复用。
进一步地,上述第二步和第三步中,支持结构体多层级实例化子结构体、数组;支持数组成员为结构体实例。数组成员若存在连续多个变量初始值相同,则采用压缩方式存储,记录当前下标、初始值相同的连续个数、初始值。
进一步地,上述第四步中,导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,读写硬件IO数据作为特殊的程序,可关联某个任务,在不同周期的任务中执行。
进一步地,上述第五步中,程序组织单元(POU)支持使用IEC61131-3标准定义的5种语言(指令表IL、结构化文本ST、功能块图FBD、梯形图LD、顺序功能图SFC),也支持使用C/C++语言定义。按照程序Program、功能块FunctionBlock、函数Function分类,在程序中可实例化功能块,并调用子程序、功能块、函数。在程序中可直接访问全局变量、硬件IO变量。启动后台分析线程,即时分析变量引用和子程序调用关系,刷新变量交叉索引表和层次调用树,被调用、未调用的程序节点显示不同颜色。
进一步地,上述第六步中,支持实例化创建多级中断任务、周期执行任务、循环执行任务、事件/状态触发任务,事件触发任务关联系统预定义的事件编号,状态触发任务关联全局变量和程序组织单元变量。
进一步地,上述第七步中,支持配置多组不同周期的录波变量,每组录波监视作为特殊的程序,可关联到不同的任务中执行。在线联机状态下,控制器抓取缓存一定周期变量值,打包上送到组态软件,组态软件可缓存长周期变量值,显示变量变化趋势,并可导出为数据文件、图形文件。
进一步地,上述第八步中,未被实例化的数据类型、未被调用的程序、功能块、函数不参与编译。
进一步地,上述第一步中,系统预定义的数据类型包括IEC61131-3标准的时间、日期、字符串、文件、串口和网络数据通信结构体,系统预定义的符号库包括IEC61131-3标准定义的算术运算、逻辑运算、比较运算、双稳态运算、边沿触发器、数据类型转换函数和功能块,所述功能块包括文件操作、数据收发、指针操作、内存操作功能块。
一种程序组态系统,包括软件主框架、工程管理树子系统、数据类型定义子系统、全局变量定义子系统、IO配置子系统、程序组织单元子系统、任务配置子系统、录波配置子系统、编译子系统、下载调试子系统。
所述软件主框架,是程序组态软件的框架界面,显示软件主窗体,包括标题栏、状态栏、左/右/下停靠窗体区域、状态栏、中心窗体视图区域,采用组件方式加载各个子系统。
所述工程管理树子系统,是层次树结构,用于显示程序工程节点或用户库工程节点,程序工程节点包括若干控制器节点,控制器节点可创建若干子节点对象,默认显示数据类型子节点、全局变量子节点、IO配置子节点、程序组织单元子节点、录波配置子节点,在控制器节点右键菜单可触发编译、下载、调试等操作。用户库工程用于编辑封装用户自定义库,显示数据类型子节点、全局变量子节点、程序组织单元子节点,支持开发功能块和函数。
所述的数据类型定义子系统,支持创建枚举、数组、结构体数据类型。数组成员支持基本变量类型、指针变量类型、结构体变量类型。结构体成员支持基本变量类型、指针变量类型、子结构体变量类型、数组类型。优选地,枚举和数组采用表格显示,结构体采用层次树显示。
所述全局变量定义子系统,支持创建多级目录,分组管理变量,每个分组支持实例化基本变量、数组变量、结构体变量。全局变量包括变量名、变量类型、地址、初始值、运行值、强制值、描述属性。支持批量新建、删除、复制、粘贴、查找和替换变量功能。全局变量和数据区的某个相对地址关联,根据变量类型和对齐原则,自动分配相对地址并显示。
所述IO配置子系统,导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,IO整组数据读写可关联到某个任务下执行。
所述程序组织单元子系统,支持创建多级目录和程序组织单元(程序、功能块、功能),程序和功能块包括输入变量、输出变量、中间变量。函数包括输入变量和返回值。程序中的输入变量和输出变量可直接通过填写地址的方式关联全局变量和IO变量,实现形参调用,也支持在程序代码体中直接读写全局变量和IO变量。程序的设计语言包括IEC61131-3标准定义的5种语言(指令表IL、结构化文本ST、功能块图FBD、梯形图LD、顺序功能图SFC),也支持使用C/C++语言定义。程序组织单元子系统有实时数据处理子线程,用于刷新程序变量和全局变量、IO变量之间的交叉引用关系,变量交互引用信息显示在底部交叉索引信息栏。
所述任务配置子系统,用于创建中断任务、周期任务、循环任务、事件触发或状态触发任务。每种任务下可关联程序、功能块,表示该任务下调用实例化的程序和功能块。
所述录波配置子系统,包括录波配置子模块、波形显示子模块。录波配置子模块用于配置需要录波查看的变量,每个录波通道可关联全局变量、IO变量、程序变量。波形显示子模块用于在线显示实时波形数据,或者显示存储后波形文件,支持多通道波形分布、汇总显示,支持按照固定刻度或自适应刻度显示数据。
所述编译子系统,用于编译IEC61131-3标准五种语言程序和C/C++扩展程序,根据控制器处理器型号适配指令集和寄存器,形成二进制机器码,在底部状态栏显示编译出错信息,可定位到出错符号、连接线、代码行。编译子系统还形成配置实时库数据,包括全局变量、任务配置、录波配置信息。
所述下载调试子系统,用于连接控制器,获取下载调试权限,将编译后产物下载到控制器,下发运行命令,启动控制器程序运行,获取调试值,根据变量名、变量类型和地址信息,显示在线值。
采用上述方案后,本发明具有如下有益效果:
本发明将控制器程序组态划分为数据类型定义、全局变量声明、IO硬件配置和变量声明、程序定义和外部变量关联、任务配置、录波配置等操作场景明确清晰的过程,并支持用户自定义库的封装、导入复用,支持标准的IEC61131-3语言编程和高性能C/C++混合编程,通过实时交叉索引和调用树分析,提升了操作便捷性,降低了程序组态的难度,提升了工程实施的效率。
附图说明
图1是本发明中程序组态过程图;
图2是本发明中程序组态系统图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。如图1所示,在创建新组态工程时,可选择工程模板是程序工程模板还是用户库工程模板,根据模板显示不同的子节点和使能功能。用户库工程用于封装自定义功能块和功能,用户库工程隐藏硬件配置、录波配置、任务配置子节点。用户库工程通过数据类型定义、全局变量声明、程序组织单元的步骤实现,可封装导出为用户库文件;新的工程支持导入若干用户库文件进行复用。下面以创建程序工程类型为例,阐述一种程序组态具体实现方式:
1)对于程序工程类型,导入系统或用户预定义数据类型、编程符号库。系统预定义的数据类型包括IEC61131-3标准的时间、日期、字符串、文件、串口和网络数据通信结构体,系统预定义的符号库包括IEC61131-3标准定义的算术运算、逻辑运算、比较运算、双稳态运算、边沿触发器、数据类型转换函数和功能块,包括文件操作、数据收发、指针操作、内存操作功能块。
2)自定义枚举、数组、结构体、类数据类型支持结构体多层级实例化子结构体、数组;支持数组成员为结构体实例。优选地,结构体描述方式如下:
<struct>
<basic_var/> //基本成员
<pointer_var/> //指针类型
<struct_inst/> //结构体实例
<arr_inst/> //数组类型
<enum_inst/> //枚举实例
</struct>
struct_inst为结构体实例,支持嵌套实例化,结构体实例的子成员也是结构体时,描述示例如下:
<struct_instname=“Inst1” type=“AA”>
<var name=“a1” value=“1”/>
<var name=“a2” value=“1”/>
<struct_inst name=“Inst2” type=“BB”>
<var name=“b1” value=“3”/>
<var name=“b2” value=“4”/>
</ struct_inst>
</struct_inst>
优选地name为变量名,value为初始值,type为类型名,采用XML层次化结构描述层次化数据。
3)声明全局变量,全局变量成员可引用基本数据类型、预定义和自定义数据类型。数组成员若存在连续多个变量初始值相同,则采用压缩方式存储,记录当前下标、初始值相同的连续个数、初始值。例如INT A[10]={0,0,0,0,0,1,1,1,1,1}可优选表示为:
<Arr type=”INT” init=“0(5), 1(5)”/>
4)创建若干硬件,设置硬件通道对应变量信息。导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,读写硬件IO数据作为特殊的程序,可关联某个任务,在不同周期的任务中执行。优选地,输入变量地址形如%IX0.0,%IX0.1,表示分配输入数据区字节0的第0位、第1位,默认变量名为IX_0_0、IX_0_1,输出变量地址形如%QX0.0,%QX0.1,表示分配输出数据区字节0的第0位、第1位, 默认变量名为QX_0_0、QX_0_1。
5)定义程序组织单元,按照层级目录创建若干程序、功能块、函数,程序输入输出变量关联全局变量。程序组织单元(POU)支持使用IEC61131-3标准定义的5种语言(指令表IL、结构化文本ST、功能块图FBD、梯形图LD、顺序功能图SFC),也支持使用C/C++语言定义。按照程序Program、功能块FunctionBlock、函数Function分类,在程序中可实例化功能块,并调用子程序、功能块、函数。图形类程序(FBD、LD、SFC)视图划分为变量区、图形程序编辑区,文本类程序(IL、ST、C/C++)视图划分为变量区、文本程序编辑区。在程序中可直接访问全局变量、硬件IO变量,图形类程序通过输入块、输出块关联外部变量,文本类程序在代码实体文本中可直接读写外部变量。程序组织单元启动后台分析线程,即时分析程序中变量引用和子程序调用关系,刷新变量交叉索引表和层次调用树,被调用、未调用的程序节点显示不同颜色。
6)配置任务,在各个子任务节点下关联程序组织单元。支持实例化创建多级中断任务、周期执行任务、循环执行任务、事件/状态触发任务,事件触发任务关联系统预定义的事件编号,状态触发任务关联全局变量和程序组织单元变量。
7)可选配置录波监视变量。支持配置多组不同周期的录波变量,每组录波监视作为特殊的程序,可关联到不同的任务中执行。在线联机状态下,控制器抓取缓存一定周期变量值,打包上送到组态软件,组态软件可缓存长周期变量值,显示变量变化趋势,并可导出为数据文件、图形文件。
8)保存工程,编译程序,下载编译产物到控制器运行。其中未被实例化的数据类型、未被调用的程序、功能块、函数不形成到中间代码中,不参与编译。
如图2所示,一种程序组态系统,包括软件主框架、工程管理树子系统、数据类型定义子系统、全局变量定义子系统、IO配置子系统、程序组织单元子系统、任务配置子系统、录波配置子系统、编译子系统、下载调试子系统。
其中软件主框架,是程序组态软件的框架界面,显示软件主窗体,包括标题栏、状态栏、左/右/下停靠窗体区域、状态栏、中心窗体视图区域,采用组件方式加载各个子系统。
其中工程管理树子系统,是层次树结构,用于显示程序工程节点或用户库工程节点,程序工程节点包括若干控制器节点,控制器节点可创建若干子节点对象,默认显示数据类型子节点、全局变量子节点、IO配置子节点、程序组织单元子节点、录波配置子节点,在控制器节点右键菜单可触发编译、下载、调试等操作。用户库工程用于编辑封装用户自定义库,显示数据类型子节点、全局变量子节点、程序组织单元子节点,支持开发功能块和函数。
其中数据类型定义子系统,支持创建枚举、数组、结构体数据类型。数组成员支持基本变量类型、指针变量类型、结构体变量类型。结构体成员支持基本变量类型、指针变量类型、子结构体变量类型、数组类型。优选地,枚举和数组采用表格显示,结构体采用层次树显示。
其中全局变量定义子系统,支持创建多级目录,分组管理变量,每个分组支持实例化基本变量、数组变量、结构体变量。全局变量包括变量名、变量类型、地址、初始值、运行值、强制值、描述属性。支持批量新建、删除、复制、粘贴、查找和替换变量功能。全局变量和数据区的某个相对地址关联,根据变量类型和对齐原则,自动分配相对地址并显示。
其中IO配置子系统,导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,IO整组数据读写可关联到某个任务下执行。
其中程序组织单元子系统,支持创建多级目录和程序组织单元(程序、功能块、功能),程序和功能块包括输入变量、输出变量、中间变量。函数包括输入变量和返回值。程序中的输入变量和输出变量可直接通过填写地址的方式关联全局变量和IO变量,实现形参调用,也支持在程序代码体中直接读写全局变量和IO变量。程序的设计语言包括IEC61131-3标准定义的5种语言(指令表IL、结构化文本ST、功能块图FBD、梯形图LD、顺序功能图SFC),也支持使用C/C++语言定义。程序组织单元子系统有实时数据处理子线程,用于刷新程序变量和全局变量、IO变量之间的交叉引用关系,变量交互引用信息显示在底部交叉索引信息栏。
其中任务配置子系统,用于创建中断任务、周期任务、循环任务、事件触发或状态触发任务。每种任务下可关联程序、功能块,表示该任务下调用实例化的程序和功能块。
其中录波配置子系统,包括录波配置子模块、波形显示子模块。录波配置子模块用于配置需要录波查看的变量,每个录波通道可关联全局变量、IO变量、程序变量。波形显示子模块用于在线显示实时波形数据,或者显示存储后波形文件,支持多通道波形分布、汇总显示,支持按照固定刻度或自适应刻度显示数据。
其中编译子系统,用于编译IEC61131-3标准五种语言程序和C/C++扩展程序,根据控制器处理器型号适配指令集和寄存器,形成二进制机器码,在底部状态栏显示编译出错信息,可定位到出错符号、连接线、代码行。编译子系统还形成配置实时库数据,包括全局变量、任务配置、录波配置信息。
其中下载调试子系统,用于连接控制器,获取下载调试权限,将编译后产物下载到控制器,下发运行命令,启动控制器程序运行,获取调试值,根据变量名、变量类型和地址信息,显示在线值。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (10)
1.一种程序组态方法,其特征在于,包括如下步骤:
第一步:导入系统或用户预定义数据类型和编程符号库;
第二步:自定义枚举、数组、结构体和类数据类型;
第三步:声明全局变量,引用基本数据类型、预定义和自定义数据类型;
第四步:创建若干硬件,设置硬件通道对应变量信息;
第五步:定义程序组织单元,按照层级目录创建若干程序、功能块和函数,程序输入输出变量关联全局变量;
第六步:配置任务,在各个子任务节点下关联程序组织单元;
第七步:可选配置录波监视变量;
第八步:保存工程,编译程序,下载编译产物到控制器运行。
2.如权利要求1所述一种程序组态方法,其特征在于,所述第一步中,用户预定义的数据类型和编程符号库通过封装导出为用户库文件;新的工程支持导入若干用户库文件进行复用。
3.如权利要求1所述一种程序组态方法,其特征在于,所述第二步和第三步中,支持结构体多层级实例化子结构体和数组;支持数组成员为结构体实例;数组成员若存在连续多个变量初始值相同,则采用压缩方式存储,记录当前下标及初始值相同的连续个数和初始值。
4.如权利要求1所述一种程序组态方法,其特征在于,所述第四步中,导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,读写硬件IO数据作为特殊的程序,能够关联某个任务,在不同周期的任务中执行。
5.如权利要求1所述一种程序组态方法,其特征在于,所述第五步中,程序组织单元支持使用IEC61131-3标准定义语言,也支持使用C/C++语言定义;按照程序、功能块和函数分类,在程序中能够实例化功能块,并调用子程序、功能块和函数;在程序中能够直接访问全局变量和硬件IO变量;启动后台分析线程,即时分析变量引用和子程序调用关系,刷新变量交叉索引表和层次调用树,被调用和未调用的程序节点显示不同颜色。
6.如权利要求1所述一种程序组态方法,其特征在于,所述第六步中,支持实例化创建多级中断任务、周期执行任务、循环执行任务和事件/状态触发任务,事件触发任务关联系统预定义的事件编号,状态触发任务关联全局变量和程序组织单元变量。
7.如权利要求1所述一种程序组态方法,其特征在于,所述第七步中,支持配置多组不同周期的录波变量,每组录波监视作为特殊的程序,能够关联到不同的任务中执行;在线联机状态下,控制器抓取缓存一定周期变量值,打包上送到组态软件,组态软件可缓存长周期变量值,显示变量变化趋势,并导出为数据文件和图形文件。
8.如权利要求1所述一种程序组态方法,其特征在于,所述第八步中,未被实例化的数据类型、未被调用的程序、功能块和函数不参与编译。
9.如权利要求1所述的一种程序组态方法,其特征在于,所述第一步中,系统预定义的数据类型包括IEC61131-3标准的时间、日期、字符串、文件、串口和网络数据通信结构体,系统预定义的编程符号库包括IEC61131-3标准定义的算术运算、逻辑运算、比较运算、双稳态运算、边沿触发器、数据类型转换函数和功能块,所述功能块包括文件操作、数据收发、指针操作和内存操作功能块。
10.一种程序组态系统,其特征在于:包括软件主框架、工程管理树子系统、数据类型定义子系统、全局变量定义子系统、IO配置子系统、程序组织单元子系统、任务配置子系统、录波配置子系统、编译子系统和下载调试子系统;
所述软件主框架,是程序组态软件的框架界面,显示软件主窗体,包括标题栏、状态栏、左/右/下停靠窗体区域、状态栏和中心窗体视图区域,采用组件方式加载各个子系统;
所述工程管理树子系统,是层次树结构,用于显示程序工程节点或用户库工程节点,程序工程节点包括若干控制器节点,控制器节点可创建若干子节点对象,默认显示数据类型子节点、全局变量子节点、IO配置子节点、程序组织单元子节点和录波配置子节点,在控制器节点右键菜单可触发编译、下载和调试操作;用户库工程用于编辑封装用户自定义库,显示数据类型子节点、全局变量子节点和程序组织单元子节点,支持开发功能块和函数;
所述数据类型定义子系统,支持创建枚举、数组和结构体数据类型;数组成员支持基本变量类型、指针变量类型和结构体变量类型;结构体成员支持基本变量类型、指针变量类型、子结构体变量类型和数组类型;枚举和数组采用表格显示,结构体采用层次树显示;
所述全局变量定义子系统,支持创建多级目录,分组管理变量,每个分组支持实例化基本变量、数组变量和结构体变量;全局变量包括变量名、变量类型、地址、初始值、运行值、强制值和描述属性;支持批量新建、删除、复制、粘贴、查找和替换变量功能;全局变量和数据区的某个相对地址关联,根据变量类型和对齐原则,自动分配相对地址并显示;
所述IO配置子系统,导入硬件描述文件,设置槽号,根据描述文件中输入输出通道信息,自动形成通道地址和默认变量名,支持修改变量名,IO整组数据读写能够关联到某个任务下执行;
所述程序组织单元子系统,支持创建多级目录和程序组织单元,程序和功能块包括输入变量、输出变量、中间变量;函数包括输入变量和返回值;程序中的输入变量和输出变量可直接通过填写地址的方式关联全局变量和IO变量,实现形参调用,也支持在程序代码体中直接读写全局变量和IO变量;程序的设计语言包括IEC61131-3标准定义语言,也支持使用C/C++语言定义;程序组织单元子系统有实时数据处理子线程,用于刷新程序变量和全局变量、IO变量之间的交叉引用关系,变量交互引用信息显示在底部交叉索引信息栏;
所述任务配置子系统,用于创建中断任务、周期任务、循环任务以及事件触发或状态触发任务;每种任务下可关联程序和功能块,表示该任务下调用实例化的程序和功能块;
所述录波配置子系统,包括录波配置子模块和波形显示子模块;录波配置子模块用于配置需要录波查看的变量,每个录波通道可关联全局变量、IO变量和程序变量;波形显示子模块用于在线显示实时波形数据,或者显示存储后波形文件,支持多通道波形分布和汇总显示,支持按照固定刻度或自适应刻度显示数据;
所述编译子系统,用于编译IEC61131-3标准语言程序和C/C++扩展程序,根据控制器处理器型号适配指令集和寄存器,形成二进制机器码,在底部状态栏显示编译出错信息,能够定位到出错符号、连接线和代码行;编译子系统还形成配置实时库数据,包括全局变量、任务配置和录波配置信息;
所述下载调试子系统,用于连接控制器,获取下载调试权限,将编译后产物下载到控制器,下发运行命令,启动控制器程序运行,获取调试值,根据变量名、变量类型和地址信息,显示在线值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210155789.2A CN114594937A (zh) | 2022-02-21 | 2022-02-21 | 一种程序组态方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210155789.2A CN114594937A (zh) | 2022-02-21 | 2022-02-21 | 一种程序组态方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114594937A true CN114594937A (zh) | 2022-06-07 |
Family
ID=81806339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210155789.2A Pending CN114594937A (zh) | 2022-02-21 | 2022-02-21 | 一种程序组态方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114594937A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431142A (zh) * | 2023-04-13 | 2023-07-14 | 四川法瑞检测设备有限公司 | 一种可快速构建且不易出错的高效率编程方法 |
DE102022120339A1 (de) | 2022-08-11 | 2024-02-22 | Dspace Gmbh | Verfahren zum Modifizieren einer Signalverarbeitungskette |
-
2022
- 2022-02-21 CN CN202210155789.2A patent/CN114594937A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022120339A1 (de) | 2022-08-11 | 2024-02-22 | Dspace Gmbh | Verfahren zum Modifizieren einer Signalverarbeitungskette |
CN116431142A (zh) * | 2023-04-13 | 2023-07-14 | 四川法瑞检测设备有限公司 | 一种可快速构建且不易出错的高效率编程方法 |
CN116431142B (zh) * | 2023-04-13 | 2024-02-13 | 四川法瑞检测设备有限公司 | 一种可快速构建且不易出错的高效率编程方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114594937A (zh) | 一种程序组态方法和系统 | |
CN100514234C (zh) | 基于pc机的开放式数控系统 | |
US9235381B2 (en) | Method and device for the programming and configuration of a programmable logic controller | |
CN107710086B (zh) | 平移模块、处理模块及控制系统 | |
CN107861716B (zh) | 软件定义型控制系统及控制方法 | |
CN106125664A (zh) | 一种嵌入式plc控制系统 | |
US6826432B2 (en) | Process for programming an automation application | |
CN110271009B (zh) | 基于plc仿机器人指令实现机械手示教功能方法 | |
CN103941650A (zh) | 逻辑与运动集成控制器 | |
CN101470601A (zh) | 一种零编码生成应用软件的方法及生成平台 | |
WO2013013522A1 (zh) | 可重构计算机数字控制系统与数字控制方法、重构方法 | |
CN104391731A (zh) | 一种基于c#的与数据类型无关的编辑方法 | |
Hopsu et al. | On portability of IEC 61499 compliant structures and systems | |
CN105335164A (zh) | 一种基于windows的窗口绘制方法及绘制装置 | |
CN113741348B (zh) | 一种机床加工系统及存储介质 | |
CN115599719A (zh) | 一种基于fpga的fifo接口多通道dma控制器 | |
JP3326713B2 (ja) | 図的プログラミング方法 | |
CN109117128A (zh) | 一种实现相同目标的编程系统 | |
US20030188292A1 (en) | System and method for configuration using an object tree formed of hierarchically graduatable objects | |
CN106647461A (zh) | 一种基于arm‑fpga的自动绕线机控制系统 | |
CN111766834A (zh) | 一种火焰切割数控系统 | |
Liu et al. | A simple and practical embedded software system architecture | |
Liu et al. | A universal and scalable CNC interpreter for CNC systems | |
CN1731354A (zh) | Pc架构嵌入式系统中上电自检的设计方法 | |
CN109117124A (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 |