首页 / 新闻资讯 / PLC编程语言对比
技术分享

PLC只会梯形图就够了?IEC 61131-3五种语言对比与ST结构化文本转型指南

PLC编程软件中梯形图与结构化文本ST代码对照
← 返回新闻列表

国内PLC编程领域有个普遍现象:九成电气工程师入行只学了梯形图,之后十年都在梯形图里解决所有问题。但当设备越来越复杂——几十个工步的装配线、上百个配方参数、数组化的温控通道、和上位机交换的结构体数据——纯梯形图项目会变得又长又绕,维护和移植都痛苦。事实上IEC 61131-3标准早就给PLC准备了五种编程语言,西门子博途、三菱GX Works3、欧姆龙Sysmac、Codesys平台全部支持。这篇文章逐个讲清五种语言的适用场景和短板,并给出梯形图工程师向结构化文本ST转型的具体路线。

一、为什么现在必须重新讨论PLC编程语言

过去PLC主要做继电器替代,几十个输入输出、几段联锁,梯形图画出来直观又好维护。现在的PLC事实上已经是工业计算机:一台S7-1500或iQ-R挂几十轴伺服、跑几十个PID、存几千个配方、通过OPC UA和上位机及MES交换复杂数据,程序里充满数组遍历、字符串处理、数据打包、状态机和算法计算。这类逻辑用图形化语言硬画,就像用算盘做矩阵运算,不是不能做,而是代价极高。

IEC 61131-3定义的五种语言分成两类:图形化的梯形图LD、功能块图FBD、顺序功能图SFC,文本化的结构化文本ST和指令表IL。标准的意义在于语义跨品牌通用,学会了ST的IF/FOR/CASE,在博途、Codesys、欧姆龙之间切换成本很低。需要先破除一个误区:五种语言不是谁取代谁,而是各管一摊,现代项目的正确姿势是混编——让每种逻辑用最合适的语言表达,而不是用一种语言打天下。

二、LD梯形图:继电器血统的优势与天花板

梯形图LD(Ladder Diagram)从继电器电路图演化而来,左右两条母线、触点串联并联驱动线圈,电气背景的人看它就像看电路图,无需编程基础就能读懂。它的优势在联锁逻辑上表现得淋漓尽致:启保停回路、互锁、急停链、模式切换,谁得电谁失电一眼可见,在线监控时通电的触点和线圈高亮变色,现场排故极其直观。这也是梯形图统治工厂几十年的根本原因——它为"开关量逻辑的可视化调试"而生。

梯形图的天花板同样明确。第一,数学运算笨拙:一个稍微复杂的公式要拖一堆功能块、拉一大堆中间变量,屏幕横出去几米。第二,没有数组循环,十个相同温控回路要复制十段代码,一百个通道就是灾难,改一处要改一百处。第三,状态机和分支多了以后,几十个网络之间靠置位复位互相跳转,读完整个程序说不清当前会走到哪。第四,字符串、查表、排序、报文组包这些和上位机交互的高频需求几乎无法完成。梯形图适合写"骨头上的筋"——直接关联IO的联锁和简单动作,不适合承载复杂业务逻辑,那正是结构化文本ST要接管的地带。

三、FBD功能块图:过程控制和安全回路的图形化表达

功能块图FBD(Function Block Diagram)用功能块和信号连线表达逻辑,AND/OR/RS触发器、定时器、计数器是基本元件,PID、滤波、运算函数都能封装成块,信号从左流向右。它和梯形图同属图形语言,但更适合"信号处理流":模拟量进来先做量程换算,再送滤波块,然后进PID块,输出限幅后给模拟量模块,这条链路在FBD里是一条清晰的流水线,用梯形图画则支离破碎。

FBD在过程控制行业(化工、水处理、暖通、食品饮料)用得最多,因为这类工厂的核心是回路调节而不是动作顺序。安全PLC编程几乎是FBD/LD的专属领域,安全功能块经过认证,逻辑必须图形化、可验证。FBD的短板是处理大量分支顺序和数据管理同样笨重,也不适合写复杂判断,它是专业场景的利器而不是万能语言。在博途和Codesys里,一个控制回路的运算部分用FBD封装成功能块,再被梯形图或ST调用,是很典型的混编方式。

四、SFC顺序功能图:多工步顺控的降维打击

顺序功能图SFC(Sequential Function Chart,也称GRAPH/Grafcet)是专门描述顺序过程的语言:把工艺拆成"步(Step)"和"转换条件(Transition)",初始步等待启动,条件满足进入下一步并自动退出上一步,步里写该步做什么(伸出气缸、开加热、计时),分支支持选择分叉和并行分叉汇合。一台多工位装配机的"上料→定位→压装→检测→放行"流程,在SFC里就是一张方框图,每一步的动作和跳转条件白纸黑字挂在那里。

SFC的价值在复杂顺控上是降维的:用梯形图写十步流程,要十个状态位加一堆自锁互锁,步与步之间的防跳变、暂停恢复、急停后从当前步继续,全靠程序员细心;用SFC这些都是运行时自带的机制,手动单步、暂停、步超时报警可以统一配置,工艺人员看着流程图就能参与评审。它特别适合主流程清晰、工步多、有并行工序的顺控设备,比如组装线、清洗线、灌装线。SFC不适合的是无固定顺序、以信号联锁和回路调节为主的系统,而且步内部的具体逻辑仍然要用LD或ST填充,它管的是"骨架流程"。

