第3章-S7-200-PLC功能指令及程序设计-《西门子PLC系统综合应用技术》课件_第1页
第3章-S7-200-PLC功能指令及程序设计-《西门子PLC系统综合应用技术》课件_第2页
第3章-S7-200-PLC功能指令及程序设计-《西门子PLC系统综合应用技术》课件_第3页
第3章-S7-200-PLC功能指令及程序设计-《西门子PLC系统综合应用技术》课件_第4页
第3章-S7-200-PLC功能指令及程序设计-《西门子PLC系统综合应用技术》课件_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西门子PLC系统综合应用技术第三章

刘文芳方强编著西门子PLC系统综合应用技术刘文芳方强编著第3章S7-200PLC功能指令及程序设计

3.1数据传送、移位和填充指令

3.1.1传送类指令1.单一传送指令单一传送(Move)包括字节传送(MOVB)、字传送(MOVW)、双字传送(MOVD)和实数传送指令(MOVR)。2.块传送指令块传送指令(BlockMove)可进行一次多个数据的传送,包括字节块传送(BMB)、字块传送(BMW)、双字块传送(BMD)和实数传送(BMR)指令。3.字节立即传送(读和写)指令字节立即传送指令允许在物理I/O和存储器之间立即传送一个字节数据。第3章S7-200PLC功能指令及程序设计

3.13.1.2移位和循环移位指令1.右移和左移指令右移(SRB)和左移(SLB)指令将输入数值(IN)向右或向左移动N位,并将结果载入输出字节OUT中。2.循环右移和循环左移指令循环移位指令将输入值IN循环右移或者循环左移N位,并将输出结果装载到OUT中。循环移位是圆形的。3.移位寄存器指令移位寄存器(SHRB)指令每次使能有效时,在每个扫描周期内整个移位寄存器移动一位,每次移位将DATA数值补入移位寄存器空出的位。3.1.2移位和循环移位指令1.右移和左移指令3.1.3字节交换及内存填充指令

1.字节交换指令字节交换指令(SWAP)用来交换输入字IN的高字节和低字节。结果仍放在IN中。2.内存填充指令内存储器填充指令(FILL)用输入值(IN)填充从输出(OUT)开始的N个字的内容。N的范围从1~255。3.1.3字节交换及内存填充指令1.字节交换指令3.1.4表功能指令1.填表指令填表指令(ATT),图中TBL是表的首地址,DATA是要向表中添加的数据,新的数据填加在表中上一个数据的后面。每向表中填加一个新的数据,EC会自动加1。一个表最多可以有100条数据。2.先进先出指令先进先出指令(FIFO)从表(TBL)中移走第一个数据,并将此数输出到DATA。剩余数据依次上移一个位置。3.后进先出指令后进先出指令(LIFO从表(TBL)中移走最后一个数据,并将此数输出到DATA。4.查表指令查表指令(FND)搜索表,以查找符合一定规则的数据。3.1.4表功能指令1.填表指令3.2运算和数学指令

3.2.1算术运算指令1.加法指令加法操作指令(ADD)是对两个有符号数进行相加操作,包括整数加法指令+I、双整数加法指令+D和实数加法指令+R。2.减法指令减法指令(SUB)是对两个有符号数进行减操作,3.乘法指令乘法指令(MUL)是对两个有符号数进行乘法操作。4.除法指令除法指令(DIV)是对两个有符号数进行除法操作。3.2运算和数学指令

3.2.1算术运算指令1.加3.2.1算术运算指令5.递增和递减指令递增(INC)和递减(DEC)指令也称为自动加1和自动减1指令,递增和递减指令的梯形图和语句表格式如图3-13所示。在□中可以是B(字节)、W(字)、DW(双字),在语句表中DW写为D。字节增减指令是无符号的,而字和双字增减指令是有符号的。递增指令的功能:当使能信号接通时,在梯形图中,IN+1=OUT;在语句表中OUT+1=OUT。递减指令的功能:当使能信号接通时,在梯形图中,IN-1=OUT;在语句表中OUT-1=OUT。3.2.1算术运算指令5.递增和递减指令3.2.2数学函数指令1.平方根指令平方根指令(SQRT)当使能信号接通时,将由IN输入的一个双字长的实数开平方,运算结果存放到OUT中。2.自然对数指令自然对数指令(LN)当使能信号接通时,计算输入值IN的自然对数,并将结果存放到OUT中。3.自然指数指令自然指数指令(EXP)当使能信号接通时,计算输入值IN的自然指数值,并将结果存放到OUT中。4.三角函数正弦、余弦和正切指令三角函数指令当使能信号接通时,计算角度值IN的三角函数值,并将结果存放在OUT中。3.2.2数学函数指令1.平方根指令3.2.3逻辑运算指令1.逻辑与指令逻辑与指令(AND)功能:当使能信号接通时,将输入值IN1和IN2的相应位进行与操作(即如果两个操作数的同一位均为1,运算结果的对应位为1,否则为0),将结果存入OUT中。2.逻辑或指令逻辑或指令(OR)的功能:当使能信号接通时,将两个输入值IN1和IN2的相应位进行或操作(即如果两个操作数的同一位均为0,运算结果的对应位为0,否则为1),将结果存入OUT中。3.逻辑异或指令逻辑异或指令(XOR)的功能:当使能信号接通时,将两个输入值IN1和IN2的相应位进行异或操作(即如果两个操作数的同一位不同,运算结果的对应位为1,否则为0),将结果存入OUT中。4.取反指令取反指令(INV)的功能:当使能信号接通时,将输入IN中二进制数逐位取反(即二进制数的各位由0变为1,由1变为0),并将结果存入到OUT中。3.2.3逻辑运算指令1.逻辑与指令3.3转换指令

3.3.1.标准转换指令1.数字转换(包含9条转换指令)1)字节转为整数指令

