掌桥专利:专业的专利平台
掌桥专利
首页

一种控制系统及控制方法

文献发布时间:2024-04-18 19:58:30


一种控制系统及控制方法

技术领域

本发明涉及工业控制技术领域,尤其涉及一种控制系统及控制方法。

背景技术

根据现有的技术,一个控制系统通常会包含一个或多个调度器,该调度器提供控制算法调度、数据传输更新、状态判断检测等功能。这种设计常见于DCS、PLC、APC、批次控制软件、过程控制软件以及间歇控制软件。在实际开发、应用过程中,会遇到以下问题:

1.调度器通常是基于有限状态机设计的,在ISA 88、ISA 106等标准下,调度器包含约10种命令、20种状态。调度器应当在调度中判断所有转换条件、尝试执行所有状态的控制程序与控制算法。但是,对于大多数控制程序和控制算法,都只在极少数的状态下需要执行。因此,调度器会产生性能浪费以及增加开发人员工作量与难度。

2.调度器会快速产生大量控制程序与控制算法的状态变迁。一方面,在有严格审计要求的场景,如医药等,需要记录这些状态变迁,会导致数据库状态下降,如果在调度周期内专门分时间片进行数据库批量写入,则有可能导致调度器卡顿;另一方面,如果需要实现能够处理冗余的调度器或分布式调度器,则需要处理大量状态同步事件,增加系统性能要求,增加开发与维护难度。

3.调度器在软件层往往通过直接链接、动态库、线程间通讯、进程间通讯等方式调用控制模块。这会导致调度器与控制模块之间产生强依赖,从而导致在线更新控制模块非常困难。

因此,目前亟需一种无调度器的控制系统及控制方法。

发明内容

(一)要解决的技术问题

鉴于现有技术的上述缺点、不足,本发明提供一种控制系统及控制方法,其解决了传统控制系统中调度器会产生性能浪费、系统性能能要求高、稳定性低和在线更新控制模块困难的技术问题。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

第一方面,本发明实施例提供一种控制系统。

本发明实施例提出的一种控制系统,用于工业生产自动控制,包括数据层、算法层、应用层和展示层;

展示层,用于在接收到用户身份信息和用户编辑的图形化组态信息后,将所述用户身份信息和所述图形化组态信息传输至应用层;

所述图形化组态信息包括工业生产材料的参数信息、生产过程的参数信息以及生产设备的位号信息;

应用层,用于根据所述用户身份信息,对用户的权限进行鉴定,若鉴定结果为真,则将所述图形化组态信息发送至算法层;

算法层,用于针对所述图形化组态信息,进行检查和编译,得到相应的控制程序;

数据层,用于根据所述控制程序,创建对应的参数数据和任务数据链;

算法层,还用于根据所述参数数据和任务数据链,创建所述任务数据链的所有任务并触发相应的生产设备进行执行。

可选地,所述数据层还包括:

信息存储模块,用于存储控制程序ID、控制程序头类型、控制程序结构树、控制程序头运行期信息、控制程序类型、控制程序配置、控制程序入口、控制程序变量名称、控制程序运行状态、控制模块名称、控制程序中的元素ID、控制程序中的前序元素ID、控制程序中的后序元素ID和选择判断条件、生产设备的参数信息、人工处理的状态和结果信息;

其中,控制程序变量包括操作时间变量信息和物料消耗变量信息;

变量存储模块,用于存储控制系统启动时间、控制系统异常信息和控制程序的变量;

其中,控制程序变量包括内置变量和用户自定义变量;

内置变量包括控制程序运行时间、控制程序运行状态等;

用户自定义变量由用户创建,包括物料消耗量、设备运行时间、逻辑循环次数、中间变量等。

可选地,所述任务数据链包括多个任务数据,每一任务数据都有所属的指针信息,相邻任务数据之间基于指针信息依次排列。

可选地,所述算法层包括:

控制模块,用于根据所述参数数据和所述任务数据链的指针信息,创建并触发相应的生产设备执行所述任务数据链的第一任务,执行完成第一任务后,根据所述参数数据和所述任务数据链的指针信息,创建并触发相应的生产设备执行第二任务,直到所述任务数据链中的任务全部被执行完成;以及,在任务全部被执行完成之后,读取并记录数据层中的所有参数数据;

运行模块,用于在控制模块发生崩溃或死锁时,根据控制模块的运行状态判断控制模块发生的异常情况。

可选地,所述应用层包括:

网关模块,用于判断用户权限;

权限模块,用于管理用户权限;

封装模块,用于对数据层、算法层的数据进行封装,为展示层提供接口;

