微电子技术的发展使集成芯片产生了一定程度的智能(CPU)我们可以根据我们的开发者提前设置的程序来运行,我们可以通过编写程序代码与计算机一起实现(PC)工作的目的。
在计算机技术发展的早期阶段,编写程序代码并不是一件简单的事情。由于计算机本身只能理解由0和1组成的代码,编程人员只能将由0和1编写的程序代码放在纸带上(1打孔,0不打孔),然后将纸带放入计算机输入系统,使计算机能够理解程序员要求它完成的任务。
程序员编程时要充分定义好每一个“位”的含义,然后按照规定好的逻辑将它们组合成代码。这种由“0”和“1”组成的代码十分地复杂,人类很难理解,给程序的编写、修改和维护都带来了很大的困难。
计算机科学家发明了汇编语言,以提高程序编写、代码可读性和可维护性。汇编语言用特定的英文符号代替机器指令,大大提高了程序的可读性和编程效率。
虽然汇编语言的英文指令很容易理解,但微处理器(CPU)但无法理解。因此,科学家们设计了一个专门的程序,将汇编语言的英文指令翻译成微处理器(CPU)能够执行的机器代码,这个翻译程序,被称为“编译器”(编译器也有个发展的过程,不深究)。那些用汇编语言写成的代码,被称为“源代码”。
与早期纸带打孔编程相比,汇编语言编程的可读性大大提高。然而,随着微处理器技术的快速发展,用汇编语言编写程序逐渐不能满足需求,主要体现在两个方面:
第一:随着程序复杂性的提高,汇编语言编写的代码数量显著增加,编写和维护难度增加;
二是汇编语言依赖于特定的微处理器,跨平台程序移植性差,往往需要重写;
因此,一种与硬件平台无关的编程语言,不需要记住复杂的指令,成为程序员梦寐以求的是C语言。C语言用结构化的语句代替了汇编语言中的指令,提供了丰富的数据类型和运算符,支持指针功能,编写的代码简洁紧凑,自其诞生之初就受到了众多程序员的喜爱,被视为编程语言的经典。C语言至今仍保持着强大的生命力,广泛应用于单片机和嵌入式程序设计中。
随着微电子技术在工业控制领域的应用,PLC(可编程逻辑控制器)取代了传统的继电器控制系统。编程语言作为可编程逻辑控制器至关重要。但由于主要制造商PLC产品自成一派,相互不兼容,编程语言的语法也各不相同,形形色色,PLC应用和推广带来不便。
为了规范PLC编程语言,国际电工委员会(International Electrotechnical Commission)起草并颁布了工业自动化编程语言标准(IEC 61131-3)在工控领域制定了图形语言和文本语言五种语言。图形语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD- Function Block Diagram)和顺序功能图(SFC- Sequential Function Chart)。文本语言包括:指令表(IL-Instruction List)结构化文本(ST-Strutured Text)。
让我们来谈谈这五种编程语言:
在各种PLC在编程语言中,梯形图使用最多(LD-Ladder Diagram)语言。梯形图是从早期继电器控制系统原理图演变而来的。它类似于继电器电路图,直观易懂。它保留了继电器电路图的风格和习惯。它是熟悉继电器控制系统人员最容易接受和使用的语言。
虽然梯形图很容易上手,但在编写大型系统程序时会非常困难。很多书都建议初学者学梯形图,除非你接触到一些简单的逻辑控制,否则我不同意。当你觉得需要控制的逻辑系统变得复杂,想要改变语言时,你基本上需要从零开始学习。因此,我建议初学者学习功能块图(FBD- Function Block Diagram)。
功能块图(FBD)用数字电路的逻辑符号(和、或、非)来表达控制逻辑,在编写大型复杂系统时也能保证逻辑清晰
结构化文本(ST-Strutured Text)西门子编程语言PLC在编程中被称为SCL(Structure Language),先给大家看看我在某个项目中的使用情况SCL编写的程序代码截图:
它类似于计算机编程吗?SCL的语法类似VB(PASCAL)高级语言,接近人类的思维方式,程序的可读性很强。在西门子Step7 5.x插入源文件可以在平台下编程,可以直接在博图平台下编写。SCL可以说是工业控制领域的高编程语言,其源代码编译效率也很高。如果您以前接触过计算机高级语言编程,强烈建议您深入学习SCL语言。
指令表(IL),在西门子PLC称为语句表(STL)。它类似于汇编语言,对编程人员有很高的要求,需要熟悉PLC各种内部寄存器、状态字等,需要熟悉各种指令,并知道哪些寄存器在执行指令后会产生影响。语言表(STL)程序的可读性相对较低,但其执行效率是所有语言中最高的。其他语言(如梯形图)很难表达一些特殊功能,或者根本无法表达。(STL)也许几行代码就完成了。
顺序功能图(SFC- Sequential Function Chart)语言,在西门子PLC中称为S7-GRAPH。该语言非常适合生产过程的顺利控制。它将整个生产过程分为几个步骤,每个步骤都有一些动作要完成。当满足某些条件时,它可以跳到下一个步骤,即所谓的顺序控制。
IEC61131-3推荐的五种语言1-3推荐的五种语言。作为初学者,建议学习功能块图(FBD)语言。如果你有计算机高级语言编程的基础,建议学习下SCL语言。当然,无论你学习什么语言,你都应该首先理解它PLC知道自己PLC如何存储内部资源?如何调用程序?知道了这些之后,你就知道怎么写程序,为什么要这样写了。