五、ST结构化文本:现代PLC复杂逻辑的主战场

结构化文本ST(Structured Text)是类Pascal的高级文本语言,有IF/CASE/FOR/WHILE/REPEAT流程控制,有数组、结构体、枚举、函数和功能块,写复杂逻辑的密度和可读性远超图形语言。举几个梯形图里的噩梦:遍历64个通道数组找出超限通道并记录编号,ST一个FOR循环十行解决;按产品型号在二维参数表里查表,ST用数组下标一次定位;给上位机组一帧带几十个字段的通信报文,ST用结构体赋值加循环完成;状态机用CASE语句写,所有分支集中在一屏里。

ST在现代项目里承担的角色越来越重:配方管理、数据运算、字符串处理、通信数据组包解包、报警批量处理、工艺算法、与SFC配合填步动作。主流品牌对ST支持都很好:西门子博途叫SCL,三菱叫ST语言,欧姆龙NJ/NX的ST功能强大,Codesys原生支持。学ST还有一个隐藏红利:它的思维方式和上位机的C#、Python一脉相承,掌握后能看懂上位机代码、能和软件工程师直接讨论数据结构,正是复合型自动化工程师的核心技能。当然ST也不是万能:纯IO联锁用ST写反而不如梯形图直观,在线监控的可视化也弱于图形语言,关键安全回路该用梯形图还得用梯形图。

六、IL指令表:了解即可的第五种语言

指令表IL(Instruction List)是类似汇编的低级文本语言,一行行"装载、与、或、输出",对应早期PLC有限的运算能力。它能做的事梯形图和ST都能做得更好:可读性差、维护门槛高、对新手极不友好。IEC 61131-3第三版已将IL正式移除,各大平台的新建项目都不再推荐它。现实中还能看到IL的场景主要是老设备、老程序维护,以及个别日系早年机型的指令风格遗留。工程师对IL的态度应该是"能读懂老程序、能把它翻译成ST或梯形图"即可,没有必要在新项目里投入精力。五种语言真正需要掌握的,是LD、FBD、SFC、ST这四种。

七、标准分工:一个规范项目里四种语言怎么混编

经过大量项目验证的分工模式是按逻辑性质分层。最底层紧贴IO的安全联锁、手动操作、急停和模式切换,用梯形图LD写,直观、好审、在线监控方便,这部分逻辑要尽量薄且稳。过程回路(温控、压力、流量PID、滤波运算)封装成FBD功能块,由上层调用。设备主流程这类顺控骨架用SFC搭工步,多工位、并行工序一目了然;如果PLC平台不支持SFC,就用ST的CASE状态机实现,效果接近。配方、数组、运算、报文、报警管理等数据和算法逻辑全部用ST写,集中在几个功能块里。这样每层程序的形态都和它表达的问题匹配,评审、调试、移植都顺。

混编要配套两条工程纪律。一是统一数据接口:用结构体和全局数据块组织"设备状态区、参数区、控制区",LD/FBD/SFC/ST各层只通过约定的结构体交换数据,不要到处散用M点和D寄存器。二是坚持封装复用:同类设备对象(比如一个气缸、一个温控通道、一个伺服轴)做成标准功能块,接口留输入输出参数,内部语言随便选,外部调用只看到引脚。这两条做到位,程序规模再大也是可管理的,这也是从"画梯形图的"走向"做软件的PLC工程师"的分水岭。

八、梯形图工程师转ST:四周上路的学习路线与避坑

转型不必推翻过去,梯形图的电气功底反而是理解ST执行机制的优势。第一周建立扫描周期视角下的文本思维:理解ST每一行在扫描周期里顺序执行、变量即内存、没有"等待语句",把几个现成梯形图网络(启保停、互锁、闪烁)手写翻译成IF和置位复位语句。第二周学数据类型和结构体:用BOOL/INT/REAL/数组/STRUCT把手上项目的点表重新组织一遍,体会"一个结构体替代几十个零散变量"。第三周攻克流程控制,进入结构化文本最有价值的部分:FOR遍历数组、CASE写三工步状态机,并和老写法对比代码量。第四周做一个真东西:选项目里最繁琐的一段梯形图(如配方处理或报警轮询),用ST重写成功能块,仿真验证完全等价后再考虑上线。

避坑有四条。第一,别把ST写成上位机:PLC是周期扫描,ST里禁止死循环和不确定次数的WHILE,FOR循环次数必须有上界,否则扫描超时会直接停机。第二,注意边界和类型:数组越界、整数除零、DINT与REAL混用在PLC里后果比IT软件严重,开启编译检查并养成初始化习惯。第三,保持可监控性:关键状态用规范命名的变量暴露出来,让现场工程师在线监控时不用读代码也能看懂步序和故障。第四,新项目从非安全逻辑试点,联锁回路保留梯形图,逐步扩大ST比例。语言是工具,能把设备做稳、让团队读得懂,才是PLC编程的终极标准。如果你的团队想在新项目中引入ST/SFC混编或重构老梯形图程序,欢迎联系:免费咨询,或致电 13761638786。

← 上一篇 C#、Qt、Python做上位机哪个好?2026三大技术栈真实项目选型对比

有软件开发需求?

专业顾问1对1咨询,30分钟出方案,让您的想法快速落地