2)整数转为字节指令3)双整数转为整数指令4)整数转为双整数指令5)BCD码转为整数指令6)整数转为BCD码指令7)双整数转为实数指令8)四舍五入取整指令9)舍去小数取整指令3.3转换指令

3.3.1.标准转换指令1.数字3.3.2译码、编码和段码指令1.译码指令译码指令(DECO)的功能:当EN有效时,将字节型输入数据IN的低4位的内容译成位号(00~15),由该位号指定OUT字型数据中对应位置1,其余位置0。2.编码指令编码指令(ENCO功能:当EN有效时,将输入字IN的最低有效位的位号写入输出字节OUT的最低有效“半字节”(4位)中。3.段码指令段码指令(SEG)的功能:当EN有效时,将IN中指定的字符(字节)转换生成一个点阵并存入OUT指定的变量中。3.3.2译码、编码和段码指令1.译码指令3.4子程序

3.4.1子程序的作用S7-200PLC把用户程序主要分为3部分:主程序、子程序和中断程序。在实际应用中有些程序内容可能被反复使用,对那些需要经常执行的程序段,可设计成子程序的形式,并为每个子程序赋以不同的编号,在程序执行的过程中,可随时调用某个编号的子程序。子程序的优点在于它可以用于对一个大的程序进行分段及分块,使其成为较小的更易管理的程序块,程序调试、程序检查和程序维护时,可充分利用这项优势。子程序只在需要时才被调用、执行,使用子程序可以减少扫描时间。3.4子程序

3.4.1子程序的作用S7-200PL3.4.2子程序的创建

可以采用下列方法创建子程序:1)在编辑环境的程序块中单击鼠标右键→插入子程序SBR_n。(n的范围为:CPU221~226主机n为0~63;CPU226XM主机n为0~127)。2)从编辑菜单中,选择插入子程序SBR_n。只要插入了子程序,程序编辑器底部就将出现一个新标签,标志新的子程序名,可以对子程序按照自己的思路重新命名。此时,可以对新的子程序编程。3.4.2子程序的创建

可以采用下列方法创建子程序:3.4.3子程序调用指令和返回指令子程序调用指令(CALL)和子程序条件返回指令(CRET)的梯形图和语句表格式如图所示。

3.4.3子程序调用指令和返回指令3.5.1中断的几个概念

1.中断源及种类中断源,即中断事件发出中断请求的来源这些中断源大致分为三大类:1)通信口中断:PLC的串行通信口可由程序来控制。通信口的这种操作模式称为自由端口模式。2)I/O中断:I/O中断包含了上升沿或下降沿中断、高速计数器中断和脉冲串输出(PTO)中断。3)时基中断:时基中断包括定时中断和定时器T32/T96中断。CPU可以支持定时中断。可以用定时中断指定一个周期性的活动。2.中断优先级在S7-200的中断系统中,将全部中断事件按中断性质和轻重缓急分配不同的优先级,使得当多个中断事件同时发出中断请求时,按照优先级的从高到低进行排队,优先级的顺序按照中断性质依次是通信中断、高速脉冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中断3.中断队列在各个指定的优先级之内,CPU按先来先服务的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中断程序开始执行,它要一直执行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。3.5.1中断的几个概念

1.中断源及种类3.5.2中断指令1.中断允许(开中断)指令和中断禁止(关中断)指令2.中断条件返回指令3.中断连接指令4.中断分离指令5.清除中断事件指令3.5.2中断指令1.中断允许(开中断)指令和中断禁止3.5.3中断程序

1.中断程序的概念中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。2.中断程序的构成中断程序由3部分构成:中断程序标号、中断程序指令和无条件返回指令。3.中断设计步骤1)确定中断源(中断事件号)申请中断所需要执行的中断处理程序,并建立中断处理程序INTn,从编辑菜单中,选择插入中断程序,程序编辑器底部就将出现一个新标签INTn,右击标签INTn,可以对中断程序按照自己的思路重新命名。2)在中断程序INTn中编写其应用程序。3)在主程序或控制程序中,编写中断连接指令(ATCH)。4)在主程序中开中断(ENI)。5)如果需要的话,可以编写中断分离指令(DTCH)。3.5.3中断程序

1.中断程序的概念3.5.3中断程序

例3-2

编写实现中断事件0的控制程序。中断事件0是中断源I0.0上升沿产生的中断事件。当I0.0有效且开中断时,系统可以对中断0进行响应,执行中断服务程序INT-0。设中断服务程序的功能:若使I1.0接通,则Q1.0为ON;若I0.0发生错误(自动SM5.0接通有效),则立即禁止其中断。3.5.3中断程序

例3-2编写实现中断事件0的控制程3.6高速计数器