业务模块,用于检查编译控制程序、监控系统异常、管理控制程序和读取控制程序历史情况。

可选地,所述展示层包括:

信息接收模块,用于接受用户编辑的图形化组态信息,并将所述图形化组态信息传输至应用层;

信息接收模块是客户端、浏览器端或移动端;

信息展示模块,用于展示控制程序运行期间的进展情况;

信息确认模块,用于接受用户对需要人工确认事件的确认信息。

第二方面,本发明实施例提供一种控制方法。

本发明实施例提出的一种控制方法,所述控制方法基于上述第一方面任一所述的一种控制系统实现,所述控制方法包括:

S1、展示层在接收到用户身份信息和用户编辑的图形化组态信息后,将所述用户身份信息和所述图形化组态信息传输至应用层;

所述图形化组态信息包括工业生产材料的参数信息、生产过程的参数信息以及生产设备的位号信息;

S2、应用层根据所述用户身份信息,对用户的权限进行鉴定,若鉴定结果为真,则将所述图形化组态信息发送至算法层;

S3、算法层针对所述图形化组态信息,进行检查和编译,得到相应的控制程序;

S4、数据层根据所述控制程序,创建对应的参数数据和任务数据链;

S5、算法层根据所述参数数据和任务数据链,创建所述任务数据链的所有任务并触发相应的生产设备进行执行。

可选地,所述控制方法还包括:

在控制程序执行中,控制系统根据控制程序执行状态生成一个或多个控制命令;

所述控制命令包括开始、停止、暂停、恢复和挂起;

所述生成控制命令是通过将程序信息单元中的控制程序运行状态进行更改实现的。

可选地,所述控制方法还包括:

在控制程序运行的过程中,接收用户在控制程序元素上添加的控制标记的信息,所述控制标记包括:跳过标记、跳步标记与暂停标记;

当控制程序运行过程中遇到跳过标记,则跳过被标记的控制程序元素,继续执行后续的控制程序元素;

当控制程序运行过程中遇到跳步标记,则根据跳步标记中的信息,直接从另一个相关控制程序元素开始执行;

当控制程序运行过程中遇到暂停标记,则不修改控制程序的控制程序运行状态且不继续执行,直到所述暂停标记被移除。

可选地,所述控制方法还包括:在接收到用户的更新请求时,进行控制模块在线更新;

所述控制模块在线更新包括:

控制模块在接收到停止信号后进行优雅停止;

优雅停止指的是在接收到停止信息时,将当前正在执行的任务执行完成以后,再进行停止;

控制模块停止后,释放当前的控制模块并重新启动新的控制模块。

(三)有益效果

本发明的一种控制系统及控制方法,由于将控制模块执行方法由传统的调用控制模块执行改变为由控制模块主动执行,实现控制模块分布式部署,相对现有技术而言,提升了系统整体性能与稳定性,部署方式更灵活,减小了网络配置难度,如防火墙,DCOM等;

由于控制模块只需要完成控制算法即可,不用处理状态变迁,因此相对于现有技术而言,在控制模块设计与开发时,可以减少开发员工作量;

由于采用了不同的控制模块与应用层搭配,因此可以实现连续控制、顺序控制、批次控制,甚至混合模式控制等多种控制方式;

由于在控制模块进行更新时采用了优雅停止的方式,因此相对现有技术而言,本发明能够实现控制模块在线更新,实现不停机、不停产更新,保证了生产工作的连续稳定性。

附图说明

图1为本发明一实施例提供的一种控制系统架构设计示意图;

图2为本发明另一实施例提供的一种控制方法流程示意图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

本发明实施例提出的一种控制系统及控制方法,将控制模块执行方法由传统的调用控制模块执行改变为由控制模块主动执行,实现了控制模块分布式部署,提升了系统整体性能与稳定性,部署方式更灵活,减小了网络配置难度,如防火墙,DCOM等。

为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

实施例一

如图1所示,本实施例提供一种控制系统,本实施例的系统可包括:数据层、算法层、应用层和展示层。

展示层,用于在接收到用户身份信息和用户编辑的图形化组态信息后,将所述用户身份信息和所述图形化组态信息传输至应用层。

所述图形化组态信息包括工业生产材料的参数信息、生产过程的参数信息以及生产设备的位号信息;

举例来讲,展示层可以是浏览器端、客户端或移动端。

应用层,用于根据所述用户身份信息,对用户的权限进行鉴定,若鉴定结果为真,则将所述图形化组态信息发送至算法层。

具体地,应用层包括:

网关模块,用于判断用户权限;

