探讨基于IEC61499 的分布式 ISA Batch 控制系统

        ISA SP88 是批次过程控制的标准,对应的IEC标准是IEC 61512。该标准中一个重要的部分是配方管理(Recipe Management)。

        所谓配方,是根据批量产品的要求,材料设定加工工艺,加工流程和参数。类似于传统制造业的工艺文件。在S88 中,模型是分层的,同样的,配方是也是·分层的。

配方的分层架构

        配方在化学工程师眼中是一些化学过程和术语,对于控制系统而言,控制工程师关心的可能是阀门,泵,加热器,液位计等传感器和执行部件。

        从过程的观点看,过程模型包含了过程抽象的化学知识,从通用配方到控制配方,模型逐步地替换(适配到批次工厂的设备。最后产生控制配方(Control recipe)描述了达到过程目标的具体操作(action)。控制视野control view(或者设备视野equipment view)是以物理控制模型描述的。它涉及传感器,执行器以及它们的抽象模型-设备控制配方和控制配方。控制配方是过程观点和控制观点的交汇点。

        S88中的所有模型都是分层的,phase(我不知道准确的翻译是什么,我翻译成阶段)是控制配方中最基本的元素。不能再分解。一个阶段描述了工厂的一个基本功能,比如dosing(加料),stirring(搅拌),heating(加热)。依次完成一组阶段,称为操作(Operation)。比如操作注入反应釜(filling of reactor) 是:

  • 加料,混合A 阶段
  • 第一步完成后加料,混合 B 阶段。
  • 在第1,2 阶段的同时搅拌和冷却。

        操作在单元(unit)过程中聚集在一起赋予工厂的unit。Unit 的过程有一组操作组成。它们构成了更加高级的功能,比如通过下列操作生产产品C:

  • filling of reactor
  • reaction
  • emptying reactor.

在S88 中,配方使用一种过程功能块PFC 来描述。上面我们描述的配方,可以用下面的PFC描述:

PFC 转换称为控制系统程序

物理设备模型通常使用P&ID 图来描述:

      从上图看,有许多的阀门,两个泵,三个tank和一个浸煮器。要将配方转换成控制配方:

在左边的控制配方中包含了下列Phase

  PFC 描述的过程需要转化为物理设备的控制程序和参数。 简单的方法是根据PFC编写相应的程序。如果要采用低代码方式自动生成代码,就需要将PFC 转化为控制系统模型。基本的思路是:

  •    设立过程控制服务器(control server),其中的程序根据PFC 解释执行过程控制程序。现场传感器数据通过现场控制设备读取
  •   直接将PFC 转换成为现场控制设备的控制逻辑

        对于第一种方法而言,控制程序编写是比较复杂的,它们依然需要寻找一种通用的,低代码开发方式。

     而第二种方式而言,现场设备的程序往往是控制工程师,甚至是第三方设备供应商,或者系统集成商预先做好的。Batch 系统不允许修改地层控制逻辑。于此同时,底层控制器可能使用的是不同的厂商的PLC 产品。或者使用了多台PLC 。控制逻辑是相当复杂的。Batch 软件难以做到兼容。

          另一方面,物理设备的PLC 不是分布式系统,它们不提供制造单元之间的标准化通信方式。

IEC61499 作为中间层

      一种解决方法是在batch系统和工业现场提供一个中间层,使用基于IEC61499 功能块技术是一种好的选择。系统架构如下图所示:

           从上图可见,61499 控制器并非与现场PLC 一一对应,可能是一个生产模块设立一个61499 边缘控制器,内部运行IEC61499 运行时,Opcua server 以及配方管理所需要的信息。61499 边缘控制器通过modbus 或者其它现场协议与控制现场PLC 通信。配方转化为IEC 61499 功能块网络,它们可能是直接调用PLC 中的功能块执行,也可能只是改变PLC 程序中的参数,不影响工业控制现场操作。

        IEC61499 是一种基于事件的功能块技术,而不是61131-3 基于执行周期的执行方式。IEC61499 的功能块网络与PFC 图更加接近。可以将Phase 开发成为IEC61499 的功能块(phaseFB)。

       例如:下面是一个Open_T200_T300 的PhaseFB的定义。

  IEC61499 功能块库中还包含一些SIFB 功能块,支持访问现场PLC ,传感器中的数据。网络上有一些文献描述如何将PFC 转换成IEC61499 功能块网络的方法,不外乎两种:

直接转换成为IEC61499 功能块。

使用一种调度,选择,同步的方式。

  想必操作的过程是将PFC转换成Schedule图中的状态图,通过Select 产生事件调用功能块执行,功能,有功能块是顺序执行的,有的功能块是并行执行的。当功能块完成后通过Synchronizer功能块同步后,推进到下一步执行。   对应的IEC61499 功能块大致如此:

      我没有没有完全搞清楚如何自动产生Schedule和Synchronization 功能块状态机。  

         采用IEC61499 中间层可以弥补现场PLC 的不足,在不增加PLC 开销的前提之下,开发更多IT 系统所需要的应用。在许多场合,低端PLC 不支持新的协议和功能,比如复杂的OPCUA 信息模型。PLC 工程师不熟悉IT所需要的功能编程(例如MQTT,数据库读写等等)。能够通过61499 控制器实现各种灵活应用。这将是IEC61499 重要的应用场合。

PFC 的文本描述 

     实现PFC 到IEC61499 功能块网络的转变,需要采纳文本描述的PFC 。标准化的文本描述是BatchML 标准。基于Batch,可以开发一个BatchML->IEC61499 FBNetwork XML的转换工具。

     当然也有人提出其他一些文本格式,比如UML语言模型。

未来

                过程控制领域开放自动化有一种发展的趋势就是MTP(Module Type Package) 模块。将过程控制领域的生产单元模块化,并且使用MTP 构建通用的模型。现场设备直接支持MTP模型,流程配方能够直接将PFC 转化为MTP。在这种场合,仍然需要IEC61499 作为中间层,应为需要MTP 之间的标准化通信。

MTP将会构建一个生态,如下图所示: 

设备供应商或者第三方编写MTP 模块。工厂工程师使用MTP。

结束语 

       在我的博文评论区中发现,关心IEC61499 技术的人大多数IT工程师,而不是OT工程师。想必是IT工程师渴望使用新技术更加迫切。 他们软件希望能够跨越IT/OT的鸿沟。IEC61499 是IT/OT的粘合剂。这也许是它当前最好的切入点。

        本人对过程控制行业完全是门外汉,只是有读者对IEC61499 在Batch 系统配方编排领域的应用感兴趣,才写了本博文,参考了国外一些论文的内容。

       希望得到读者的指正,共同深化IEC61499 边缘层应用这个有趣的话题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

层次聚类分析

1、python语言 from scipy.cluster import hierarchy # 导入层次聚类算法 import matplotlib.pylab as plt import numpy as np# 生成示例数据 np.random.seed(0) data np.random.random((20,1))# 使用树状图找到最佳聚类数 Z hierarchy.linkage(data,methodweighted,metric…

千呼万唤openGauss资源池化系列培训来了

应openGauss广大用户要求,社区于近期推出openGauss资源池化培训系列。 关于资源池化 资源池化是openGauss 5.0.0 推出的重点特性,是openGauss基于内存池化和共享存储实现的数据库集群。数据在集群的计算节点内存、共享存储中实现共享。应用可以任意节点…

uni-app 之 解决u-button始终居中问题

uView中u-button始终居中问题如何解决的简单方法&#xff1f; 1&#xff1a;给该元素margin-right: 0;可以达到向右靠齐&#xff1b; 2&#xff1a;给该元素的父元素设置float: right image.png <u-button style"width: 50px; margin-left: 0;" plain"t…

DAQ高频量化平台:引领Ai高频量化交易模式变革

近年来&#xff0c;数字货币投资市场掀起了一股热潮&#xff0c;以&#xff08;BTC&#xff09;为代表的区块链技术带来了巨大的商业变革。数字资产的特点&#xff0c;如无国界、无阶级、无门槛、高流动性和高透明度&#xff0c;吸引了越来越多的人们的关注和认可&#xff0c;创…

Dubbo3应用开发—XML形式的Dubbo应用开发和SpringBoot整合Dubbo开发

Dubbo3程序的初步开发 Dubbo3升级的核心内容 易⽤性 开箱即⽤&#xff0c;易⽤性⾼&#xff0c;如 Java 版本的⾯向接⼝代理特性能实现本地透明调⽤功能丰富&#xff0c;基于原⽣库或轻量扩展即可实现绝⼤多数的 微服务治理能⼒。更加完善了多语言支持&#xff08;GO PYTHON R…

指针笔试题讲解(让指针变得简单易懂)

数组名的理解 : 数组名就是首元素地址 但是有两个例外&#xff1a; 1. sizeof&#xff08;数组名&#xff09;这里的数组名表示整个数组的大小&#xff0c;sizeof&#xff08;数组名&#xff09;计算的是整个数组的大小&#xff0c;单位是字节 2. &数组名 这里的数组…

【音视频】ffplay源码解析-PacketQueue队列

包队列架构位置 对应结构体源码 MyAVPacketList typedef struct MyAVPacketList {AVPacket pkt; //解封装后的数据struct MyAVPacketList *next; //下一个节点int serial; //播放序列 } MyAVPacketList;PacketQueue typedef struct PacketQueue {MyAVPacketList …

安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

python excel复制数据保留单元格格式(.xls.xlsx)

最近帮朋友开发一个数据excel根据条件动态过率的功能.读取生成用pandas很方便,但是这里有一点比较麻烦的是得保留原来的单元格格式.这点操作起来就要麻烦一点了.下面总结了.xlsx和.xls处理 1.xlsx 文件处理 xlsx文件处理可以使用openpyxl库进行处理,比较简单,流程如下 1.获取…

[hive]搭建hive3.1.2hiveserver2高可用可hive metastore高可用

参考: Apache hive 3.1.2从单机到高可用部署 HiveServer2高可用 Metastore高可用 hive on spark hiveserver2 web UI 高可用集群启动脚本_薛定谔的猫不吃猫粮的博客-CSDN博客 没用里头的hive on spark,测试后发现版本冲突 一、Hive 集群规划(蓝色部分) ck1ck2ck3Secondary…

【虚幻引擎】UE5 VLC接入网络监控、视频直播、网络直播支持RTSP、RTMP

一、如何更新自己的插件匹配自己想要的UE版本 我们在网上下载的插件一般是UE4版本的插件&#xff0c;这个时候就需要我们自己去修改编译&#xff0c;接下来教大家修改插件来适配自己的引擎。 如果不想自己编译代码&#xff0c;可以直接找我拿编译好的UE5.0、UE5.1、UE5.2的插件…

学习路之PHP--laravel postman 提交表单出现419错误

问题图片 解决&#xff1a; 白名单 有时候你可能希望设置一组不需要 CSRF 保护的 URL 。例如&#xff0c;如果你正在使用 Stripe 处理付款并使用了他们的 webhook 系统&#xff0c;你会需要从 CSRF 的保护中排除 Stripe webhook 处理程序路由&#xff0c;因为 Stripe 不知道要发…

swift 天气

定义不同模式主题 自定义颜色 输入框 委托和协议 扩展 协议 http 请求 调用api 闭包

记录crack某IDE插件过程

声明&#xff1a;本文仅记录学习过程&#xff0c;已对关键位置脱敏处理&#xff0c;未提供任何工具&#xff0c;请支持正版。 反编译jar包 使用cfr进行对插件核心jar包MyBxxxxxx-obfuss.jar进行反编译&#xff0c;在本地生成a.txt。 java -jar cfr-0.152.jar MyBxxxx-obfuss.…

用flask框架flask-sock和websocket创建一个自己的聊天界面

WebSocket 协议在10年前就已经标准化了(在2011年&#xff0c;你能相信吗?)所以我相信你不需要介绍。但是如果你不熟悉它&#xff0c;WebSocket 是 HTTP 协议的一个扩展&#xff0c;它在客户端和服务器之间提供了一个永久的、双向的通信通道&#xff0c;在这里双方可以实时地发…

Hugging Face使用Stable diffusion Diffusers Transformers Accelerate Pipelines VAE

Diffusers A library that offers an implementation of various diffusion models, including text-to-image models. 提供不同扩散模型的实现的库&#xff0c;代码上最简洁&#xff0c;国内的问题是 huggingface 需要翻墙。 Transformers A Hugging Face library that pr…

怎么将几张图片做成pdf合在一起

怎么将几张图片做成pdf合在一起&#xff1f;在我们平时的工作中&#xff0c;图片和pdf都是非常重要的电脑文件&#xff0c;使用也非常频繁&#xff0c;图片能够更为直观的展示内容&#xff0c;而pdf则更加的正规&#xff0c;很多重要文件大多会做成pdf格式的。在职场人的日常工…

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

java CAS详解(深入源码剖析)

CAS是什么 CAS是compare and swap的缩写&#xff0c;即我们所说的比较交换。该操作的作用就是保证数据一致性、操作原子性。 cas是一种基于锁的操作&#xff0c;而且是乐观锁。在java中锁分为乐观锁和悲观锁。悲观锁是将资源锁住&#xff0c;等之前获得锁的线程释放锁之后&am…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用&#xff08;single page web application&#xff0c;SPA&#xff09;。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…