3.6.1高速计数器的基本概念在PLC中处理比扫描频率高的输入信号的任务是由高速计数器来完成的,高速计数器HSC用来累计比PLC扫描频率高得多的脉冲输入,利用产生的中断事件完成预定的操作。用高速计数器可连接增量脉冲编码器用于检测位置和速度,实现高速运动的精确控制。

3.6高速计数器

3.6.1高速计数器的基本概念3.6.2高速计数器的工作模式

S7-200CPU高速计数器可以分别定义为4种工作类型:1)单相计数器内部方向控制(无外部方向输入信号)。2)单相计数器外部方向控制。3)双相增/减计数器,双脉冲输入。4)A/B相正交脉冲输入计数器。每种高速计数器类型可以设定为3种工作状态:1)无复位、无启动输入。2)有复位、无启动输入。3)既有复位、又有启动输入。3.6.2高速计数器的工作模式

S7-200CPU高速3.6.3高速计数器相关的特殊存储器1.高速计数器的控制字节只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。每个高速计数器都有一个控制字节,包括以下内容:配置复位和启动信号的有效状态以及选择一倍速或者4倍速计数模式;使能或者禁止计数器;控制计数方向;装载初始值;装载预置值。2.初始值和预置值的设置各高速计数器均有一个32位的预置值和一个32位的初始值,预置值和初始值均为有符号双字整数。3.高速计数器寻址如果要指定高速计数器(HC)的地址,访问高速计数器的计数值,要使用存储器类型HC和计数器号(例如HC0)。4.指定中断

所有计数器模式都支持在HSC的当前值等于预设值时产生一个中断事件。5.高速计数器的状态字节每个高速计数器都有一个状态字节,其中的状态存储位指出了当前计数方向,当前值是否大于或者等于预置值。3.6.3高速计数器相关的特殊存储器1.高速计数器的控3.6.4高速计数器指令1)定义高速计数器指令:定义高速计数器指令(HDEF)为指定的高速计数器设置一种工作模式,即用来建立高速计数器与工作模式之间的联系,模式的选择决定了高速计数器的时钟方向、启动和复位功能。2)高速计数器指令:高速计数器指令(HSC)根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作。3.6.4高速计数器指令1)定义高速计数器指令:定义高速3.7高速脉冲输出

3.7.1高速脉冲输出的概念S7-200CUP有两个高速脉冲输出点(Q0.0和Q0.1),输出频率可达20kHz,新产品CPU224XP的两路高速脉冲输出频率可以达到100kHz。它们可以分别工作在PTO(高速脉冲串输出)或者PWM(脉宽调制输出)状态下。PTO功能按照给定的脉冲个数和周期(频率)输出一串占空比50%的脉冲。PWM功能可以输出一串占空比可调的脉冲,用户可以控制脉冲的周期(频率)和脉宽。脉冲计数范围从1~4294967295是双字长无符号数,周期范围从10~65535μs或从2~65535ms是单字长无符号数。使用PTO或者PWM功能可以控制步进电动机和伺服电动机,实现速度、位置的开环运动控制。当采用高速脉冲输出功能时,必须采用晶体管输出型的PLC。3.7高速脉冲输出

3.7.1高速脉冲输出的概念S73.7.2高速脉冲输出指令高速脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。高速脉冲输出指令的梯形图和语句表格式如图3-30所示。操作数Q为常数(0或1)。3.7.2高速脉冲输出指令3.7.3PTO/PWM向导编程

为了简化用户应用程序中位控功能的使用,编程软件Step7Micro/WINV4.0内置的PTO/PWM编程向导,可以帮助用户在几分钟内全部完成PWM,PTO或位控模块的组态。位控向导可以生成位置指令,可以用这些指令在应用程序中为速度和位置提供动态控制。3.7.3PTO/PWM向导编程

为了简化用户应用程序中3.8模拟量控制

3.8.1模拟量控制的概念1.关于模拟量控制系统模拟量控制系统是指输入/输出信号为模拟量的控制系统。控制系统的控制方式上可分为开环控制和闭环控制。开环控制是根据控制的设定值直接向控制对象输出控制信号,这种控制容易受外界干扰而偏离控制目标。对于控制要求比较高的场合,一般都采用闭环控制方式。闭环控制是使用控制的设定值与反馈值的差进行控制的,以求得设定值与反馈值的偏差最小。因而闭环控制也叫偏差控制。2.模拟量闭环控制系统的组成PLC模拟量闭环控制系统由PLCCPU模块、模拟量输入/输出模块、执行机构、被控对象及测量元件组成,如图所示。3.8模拟量控制

3.8.1模拟量控制的概念1.关3.8.2模拟量控制的使用方法

1.S7-200PLC的模拟量扩展模块S7-200CPU除了CPU224外要附加模拟量扩展模块才能实现模拟量输入/输出的功能。普通模拟量模块有:EM231、EM232、EM235等。2.S7-200模拟量数据格式模拟量输入/输出数据是有符号整数,占用一个字长(两个字节),所以地址必须从偶数字节开始。模拟量的转换精度为12位,但在PLC中表示为-32000-+32000之间的整数值。3.S7-200模拟量的寻址1)CPU224XP本体上的模拟量输入通道的地址为AIW0和AIW2;模拟量输出通道的地址为AQW0。如果采用其他型号的CPU,则通道的地址AIW0、AIW2和AQW0可以被模拟量扩展模块使用。

