探讨基于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.rhkb.cn/news/136553.html

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

相关文章

2023年以就业为目的学习Java还有必要吗?(文末送书)

目录 一、活力四射的 Java二、从零开始学会 Java三、准备工作四、基础知识五、进阶知识六、高级知识七、结语参与方式 大家好,我是哪吒。 文末送5本《Java编程动手学》 今天来探讨一个问题,现在学 Java 找工作还有优势吗? 在某乎上可以看到…

Cesium 测量距离

Cesium 测量距离 需求分析第一种方式:使用测距 Measure第二中方式:使用 distance,自己封装第三种方式:自己封装(样式不太好) 需求 实际开发中我们经常需要用到量测工具,而Cesium没有直接提供量…

MySQL使用C语言链接

MySQL使用C语言链接 MySQL connect接口介绍mysql_initmysql_real_connectmysql_querymysql_store_result\mysql_use_result()mysql_num_rowsmysql_num_fieldsmysql_fetch_fieldsmysql_fetch_rowmysql_close MySQL connect 使用C语言来连接数据库,本质上就是利用一些…

电脑桌面的复选框如何取消

电脑桌面图标的复选框如何取消 1. 概述2. 去掉图标的复选框方法结束语 1. 概述 当你拿到新的电脑开机后,发现桌面上软件应用的图标左上角有个小框,每次点击图标都会显示,并且点击图标时,小框还会打上√; 这个小框的…

成功解决Selenium 中116版本的chromedriver找不到问题

Selenium 中的Google(谷歌浏览器)最新版本chromedriver 文章目录 Selenium 中的Google(谷歌浏览器)最新版本chromedriver1.当前作者的谷歌浏览器版本2.当前驱动官网的最新版本3.当不想降低浏览器版本继续使用谷歌浏览器的办法 1.当…

《计算机视觉中的多视图几何》笔记(5)

5 Algorithm Evaluation and Error Analysis 本章主要讲述对算法的验证和误差分析。 概述了两种计算这种不确定性(协方差)的方法。第一个基于线性近似值,涉及串联各种雅各布表达式,第二个是更容易实施蒙特卡洛方法。 文章目录 …

Linux——IO

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——文件系统 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;是不是只有C/C有文件操作呢&#xff1f;python&#xff0c;java&…

Ubuntu安装中文拼音输入法

ubuntu安装中文拼音输入法 ubuntu版本为23.04 1、安装中文语言包 首先安装中文输入法必须要让系统支持中文语言&#xff0c;可以在 Language Support 中安装中文语言包。 添加或删除语音选项&#xff0c;添加中文简体&#xff0c;然后会有Applying changes的对话框&#x…

源码编译Qt 5.15.9+msvc2019

官方文档里给出了详细步骤&#xff1a; Building Qt Sources Building Qt 5 from Git (Wiki) 注&#xff1a;本文基于windows11vs2019x64qt5.15.9&#xff0c;不编译Qt WebEngine 归纳总结如下&#xff1a; 准备阶段 Qt for Windows - Requirements 安装python&#xff0c;…

逼自己看完,Redis的事务你就掌握了!!!

目录 1、对于事务的理解 1.1、回顾MySQL的事务 1.2、Redis的事务 2、事务命令使用 3、watch的实现原理 3.1、watch用来干什么的&#xff1f; 3.2、watch的实现原理 1、对于事务的理解 1.1、回顾MySQL的事务 在MySQL中&#xff0c;事务有4个特性&#xff1a; 原子性&a…

MyBatis中当实体类中的属性名和表中的字段名不一样,怎么办

方法1&#xff1a; 在mybatis核心配置文件中指定&#xff0c;springboot加载mybatis核心配置文件 springboot项目的一个特点就是0配置&#xff0c;本来就省掉了mybatis的核心配置文件&#xff0c;现在又加回去算什么事&#xff0c;总之这种方式可行但没人这样用 具体操作&…

详细介绍如何微调 YOLOv8 姿势模型以进行动物姿势估计--附完整源码

动物姿势估计是计算机视觉的一个研究领域,是人工智能的一个子领域,专注于自动检测和分析图像或视频片段中动物的姿势和位置。目标是确定一只或多只动物身体部位的空间排列,例如头部、四肢和尾巴。这项技术具有广泛的应用,从研究动物行为和生物力学到野生动物保护和监测。 …

【LeetCode-中等题】107. 二叉树的层序遍历 II

文章目录 题目方法一&#xff1a;队列层序迭代 题目 方法一&#xff1a;队列层序迭代 解题详情&#xff1a;【LeetCode-中等题】102. 二叉树的层序遍历 res.add(0,zres); //效果是将 zres 列表作为 res 的第一个子列表&#xff0c;并将其它原本在第一位置及之后的子列表向后移…

Python项目开发:Flask基于Python的天气数据可视化平台

目录 步骤一&#xff1a;数据获取 步骤二&#xff1a;设置Flask应用程序 步骤三&#xff1a;处理用户输入和数据可视化 步骤四&#xff1a;渲染HTML模板 总结 在这个数字化时代&#xff0c;数据可视化已经成为我们理解和解释信息的重要手段。在这个项目中&#xff0c;我们…

JavaScript速成课—事件处理

目录 一.事件类型 1.窗口事件 2.表单元素事件 3.图像事件 4.键盘事件 5.鼠标事件 二.JavaScript事件处理的基本机制 三.绑定事件的方法 1.DOM元素绑定 2.JavaScript代码绑定事件 3.监听事件函数绑定 四.JavaScript事件的event对象 1.获取event对象 2.鼠标坐标获取…

下载HTMLTestRunner并修改

目录 一. 下载HTMLTestRunner 二. 修改HTMLTestRunner 1. 修改内容 2. 修改原因 一. 下载HTMLTestRunner 下载报告模板地址:http://tungwaiyip.info/software/HTMLTestRunner.html 下载模块&#xff1a; 二. 修改HTMLTestRunner 将修改后的模块放到python安装目录下的..…

Harmony 开始支持 Flutter ,聊聊 Harmony 和 Flutter 之间的因果

相信大家都已经听说过&#xff0c;明年的 Harmony Next 版本将正式剥离 AOSP 支持 &#xff0c;基于这个话题我已经做过一期问题汇总 &#xff0c;当时在现有 App 如何兼容 Harmony Next 问题上提到过&#xff1a; 华为内部也主导适配目前的主流跨平台方案&#xff0c;主动提供…

QT在安装后添加新组件【QT基础入门 环境搭建】

一、Qt的安装目录下找到MaintenanceTool工具 二、双击该exe文件运行该工具(界面可能不相同但功能一样) 登录账号,进入以下界面,点击下一步 选择更新组件,出现以下提示 三、此时需要手动添加储存库 1.进入下面网站,选择一个国内镜像 Qt Downloads 点击后面的HTTP可进入…

info文档与man手册

man 手册 man --version# 查看版本 man 2 socket# 查看section2中的socket yum install man-pages# 更新man手册man -f socket# 列出所有章节的socket # man -f刚开始使用的时候不显示 # centos7执行mandb命令,7以下的版本执行makewhatis命令 # 之后执行man -f就生效了 [rootk…

Jmeter —— 常用的几种断言方法(基本用法)

在使用JMeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言&#xff0c;断言相当于检查点&#xff0c;它是用来判断系统返回的响应结果是否正确&#xff0c;以此帮我们判断测试是否通过&#xff0c;本文 主要介绍几种常用的断言&…