### IEC61131详述
#### 引言
IEC61131标准作为可编程逻辑控制器(PLC)编程语言的重要规范,为自动化领域提供了一套统一的编程方法。此标准旨在提高不同制造商之间的兼容性和互操作性,同时也确保了程序的质量与可靠性。
#### IEC61131标准的目标与益处
- **目标与益处**:IEC61131标准的主要目标是为工业控制系统提供一套统一、开放且易于理解的编程语言框架。通过这套标准,可以实现不同制造商的产品之间的兼容性,降低用户的学习成本,并提高程序的可维护性。
- **制造商**:该标准使制造商能够开发出符合国际标准的产品,增强产品的市场竞争力。
- **客户**:客户可以从更广泛的产品选择中受益,同时减少由于设备兼容性问题带来的额外开销。
- **历史与组成部分**:IEC61131标准自发布以来经历了多次修订和完善,目前包括多个部分:
- 第一部分定义了基本概念和技术背景;
- 第二部分规定了编程语言的结构和语法规则;
- 第三部分则是本文件的重点,详细介绍了IEC61131-3中的核心概念,如程序组织单元(POU)、函数块等。
#### PLCopen组织
- **宗旨**:PLCopen组织致力于推广IEC61131标准的应用和发展,促进自动化领域的技术创新和标准化进程。
- **委员会与活动领域**:PLCopen下设多个技术委员会,负责制定标准、技术指导文件等工作。这些委员会的工作覆盖了从基础技术研究到具体应用案例的各个方面。
- **成果**:PLCopen在推动IEC61131标准的普及过程中取得了显著成就,包括但不限于认证机制的建立以及用户程序交换格式的制定。
#### IEC61131-3的核心构建模块
- **简介**:IEC61131-3标准的核心构建模块包括程序组织单元(POU)、函数块、函数和程序等。这些组件共同构成了一个完整的编程环境,支持多种编程语言。
- **POU的结构**:POU由声明部分和代码部分组成。声明部分定义了POU中的变量类型及其属性;代码部分则包含了具体的执行指令。
- **IL示例**:使用指令列表(IL)编写的一个简单示例被用来说明如何定义一个POU并实现其功能。
- **POU分配**:讨论了如何将不同的POU分配给特定的PLC进行处理,以及这种分配方式对程序性能的影响。
- **程序组织单元(POU)**:POU是IEC61131-3中的基本编程单元,它可以是程序、函数或函数块。每个POU都有自己的接口,用于与其他POU交互。
- **POU元素**:POU的元素主要包括声明部分和代码部分。
- **声明部分**:定义了POU内部使用的变量类型和属性。
- **代码部分**:包含了具体的执行指令。
- **函数块(FB)**:函数块是一种特殊的POU,它不仅包含执行代码,还具有存储状态的能力。这使得函数块能够保持状态信息,即使是在多次调用之间也是如此。
- **实例化**:介绍如何创建函数块的实例,并解释了“实例”的概念。
- **重用性与面向对象特性**:函数块支持重用和面向对象编程的特点,可以创建可复用的组件来简化编程过程。
- **变量类型**:在函数块中,变量可以分为输入变量、输出变量和静态变量等多种类型。
- **函数**:与函数块类似,但不具备状态保存能力。主要用途是执行计算任务,并返回结果值。
- **程序**:一种特殊的POU,用于组织和控制其他POU的执行顺序。
- **调用POU**:探讨了如何调用函数和函数块,包括相互调用、递归调用、形式参数传递等多种情况。
- **相互调用**:允许不同的POU之间互相调用,以实现复杂的功能组合。
- **递归调用**:虽然递归调用在某些情况下非常有用,但由于可能引发堆栈溢出等问题,IEC61131-3标准禁止使用递归调用。
- **形式参数传递**:讨论了如何在调用POU时传递形式参数,包括省略输入参数或改变参数顺序的情况。
- **间接调用**:介绍了一种通过变量间接调用POU的方法。
- **POU特征总结**:回顾了POU的各种特性,包括类型、调用方式、变量管理等内容。
#### 变量、数据类型和通用元素
- **简单语言元素**:介绍了IEC61131-3中的基本语言元素,如保留关键字等。
- **保留关键字**:列出了一系列在编程过程中具有特殊意义的词汇,这些词汇不能用作标识符。
- **文字和标识符**:明确了IEC61131-3中文字和标识符的规则。
- **文字**:指定了用于表示数值、字符串等的文本表示形式。
- **标识符**:定义了标识符的命名规则。
- **数据类型与变量的意义**:深入探讨了数据类型对变量的影响,包括直接PLC地址、符号以及变量之间的转换。
- **从直接PLC地址到变量**:解释了如何从直接的PLC地址映射到变量的过程。
- **数据类型决定变量属性**:不同的数据类型赋予了变量不同的属性,如范围、精度等。
- **类型特性的变量使用**:根据变量的数据类型,确定了其在程序中的特定用途。
- **变量自动映射至PLC**:介绍了如何自动将变量映射到PLC硬件上,以便于程序的执行。
- **数据类型**:详细说明了IEC61131-3中可用的各种数据类型,包括基本类型、复合类型等,并讨论了它们在实际编程中的应用。
通过以上内容的详细介绍,我们可以看出IEC61131-3标准不仅为PLC编程提供了一个强大的框架,而且还在不断发展中,以适应自动化行业的最新需求。