4.模拟量滤波器

S7-200允许用户为每一路模拟量输入选择软件滤波器。

5.模拟量比例换算因为A/D(模/数)、(D/A)数/模转换之间的对应关系,S7-200CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。3.8.2模拟量控制的使用方法

1.S7-200P3.8.2模拟量控制的使用方法

6.模拟量扩展模块接线图EM235最常用的模拟量扩展模块,它实现了4路模拟量输入和1路模拟量输出功能。EM235模拟量扩展模块接线图如图所示。3.8.2模拟量控制的使用方法

6.模拟量扩展模块接线3.8.3模拟量控制的编程实例本实例是一个温度显示的控制程序,CPU选择CPU222,带一个模拟量扩展模块EM235,该模块的第一个通道连接一块带4~20mA变送输出的温度显示仪表,该仪表的量程设置为0~100℃,即0℃时输出4mA(对应数据为6400),100℃时输出20mA(对应数据为32000)。经研究算法公式,温度显示值={[(AIW0-6400)/(32000-6400)]×100}={(AIW0-6400)/(320-64)}℃,6个DIP开关设置为:100001,因传感器采用热电阻所以不使用输入滤波器。编译并运行程序,观察程序状态,把显示的温度值放到VW30,对照仪表显示值是否一致。3.8.3模拟量控制的编程实例本实例是一个温度显示的控制3.9比例/积分/微分回路控制指令

3.9.1PID回路控制的概念PID即比例积分微分控制,是一种闭环自动控制算法,目的是使被控制的物理量追随给定值且稳定性好,自动消除各种因素对控制效果的扰动。因为PID控制器具有自整定的功能,不需要精确研究被控对象的数学模型,能自动整定PID参数。使用起来非常方便,得到了广泛的应用。S7-200CPU提供了8个回路的PID功能,用以实现需要按照PID控制规律进行自动调节的控制任务,例如温度、压力、流量控制等。PID功能一般需要模拟量输入,以反映被控物理量的实际数值,称为反馈;而用户设定的调节目标值称为给定。PID运算的任务就是根据反馈与给定的相对差值,按照PID运算规律计算出结果,输出数字量控制信号到固态开关元件(控制加热元件的接通和断开),或输出模拟量信号给执行机构如控制电动调节阀的开度,以达到自动调节被控量跟随给定变化的目的。3.9比例/积分/微分回路控制指令

3.9.1PID3.9.2PID回路控制的指令1.PID回路控制的指令PID回路控制指令利用表(TBL)中的输入和配置信息,在被参考的LOOP执行PID回路计算。PID回路控制指令的梯形图和语句表格式如图所示。EN:启动PID指令输入信号;TBL:PID回路表的起始地址(由变量存储器VB指定字节型数据);LOOP:PID控制回路号(0~7)。PID回路指令(包含比例、积分、微分回路)可以用来进行PID运算。但是,可以进行这种PID运算的前提条件是逻辑堆栈栈顶(TOS)值必须为1。指令功能:在输入有效时,根据回路表(TBL)中的输入配置信息,对相应的LOOP回路执行PID回路计算,其结果经回路表指定的输出域输出。3.9.2PID回路控制的指令1.PID回路控制的3.9.3PID指令向导Micro/WIN提供了PIDWizard(PID指令向导),可以帮助人们方便地生成一个闭环控制过程的PID算法。此向导可以完成绝大多数PID运算的自动编程,用户只需在主程序中调用PID向导生成的子程序,就可以完成PID控制任务。1.PID向导编程步骤1)在STEP7V4.0软件指令树中单击向导前面的+号,双击,弹出PID向导窗口如图3-53所示。然后选择配置PID回路,如选择回路0。单击下一步。3.9.3PID指令向导Micro/WIN提供了PID3.9.3PID指令向导2)设定PID回路参数弹出设定回路参数窗口如图所示。定义回路设定值(SP,即给定)的范围:在低限和高限输入域中输入实数,默认值为0.0和100.0,表示给定值的取值范围占过程反馈量程的百分比。这个范围是给定值的取值范围。它也可以用实际的工程单位数值表示。以下定义PID回路参数,这些参数都应当是实数。3.9.3PID指令向导2)设定PID回路参数弹出设定3.9.3PID指令向导3)设定回路输入输出选项弹出设定回路输入输出选项窗口如图所示3.9.3PID指令向导3)设定回路输入输出选项弹出设3.9.3PID指令向导4)设定回路报警选项弹出设定回路报警限值选项窗口如图所示。3.9.3PID指令向导4)设定回路报警选项弹出设定回3.9.3PID指令向导5)指定PID运算数据存储区弹出分配运算数据存储区窗口如图所示。PID指令(功能块)使用了一个120个字节的V区参数表来进行控制回路的运算工作,自动分配的地址只是在执行PID向导时编译检测到空闲地址。向导将自动为该参数表分配符号名,用户在编写程序时不能再使用这些V区地址,否则将导致PID控制不执行。设置完成单击下一步。3.9.3PID指令向导5)指定PID运算数据存储区弹3.9.3PID指令向导6)定义向导所生成的PID初始化子程序和中断程序名及手/自动模式弹出指定子程序、中断服务程序名和选择手动控制窗口如图3-58所示。向导已经为初始化子程序和中断子程序定义了默认名,你也可以修改成自己起的名字。3.9.3PID指令向导6)定义向导所生成的PID初始化3.9.3PID指令向导7)生成PID子程序、中断程序及符号表弹出生成PID子程序、中断程序和符号表等窗口如图3-59所示。单击完成按钮,将在其项目中生成上述PID子程序、中断程序及符号表等。3.9.3PID指令向导7)生成PID子程序、中断程序及3.9.3PID指令向导8)在程序中调用向导生成的PID子程序配置完PID向导。9)实际运行并调试PID参数没有一个PID项目的参数不需要修改而能直接运行,因此需要在实际运行时调试PID参数。

