图片来源:Yaskawa
IEC 61131-3为用户在自动化流程的各个阶段开发高效解决方案提供了可靠的框架,并可用于支持PLCopen功能库。
PLC编程语言标准IEC 61131-3为用户提供了一个可靠的框架,在自动化过程的各个阶段开发高效的解决方案。该标准包括三种图形和两种文本编程语言,用于支持为各种应用和通信设计的PLCopen功能库,并提供持续支持,创建可重复使用的代码以满足不同的构建需求。PLCopen为程序员带来了三个好处:支持多种编程语言、程序优化和故障排除支持。
01 支持多种编程语言
虽然无法保证PLC之间的代码可移植性或代码互操作性,但该标准支持常用的语言,包括三种图形编程语言:梯形图(LD)、功能块图(FBD)和顺序功能图(SFC),以及两种文本编程语言:结构化文本(ST)和指令列表(IL)。
在需要升级改造时,这种灵活性允许用户保持编码的一致性。如果正在启动一个新项目,他们可以选择自己喜欢的编程方法,这也会有所帮助。在某些示例中,用户可能会发现从结构化文本子程序中创建功能块,将 PLCopen 功能块集成到逻辑中以提高性能,或根据故障排除程序重组逻辑是非常有益的。
该标准支持多种语言,可以运行和实施各种应用的PLCopen功能库,同时用户可以选择他们喜欢的语言编程。
▲图1:在ST:FB中实例化的PLCopen FB Byte_To_Buf,用于处理Modbus通信传感器
输出/输入命令的数据交换。
02 程序优化:集成和复用
在符合IEC 61131-3标准的编程环境中集成的PLCopen库,为用户提供了指南和最佳实践,以帮助开发高效和可重复使用的PLC程序,同时还提供了其他工具供用户将PLCopen指南调整到代码中,以满足PLC程序所需的内存使用或性能等指标。
PLCopen功能库的设计和创建,是为了根据配置需求支持和监控项目的逻辑、运动控制、安全、OPC UA-HMI和XML(项目源代码导出),以及满足在归位、协调运动、扭矩控制、凸轮和传动等方面的应用需求。这些广泛的功能旨在支持用户过程的每一步,缩短编程时间。
PLC编程语言标准IEC 61131-3还允许用户创建可用于保留/恒定值的变量,同时将其分配为全局、本地、外部、临时或输入/输出(I/O)映射。该标准在创建变量方面的开放性使得使用标准功能块(计数器、定时器等)和函数(类型转换、位字符串、INTEGER、REAL 等)定制PLCopen库成为一项可行的任务。对函数/功能块的调整还能帮助项目更高效地运行,同时用户还可以在其他项目部分重复使用,从而减少代码量。
▲图2: PLCopen FB MC_ReadAxisError可用于确定运动控制轴的错误,
ErrorID值可提供进一步的描述和分辨率。
如果充分利用PLC编程标准,用户还可以分配基于CPU的配置资源,以根据默认、循环、事件或系统将程序分配给任务。用户可以为分配的程序分配任务间隔时间、优先级和看门狗计时。配置资源功能是确保应用程序满足所需时间和执行期望的有益工具。
PLCopen和PLC编程语言IEC 61131-3指南为用户优化项目提供了可能,同时为完成配置、定制和故障排除提供了额外的措施。
03 支持故障排除功能
作为其开发的一部分,在怨声载道的编程环境中运行PLCopen,可为用户提供解决许多PLCopen库应用程序问题的工具,包括发出错误警报的嵌入式逻辑、具有潜在解决方案的错误ID/代码。用户还可以使用该标准的工具,进一步排除PLCopen的语法错误、逻辑错误、参数设置错误等。
在充分利用PLCopen故障排除功能的过程中,用户可以实现他们自己的符合IEC 61131-3的响应,以根据他们的需求采取相应的行动,例如监控外部硬件问题(如果他们知道必要的参数)、数据类型和值。它们还可以为生产过程创建错误报警和警告。对于运动指令,PLCopen指定了一个状态图,可以为各种状态转换状态图,使用户可以据此确定轴/组处于什么状态。这允许持续的状态监测,以提供额外的预防措施。
▲图3: Plopen运动状态图:错误、归位、停止等的监控。
在符合IEC 61131-3的编程环境中,用户可以使用各种工具来调试离线和在线格式。在线工具可以监控输入或输出值,同时检查来自设备或传感器的状态更新,或者用户程序中的执行流。如果用户需要进一步的诊断,使用兼容的图形工具也可以帮助解决意外行为。在离线设置中,用户可以比较项目,管理项目版本和跟踪修改,确保项目保持正确配置,变量具有合适的数据类型、范围、内存分配以及必要的初始化。
虽然在符合IEC 61131-3编程环境和PLCopen解决方案中有许多工具可用,但在下载到物理硬件之前,修改项目代码以找出潜在错误始终是最佳做法。
关键概念:
■ 了解PLCopen支持的编程语言类型。
■ 了解程序优化的好处以及用户如何集成和复用代码。
■ PLC编程需要能够帮助用户做出更好决策的框架和结构。
思考一下:
您如何在编程中使用PLCopen,它扮演什么角色?