模块五 PLC的数据处理功能.ppt
模块五PLC的数据处理功能,学习目标,掌握数据传送指令的格式、功能及应用;掌握数据比较指令的格式、功能及应用;掌握数据移位指令的格式、功能及应用;掌握数据运算指令的格式、功能及应用;掌握数据转换指令的格式、功能及应用;了解表功能指令的格式和功能;掌握时钟指令的使用。,单元一数据的传送和比较,任务一数据的传送,1.任务提出在程序初始化的过程中常需要将某些字节、字或双字存储器清0或设置初值,为后面的控制操作做准备。比如若开机运行时,字变量VW0设初值1000、字节变量VB0清0等,如何操作这一节学习的数据传送指令将实现此操作。,数据传送指令实现将输入数据IN常数或某存储器中的数据传送到输出OUT(存储器)中的功能,传送的过程中不改变数据的原值。,2说明1)操作码中的B(字节)、W(字)、D(双字)和R(实数),代表被传送数据的类型;2)操作数的寻址范围与指令码一致,比如字节数据传送只能寻址字节型存储器,OUT不能寻址常数,块传送指令IN、OUT皆不能寻址常数.3)ENO0的错误条件0006(间接寻址错误),SM4.3(运行时间)。,3.任务解决方案若开机运行时,字变量VW0设初值1000、字节变量VB0清0等。分析1)当程序运行时,在第一扫描周期,字节传送指令将0传送给VB0,字传送指令将1000传送至VW0,完成程序初始化;2)在为变量赋初值时,为保证数据传送只执行一次,数据传送指令一般与SM0.1或跳变指令联合使用。,4.其他数据传送类指令,说明1)字节立即读MOV_BIR指令读取1个字节的物理输入IN,将结果写入OUT,不刷新输入过程映像寄存器,IN只能是IB;字节立即写MOV_BIW指令将输入给出的1个字节的数值写入到物理输入OUT,同时刷新相应的输出过程映像寄存器,OUT只能是QB。2)SWAP指令的操作数只能是字(W)型数据存储器。,表5-4数据传送指令编程举例,5.应用实例例1用数据传送指令实现8个彩灯同时点亮和熄灭I/O分配I0.0为起动信号,I0.1为停止信号,8个彩灯分别由0.0Q0.7驱动,对应的梯形图程序如图5-2所示。,动动手吧若8盏灯分别接Q1.0Q1.7,每间隔1个同时点亮,应如何操作,例2设液体混合控制中,液体搅拌所需的时间有两种选择,分别为20分钟和10分钟,分别设置两个按钮选择所需控制时间。I/O分配I1.0选择20分钟,I1.1选择10分钟,I0.2启动搅拌,Q0.0控制液体搅拌。梯形图程序如图5-3所示,分析下面的梯形图程序,能否实现上述控制,,动动脑吧(1)如果将MOVW指令换做MOVB指令,是否可行,为什么(2)网络3中,分析I0.2什么情况下可以这样使用,任务二数据的比较,1.任务提出在实际的控制过程中,可能需要对两个操作数进行比较,比较条件成立时完成某种操作,从而实现某种控制。比如初始化程序时,在VW10中存放着数据100,模拟量输入AIW0中采集现场数据,当AIW0数值小于或等于VW10时,Q0.0输出;当AIW0大于VW10时,Q0.1输出。如何操作,比较指令格式及功能如表5-5所示。,说明1)表中给出了相等比较的指令格式,数据比较运算符还有、、,字符串比较运算符还有。2)字整数比较指令,梯形图是I,语句表是W。3)数据比较IN1,IN2操作数的寻址范围为I,Q,M,SM,V,S,L,AC,VD,LD,常数。,3.任务解决方案,表5-6比较指令编程举例,表5-6比较指令编程举例,5.应用实例例1用定时器和比较指令组成占空比可调的脉冲发生器。M0.0和100ms定时器T37组成脉冲发生器,比较指令用来产生脉冲宽度可调的方波,脉宽的调整由比较指令的第二个操作数实现,梯形图程序和脉冲波形如图5-5所示。,,动动手吧建立周期为100ms,占空比为50的脉冲电路。,例2调整模拟调整电位器0,改变SMB28字节数值,当SMB28数值小于或等于50时,Q0.0输出;当SMB28数值在50和150之间时,Q0.1输出,当SMB28数值大于或等于150时,Q0.2输出。梯形图程序如图5-5所示。,,动动脑吧如果I0.0外接按钮,应如何操作,例33台电动机分时起动控制控制要求起动按钮按下后,3台电动机每隔2s分别依次起动,按下停止按钮,三台电动机每隔2s同时停止。,,动动脑吧分析定时器在每个网络里是如何使用的,任务三数据的移位,1.任务提出制作彩灯控制器。要求按下“启动”按钮,8个彩灯从左到右,以1s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮......,如此循环。按下“停止”按钮后,彩灯循环停止。思考用前面学过的指令能不能实现上述控制目的实现的过程有没有问题,移位指令格式如表5-8所示。,说明1)左移位指令使能输入有效时,将输入的无符号数字节、字或双字左移N位后,移出位自动补0,将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。如果移位结果为0,零标志位SM1.0置1。2)右移位指令使能输入有效时,将输入的无符号数字节、字或双字右移N位后,移出位自动补0,将结果输出到OUT指定的存储单元中。最后一次移出位保存在SM1.1。3)循环移位指令将输入IN中的各位向右或向左循环移动N位后,送给输出OUT。循环移位是环形的,即被移出来的位将返回到另一端空出来的位置。移出的最后一位的数值放在溢出位SM1.1。4)移位寄存器指令SHRB是移位长度可调的移位指令,将从DATA端输入的二进制数值移入到移位寄存器中。S_BIT为寄存器的最低位地址。字节型变量N为移位寄存器的长度(164),N为正值时表示左移位,输入数据(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位,移出的数据被放置在溢出内存位(SM1.1)中;N为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT),移出的数据被放置在溢出内存位(SM1.1)中。,3.任务解决方案分析8个彩灯分别接Q0.0Q0.7,可以用字节的循环移位指令,进行循环移位控制。置彩灯的初始状态为QB01,即左边第一盏灯亮;接着灯从左到右以1s的速度依次点亮,即要求字节QB0中的“1”用循环左移位指令每1s移动一位,因此须在ROL-B指令的EN端接一个1s的移位脉冲。梯形图程序如图5-6所示。,,表5-9移位指令编程举例,表5-9移位指令编程举例,思考移位寄存器指令是如何实现移位的,5.应用实例例1用I0.0控制16个彩灯循环移位,从左到右以2S的速度依次2个为一组点亮,保持任意时刻只有2个指示灯亮,到达最右端后,再从左到右依次点亮,按下I0.1后,彩灯循环停止。分析16个彩灯分别接Q0.0Q1.7,可以用字节的循环移位指令,进行循环移位控制。置彩灯的初始状态为QB03,即左边第1、2盏灯亮;接着灯从左到右以2s的速度依次点亮,即要求字节QB0中的“11”用循环左移位指令每2s移动一位,因此须在ROL-B指令的EN端接一个2s的移位脉冲。梯形图程序如图5-7所示。,例2用PLC构成喷泉的控制。喷泉的12个喷水注用L1~L12来表示,喷水注的布局如图5-8所示。控制要求按下起动按钮后,L1喷0.5秒后停,接着L2喷0.5秒后停,接着L3喷0.5秒后停,接着L4喷0.5秒后停,接着L5、L9喷0.5秒后停,接着L6、L10喷0.5秒后停,接着L7、L11喷0.5秒后停,接着L8、L12喷0.5秒后停,L1喷0.5秒后停,如此循环下去,直至按下停止按钮。,I/O分配如表所示,动动脑吧T38在此程序中的作用是什么,任务四数据的运算,1.任务提出在模拟量数据采集中,为了防止干扰,经常通过程序进行数据滤波,其中一种方法为平均值滤波法。要求连续采集五次数作平均,并以其值作为采集数。这五个数通过五个周期进行采集。请设计该滤波程序。在这个程序中,需要用到运算指令,PLC可以为我们提供什么样的运算指令可以实现上述操作呢,说明1)IN1、IN2指定加数(减数)及被加数(被减数);如果OUT与IN2为同一存储器,则在语句表指令中不需要使用数据传送指令,可减少指令条数,从而减少存储空间。2)操作数的寻址范围要与指令码一致。OUT不能寻址常数。3)该指令影响特殊内部寄存器位SM1.0零;SM1.1溢出;M1.2负。4)如果OUT与IN不同,将首先执行数据传送指令,将IN1传送给OUT,再执行IN2OUT,结果送给OUT。,表5-11加/减运算指令,表5-12加/减指令编程举例,1)操作数的寻址范围要与指令码中一致,OUT不能寻址常数;2)在梯形图中IN1*IN2OUT,IN1/IN2OUT;在语句表中IN1*OUTOUT,OUT/IN1OUT;3)整数及双整数乘/除法指令,使能输入有效时,将两个16位/32位符号整数相乘/除,并产生一个32位积/商,从OUT指定的存储单元输出。除法不保留余数,如果乘法输出结果大于一个字,则溢出位SM1.1置位为1。4)该指令影响下列特殊内存位SM1.0零;SM1.1溢出;SM1.2负;SM1.3除数为0。,表5-13乘/除运算指令,表5-14乘/除指令编程举例,3.任务解决方案,表5-15加1、减1指令说明1)操作数的寻址范围要与指令码中一致,其中对字节操作时不能寻址专用的字及双字存储器,如T、C、及HC等;对字操作时不能寻址专用的双字存储器HC;OUT不能寻址常数;2)在梯形图中IN1OUT,IN-1OUT;在语句表中OUT1OUT,OUT-1OUT;如果OUT与IN为同一存储器,则在语句表指令中不需要使用数据传送指令,可减少指令条数,从而减少存储空间;,加1、减1指令编程举例,表5-17函数运算说明1)IN和OUT按双字寻址,不能寻址专用的字及双字存储器T、C、HC等,OUT不能寻址常数;2)三角函数指令SIN、COS、TAN计算角度输入值的三角函数,输入以弧度为单位;3)自然对数指令EXP与自然指数指令配合,可以实现以任意实数为底,任意实数为指数(包括分数指数)的运算。,函数运算指令编程举例,逻辑运算指令逻辑运算指令是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或及逻辑取反等操作,可用于存储器的清零、设置标志位等。,逻辑指令编程举例,5.应用实例例1在程序初始化时,设置AC1为1000,当按下I0.0,AC1的值每隔10s减100,一直减到0为止。其梯形图程序如图5-11所示。,例2求角度50的余弦值,并将其结果存储在VD18中。对应的梯形图程序及运行结果如图5-12所示。,例3分析图5-13程序的执行结果。,例4如果想知道IB0,在10s之后有哪些位发生了变化,怎样操作程序如图5-14所示。,任务五数据的转换,1.任务提出在实际的控制过程中,经常要对不同类型的数据进行运算,数据运算指令中要求参与运算的数值为同一类型,为了实现数据处理时的数据匹配,所以要对数据格式进行转换。若将VW10中的整数100和VD100中的实数190.5相加,如何操作,表5-21数据转换指令说明1)操作数不能寻址一些专用的字及双字存储器,如T、C、HC等。OUT不能寻址常数;2)ATH及HTA指令各操作数按字节寻址,不能对一些专用字及双字存储器如T、C、HC等寻址,LEN可寻址常数。3)ATH指令中,ASCⅡ码字符串的最大长度为255个字符;HTA指令中,可转换的16进制数的最大个数也为255。合法的ASCⅡ码字符的16进制值在30~39和41~46之间。,表5-22数据转换指令编程举例,(2)段码、编码、译码指令说明1)七段显示码的编码规则如表5-24所示。对于段译码指令,操作数IN、OUT均为字节型变量,寻址范围不包括专用的字及双字存储器如T、C、HC等,其中OUT不能寻址常数;2)对于译码指令,不能寻址专用的字及双字存储器T、C、HC等;OUT为字变量,不能对HC及常数寻址;3对于编码指令,操作数IN为字变量,OUT为字节变量,OUT不能寻址常数及专用的字、双字存储器T、C、HC等。,表5-25数据转换指令编程举例,,,,3.任务解决方案若将VW10中的整数100和VD100中的实数190.5相加,如何操作,,,,4.应用实例例1有六路输入开关K1、K2、K3、K4、K5、K6,实现优先抢答控制。主持人操纵允许抢答和抢答结束按钮。用数码管显示抢中的组号。动动脑吧其它五路的抢答程序自己动手编一下。,,,,任务六表功能指令的使用,表操作指令用于创建数据表格以及对数据表格中数据进行操作。可用于定义参数表及存储成组数据等。数据表是用来存放字型数据的表格,如图5-17所示。表格的第一个字地址(首地址)为表地址,首地址中的数值是表格的最大长度(TL),即最大填表数。表格的第二个字地址中的数值是表的实际长度(EC),指定表格中的实际填表数。每次向表格中增加新数据后,EC加1。从第三个字地址开始,存放数据(字)。表格最多可存放100个数据(字),不包括指定最大填表数(TL)和实际填表数(EC)的参数。,1.任务提出对某个模拟量采样10次,采样值填入表中,为后续的操作做准备,如何操作,表5-27表操作指令,说明1)TBL为表格的首地址(即最大填表数对应的地址),数据类型为字型,其操作数可为VW,IW,QW,MW,SW,SMW,LW,T,C,*VD,*LD,*AC,查表指令的TBL为实际填表数对应的地址。2)DATA为数据输入端时,数据类型为整数,其操作数可为VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量,*VD,*LD,*AC;DATA为数据输出端时,数据类型为整数,其操作数可为VW,IW,QW,MW,SW,SMW,LW,AC,T,C,AQW,*VD,*LD,*AC。3)一个表中最多可以有100条数据,数据编号范围0~99,如果表出现溢出SM1.4会为1。读表的时候,如果读取空表,则SM1.5会为1。4)查表指令中的为14的数值,分别代表、、。INDX为搜索指针,数据类型为字型,从INDX所指的数据编号开始查找,并将搜索到的符合条件的数据的编号放入INDX所指定的存储器。INDX操作数VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*LD,*AC。将INDX的值设为0,则从表格的顶端开始搜索,任务六表功能指令的使用,表5-28表指令编程举例,表5-28表指令编程举例,表5-28表指令编程举例,3.任务解决方案对某个模拟量采样10次,采样值填入表中,为后续的操作做准备,如何操作,任务六时钟指令的使用,1.任务提出控制路灯的定时接通和断开。控制要求1800时开灯,0600时关灯。,表5-29时钟指令,说明1)T缓冲区的起始单元地址,数据类型为字节型,其操作数可以是IB、QB、VB、MB、SMB、SB、LB、*VD、*LD、*AC。2)两个时钟指令具有同样的格式注星期的取值范围为0~7,1星期日,7星期六,0是将禁用星期,如表所示。3)S7-200CPU不核实日期是否正确,可能接受无效日期,比如2月30日,所以必须确保输入的日期是正确的。4)不要同时在主程序和中断程序中使用TODR或TODW指令。5)对于没有使用过时钟指令或长时间断电或内存丢失后的PLC,在使用时钟指令前,要通过STEP-7软件“PLC”菜单对PLC时钟进行设定,然后才能开始使用时钟指令。时钟可以设定成与PC系统时间一致,也可用TODW指令自由设定。,3.任务解决方案控制路灯的定时接通和断开。控制要求1800时开灯,0600时关灯。,4.应用实例例1编写程序,要求读时钟并以BCD码显示秒钟。,