CN117389615B - 一种工业控制板的程序重构方法 - Google Patents
一种工业控制板的程序重构方法 Download PDFInfo
- Publication number
- CN117389615B CN117389615B CN202311695637.2A CN202311695637A CN117389615B CN 117389615 B CN117389615 B CN 117389615B CN 202311695637 A CN202311695637 A CN 202311695637A CN 117389615 B CN117389615 B CN 117389615B
- Authority
- CN
- China
- Prior art keywords
- task
- functional block
- output information
- configuration command
- function block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000006870 function Effects 0.000 claims abstract description 180
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/71—Version control; Configuration management
-
- 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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Programmable Controllers (AREA)
Abstract
本发明提供了一种工业控制板的程序重构方法,涉及计算机软件技术领域,采用三个任务功能块,具体包括如下步骤:第一任务功能块通过自身任务获取数据和第一触发条件变量,选中第一任务功能块,并利用任务功能块配置命令对第一任务功能块进行配置;通过配置命令发布第一任务功能块;选中第二任务功能块,对第二任务功能块进行配置;通过配置命令使第二任务功能块开始运行;选中第三任务功能块;第三任务功能块订阅第一、第二输出信息,以及第一、第二输出触发条件变量作为自身的输入信息和输入触发条件变量;本发明的技术方案克服现有技术中对工业控制板进行程序重构时,不能满足多种功能需求、不能在设备正常运行的情况下进行程序重构的问题。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种工业控制板的程序重构方法。
背景技术
嵌入式微处理器配合与功能需求相关的外设资源如UART、A/D转换、DMA、LCD等,可以制成满足工业需求的工业控制板,工业控制板在工业控制领域发挥重大作用,例如在智能控制领域中的软件设计中扮演重要角色。
与大型的机械设备不同,绝大多数工业控制板往往并不带有上位机或者其他能够进行更新程序配置的软件或设备,这使其要么是作为某一部分的专用设备,要么是在使用时需要重新编写程序。当一个工业控制板做为专用设备时,它所搭载的嵌入式微处理器的全部资源往往并不能被充分利用,并且当再添加功能时,旧的工业板就不能再继续使用了,这样就造成了资源的浪费;绝大多数使用人员无法对工业控制板程序进行编写的,这方面的工作一般是由工业控制板的生产厂家来重新设计编写,而且编程的过程也较为费时。显然,对于程序编写来说,现如今几乎所有的工业控制板都没有做到简单配置和简单操作。
针对编程问题,比如STM32推出的STM32CubeMX,它可以通过选择配置来生成一些外设的驱动程序,如串口初始化等。这在一定程度上减少了编程的工作量,但同样的,他也不能让不懂编程的人来使用,而且也是需要重新下载程序才能够实现程序的更新,而不能在程序还在正常运行时就完成对内部程序功能逻辑的重构。
因此,现需要一种能够适应多种工业环境、满足多种功能需求、能够在设备正常运行的情况下进行工业控制板程序重构的方法。
发明内容
本发明的主要目的在于提供一种工业控制板的程序重构方法,以解决现有技术中对工业控制板进行程序重构时,不能满足多种功能需求、不能在设备正常运行的情况下进行程序重构的问题。
为实现上述目的,本发明提供了一种工业控制板的程序重构方法,采用三个任务功能块,任务功能块为封装程序,具体包括如下步骤:
S1,第一任务功能块通过自身任务获取数据和第一触发条件变量,选中第一任务功能块,并利用任务功能块配置命令对第一任务功能块进行配置。
S2,通过配置命令发布第一任务功能块,使第一任务功能块开始运行。
S3,选中第二任务功能块,并利用任务功能块配置命令对第二任务功能块进行配置。
S4,在步骤S3的基础上通过任务功能块配置命令使第二任务功能块订阅第一任务功能块的第一输出信息和第一任务功能块的第一输出触发条件变量,作为第二任务功能块的输入信息和输入触发条件变量。
S5,在步骤S4配置完成的第二任务功能块的基础上通过配置命令使第二任务功能块开始运行。
S6,选中第三任务功能块,并利用任务功能块配置命令对第三任务功能块进行配置。
S7,在步骤S6的基础上通过任务功能块配置命令使第三任务功能块订阅第一任务功能块和第二任务功能块分别对应的第一、第二输出信息,以及第一任务功能块和第二任务功能块分别对应的第一、第二输出触发条件变量。
S8,将步骤S7已经配置完成的第三任务功能块通过任务功能块配置命令进行发布。
进一步地,步骤S1具体包括如下步骤:
S1.1,第一任务功能块通过自身任务获取数据和第一触发条件变量,利用任务功能块配置命令对第一任务功能块进行初始化,并设置第一任务功能块的第一输出信息。
S1.2,通过任务功能块配置命令将第一输出信息进行发布,也就是将第一任务功能块的第一输出信息储存到公共的系统内存中;在第一输出信息发布的同时,与第一输出信息对应的输出第一输出触发条件变量也要对应发布。
进一步地,步骤S3具体包括如下步骤:
S3.1,利用任务功能块配置命令对第二任务功能块进行初始化,并设置第二任务功能块的第二输出信息。
S3.2,通过任务功能块配置命令将第二输出信息进行发布,也就是将第二任务功能块的第二输出信息储存到公共的系统内存中;在第二输出信息发布的同时,与第二输出信息对应的输出第二触发条件变量也要对应发布。
进一步地,步骤S6具体包括如下步骤:
S6.1,利用任务功能块配置命令对第三任务功能块进行初始化,并设置第三任务功能块的第三输出信息。
S6.2,通过任务功能块配置命令将第三输出信息进行发布,也就是将第三任务功能块的第三输出信息储存到公共的系统内存中;在第三输出信息发布的同时,与第三输出信息对应的输出第三触发条件变量也要对应发布。
本发明具有如下有益效果:
(1)本发明通过任务功能块方法封装程序,通过任务配置指令完成任务功能块配置,能够让使用人员按照任务配置指令轻松完成工业控制板的程序代码重构,进而方便工业控制的使用,大大降低工业控制板的配置难度,显著地降低了工业控制板在编程上所需要的时间成本。
(2)本发明所提供的技术方案将嵌入式微处理器的可用性充分发掘,使设计的工业控制板能够既能够在某工作部分做到专用,又能适应不同的工作环境,在不同的工作环境下都完成所需要完成的任务。
(3)本发明将程序封装为任务功能块,很好的实现了编程的模块化,增强了程序的可复用性和可移植性,使程序便于维护和升级。
(4)本发明在简单的任务功能块的基础上增加了触发条件变量,使得任务功能块之间的联系更具逻辑性,大大降低了在程序配置时由于配置不当和逻辑配置不当而造成错误的可能性。
(5)本发明所提供的技术方案能够在工业控制板正常工作时就进行指令配置,进而在其正常工作时完成对程序的重构而不影响正常工业生产活动,提高工业设备效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本发明的一种工业控制板的程序重构方法的流程图。
图2示出了本发明中的添加触发条件变量的任务功能块结构示意图。
图3示出了利用本发明提供的方法,采用五个任务功能块进行工业控制板的程序重构的流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示的一种工业控制板的程序重构方法,采用三个任务功能块(任务功能块的个数可以按照实际要求创建,因此任务功能块可以有一个或多个),任务功能块为封装程序,具体包括如下步骤:
S1,第一任务功能块通过自身任务获取数据和第一触发条件变量,选中第一任务功能块,并利用任务功能块配置命令对第一任务功能块进行配置;第一任务功能块是通过任务自身获取数据,如第一任务功能块中运行ADC数据采集功能,因此第一任务功能块无需订阅其他任务功能块的输出作为自己的输入,其触发条件变量也将在数据采集完成时发生变化从而更新其输出信息。
S2,通过配置命令发布第一任务功能块,使第一任务功能块开始运行。
S3,选中第二任务功能块,并利用任务功能块配置命令对第二任务功能块进行配置。
S4,在步骤S3的基础上通过任务功能块配置命令使第二任务功能块订阅第一任务功能块的第一输出信息和第一任务功能块的第一输出触发条件变量,作为第二任务功能块的输入信息和输入触发条件变量。
S5,在步骤S4配置完成的第二任务功能块的基础上通过配置命令使第二任务功能块开始运行。
S6,选中第三任务功能块,并利用任务功能块配置命令对第三任务功能块进行配置。
S7,在步骤S6的基础上通过任务功能块配置命令使第三任务功能块订阅第一任务功能块和第二任务功能块分别对应的第一、第二输出信息,以及第一任务功能块和第二任务功能块分别对应的第一、第二输出触发条件变量。
S8,将步骤S7已经配置完成的第三任务功能块通过任务功能块配置命令进行发布。
具体地,步骤S1具体包括如下步骤:
S1.1,第一任务功能块通过自身任务获取数据和第一触发条件变量,利用任务功能块配置命令对第一任务功能块进行初始化,并设置第一任务功能块的第一输出信息。
S1.2,通过任务功能块配置命令将第一输出信息进行发布,也就是将第一任务功能块的第一输出信息储存到公共的系统内存中;在第一输出信息发布的同时,与第一输出信息对应的输出第一输出触发条件变量也要对应发布。
具体地,步骤S3具体包括如下步骤:
S3.1,利用任务功能块配置命令对第二任务功能块进行初始化,并设置第二任务功能块的第二输出信息。
S3.2,通过任务功能块配置命令将第二输出信息进行发布,也就是将第二任务功能块的第二输出信息储存到公共的系统内存中;在第二输出信息发布的同时,与第二输出信息对应的输出第二触发条件变量也要对应发布。
具体地,步骤S6具体包括如下步骤:
S6.1,利用任务功能块配置命令对第三任务功能块进行初始化,并设置第三任务功能块的第三输出信息。
S6.2,通过任务功能块配置命令将第三输出信息进行发布,也就是将第三任务功能块的第三输出信息储存到公共的系统内存中;在第三输出信息发布的同时,与第三输出信息对应的输出第三触发条件变量也要对应发布。
具体地,实时多任务系统中,程序的运行是由一个个的任务来实现的,任务与任务之间可以通过相关的操作来实现任务与任务之间的数据的交换。每个任务中也可以调用定义好的全局变量来供计算处理使用。这里任务功能块所做的工作就是将实时多任务系统中的任务以及任务涉及到的相关参数进行封装,封装后任务和与任务相关的参数都作为任务功能块的成员变量存在于程序中,即任务功能块的成员变量包括任务、任务相关的输入输出信息、和输入输出信息相关联的触发条件变量,因此,任务功能块是在程序中针对任务而编写好的。
具体地,选中任务功能块的目的是为了对任务功能块进行配置,选中任务功能块的目的是明确当前要配置哪个任务功能块,任务功能块在选中时不会影响任务功能块的正常运行,因此在配置任务功能块时原本的程序逻辑也可以正常运行。
具体地,任务功能块配置命令:任务功能块配置命令是在程序内部编写好的配置任务功能块相关内容的配置命令,配置语句的定义即配置语句的功能实现需要在程序编写时定义好。任务功能块配置命令是提供给使用者配置任务的相关参数和总程序执行的逻辑顺序的,它同样作为成员变量存储在任务功能块中,任务功能块配置命令与任务功能块中可配置的成员变量一一对应。
任务功能块配置命令对任务功能块的配置是运行在一个单独的任务功能块中的,这里称为任务配置任务功能块。他的作用就是根据配置命令对选中的任务功能块进行配置,而配置的本质就是对任务功能块内部成员变量的重新赋值,根据赋值类型的不同,其内部所做的处理也不同,比如赋值的类型有字符型常量(TCP+MODEL=CLIENT 这里的CLIENT就是字符型常量)、整型常量(TCP+LOCAL_PORT=5000 这里的5000应是整型常量)和变量(其他功能块的输出信息),而配置命令的接收都是通过字符型常量来接收的,其内部定义一个任务功能块类型的变量,在使用配置命令配置时需要先选中要配置的任务功能块,这时任务配置任务功能块内部定义的任务功能块类型的变量就指向要配置的任务功能块,然后再通过已经编写好的任务配置命令配置该任务功能块即可。因此配置命令的编写需要结合的任务功能块的实际情况,如在一个TCP任务功能块中存在与TCP通信配置相关的成员变量有:TCP模式(服务器/客户端)、TCP本地IP地址、子网掩码、网关、本地端口号、远端IP、远端端口号、TCP任务功能块的输出信息、TCP任务功能块的输出触发条件变量。那么任务功能块配置命令的编写就需要将他们全部包含,这样在使用时就可以通过任务功能块配置命令的设置而完成对任务功能块成员变量的操作,最终实现程序的重构。
具体地,输出信息是任务功能块的成员变量之一,实时多任务系统中任务的输出数据或执行过程中某一阶段的输出数据。在任务功能块将任务封装的时候,额外添加了任务的输出数据这一成员变量的定义,并且由于它需要发布以供其他任务订阅,因此在任务功能块内它往往都是作为全局变量去定义的,在任务内它可以是一个局部变量的表现形式,只需要使任务中的局部变量传参给任务功能块定义的全局变量就可以了。任务功能块中,输出信息这一类成员变量的实际使用数量取决于任务配置命令对任务的设置,但是其最大数量是确定的,如某一任务最多有三个输出数据,那么输出信息在任务功能块中的成员数量就应当为三个,但是可以通过添加判断条件来设置是否使用任务功能块配置命令来激活对应的任务功能块的输出成员变量。
具体地输入信息是任务功能块的成员变量之一,它的数据来源是其他任务功能块的输出信息,当其他某任务功能块订阅另一任务功能块的输出信息时,对应的输入信息就赋值为这个输出信息的值。由于任务运行过程中对输入信息的需求是固定的,因此输入信息的数量在任务功能块中是固定的,当然具体数量应该结合任务功能块中任务的实际输入需求来决定。
具体地,在实时多任务系统中的一般任务运行状态下,对于某个任务,其输入数据无论是否改变,这个任务都会做周期的运行。在这种情况下,当输入数据未发生改变但任务二次运行时,不仅当前任务功能块的输出会发生错误,而且订阅其输出的下一个任务功能块的运行也会发生错误。因此,简单的将任务封装为任务功能块并调用是无法完成系统任务合理运行的。为保证各任务功能块之间信息传递的条理性和逻辑性,对一些需要防止重复运行的任务功能块引入了额外的触发条件变量和触发条件变量与输入、输出数据之间的关联关系(对不需要防止重复运行的任务功能块则可以不添加触发条件变量)。这里触发条件就是取值为0或1的没有持续时间的即时信号。
具体地,如图2所示,在任务功能块已经存在的输入数据date1和输出数据date2的基础上增加了输入触发条件变量Condition_IN和他与输入数据date1的关系,同时也增加了输出触发条件变量Condition_OUT和他与输出数据OUT的关系。
当输入触发条件未发生时,任务功能块就处于挂起态,这时输入数据不会更新(程序上表现为任务功能块的输入信息不进行重新赋值),输出数据也不会更新(程序上表现为任务功能块的输出信息不进行重新赋值),输出触发条件变量也不会置1,即任务功能块内部程序不运行。相反的,当输入触发条件发生时,输入数据进行重新采集并更新(程序上表现为任务功能块的输入信息重新赋值),任务功能块进入触发态,当执行完成任务功能块内部的程序后,对输出数据和输出触发条件变量进行更新(程序上表现为任务功能块的输出信息重新赋值)。任务功能块的数据输入以及触发条件变量的输入、输出接口的数量和他们之间的关系并不是确定的不变的,他们是可以通过提供的配置命令来进行修改和配置的。但每个功能块的数据输出数量(最大输出数量)应该是确定不变的,因为一个任务功能块的任务功能是有限的,对不同的输入数据可能输出不同的值,但是不会增多输出格式,但其数据输出的数量可以是提前设置好的多个数据输出。
上述中的挂起态:实时多任务系统中存在一种任务挂起机制,当任务挂起时,任务处于挂起态,在此状态下的任务不会运行,只有当任务由挂起态恢复后任务才能重新正常运行。
实施例二
一种工业控制板的程序重构方法中,使用具体的任务配置命令对一个任务功能块配置的过程,具体包括如下步骤:
1、选中传输控制协议TCP任务功能块。命令为:TFB+CHOSE=TCP。
TFB(Task Function Block)是任务功能块选中的关键字,TFB+CHOSE在配置命令中的作用就是选中要配置的任务功能块。其具体实现内容就是将任务配置任务功能块中定义的任务功能块类型的变量指向目标任务功能块。
2、对TCP任务功能块进行初始化,具体为:
TCP+MODEL=CLIENT;
TCP+LOCAL_IP=192.168.0.10;
TCP+SUBNET=255.255.255.0;
TCP+GATEWAY=192.168.0.1;
TCP+LOCAL_PORT=5000;
TCP+REMOTE_IP=192.168.0.11;
TCP+REMOTE_PORT=2000。
配置命令“TCP+MODEL=CLIENT”作用为选定TCP模式为客户端模式。TCP+MODEL是任务功能块中已经写好的任务配置命令,其指向任务功能块中的MODEL成员变量,这里通过任务配置命令会将MODEL的值设置为CLIENT。
配置命令“TCP+LOCAL_IP=192.168.0.10”,作用为将本地网口的IP地址设置为192.168.0.10。TCP+LOCAL_IP是任务功能块中已经写好的配置命令,其指向任务功能块中的LOCAL_IP成员变量,这里通过任务配置命令会将LOCAL_IP的值设置为192.168.0.10,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
配置命令“TCP+SUBNET=255.255.255.0”,作用为将本地网口的子网掩码设置为255.255.255.0。TCP+SUBNET是任务功能块中已经写好的配置命令,其指向任务功能块中的SUBNET成员变量,这里通过任务配置命令会将SUBNET的值设置为255.255.255.0,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
配置命令“TCP+GATEWAY=192.168.0.1”,作用为将本地网口的网关设置为192.168.0.1。
TCP+GATEWAY是任务功能块中已经写好的配置命令,其指向任务功能块中的GATEWAY成员变量,这里通过任务配置命令会将GATEWAY的值设置为192.168.0.1,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
配置命令“TCP+LOCAL_PORT=5000”,作用为将本地网口的端口设置为5000。TCP+LOCAL_PORT是任务功能块中已经写好的配置命令,其指向任务功能块中的LOCAL_PORT成员变量,这里通过任务配置命令会将LOCAL_PORT的值设置为5000,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
配置命令“TCP+REMOTE_IP=192.168.0.11”,作用为设置要连接的远端服务器的IP地址为192.168.0.11。TCP+REMOTE_IP是任务功能块中已经写好的配置命令,其指向任务功能块中的REMOTE_IP成员变量,这里通过任务配置命令会将REMOTE_IP的值设置为192.168.0.11,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
配置命令“TCP+REMOTE_PORT=2000”,作用为设置要连接的远端服务器的端口为2000。TCP+REMOTE_PORT是任务功能块中已经写好的配置命令,其指向任务功能块中的REMOTE_PORT成员变量,这里通过任务配置命令会将REMOTE_PORT的值设置为2000,但由于需要的变量应该是整数型的所以这里需要将接收到的字符型的配置命令进行转换。
3、将TCP任务功能块的输出信息进行发布。
TCP+OUT=TCP_buff;
TCP+RELEASE=TCP_buff:TCP_OUT;
TCP+OUT_COND=TCP_flag;
TCP+RELEASE_COND=TCP_flag:T_COND_OUT。
配置命令“TCP+OUT=TCP_buff”,设置TCP任务功能块的输出为TCP_buff,这里的TCP_buff为任务功能块内部变量,是在编写任务功能块时就已经设置好的。
配置命令“TCP+RELEASE=TCP_buff:TCP_OUT”,将设置的输出TCP_buff进行发布,并将输出的发布名称设置为TCP_OUT。
配置命令“TCP+OUT=TCP_flag”,设置TCP任务功能块的输出触发条件变量为TCP_flag,这里的TCP_flag为任务功能块内部变量,是在编写任务功能块时就已经设置好的。
配置命令“TCP+RELEASE= TCP_flag:T_COND_OUT”,将设置的输出TCP_flag进行发布,并将输出的发布名称设置为T_COND_OUT。
4、任务控制块输入的订阅,配置命令为:
TCP+SUBSCRIBE=NULL;
TCP+SUBSCRIBE_COND=NULL。
配置命令“TCP+SUBSCRIBE=NULL”,其中TCP+SUBSCRIBE的作用是设置订阅输入,而后面的NULL则表示空,即整条配置命令的作用是设置TCP任务功能块的输入为空,即不订阅任何信息作为输入。
配置命令“TCP+SUBSCRIBE_COND=NULL”,其中TCP+SUBSCRIBE_COND的作用是设置订阅输入触发条件变量,而后面的NULL则表示空,即整条配置命令的作用是设置TCP任务功能块的触发条件变量输入为空,即不订阅任何触发变量作为TCP的触发输入。
5、配置完成后就可以设置任务功能块开始运行,配置命令为“TFB+START”,其作用为运行之前选择的任务功能块,并将之前的选中解除。
实施例三
如图3所示,一种工业控制板的程序重构方法,采用五个任务功能块,包括:TCP任务功能块、数据转换任务功能块、数据存储/查询任务功能块、串口输入任务功能块和串口输出任务功能块,其完成的主要功能是TCP功能块接收服务器端发送过来的Json数据,经过处理后以MODBUS格式存储相关数据,然后通过串口查询后再由串口输出。
上述五个任务功能块,将其输出信息进行发布。其中,数据转换任务功能块订阅TCP任务功能块的输出并配置其触发条件,数据存储任务功能块订阅数据转换任务功能块和串口输入任务功能块的输出并配置触发条件。
TCP任务功能块是通过TCP通信接收Json格式的数据,然后将收到的Json数据作为输出传输给数据转换任务功能块。当接收到新数据时触发条件变量T_COND_IN置1,任务功能块进入触发态,更新数据输入TCP_IN。执行完成接收任务后,将输出触发条件变量T_COND_OUT置1,并更新发布输出数据TCP_OUT。
数据转换任务功能块是算法任务功能块,他对TCP任务功能块的输出信息进行订阅,即数据转换任务功能块接收从TCP任务功能块传输过来的Json数据,然后通过算法将Json数据提取转换为MODBUS格式数据。当TCP任务功能块执行完成时,数据转换任务功能块的输入触发条件变量C_COND_IN置1,进入触发态,更新数据输入CONVERT_IN为TCP任务功能块新的输出。内部程序运行完成后,数据转换任务功能块将输出触发条件变量C_COND_OUT置1,更新发布输出数据CONVERT_OUT。
数据存储/查询任务功能块是算法任务功能块,具有两组输入和输出,数据存储/查询任务功能块对数据转换任务功能块和串口输入任务功能块的输出信息进行订阅。不同的输入数据和输入触发条件变量使数据存储/查询任务功能块有不同的输出。当数据转换任务功能块的输出触发条件变量置1时,数据存储/查询任务功能块的输入触发条件变量S_COND_IN1置1,进入触发态,更新数据输入S_IN1,此时执行数据存储/查询任务功能块的存储功能,接收数据转换任务功能块传输过来的MODBUS格式数据,进行处理后得到输出S_OUT1并进行存储。数据存储/查询任务功能块执行存储功能的过程中,不会再接收查询功能的触发;同样的数据存储/查询任务功能块执行查询功能的过程中,不会再接收存储功能的触发。
当串口输入任务功能块的输出触发条件变量置1时,数据存储/查询任务功能块的输入触发条件变量S_COND_IN2置1,进入触发态,更新数据输入S_IN2,此时执行数据存储/查询任务功能块的查询功能,接收串口输入任务功能块传输过来的查询命令,并根据查询命令执行查询功能,最终将输出触发条件变量S_COND_OUT2置1,将输出结果S_OUT2进行发布。
串口输入任务功能块比较特殊,在实际串口配置中串口输入是由串口接收中断进行触发,因此对串口输入任务功能块就不再设置相关的触发条件。当串口接收中断发生后,串口输入任务功能块完成对串口数据的接收,然后将输出触发条件变量UI_COND_OUT置1,将接收到的完整的串口输入数据作为输出UARTIn_OUT进行输出发布。
串口输出任务功能块的作用是将输入的数据,经过底层配置后通过串口进行输出打印。当数据存储/查询任务功能块的输出触发条件变量S_COND_OUT2置1时,串口输入任务功能块的输入触发条件变量UO_COND_IN置1,任务功能块进入触发态,更新数据输入UO_IN,然后经过任务功能块内部程序执行后将输出触发条件变量UO_COND_OUT置1,将输出数据UARTOut_OUT进行更新发布。
在实际使用时只需要将底层程序已经配置好的五种功能块通过配置命令进行参数初始化配置和数据订阅关系配置即可。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (4)
1.一种工业控制板的程序重构方法,其特征在于,采用三个任务功能块,所述任务功能块为封装程序,具体包括如下步骤:
S1,第一任务功能块通过自身任务获取数据和第一触发条件变量,选中第一任务功能块,并利用任务功能块配置命令对第一任务功能块进行配置;
S2,通过配置命令发布第一任务功能块,使第一任务功能块开始运行;
S3,选中第二任务功能块,并利用任务功能块配置命令对第二任务功能块进行配置;
S4,在步骤S3的基础上通过任务功能块配置命令使第二任务功能块订阅第一任务功能块的第一输出信息和第一任务功能块的第一输出触发条件变量,作为第二任务功能块的输入信息和输入触发条件变量;
S5,在步骤S4配置完成的第二任务功能块的基础上通过配置命令使第二任务功能块开始运行;
S6,选中第三任务功能块,并利用任务功能块配置命令对第三任务功能块进行配置;
S7,在步骤S6的基础上通过任务功能块配置命令使第三任务功能块订阅第一任务功能块和第二任务功能块分别发布的第一、第二输出信息,以及分别和第一、第二输出信息对应的第一、第二输出触发条件变量作为自身的输入信息和输入触发条件变量;
S8,将步骤S7已经配置完成的第三任务功能块通过任务功能块配置命令进行发布。
2.根据权利要求1所述的一种工业控制板的程序重构方法,其特征在于,步骤S1,具体包括如下步骤:
S1.1,第一任务功能块通过自身任务获取数据和第一触发条件变量,利用任务功能块配置命令对第一任务功能块进行初始化,并设置第一任务功能块的第一输出信息;
S1.2,通过任务功能块配置命令将第一输出信息进行发布,也就是将第一任务功能块的第一输出信息储存到公共的系统内存中;在第一输出信息发布的同时,与第一输出信息对应的第一输出触发条件变量也要对应发布。
3.根据权利要求1所述的一种工业控制板的程序重构方法,其特征在于,步骤S3,具体包括如下步骤:
S3.1,利用任务功能块配置命令对第二任务功能块进行初始化,并设置第二任务功能块的第二输出信息;
S3.2,通过任务功能块配置命令将第二输出信息进行发布,也就是将第二任务功能块的第二输出信息储存到公共的系统内存中;在第二输出信息发布的同时,与第二输出信息对应的第二输出触发条件变量也要对应发布。
4.根据权利要求1所述的一种工业控制板的程序重构方法,其特征在于,步骤S6,具体包括如下步骤:
S6.1,利用任务功能块配置命令对第三任务功能块进行初始化,并设置第三任务功能块的第三输出信息;
S6.2,通过任务功能块配置命令将第三输出信息进行发布,也就是将第三任务功能块的第三输出信息储存到公共的系统内存中;在第三输出信息发布的同时,与第三输出信息对应的第三输出触发条件变量也要对应发布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695637.2A CN117389615B (zh) | 2023-12-12 | 2023-12-12 | 一种工业控制板的程序重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695637.2A CN117389615B (zh) | 2023-12-12 | 2023-12-12 | 一种工业控制板的程序重构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117389615A CN117389615A (zh) | 2024-01-12 |
CN117389615B true CN117389615B (zh) | 2024-03-01 |
Family
ID=89441400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311695637.2A Active CN117389615B (zh) | 2023-12-12 | 2023-12-12 | 一种工业控制板的程序重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389615B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008101912A1 (de) * | 2007-02-19 | 2008-08-28 | Schneider Electric Automation Gmbh | Verfahren zum aufrufen eines automatisierungsprogramms in einem automatisierungsgerät sowie automatisierungsgerät |
CN109213105A (zh) * | 2018-10-22 | 2019-01-15 | 暨南大学 | 一种可重构装置、实现可重构的方法及分布式控制系统 |
CN109445837A (zh) * | 2018-09-03 | 2019-03-08 | 中国平安人寿保险股份有限公司 | 一种应用程序的发布方法及设备 |
CN112052036A (zh) * | 2020-09-07 | 2020-12-08 | 网易(杭州)网络有限公司 | 应用程序管理方法、装置、存储介质及计算机设备 |
CN112738224A (zh) * | 2020-12-29 | 2021-04-30 | 浙江中控技术股份有限公司 | 一种支持触发式通信的数据处理系统和方法 |
CN112783903A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 生成更新日志的方法和装置 |
CN114281563A (zh) * | 2021-09-23 | 2022-04-05 | 通号城市轨道交通技术有限公司 | 应用程序重构方法及装置 |
CN115470012A (zh) * | 2021-06-11 | 2022-12-13 | Nxt控制有限责任公司 | 创建工业应用程序的事件驱动执行模型的运行时环境和方法 |
CN115705212A (zh) * | 2021-08-06 | 2023-02-17 | 腾讯科技(深圳)有限公司 | 系统平台中的数据响应方法、装置及电子设备 |
CN116263670A (zh) * | 2023-02-15 | 2023-06-16 | 广东工业大学 | 一种传感器组件服务化封装方法以及传感器 |
CN116560645A (zh) * | 2023-05-10 | 2023-08-08 | 重庆长安汽车股份有限公司 | 自适应汽车开放系统架构适配复杂应用软件的方法及装置 |
-
2023
- 2023-12-12 CN CN202311695637.2A patent/CN117389615B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008101912A1 (de) * | 2007-02-19 | 2008-08-28 | Schneider Electric Automation Gmbh | Verfahren zum aufrufen eines automatisierungsprogramms in einem automatisierungsgerät sowie automatisierungsgerät |
CN109445837A (zh) * | 2018-09-03 | 2019-03-08 | 中国平安人寿保险股份有限公司 | 一种应用程序的发布方法及设备 |
CN109213105A (zh) * | 2018-10-22 | 2019-01-15 | 暨南大学 | 一种可重构装置、实现可重构的方法及分布式控制系统 |
CN112783903A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 生成更新日志的方法和装置 |
CN112052036A (zh) * | 2020-09-07 | 2020-12-08 | 网易(杭州)网络有限公司 | 应用程序管理方法、装置、存储介质及计算机设备 |
CN112738224A (zh) * | 2020-12-29 | 2021-04-30 | 浙江中控技术股份有限公司 | 一种支持触发式通信的数据处理系统和方法 |
CN115470012A (zh) * | 2021-06-11 | 2022-12-13 | Nxt控制有限责任公司 | 创建工业应用程序的事件驱动执行模型的运行时环境和方法 |
CN115705212A (zh) * | 2021-08-06 | 2023-02-17 | 腾讯科技(深圳)有限公司 | 系统平台中的数据响应方法、装置及电子设备 |
CN114281563A (zh) * | 2021-09-23 | 2022-04-05 | 通号城市轨道交通技术有限公司 | 应用程序重构方法及装置 |
CN116263670A (zh) * | 2023-02-15 | 2023-06-16 | 广东工业大学 | 一种传感器组件服务化封装方法以及传感器 |
CN116560645A (zh) * | 2023-05-10 | 2023-08-08 | 重庆长安汽车股份有限公司 | 自适应汽车开放系统架构适配复杂应用软件的方法及装置 |
Non-Patent Citations (3)
Title |
---|
Encapsulating concurrency with Early-Reply;Scott M. Pike;Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications;20021130;全文 * |
EPA组态软件控制链路组态模块的设计与实现;戴琼瑶;;工业控制计算机;20080125(01);全文 * |
面向对象的可编程逻辑控制器程序设计方法;苏红梅;;云南农业大学学报;20070228(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117389615A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6971004B1 (en) | System and method of dynamically reconfiguring a programmable integrated circuit | |
US7117049B2 (en) | Industrial controller based on distributable technology objects | |
CN107357567B (zh) | 一种可视化脚本编辑器的设计系统和方法 | |
CN100514234C (zh) | 基于pc机的开放式数控系统 | |
EP0209527B1 (en) | Method of communications between register-modelled radio devices | |
CN102880462A (zh) | 基于图模一体化生成组态监控对象的方法及装置 | |
CN109983411B (zh) | 程序模块的流程控制 | |
CN109542450B (zh) | 智能变电站过程层智能组件实现方法及装置 | |
CN114237676B (zh) | 一种fpga逻辑更新方法、装置、设备及可读存储介质 | |
CN104698950A (zh) | 一种外围设备控制方法、微控制器、上位机及系统 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
US6272388B1 (en) | Program structure and method for industrial control | |
CN117389615B (zh) | 一种工业控制板的程序重构方法 | |
CN111061743A (zh) | 数据加工方法、装置和电子设备 | |
CN106814696B (zh) | 一种数控系统人机界面二次开发平台系统及其实现方法 | |
CN103309658A (zh) | 基于Agent的动态演化系统及方法 | |
CN100370381C (zh) | 一种可重配置的开放式结构计算机数控系统 | |
JP2004280299A (ja) | コントローラ、開発装置及びシステム | |
CN110213377B (zh) | 在线生成webpack配置的方法 | |
CN111970264A (zh) | 一种spi使用协议栈 | |
WO2001084306A1 (en) | A method for converting information related to the hardware/software configuration of a distributed control system | |
Kastner et al. | An open approach to eib/knx software development | |
CN108459552B (zh) | 一种智能化面向对象的可编程的自动化控制方法 | |
Nketsa et al. | A Petri net based single chip programmable controller for distributed local controls | |
CN117093331B (zh) | 支持虚拟1394b通信总线仿真与集成方法及系统 |
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 |