1、第四章第四章 S7-300S7-300软件基础软件基础 4.1 PLC编程基础编程基础 4.2 STEP7的指令结构的指令结构 4.3 位逻辑指令位逻辑指令 4.5 定时器与计数器指令定时器与计数器指令4.1 PLC4.1 PLC编程基础编程基础4.1.1 STEP7编程语言 STEP7是S7-300/400系列PLC应用设计软件包,所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编程语言,并且在STEP 7中可以相互转换。不同的编程语言可供不同知识背景的人员采用。其中LAD、STL和FBD是三种基本编程语言。4.1.1 STEP
2、74.1.1 STEP7编程语言编程语言 LAD(LAD:Ladder Diagram)简称梯形图,LAD是使用最多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制,也适合于熟悉继电器电路的人员使用。LAD编程语言如图4.1所示。 图4.1 LAD编程语言1、梯形图(LAD)4.1.1 STEP74.1.1 STEP7编程语言编程语言2、语句表(STL) STL(STL:Statement List)简称语句表,STL是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语句表适合于经验丰富的程序员使用
3、,可以实现某些梯形图不能实现的功能。STL适用于喜欢用汇编语言编程的人员使用。STL编程语言如图4.2所示。 图4.2 STL编程语言4.1.1 STEP74.1.1 STEP7编程语言编程语言3、功能块图(FBD) FBD(FBD:Function Block Diagram)简称功能块图,功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示。FBD适合于有数字电路基础的编程人员使用。FBD编程语言如图4.3所示。4.1.1 STEP74.1.1 STEP7编程语言编程语言图4.3 FBD编程语言4.1.2 S7-300 CPU4.1.2 S7-300 CPU的
4、系统存储器的系统存储器 1、过程映像输入表/输出表(I/Q) 过程映像输入表(PII):循环扫描开始时,存储数字量输入模块的输入信号的状态。 过程映像输出表(PIQ):循环扫描结束时,存储用户程序计算的输出值,并将PIQ的内容写入数字量输出模块。2、内部存储器区(M) 内部存储器区(M),主要用于存储中间变量。3、定时器(T)存储器区 在CPU的存储器中,有一个区域是专为定时器保留的。此存储区域为每个定时器地址保留一个16位字。梯形图逻辑指令集支持256个定时器。时间值可以用二进制或BCD码方式读取。4.1.2 S7-300 CPU4.1.2 S7-300 CPU的系统存储器的系统存储器 4、
5、计数器(C)存储器区 在用户CPU的存储器中,有为计数器保留的存储区。此存储区为每个计数器地址保留一个16位字。梯形图指令集支持256个计数器。计数值(0999)可以用二进制或BCD码方式读取。5、数据块/背景数据块(DB) DB为共享数据块,DBX2.3,DBB5,DBW10和DBD12。 DI为背景数据块,DIX, DIB,DIW和DID。 6、外部I/O存储区(PI/PQ) 外设输入(PI)区和外设输出(PQ)区允许直接访问本地的和分布式的输入模块和输出模块。4.1.3 S7-300 CPU4.1.3 S7-300 CPU的寄存器的寄存器 1、累加器(ACCUx) 累加器用于处理字节、字
6、或双字的寄存器。S7-300有两个32位累加器(ACCU1和ACCU2)。2、状态字寄存器(16位) 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测。状态字的结构如图4.4所示。 FCRLOSTAOROVOSCC0CC1BR未用012345678915 图4.4 状态字的结构4.1.4 STEP74.1.4 STEP7数据类型数据类型 在STEP7中,大多数指令要与具有一定大小的数据对象一起操作,不同的数据类型具有不同的格式。编程所用的数据要指定数据类型,要确定
7、数据大小和数据的位结构。数据类型分为3大类。1、基本数据类型 基本数据类型有很多种,每种数据类型在分配内存空间时有确定的位数,如布尔型(BOOL)数据为1位,字节型(BYTE)数据为8位,字型(WORD)数据为16位,双字型(DWORD)数据为32位。基本数据类型见表4-1。4.1.4 STEP74.1.4 STEP7数据类型数据类型表4-1 STEP 7中常用的基本数据类型4.1.4 STEP74.1.4 STEP7数据类型数据类型2、复式数据类型 超过32位或由其他数据类型组成的数据为复式数据类型,STEP7允许4种复式数据类型,见表4-2。表4-2 STEP7中的复式数据类型数据类型数据
8、类型说明说明日期日期_ _时间时间 DT DT DATE_ANDATE_AND_TIMED_TIME定义定义6464位区(位区(8 8字节)。用字节)。用BCDBCD码存储时间信息:字节码存储时间信息:字节0 0,年;字,年;字节节1 1,月;字节,月;字节2 2,日;字节,日;字节3 3,小时;字节,小时;字节4 4,分;字节,分;字节5 5,秒;,秒;字节字节6 6和字节和字节7 7的高位,毫秒;字节的高位,毫秒;字节7 7的低位,星期几的低位,星期几字符串字符串STRINGSTRING可定义可定义254254个字符。字符串的默认大小为个字符。字符串的默认大小为256256字节(存放字节(
9、存放254254个字个字符,外加双字节字头),可以通过定义字符串的实际数目来符,外加双字节字头),可以通过定义字符串的实际数目来减少预留值减少预留值数组数组ARRAYARRAY定义一种数据格式的多维数组定义一种数据格式的多维数组构造构造STRUCTSTRUCT定义多种数据类型组合的数组定义多种数据类型组合的数组4.1.4 STEP74.1.4 STEP7数据类型数据类型3、参数类型 参数类型用于向FB和FC传送参数。STEP7提供的参数类型见表4-3。参数参数大小大小说明说明定时器(定时器(TimerTimer)2 2字节字节指定执行逻辑块时要使用的定时器,如指定执行逻辑块时要使用的定时器,如
10、T1T1计数器(计数器(CounterCounter)2 2字节字节指定执行逻辑块时要使用的计数器,如指定执行逻辑块时要使用的计数器,如C1C1块块Block FBBlock FBBlock FCBlock FCBlock DBBlock DBBlock SDBBlock SDB2 2字节字节如:如:FB1FB1FC1FC1DB1DB1SDB1SDB1指针(指针(Pointer)Pointer)6 6字节字节定义内存单元,如定义内存单元,如P#M30.0P#M30.0ANYANY1010字字节节如果实参的数据类型未知,或可以使用任如果实参的数据类型未知,或可以使用任何数据类型时,如何数据类型时
11、,如P#M30.0P#M30.0,byte 10byte 10表4-3 STEP7的参数类型4.1.5 PLC4.1.5 PLC编程的基本原则编程的基本原则 1 1)外部输入、输出继电器、内部继电器、定时器、计数)外部输入、输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用;器等器件的接点可多次重复使用; 2 2)梯形图每一行都是从左母线开始,线圈接在最右边,)梯形图每一行都是从左母线开始,线圈接在最右边,接点不能放在线圈的右边;接点不能放在线圈的右边; 3 3)线圈不能直接与左母线相连;)线圈不能直接与左母线相连; 4 4)同一编号的线圈在一个程序中使用两次容易引起误操)同一编
12、号的线圈在一个程序中使用两次容易引起误操作,应尽量避免线圈重复使用;作,应尽量避免线圈重复使用; 5 5)梯形图程序必须符合顺序执行的原则,从左到右,从)梯形图程序必须符合顺序执行的原则,从左到右,从上到下地执行,如不符合顺序执行的电路不能直接编程;上到下地执行,如不符合顺序执行的电路不能直接编程; 6 6)在梯形图中串联接点、并联接点的使用次数没有限制,)在梯形图中串联接点、并联接点的使用次数没有限制,可无限次地使用。可无限次地使用。PLC编程应该遵循以下基本原则:4.2 STEP74.2 STEP7的指令结构的指令结构 指令是程序的最小独立单位,用户程序是由若干条顺序排列的指令构成。STE
13、P7编程语言其指令功能非常丰富。利用程序编辑器,可以进行离线编程,即把程序存储在编程器中,也可以进行在线编程,将程序存储在CPU中。4.2.1 指令操作数 指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)。 主标识符有:I(输入过程映像寄存器)、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);辅助标识符有:X(位)、
14、B(字节)、W(字)、D(双字)。 4.2.2 寻址方式 所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。S7-300有4种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。 1、立即寻址 立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以唯一形式隐含在指令中。下面各条指令操作数均采用了立即寻址方式。 SET /把RLO置1 OW W#16#A320 /将常量W#16#A320与累加器1“或”运算 L 27 /把整数27装入累加器1 L C#0100 /把BCD码常数0100装入累加器12、存储器直接寻址 存储器直接寻址,简称直接
15、寻址。该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各条指令操作数均采用了直接寻址方式。A I 0.0 /对输入位I 0.0进行“与”逻辑操作S L 20.0 /把本地数据位L 20.0置1= M 115.4 /使存储区位M 115.4的内容等于RLO的内容L IB 10 /把输入字节IB 10的内容装入累加器1T DBD 12 /把累加器1中的内容传送给数据双字DBD 12中3、存储器间接寻址 存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的
16、内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以用字指针;对于其他存储器则要使用双字指针。存储器间接寻址的双字指针的格式如图4.5所示。 bbbb bxxxbbbb bbbb0000 0bbb0000 00000781 51 62 32 43 1说 明 : 位 0 2 ( x x x ) 为 被 寻 址 地 址 中 位 的 编 号 ( 0 7 )位 3 8 为 被 寻 址 地 址 的 字 节 的 编 号 ( 0 6 5 5 3 5 )位 序bbbb bxxxbbbb bbbb0000 0bbb
17、0000 00000781516232431说明:位02(xxx)为被寻址地址中位的编号(07)位38为被寻址地址的字节的编号(065535)位序图图4.5 4.5 寄存器间接寻址的指针格式寄存器间接寻址的指针格式4.34.3位逻辑指令位逻辑指令 位逻辑指令包含位逻辑运算指令、定时器指令、计数器指令和位测试指令等。可以使用位逻辑指令扫描布尔操作数的状态,通过“与(AND)”、“或(OR)”、“异或(XOR)”及其组合操作实现逻辑操作。所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO”中。逻辑操作结果(RLO)用于赋值、置位/复位布尔操作数,也用于控制定时器和计数器的运行。
18、 4.3.1 触点与线圈 在LAD(梯形图)程序中,通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件,被扫描的操作数(用绝对地址或符号地址表示)则标注在触点符号的上方,如图4.6所示。 图图4.64.6触点符号的表示方式触点符号的表示方式1 1、常开触点、常开触点 对于常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“复位”,即认为是“打开”的。常开触点所使用的操作数是:I、Q、M、L、D、T、C。 2 2、常闭触点、常闭触点 常闭触点(动断触点)则对“0”扫描相应操作数。在
19、PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”, 即触点“闭合”。常闭触点所使用的操作数是:I、Q、M、L、D、T、C。3 3、输出线圈(赋值指令)、输出线圈(赋值指令) 输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。输出线圈等同于STL程序中的赋值指令(用等于号“=”表示)。输出线圈所使用的操作数是:Q、M、L、D。 4、中间输出 在梯形图设计时,如果一个逻辑
20、串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出,存储在位存储器(I、Q、M、L或D)中,该存储位可以当作一个触点出现在其他逻辑串中。中间输出只能放在梯形图逻辑串的中间,而不能出现在最左端或最右端,如图4.7所示。 (a a)带中间输出的梯形图)带中间输出的梯形图 (b) (b) 不带中间输出的等效梯形图不带中间输出的等效梯形图图图4.7 4.7 带中间输出和不带中间输出的梯形图程序带中间输出和不带中间输出的梯形图程序4.3.2 位逻辑运算指令位逻辑运算指令4.3.2 位逻辑运算指令 位逻辑运算指令是对“0”或“1”的布尔操作数进行扫描,经过相应的位逻辑
21、运算,将逻辑运算结果“0”或“1”送到状态字的RLO位。1、“与”和“与非”(A,AN)指令 逻辑“与”在梯形图里是用串联的触点回路表示的,如果串联回路里的所有触点皆闭合,该回路就通“电”了。如图4.8所示。图4.8 “与”逻辑指令2、“或”和“或非”(O,ON)指令 逻辑“或”在梯形图里是用并联的触点回路表示的,被扫描的操作数标在触点上方。在图4.9中,只要有一个触点闭合,输出0.1的信号状态就为“1”。图图4.9 “或或”和和“或非或非”逻辑梯逻辑梯形图形图3、“异或”和“异或非”(X,XN)指令 图4.10是“异或”逻辑梯形图,它类似“或”和“或非”指令,用于扫描并联回路能否“通电”。图
22、图4.10“异或异或”逻辑梯形图逻辑梯形图4、输出指令 逻辑输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。表4.4列出了操作数的数据类型和所在的存储区。LAD指令STL指令功能操作数类型存储区( )=逻辑串赋值输出BOOLQ、M、D、L( # )中间结果赋值输出BOOLQ、M、D、L表表4.4 输出指令输出指令 【例4-1】用“与”、“或”、“输出”指令编写电机启动停止控制程序。编程元件地址分配:启动按钮SB1(常开触点),I0.1; 停止按钮SB2(常闭触点),I0.2; 接触器线圈KM,Q0.0。用梯形图编写的控制程序如图4.11所示。图图4.11 电机
23、启停控制梯形图程序电机启停控制梯形图程序4.4.3 置位和复位指令 置位复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。置位复位指令有关内容见表4.5。表4.5 置位复位指令LAD指令STL指令功能操作数数据类型存储区( R )R复位输出BOOLQ、M、D、LTIMERTCOUNTERC位地址( S )S置位输出BOOLQ、M、D、L(a)复位指令操作)复位指令操作(b)置位操作指令)置位操作指令图图4.12 置位复位指令置位复位指令【例4.2】用置位与复位指令编制传送带运动控制程序。
24、 如图4.13所示为一个传送带,在传送带的起点有两个按钮:用于启动的S1和用于停止的S2。在传送带的尾端也有两个按钮:用于启动的S3和用于停止的S4。要求能从任一端启动或停止传送带。另外,当传送带上的物件到达末端时,传感器S5使传送带停止。 图图4.13传送带示意图传送带示意图地址分配地址分配梯形图程序梯形图程序 图图4.14 控制传送带程序控制传送带程序4.4.4 RS和SR触发器 如果置位/复位指令用功能框图表示就构成了触发器。该功能框有两个输入端,分别是置位输入端S和复位输入端R,有一个输出Q(位地址)。触发器可分为两种类型:置位优先型(RS触发器,当R和S驱动信号同时为“1”时,触发器
25、最终为置位状态)和复位优先型(SR触发器,当R和S驱动信号同时为“1”时,触发器最终为复位状态)。触发器指令和操作数指令见表4.6。复位优先RS置位优先型RS参数数据类型存储区 BOOLQ、M、D、L需要置位、复位的位S允许置位输入R允许复位输入Q的状态表表 4.6 RS触发器触发器 RS触发器分为置位优先和复位优先型两种, 置位优先型RS触发器的R端在S端之上,当两个输入端都为1时,下面的置位输入最终有效。既置位输入优先,触发器或被复位或保持复位不变, 如图4.15所示。图图4.15 4.15 置位优先型置位优先型RSRS触发器触发器4.4.5 位测试指令 当信号状态变化时就产生跳变沿。当从
26、0变到1时,产生一个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负跳沿)。 S7中有两类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点跳变沿直接检测的梯形图方块指令。具体内容见表4.7。LAD指令STL指令功 能操作数数据类型存储区FPRLO正跳沿检测BOOLI、Q、M、D、L(P)FNRLO负跳沿检测BOOLI、Q、M、D、L(N)触点正跳沿检测触点跳沿检测参数数据类型存储区被检测的位(触点)BOOLI、Q、M、D、LM_BIT存储被检测位上一个扫描周期的状态BOOLQ、M、DQ单稳输出BOOLI、Q、M、D、L表表4.7 跳变沿检测指令跳变沿检测指令 图4.16
27、是使用RLO正跳沿检测指令的例子。这个例子中,若CPU检测到输入I1.0有一个正跳沿,将使得输出Q4.0的线圈在一个扫描周期内通电。对输入I1.0常开触点扫描的RLO值存放在存储位M1.0中。图4.16 RLO正跳沿检测 图4.17是使用触点负跳沿检测指令的例子。图中,由给出需要检测的触点编号(I 0.3),(M 0.0)用于存放该触点在前一个扫描周期的状态。 图4.17 触点负跳沿检测 【例4.3】设计故障信息显示电路,若故障信号I0.0为1,使Q4.0控制的指示灯以1HZ的频率闪烁。操作人员按复位按钮I0.1后,如故障信息消失,指示灯熄灭。如果没有消失,指示灯转为常亮,直至故障消失。 分析
28、:故障信息显示程序如图4.18所示,在设置CPU属性时令M1为时钟存储器字节,其中的M1.5提供周期为1S的时钟脉冲。出现故障时,将I0.0提供的故障信号用M0.1锁存起来,使Q4.0控制的指示灯以1Hz的频率闪烁。按复位按钮I0.1后,将故障锁存信号M0.1复位为0状态,如果这时故障以消失,指示灯熄灭。如果没有消失,M0.1的常闭触点与I0.0的常开触点组成的串联电路使指示灯转为常亮,直至故障消失,I0.0变为0状态。图图4.18 故障信息显示梯形图程序故障信息显示梯形图程序4.5 定时器与计数器指令定时器与计数器指令4.5.1 定时器指令1、定时器的种类 定时器是PLC中的重要部件,它用于
29、实现或监控时间序列。定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。不同的CPU模块,用于定时器的存储区域也不同,最多允许使用64512个定时器。在S7-300中有5种定时器可供选择:脉冲定时器(SP)、扩展定时器(SE)、接通延时定时器(SD)、带保持的接通延时定时器(SS)和断电延时定时器(SF)。2、定时器的组成 在CPU的存储器中留出了定时器区域,用于存储定时器的定时时间值。每个定时器有一个16位的字和一个二进制位,定时器的字用来存放它当前的定时时间值,定时器触点的状态由它的位的状态来决定。用定时器地址(T和定时器号,例如T6)来存取它的时间值和
30、定时器位,带操作数的指令存取定时器位,带字操作数的指令存取定时器的时间值。不同的CPU支持32512个定时器,在S7-300中,最多允许使用256个定时器。3、定时器的表示方法 S7中的定时时间由时基和定时值两部分组成,定时时间等于时基与定时值的乘积。采用减计时,定时时间到后会引起定时器触点的动作。时间值以二进制格式存放,定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基,如图4.19所示。表4.8给出了可能出现的组合情况。 表4.8给出了可能出现的组合情况。图图4.19累加器累加器1低字的内容(定时值低字的内容(定时值127,时基,时基1s)表4.8 时基与定
31、时范围设置定时时间,用户需给累加器设置定时时间,用户需给累加器1 1装入需要的数值,为避免格式错误,装入需要的数值,为避免格式错误,用户可以按下列的形式将时间预置值装入累加器的低位字:用户可以按下列的形式将时间预置值装入累加器的低位字:1 1)十六进制数)十六进制数W#16#wxyzW#16#wxyz,其中,其中,w = w = 时间基准,取值为时间基准,取值为0 0,1 1,2 2或或3 3,分别表示时基为分别表示时基为10ms10ms,100ms100ms,1s1s或或10s10s;xyzxyz为定时值,取值范围为为定时值,取值范围为1 1999999;2 2)直接使用)直接使用S5S5中
32、的时间表示法装入定时数值,例如:中的时间表示法装入定时数值,例如:S5T#aH_bM_cS_dMSS5T#aH_bM_cS_dMS,其中,其中,H = H = 小时,小时,M = M = 分钟,分钟,S = S = 秒,秒,MS = MS = 毫秒;毫秒;a a、b b、c c、d d为用户设置的值。可输入的最大时间值为为用户设置的值。可输入的最大时间值为9990s9990s或或2H-46M_30S2H-46M_30S。例如例如S5T#1H_12M_18SS5T#1H_12M_18S为为1h12min18s1h12min18s;S5T#18SS5T#18S为为1818秒。秒。4、定时器梯形图方
33、块指令、定时器梯形图方块指令1)S5脉冲定时器 脉冲定时器的功能类似于数字电路中上升沿触发的单稳态电路,图4.19中的指令框中,S为脉冲定时器的设置输入端,TV为预置值输入端,R为复位输入端;Q为定时器位输出端,BI输出16进制格式的当前时间值,BCD输出当前时间值的BCD码。图图4.19 脉冲定时器指令脉冲定时器指令 在I0.0提供的启动输入信号S的上升沿,脉冲定时器开始定时,输出Q04.0变为1。定时器的当前时间值等于TV端输入的预置值(即初值)减去启动后的时间值。定时时间到时,当前时间值变为0,Q输出变为0状态。在定时期间,如果I0.0的常开触点断开,则停止定时,当前时间值便为0,Q0.
34、0的线圈断电。工作时序如图4.20,图4.20中的t是定时器的预置值。R是复位输入端,在定时器输出为1时,如果复位输入I0.1由0变为1,定时器被复位,复位后输出Q0.0变为0状态,当前时间值和时标被请0。 BI输出端输出不带时基的十六进制整数格式的定时器当前值,BCD输出端输出BCD码格式的当前时间值和时基。图图4.20 脉冲定时器时序脉冲定时器时序2)S5扩展脉冲定时器 S5扩展脉冲定时器如图4.21,各个输入输出端的意义与S5脉冲定时器相同。图图4.21扩展脉冲定时器指令扩展脉冲定时器指令 在启动输入信号S的上升沿,脉冲定时器开始定时,在定时期间,Q输出端为1状态,直到定时结束。在定时期
35、间即使S输入变为0状态,仍继续定时,Q输出端为1状态,直到定时结束。在定时期间,如果S输入又由0变为1状态,定时器被重新启动,开始以预置的时间值定时。 R输入有0变为1状态时,定时器被复位,停止定时。复位后Q输出端变为0状态,当前时间和时标被清0。工作时序图如图4.22所示。 图图4.22 4.22 扩展脉冲定时器时序扩展脉冲定时器时序3)S5开通延时计时器 接通延时定时器是使用最多的定时器,定时器各输入端和输出端的意义和S5脉冲定时器相同,如图4.23。图4.23 开通延时定时器指令 在启动输入信号S的上升沿,定时器开始定时。定时器的当前时间值等于预设值TV减去启动后的时间值。如果定时期间S
36、的状态一直为1,定时时间到时,当前时间值变为0,Q输出端变为1状态,使Q0.2的线圈通电。此后如果S输入由1变为0,Q输出端的信号也变为0。 在定时期间,如果S输入由1变为0,则停止定时,当前时间值保持不变。S又变为1时,又从预设值开始定时,工作时序图如图4.24。 R是复位输入信号,定时器的S输入为1时,不管定时时间是否已到,只要复位输出R由0变为1,定时器都要被复位,复位后当前时间和时基被清0。如果定时时间已到,复位后输出Q由1变为0。图4.24 开通延时计时器时序4)S5保持型接通延时定时器 定时器各输入端和输出端的意义与S5定时器相同,如图4.25所示。在启动输入信号S的上升沿,定时器
37、开始定时,工作时序图如图4.26所示,定时期间及输入S变为0,仍然继续定时。定时时间到时,输出Q变为1并保持。在定时期间,如果输入S又由0变为1,定时器被重新启动,又从预置值开始定时。不管输入S是什么状态,只要复位输入R从0变为1,定时器就被复位,输出变为0。 图4.25 保持型开通延时定时器图图4.26 4.26 保持型开通延时定时器时序保持型开通延时定时器时序图4.26 保持型开通延时定时器时序5)S5断开延时定时器 定时器各输入端和输出端的意义与S5脉冲延时器相同,如图4.27。在启动输入信号S的上升沿,定时器的Q输出信号变为1状态,当前时间值为0。在S输入的下降沿,定时器开始定时。定时
38、时间到时,输出Q变为0状态,正在定时的时候,如果S信号由0变为1,定时器的时间值保持不变,停止定时。如果输入S重新变为0,定时器从预置值开始重新定时。 复位输入I0.1为 1状态时,定时器被复位,时间值被清0,输出Q变为0状态。 S5断开延时定时器工作时序图如图4.28。图4.27 断开延时定时器图4.28 断开延时定时器工作时序图5 5、定时器线圈指令、定时器线圈指令1)脉冲定时器线圈 脉冲定时器线圈的功能和时序图和S5脉冲定时器的相同,定时器位为1时,定时器的常开触点闭合,常闭触点断开。在图4.29中,当I0.0的常开触点由断开变为接通时,定时器开始定时,T0的常开触点闭合。定时时间到时,
39、T0的常开触点断开。在定时期间,如果I0.0变为0状态,或者复位输入I0.1变为1状态,T0的常开触点都将断开,定时器的当前值被清0。图4.29 脉冲定时器线圈2)扩充的脉冲定时器线圈 在图4.30中,当I0.2的常开触点由断开变为接触时,定时器T1开始定时,在定时期间,T1的常开触点闭合。定时时间到时,T1的常开触点断开。在定时期间,即使I0.2变为0状态,仍继续定时。定时期间如果I0.2又由0状态变为1状态,定时器被重新启动。复位输入I0.3由0变为1状态时,T1被复位,其常开触点断开。3)接通延时定时器线圈 如图4.31当I0.4的常开触点由断开变为接通时,定时器T2开始定时,如果I0.
40、4一直为1,定时时间到时,T2的常开触点闭合。定时期间如果SD的线圈断电,T2 的当前时间保持不变。线圈重新通电时,又从预置值开始定时。复位输入I0.5变为1时,T2的常开触点断开,时间被清0。图图4.30 扩充的脉冲定时器线圈扩充的脉冲定时器线圈4)保持型接通延时定时器线圈 如图4.32,当I0.6的常开触点由断开变为接通时,定时器开始定时。定时期间即使T3的线圈断电,仍继续定时。定时时间到时,T3的定时器位变为1,其常开触点闭合。只有复位输入I0.7变为1,才能使T3复位,复位后其定时器位变为0,常开触点断开。在定时期间,I0.6的常开触点如果断开后又变为接通,定时器将被重新启动,以设置的
41、预置值重新开始定时。图图4.31 4.31 接通延时定时器线圈接通延时定时器线圈5)断开延时定时器线圈 如图4.33,当I1.0的常开触点由断开变为接通时,T4的输出变为1,其常开触点闭合。在I1.0的下降沿,定时器开始定时。定时器到时,T5的时间值变为0,其常开触点断开。在定时期间,如果I1.0的常开触点由断开变为接通,定时器的时间值保持不变,停止定时。如果I1.0的常开触点重新断开,定时器从预置值开始重新启动定时。 复位输入I1.1为1状态时,定时器被复位,时间值被清0,Q4.4的线圈断电。图图4.32保持型接通延时定时器线圈保持型接通延时定时器线圈对于以上不同形式的定时器指令,一般的选择
42、原则是:1、如果要求输入信号为1的时间等于定时器的设定时间,且要求输入与输出信号状态一致时,可选择脉冲定时器SP;2、如果要求输出信号为1的时间等于定时器的设定时间,但不要求输入与输出信号状态一致,不考虑输入信号为1的时间长短,可选择扩展定时器SE;3、如果要求设定时间到且输入信号仍为1时,输出信号才从0变到1,可选择接通延时定时器SD;图图4.33 4.33 断开延时定时器线圈断开延时定时器线圈4、如果要求设定时间到时,输出信号才从0变到1,而不考虑输入信号此时的状态及为1的时间长短可选择保持型接通延迟定时器SS;5、如果要求输入信号从0变到1时,输出信号也从0变化到1,当输入信号从1变化到
43、0才开始延迟,延迟时间到时输出信号才从1变化到0,可选择断开延迟定时器SF。【例4.4】脉冲定时器应用:优先抢答器设计图4.32抢答器示意图设计说明: 参赛者要抢答主持人所提问题时,需抢先按下桌上的按钮;指示灯亮后需待主持人按下“复位”键R后才熄灯;对初中班学生照顾,只要按下SB11和SB12中任一个按钮灯HL1都亮;对高三班学生限制,只有SB31和SB32都按下时灯HL3才亮;若在主持人按下“开始”按钮S后10s内有抢答按钮压下,则电磁铁YC得电,使彩球摇动,以示竞赛者得到一次幸运的机会;如果定时到仍未有抢答,则禁止继续抢答,如图4.32。 参考答案:端子接线图,如图4.33.图4.33抢答
44、器端子接线图I/O地址分配表 ,如图4.34图4.34抢答器I/O地址分配表 控制程序如图4.35设置抢答定时器设置抢答定时器初中组抢答控制初中组抢答控制高一组抢答控制高一组抢答控制 图4.35抢答器的梯形图程序高三组抢答控制高三组抢答控制【例4.5】扩展脉冲定时器应用电动机延时自动关闭控制。 控制要求:按动起动按钮S1(I0.0),电动机M(Q4.0)立即起动,延时5分钟以后自动关闭。起动后按动停止按钮S2(I0.1),电动机立即停机。 控制程序如图4.36。图4.36电动机延时自动关闭控制梯形图【例4.6】接通延时定时器和脉冲定时器应用用定时器构成一脉冲发生器,当满足一定条件时,能够输出一
45、定频率和一定占空比的脉冲信号。 控制要求:当按钮S1(I0.0)按下时,输出指示灯H1(Q4.0)以灭2s,亮1s规律交替进行。 (方法(方法1:使用接通延时定时器):使用接通延时定时器) (方法(方法2:使用脉冲定时器):使用脉冲定时器) 图4.37应用接通延时定时器和脉冲定时器构成脉冲发生器梯形图【例4.7】接通延时定时器的应用电动机顺序起停控制。控制要求:如图4.38所示,某传输线由两个传送带组成,按物流要求,当按动起动按钮S1时,皮带电机Motor_2首先起动,延时5s后,皮带电机Motor_1自动起动;如果按动停止按钮S2,则Motor_1立即停机,延时10s后,Motor_2自动停
46、机。 图4.38电机顺序起停控制示意图图图4.40I/O地址分配表地址分配表图图4.39电机顺序起停控制接线端子图电机顺序起停控制接线端子图 图4.41电机顺序起停控制梯形图程序 【4.8】闪烁灯控制程序。某信号灯HL,当开关S1接通后,就以灭1S、亮2S的频率不断闪烁。IO地址分配:本例中只有一个输入,开关S1,编程地址为I0.0;1个输出 ,信号灯HL,编程地址为Q4.0。因为信号灯点亮和熄灭的时间不同,所以需要两个定时器T1和T2,T1的时间设定值为2S,T2的时间设定值为1S。控制程序如下: 图4.42信号灯闪烁控制程序【4.9】定时器扩展应用。在S7-300中,单个定时器的最大计时范
47、围是9990s(2H_46M_30S),如果超过这个范围,可以采用两个或多个定时器级联的方法来扩展计时范围。 现在考虑一个要求延时为5个小时的控制任务。 假定T1的时间设定值为2H_20M,T2的时间设定值为2H_40M,则T1+t2=5H。其控制程序如图所示。图4.43两个定时器级联梯形图【4.10】用定时器设计周期和占空比可调的震荡电路。 图4.44中I0.0的常开触点接通后,T8的线圈通电,开始定时。2S后定时时间到,T8的常开触点接通,使Q4.7变为1状态,同时T9开始定时。3S后T9的定时时间到,它的常闭触点断开使T8的线圈断电,T8的常开触点断开,使Q4.7和T9的线圈断电。 下一
48、个扫描周期因T9的常闭触点接通,T8又从预置值开始定时,以后Q4.7的线圈将这样的周期性地通电和断电,直到I0.0变为0状态。Q4.7线圈通电和断电的时间分别等于T9和T8的预置值。振荡电路实际上是一个有正反馈的电路,T8和T9通过它们的触点分别控制对方的线圈,形成了正反馈。图4.44振荡电路梯形图4.5.2计数器指令 计数器是PLC提供的一个基本功能,S7系列PLC的CPU中有专门的计数器存储区,计数器存储区的大小由CPU的型号决定。例如:CPU313C的PLC计数存储区为256个计数器,即C0-C255。每个计数器有一个16位的字和一个二进制的位,计数器的字用来存放它的当前值,计数器触点的
49、状态由它的位的状态来决定。计数器指令是存取计数器存储区的唯一功能。 S7300中有3种计数器可供选择:加计数器(CU)、减计数器(CD)和加减技术器(CUD)。与定时器指令一样,计数器指令在梯形图中也有两种表示形式:计数器线圈指令表4.9和计数器方框指令表4.10。两者可实现相同的功能,用户可根据实际需要选择使用。表4.9计数器线圈指令表表4.10 计数器方框指令表1、加计数器 如图4.45的指令框中,S为加计数器的设置输入端,PV为设置值输入端,CU为加计数脉冲输入端,R为复位输入端;Q为计数器位输出端,CV输出十六进制格式的当前计数值,BCD输出当前计数值的BCD码。图图4.45加计数器梯
50、形图加计数器梯形图 在“设置”输入信号I0.1的上升沿,将预置值PV指定的值送入计数器字。在“加计数脉冲”输入信号I0.0的上升沿,如果计数值小于999,计数值加1。“复位”输入信号I0.2为1时,计数器被复位,计数值被清0。计数值大于0时计数器位即输出Q为1;计数值为0时,计数器复位也为0。 如果在用“设置”输入S设置计数器时CU输入为1,即使信号没有变化,下一个扫描周期也会计数。2、加计数器线圈 设置计数值线圈SC用来设置计数值,该指令仅在RLO的上升沿(由0变为1)时执行,此时预置值被送入指定的计数器。图4.46中I0.2的触点由断开变为接通时,预置值6给送入计数器C10。 图中标有CU