1、块信息下载到PLC的CPU模块。要实现编程设备与PLC之间的 数据传送,首先应正确安装PLC硬件模块,然后用编程电缆( 如USB-MPI电缆、PROFIBUS总线电缆)将PLC与PG/PC连接起 来,并打开PS307电源开关。 下载程序及模块信息 141 1.下载程序及模块信息(1/2) 具体步骤如下: 启动SIMATIC Manager,并打开My_prj2项目; 单击仿真工具按钮 ,启动S7-PLCSIM仿真程序; 将CPU工作模式开关切换到STOP模式; 在项目窗口内选中要下载的工作站 ; 执行菜单命令【PLC】【Download】,或单击鼠标 右键执行快捷菜单命令【PLC】【Downl
2、oad】将整个S7- 300站下载到PLC。 142 1.下载程序及模块信息(2/2) 启动仿真工具S7-PLCSIM 143 第4章 S7-300编程语言学习 144 第4章 S7-300编程语言学习 4.1 STEP 7编程语言 4.2 数据类型 4.3 S7-300指令基础 4.4 位逻辑指令 4.5 定时器与计数器指令 4.6 数字指令 4.7 控制指令 145 4.1 STEP 7编程语言 STEP 7是S7-300/400系列PLC应用设计软件包, 所支持的PLC编程语言非常丰富。该软件的标准版支 持STL(语句表)、LAD(梯形图)及FBD(功能块图 )3种基本编程语言,并且在S
3、TEP 7中可以相互转换 。专业版附加对GRAPH(顺序功能图)、SCL(结构化 控制语言)、HiGraph(图形编程语言)、CFC(连续 功能图)等编程语言的支持。不同的编程语言可供 不同知识背景的人员采用。 146 STL(语句表) STL(语句表)是一种类似于计算机汇编语言的一种 文本编程语言,由多条语句组成一个程序段。语句表可供 习惯汇编语言的用户使用,在运行时间和要求的存储空间 方面最优。在设计通信、数学运算等高级应用程序时建议 使用语句表。 147 LAD(梯形图) LAD(梯形图)是一种图形语言,比较形象直观,容 易掌握,用得最多,堪称用户第一编程语言。梯形图与继 电器控制电路图
4、的表达方式极为相似,适合于熟悉继电器 控制电路的用户使用,特别适用于数字量逻辑控制。 148 FBD(功能块图) FBD(功能块图)使用类似于布尔代数的图形逻辑符 号来表示控制逻辑,一些复杂的功能用指令框表示。FBD 比较适合于有数字电路基础的编程人员使用。 149 GRAPH(顺序控制) GRAPH类似于解决问 题的流程图,适用于顺序 控制的编程。利用S7- GRAPH编程语言,可以清 楚快速地组织和编写S7 PLC系统的顺序控制程序 。它根据功能将控制任务 分解为若干步,其顺序用 图形方式显示出来并且可 形成图形和文本方式的 文件。 150 HiGraph(图形编程语言) S7-Higra
5、ph允许用 状态图描述生产过程, 将自动控制下的机器或 系统分成若干个功能单 元,并为每个单元生成 状态图,然后利用信息 通讯将功能单元组合在 一起形成完整的系统。 151 lSCL(结构化控制语言) S7-SCL(Structured Control Language:结构控制语 言)是一种类似于PASCAL的高级 文本编辑语言,用于S7-300/400 和C7的编程,可以简化数学计算 、数据管理和组织工作。S7-SCL 具有PLC公开的基本标准认证, 符合IEC 1131-3 (结构化文 本)标准。 152 4.2 数据类型 数据类型决定数据的属性,在STEP 7中,数据类 型分为三大类:
6、 4.2.1 基本数据类型 4.2.2 复杂数据类型 4.2.3 参数类型 153 4.2.1 基本数据类型 154 4.2.2 复杂数据类型 数组(ARRAY) 结构(STRUCT) 字符串(STRING) 日期和时间(DATE_AND_TIME) 用户定义的数据类型(UDT) 功能块类型(FB、SFB) 155 1.数组(ARRAY) 数组是由一组同一类型的数据组合在一起而形成的复 杂数据类型。数组的维数最大可以到6维;数组中的元素 可以是基本数据类型或者复杂数据类型中的任一数据类型 (Array类型除外,即数组类型不可以嵌套);数组中每 一维的下标取值范围是-3276832767,要求下
7、标的下限 必须小于下标的上限。 156 2.结构(STRUCT) 结构是由一组不同类型(结构的元素可以是基本的或 复杂的数据类型)的数据组合在一起而形成的复杂数据类 型。结构通常用来定义一组相关的数据,例如电机的一组 数据可以按如下方式定义: 157 3.字符串(STRING) 字符串是最多有254个字符(CHAR)的一维数组,最 大长度为256个字节(其中前两个字节用来存储字符串的 长度信息)。字符串常量用单引号括起来,例如: 158 4.日期和时间(DATE_AND_TIME) 用于存储年、月、日、时、分、秒、毫秒和星期,占 用8个字节,用BCD格式保存。星期天的代码为1,16的 代码为2
8、7。例如: 159 5.用户定义的数据类型(UDT) 用户定义数据类型表示自定义的结构,存放在UDT块 中(UDT1UDT65535),在另一个数据类型中作为一个数 据类型“模板”。当输入数据块时,如果需要输入几个相同 的结构,利用UDT可以节省输入时间。 6.功能块类型(FB、SFB) 这种数据类型仅可以在FB的静态变量区定义,用于实 现多背景DB。 160 4.2.3 参数数据类型 参数类型是一种用于逻辑块(FB、FC)之间传递参数 的数据类型,主要有以下几种: (1)TIMER(定时器)和COUNTER(计数器)。 (2)BLOCK(块):指定一个块用作输入和输出,实 参应为同类型的块。
9、 (3)POINTER(指针):6字节指针类型,用来传递DB 的块号和数据地址。 (3)ANY:10字节指针类型,用来传递DB块号、数据 地址、数据数量以及数据类型。 161 4.3 S7-300指令基础 指令是程序的最小独立单位,用户程序是由若干条顺 序排列的指令构成。指令一般由操作码和操作数组成,其 中的操作码代表指令所&助出些主意。 27 第五章 PLC的基本指令及程序设计 1 第五章 PLC的基本指令及程序设计 n5.1 PLC的基本逻辑指令及举例 n5.2 程序控制指令 n5.3 PLC编程指导 n5.4 典型的简单电路编程 n5.5 PLC程序简单设计法及应用举例 第五章 PLC的
10、基本指令及程序设计 2 5.1 PLC的基本逻辑指令及举例 n PLC的编程语言有梯形图语言、助记符语言、逻辑功 能图语言和某些高级语言。其中前两种语言用的最多,要 求掌握。 n 本章以S7-200CPU22*系列PLC的指令系统为对象,用举 例的形式来说明PLC的基本指令系统,然后介绍常用典型电 路及环节的编程,最后讲解PLC程序的简单设计法。 n S7-200PLC用LAD编程时以每个独立的网络块( Network)为单位,所有的网络块组合在一起就是梯形图, 这也是S7-200PLC的特点。 第五章 PLC的基本指令及程序设计 3 梯形图语言编程主要特点及格式有以下几点: 1)梯形图按行从
11、上至下编写,每一行从左至右顺序编写,即PLC程序 执行顺序与梯形图的编写顺序一致。 2)梯形图左、右边垂直线分别称为起始母线和终止母线。每一逻辑行 必须从起始母线开始画起。(终止母线常可以省略) 3)梯形图中的触点有两种,即常开触点和常闭触点,这些触点可以是 PLC的输入触点或输出继电器触点,也可以是内部继电器、定时器/计 数器的状态。与传统的继电器控制图一样,每一触点都有自己的特殊 标记(编号),以示区别。同一标记的触点可以反复使用,次数不限 。这是因为每一触点的状态存入PLC内的存储单元中,可以反复读写 。传统继电器控制中的每个开关均对应一个物理实体,故使用次数有 限。这是PLC优于传统控
12、制其中的一点。 第五章 PLC的基本指令及程序设计 4 4)梯形图最右侧必须接输出元素,PLC的输出元素用括号表示,并标 出输出变量的代号。同一标号输出变量只能使用一次. 5)梯形图中的触点可以任意串、并联,而输出线圈只能并联,不能串 联。每行最多触点数由PLC型号不同而不同. 6) 内部继电器、计数器、移位寄存器等均不能直接控制外部负载, 只能作中间结果供PLC内部使用. 总之,梯形图结构沿用继电器控制原理图的形式,采用了常开触点、 常闭触点、线圈等图形语言,对于同一控制电路,继电控制原理与梯 形图输入、输出信号基本相同,控制过程等效。 第五章 PLC的基本指令及程序设计 5 例: 第五章
13、PLC的基本指令及程序设计 6 5.1.1 逻辑取及线圈驱动指令 n逻辑取及线圈驱动指令为LD、LDN和=。 nLD(Load):取指令。用于网络块逻辑运算开始的常开触点与母 线的连接。 nLDN(Load Not):取反指令。用于网络块逻辑运算开始的常闭触 点与母线的连接。 n=(Out):线圈驱动指令。 图5-1 LD、LDN、=指令用法 (b)语句表 (a)梯形图 第五章 PLC的基本指令及程序设计 7 使用说明: (1)LD、LDN指令不仅用于网络块逻辑计算开始时与母 线相连的常开和常闭触点,在分支电路块的开始也要使 用LD、LDN指令; (2)并联的=指令可连续使用任意次; (3)在
14、同一程序中不能使用双线圈输出,即同一元器件 在同一程序中只使用一次=指令; (4)LD、LDN、=指令的操作数为:I、Q、M、SM、T、C 、V、S和L。T、C也作为输出线圈,但在S7-200PLC中输 出时不是以使用=指令形式出现。 第五章 PLC的基本指令及程序设计 8 5.1.2 触点串联指令 触点串联指令为A、AN。 A(And):与指令。用于单个常开触点的串联连接。 AN(And Not):与反指令。用于单个常闭触点的串联连接。 图5-2 A、AN指令的用法 第五章 PLC的基本指令及程序设计 9 使用说明: (1)A、AN是单个触点串联连接指令,可连续使用。但在用梯形图编程 时会受
15、到打印宽度和屏幕显示的限制。S7-200的编程软件中规定的串联 触点数最多为11个。 (2)图5-2中所示连续输出电路,可以反复使用=指令,但次序必须正 确,不然就不能连续使用=指令编程了,见5-3图。 (3)A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。 图5-3 不可连续使用=指令的电路 第五章 PLC的基本指令及程序设计 10 5.1.3 触点并联指令 触点并联指令为:O、ON。 O(Or):或指令。用于单个常开触点的并联连接。 ON(Or Not):或反指令。用于单个常闭触点的并联连接。 图5-4 O、ON指令的用法 使用说明:(1)单个触点的O、ON指令可连续使用。
16、(2)O、ON指令的操作数同前。 第五章 PLC的基本指令及程序设计 11 5.1.4 串联电路块的并联连接指令 两个以上触点串联形成的支路叫串联电路块。 OLD(Or Load):或块指令。用于串联电路块的并联连接。 图5-5 OLD指令的用法 使用说明:(1)在块电路的开始也要使用LD、LDN指令。 (2)每完成一次块电路的并联时要写上OLD指令。 (3)OLD指令无操作数。 第五章 PLC的基本指令及程序设计 12 5.1.5 并联电路块的串联连接指令 两条以上支路并联形成的电路叫并联电路块。 ALD(And Load):与块指令。用于并联电路块的串联连接。 图5-6 ALD指令的用法
17、使用说明: (1)在块电路开始时要使用LD、LDN指令。 (2)在每完成一次块电路的串联连接后要写上ALD指令。 (3)ALD指令无操作数。 第五章 PLC的基本指令及程序设计 13 nS(Set):置位指令 、R(Reset):复位指令 n置位即置1,复位即置0。置位和复位指令可以将位存储区的某一位 开始的一个或多个(最多可达255个)同类存储器位置1或置0。 n这两条指令在使用时需指明三点:操作性质、开始位和位的数量。 5.1.6 置位和复位指令 (1)S,置位指令 将位存储区的指定位(位bit)开始的N个同类存储器位置位。 用法: Sbit,N 例:SQ0.0,1 (2)R,复位指令 将
18、位存储区的指定位(位bit)开始的N个同类存储器位复位。当用复位 指令时,如果是对定时器T位或计数器C位进行复位,则定时器位或计数 器位被复位,同时,定时器或计数器的当前值被清零。 用法: Rbit,N 例:RQ0.2,3 第五章 PLC的基本指令及程序设计 14 图5-7 置位复位指令的用法 第五章 PLC的基本指令及程序设计 15 n本程序对应的时序图如图5-8所示。 图5-8 时序图 第五章 PLC的基本指令及程序设计 16 例:写出如下梯形图的语句表。 第五章 PLC的基本指令及程序设计 17 5.1.7 立即指令 n 立即指令是为了提高PLC对输入/输出的响应速度而 设置的,它不受P
19、LC循环扫描工作方式的影响,允许对 输入输出点进行快速直接存取。立即指令的名称和类型 如下: n(1)立即触点指令 (立即取、取反、或、或反、与、 与反) n(2)=I,立即输出指令 n(3)SI,立即置位指令 n(4)RI,立即复位指令 第五章 PLC的基本指令及程序设计 18 n(1)立即触点指令 n在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入 点的值,但是不刷新对应映像寄存器的值。 n这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。 n用法:LDIbit n例: LDII0.2 n注意:bit只能是I类型。 (2)=I,立即输出指令 用立即指令访问输出点时,
20、把栈顶值立即复制到指令所指出的物理输出点 ,同时,相应的输出映像寄存器的内容也被刷新。 用法:=Ibit 例:=IQ0.2 注意:bit只能是Q类型。 第五章 PLC的基本指令及程序设计 19 n(3)SI,立即置位指令 n 用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最 多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也 被刷新。 n用法:SIbit,N n例: SIQ0.0,2 n注意:bit只能是Q类型。 n(4)RI,立即复位指令 n 用立即复位指令访问输出点时,从指令所指出的位(bit)开始的 N个(最多为128个)物理输出点被立即复位,同时
21、,相应的输出映像 寄存器的内容也被刷新。 n用法:RIbit,N n例: RIQ0.0,1 第五章 PLC的基本指令及程序设计 20 图5-9 立即指令的用法 第五章 PLC的基本指令及程序设计 21 图5-10 时序图 第五章 PLC的基本指令及程序设计 22 上图5-10中,t为执行到输出点处程序所用的时间,Q0.0 、Q0.1、Q0.2的输入逻辑是I0.0的普通常开触点。Q0.0 为普通输出,在程序执行到它时,它的映像寄存器的状 态会随着本扫描周期采集到的I0.0状态的改变而改变, 而它的物理触点要等到本扫描周期的输出刷新阶段才改 变;Q0.1、Q0.2为立即输出,在程序执行到它们时,它
22、 们的物理触点和输出映像寄存器同时改变;而对Q0.3来 说,它的输入逻辑是I0.0的立即触点,所以在程序执行 到它时,Q0.3的映像寄存器的状态会随着I0.0即时状态 的改变而立即改变,而它的物理触点要等到本扫描周期 的输出刷新阶段才改变。 第五章 PLC的基本指令及程序设计 23 n脉冲生成指令为EU(Edge Up)、ED(Edge Down).下表为脉冲生 成指令使用说明 5.1.8 脉冲生成指令 第五章 PLC的基本指令及程序设计 24 图5-11 时序图 EU指令对其之前的逻辑运算结果的上升沿产生一个宽度 为一个扫描周期的脉冲,如图中的M0.0;ED指令对其逻辑运 算结果的下降沿产生
23、一个宽度为一个扫描周期的脉冲,如图 中的M0.1。脉冲指令常用于启动及关断条件的判定以及配合 功能指令完成一些逻辑控制任务。 第五章 PLC的基本指令及程序设计 25 图5-12 跳变应用 第五章 PLC的基本指令及程序设计 26 5.1.9 逻辑堆栈操作指令 n S7-200系列PLC使用一个9层堆栈来处理所有逻 辑操作。堆栈是一组能够存储和取出数据的暂存单 元,其特点是“先进后出”。每一次进行入栈操作 ,新值放入栈顶,栈底值丢失;每一次进行出栈操 作,栈顶值弹出,栈底值补进随机数。逻辑堆栈指 令主要用来完成对触点进行的复杂连接。 n S7-200中把ALD、OLD、LPS、LRD、LPP指
24、令都 归纳为栈操作指令。 第五章 PLC的基本指令及程序设计 27 1. 栈装载与指令 nALD,栈装载与指令(与块)。在梯形图中用于将并联电 路块进行串联连接。 n在语句表中指令ALD执行情况如表所示。 第五章 PLC的基本指令及程序设计 28 nOLD,栈装载或指令(或块)。在梯形图中用于将串联 电路块进行并联连接。 n在语句表中指令OLD执行情况如下表所示。 2. 栈装载或指令 第五章 PLC的基本指令及程序设计 29 n LPS,逻辑推入栈指令(分支或主控指令)。在梯形图 中的分支结构中,用于生成一条新的母线,左侧为主控逻辑 块,完整的从逻辑行从此处开始。 n注意:使用LPS指令时,本
25、指令为分支的开始,以后必须有分 支结束指令LPP。即LPS与LPP指令必须成对出现。 3. 逻辑入栈指令 第五章 PLC的基本指令及程序设计 30 4. 逻辑出栈指令 nLPP,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的分 支结构中,用于将LPS指令生成一条新的母线进行恢复。 n注意:使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。 n在语句表中指令LPP执行情况如下表所示。 第五章 PLC的基本指令及程序设计 31 5. 逻辑读栈指令 nLRD,逻辑读栈指令。在梯形图中的分支结构中,当左侧为 主控逻辑块时,开始第二个后边更多的从逻辑块的编程。 n在语句表中指令LRD
26、执行情况如下表所示。 第五章 PLC的基本指令及程序设计 32 5-13 LPS、LRD、LPP指令使用举例1 LPS、LRD、LPP指令使用举例1 第五章 PLC的基本指令及程序设计 33 5-14 LPS、LRD、LPP指令使用举例2 第五章 PLC的基本指令及程序设计 34 5-15 LPS、LRD、LPP指令使用举例3 使用说明:(1)由于受堆栈空间的限制(9层),LPS、LPP指 令连续使用时应少于9次。 (2)LPS和LPP指令必须成对使用,它们之间可以使用LRD命令。 (3)LPS、LRD、LPP指令无操作数。 第五章 PLC的基本指令及程序设计 35 LPS、LRD、LPP指令
27、使用举例4 第五章 PLC的基本指令及程序设计 36 n图5-16 复杂逻辑控制指令应用示例5 LD I0.0 /装入常开触点 O I2.2 /或常开触点 LD I0.1 /被串的块开始 LD I2.0 /被并路开始 A I2.1 / OLD /栈装载或,并路结束 ALD /栈装载与,串路结束 = Q5.0 LD I0.0 / LPS /逻辑推入栈,主控 A I0.5 / = Q7.0 / LRD /逻辑读栈,新母线 LD I2.1 / O I1.3 / ALD /栈装载与 = Q6.0 / LPP /逻辑弹出栈,母线复原 LD I3.1 / O I2.0 / ALD / = Q1.3 / 第
28、五章 PLC的基本指令及程序设计 37 5.1.10 定时器指令 n1.几个基本概念 n(1)种类:系统提供3种类型定时器:TON、TONR和TOF。 n(2)分辨率与定时时间的计算精度等级: n单位时间的时间增量称为分辨率S。有3个等级:1ms、10ms和 100ms,定时器定时时间T的计算:T=PTS。 n(3)定时器的编号:用名称和常数编号(最大255) 第五章 PLC的基本指令及程序设计 38 2.定时器指令使用说明 n(1)接通延时定时器TON n接通延时定时器指令用于单一间隔的 定时。上电周期或首次扫描,定时器 位OFF,当前值为0。使能输入接通时 ,定时器位为OFF,当前值从0开
29、始计 数时间,当前值达到预设值时,定时 器位ON,当前值连续计数到32767。 使能输入断开,定时器自动复位,即 定时器位OFF,当前值为0。 n指令格式:TONTxxx,PT n例:TONT120,8 第五章 PLC的基本指令及程序设计 39 (2)有记忆接通延时定时器TONR nTONR,有记忆接通延时定时器指令。用于对 许多间隔的累计定时。上电周期或首次扫描 ,定时器位OFF,当前值保持。使能输入接 通时,定时器位为OFF,当前值从0开始计数 时间。使能输入断开,定时器位和当前值保 持最后状态。使能输入再次接通时,当前值 从上次的保持值继续计数,当累计当前值达 到预设值时,定时器位ON,
30、当前值连续计数 到32767。 nTONR定时器只能用复位指令进行复位操作。 n指令格式:TONR Txxx,PT n例:TONR T20,63 第五章 PLC的基本指令及程序设计 40 (3)断开延时定时器TOF nTOF,断开延时定时器指令。用于断开后 的单一间隔定时。上电周期或首次扫描 ,定时器位OFF,当前值为0。使能输入 接通时,定时器位为ON,当前值为0。当 使能输入由接通到断开时,定时器开始 计数,当前值达到预设值时,定时器位 OFF,当前值等于预设值,停止计数。 nTOF复位后,如果使能输入再有从ON到 OFF的负跳变,则可实现再次启动。 n指令格式:TOF Txxx,PT n
31、例:TOF T35,6 第五章 PLC的基本指令及程序设计 41 图5-17 定时器特性 3. 应用举例 例1 第五章 PLC的基本指令及程序设计 42 n本梯形图程序中输入输出执行时序关系如图5-18所示。 图5-18 定时器时序 第五章 PLC的基本指令及程序设计 43 例2: 图5-19是用TON构造TOF作用的触点。其时序 图与TOF完全相同。 图5-19 定时器应用 第五章 PLC的基本指令及程序设计 44 例3:图5-20是利用常开触点实现通电和断电都延时的触点 作用。 本程序实现的功能是:用输入端I0.0控制输出端Q0.0,当I0.0接通后, 过3个时间单位Q0.0端输出接通,当
32、I0.0断开后,过6个时间单位Q0.0断 开。 图5-20 定时器应用 第五章 PLC的基本指令及程序设计 45 图5-21 电机顺序起动 例4:电机顺序起动梯形图 第五章 PLC的基本指令及程序设计 46 4.定时器的刷新方式和正确使用 (1)定时器的刷新方式 1ms定时器:由系统每隔1ms刷新一次,与扫描周期及程序 处理无关。它采用中断刷新方式。 10ms定时器:由系统在每个扫描周期开始时自动刷新。在 一个扫描周期内定时器位和定时器的当前值保持不变。 100ms定时器:在定时器指令执行时被刷新。它仅用在定时 器指令在每个扫描周期执行一次的程序中。 (2)定时器的正确使用 图5-22为正确使
33、用定时器的一个例子。它用来在定时器计时 时间到时产生一个宽度为一个扫描周期的脉冲。 第五章 PLC的基本指令及程序设计 47 图5-22 定时器的正确使用举例 错误使用方法正确使用方法 第五章 PLC的基本指令及程序设计 48 5.1.11 计数器指令 n计数器用来累计输入脉冲的次数,在实际应用中用来对产品进行计数或 完成复杂的逻辑控制任务。 n1.几个基本概念 n(1)种类:计数器指令有3种:增计数CTU、增减计数CTUD和减计数 CTD。 n(2)编号:计数器的编号用计数器名称和数字(最大255)组成。 n计数器的编号包含两方面信息:计数器的位和计数器当前值。 n计数器位:计数器位和继电器
34、一样是个开关量,表示计数器是否发生 动作的状态,当计数器的当前值达到设定值时,该位被置位为ON。 n计数器当前值:其值是个存储单元,用来存储计数器当前所累计的脉 冲个数,用16位符号整数表示,最大数值为32767。 第五章 PLC的基本指令及程序设计 49 2. 计数器指令使用说明 (1)增计数器CTU n首次扫描,计数器位OFF,当前值为0。脉冲输入CU的 每个上升沿,计数器计数1次,当前值增加1个单位, 当前值达到预设值时,计数器位ON,当前值继续计数 到32767停止计数。复位输入有效或执行复位指令,计 数器自动复位,即计数器位OFF,当前值为0。 n指令格式:CTU Cxxx,PV n
35、例:CTUC20,3 n程序实例: n图5.23为增计数器的程序片断和时序图。 第五章 PLC的基本指令及程序设计 50 图5-23 增计数器用法举例 第五章 PLC的基本指令及程序设计 51 图5-24 增计数时序 第五章 PLC的基本指令及程序设计 52 (2) 增减计数器 nCTUD,增减计数器指令。有两个脉冲输入端:CU输入端用于递增计 数,CD输入端用于递减计数。 n指令格式:CTUD Cxxx,PV n例:CTUD C30,5 n程序实例:如图5-25所示为增减计数器的程序片断和时序图。 第五章 PLC的基本指令及程序设计 53 图5-25 增减计数程序及时序 第五章 PLC的基本
36、指令及程序设计 54 (3)减计数器CTD n脉冲输入端CD用于递减计数。首次扫描,计数器位OFF, 当前值为等于预设值PV。计数器检测到CD输入的每个上 升沿时,计数器当前值减小1个单位,当前值减到0时, 计数器位ON。 n复位输入有效或执行复位指令,计数器自动复位,即计 数器位OFF,当前值复位为预设值,而不是0。 n指令格式:CTD Cxxx,PV n例:CTD C40,4 n程序实例:图5-26为减计数器的程序片断和时序图。 第五章 PLC的基本指令及程序设计 55 第五章 PLC的基本指令及程序设计 56 图5-26 减计数程序及时序 第五章 PLC的基本指令及程序设计 57 3.
37、应用举例 n1)循环计数 n以上三种类型的计数器如果在使用时,将计 数器位的常开触点作为复位输入信号,则可 以实现循环计数。 n2)用计数器和定时器配合增加延时时间,如 图5-27所示。试分析以下程序中实际延时为 多长时间。 第五章 PLC的基本指令及程序设计 58 第五章 PLC的基本指令及程序设计 59 图5-27 计数器应用举例 5 .1.2 NOT及NOP指令 1.取反指令NOT 将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数。 指令形式:NOT 2.空操作指令NOP(No Operation) 该指令很少使用,易出错。 指令形式:NOP N N的范围:0255 第五章
38、PLC的基本指令及程序设计 60 5.2 程序控制指令 程序控制类指令使程序结构灵活,合理使用该类指令可以优化程 序结构,增强程序功能。这类指令主要包括:结束、暂停、看门狗、跳 转、子程序、循环和顺序控制等指令。 5.2.1 结束指令 结束指令分为有条件结束指令END和无条件结束指令MEND。两条指 令在梯形图中以线圈形式编程。指令不含操作数。执行完结束指令后, 系统结束主程序,返回到主程序起点。 使用说明: (1)结束指令只能用在主程序中,不能在子程序和中断程序中使用。 (2)在调试程序时,在程序的适当位置插入无条件结束指令可实现程 序的分段调试。 (3)可以利用程序执行的结果状态、系统状态
39、或外部设置切换条件来 调用有条件结束指令,使程序结束。 (4)使用Micro/Win32编程时,不需手工输入无条件结束指令,该软件 自动在内部加上一条无条件结束指令到主程序的结尾。 第五章 PLC的基本指令及程序设计 61 5.2.2 停止指令STOP STOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从 而立即中止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指 令不含操作数。 STOP指令可以用在主程序、子程序和中断程序中。 STOP和END指令通常在程序中用来对突发紧急事件进行处理,以避免 实际生产中的重大损失。用法见图5-28所示。 图5-28 结束、停止指
40、令的用法 第五章 PLC的基本指令及程序设计 62 建立子程序 n 可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插 入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认 的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更 改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。 n子程序调用:图示的程序实现用外部控制条件分别调用两个子程序。 图 子程序调用举例 第五章 PLC的基本指令及程序设计 63 5.3 PLC初步编程指导 5.3.1 梯形图编程的基本规则 (1)PLC内部元器件触点的使用次数是无限制的。 (2)
41、梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连接 ,最后以线圈或指令盒结束。触点不能放在线圈的右边,如图所示: (3)线圈和指令盒一般不能直接连接在左边的母线上。 第五章 PLC的基本指令及程序设计 64 (4)在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈 输出。双线圈输出非常容易引起误动作,应避免使用。 S7-200PLC中不允许双线圈输出。 (5)在手工编写梯形图时,触点应画在水平线上,不要画在垂直线上。 (6)应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放 在最左边,可节省指令。 第五章 PLC的基本指令及程序设计 65 (7)不包含触点的分支线条应放在垂
42、直方向,不要放在水平方向, 便于读图直观。 (8)梯形图的推荐画法如图所示: 第五章 PLC的基本指令及程序设计 66 5.3.2 LAD和STL编程形式的关系 利用梯形图编程时,可以把整个梯形图程序看成由许 多网络块组成,每个网络块均起始于母线,所有的网络块 组合在一起就是梯形图程序。LAD程序可以通过编程软件 直接转换为STL形式。S7-200PLC用STL编程时,如果也以 每个独立的网络块为单位,则STL程序和LAD程序基本上是 一一对应的,且两者可通过编程软件相互转换;如果不以 每个独立的网络块为单位编程,而是连续编写,则STL程 序和LAD程序不能通过编程软件相互转换。 第五章 PL
43、C的基本指令及程序设计 67 5.4 典型的简单电路编程 5.4.1 分频电路: 以二分频为例说明PLC分频电路的实现。要求见时序图: 图5-29 二分频电路 第五章 PLC的基本指令及程序设计 68 当输入I0.1第一次接通时,在M0.0上产生单脉冲。因输 出线圈Q0.0并未得电,其对应的常开触点处于断开状态, 所以扫描到第三行时,尽管M0.0得电,M0.2也不可能得电 。扫描至第4行时,Q0.0得电并自锁。Q0.0对应的常开触点 闭合,为M0.2的得电做好准备。 等到I0.1输入第二个脉冲到来时。M0.0上再次产生单脉冲 。因此,在扫描第三行时,M0.2条件满足得电,M0.2对应 的常闭触
44、点断开。执行第4行程序时,输出线圈Q0.0失电。 以后虽然I0.1继续存在,由于M0.0是单脉冲信号,虽多次 扫描第4行,输出线圈Q0.0也不可能得电。 工作过程: 第五章 PLC的基本指令及程序设计 69 5.4.2 闪烁电路(振荡电路) 图5-30 闪烁电路 第五章 PLC的基本指令及程序设计 70 5.4.3 报警电路 要求:当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣 器响。操作人员知道故障发生后,按消铃按钮,把电铃关 掉,报警指示灯从闪烁变为常亮。故障消失后,报警灯熄 灭。另外还应设置试灯、试铃按钮,用于平时检测报警指 示灯和电铃的好坏。 设计:该系统输入、输出信号的地址分配如下: 输入信号:I0.0为故障信号;I0.1为消铃按钮;I0.2为试 灯、试铃按钮。 输出信号:Q0.0为报