第5章-S7-1200的指令

上传人:su****e 文档编号:243436632 上传时间:2024-09-23 格式:PPTX 页数:87 大小:20.71MB
返回 下载 相关 举报
第5章-S7-1200的指令_第1页
第1页 / 共87页
第5章-S7-1200的指令_第2页
第2页 / 共87页
第5章-S7-1200的指令_第3页
第3页 / 共87页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,5,章,S7-1200,的指令,2,5.1,数据处理指令,5.1.1,比较指令,3,1.,比较指令,2.,范围内与范围外比较指令,例,5-1,用接通延时定时器和比较指令组成占空比可调的脉冲发生器,5,3.OK,与,NOT_OK,指令,6,5.1.2,使能输入和使能输出,1.BCD,码:,BCD (Binary-coded Decimal),是二进制编码的十进制数的缩写,,,BCD,码,用,4,位,二进制数表示,一位,十进制数,每,一位,BCD,码允许的数值范围为,2#0000,2#1001,;对应于十进制数,0-9,。,4,位二进制数共有,16,种组合,有,6,种组合(,2#1010,2#1111,),没有在,BCD,码,中使用,。,BCD,码,的最高位二进制数用来表示符号,、负数,为,,正数为,0,;一般,令负数和正数的,最高,4,位二进制数分别为,1111,和,0000,。,16,位,BCD,码的范围为,999,十,999,、,32,位,BCD,码的范围,为,-999999,+9999999,。,-862,7,拨码开关,译码芯片,PLC,的四个输出点,后接一个译码芯片,用,PLC,的输入点读取拨码开关的输出,8,2.EN,与,ENO,令,MW32=F983,,则输出,MW34=-983,下列指令使用,EN/ENO,:数学运算指令、传送与转换指令,、位移与循环指令、字逻辑运算指令等。,下列指令不使用,EN/ENO,:位逻辑指令,、比较,指令、,计数器指令、定时器指令和程序控制指令。,9,5.1.3,数据转换指令,1.CONV,指令,2.,浮点数转换为双整数指令,3.SCAL_X,指令,OUT=VALUE(MAX-MIN)+MIN,例如:如果,MAX=1000,,,MIN=200,,则,0.4520,;,1.2,1160,4.NORM_X,指令,OUT= (,VALUE,-MIN,),/(MAX-MIN),10,5.1.4,数据,传送,指令,1.MOV,指令,输入输出数据类型可以不一样,如:,MB0MW2,低字节中;,MW4MB6,,但是如果,MW4,超过,255,,则只传送低字节中的数值。,2.SWAP,指令,IN,和,OUT,为数据类型,Word,时,,SWAP,指令交换输入,IN,的高、低字节后,保存,到,OUT,指定,的地址,。,IN,和,OUT,为数据类型,Dword,时,,交换,个字节中数据的顺序,交换后保存,到,OUT,指定,的,地址。,如:,16#AABBCCDD16#DDCCBBAA,11,3.,全局数据块和数组,数组由相同数据类型的多个元素组成,数组元素的数据类型可以是所有的基本数据类型,。,全局数据,块的生成方法:演示,12,4.FILL_BLK,与,UFILL_BLK,指令,FILL BLK,指令将输入参数取设置的值填充到输出参数,OUT,指定起始地址的目标,数据区。,IN,和,OUT,必须是,D,、,L,(数据块或块的局部数据)中的数组元素,,,IN,还可以,是常数。,COUNT,为填充的数组元素的个数,数据类型为,DInt,或常数。,5.MOVE_BLK,与,UMOVE_BLK,指令,6.,块填充和快传送指令的实验(演示),13,5.1.5,位移与循环位移指令,1.,位移指令,移位指令,SHR,和,SHL,将,输入,参数,IN,指定,的存储单元的整个内容逐位右移或左移若干,位,移位,的位数用输入参数,N,来定义,移位的结果保存在输出,参数,OUT,指定,的地址,。,无符号数移位和有符号数左移后空出来的位,用,0,填充,。有符号数右移后空出来的位用,符号位,(原来的最高位)填充,正数的符号位为,0.,节负数的符号位为,1,。,14,2.,循环移位指令,循环移位,指令ROR,和ROL将输入,参数,IN,指定,的存储单元的整个内容逐位循环右移或,循环,左移,若干位,即,移出来的位又送回存储单元另一端空出来的位,原始的位不会丢失。N,为移位,的位数,移位的结果保存在输出参数OUT指定的,地址。,15,3.使用循环移位指令的彩灯控制器,16,5.2,数学,运算指令,5.2.1,数学,运算指令,数学,运算包括数学运算指令、浮点数,函数运算,指令、逻辑运算指令。,1四则运算,指令,17,数学,运算指令中的,ADD、SUB、MUL,和DIV分别是加、减、乘、除指令、它们执行,的操作数,的数据类型可选SInt, Int, DInt, USInt, UInt, UDInt和Real, IN1,和IN,2可以是常数。IN1、IN2和OUT的数据类型应该相同。,18,【例】,压力变送器的量程为,0,10MPa,,输出信号为,0,10V,,被CPU集成的模拟,量输入,的通道0(地址为IW64)转换为,0,27648,的数字。假设转换后的数字为N,试求以,kPa为,单位的压力值。,解:,0,10MPa,(,0,10000,kPa)对应于转换后的数字,0,27648,,转换公式,为,P=,(10000,N)/,27648 (kPa,),注意:在,运算时一定要先乘后除,,否则会损失原始数据的精度。,20,【,例,】,使用,浮点数运算计算上例以kPa为单位的压力值。,将上例改写为:,p,=,(10000,x N),27648,=,0,.361690 X N (kPa,),21,2,其它整数数学运算指令,(,1,),MOD,指令,用,MOD,指令,来求除法的,余数。,(,2,),NEG,指令,NEG,(negation),将,输入,IN,的,值的符号取反后,保存在输出,OUT,中,,IN,和,OUT,的数据类型,可以是,SInt,Int, DInt,和,Real,输入,IN,还,可以是,常数。,(,3,),INC,与,DEC,指令,执行指令,INC,与,DEC,时,参数,IN/OUT,的值分别被加,1,和减,1,。,IN/OUT,的数据类型可选,SInt, USInt, Int, UInt, DInt,和,UDInt,(有符号或无符号的整数)。,22,(,4,)绝对值,指令,ABS,ABS,指令用来,求,输入,IN,中,的有符号整数,(SInt, Int,宁,DInt,或实数(,Real),的绝对值,将结果保存在输出,OUT,中。,IN,和,OUT,的数据类型应相同,。,(,5) MIN,与,MAX,指令,MIN,(minimum),指令比较输入,IN1,和,IN2,的值,将其中较小的值送给输出,OUT,。,MAX(maximum,),指令比较输入,IN1,和,IN2,的值,将其中较大的值送给输出,OUT,。,INI,和,IN2,的数据类型相同才能执行指定的操作。,23,(,6,),LIMIT,指令,LIMIT,指令检查,输入,IN,的,值是否在参数,MIN,和,MAX,指定的范围内,,如果,IN,的,值,没有超出,该范围,将它直接保存在,OUT,指定的地址中,。如果,IN,的值小于,MIN,的值或大于,MAX,的,值,将,MIN,或,MAX,的值送给输出,OUT,。,24,3.浮点数函数运算指令,浮点数(实数)数学运算,指令的,操作数IN和OUT的数据类型为Real,。,浮点数自然指数指令EXP和浮点数自然对数指令LN中的指数和对数的底,数为2,.,71828。,浮点数开平方,指令SQRT和,LN指令的输入值如果小于,0。输出,OUT,返回,一个无效的,浮点数。,浮点数三角函数指令和反三角函数指令中的角度均为以弧度为单位的,浮点数。如果输入,值是以度为单位的浮点数,,使用三角函数,指令之前应先将角度值乘,以,/,180,.0,,转换为,弧度值,。,浮点数,反正弦函数指令,ASIN,和浮点数反余弦函数指令,ACOS,的输入值的允许范围,为,-1.01.0, ASIN,和,ATAN,的运算结果的取值范围,为,-/2+/2,弧度,,ACOS,的运算结果,的取值,范围为,0,弧度,。,求,以,10,为底的对数时,需要将自然对数值除以,2.302585,(,10,的自然对数值),。,例如,:lg100=ln100/2.302585,4.605170/2.302585=2,。,25,26,27,【例】,测量远处物体的高度时,已知被测物体到测量点的距离L和以度为单位的,夹角,,,求被测物体的高度H,H= Ltan,角度的单位为度。假设以度为单位的实数角度值,在MD116,乘,以,/180,=,0,.0174533得角度的弧度,值,,运算的中间结果保存在,数据类型为Real,的临时局部变量Tempt中,。,L,的,实数值在MD128,运算结果在,MD132。,28,5,.,2.2逻辑运算指令,1逻辑运算指令,逻辑运算指令对两个,输入,IN1和IN,2逐,位,进行逻辑运算,。,逻辑运算的,结果存放在,输出OUT,指定的,地址。,“与”(,AND,)运算时两个操作数的同一位如果均为,1,,,运算结果的对应位为,1,,否则,为,0,。,“或”(,OR,)运算,时两个操作数的同一位如果均,为,0,,运算,结果的对应位为,0,否则为,1,。,29,“异或, (XOR),运算时两个操作数的同一位如果不相同,运算结果的对应位为,1,,,否则为,0,。,以上,指令的,操作数,IN1,、,IN2,和,OUT,的数据类型为十六进制的,Byte, Word,和,Dword,。,取反指令,INV,将输入,IN,中的二进制整数逐位取反,即各位的二进制数,由,0,变,1,,由,1,变,0,,运算结果,存放在输出OUT指定的地址。,30,解码与编码指令,假设输入,参数,IN,的,值为,解码(译码),指令,DECO,(,Deode,),将输出,参数,OUT,的,第位置位,为,,其余各位,置,0,,,相当于数字电路中译码电路的,功能,。利用解码指令,可以用,输入,IN,的,值来,控制,OUT,中,某一位的状态,。,如果输入,IN,的,值,大于,31,,,将取的值除,以,32,以后,,用余数来进行解码操作,。,IN,的,数据类型,为,UInt,,,OUT,的,数据类型,可选,yte,、,Word,和,Word,。,IN,的,值为,-7,(,位二进制数)时,,,输出的数据类型为位的字节。,IN,的,值为,-15,(,位二进制数)时,,输出,OUT,的,数据类型,为,16,位,的字。,IN,的,值为,-31,(,位二进制数,),时,,输出,OUT,的,数据类型为位的双字。,例如,IN,的,值为,时,输出为,00100000,(,16,20,),,仅第位为,。,31,编码,指令,ENCO,(,Ericode,)与解码指令相反,将,IN,中为的最低位的位数送给输出参数,OUT,指定的地址,,IN,的数据类型可选,Byte,、,Word,和,Dword,,,OUT,的数据类型为,INT,。,32,SEL,与,MUX,指令,指令,SEL,(,Select,)的,Bool,输入,参数为时,选中,IN0,,,为时,选中,IN1,,并,将它们保存到输出,参数,OUT,指定,的,地址。,指令,MUX,(,Multiplex,,,多路开关选择器)根据输入参数的值,选中某个输入数据,,并将它传送到输出参数,OUT,指定的地址。如,=,时,将选中输入,参数,INm,。,如果的值超过,允许,的范围,,将选中,输入,参数,ELSE,。,参数,的数据类型,为,Uint,;,Inn,、,ELSE,、,OUT,可以取,12,种数据类型,它们的数据类型应,相同,。,33,5.,3,程序控制指令,5,.,3.,1程序控制,指令,1跳转与标签指令,没有执行跳转指令时,各个程序段按从上到下的先后顺序执行,这种执行方式称为,线性扫描。,JMP,跳,转指令中止程序的,线性扫描跳,转到指令中的地址标签所在的目的地址。跳转时,不执行,跳转指令与标签之间的程序,跳到目的地址后,程序继续按线性扫描的方式顺序执行,。,跳,转指令可以往前跳,也可以往后跳,。,只能,在同一个代码块内跳转,即跳转指令与对应的跳转目的地址应在同一个代码块内,。在,一个块内,同一个跳转目的地址只能,出现一次。,JMPN,指令的线圈断电时,将跳转到指令给出的标签处,执行标签之后的第一条指令。,34,2.,返回指令,RET,RET,指令的,线圈通电时,停止执行当前的块,不再执行该指令后面的指令,,返回调用,它的块,后,,执行调用指令之后的指令。,RET,指令的线圈断电时,继续执行,它下面的指令,。,RET,线圈的上面是块的返回值,数据类型为,Bool,。如果,当前的块是,OB,,返回值被,忽视。,35,5,.,3.2扩展指令中的程序控制指令,1,RE,_,TRIGR指令,监控定时器又称看门狗(Watchdog),每次扫描循环它都被自动复位一次,正常工作时,最大,扫描循环时间小于监控定时器的时间设定值,它不会起,作。,以下情况扫描循环时间可能大于监控定时器的设定时间,,监控,定时器将会起作用,:,1,)用户程序很,长,;,2)一个扫描循环内执行中断程序的时间很,长;,3,)循环指令执行的时间太长,。,可以在程序中的任意位置使用指令,RE,_,TRIGR,(重新触发循环时间监视),来复位监控,定时器。,36,2,.STP,指令,STP,指令的EN输入为1状态时,,使,PLC,进入,STOP模式,。,STP,指令使CPU集成的输出,、信号,板和信号模块的数字量输出或模拟量输出进入组态时设置的安全状态。可以使输出,冻结在,最后的状态,或用替代值设置为安全,状态,。,默认,的数字量输出状态为FALSE,默认的,模拟量,输出值为0。,3.,GET,_,ERROR,与,GET,_,ERR,_ID,指令,GET,_,ERROR,指令用来提供有关程序块执行错误的信息,,,用,输出参数,ERROR显示,发生的程序块执行,错误,,,并且,将详细的错误信息填入预定义的,ErrorStruct(,错误结构),数据类型。可以,用程序来分析错误信息,并作出适当的响应。,第一,个错误消失时,指令输出下一个错误的信息。,GET,_,ERR,_,ID,指令用来报告错误的ID(标识符,)。如果,块执行时出现错误,且指令的EN输入为1状态,,出现的,第一个错误的标识符保存在指令的输出参数“ID”中,,ID,的数据类型为,Word。第一,个错误消失时,指令输出,下一,个错误的ID,。,37,4.ErrorStruct,数据类型,38,39,40,5.,4,字符串指令,5,.,4.,1字符串,转换指令,1字符串的结构,STRING,(,字符串)数据有2B的头部,后面是最多254B的ASCII字符代码。字符串,的首,字节是字符串的最大长度,第2个字节是当前长度,,即当前,实际使用的字符数。当前,长度必须,小于等于最大长度。字符串占用的字节数为最大长度加,2。字符串,默认的最大长度为254个字符,定义,字符串的长度可以减少它占用的存储空间。,2.,定义字符串,执行字符串指令之前,首先应定义字符串,。,不能,在变量表中定义字符串,只能在代码,块的,界面区或全局数据块中定义它,。,41,3.,使用,S_CONV,指令将字符串转换为数值,S_CONY,指令用于将输入的字符串转换为对应的数值,或将数值转换为对应的字符串,。,需要在指令方框中设置转换前后的,操作数,IN,和,OUT,的数据类型,。,使用,S_CONV,将字符串转换为数值时,输入参数取的数据类型为,String,输出参数,OUT,的,数据类型可以是,SInt, Int, DInt,USInt,Uintl,UDInt,和,Real,。,允许转换的字符包括,0-9,加减号和小数点对应的字符。字符串,IN,的转换从第一个字符开始,直到最后一个字符。如果遇到允许的字符之外的字符,转换停止,,ENO,被设置为,0,。,转换后的数值用参数,OUT,指定的地址保存。如果输出的数值超出,OUT,的数据类型允许的范围,,OUT,为,0 ,ENO,被置为,0,状态。反之,,OUT,内为有效的值,,ENO,被置为,1,状态。,42,输入,字符串的格式,规则,:,1),如果字符串,IN,使用了十进制数的小数点,应使用,字符“,.,”。,2),允许使用分隔每,3,位十进制数的逗号,字符“,”,转换,时忽略它。,3,)忽略字符前面的,空格。,4,)只支持定点表示法,不会将字符,e,和,E,视为指数计数法,。,使用,S_CONY,指令将数值转换为,字符串,可以,用指令,S_CONY,将参数,IN,指定,的整数、无符号整数或浮点数转换,为,输,出,OUT,对应的字符串。转换执行之前,应定义参数,OUT,指定的字符串。输入数据值可以是有符号和无符号的整数以及实数。,各种,数据类型需要的最大的字符串长度,43,输出字符串的格式规则如下,:,1)输出的正数没有符号位,字符串IN,的十进制数,小数点,使用字符“,.,”。,2)只支持定点表示法,,不,使用指数计数法,。,3)参数IN为,数据类型,Real,时,使用英,支的句号作十进制数的小数点。,5.复制,字符串,如果S,_,CONV,指令输入、输出的数据类型均为String,输入IN指定的字符串将复制到,输出,OUT指定的地址。如果字符串IN的实际长度超过了字符串OUT的最大长度,只复制,OUT允许,的部分,ENO将被设置为0状态,。,6.,使用STRG,_,VAL指令,将字符串转换为,数值,STRG,_,VAL,指令将数值字符串转换为对应的整数或浮点数。从参数IN指定的字符串,的第,P个字符开始,转换,,直到字符串结束。允许的字符包括数字,0,-,9,、,加,减号,、英语,的逗号或小数点、字符e和,E。遇到,非法的字符时将停止转换,,ENO,被,设置为0。,44,表示:从字符串“,ZZ,”的第第,P,个字符开始转换,输出,MD164,中的数值用定点数表示法,用英文的句号做小数点。,参数,P,是要转换的第一个字符的编号,其参数类型为,IN/OUT,,数据类型为,Ulnt,,,P,为,1,时,,从字符串的第一个字符开始转换,。,参数,FORMAT,是输出格式选项,数据类型为,Word,、第,0,位,r,为,1,和,0,时分别为指数,表示,法和定点数表示法。第,1,位,f,为,1,和,0,时,,分别用英语的逗号和句号作十进制数的小数点,,高位,为,0,。,45,STRG,_,VAL指令,的,转换规则:,1)如果使用英语的句号作十进制数的小数点,允许使用英语的逗号作分隔每3位,十进制数,的字符,转换时忽略它。,2)忽略字符前面的空格。,7.使用VAL,_,STRG指令将数值转换为,字符串,VAL,_,STRG将输入参数IN中的整数、无符号整数或浮点数转换为输出参数OUT中对应的字符串,。,被转换的字符串将取代,OUT,字符串从参数P提供的字符偏移量开始、到参数SIZE指定的字符数结束的字符。如果参数P和SIZE指定的替代字符超过OUT允许的最大字符数的范围,ENO为0状态。如果输出值小于指定的长度,写入字符串的字符采用“右对齐”的方式,字符左边空出来的位添加空格字符。,46,7.使用,VAL,_,STRG,指令将数值转换为字符串,允许,的字符包括数字,。,0,-,9、加减号、英语的逗号或小数点、字符e和E。遇到非法的,字符,时将停止转换,ENO被设置为0。,参数,FORMAT的数据类型、第0位r和第1位f的意义与指令,STRG,_,VAL,的相同。,第2位,s是符号字符,为1和为0时,分别对应于符易字符+,和,-,。,参数,PREC用来设置精度或字符串的小数部分的位数。如果参数IN的值为整数,,PREC指定,小数点的位置,。实数类型支持最高精度为,7,位有效数字。,例如:数据值为,12345,和,PREC,为,2,时,转换结果为字符串,123.45,。,47,5,.,4.2字符串,指令,LEN指令(,求字符串长度,),指令,LE用输出参数OUT:(整数)提供输入参数IN指定的字符串的当前长度,空字符串,(),的,长度为,0,。,2,. CONCAT,指令(合并字符串),指令,CONCAT,将输入参数,IN1,和,IN2,指定的两个字符串连接在一起,然后用参数,OUT,输出,连接后的,字符串。,合并后字符串,IN1,和,IN2,分别是连接后的字符串的左,部分和,右部分。如果连接后的字符串的,长度大于,允许的最大长度,则将它限制在最大长度,,并将,ENO,设置为,0,。,48,3,.,LEFT,指令,(左子,字符串):,指令,LEFT,用参数,OUT,指定的字符串来输出参数,IN,指定的字符串的前,L,个字符、,L,的数据类型,为,Int,。执行图中,的,LEFT,指令后,输出,OUT,中,是,IN,输入的字符串左边的,个,字符。,4. RIGHT,指令(右子字符串):,指令,RIGHT,用参数,OUT,指定的字符串输出字符串,IN,的最后,L,个字符。,L,的数据类型,为,Int,。执行图中的,RIGHT,指令,后,输出,OUT,中,是,IN,输入的,字符串右边的,4,个,字符。,49,5. MID,指令(提供字符串的中间部分):,指令,MID,用,参数,OUT,指定的字符串输出字符串,IN,从第,P,个字符开始,的,个字符。执行,图中,的,MID,指令后,输出,OUT,中是,IN,输入的字符串从第个字符开始的中间个字符,。,6,.,DELETE,指令(删除子,字符串),指令,DELETE,从,字符串加中第个字符开始,删除,L,个字符。参数,OUT,输出剩余的,子字符串,。执行,图中,的,DELETE,指令后,,IN,输入的字符串被删除从,第,3,个,字符开始的,2,个,字符后,然后输出,到,OUT,指定,的,字符串。,50,7,. INSERT,指令(插入,字符串,),指令,INSERT,将字符串,IN2,插入到字符串,INl,中第,P,个字符之后。执行,图中的,INSERT,指令后,,IN2,指定的字符串,ABC,被插入到,INI,指定的字符串,abode,第个,字符之后。,8. REPLACE,指令(子字符串替换),指令,REPLACE,用,字符串,IN2,替换字符串,INl,中从字符位置,P,开始的,L,个字符,替换,的结果,用,参数,OUT,输出,。执行,图中,的,REPLACE,指令后,字符串,INl,中从第,3,个字符,开始,的,3,个字符,(CDE,)被,IN2,指定的字符串,1234,代替。,9. FIND,指令(查找子字符串),指令,FIND,提供字符串,IN2,在字符串,IM,中的位置。查找从字符串,IN1,的左侧开始,,输出,参数,OUT,(整数)返回第一次出现字符串,IN2,的位置。如果在字符串,IN1,中未找到,字符串,IN2,,则返回零,。,执行图中,的,FIND,指令后,,查找,到,IN2,指定,的字符串,DEF,从,IN1,指定的,字符串,ABCDEFGHP,的,第,4,个,字符开始。,51,5.5,高速脉冲输出与高速,计数器,5.5.1,高速脉冲,输出,脉冲宽度与脉冲周期之比称为占空比,脉冲列输出,(PTO,)功能提供占空比为,50%,的,方波脉冲列输出。,脉冲宽度调制,(PWM,)功能提供连续的、脉冲宽度可以用程序控制的脉冲,列输出。,每个,CPU,有,两个,PTO/PWM,发生器,分别通过,CPU,集成的,QO.O-Q0.3,或信号板上,的,Q4.0-Q4.3,输出,PTO,或,PWM,脉冲。,52,2,PWM,的组态,PWM,功能提供可变占空比的脉冲输出,时间基准可以设置,为,us,或,ms,。,脉冲宽度为,0,时,占空比,为,0,,,没有脉冲输出,输出一直,为,0,状态,。脉冲宽度等于脉冲,周期,时,,占空比,为,100,%,,没有,脉冲输出,输出一直,为,1,状态,。,PWM,的高频输出波形经滤波后得到与占空比成正比的模拟量输出电压,可以用来控制,变频器,的转速和阀门的开度等物理量,。,使用,PWM,之前,首先应对脉冲发生器组态,具体,步骤:,1,),打开,PLC,的设备视图,选中其中的,CPU,。,2,),打开下面的巡视窗口的“属性”选项卡,选中左边的,PTO1/PWM1 (Pulse 1)”,中的,“常规”参数组,用复选框选中右边窗口的复选框“允许使用该脉冲发生器”,激活该,脉冲发生器。,53,3,),选中左边窗口的“参数分配”,组,,在右边的窗口可以设置下列参数:,使用“脉冲发生器用作”下拉式列表,可选脉冲发生器为,PWM,或,PTO,。,使用,“输出源”下拉式列表,可选“板载,CPU,输出”,(CPU,集成的输出点)或,“信号板输出”。,使用“时基”(时间基准)下拉式列表,可选毫秒或微秒。,使用,“脉冲宽度格式”,下拉式列表,,,可选,4,种脉冲宽度格式:百分数、千分数,(,0-1000,),、万分数,(0-10000),和,S7,模拟量格式,(,0-27648,),。,用,输入,域“循环时间”设置脉冲的周期为,2ms,采用“时基”选择的时间单位。,用,输入域“初始脉冲宽度”,设置脉冲的占空比为,50%,,即脉冲周期为,2ms,,脉冲宽度,为,lms,。脉冲宽度采用“脉冲宽度格式”设置的单位(百分数,。,4,),选中左边窗口,的,“IO,地址,硬件标识符”参数组,在右边的,窗口可以看到,PWM1,的起始地址、结束地址和硬件标识符。可以修改其起始地址,在运行时用这个,地址来,修改脉冲宽度。,54,PWM的编程,将,右边的“扩展指令”窗口的文件夹“脉冲”中的CTR卜少WM指令拖放到,OB,1,,,点击出现的“调用选项”对话框中的“确定”按钮,生成该指令的背景数据块。,点击,参数PWM左边的问号,再点击出现,的按钮,,用下拉式列表选中Pulse,_1,”,,,其硬件,标识符(HW ID)为9,。,IN,输入信号为,1,状态时,用参数,ENABLE (10.4),来启动或停止脉冲发生器,用,PWM1,的,输出,地址来,修改脉冲宽度,。,6.5.2,编码器,高速计数器一般与增量式编码器一起使用,,后者,每圈发出一定数量的计数脉冲和一个,复位,脉冲,作为高速计数器的输入,。,55,编码器有以下几种类型:,1,增量式编码器,光电增量式编码器的码盘上有均匀刻制的光栅考码盘旋转时,输出与转角的增量成正比的脉冲,需要用计数器来计脉冲数。有,3,种增量式编码器:,1),单通道增量式编码器内部只有,1,对,光耦合器,,只能产生一个脉冲列。,2),双通道增量式编码器又称为,A/B,一相型编码器内部有两对,光耦合器,,输出相位差为,90,0,的两组独立脉冲列。正转和反转时两路脉冲的超前、滞后关系相反,如果使用,A,、,B,相型编码器,,PLC,可以识别出转轴旋转的方向。,正转,反转,56,A/B,相,正交,计数可以,选择倍速,模式和,4倍速,模式,1倍速模式,在时钟脉冲的每一个周期计一次数,,倍,速模式在对钟脉冲的每一个周期计4次数,。,1,倍速正交模式操作举例,4,倍,速正交模式操作举例,3)三,通道增量式编码器内部除了有双通道增量式编码器的两对,光耦合器,外,在脉冲码盘的另外一个通道内还有一个透光段,每转圈输出一个脉冲,该脉冲称为相零位脉冲,,用于,系统清零信号,或作为坐标的原点,以减少测量的积累误差。,、绝对式编码器,N,位,绝对式编码器有个码道,最外层的码道对应于编码的最低位。,每一丫,码道有一个,光耦合器,,用来读取该码道,的,0,、,数据。绝对式编码器输出的位二进制数反映了运动物体,所处,的绝对位置,根据位置的变化情况,可以判别出旋转的方向。,58,5.5.3,高速计数器,高速计数器的功能,S7-1200PLC,集成,有个高速计数器,(,HSC,)。,HSC1,HSC3,的,最高计数频率,为,100KHz,。,CPU1211C,可以使用,HSC1,HSC3,,,CPU1212C,可以使用,HSC1,HSC4,,,使用信号,板,DI2,DO2,后,,它们还可以,使用,HSC5,。,CPU1212C,可以使用,HSC1,HSC6,。,在,用户程序,使用,HSC,之前,,应,为,HSC,组态,设置,HSC,的,计数模式。,大多数,HSC,的,参数,只能,在项目的设备组态中设置,,某些,HSC,的,参数在设备组态中初始化,以后可以用程序来修改,。,HSC,有,种工作模式:内部方向控制的单相计数器,外部方向控制的单相计数器,,两路计数,脉冲输入的计数器,和,A,/,相计数器,。,高速计数器有两种功能:频率测量功能和计数功能。,59,高速计数器使用的输入,点,表给,出了用于高速计数器的计数脉冲、方向控制和复位的输入点的地址。同一个,输入,点不能同时用于两种不同的功能,但是高速计数器当前模式未使用的输入点可以用于,其他功能。,高速计数器的输入点,60,HSC1,和,HSC2,可以分别用来监视脉冲列输出,PTO1,和,PTO2,。,HSC1,HSC6,的实际计数的数据类型为,Dint,,默认地址为,ID1000,ID1020,,可以在组态时修改地址。,3,.高速计数器的组态步骤,1,),打开,PLC,的,设备视图,选中其中的,CPU。,2,)选中巡视窗口的“属性”选项卡左边的高速计数器HSC,1,的“常规”参数组,用,复选框选中“允许,使用该高速计数器”,激活该,HSC。,如果,激活了脉冲发生器PTO1或PT02,它们分别使用HSC1和HSC2的,“运动轴”模式,,来监视硬件输出。如果组态HSC,1,或HSC2用于其他任务,它们不能被脉冲发生器PTO,1或,PT02使用。,3,)选中左边的“功能”参数,组,,在右边的窗口可以,设置参数。,4),选中窗口,的“重置为初始值”参数组,可以设置,“初始计数器值”和“初始参考值”。,61,5),选中窗口的设置,高速计数器的初始值与复位,信号“事件组态”,参数组,可以用右边窗口的复选框激活,下列事件出现时是否产生中断:计数值等于参考值、出现外部复位事件和出现,计数,方向变化事件。,6,),选中窗口,的,“硬件输入”参数组,可以看到该,HSC,使用的硬件,输入点和可用的最高,频率。,7,),选中窗口的,“I/O,地址,标识符,参数组,可以在右边窗口修改,HSC,的,起始地址,。,5.5.4,高速脉冲输出与高速计数器的计数,实验,1.,实验的基本,要求,用,高速脉冲输出功能产生周期,为,2ms,,,占空比为,50,的,PWM,脉冲,列,送给高速,计数器,HSC1,计数。通过设置不同的参考值,在计数值分别为,2000, 3000,和,1500,时产生中断。在中断程序中修改计数值、参考值和计数方向,同时改变,Q0.4-Q0.6,的状态。,62,2.,硬件接线,高速计数器的实际计数值波形图 硬件接线图,63,3.PWM,的组态和编程,组态,PTO1/PWMl,产生,PWM,脉冲,输出,源为信号板上的输出点,时间,单位为,ms,脉冲宽度的格式为百分数,脉冲的周期为,2ms;,初始脉冲宽度,为,50,。,在,OB1,中,调用,CTRL_PWM,指令,,用,10.4,启动脉冲发生器。,4,.,高速计数器的,组态,组态时设置,HSC1,的工作方式为单相脉冲,计数,,使用,CPU,集成的输入,点,10.0,通过,用户程序改变计数的方向。设置,HSC,的初始状态为加计数,初始计数值,为,0,,初始,计数参考值为,2000,。出现,计数值等于参考值的事件时,调用硬件中断组织,块,OB200,。,HSC,默认的地址为,ID1000,,在运行时可以用该地址监视,HSC,的计数,。,5.,高速计数器控制指令,CTRL_HSC,是,高速计数器控制指令。输入参数,HSC,为高速计数器的,硬件标识符(,HW ID,)。,EN,为,1,时,参数,BUSY,为,1,,,STATUS,是执行指令的状态代码,。,DIR,为,1,时,计数方向,NEW_DIR,被装载;,CV,为,1,时,,32,位计数值,NEW_CV,被装载到,HSC,。,64,65,66,67,68,69,71,72,73,74,75,5.5.5,用,高速计数器测量频率的实验,1,项目简介,在,STEP 7 Basic,中生成项目,“频率测量例程”,,CPU,为,继电器,输出的,CPU,1215C,。为了,输出高频脉冲,使用了一块,2DI/2D0,信号板。用信号板的输出,点,Q4.0,发出,PWM,脉冲,送给,HSC1,的高速脉冲输入点,10.0,测量,频率。,2,. PWM,的组态与,编程,打开,PLC,的设备视图,选中其中的,CPU,。打开,下面的巡视窗口的“属性”选项卡,,选中左边,的,PTO1/PWMl (,Pulse_1,),文件夹中的“常规,,选中,右边窗口的复选框“,允许使用,该脉冲发生器”,。,高速计数器的,组态,设置,HSCI,的工作方式为“频率”(频率,测量),使用,CPU,集成,的输入,点,10.0,。在,组态时设置,HSC,的初始状态为加计数,频率测量周期,为,1.0s,。,HSCI,默认的地址,为,ID,1000,在运行时可以用该地址监视,HSC,的频率测量值。,76,77,5.6,其它指令与库,5.6.1,实时时钟指令,打开在线与诊断视图,,可以,设置实时时钟的时间,值。也,可以用时钟指令来读、写,实时时钟。,1,、日期,时间的数据类型,1,),数据类型,Time,的长度为,4B;,取值范围,为,T,#-,24d_20h_31m_23S_648ms,T#24d_20h_31m_,23s_647ms,(,-,2147483648ms,2147483647ms,),。,),数据结构,DTL,如表所,示,可以在全局数据块或块的界面区中,定义,DTL,变量,。,81,2.,T_CONV,指令,(,时间转换,),T_CONV,用于将数据类型为,Time,转换为,DInt,,或者作反向的转换。,IN,和输出参数,OUT,均可以取数据类型,Time,和,Dint,3.T_ADD,指令(时间值相加,),T_ADD,和,T_SUB,的输入参数,IN1,和输出参数,OUT,的数据类型可选,DTL,或,Time,它们的数据类型应相同。,IN2,的数据类型为,Time,。,4.T_SUB,指令(时间值相减),T_SUB,的输入参数,IN1,的值减去,IN2,的值,参数,OUT,用来指定保存运算结果的地址。,可以作两种数据类型的运算:,Time-Time=Time,或,DTL-Time=DTL,。,82,5,.T_,DI,FF,指令,(,时间差,),T,_,DIEF的输入,IN1,的,DTL,值,减去IN,2的,DTL,值,,参数OUT提供数据类型为Time,的差值,。即,DTL,-,DTL,=,Time,。,如果,DTL或Time值无效,ENO为0,参数OUT为0。,如果IN2指定的时间,大于,IN1,指定,的时间,OUT输出的结果为负值,。如果运算结果超出允许,的范围,运算结果被限幅,ENO被置为0状态,。,83,6,.,时钟,指令,时钟,指令用来设置和读取系统,时钟。,数据类型,DTL用于,提供日期和时间值。,1,)指令,WR_SYS_T(,写,系统,时间),将,输入IN的,DTL值,写入PLC的,实时时钟。这个时间,值不包括对本地时区和夏令时的,补偿。输出,R,ET,_,VAL,是返回的指令执行的状态信息,,数据类型,为Int,。,2,),RD,_,SYS,_,T,(读系统时间)将读取的PLC当前系统,时间,保存,在,输出,OUT,中,,,数据类型为DTL。这个,时间值不包括对本地时区和夏令时的,补偿。输出RET,_,VAL,是返回的指令,执行,的状态信息。,84,3),RD,_,LOC,_,T,(读本地时间)的输出OUT提供数据类型为DTL的PLC中的当前,本地时间,。为了保证读取到正确的时间,在组态CPU的属性时,应设置实时,时间的,时区,为北京,不,设置夏令时。在读取实时时间时,应调用,RD,_,LOC,_,T指令,。,85,【例】,用实时时钟指令控制路灯的定时接通和断开,20: 00开灯,,06,: 00,关灯。,86,5,.,6.2项目库与全局库,通过全局库和项目库,可以在整个项目中或者在项目之间重复使用存储的对象,。,5.6.3,间接寻址指令,使用,指令,FieldRead,(通过索引变量从数组中读取数值)和,FieldWrite,(通过索引变量向,数组,中写数旬犷可以实现间接寻址,。,87,生成一个名为“数据块,1”,的全局数据块,在数据块中生成名为“数组,1,的数组,Array1.5of Int,其元素的数据类型为,Int,,元素的下标为,1,5,。,这两条指令没有列入指令列表和高级指令列表。打开程序编辑器,将收藏夹中的空逻辑框插入程序。点击其中红色的“?”,打开下拉式列表框,选中列表框底部的指令,FieldWrite,或,FiedRead,。,点击生成的指令框中的“?”,用下拉式列表设置要写入或读取的数据类型为,Int,。两条指令的参数,MEMBER,的实参必须是数组的第一个元素“数据块,1 ”.,数组,11,。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!