物联网IEC 61499 101标准介绍

简介: 物联网IEC 61499 101标准介绍

PLC

基本上,PLC是一种业界用于控制不同系统的输入和输出的小型计算机。通常,输入是按钮和传感器,输出是电机。如果您有Informatic背景,您可以将PLC看作是Raspberry Pi,Arduino,Beagle Bone Black或具有输入和输出的类似嵌入式板,但是为行业做好准备。 PLC根据需要进行编程。有许多生产PLC的公司,类似于普通PC的情况。不同之处在于,普通PC是通用计算机,这意味着您可以使用它来执行所有类型的操作。但是对于PLC,它们可以有效地生产出狭窄的目的。因此,每个PLC生产商不仅开发硬件,而且还开发在PLC中运行的基本软件(固件)。固件可以与普通计算机中的操作系统(linux,windows,mac OS)进行比较。

编程PLC时,您需要一个IDE(集成开发环境,也就是一个程序,您可以在通常的计算机上运行的PLC供应商(Windows, linux,mac),并允许您对应用程序进行编码,然后将其上传到PLC。在这一点上,重要的是要注意我们用来引用类似概念的不同术语:

       应用:用户在PLC上编写和运行的软件。当您“编程PLC”时,您正在创建应用程序

       IDE:PLC供应商提供的软件,允许用户对其应用进行编码并将其上传到PLC,调试等。

       固件:PLC中已经有基本软件。 IDE与它交互,用户通常可以更新它,而不会修改它。

简单地说,让PLC控制你做的以下事情:

       1.从供应商网页获取IDE,并了解如何使用它

       2.了解PLC的功能以及如何访问应用程序的输入和输出

       3.在IDE中编写应用程序

       4.将计算机连接到PLC,通常使用以太网电缆,并将应用程序从IDE上传  到 PLC(有些可能有几个小工具而不是IDE)

       5.现在您的应用程序在PLC打开时运行


Programming PLCs


即使对于每个PLC供应商都有一个特定的IDE,PLC的编程语言在IEC-61131第3部分中是标准化的。五种不同的编程语言是标准的一部分:

       梯形图(LD),图形化

       功能框图(FBD),图形化

       结构化文本(ST),文本

       指令列表(IL),文本(已弃用)

       顺序功能图(SFC),图形化。

这与“正常”编程非常不同,如C,C ++,java,python等。 上面提供的编程语言,特别是图形编程语言,由于其抽象而更容易编程。 当然,这并不意味着您无法使用正常编程语言对PLC进行编程,但此功能并不总是存在。

我们将重点介绍功能块图编程语言。 下图显示了一个功能块(FB)图的外观的一个小例子


在图像中,我们看到3个FB(on_delay1,AND,alarm),4个输入(user_ok,T#5s,packet_arrived,conveyor_full),2个输出(red_light,conveyor_motor)和FB之间的连接。让我们专注于最正确的FB。 “RS”是它的类型,“alarm”是实例名称。你可以有很多相同类型的实例。同一类型的所有实例都以相同的方式表现,但每个实例的内部状态是不同的。对于所有FB,输入位于左侧,右侧输出。如果您使用正常编程语言进行编程,则可以将FB看作可以调用的函数,输入是参数,输出是返回值(可以有多个输出)。在这种RS FB的情况下,如果输入S为真,输入R为假则输出Q为真;当R为真时,Q变为假。

一旦你“编程”/在IDE中绘制这个应用程序,你编译它,然后上传到PLC。你应该看到真正的系统中的行为。但是当然,PLC的物理输入和输出必须连接到真实的传感器和电机上才能有预期的行为。每个PLC都有自己的方式在编程时表示物理输入/输出。

好吧!关于PLC这是您现在需要知道的所有。我们将在接下来的部分中更接近4DIAC,我们看到一个新的标准。


IEC 61499

行业正从集中式系统转向更为分散的范式。这意味着将大型系统与中央智能控制全部转换为更分散的系统,系统的较小部分仍然具有智能性,并且可以平滑地进行通信,就好像系统的行为一样。 IEC 61499定义了用于开发分布式工业控制解决方案的域特定建模语言。 IEC 61499通过改进软件组件的封装以增加可重用性,提供独立于供应商的格式,并简化对控制器与控制器通信的支持,从而扩展了IEC 61131-1。其分布功能和动态重新配置的固有支持为Industry 4.0和工业IoT应用程序提供了所需的基础架构。

IEC 61131-1有两大问题。第一个是在您的系统中有反馈。从上面的一个功能块图,但是有一个反馈,系统的行为取决于底层软件的实现方式。第二,如果来自不同供应商的PLC,它们之间的通信不是标准化的,通常很难实现。

换句话说,IEC 61499定义了一种与旧的FB相似的建模语言,面向分布式系统。这意味着您可以对整个系统进行建模,即使它由较小的部件组成,每个系统都是PLC。您使用FB真正封装功能,因为不允许使用全局变量。您创建连接FB的应用程序,但该标准还定义了如何从物理角度来表示系统,这意味着您可以对设备进行建模以及如何连接。由于您的应用程序不仅在一个设备中运行,您可以将不同的应用程序FB映射到不同的设备。

所以,不要再想到概念了,我们来看看一些图片来了解IEC 61499给出的功能和新功能


IEC 61499 主要部分

FB Interface(FB接口)

下图显示了FB的新外观。它封装了所需的功能。再次,输入在左边,右侧的输出,但现在界面被划分成事件和数据。事件在FB的顶部,红色,下部的数据为蓝色。事件触发FB的功能,数据输入是这些功能使用的数据。当事件到达时,在FB中发生的确切顺序显示在下一个图像中。事件和数据连接不兼容,这意味着您无法以任何方式将它们连接在一起。您可以扇入(多个输出到相同的输入)并扇出(与多个输入相同的输出)事件连接,您可以扇出数据连接。你不能做的是数据连接的风扇,因为FB不会知道要输入哪些数据。

将事件与数据输入(输入和输出两者)连接的行和小平方表示当输入/输出事件到达/离开时刷新的数据输入。事件执行控制(ECC)是接收事件输入的状态机,并根据实际状态调用封装的功能。


FB Internal Sequence(FB内部序列)

下图显示如何触发FB执行其功能

1.输入事件到达FB

2.与进入事件相关的数据输入被刷新

3.事件传递给ECC

4.根据类型和执行控制,内部功能被触发执行

5.内部功能完成执行,并提供新的输出数据

6.与输出事件有关的输出数据被刷新

7.输出事件发送


步骤4到7可能会重复多次,输出事件不是强制触发的。


因此,在FB及其行为定义中,IEC 61499标准中的应用程序如下图所示。 您可以检查数据和事件是否彼此不连接。

Distributed application(分布式应用)

现在,由于该标准面向分布式系统,因此应用程序不需要仅在一个设备中运行。 它可以拆分并部署在多个设备(PLC)中。 不仅如此,您可以拥有许多应用程序,分布在许多设备上。 这就是为什么,如下图所示的“系统模型”视图帮助用户设计应用程序在其系统的许多设备上的分布情况。 设备可以有很多资源,您可以将其视为设备内的线程。 FB实际上加载到资源,而不是设备本身。

您可以看到,并不是一个应用程序的所有FB都转到同一个设备上,而且设备可以运行许多应用程序或许多应用程序。 注意:FB不能拆分为许多设备

Broken Connections(断连接)

那么您可以将应用程序拆分成许多设备,这是非常好的,但是数据和事件需要发送到下一个设备才能保持它们的流动。 是! 这就是为什么你用特殊的FB修复这个连接来发布和订阅这个信息,如下图所示。 由于这些新的FB不是整体应用程序的一部分,所以只有当您进入资源视图时才会看到它们。

最后,您现在可以看到下面的图像如何更有意义。 当然,这并不是那么神奇,而且您可能对如何实际实现断线连接或者如何访问PLC中的实际硬件输入/输出有许多疑问。 稍后我们会看到,当我们看到不同类型的FB。

Types of Function Blocks(功能块的类型)

IEC 61499定义了在开发应用程序时可以找到的3种类型的FB:

基本功能块(BFB):

在BFB中,您可以使用执行控制图(ECC)来定义FB的状态机,从而决定执行哪种算法。右图中的灰色框是封装在功能块内的算法。这些算法由用户编写,例如使用结构文本(IEC 61131中定义的编程语言之一)。粉红色框是在访问状态时触发的输出事件。例如,如果FB处于START状态,并且EI1事件到达,则FB跳转到State1,执行Alg1并输出EO1事件。

方括号之间的表达式是与事件一起实际跳转到下一个状态的条件。 A表示它将直接跳转而不需要事件。这里很重要的是,事件只消耗一次,这意味着在示例中说明,如果从State1返回到START的连接再次是EI1,则不会进入无限循环。应该到另一个EI1回去。这些环路可能与连接上的1一起出现,因为它们不会作为事件消耗。


复合功能块(CFB):

CFB只是其他FB的内部网络。


服务功能块(SFB):

SFB是访问硬件特定部分所需的FB。 可以看出,同一应用程序部署到多个设备,但在某些时候,应用程序需要访问输入或输出,甚至访问特定硬件进行通信,但这些功能取决于硬件。 这就是SFB的需要。 它们基本上用于您无法放入BFB或CFB的所有内容,因为它需要访问该平台。 这些类型的FB不仅来自传入事件而且来自硬件也被激活,这意味着响应者FB可以在数据包到达时触发事件。


合规性简介

由于该标准是抽象的,所以不需要许多适合执行系统(如通讯和类似)的“事情”。 但标准确实说明了这个“事情”必须被指定,它被称为合规性配置文件。 合规性配置文件的示例是Holobloc

您可以看到合规性简介是填补由于标准抽象而创建的差距的方式。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
监控 数据库
短剧CPS分销返佣平台系统开发介绍
聚合CPS系统是指将多个CPS(Cost Per Sale,按销售付费)广告合并在一起,通过一个平台进行管理和推广的系统。
|
大数据 开发者 程序员
连接真实世界,高德地图背后的算法演进和创新
出行是生活的重要部分。我们都习惯了出门用导航,但一个导航App背后,需要什么样的数据和算法来支撑呢?算法又如何来推动出行体验的进步和创新呢?在阿里CIO学院攻“疫”技术公益大咖说的第十四场直播中高德地图首席科学家任小枫将为大家讲解高德地图背后的算法的演进和创新,分别从地图制作、搜索推荐、路径规划、时
11756 1
|
4月前
|
数据采集 数据挖掘 测试技术
Go与Python爬虫实战对比:从开发效率到性能瓶颈的深度解析
本文对比了Python与Go在爬虫开发中的特点。Python凭借Scrapy等框架在开发效率和易用性上占优,适合快速开发与中小型项目;而Go凭借高并发和高性能优势,适用于大规模、长期运行的爬虫服务。文章通过代码示例和性能测试,分析了两者在并发能力、错误处理、部署维护等方面的差异,并探讨了未来融合发展的趋势。
339 0
|
Ubuntu Linux 虚拟化
使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)
使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)
3129 0
使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)
|
8月前
|
机器学习/深度学习 人工智能 计算机视觉
《Google Gemini 1.5 Pro:MoE架构如何重塑AI性能与效率》
Google Gemini 1.5 Pro采用混合专家系统(MoE)架构,突破传统模型“一刀切”模式,以专家团队形式精准处理不同任务。它能高效解析文本、图像、音频和视频等多模态数据,支持超长上下文理解(高达100万个token),在复杂任务中展现卓越性能。例如,分析电影时,图像、语言和音频专家协同工作,深入挖掘细节;处理402页登月记录时,准确提取关键信息。MoE架构动态分配计算资源,提升推理速度与效率,同时具备强大知识迁移能力,如快速学习稀有语言。这一创新为AI在医疗、金融等领域应用铺平道路,推动产业迈向新高度。
227 0
|
存储 算法 搜索推荐
数据结构与算法学习十七:顺序储存二叉树、线索化二叉树
这篇文章主要介绍了顺序存储二叉树和线索化二叉树的概念、特点、实现方式以及应用场景。
300 0
数据结构与算法学习十七:顺序储存二叉树、线索化二叉树
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
461 0
|
前端开发 JavaScript
响应式UI框架
响应式UI框架
288 0
响应式UI框架
|
应用服务中间件 nginx
Nginx命令配置到系统环境变量
Nginx命令配置到系统环境变量
|
IDE Java 开发工具
Lombok - Generating equals/hashCode implementation but without a call to superclass
Lombok - Generating equals/hashCode implementation but without a call to superclass
1813 0