3.9.3PID指令向导8)在程序中调用向导生成的PID3.9.4PID自整定功能1.PID调节控制面板新的S7-200CPU支持PID自整定功能,在STEP7-Micro/WINV4.0中也添加了PID调节控制面板。可以使用用户程序或PID调节控制面板来启动自整定功能。3.9.4PID自整定功能1.PID调节控制面板3.10功能指令应用及程序设计3.10.1用PLC控制彩灯的闪烁控制要求:共16个彩灯分别接到Q0.0~Q1.7,按下启动按钮后,启动一个工作周期,每周期分为4个步骤,步骤1:Q0.0~Q1.7依次点亮一次;步骤2:Q1.7~Q0.0依次点亮一次;步骤3:Q0.0~Q1.7依次点亮并保持至全亮;步骤4:Q1.7~Q0.0依次熄灭至全灭,然后自动开始下一个周期的循环。按下停止按钮后系统停止。3.10功能指令应用及程序设计3.10.1用PLC控3.10功能指令应用及程序设计3.10.1接上图3.10功能指令应用及程序设计3.10.1接上图3.10.2用PLC控制机械手的动作

控制要求:机械手动作示意图如图3所示。初始状态:机械手在原位(转臂在右边、上位、手臂缩回、手爪松开)光电开关检测到A点有工件,机械手开始启动。动作顺序如下:1手臂伸出,2手臂下降,3手爪夹紧(抓起工件),4手臂上升,5手臂缩回,6手臂左转,7手臂伸出,8手臂下降,手爪松开(放下工件),10手臂上升,11手臂缩回,12手臂右转(回到初始状态等待)。每一个动作到位以后(压限位开关),自动执行下一个动作。每次光电开关检测到A点有工件后,机械手重复执行上述动作,3.10.2用PLC控制机械手的动作

控制要求:机械手动3.10.2用PLC控制机械手的动作机械手控制程序图1)3.10.2用PLC控制机械手的动作机械手控制程序图1)3.10.2用PLC控制机械手的动作机械手控制程序图2)3.10.2用PLC控制机械手的动作机械手控制程序图2)西门子PLC系统综合应用技术第三章

刘文芳方强编著西门子PLC系统综合应用技术刘文芳方强编著第3章S7-200PLC功能指令及程序设计

3.1数据传送、移位和填充指令

3.1.1传送类指令1.单一传送指令单一传送(Move)包括字节传送(MOVB)、字传送(MOVW)、双字传送(MOVD)和实数传送指令(MOVR)。2.块传送指令块传送指令(BlockMove)可进行一次多个数据的传送,包括字节块传送(BMB)、字块传送(BMW)、双字块传送(BMD)和实数传送(BMR)指令。3.字节立即传送(读和写)指令字节立即传送指令允许在物理I/O和存储器之间立即传送一个字节数据。第3章S7-200PLC功能指令及程序设计

3.13.1.2移位和循环移位指令1.右移和左移指令右移(SRB)和左移(SLB)指令将输入数值(IN)向右或向左移动N位,并将结果载入输出字节OUT中。2.循环右移和循环左移指令循环移位指令将输入值IN循环右移或者循环左移N位,并将输出结果装载到OUT中。循环移位是圆形的。3.移位寄存器指令移位寄存器(SHRB)指令每次使能有效时,在每个扫描周期内整个移位寄存器移动一位,每次移位将DATA数值补入移位寄存器空出的位。3.1.2移位和循环移位指令1.右移和左移指令3.1.3字节交换及内存填充指令

