物联网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

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

原文发布于微信公众号 - 智能计算时代(intelligentinterconn)

原文发表时间:2017-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客猴

爬虫与反爬虫的博弈

近来这两三个月,我陆续将自己学到的爬虫技术分享出来。以标准网络库 urllib 的用法起笔,接着介绍各种内容提供工具,再到后续的 scrapy 爬虫框架系列。我...

24220
来自专栏杨建荣的学习笔记

大分区表的手工并行优化

这段时间饱受大分区表的性能之苦,碰到最大的一个分区表有1个t左右,操作起来每个细节都需要格外小心,我这次和大家分享的案例应用的分区表不是很大,有80G左右。但是...

30640
来自专栏CDN及云技术分享

微型分布式架构设计范例

设计该系统初衷是基于描绘业务(或机器集群)存储模型,分析代理缓存服务器磁盘存储与回源率的关系。

1K280
来自专栏区块链

黑客网络攻击是通过怎样的手段进行

黑客可能会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息: (1)TraceRoute程序。 能够用该程序获得到达目标主机所要经过的网络...

21990
来自专栏张戈的专栏

php自动生成百度开放适配PC页-手机页pattern对应关系sitemap.xml

以前做百度开放适配一直是提交普通的 url 对应关系,这种方式有个缺点,就是必须每个页面的 url 关系都得兼顾,即有多少就得提交多少。 然而,很多网站并不是 ...

35090
来自专栏NetCore

微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github

不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加...

21970
来自专栏PHP在线

NoSQL数据库的分布式算法

原文出处: highlyscalable.wordpress.com 译文出处:juliashine 系 统的可扩展性是推动NoSQL运动发展的的主要...

35850
来自专栏北京马哥教育

原创投稿 | Linux操作系统下的文件系统

? 乐乐快跑,马哥门徒,马哥教育原创作者联盟成员,专注于运维领域知识分享,强于知识体系构建。 操作系统我们粗略的可以分为两层即内核层和shell层,内核层下面...

38180
来自专栏三丰SanFeng

负载均衡 - 综述

1 什么是负载均衡 网络的各个核心部件随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔...

32180
来自专栏施炯的IoT开发专栏

Application Architecture Guide 2.0 - CH 19 - Mobile Applications(1)

Chapter 19: Mobile Applications Objectives • Define a mobile application. • Unde...

21370

扫码关注云+社区

领取腾讯云代金券