工业控制编程语言入门

简介: 工业控制编程语言入门

IEC 61131-3标准的产生与特点


传统的PLC编程语言的不足

由于PLC的I/O点数可以从十几点到几千甚至上万,因此其应用范围极广泛,大量用于从小型设备到大型系统的控制,是用量最大的一类控制器设备,众多的厂家生产各种类型的PLC产品或为之配套。由于大量的厂商在PLC的生产、开发上各自为战,造成PLC产品从软件到硬件的兼容性很差。在编程语言上,从低端产品到高端产品都支持的就是梯形图,它虽然遵从了广大电气自动化人员的专业习惯,具有易学易用等特点,但也存在许多难以克服的缺点。虽然一些中、高端的PLC还支持其他一些编程语言,但总体上来讲,传统的以梯形图为代表的PLC编程语言存在许多不足之处,主要表现在以下方面。

(1)梯形图语言规范不一致。虽然不同厂商的PLC产品都可采用梯形图编程,但各自的梯形图符号和编程规则均不一致,各自的梯形图指令数量及表达方式相差较大。

(2)程序可复用性差。为了减少重复劳动,现代软件工程特别强调程序的可重复使用性,而传统的梯形图程序很难通过调用子程序实现相同的逻辑算法和策略的重复使用,更不用说同样的功能块在不同的PLC之间使用。

(3)缺乏足够的程序封装能力。一般要求将一个复杂的程序分解为若干个不同功能的程序模块。或者说,人们在编程时希望用不同的功能模块组合成一个复杂的程序,但梯形图编程难以实现程序模块之间具有清晰接口的模块化,也难以对外部隐藏程序模块的内部数据从而实现程序模块的封装。

(4)不支持数据结构。梯形图编程不支持数据结构,无法实现将数据组织成如Pascal、C语言等高级语言中的数据结构那样的数据类型。对于一些复杂控制应用的编程,它几乎无能为力。

(5)程序执行具有局限性。由于传统PLC按扫描方式组织程序的执行,因此整个程序的指令代码完全按顺序逐条执行。这对于要求即时响应的控制应用(如执行事件驱动的程序模块),具有很大的局限性。


(6)对顺序控制功能的编程,只能为每一个顺控状态定义一个状态位,因此难以实现选择或并行等复杂顺控操作。

(7)传统的梯形图编程在算术运算处理、字符串或文字处理等方面均不能提供强有力的支持。

由于传统编程语言的不足,影响了PLC技术的应用和发展,非常有必要制定一个新的控制系统编程语言国际标准。IEC


61131-3标准的产生

IEC英文全称是International Electro-technical Commission,中文名称是国际电工技术委员会。IEC成立于1906年,是世界上最早的国际性电工标准化机构,总部设在瑞士日内瓦,负责有关电工、电子领域的国际标准化工作。IEC 61131-3是IEC 61131国际标准的第三部分,是第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。该标准得到了世界范围的众多厂商的支持,但又独立于任何一家公司。该国际标准的制定,是IEC工作组在合理地吸收、借鉴世界范围的各PLC厂家的技术和编程语言等的基础之上,形成的一套编程语言国际标准。

IEC 61131-3国际标准得到了包括美国A-B公司、德国西门子公司等世界知名大公司在内的众多厂家的共同推动和支持,它极大地提高了工业控制系统的编程软件质量,从而也提高了采用符合该规范的编程软件编写的应用软件的可靠性、可重用性和可读性,提高了应用软件的开发效率。它定义的一系列图形化编程语言和文本编程语言,不仅对系统集成商和系统工程师的编程带来很大的方便,而且对最终用户同样也带来很大的好处。它在技术上的实现是高水平的,有足够的发展空间和变动余地,能很好地适应未来的进一步发展。IEC 61131-3标准最初主要用于可编程序控制器的编程系统,但由于其显著的优点,目前在过程控制、运动控制、基于PC的控制和SCADA系统等领域也得到越来越多的应用。总之,IEC 61131-3国际标准的推出,创造了一个控制系统的软件制造商、硬件制造商、系统集成商和最终用户等多赢的结局。

IEC 61131国际标准包括以下8个部分。

Part 1:综述。

Part 2:硬件。

Part 3:可编程语言。

Part 4:用户导则。


Part 5:通信。

Part 6:现场总线通信。

Part 7:模糊控制编程。

Part 8:编程语言的实施方针。

在这8个部分中,IEC 61131-3是IEC 61131标准中最重要、最具代表性的部分。IEC 61131-3国际标准是下一代PLC的基础。IEC 61131-5是IEC 61131的通信部分,通过IEC 61131-5可实现可编程序控制器与其他工业控制系统,如机器人、数控系统和现场总线等的通信。

