找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

602

积分

0

好友

76

主题
发表于 5 天前 | 查看: 18| 回复: 0

学习PLC编程,尤其是结构化文本(ST)语言,IEC 61131-3标准无疑是最核心的参考依据,主流的PLC编程软件都遵循这个编程标准。

IEC 61131-3:2025 第四版标准封面

长期以来,PLC编程领域主要依据的是IEC 61131-3的第三版标准。该版本颁布于2013年,距今已有十余年。如今,第四版标准(2025年发布)终于出炉,内容更新多达数百页。

IEC 61131-3 第四版标准目录节选

具体细节请查阅标准原文。本文将聚焦于此次更新的几个关键变化,与大家分享。

指令表(IL)语言不再是标准组成部分

指令表(IL)语言已被最新版标准正式移除。这种语言本身使用频率不高,处理复杂算法的能力也有限。在其诞生之初,或许受限于当时PLC的算力,但如今PLC的硬件配置早已今非昔比,IL语言已不再是最佳的编程选择。

从常见的PLC编程语言分类来看,这一变化意味着标准从五种语言缩减为四种。

IEC 61131-3 标准中PLC编程语言的变化

此前的一项关于PLC编程语言偏好的投票结果显示,梯形图(LD)和结构化文本(ST)语言占据绝对主导地位,是当前PLC编程的主流。相比之下,IL指令表这类文本语言在表达能力和易用性上均不及ST,被标准弃用也在情理之中。

PLC编程语言使用偏好调查结果

当然,标准不再包含IL,并不意味着PLC制造商必须立刻从其软件中移除对它的支持,但这明确了未来的发展方向。

八进制字面量支持被取消

除了整型字面量(如 -43)、实数字面量(如 -43.8)、二进制字面量(如 2#1101_0110)和十六进制字面量(如 16#E26B)外,第三版标准还支持八进制字面量(如 8#267)。第四版标准已不再支持八进制字面量。实际上,在第三版中,八进制字面量已被标记为“已弃用”。

IEC 61131-3 标准中的字面量类型示例

新增互斥锁(MUTEX)和信号量支持

标准的第6.9章新增了关于“并发执行的同步”的内容,介绍了当多个程序(或任务)需要访问共享内存区域时,应如何通过互斥锁(MUTEX)和信号量(Semaphore)等机制进行协调。这对于传统PLC编程工程师而言,可能是一个相对陌生的概念。

下面的示例代码展示了如何在IEC 61131-3程序中使用互斥锁来保护对全局变量G的访问:

IEC 61131-3 第四版中互斥锁(MUTEX)使用示例代码

PROGRAM P
VAR TEMP
T: INT;
END_VAR
MUTEX_LOCK(M); // 加锁
T:= G; // 读
T:= T+1; // 修改
G:= T; // 写
MUTEX_UNLOCK(M); // 解锁
END_PROGRAM

CONFIGURATION C
VAR GLOBAL
M: MUTEX;
G: INT;
END_VAR

RESOURCE R1 ON CPU1
TASK T1(INTERVAL:= T#1ms, PRIORITY:= 1);
TASK T2(INTERVAL:= T#1ms, PRIORITY:= 1);
PROGRAM P1 with T1: P();
PROGRAM P2 with T2: P();
END_RESOURCE

RESOURCE R2 ON CPU2
TASK T3(INTERVAL:= T#1ms, PRIORITY:= 1);
PROGRAM P3 with T3: P();
END_RESOURCE
END_CONFIGURATION

从这个新增章节可以看出,未来PLC编程将越来越趋近于传统的IT软件开发思维。随着PLC日益智能化、云化,需要处理的数据量也越来越大,引入成熟的并发控制机制是不可避免的趋势。

学无止境,我们必须不断向前。

此外,第四版标准还增加了一些其他内容,例如:

  • 增加了 USTRINGUCHAR 类型及相关的转换函数。
  • TRUNC 函数不再被使用。
  • 新增了 LEN_MAXLEN_CODE_UNIT 函数等。

具体细节请查阅最新的标准文档。此次IEC 61131-3标准的重大更新,标志着工业自动化领域的编程标准正朝着更现代化、更严谨的方向演进。想了解关于编程范式、工业软件架构的更多深入讨论,欢迎前往 云栈社区 与广大开发者交流。

参考链接:

  1. https://stefanhenneken.net/2025/06/11/iec-61131-3-comparison-of-edition-3-and-edition-4/
  2. https://cdn.standards.iteh.ai/samples/iec/iec-61131-3-2025/147ba9c730934a119d196fa0473464f8/iec-61131-3-2025.pdf



上一篇:Python异步接口设计核心:从协程协作到稳定实践
下一篇:编程入门:Hello World为何成为全球通行的第一课与技术哲学
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 04:07 , Processed in 0.275960 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表