1.字节交换指令字节交换指令(SWAP)用来交换输入字IN的高字节和低字节。结果仍放在IN中。2.内存填充指令内存储器填充指令(FILL)用输入值(IN)填充从输出(OUT)开始的N个字的内容。N的范围从1~255。3.1.3字节交换及内存填充指令1.字节交换指令3.1.4表功能指令1.填表指令填表指令(ATT),图中TBL是表的首地址,DATA是要向表中添加的数据,新的数据填加在表中上一个数据的后面。每向表中填加一个新的数据,EC会自动加1。一个表最多可以有100条数据。2.先进先出指令先进先出指令(FIFO)从表(TBL)中移走第一个数据,并将此数输出到DATA。剩余数据依次上移一个位置。3.后进先出指令后进先出指令(LIFO从表(TBL)中移走最后一个数据,并将此数输出到DATA。4.查表指令查表指令(FND)搜索表,以查找符合一定规则的数据。3.1.4表功能指令1.填表指令3.2运算和数学指令

3.2.1算术运算指令1.加法指令加法操作指令(ADD)是对两个有符号数进行相加操作,包括整数加法指令+I、双整数加法指令+D和实数加法指令+R。2.减法指令减法指令(SUB)是对两个有符号数进行减操作,3.乘法指令乘法指令(MUL)是对两个有符号数进行乘法操作。4.除法指令除法指令(DIV)是对两个有符号数进行除法操作。3.2运算和数学指令

3.2.1算术运算指令1.加3.2.1算术运算指令5.递增和递减指令递增(INC)和递减(DEC)指令也称为自动加1和自动减1指令,递增和递减指令的梯形图和语句表格式如图3-13所示。在□中可以是B(字节)、W(字)、DW(双字),在语句表中DW写为D。字节增减指令是无符号的,而字和双字增减指令是有符号的。递增指令的功能:当使能信号接通时,在梯形图中,IN+1=OUT;在语句表中OUT+1=OUT。递减指令的功能:当使能信号接通时,在梯形图中,IN-1=OUT;在语句表中OUT-1=OUT。3.2.1算术运算指令5.递增和递减指令3.2.2数学函数指令1.平方根指令平方根指令(SQRT)当使能信号接通时,将由IN输入的一个双字长的实数开平方,运算结果存放到OUT中。2.自然对数指令自然对数指令(LN)当使能信号接通时,计算输入值IN的自然对数,并将结果存放到OUT中。3.自然指数指令自然指数指令(EXP)当使能信号接通时,计算输入值IN的自然指数值,并将结果存放到OUT中。4.三角函数正弦、余弦和正切指令三角函数指令当使能信号接通时,计算角度值IN的三角函数值,并将结果存放在OUT中。3.2.2数学函数指令1.平方根指令3.2.3逻辑运算指令1.逻辑与指令逻辑与指令(AND)功能:当使能信号接通时,将输入值IN1和IN2的相应位进行与操作(即如果两个操作数的同一位均为1,运算结果的对应位为1,否则为0),将结果存入OUT中。2.逻辑或指令逻辑或指令(OR)的功能:当使能信号接通时,将两个输入值IN1和IN2的相应位进行或操作(即如果两个操作数的同一位均为0,运算结果的对应位为0,否则为1),将结果存入OUT中。3.逻辑异或指令逻辑异或指令(XOR)的功能:当使能信号接通时,将两个输入值IN1和IN2的相应位进行异或操作(即如果两个操作数的同一位不同,运算结果的对应位为1,否则为0),将结果存入OUT中。4.取反指令取反指令(INV)的功能:当使能信号接通时,将输入IN中二进制数逐位取反(即二进制数的各位由0变为1,由1变为0),并将结果存入到OUT中。3.2.3逻辑运算指令1.逻辑与指令3.3转换指令

3.3.1.标准转换指令1.数字转换(包含9条转换指令)1)字节转为整数指令

2)整数转为字节指令3)双整数转为整数指令4)整数转为双整数指令5)BCD码转为整数指令6)整数转为BCD码指令7)双整数转为实数指令8)四舍五入取整指令9)舍去小数取整指令3.3转换指令

3.3.1.标准转换指令1.数字3.3.2译码、编码和段码指令1.译码指令译码指令(DECO)的功能:当EN有效时,将字节型输入数据IN的低4位的内容译成位号(00~15),由该位号指定OUT字型数据中对应位置1,其余位置0。2.编码指令编码指令(ENCO功能:当EN有效时,将输入字IN的最低有效位的位号写入输出字节OUT的最低有效“半字节”(4位)中。3.段码指令段码指令(SEG)的功能:当EN有效时,将IN中指定的字符(字节)转换生成一个点阵并存入OUT指定的变量中。3.3.2译码、编码和段码指令1.译码指令3.4子程序

3.4.1子程序的作用S7-200PLC把用户程序主要分为3部分:主程序、子程序和中断程序。在实际应用中有些程序内容可能被反复使用,对那些需要经常执行的程序段,可设计成子程序的形式,并为每个子程序赋以不同的编号,在程序执行的过程中,可随时调用某个编号的子程序。子程序的优点在于它可以用于对一个大的程序进行分段及分块,使其成为较小的更易管理的程序块,程序调试、程序检查和程序维护时,可充分利用这项优势。子程序只在需要时才被调用、执行,使用子程序可以减少扫描时间。3.4子程序

3.4.1子程序的作用S7-200PL3.4.2子程序的创建

可以采用下列方法创建子程序:1)在编辑环境的程序块中单击鼠标右键→插入子程序SBR_n。(n的范围为:CPU221~226主机n为0~63;CPU226XM主机n为0~127)。2)从编辑菜单中,选择插入子程序SBR_n。只要插入了子程序,程序编辑器底部就将出现一个新标签,标志新的子程序名,可以对子程序按照自己的思路重新命名。此时,可以对新的子程序编程。3.4.2子程序的创建

可以采用下列方法创建子程序:3.4.3子程序调用指令和返回指令子程序调用指令(CALL)和子程序条件返回指令(CRET)的梯形图和语句表格式如图所示。

3.4.3子程序调用指令和返回指令3.5.1中断的几个概念

