西家编程语言浅议.pdf
1、梯形图(LAD, Ladder Diagram)图形化语言,是国内使用最广泛的PLC编程语言,以电气控制回路的图形化形式呈现,类似继电器电路图,适合逻辑控制类程序,直观易懂,常用于开关量,特别适合于数字量逻辑控制。
梯形图由触点、线圈等指令构成。从左到右形成能流。触点代表逻辑输入条件,线圈 代表逻辑运算结果,常用来控制的工艺动作。
2、语句表(STL, Statement List)文本化语言,基于汇编语言风格的文本式编程语言,通过指令序列实现控制逻辑,执行效率高,适合编写紧凑、复杂的算法或对执行时间有严格要求的程序,但可读性相对较低。
3、结构化控制语言(SCL, Structured Control Language)文本化语言,类似高级编程语言(如 Pascal)的文本式语言,支持变量定义、函数、循环、分支等结构化语法,适合编写复杂的逻辑控制、数学运算或数据处理程序,可读性和可维护性强。
4、功能块图(FBD, Function Block Diagram)图形化语言,是国外使用较多的编程语言,用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,方框用“导线”连在一起,信号自左向右,按照逻辑计算依次输出。与数字电路的卡诺图类似。
5、顺序功能图(S7-GRAPH)图形化语言,西门子专用的图形化编程语言,基于状态转移逻辑,适合编写顺序控制流程(如生产线步骤控制、机械动作时序控制等),通过 “步 - 转换 - 动作” 结构清晰描述流程。
6、S7-HiGraph,用于复杂顺序控制和状态机设计的图形化工具,支持层次化和并行化的状态逻辑建模,适合大型控制系统的模块化设计。
7、连续功能图CFC(Continuous Function Chart)图形化语言,主要用于过程控制领域,比如伺服控制系统。通过功能块的组合实现连续控制任务(如 PID 调节、模拟量处理等),支持在线修改和调试。
上述7中编程语言其实各有用途,而且适用范围不尽相同,按照编译的原理,程序最终都会被编译成机器语言执行,所以用错地方,可能并不妨碍程序执行,但是从专业的角度,比如存储占比,运行时间,可靠性等,会大相径庭。
以下根据笔者的经验给出如下建议:
1.如果仅涉及工艺动作(逻辑运算)的程序,比如机械手(上下左右运动)。最好使用LAD/ FBD/ S7-GRAPH 这3类语言编程,因为,经过这3类语言编写的程序结构简明干练,易于调试。按照能流走向,十分方便的查找逻辑问题。
最不建议使用SCL/ STL等语句型语言,如果仅是最求所谓形式的高大上,那么会对后期的调试与维护带来难以想象的困难。绝非危言耸听,你想一个文本语言中,充满了if。。Than 的判断,逻辑运算处理为什么用关系表达?文本语句与图形语句在表达逻辑关系上,差的不是一点半点。
最推荐S7-GRAPH ,这是西家编写工艺动作的神器,而且S7-GRAPH 简单易上手。它可以根据流程图,依次编写步骤,甚至可以将报警程序嵌入其中,调用FB/FC等不在话下。新手应该放弃SCL,转用S7-GRAPH 来编写工艺动作程序。
2.如果涉及算数运算/数值转换与处理/范围寻址/等程序,最好使用SCL/ STL.其中STL适合寻址,而SCL适合数据运算,因为SCL有大量的语句支持,所以其处理范畴也较大。
3.市面上许多西家的伺服程序都是CFC编程,它是PCS7平台的原生语言。也是图形化语言。
综上所述,一般图形化语言较直观易查,但是表达逻辑的结构不见得比文本化简练,适用与新手。其实,按照目前的节奏,我们面临着AI应用的初级阶段,所有的底层编程语言最终都会沦为AI编程的范畴,新手更应该学习AI的编程手段,使用模拟与仿真跑赢人生,套用黄总的说法结束这个文档,感谢大家。