权限模块,用于管理用户权限;

封装模块,用于对数据层、算法层的数据进行封装,为展示层提供接口;

业务模块,用于检查编译控制程序、监控系统异常、管理控制程序和读取控制程序历史情况;

应用层针对业务特点,并与特定的控制程序配合,可以进行更高层级的控制与管理,比如顺序控制。

展示层为用户操作界面,用于给用户提供进行控制程序组态、控制程序运行时查看和控制程序历史追溯的操作界面。

具体地,展示层包括:

信息接收模块,用于接受用户编辑的图形化组态信息,并将所述图形化组态信息传输至应用层;

信息接收模块是客户端、浏览器端或移动端;

信息展示模块,用于展示控制程序运行期间的进展情况;

信息确认模块,用于接受用户对需要人工确认事件的确认信息;

举例来讲,在工业生产过程中,如有需要人工确认的事件,现场操作工可以在移动端接收到信息并做出确认操作。

算法层,用于针对所述图形化组态信息,进行检查和编译,得到相应的控制程序。

数据层,用于根据所述控制程序,创建对应的参数数据和任务数据链。

具体地,数据层需要支持冗余操作功能以及快速读写特性,并且对数据结构不敏感,因此数据层优先使用高性能分布式键值数据库集群,本实施例中数据层由Redis搭建。

为了能更好地理解以下数据层的相关内容,在这里对Redis中的“键”和“流”进行如下解释:

Redis中的Key和Stream是两种不同的数据结构,用于不同的用途;

Key(键):

Key是Redis中存储数据的标识符,类似于其他数据库中的表名或文件名;Key可以用来存储各种数据类型,包括字符串、列表、哈希、集合等;Key通常用于简单的数据存储和检索操作,例如存储用户的会话信息、缓存数据、计数器等;Key可以设置过期时间,以便在一定时间后自动删除。

Stream(流):

Stream是Redis 5.0版本引入的数据结构,用于处理时间序列数据;Stream可以看作是一个不断增长的日志文件,其中的每个记录都有一个唯一的ID,以及与之关联的字段和值;Stream适用于记录事件、消息、日志等有序数据,特别适用于消息队列和发布/订阅系统的实现;Stream提供了丰富的功能,包括消费者组(Consumer Groups)、阻塞读取、范围查询等,使其非常适用于处理事件驱动的应用程序。

总之,Key用于一般的键值存储需求,而Stream用于处理有序的时间序列数据,特别适用于消息传递和事件驱动的应用程序。选择哪种数据结构取决于具体需求和使用场景。

可选地,数据层详细设计如下:

1、数据库支持分布式集群,并且应当优先一致性,因为在控制系统中,准确的数据往往比可用性导致的短暂延迟更加重要;

2、数据库内使用命名空间区分不同功能的键,具体而言:(其中“<”与“>”组成占位符)

(1)“sv:info”表示Server Information,即服务器信息,值为HashMap,包括服务器全局配置、所有服务器变量名称等;

(2)“sv:var:”表示Server Variable,即服务器变量,其中“”为服务器变量名称,值类型不限制,服务器变量为全局变量,可以用来存储系统启动时间、系统异常信息等,也可以用于控制算法存储跨控制程序的变量,比如某算法执行次数计数、物料使用总量、设备运行时间等等;

(3)“proc::head”表示Procedure Header,即程序头部信息,其中“”为程序ID,值为HashMap类型,该HashMap中包括程序头类型、程序结构树(对应有嵌套程序的程序类型)、程序头运行期信息等;

(4)“proc::info”表示Procedure Information,即程序信息,其中“”为程序ID,值为HashMap,HashMap包括程序类型、程序配置、程序入口、程序内所有元素的ID、所有程序变量名、程序运行期信息等;

(5)“proc::var:”表示Procedure Variable,即程序变量,其中“”为程序ID,“”为程序变量名,值类型不限制,程序变量为全局变量,可以用来记录某一工段操作信息或某一批次消耗的物料等;

(6)“proc::elem:”表示Procedure Element,即程序元素,对应包含配置的控制算法,其中“”为程序ID,其中“”为元素ID,其值类型为HashMap,HashMap内包含控制算法配置信息、控制模块名称、元素ID、前序元素ID、后序元素ID与选择判断条件,该键值在设计时,应当保证包含控制模块所需的所有配置信息;

(7)“mod::info”表示Module Information,即模块信息,对应控制模块信息,其中“”为控制模块名称;

(8)“msg::info”表示Message Information,即消息信息,其中“”为消息ID,某些与人操作相关的算法(如扫码投料)会使用消息管理人工处理的状态与结果;