1.中断源及种类中断源,即中断事件发出中断请求的来源这些中断源大致分为三大类:1)通信口中断:PLC的串行通信口可由程序来控制。通信口的这种操作模式称为自由端口模式。2)I/O中断:I/O中断包含了上升沿或下降沿中断、高速计数器中断和脉冲串输出(PTO)中断。3)时基中断:时基中断包括定时中断和定时器T32/T96中断。CPU可以支持定时中断。可以用定时中断指定一个周期性的活动。2.中断优先级在S7-200的中断系统中,将全部中断事件按中断性质和轻重缓急分配不同的优先级,使得当多个中断事件同时发出中断请求时,按照优先级的从高到低进行排队,优先级的顺序按照中断性质依次是通信中断、高速脉冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中断3.中断队列在各个指定的优先级之内,CPU按先来先服务的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中断程序开始执行,它要一直执行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。3.5.1中断的几个概念

1.中断源及种类3.5.2中断指令1.中断允许(开中断)指令和中断禁止(关中断)指令2.中断条件返回指令3.中断连接指令4.中断分离指令5.清除中断事件指令3.5.2中断指令1.中断允许(开中断)指令和中断禁止3.5.3中断程序

1.中断程序的概念中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。2.中断程序的构成中断程序由3部分构成:中断程序标号、中断程序指令和无条件返回指令。3.中断设计步骤1)确定中断源(中断事件号)申请中断所需要执行的中断处理程序,并建立中断处理程序INTn,从编辑菜单中,选择插入中断程序,程序编辑器底部就将出现一个新标签INTn,右击标签INTn,可以对中断程序按照自己的思路重新命名。2)在中断程序INTn中编写其应用程序。3)在主程序或控制程序中,编写中断连接指令(ATCH)。4)在主程序中开中断(ENI)。5)如果需要的话,可以编写中断分离指令(DTCH)。3.5.3中断程序

1.中断程序的概念3.5.3中断程序

例3-2

编写实现中断事件0的控制程序。中断事件0是中断源I0.0上升沿产生的中断事件。当I0.0有效且开中断时,系统可以对中断0进行响应,执行中断服务程序INT-0。设中断服务程序的功能:若使I1.0接通,则Q1.0为ON;若I0.0发生错误(自动SM5.0接通有效),则立即禁止其中断。3.5.3中断程序

例3-2编写实现中断事件0的控制程3.6高速计数器

3.6.1高速计数器的基本概念在PLC中处理比扫描频率高的输入信号的任务是由高速计数器来完成的,高速计数器HSC用来累计比PLC扫描频率高得多的脉冲输入,利用产生的中断事件完成预定的操作。用高速计数器可连接增量脉冲编码器用于检测位置和速度,实现高速运动的精确控制。

3.6高速计数器

3.6.1高速计数器的基本概念3.6.2高速计数器的工作模式

S7-200CPU高速计数器可以分别定义为4种工作类型:1)单相计数器内部方向控制(无外部方向输入信号)。2)单相计数器外部方向控制。3)双相增/减计数器,双脉冲输入。4)A/B相正交脉冲输入计数器。每种高速计数器类型可以设定为3种工作状态:1)无复位、无启动输入。2)有复位、无启动输入。3)既有复位、又有启动输入。3.6.2高速计数器的工作模式

S7-200CPU高速3.6.3高速计数器相关的特殊存储器1.高速计数器的控制字节只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。每个高速计数器都有一个控制字节,包括以下内容:配置复位和启动信号的有效状态以及选择一倍速或者4倍速计数模式;使能或者禁止计数器;控制计数方向;装载初始值;装载预置值。2.初始值和预置值的设置各高速计数器均有一个32位的预置值和一个32位的初始值,预置值和初始值均为有符号双字整数。3.高速计数器寻址如果要指定高速计数器(HC)的地址,访问高速计数器的计数值,要使用存储器类型HC和计数器号(例如HC0)。4.指定中断

所有计数器模式都支持在HSC的当前值等于预设值时产生一个中断事件。5.高速计数器的状态字节每个高速计数器都有一个状态字节,其中的状态存储位指出了当前计数方向,当前值是否大于或者等于预置值。3.6.3高速计数器相关的特殊存储器1.高速计数器的控3.6.4高速计数器指令1)定义高速计数器指令:定义高速计数器指令(HDEF)为指定的高速计数器设置一种工作模式,即用来建立高速计数器与工作模式之间的联系,模式的选择决定了高速计数器的时钟方向、启动和复位功能。2)高速计数器指令:高速计数器指令(HSC)根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作。3.6.4高速计数器指令1)定义高速计数器指令:定义高速3.7高速脉冲输出

3.7.1高速脉冲输出的概念S7-200CUP有两个高速脉冲输出点(Q0.0和Q0.1),输出频率可达20kHz,新产品CPU224XP的两路高速脉冲输出频率可以达到100kHz。它们可以分别工作在PTO(高速脉冲串输出)或者PWM(脉宽调制输出)状态下。PTO功能按照给定的脉冲个数和周期(频率)输出一串占空比50%的脉冲。PWM功能可以输出一串占空比可调的脉冲,用户可以控制脉冲的周期(频率)和脉宽。脉冲计数范围从1~4294967295是双字长无符号数,周期范围从10~65535μs或从2~65535ms是单字长无符号数。使用PTO或者PWM功能可以控制步进电动机和伺服电动机,实现速度、位置的开环运动控制。当采用高速脉冲输出功能时,必须采用晶体管输出型的PLC。3.7高速脉冲输出

