IEC 61131-3 编辑器已经通过 TwinCAT 无缝集成到 Visual Studio® 环境中
一直以来,可编程逻辑控制器(PLC)始终在工业自动化控制领域占领着主导地位,为各种各样的自动化控制设备提供了非常可靠的控制应用。自 1994 年起,人们一直使用 IEC 61131-3 对控制系统进行标准化编程。TwinCAT PLC 软件也支持这一标准,它不仅描述 PLC 编程语言,还描述了完整的设备控制逻辑架构,以及任务、代码块、数据类型和编程语言等内容。
IEC 61131-3 标准目前共规定了 5 种编程语言:其中两种文本语言,三种图形化语言。TwinCAT PLC 支持使用所选择的语言或不同语言的组合。类似汇编语言的指令表(IL)编程语言已经很少有人使用。人们主要使用结构化文本(ST)高级语言,它类似于 Pascal 语言。功能块图(FBD)和梯形图(LD)等图形语言都是相当传统的 PLC 编程语言。此外,还有顺序功能图(SFC)语言,它能够轻松实现复杂步骤链的图形化编程。
灵活的工作流程和快速优化
在 TwinCAT XAE 开发环境中,程序、功能块或功能等各个块都使用不同的语言创建。 执行始终是以一个任务为起点。任务在一定的时间(周期时间)内被循环处理。任务的优先级决定了进程中是否可能会出现中断。因此,一个优先级较高的任务可以(如果它已被安排)中断一个优先级较低的任务。TwinCAT 实时内核支持这种抢占式调度。一个任务还负责通过现场总线从 PLC 采集来自传感器的输入信号,并从 PLC 向相应的执行器发送输出信号。为此,每个任务都有一个过程图像,其中列出了任务的所有输入和输出,以及它们与配置中硬件的输入和输出的连接方式。有了“独立的”PLC,在必要时,可以将 PLC 项目与实际的硬件配置分开。通过这种方式,可以建立一个工作流程,让 PLC 开发人员不能修改硬件配置,电工不能修改 PLC 代码。
通常,一旦创建好控制程序,就必须在调试阶段对其进行“优化”,即必须进行小的调整,并消除序列中的错误。首先,所有当前值都在各个语言的编辑器中显示。工程师还可以通过监测顺序流看到当前正在穿越哪些线路或网络,从而能够非常快速地概览在所有特定时间内发生的情况。通过设置变量,可以对当前流程进行修改,并针对测试目的设置为所需的方向。通过 TwinCAT Scope 示波软件可以轻松地以图形方式表示变量之间更复杂的依赖关系。TwinCAT PLC 的特点是可以在不中断程序执行的情况下改变序列。这一功能被称为“在线修改”,具有很大的优势,因为在某些情况下,现场条件不允许 PLC 停止运行,一旦停机,可能会导致当前产线上的产品成为废料,造成高昂的损失。
工程师团队的所有人都需要参与调试工作,则可以激活 TwinCAT 中 PLC 项目的多用户功能。该功能支持系统自动保存下载到控制系统的 PLC 项目中的所有版本状态的工作流程。即当登录一个已经修改过的版本时,可以在 TwinCAT Project Compare 工具中显示与当前激活状态的比较结果。这样可以确保在线修改过程中不会覆盖其他调试工程师已经导入的修改内容,也避免了手动交换和调整工作。多用户功能在后台使用 Git 来存储和合并版本状态,由于它已经深度集成在开发工作流程中,因此用户无需花费额外的工作量。数据库可以存储在控制设备本身或单独的 PC 上。
软件质量有保证
与 IT 领域的软件开发工作一样,控制工程师必须确保 PLC 软件的质量。如何使用标准的 IT 打造“好”的软件呢?一方面,工程师们可以尝试在概念阶段封装功能块,并尽可能多地重复使用这些功能块,即便只是稍作修改。此时,可以借助面向对象编程(OOP)的概念。TwinCAT PLC 为此提供了一个 UML 编辑器,它支持用于规划及实施的类图以及状态图。此外,应该对软件应用程序的版本进行控制,即记录每一次修改,提供作者信息和注释,并能够随时恢复。开发人员可以通过 Visual Studio® 与源代码版本控制系统连接的集成式接口自由选择他们所需的系统。此外,集成的静态代码分析可以通过事先定义的编码规则保证代码的统一性和高质量。静态分析功能既可以被手动触发,也可以在代码生成过程中自动执行。
软件自动测试是质量保证中的另一个重要部分,它可以通过现有的接口任意进行单元、集成和系统测试的组合。最后,当软件已经在设备上执行并可靠运行时,TwinCAT PLC Profiler 可用于优化软件。标记会自动添加到 PLC 代码中,并对执行时间进行测量和分析。例如,通过这种方式可以进行热路径分析,以确定比较耗时的程序部分及进行其它详细分析。总而言之,TwinCAT Engineering 可在整个软件生命周期中为 PLC 开发人员提供支持。