3、数据库中还需提供特定功能的流:

“mod::tasks”表示Module Tasks,即模块任务,对应控制模块所有执行任务,其中“”为控制模块名称,控制模块将从该流中依次或并发执行。

4、如果需要实现变量趋势与执行记录,可以根据需要将上述“sv:var:”、“proc::elem:”等键替换为流。

算法层,还用于根据所述参数数据和任务数据链,创建所述任务数据链的所有任务并触发相应的生产设备进行执行。

具体地,算法层包括控制模块和运行模块;

举例来讲,控制模块包括:开始、结束、并行开始、并行结束、上跳变、下跳变、条件与、条件或、子程序、资源占用、资源释放、脚本执行、写位号、写变量、数值计算、字符串操作、HTTP请求、读文件、写文件、人工确认、计时器控制、计时器判断、程序控制等通用控制模块,还可以包括PID控制、SPID控制、阶段控制等算法控制模块,以及异常监控、自动执行等全局自动触发系统模块。

运行模块包括:

程序管理模块,用于管理控制程序;

守卫模块,用于在控制模块发生崩溃或死锁时,根据控制模块的运行状态判断控制模块可能发生的异常;

封装模块,用于封装数据层,并提供接口;

其他与控制系统和实际业务有关的模块。

本实施例提供的一种控制系统,使用高性能分布式键值数据库集群,是数据层支持冗余处理操作,具备快速读写特性并且对数据结构不敏感,提高了系统的性能和稳定性,减少了开发工作量并降低了维护难度。

实施例二

如图2所示,本实施例提供一种控制方法,该方法是基于实施例一中提供的控制系统实施的,包括:

S1、展示层在接收到用户身份信息和用户编辑的图形化组态信息后,将所述用户身份信息和所述图形化组态信息传输至应用层。

具体地,用户身份信息是通过采集用户登录信息得来的,用户的登陆信息中包含有权限信息;在生产工程开始前,用户可以在浏览器或客户端上的组态编辑器对该生产进行图形化组态,进而产生用户的图形化组态信息。

S2、应用层根据所述用户身份信息,对用户的权限进行鉴定,若鉴定结果为真,则将所述图形化组态信息发送至算法层。

S3、算法层针对所述图形化组态信息,进行检查和编译,得到相应的控制程序。

S4、数据层根据所述控制程序,创建对应的参数数据和任务数据链。

S5、算法层根据所述参数数据和任务数据链,创建所述任务数据链的所有任务并触发相应的生产设备进行执行。

执行完每个任务后,将任务标记为已确认,并读取程序元素单元获取下一个任务的配置,若能获取到,则根据所述配置,创建下一个任务并继续执行。

具体地,控制模块是从“mod::tasks”流中读取任务的,将当前任务标记为已确认以后,读取“proc::elem:”获取下一个任务的配置。

可选地,结束后由用于管理程序状态的元素修改“proc::info”与“proc::elem:”中的状态,确保不会继续执行其他分支;根据组态,等待所有分支结束或直接结束;

由用于管理程序状态的元素记录每个程序元素运行结果,该结果可以存储到其他历史数据库中以减小数据层的压力;

每隔预设时间段或在预设关键事件发生时,读取服务器变量单元和程序变量单元中的数据,并记录到趋势服务器;

其中,趋势服务器是专门记录服务器变量和程序变量的服务器;

服务参数与程序参数通过程序管理控制模块定期或在关键事件发生时读取“sv:var:”、“proc::var:”并记录到专用趋势服务器。

在控制程序执行中,控制系统会根据实际情况下发控制命令,例如开始、停止、暂停、恢复、挂起;

所述下发控制指令是通过将程序信息单元中的程序运行状态信息进行更改实现的。

在控制程序运行的过程中,接收用户在控制程序元素上添加的控制标记的信息,所述控制标记包括:跳过标记、跳步标记与暂停标记;

当控制程序运行过程中遇到跳过标记,则会跳过被标记的程序元素,继续执行后续的程序元素;

当控制程序运行过程中遇到跳步标记,则会直接从另一个指定的程序元素开始执行;

当控制程序运行过程中遇到暂停标记,则不修改程序程序运行状态且不继续执行,直到所述暂停标记被移除。

具体地,控制模块在控制系统整个运行的过程中的方法及要点如下:

1、保持控制模块启动的方法:由于整个控制系统灵活部署的特性,控制模块可以由不同方式实现在不同的系统中,因此启动模块的方式可以使用进程守护、服务编排、托管到其他服务等方式保持启动状态,控制模块启动是控制算法执行的基础,控制模块启动后应当向数据层“mod::info”键写入模块信息并定时更新其中的运行状态;