3.7.1高速脉冲输出的概念S73.7.2高速脉冲输出指令高速脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。高速脉冲输出指令的梯形图和语句表格式如图3-30所示。操作数Q为常数(0或1)。3.7.2高速脉冲输出指令3.7.3PTO/PWM向导编程

为了简化用户应用程序中位控功能的使用,编程软件Step7Micro/WINV4.0内置的PTO/PWM编程向导,可以帮助用户在几分钟内全部完成PWM,PTO或位控模块的组态。位控向导可以生成位置指令,可以用这些指令在应用程序中为速度和位置提供动态控制。3.7.3PTO/PWM向导编程

为了简化用户应用程序中3.8模拟量控制

3.8.1模拟量控制的概念1.关于模拟量控制系统模拟量控制系统是指输入/输出信号为模拟量的控制系统。控制系统的控制方式上可分为开环控制和闭环控制。开环控制是根据控制的设定值直接向控制对象输出控制信号,这种控制容易受外界干扰而偏离控制目标。对于控制要求比较高的场合,一般都采用闭环控制方式。闭环控制是使用控制的设定值与反馈值的差进行控制的,以求得设定值与反馈值的偏差最小。因而闭环控制也叫偏差控制。2.模拟量闭环控制系统的组成PLC模拟量闭环控制系统由PLCCPU模块、模拟量输入/输出模块、执行机构、被控对象及测量元件组成,如图所示。3.8模拟量控制

3.8.1模拟量控制的概念1.关3.8.2模拟量控制的使用方法

1.S7-200PLC的模拟量扩展模块S7-200CPU除了CPU224外要附加模拟量扩展模块才能实现模拟量输入/输出的功能。普通模拟量模块有:EM231、EM232、EM235等。2.S7-200模拟量数据格式模拟量输入/输出数据是有符号整数,占用一个字长(两个字节),所以地址必须从偶数字节开始。模拟量的转换精度为12位,但在PLC中表示为-32000-+32000之间的整数值。3.S7-200模拟量的寻址1)CPU224XP本体上的模拟量输入通道的地址为AIW0和AIW2;模拟量输出通道的地址为AQW0。如果采用其他型号的CPU,则通道的地址AIW0、AIW2和AQW0可以被模拟量扩展模块使用。

4.模拟量滤波器

S7-200允许用户为每一路模拟量输入选择软件滤波器。

5.模拟量比例换算因为A/D(模/数)、(D/A)数/模转换之间的对应关系,S7-200CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。3.8.2模拟量控制的使用方法

1.S7-200P3.8.2模拟量控制的使用方法

6.模拟量扩展模块接线图EM235最常用的模拟量扩展模块,它实现了4路模拟量输入和1路模拟量输出功能。EM235模拟量扩展模块接线图如图所示。3.8.2模拟量控制的使用方法

6.模拟量扩展模块接线3.8.3模拟量控制的编程实例本实例是一个温度显示的控制程序,CPU选择CPU222,带一个模拟量扩展模块EM235,该模块的第一个通道连接一块带4~20mA变送输出的温度显示仪表,该仪表的量程设置为0~100℃,即0℃时输出4mA(对应数据为6400),100℃时输出20mA(对应数据为32000)。经研究算法公式,温度显示值={[(AIW0-6400)/(32000-6400)]×100}={(AIW0-6400)/(320-64)}℃,6个DIP开关设置为:100001,因传感器采用热电阻所以不使用输入滤波器。编译并运行程序,观察程序状态,把显示的温度值放到VW30,对照仪表显示值是否一致。3.8.3模拟量控制的编程实例本实例是一个温度显示的控制3.9比例/积分/微分回路控制指令

3.9.1PID回路控制的概念PID即比例积分微分控制,是一种闭环自动控制算法,目的是使被控制的物理量追随给定值且稳定性好,自动消除各种因素对控制效果的扰动。因为PID控制器具有自整定的功能,不需要精确研究被控对象的数学模型,能自动整定PID参数。使用起来非常方便,得到了广泛的应用。S7-200CPU提供了8个回路的PID功能,用以实现需要按照PID控制规律进行自动调节的控制任务,例如温度、压力、流量控制等。PID功能一般需要模拟量输入,以反映被控物理量的实际数值,称为反馈;而用户设定的调节目标值称为给定。PID运算的任务就是根据反馈与给定的相对差值,按照PID运算规律计算出结果,输出数字量控制信号到固态开关元件(控制加热元件的接通和断开),或输出模拟量信号给执行机构如控制电动调节阀的开度,以达到自动调节被控量跟随给定变化的目的。3.9比例/积分/微分回路控制指令

3.9.1PID3.9.2PID回路控制的指令1.PID回路控制的指令PID回路控制指令利用表(TBL)中的输入和配置信息,在被参考的LOOP执行PID回路计算。PID回路控制指令的梯形图和语句表格式如图所示。EN:启动PID指令输入信号;TBL:PID回路表的起始地址(由变量存储器VB指定字节型数据);LOOP:PID控制回路号(0~7)。PID回路指令(包含比例、积分、微分回路)可以用来进行PID运算。但是,可以进行这种PID运算的前提条件是逻辑堆栈栈顶(TOS)值必须为1。指令功能:在输入有效时,根据回路表(TBL)中的输入配置信息,对相应的LOOP回路执行PID回路计算,其结果经回路表指定的输出域输出。3.9.2PID回路控制的指令1.PID回路控制的3.9.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论