IEC 61131-3的制定的背景:PLC在标准的制定过程中正处在其发展和推广应用的鼎盛时期,而编程语言越来越成为其进一步发展和应用的瓶颈之一。另外,PLC编程语言的使用具有一定的地域特性。在北美和日本,普遍运用梯形图语言编程;在欧洲,则使用功能块图和顺序功能图编程;在德国和日本,又常常采用指令表对PLC进行编程。为了扩展PLC的功能,特别是加强它的数据与文字处理及通信能力,许多PLC还允许使用高级语言(如BASIC、C)编程。同时,计算机技术特别是软件工程领域有了许多重要成果。因此,在制定标准时就要做到兼容并蓄,既要考虑历史的传承,又要把现代软件的概念和现代软件工程的机制应用于新标准中。IEC 61131-3规定了两大类编程语言:文本化编程语言和图形化编程语言。前者包括指令表(Instruction List,IL)语言和结构化文本语言(Structured Text,ST),后者包括梯形图语言(Ladder Diagram,LD)和功能块图(Function Block Diagram,FBD)语言。至于顺序功能图(Sequential Function Chart,SFC),该标准未把它单独列为编程语言的一种,而是将它在公用元素中予以规范。这就是说,不论在文本化语言,或者在图形化语言,都可以运用SFC的概念、句法和语法。于是,在现在所使用的编程语言中,可以在梯形图语言中使用SFC,也可以在指令表语言中使用SFC。


自IEC 61131-3正式公布后,它获得了广泛的接受和支持。首先,国际上各大PLC厂商都宣布其产品符合该标准,在推出其编程软件新产品时,遵循该标准的各种规定。其次,许多稍晚推出的DCS产品,或者DCS的更新换代产品,也遵照IEC61131-3的规范,提供DCS的编程语言,而不像以前每个DCS厂商都搞自己的一套编程软件产品。再次,以PC为基础的控制作为一种新兴控制技术正在迅速发展,大多数基于PC的控制软件开发商都按照IEC 61131-3的编程语言标准规范其软件产品的特性。最后,正因为有了IEC 61131-3,才真正出现了一种开放式的可编程控制器的编程软件包,它不具体地依赖于特定的PLC硬件产品,这就为PLC程序在不同机

相关文章
|
5月前
|
消息中间件 存储 Kafka
分布式消息中间件设计与实现
本文深入探讨了消息中间件的核心功能实现与高并发、高可用设计。在生产者设计中,涵盖消息构造、序列化、路由策略及可靠性保障(如ACK机制)。消费者部分分析了拉取/推送模式、分区分配与消息确认机制。同时,Broker作为核心组件,负责消息路由、存储和投递,并通过索引技术实现快速检索。 高并发设计方面,重点讨论了文件存储(顺序写入、分段存储)、日志结构存储及负载均衡策略(如哈希分区、轮询分区)。为确保高可用性,文章详细解析了主从复制、故障转移机制以及同城/异地多活容灾方案。
|
3月前
|
监控 安全 数据安全/隐私保护
教你如何修复硬盘坏道,一文看懂实用方法
电脑变卡、文件打不开、系统崩溃?可能是硬盘坏道所致!本文教你如何判断硬盘是否存在坏道,并提供多种修复方法,包括DiskGenius、CHKDSK及厂商工具等,助你轻松应对逻辑坏道与物理坏道问题。修复前请备份数据、保持供电稳定,若坏道频发,建议及时更换硬盘。了解硬盘保养技巧,延长使用寿命,保障数据安全。
|
Ubuntu
百度搜索:蓝易云【ubuntu18.04下安装PCL教程。】
现在,您已经成功在Ubuntu 18.04上安装了PCL。您可以使用PCL库进行点云处理和分析,以及开发自己的应用程序。根据您的具体需求,您可能还需要安装其他PCL相关的软件包和工具。
223 1
|
Prometheus 监控 Cloud Native
Docker的监控-Prometheus(普罗米修斯)
Docker的监控-Prometheus(普罗米修斯)
1230 0
|
数据采集 测试技术 数据处理
LabVIEW控制PLC的实现方式
LabVIEW控制PLC的实现方式
499 1
|
12月前
|
存储 固态存储 安全
阿里云服务器X86计算架构解析与X86计算架构云服务器收费价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中X86计算是用户选择最多的一种架构,本文将深入探讨阿里云X86计算架构的云服务器,包括其技术特性、适用场景、性能优势以及最新价格情况。
|
11月前
|
敏捷开发 数据可视化 API
6款高效的任务看板管理工具,哪款能提升团队协作效率
本文对比了六款流行的任务看板管理工具:板栗看板、Trello、Asana、Monday.com、ClickUp 和 Jira。从功能、易用性、价格等方面进行了详细分析,帮助用户根据团队规模、项目复杂度及预算选择最适合的任务管理工具。
6款高效的任务看板管理工具,哪款能提升团队协作效率
|
存储 Java 关系型数据库
MyBatisPlus中的TypeHandler | 自定义字段类型转换Handler
MyBatisPlus中的TypeHandler | 自定义字段类型转换Handler
2085 0
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。
|
编解码 测试技术 数据库
图书馆管理系统系统分析与设计(上)
图书馆管理系统系统分析与设计(上)
604 0