PLC编程标准IEC61131-3教程系列(1)-总览
本文是PLC国际标准IEC61131-3系列教程的第一节,该系列教程着重介绍PLC的编程标准。目前很多的PLC编程都遵循IEC61131-3,学会这个标准有助于我们在众多的PLC产品中找到一种共通的规则,从而缩短从一种PLC产品到另一种PLC产品的学习时间和成本。本系列教程介绍的内容是与硬件无关的、并采用理论+实践的方式,会使用Codesys、OpenPLC等通用平台,也会介绍一些基于这些平台的产品,比如博士的BODAS、倍福的TwinCAT3等。本节课我们先概览性的认识下IEC61131。
1993年,国际电工委员会(International Electrotechnical Commission,简称IEC)发布了用于工业控制领域——可编程逻辑控制器(PLC)的国际标准,命名为:IEC61131 。
IEC61131是一个标准集,涵盖了PLC的硬件、软件、通信、安全等方方面面,并随着时间的发展添加了一些新的子集。目前(2020年)最新的IEC61131标准包括10个子集,具体如下:
IEC61131-1:通用信息(General information)。该部分对IEC61131标准的术语进行了定义,介绍了标准的适用范围(PLC及其编程/测试设备,人机界面等)及其它通用信息。目前最新的版本是2003年5月发布的第2版;IEC61131-2:设备要求与测试(Equipment requirements and tests)。该部分对PLC及其外围设备的操作、机械性能、供电、功能、电磁兼容性等方面提出具体的要求,并明确了测试验证的方法。目前最新的版本是2017年发布的第4版;IEC61131-3:编程语言(Programming languages)。该部分明确了了PLC的编程语言、语法、程序结构、数据类型、指令、函数等关于编程的方方面面,为PLC编程提出了明确的、可操作的指导,本课程要介绍的就是这个标准的内容,目前其最新版本是2013年发布的第3版;IEC61131-4:用户导则(User guidlines)。该部分规定了为PLC产品的最终用户(比如,你我)提供技术报告的指导,其目的是方便PLC厂家与PLC最终用户之间的沟通交流,帮助用户选择合适的PLC产品。目前最新版本是2004年发布的第2版;IEC61131-5:通信(Communications)。该部分定义了PLC与其它控制器之间使用MMS( Manufacturing Message Specification)协议进行数据通信的规范,目前最新版本是2000年发布的第1版;IEC61131-6:功能安全(Functional Safety)。该部分定义了PLC及其外围设备成为功能安全系统所需要满足的条件,能够满足该标准要求的PLC、传感器、执行器、软件及逻辑系统可视为是功能安全系统。目前最新的版本是2012年发布的第1版;IEC61131-7:模糊控制编程(Fuzzy control programming)。该部分定义了PLC用于模糊控制的基本编程元素,目前最新的版本是2000年发布的第1版;IEC61131-8:IEC 61131-3语言的应用和实现导则(Guidelines for the application and implementation of programming languages)。该部分是一个技术报告,提供了IEC61131-3使用参考及编程语言的应用规范,还推荐了一些用于编程及调试的工具。目前最新版是2017年发布的第3版;IEC61131-9:小型传感器和执行器单滴数字通信接口(Single-drop digital communication interface for small sensors and actuators)。该部分定义了一个用于小型传感器/执行器之间进行单滴数字通信的接口,其实就是我们知道的IO-Link。其最新版本是2013年发布的第1版。IEC61131-10:PLC开放XML交换格式(PLC open XML Exchange Format)。该部分定义了一个基于XML语言的数据格式,可用于符合IEC61131-3的程序项目的导入或导出,这可以使一个符合IEC61131-3标准的项目可在不同的编程环境下使用。该标准允许使用不同编程语言(IL、ST、LD、FBD、SFC)编写的组态、数据类型及程序组织单元(POU)相互转换。该标准是2019年4月份新增加到IEC61131中的,与之前的PLCopen 的XML数据交换的格式不兼容。最后要说明的是,IEC61131是推荐标准,不是强制标准。PLCopen国际组织是推动IEC61131标准在工业领域应用的主要机构,确切的说主要是IEC61131-3标准的推广和应用。该组织在中国设有分支机构:PLCopen China,其官网地址为:http://plcopen.org.cn。
好了,关于IEC61131-3的第一节课就介绍到这里,如果你喜欢这篇文章,可以去网站(https://www.founderchip.com/)下载本文PDF版本。点击【了解更多】查看更多技术文章。
PLC编程标准IEC61131-3教程系列(2)-软件模型
IEC61131-3为PLC编程开发定义了一个软件模型,该模型描述了如何采用分层/分级的方法将一个复杂的项目分解成若干小的组成部分,并定义了各部分之间的接口规范。今天这篇文章,我们来介绍下这个软件模型,并结合西门子PLC、Codesys软PLC分析下该模型。
封面
下面这张图就是IEC61131-3定义的软件模型:
软件模型
从图片中可以看出,该软件模型定义了配置、资源、任务、程序组织单元(功能、功能块、程序)、全局变量、访问路径等等。我们来详细介绍下:
1、配置(Configuration)
配置位于软件模型的最上层,可以理解成一整套控制系统。对于小型控制系统而言,比如一个由CPU ST20组成的简单控制系统,属于一个配置;而对于复杂控制系统,比如一个由多个CPU组成的、具有分布式模块的控制系统,也属于一个配置。配置就是一套控制系统,或者是一套设备,在Codesys V3版本之后直接将其称为“设备”;一个配置由一个或几个资源组成。
2、资源(Resource)
资源位于软件模型的第二层,用于支持任务的运行。对于一个小型控制系统,比如上面说的CPU ST20系统,资源可以理解为CPU本身。对于具有多个CPU的大型系统,每一个CPU都是一个资源。资源可以包含多个任务、程序组织单元等。在Codesys V3版本之后,资源被称为“应用”。
3、任务(Task)
任务是程序的调度者,用来执行一个或多个程序(Program)。任务分为很多类型,比如:主任务、周期性执行的任务、由中断触发的任务等等。西门子PLC中的组织块就属于任务的角色,OB1相当于主任务、OB30~OB38属于周期性执行的任务、OB82属于诊断中断的任务等等;在Codesys中,任务分为周期型(Cyclic)、事件型(Event)、自由运行型(Freewheeling)、状态触发型(Status)。周期型任务是以固定时间间隔来执行;事件触发型任务在事件变量的上升沿开始执行;自由运行任务其内部程序在任务启动时就开始执行,程序的执行不受扫描周期的影响;状态触发型任务当其状态变量变为TRUE时开始执行;任务具有不同的优先级,优先级高的任务可以中断优先级低的任务而抢先执行;
4、程序组织单元(Program Organization Unit,POU)
程序组织单元是用户程序的基本单位,包括变量声明区和代码区两部分。变量声明区用来定义该POU中使用的变量的名称、类型及初始值;代码区是使用IEC61131-3推荐的五种编程语言写的程序代码。
IEC61131-3定义了三种程序组织单元:功能(Function)、功能块(Function Block)和程序(Program)。
功能(Function)是包含局部变量和指令的代码,可以设置输入/输出参数。功能没有静态变量,因此每次调用都会产生同一个结果;
功能块(Function Block)与功能的区别在于它有属于自己的存储区,可以存放静态变量。功能块也可以设置输入/输出参数,但由于程序代码中静态变量可能发生变化,因此对于功能块的调用并不一定产生同样的结果;
可以将程序中经常使用的代码(比如电机运行控制)写成功能或者功能块,这样就可以反复调用。既能节省项目编程的时间,又提高了程序的可读性,体现了该软件模型将复杂任务分解成小的简单模块的思想。
程序(Program)可以分为主程序与子程序,可以被任务启动,并调用功能或者功能块。程序中可以定义全局变量、地址映射、局部变量等等;
5、全局变量、访问路径
全局变量用于程序组织单元之间交互数据,访问路径提供了当前配置对外通信的接口。
好了,关于IEC61131-3的软件模型就先介绍到这里。后续文章我们会继续该标准的介绍。
相关问答
plc执行国标标准?
plc执行的是国家标准IEC61131。而且PLC有五种标准化编程语言:顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST...plc...
plc不同品牌设备的编程区别?
不同厂家PLC的编程语言一般不一样的。主流的有西门子和三菱。不同厂家,不同型号的PLC的编程语言只能适应自己的产品。IEC中的PLC编程语言标准中有五种编程语...
sfc编程语言?
【SFC】顺序功能图(SequeentialFunctionChart),简称“SFC”,是一种新颖的、按照工艺流程图进行编程的图形编程语言。这是一种IEC标准推荐的首选编程语言,...
plc面试常问的问题?
问题1。有哪种基本类型的PLC?小型PLC模块化PLC问题2。目前流行的PLC品牌有哪些?ABB公司AB(Rockwell)PLC西门子PLC/德尔塔PLC/三菱PLC霍尼韦尔PLC...
plc几种编程语言?
PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。PLC的编程...
codesys支持哪六种编程语言?
Codesys是PLC软件编程工具CoDeSys是一种功能强大的PLC软件编程工具,它支持IEC61131-3标准IL、ST、FBD、LD、CFC、SFC六种PLC编程语言,用户可以在...
IEC是PLC吗?
不是IEC是国际电工委员会。国际电工委员会(IEC)成立于1906年,它是世界上成立最早的国际性电工标准化机构,负责有关电气工程和电子工程领域中的国际标准化工...
学plc一定要学st语言吗?
不一定要学st语言,可以学其他的,传统的PLC编程语言只有两种,指令表(IL)及梯形图(LD),有的称梯形逻辑图(LLD)。而今为便于各类型的工程技术人员都能使用...不...
什么是PLC?PLC的工作原理是什么?-149****6677的回答-懂得
PLC的工作原理:PLC是采用“顺序扫描,不断循环”的方式进行工作的。即在PLC运行时,CPU根据用户按控制要求编制好并存于用户存储器中的程序,按指令步...
codesys用的什么语言?
codesys用的IEC61131-3标准IL、ST、FBD、LD、CFC、SFC六种PLC编程语言。CodesysCODESYS是一种功能强大的PLC软件编程工具,它支持IEC6113...