6ES7318-3EL01-0AB0
PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。
1、梯形图语言(LD)
梯形图语言是PLC程序设计中*常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
图1是典型的交流异步电动机直接启动控制电路图。图2是采用PLC控制的程序梯形图。
图1 交流异步电动机直接启动电路图
图2 PLC梯形图
2、指令表语言(IL)
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。图3就是与图2PLC梯形图对应的指令表。
图3 指令表
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
3、功能模块图语言(FBD)
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。图4是对应图1交流异步电动机直接启动的功能模块图编程语言的表达方式。
图4 功能模块图
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
4、 顺序功能流程图语言(SFC)
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。图5是一个简单的功能流程编程语言的示意图。
图5
顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
5、结构化文本语言(ST)
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于**语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等**语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
结构化文本编程语言的特点:采用**语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机**语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。比如,SIMATIC STEP7 MicroWIN V3.2。
在PLC控制系统设计中,要求设计人员不但对PLC的硬件性能了解外,也要了解PLC对编程语言支持的种类
S7-200的仿真软件不是西门子公司编写的,国内有人将它汉化,其V2.0版可以对S7-200编程软件V4.0 编写的程序仿真。该仿真软件不能对S7-200的全部指令和全部功能仿真。但是它仍然不失为一个很好的学习S7-200的工具软件。
该软件不需要安装,执行其中的“S7-200仿真.EXE”文件,就可以打开它。点击屏幕中间出现的画面,输入密码6596后按回车键,开始仿真。
软件自动打开的是老型号的CPU 214,应执行菜单命令“配置”→“CPU型号”,用打开的对话框设置CPU的型号为CPU 22x。
下图左边是CPU 224,CPU模块下面是用于输入数字量信号的小开关板。开关板下面的直线电位器用来设置SMB28和SMB29的值。
双击CPU模块右边空的方框,用出现的对话框添加扩展模块。
仿真软件不能直接接收S7-200的程序代码,必须用编程软件的“导出”功能将S7-200的用户程序转换为扩展名为“awl”的ASCII文本文件,然后再下载到仿真PLC中去。
在编程软件中打开主程序OB1,执行菜单命令“文件”→“导出”,导出ASCII文本文件。
在仿真软件中执行菜单命令“文件”→“装载程序”,在出现的对话框中选择下载什么块,点击“确定”按钮后,在出现的“打开”对话框中双击要下载的*.awl文件,开始下载。下载成功后,CPU模块上出现下载的ASCII文件的名称,同时会出现下载的程序代码文本框和梯形图(见下图)。
执行菜单命令“PLC”→“运行”,开始执行用户程序。 如果用户程序中有仿真软件不支持的指令或功能,执行菜单命令“PLC”→“运行”后,出现的对话框显示出仿真软件不能识别的指令。点击“确定”按钮,不能切换到RUN模式,CPU模块左侧的“RUN”LED的状态不会变化。
可以用鼠标点击CPU模块下面的开关板上的小开关来模拟输入信号,通过模块上的LED观察PLC输出点的状态变化,来检查程序执行的结果是否正确。
在RUN模式点击工具栏上的按钮,可以用程序状态功能监视梯形图中触点和线圈的状态。
执行菜单命令“查看”→“内存监控”,可以用出现的对话框监控V、M、T、C等内部变量的值。