国产PLC系统学习笔记(二十一)
- 2026-11-07 03:33:41
一、四种语言的分工
【核】按厂商官网产品说明,FA-AutoThink V3.1 支持符合 IEC 61131-3 标准的LD、ST、CFC、SFC四种编程语言;安全型产品使用的 Safety FA-AutoThink 支持LD 与 FBD两种组态语言,并通过反编译方法确保用户逻辑与下装程序一致。
【疑】关于第四种语言,我查到的资料有细微出入:厂商产品页写的是CFC(连续功能图),部分行业媒体在介绍 LK220 时写的是FBD(功能块图)。两者在图形表达上相近,CFC 通常被视为 FBD 的扩展形态。我按官方产品页采用 CFC 的表述,具体以所用软件版本的语言列表为准。
梯形图(LD)适合表达离散逻辑。联锁、互锁、启停保持、故障封锁这类以触点与线圈为骨架的逻辑,用梯形图表达最为直观,也最便于现场人员阅读。改造项目中,旧工程的梯形图部分可以近乎平移。
结构化文本(ST)适合表达算法。量程转换、累积计算、滤波、统计、字符串处理、数组遍历,用文本表达比图形表达效率高出许多。尤其是涉及循环与条件嵌套的场合,图形语言的连线会迅速变得难以维护。
连续功能图(CFC)适合表达信号流。模拟量通道处理、PID 回路、功能模块串联,用功能块图表达时信号流向一目了然,便于检查中间量的传递关系。
顺序功能图(SFC)适合表达工艺流程。有明确步序的过程——配料、清洗、充压、排空、再生——用步与转换条件描述,比用大量自保持回路清晰得多,也便于在调试时定位"卡在哪一步"。
【记】工程实践中较为合理的组合是:设备层逻辑用梯形图,工艺层流程用顺序功能图,算法层计算用结构化文本,模拟量通道用连续功能图。四种语言可在同一个工程中混用,通过 POU 调用衔接。

图 1 四种编程语言的分工:按被表达对象的性质选择。离散逻辑交给梯形图,算法交给结构化文本,信号流交给连续功能图,工艺流程交给顺序功能图。
二、编辑器能力:够用且可调
梯形图编辑器提供常开触点、常闭触点、线圈、置反线圈、置位线圈、复位线圈等元件,工具条与菜单入口齐备。
结构化文本编辑器支持语法高亮、变量联想输入、文本程序折叠、鼠标悬浮变量提示,调试模式下设有独立的显示窗口。断点调试支持"运行到光标处"与"显示当前语句"两项操作,便于定位长段文本中的执行位置。
调试能力方面,AutoThink 支持离线仿真(LK 平台同样支持)、在线调试、变量监视、变量写入、变量强制、断点设置、交叉引用查询。
【记】交叉引用表支持按数据类型检索,也支持数组与结构体变量成员的引用查询。这一能力在排查"某个变量在哪些 POU 里被写过"时非常实用——旧工程没有注释、变量命名混乱时,它是唯一的线索来源。
三、变量声明的四条组织建议
变量可在全局变量表或 POU 局部变量表中声明,两者之间支持相互复制粘贴,便于在重构时调整变量作用域。
其一,变量名采用"设备位号+属性"的结构。例如 Pump101_RunFB、TK201_LevelPV,避免 Val1、Flag2 这类无信息量的命名。
其二,注释随变量一起声明,不事后补写。AutoThink 支持变量名与注释自动换行显示,长注释不会影响表格阅读。
其三,结构体优先于散变量。同一台电机的运行、故障、就地、远程、电流五个信号,声明为一个结构体成员,比声明五个独立变量更易于批量处理与库化。
其四,重命名须走正规路径。在"工程—选项"中勾选"重命名变量引用"后,在变量区修改变量名会弹出对话框,勾选工程、程序块、指令三项后确认,程序中所有引用同步更新。
【坑】不走这个流程而直接改变量名,会造成引用失效。这类失效在编译期不一定报错,往往等到某个支路动作异常才被发现。

图 2 旧工程语言迁移的三种情形与处置办法。三种情形处置方式不同,但都遵循一条原则:迁移中发现的原逻辑缺陷应当一并修正。
四、语言迁移的三种情形
情形一:旧工程以梯形图为主。迁移成本最低,可按网络(Network)为单位逐段复制逻辑,只需替换地址与变量。
情形二:旧工程大量使用专用功能块。需要逐块在国产平台的库中寻找对应元素。找不到完全对应的,用结构化文本重写,并封装为自定义功能块,保证接口一致。
情形三:旧工程使用顺序控制语言。若原平台所用语言与 SFC 语义接近,可平移步与转换条件;若原平台用梯形图搭自保持回路实现步序,建议借改造之机重构为 SFC,可读性会明显改善。
【记】无论哪种情形,都遵循一条原则:改造不是复制,迁移过程中发现的原逻辑缺陷应当一并修正。若原样保留旧缺陷,等于放弃了这次国产化改造最重要的附加价值——花这么大力气迁移一次,却没有让程序变得更好,是很可惜的。
本讲小结
语言选择服从被表达对象的性质:离散逻辑→LD,算法→ST,信号流→CFC,工艺流程→SFC。 官方产品页列为 LD、ST、CFC、SFC;安全型软件只有 LD 与 FBD,且通过反编译校验逻辑一致性。 交叉引用查询是无注释旧工程的排查利器;变量重命名必须走"工程—选项"的正规路径。 迁移不是复制,发现的原逻辑缺陷应当一并修正。