2、控制模块的算法应当能在尽可能短的时间内完成,如果一个算法非常复杂,那么应当将该算法进行分片,可以考虑拆分为多个控制模块或通过重新创建任务的方式与有限状态机的设计反复执行同一个控制模块;

3、控制模块的执行过程:控制模块在启动后会读取“mod::tasks”流,在读取到任务后开始执行,通常控制模块在启动时按照固定数量读取任务并处理,如果任务全部处理完成,则使用阻塞读取等待新的任务产生,这里提到的“固定数量”可以根据任务超时时间、控制模块平均执行任务消耗的时间来估算,控制模块在执行完成后,应当使用事务操作:将当前任务标记为已确认、读取“proc::elem:”获取下一个任务的配置、如有则创建下一个任务;

4、控制模块操作资源的过程:控制模块可以直接读写数据层的各层级变量,也可以通过OPC等协议读写位号,或者通过IO与文件或第三方系统交互,同样的,在操作资源时应当注意处理超时、重试等问题,增加控制系统稳定性与鲁棒性;

5、控制模块竞争执行:在性能要求较高或有高可用性需求时,控制系统中可能存在多个相同的控制模块同时运行,这就要求,唯一读取,一个控制模块在读取任务后,其他控制模块在正常情况下无法再次读取该任务;控制模块并发执行:控制模块在读取任务后不阻塞其他控制模块继续读取任务,不同控制模块可以同时执行任务;超时重置:在控制模块执行超时时,应当阻止该任务的执行、结束,并将该任务重新分发;

6、控制模块异常处理与冗余切换:在控制模块正常执行时,控制模块会定期向“mod::info”写入运行状态,其中包括心跳,因此,在控制模块发生崩溃或死锁等故障时,守卫系统可以根据控制模块的运行状态判断控制模块可能发生的异常,在控制模块冗余运行的情况下,异常的控制模块在执行超时后使得任务重新分发,由其他控制模块正常运行;

7、控制模块执行历史记录:在上述设计中,数据层将变量调整为流即可拥有记录变量变化的能力,同时,读取“mod::tasks”中已确认的任务,即可获取控制模块执行历史;

8、控制模块在线更新:控制模块在接收到停止信号后会开始优雅停止,首先控制模块将停止读取“mod::tasks”流中的任务,然后在已读取的任务全部结束后或超过限定时间后释放控制模块;控制模块在停止后即可完成替换与再启动,再启动过程与正常启动过程相同;

在线更新过程中,可能会产生已读取但是由于控制模块停止而不被任何控制模块处理的任务(为了避免重复执行,一个任务在正常情况下只会读取一次,如何一个控制模块读取了任务但是在结束前停止了,那么可能会导致这个任务将不被任何模块处理),这种情况下,守卫模块会定时检测异常超时的任务,并将这些任务重启指派到新的控制模块中。

本实施例提供的一种控制方法,由于将控制模块执行方法由传统的调用控制模块执行改变为由控制模块主动执行,实现控制模块分布式部署,相对现有技术而言,提升了系统整体性能与稳定性,部署方式更灵活,减小了网络配置难度,如防火墙,DCOM等;

由于控制模块只需要完成控制算法即可,不用处理状态变迁,因此相对于现有技术而言,在控制模块设计与开发时,可以减少开发员工作量;

由于采用了不同的控制模块与应用层搭配,因此可以实现连续控制、顺序控制、批次控制,甚至混合模式控制等多种控制方式;

由于在控制模块进行更新时采用了优雅停止的方式,因此相对现有技术而言,本发明能够实现控制模块在线更新,实现不停机、不停产更新,保证了生产工作的连续稳定性。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连;可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”,可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”,可以是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”,可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度低于第二特征。

在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行改动、修改、替换和变型。

相关技术
  • 一种尿不湿智能感应器及使用方法、控制系统和控制方法
  • 一种气动排水阀冲水控制系统、控制电路及控制方法
  • 一种SRAM控制方法及控制器、控制系统
  • 一种具有语音控制功能的天窗控制系统及其控制方法
  • 一种控制方法、控制装置及控制系统
  • 联合收割机控制系统、联合收割机控制程序、存储有联合收割机控制程序的存储介质、联合收割机控制方法、收获机控制系统、收获机控制程序、存储有收获机控制程序的存储介质、收获机控制方法
  • 温度控制系统、设置有该温度控制系统的车辆及用于控制该温度控制系统的操作的方法
技术分类

06120116498904