版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章功能指令
第一部分功能指令简介第二部分基本功能指令5.1功能指令功能指令的基本要素主要包括功能指令的表示形式、执行方式、数据类型等。5.1.1功能指令的表示形式功能指令直接表达指令要做什么,在梯形图中用功能框表示,功能指令名称主要用英文名称、缩写助记符或符号表示,标注在点画线方框内,s为输入变量(源),d为输出变量(目标),带EN/ENO功能(EN为执行条件,ENO为运算结果,数据类型为bool)。功能块可以输出多个运算结果,此外,也可以不输出任何信息,如图5.1所示。图5.1功能指令的表示形式有的功能指令没有操作数,而大多数功能指令有1~5个操作数。(s)表示源操作数,(d)表示目标操作数,如果使用变址功能,则可表示为(s▪)和(d▪)。当源或目标不止一个时,用(s1)、(s2)、(d1)、(d2)等表示,如图5.2所示,ADD功能指令使用了2个源操作数和1个目标操作数。图5.2功能指令的操作数5.1.2功能指令的执行方式功能指令有脉冲执行和连续执行两种执行方式。指令助记符后面有“P”表示脉冲执行,即该指令仅在执行条件接通(由OFF到ON)时执行一次;如果没有“P”则表示连续执行,即在执行条件接通(ON)的每一个扫描周期该指令都要被执行。功能指令的执行方式如图5.3所示。连续执行方式下,X0接通时,这条连续执行指令在每一个扫描周期都被重复执行。而在脉冲方式下,在扫描到这条指令时,仅当X0由OFF→ON时执行一次。(a)连续执行(b)脉冲执行图5.3执行方式5.1.3功能指令的数据类型功能指令可处理16位数据或32位数据。处理32位数据的指令是在助记符前加“D”标志,无此标志即为处理16位数据的指令。指令符号后附带“(_U)”是处理无符号数据的指令。指令符号后未附带“(_U)”是处理有符号数据的指令。如图5.4所示。当X0接通时,执行MOV指令,将D10中的数据传送到D12中去(处理16位数据)。而在32位数据中,执行DMOV指令,将D20、D21构成的数据传送到D22、D23中去(处理32位数据)。(a)16位数据(b)32位数据图5.4数据长度5.2程序流程控制指令程序流程控制指令主要包括条件跳转指令、子程序调用指令、返回指令、中断返回指令、允许中断指令、禁止中断指令、主程序结束指令、循环开始指令与循环结束指令等。5.2.1条件跳转指令指令符号指令名称功能梯形图符号CJ条件跳转跳转到指针(s)所指的位置
【例5-1】如图5.5所示为CJ指令应用的例子,当X20为ON时,程序跳到标号P10处。如果X20为OFF时,跳转不执行,程序按原顺序执行。图5.5CJ指令说明5.2.2子程序指令子程序指令包括子程序调用指令(CALL,Call)和返回指令(SRET,SubroutineReturn)。指令符号指令名称功能梯形图符号CALL调用子程序调用执行子程序SRET子程序返回从子程序返回运行【例5-2】如图5-6所示为CALL指令应用例子,当X0为ON时,CALLP10指令使程序执行P10子程序,在子程序中执行到SRET指令后程序返回到CALL指令的下一条指令处执行。若X0为OFF,则程序顺序执行。图5-6CALL指令应用5.2.3中断指令中断指令包括中断返回指令(IRET,InterruptReturn)、允许中断指令(EI,EnableInterrupt)与禁止中断指令(DI,DisableInterrupt)。指令符号指令名称功能梯形图IRET中断返回从中断子程序返回EI允许中断开中断DI禁止中断关中断【例3-3】如图5.7所示为中断指令应用例子,当程序执行到允许中断区间时,若X0或X1为ON,则执行相应的中断子程序(1)或(2)。图5-7中断指令说明5.2.4主程序结束指令主程序结束指令为FEND,FunctionEnd。指令符号指令名称功能梯形图FEND主程序结束主程序的结束,子程序的开始
[例5-4]如图5-8所示为多次使用FEND指令应用的例子。若X10为OFF,程序顺序执行,直到执行FEND指令返回起始步;若X10为ON,指令跳转到P20处执行,直至遇到FEND指令返回起始步。图5-8FEND指令应用5.2.5循环指令循环指令包括循环开始指令(FOR,For)、循环结束指令(NEXT,Next)和强制结果指令(BREAK,Break)。指令符号指令名称功能梯形图FOR循环的起点表示循环的开始和执行循环的次数
NEXT循环的终点表示循环的结束
BREAKFOR~NEXT强制结束强制结束通过FOR~NEXT指令进行的重复处理,将执行转移至(P)中指定的指针。在FOR~NEXT循环处理中,如需强制结束重复并跳转至指定位置,可通过(P)参数中设定的指针实现,该指针必须指向同一程序文件内的位置。如图5-9所示,强制结束循环的过程如下:(1)判断是否满足强制结束条件;(2)若满足,则执行循环跳出,D10存储强制结束时的FOR~NEXT指令中重复处理执行次数的剩余数,并跳转至指针P5处继续执行;(3)若不满足,则不执行BREAK指令,循环将按照FOR指令中设定的次数正常执行。图5-9循环指令应用5.3传送与比较指令传送与比较指令主要用于数据的移动、比较和转换,主要包括比较指令、区间比较指令、传送指令、移位传送指令、取反传送指令、块传送指令、多点传送指令、数据交换指令、BCD变换、BIN变换指令等。5.3.1比较指令CMP比较指令(CMP,Compare),用于比较两个源操作数的大小,并将结果存入指定目标。CMP指令有3个操作数,即2个源操作数(s1)、(s2)和1个目标操作数(d)。源操作数可为K、H、KnX、KnY、KnM、KnS、T、C、D、Z等软元件,目标操作数为连续的三个位软元件(Y、M、S)。指令符号指令名称功能梯形图符号CMP比较比较(s1)与(s2)的大小若(s1)>(s2)→(d)为ON;若(s1)=(s2)→(d+1)为ON;若(s1)<(s2)→(d+2)为ON。[例5-5]如图5-10所示,比较D0、D10、D20中的数据,将其最大值存入D0。SM400在运行中始终为ON。图5-10数据大小比较5.3.2脉冲区间比较指令ZCP区间比较指令(ZCP,ZoneCompare)将第三个源操作数(s3)与源操作数(s1)、(s2)定义的区间进行比较,其中(s2)不得小于(s1),结果存入目标操作数。指令符号指令名称功能梯形图ZCP区间比较把一个数(s3)与两个数组成的区间(s1,s2)比较
①若(s3)<(s1),则(d)为ON;②若(s1)≤(s3)≤(s2),则(d+1)为ON;③若(s3)>(s2),则(d+2)为ON。【例5-6】某温度控制系统如图5-10(a)所示,要求温度控制范围为25~30℃,超出范围灯会闪烁报警。当温度低于25℃时,黄灯(L1)闪烁;当温度介于25~30℃时,绿灯(L2)亮;当温度高于30℃时,红灯(L3)闪烁。该温度控制系统的器件及功能表见表5-10,其梯形图如图5-10(b)所示。图5-10(a)温度控制系统■本例涉及到温度区间的比较,初步判断采用ZCP脉冲区间比较指令。■温度传感器的检测值为输入信号,黄灯(L1)、绿灯(L2)、红灯(L3)为显示输出信号,分别代表温度低于25°C,温度介于25~30°C,温度高于30°C。设计思路表5-10温度控制系统器件及功能表器件PLC软元件说明器件PLC软元件说明温度传感器X0检测当前温度值L1Y0黄灯(温度过低)
L2Y1绿灯(温度正常)
L3Y2红灯(温度过高)图5-10(b)温度控制系统梯形图5.3.3传送指令MOV传送指令(MOV,Move)用于将源操作数(s)中的数据传送到目标操作数(d)中。指令符号指令名称功能梯形图MOV传递将源数据传送到目标单元
【例5-7】如图5-11所示为MOV指令应用的例子。当X0为ON时,源操作数(s)中的数据K100传送到目标元件D10中;当X0为OFF时,指令不执行,数据保持不变。图5-11MOV指令应用【例5-8】传送与比较指令应用案例。某车间有3个工作台,送料小车往返于这些工作台之间,在每个工作台上都设置一个到位开关(SQ)和一个呼叫按钮(SB),如图5-12(a)所示。具体控制要求如下:送料小车可以停留在3个工作台中的任意一个到位开关(SQ)位置处。如果送料小车当前正停于m号工作台到位开关SQm(SQm为ON)处,此时n号工作台工作人员按下呼叫按钮SBn(SBn为ON),若:(1)m>n,送料小车左行,运行至n号工作台到位开关SQn处,运料小车停止。即送料小车所停在位置SQ的编号大于呼叫按钮SB的编号,送料小车往左行运行至呼叫位置后停止。(2)m<n,送料小车右行,运行至n号工作台到位开关SQn处,运料小车停止。即送料小车所停在位置SQ的编号小于呼叫按钮SB的编号,送料小车往右行运行至呼叫位置后停止。(3)m=n,送料小车停在原地不动。即送料小车所停位置SQ的编号与呼叫按钮SB的编号相同,送料小车不动。该小车运料系统的功能表见表5-12,其梯形图如图5-12(b)所示。(a)车间小车原料系统
■本例涉及到输入数据大小的比较,初步判断采用CMP比较指令。■本例记录当前输入信号的状态,采用MOV数据传送指令。■运料小车的启动信号SB0,停止信号SB4,输入信号为工作台与工作台之间的呼叫按钮(SB1~SB3)以及对应各个工作台的行程开关(SQ1~SQ3),输出信号为运料小车的正反转Y0、Y1。设计思路表5-12小车运料系统功能表输入功能说明输出功能说明SB0X0启动KM1Y0左行SB1X1呼叫1KM2Y1右行SB2X2呼叫2
SB3X3呼叫3
SB4X4急停按钮
SQ1X5限位1
SQ2X6限位2
SQ3X7限位3
图5-12(b)小车运料系统梯形图5.3.4移位传送指令移位传送指令SMOV(SMOV,ShiftMove)用于将源操作数中的指定位(BCD码格式)传送到目标操作数的指定位置。指令符号指令名称功能梯形图SMOV移位传送把4位十进制数中的位传送到另一个4位数指定的位置
【例5-8】移位传送指令应用如图5-13所示,当X0=OFF时,指令不执行,数据保持不变;当X0=ON时,SMOV指令执行以下操作:(1)将D1中的二进制数据转换为BCD码,得到D1';(2)D1'的右起第4位(n1=4)开始,连续取2位(n2=2)(3)将此2位BCD码送入D2'的右起第3位(n3=3)和第2位,而D2'的第4位和第1位这两位BCD码不变;(4)将组合后的BCD码D2'自动转换为二进制数存入D2。若转换后的BCD码值超过9999,则指令出错。图5-13SMOV指令应用5.3.5取反传送指令取反传送指令(CML,ComplementMove)用于将源操作数中数据逐位取反后传送到目标操作数。指令符号指令名称功能梯形图CML取反把源操作数取反,结果存放到目标元件【例5-10】如图5-14所示为CML指令应用的例子,当X0为OFF时,指令不执行,数据保持不变。当X0为ON时,源操作数(s)中的数据D0仅低4位求反传送到组合位元件K1Y0中,组合元件K1Y0包含Y0,Y1,Y2,Y3。图5-14CML指令应用5.3.6块传送指令块传送指令(BMOV,BlockMove)用于将源操作数指定的软元件开始的n个数组成的数据块传送到指定的目标。指令符号指令名称功能梯形图BMOV块传送把指定数据块的内容以(s)为起始位的n个数据传送到目标元件以(d)为起始位的n个数据
【例5-11】如图5-15所示为BMOV指令应用的例子。当X0为OFF时,指令不执行,数据保持不变;当X0为ON时,将源操作数中D5为起始位的3个数据依次传送到目标操作数中D10为起始位的3个数据中。当X1为OFF时,指令不执行,数据保持不变;当X1为ON时,将源操作数中D20为起始位的3个数据依次传送到目标操作数中D15为起始位的3个数据中。图5-15BMOV指令应用5.3.7多点传送指令多点传送指令(FMOV,FillMove)用于将同一个源操作数(s)传送到指定目标操作数(d)开始的n个目标软元件中。这n个软元件中的数据完全相同,常用于批量初始化或赋值。指令符号指令名称功能梯形图FMOV多点传送将源数据(s)填充至以(d)起始的连续n个软元件中【例5-12】如图5-16为FMOV指令应用例子。X0为ON时,将源操作数中数据0送至目标操作数D100-D119中。图5-16FMOV指令应用5.3.8数据交换指令数据交换指令(XCH,Exchange)用于将两个目标软元件的内容相互交换。指令符号指令名称功能梯形图XCH交换两目标软元件数据互换【例5-13】如图5-17所示为XCH指令应用例子。X0为ON时,将数据寄存器D0中的内容与数据寄存器D12中的数据相互交换。图5-17XCH指令应用5.3.9进制转换指令进制转换指令包括BCD转换指令(BCD,BinaryCodedDecimal)和BIN转换指令(BIN,Binary)。BCD转换指令是将源操作数(s)中的BIN数据转换为BCD码并送到目标操作数(d)软元件中。BIN转换指令是将源操作数(s)中的BCD码转换为BIN数据后送到目标操作数(d)软元件中。指令符号指令名称功能梯形图BCD求BCD码把BIN数据转换成BCD码BIN求BIN数据把BCD码转换成BIN数据
5.4算数运算与逻辑运算指令算数运算和逻辑运算指令主要包括二进制数、BCD的加、减、乘、除运算指令,BIN块数据加、减指令,BIN数据递增、递减指令,数据逻辑运算。5.4.1加法指令(ADD)和减法指令(SUB)加法指令(ADD,Add)用于将指定的源软元件中的二进制数相加,结果送到指定的目标软元件中。减法指令(SUB,Subtract)用于将2个源软元件中的二进制数相减,结果送到指定的目标软元件中。指令符号指令名称功能梯形图ADD加法把两数相加,结果存放到目标元件SUB减法把两数相减,结果存放到目标元件【例5-14】如图5-18所示为ADD指令应用的例子。若X0为OFF,该条指令不执行;若X0为ON,将D10和D12相加,结果放在D14中。注意:若X0为ON,每个扫描周期都会执行加法操作;如果希望X0每次由OFF变为ON时仅执行一次加法,则应在ADD指令后加上“P”。图5-18ADD指令应用注意:二进制代数运算会影响相关标志位,其变化情况如图5-19所示。(1)二进制代数运算:采用二进制补码进行有符号数运算(每个数据的最高位作为符号位,0为正,1为负);(2)标志位系统:①零标志SM8020:运算结果为0时置ON;②借位标志SM8021:16位运算结果<-32768或32位运算结果<-2147483648时置ON;③进位标志SM8022:16位运算结果>32767或32位运算结果>2147483647时置ON。(3)确保操作数类型一致,同时运算前进行范围检查,防止运算溢出。图5-19标志位的变化【例5-15】如图5-20(a)所示,控制要求为:三个称重传感器数据分别存放在D10、D11、D12中(已通过AD模块读取),设定总重量上限存贮在D30;按下启动按键X0,计算总重量并存贮在D20;当总重量超过上限时,Y0报警灯亮;当平均重量低于300kg时,Y1报警灯亮。该多传感器重量累计与报警控制系统的功能表见表5-21,其梯形图如图5-20(b)所示。图5-20(a)多传感器重量累计与报警控制系统■三个传感器数据分别存入D10、D11、D12,并设定总重量上限存入D30。■系统计算三个传感器的总重量并存入D20;当总重量超过上限或低于300kg时,对应的报警灯Y0或Y1亮起。■本例通过ADD加法指令实现数据累加,并利用ZCP区间比较指令实现报警控制。设计思路表5-21多传感器重量累计与报警控制系统的功能表输入功能说明输出功能说明启动按键X0系统开始工作超上限报警灯Y0当D20>D30,灯亮超下限报警灯Y1当D20<300,灯亮5-20(b)控制系统梯形图【例5-16】。如图5-21所示为SUB指令的应用例子。若X0为OFF,该条指令不执行;若X0为ON,将D10与D12相减的结果放在D14中。每个标志的功能、32位运算的软元件指定方法、连续执行和脉冲执行的区别等均与加法指令相同。图5-21减法指令应用5.4.2乘法(MUL)和除法指令(DIV)乘法指令(MUL,Multiply),用于将2个源操作数相乘,结果送到目标操作数中。除法指令(DIV,Divide)用于将2个源操作数相除,并将得到的商和余数送到目标操作数中。指令符号指令名称功能梯形图MUL乘法把两数相乘,结果存放到目标元件
DIV除法把两数相除,结果存放到目标元件【例5-17】如图5-22是MUL与DMUL指令的应用例子,若X0为OFF时,该条指令不执行,若X0为ON时,将D0和D2中的16位数据相乘,结果放在D4,D5当中。若X1为OFF时,同样指令不执行,若X1为ON时,将D0与D1中的32位数据与D2和D3中的32位数据相乘,结果放在D4、D5、D6和D7当中。图5-22MUL和DMUL指令应用【例5-18】如图5-23为DIV与DDIV指令的应用例子,若X0为OFF时,该条指令不执行,若X0为ON时,将D0和D2中的16位数据相除,商放在D4中,余数放在D5当中。若X1为OFF时,同样指令不执行,若X1为ON时,将D0与D1中的32位数据与D2和D3中的32位数据相除,商放在D4,D5中,余数放在D6,D7中。图5-23DIV和DDIV指令应用5.4.3加/减1指令加1指令(INC,Increment)用于将目标软元件的当前值加1,减1指令(DEC,Decrement)用于将目标软元件的当前值减1。指令符号指令名称功能梯形图INC加1把目标元件当前值加1
DEC减1把目标元件当前值减1
【例5-19】图5-24(a)所示为一个停车场车辆数量控制系统。该停车场最多可容纳100辆车。在入口和出口处分别安装了红外传感器,用于实时统计进出的车辆数量。当库内车辆达到100辆时,入口处的红灯亮起,表示停车场已满,禁止车辆进入。当有车辆驶离、空出车位后,绿灯重新亮起,提示有停车位可用,允许车辆进入。该系统的功能表见表5-24,梯形图如图5-24(b)所示。图5-24(a)地下车库私家车数量自动控制系统■地下车库进出口分别设置红外传感器X0、X1用于检测车辆的进出,每次进入一辆或者出去一辆都会自动加1或者减1。■地下车库内存储的私家车数量固定为100辆,若私家车的数量低于100辆则入口处绿灯点亮允许车辆进入,反之则红灯点亮禁止车辆进入。■本例通过INC(加1)和DEC(减1)指令实现输入信号加法运算。设计思路图5-24地下车库私家车数量自动控制系统功能表输入功能说明输出功能说明L1X0入口红外传感器HD1Y0入口绿灯L2X1出口红外传感器HD2Y1入口红灯图5-24(b)地下车库私家车数量自动控制系统梯形图5.4.4逻辑运算指令逻辑运算指令包括字逻辑与(WAND,WordAnd)、字逻辑或(WOR,WordOr)、字逻辑异或(WXOR,WordExclusiveOr)和求补(NEG,Negate)指令等。指令符号指令名称功能梯形图WAND逻辑字与按位与,用于位屏蔽、数据提取
WOR逻辑字或按位或,用于位设置、数据合并WXOR逻辑字异或按位异或,用于比较、取反
NEG求补码求目标软元件内容的补码(取反加1)表5-26逻辑运算关系表与或异或M=AXBM=A+BM=A⊕BABMABMABM000000000010011011100101101111111110【例5-20】已知存在3个寄存器D10、D20、D30,其中D10=1,D20=101。求:(1)WANDD10D20D30的值;(2)WORD10D20D30的值;(3)WXORD10D20D30的值。(1)WAND运算如图5-26所示,D10=1159H(0001000101011001),D20=0865H(0000100001100101),D30=0041H(0000000001000001)。
图5-26WAND(字逻辑与)(2)WOR运算如图5-27所示,D10=1159H(0001000101011001),D20=0865H(0000100001100101),D30=197DH(0001100101111101)。
图5-27WOR(字逻辑或)(3)WXOR运算如图5-28所示,D10=1159H(0001000101011001),D20=0865H(0000100001100101),D30=193CH(0000000001100101)。
图5-28WXOR(字逻辑异或)5.5循环与移位循环指令移位与循环移位指令主要包括n位右移、左移循环移位,带进位循环右移、左移,n1位数据的n2位右移、左移,n1字数据的n2字右移、左移,数据读取,数据写入等。5.5.1左/右循环移位指令左循环移位指令(ROL,RotateLeft)用于把目标软元件的位循环左移n次,移出位从右侧补入,最后移出位送进位标志。右循环移位指令(ROR,RotateRight)用于把目标软元件的位循环右移n次,移出位从左侧补入,最后移出位送进位标志。指令符号指令名称功能梯形图ROR循环右移把目标元件的位循环右移n次\ROL循环左移把目标元件的位循环左移n次【例5-21】如图5-29为ROL的应用例子,当X1由OFF变为ON时,各位数据向左循环移位4(n=4)次,最后一次从目标元件中移出的状态存于进位标志SM8022中。图5-30ROL指令应用【例5-22】如图5-30所示为ROR应用例子,当X1由OFF变为ON时,各位数据向右循环移位4(n=4)次,最后一次从目标元件中移出的状态存于进位标志SM8022中。图5-29ROR指令应用5.5.2带进位循环左/右移指令带进位循环左移指令(RCL,RotateLeftThroughCarry)用于把目标软元件的位和进位一起左移n位。带进位循环右移指令(RCR,RotateRightThroughCarry)用于把目标软元件的位和进位一起右移n位。指令符号指令名称功能梯形图RCL带进位左移把目标元件的位和进位一起左移位
RCR带进位右移把目标元件的位和进位一起右移n位
5.5.3位左/右移指令位左移指令(SFTL,ShiftLeft)将指定目标软元件开始的n1位数据向左移动n2位,位右移指令(SFTR,ShiftRight)将指定目标软元件开始的n1位数据向右移动n2位。指令符号指令名称功能梯形图SFTR位右移将指定目标软元件开始的n1位数据向左移动n2位SFTL位左移将指定目标软元件开始的n1位数据向右移动n2位
【例5-23】如图5-31所示为SFTR应用例子,当X0由OFF变为ON时,目标位元件中的状态向右移位,由n1指定位元件的长度为16位,n2指定移位的位数为4位。图5-31SFTR指令应用5.5.4字左移和字右移指令字数据左移指令(WSFL,WordShiftLeft)将(d)中指定的软元件开始n1字数据向左移位n2字,字数据右移指令(WSFR,WordShiftRight)将(d)中指定的软元件开始n1字数据向右移位n2字。指令符号指令名称功能梯形图WSFRn字数据左移指令将(d)中指定的软元件开始n1字数据向左移位n2字
WSFLn字数据右移指令将(d)中指定的软元件开始n1字数据向右移位n2字【例5-24】如图5-32所示为WSFR应用例子,当X0由OFF变为ON时,将D10为首址的16位字元件组合向右移动4位,其高位由4位字元件组合D0移入,移出的4个低位被舍弃,而字元件组合D0保持不变。图5-32WSFR指令应用5.5.5写入和读出指令数据表数据写入指令(SFWR,ShiftRegisterWrite)用于数据写入队列,指针自动加1;读出指令(SFRD,ShiftRegisterRead)用于数据从队列读出,指针自动减1。指令符号指令名称功能梯形图SFWR数据表数据写入先入先出控制的数据写入
SFRD数据表数据读取先入先出控制的数据读取
【例5-25】如图5-33所示为SFWR指令应用的例子。一般情况下,指针D5先清0,当X0首次由OFF变为ON时,D5内容加1变为1,下一单元即D6,源操作数D0写入D6中;当X0再次变为ON时,D0中的数据写入下一单元D7,D5再加1变为2。其余类推,依次写入寄存器。显然,数据从指针D5所指下一单元最右边的寄存器开始依次写入,当D5达到n-1后,上述操作不再执行,进位标志SM8022置1。图5-33SFWR指令应用【例5-26】如图5-34所示为SFRD指令应用的例子。当X0首次由OFF变为ON时,SFRD将D2中的数据读出到D20,而D1作为指针减1,D10到D3的数据右移一字。若用连续指令SFRD,则每个扫描周期数据右移一字,而数据总是从D2读出。当指针D1为0时,上述操作不再执行,零标志SM8020置1。图5-34SFRD指令应用【例5-27】循环小灯控制系统如图5-35(a)所示。在实验台上有3盏不同颜色的灯:红灯Y0、绿灯Y1和黄灯Y2,要求当按下按钮SB0时,先从红灯开始,按照红灯→绿灯→黄灯的顺序轮流点亮3s,然后3盏灯同时点亮3s,如此反复循环下去。当按下停止按钮SB1时,3盏灯停止循环。循环小灯控制系统的功能表见表5-33,其梯形图如图5-35(b)所示。图中的K1Y0表示为Y0、Y1、Y2、Y3。图5-35(a)循环小灯控制系统
■实验台上三盏灯红灯Y0、绿灯Y1、黄灯Y2为对应的输出信号。■输入信号为工作台上的两个按钮SB0(启动)和SB1(停止)。■本例通过通过定时器T1与循环左移指令ROL实现。设计思路表5-33循环小灯控制系统功能表输入功能说明输出功能说明按钮1X0启动红灯Y0红灯按钮2X1停止绿灯Y1绿灯
黄灯Y2黄灯图5-35(b)循环小灯控制系统梯形图
5.6数据处理指令数据处理指令主要包括16位/32位数据查找、检查、位判定指令,16位/32位数据最大值、最小值搜索指令,16位/32位数据排序指令,16位/32位合计值计算指令,16位/32位数据平均值计算指令,16位/32位平方根指令,算出CRC指令。5.6.1区间复位指令ZRST区间复位指令(ZRST,ZoneReset)用于将目标操作数(d1)、(d2)的软元件复位,其中(d1)和(d2)指定的应为同类软元件。指令符号指令名称功能梯形图ZRST区间复位把指定范围(d1)到(d2间)同一类型元件复位
【例5-28】如图5-36所示为ZRST指令应用例子,将辅助继电器M500~M599以及计数器C235~C255复位。图5-36ZRST指令应用5.6.2编码和解码指令编码指令(ENCO,Encode),对(s)开始的2的n次方位的数据进行编码,并存储到(d)中。解码指令(DECO,Decode),对(s)中指定的软元件的低位n位进行解码,将结果存储到(d)中指定的软元件开始的2的n次方位中。指令符号指令名称功能梯形图ENCO编码对(s)开始的2n位的数据进行编码,并存储到(d)中
DECO解码对(s)中指定的软元件的低n位进行解码,将结果存储到(d)中指定的软元件开始的2n位中
【例5-29】如图5-37所示为ENCO、DECO指令应用的例子。如图5-37(a),将从M10的23位的数据变为1的位(5)所对应的BIN值(101)存储到D10中。注意:多个位为1时以高位的位置进行处理。如图5-37(b),若源操作数M2M1M0=101,即5,则M20以下第5个元件M25被置1;若M2M1M0=000,则M20(第0个元件)被置1。
(a)ENCO指令应用
(b)DECO指令应用图5-37ENCO、DECO指令应用5.6.3数据位检查指令数据位检查指令(SUM,Sum)用于将源操作数(s)指定软元件的二进制数中为1的位数总和存储到目标操作数(d)指定的软元件中,即计算置1位数总和。指令符号指令名称功能梯形图SUM数据位检查指令统计源操作数置ON位的个数,并存放到目标元件
【例5-30】如图5-38所示为SUM指令应用例子,当X0变为ON时,若D0中没有1,则零标志位SM8020置1,若使用32位操作数,则将D1和D0中1的总数存入D2,D3中。图5-38SUM指令应用5.6.4数据的位判定指令数据的位判定指令(BON,BinaryOn)用于检查源操作数(s)中指定的软元件的二进制数n位的状态为ON还是OFF,并将结果输出到目标操作数(d)指定的软元件中。指令符号指令名称功能梯形图BON数据的位判定置1判别【例5-31】如图5-39所示为BON指令应用的例子。若X0变为ON,若源操作数中数据寄存器D10中的第15位为1,则将相应目标位软元件M0变为ON;若源操作数中数据寄存器D10中的第15位为0,则将相应目标位软元件M0变为OFF,即使X0变为OFF,M0亦保持不变。图5-39BON指令应用5.6.5平均值指令平均值指令(MEAN,Mean)用于对源操作数(s)中指定的软元件开始的n点的平均值进行计算,将计算结果存储到目标操作数(d)中。指令符号指令名称功能梯形图MEAN求均值计算指定范围源操作数的平均值【例5-32】如图5-40所示为MEAN指令应用例子,当X1变为ON时,求取D0为首址的三个数据(D0、D1、D2)算数平均值,并存放至目标操作数指定的数据寄存器D10中。图5-40MEAN指令应用5.6.6报警置位指令报警置位指令(ANS,SetsAnnunciator)用于指令时间在判断时间[n×100ms,定时器(s)]以上持续ON时,设置目标操作数(d)。指令时间在判断时间(n×100ms)以下变为OFF的情况下,用定时器(s)的当前值复位,不设置目标操作数(d)。指令符号指令名称功能梯形图ANS报警器置位启动时,时间到了则把目标软元件置为ON
【例5-33】如图5-41所示所示为ANS指令应用例子,若X0和X1同时为ON并超过定时器T0的定时时间1s,F0置1(用于报警);F0置1后若X0或X1变为OFF,则定时器复位,而F0保持为1。
图5-41ANS指令应用5.6.7报警复位指令报警报警复位指令(ANR,ResetsAnnunciator),当驱动条件成立,F0~F127中为ON的小编号复位。若一个以上报警器被置1,则软元件编号最低的那个报警器先被复位。若使用连续报警复位指令(ANR,ResetsAnnunciator),则按扫描周期依次将报警器复位。指令符号指令名称功能梯形图ANR报警器复位把激活的报警器复位【例5-34】如图5-42所示为ANR指令应用的例子,当X0变为ON时,F0~F127之间被置1的报警器复位。图5-42ANR指令应用【例5-35】如图5-43所示为SQRT指令应用例子,当X0为ON时,SQRT指令执行,存放在D10中的数开平方,结果存放在D12中。图5-43SQRT指令应用指令符号指令名称功能梯形图SQRT平方根求源操作数算数平方根5.6.8平方根指令平方根指令(SQRT,SquareRoot)用于计算源操作数(s)中指定的二进制数的平方根,将计算结果存储到目标操作数(d)中。5.6.9浮点操作指令浮点操作指令主要包括16位数据单精度实数转换指令和32位数据双精度实数转换指令。16位数据单精度实数转换指令分为带符号16位单精度实数转换(INT2FLT)和无符号16位单精度实数转换(UINT2FLT)指令。指令符号指令名称功能梯形图INT2FLT带符号16位单精度实数转换将带符号16位数据转换为单精度实数UINT2FLT无符号16位单精度实数转换将无符号16位数据转换为单精度实数【例5-36】如图5-44所示为带符号16位单精度实数转换INT2FLT应用例子,将源操作数中的-1234转换为单精度实数后,存储到的D100中。图5-44INT2FLT指令应用5.7高速处理计数器指令高速处理计数器指令主要包括32位数据比较设置、复位指令,32位数据带宽比较指令,16位/32位数据高速I/O功能的开始/停止指令、高速当前值传送指令。5.7.132位数据比较设置指令32位数据比较设置指令(DHSCS,SetbyHighSpeedCounter)有3个操作数,即2个源操作数(s1)、(s2)和1个目标操作数(d),其中,源操作数可为K、H、KnX、KnY、KnM、KnS、T、C、D、Z等软元件,目标操作数可为X、Y、M、S等软元件。指令符号指令名称功能梯形图DHSCS32位数据比较设置每次计数时,比较高速计数器(s2)中的计数值与指定的有效值(s1),相等时立即置位软元件(d)【例5-37】如图5-45所示为为32位数据比较设置指令使用说明,当X0由OFF变为ON,S2中指定通道的高速计数器的通道K1计数器的当前值变化到100时,Y0置位闭合(复位断开),并立即实现输出。图5-45DHSCS指令应用5.7.232位数据比较复位指令32位比较复位指令(DHSCR,ResetbyHighSpeedCounter),通过每次计数时比较高速计数器中计数的值与指定值,然后立即对位软元件进行复位的指令。不支持高速脉冲输入输出模块。指令符号指令名称功能梯形图DHSCR32位比较复位每次计数时,比较高速计数器(s2)中的计数值与指定的有效值(s1),相等时立即复位位软元件(d)
【例5-38】如图5-46所示为32位数据比较复位指令使用说明,当X0由OFF变为ON,S2中指定通道的高速计数器K1的当前值变化到100时,Y0复位断开(置位闭合复),并立即实现输出。图5-45DHSCR指令应用5.7.332位数据带宽比较指令32位数据带宽比较指令(DHSZ,ZoneCompareforHighSpeedCounter)有4个操作数,即3个源操作数(s1)、(s2)、(s3)和1个目标操作数(d),其中,源操作数可为K、H、KnX、KnY、KnM、KnS、T、C、D、Z等软元件,目标操作数可为X、Y、M、S等软元件。指令符号指令名称功能梯形图DHSZ32位数据带宽比较高速计数器的当前值与2个值(带宽)进行比较,并输出比较结果
【例5-39】如图5-47所示为32位数据带宽比较DHSZ指令应用例子,当X0由OFF变为ON时,将(s3)中指定的高速计数器当前值与2个比较值(比较值1、比较值2)进行带宽比较,如果C255(当前值)<K100,则Y0置为ON,如果K100(比较值1)≤C255(当前值)≤K200(比较值2),则Y1置为ON,如果K200(比较值2))<C255(当前值),则Y2置位ON。图5-47DHSZ指令应用5.8其他指令5.8.1刷新指令刷新指令(REF,Refresh)有2个操作数,即1个源操作数(s)和1个控制操作数n,其中,源操作数可为X、Y软元件,n可为K、H、KnX、KnY、KnM、KnS、T、C、D、Z等软元件。指令符号指令名称功能梯形图REF刷新程序刷新目标元件状态,将(s)为起始位的n个数据刷新【例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省2025西南林业大学公开招聘硕士研究生(15人)笔试历年参考题库典型考点附带答案详解
- 2026年老年人棋牌活动策划案
- 2026年大学生职业规划短期
- 中山市2024广东中山市横栏镇人民政府所属事业单位第三期招聘事业单位人员15人笔试历年参考题库典型考点附带答案详解
- 东丽区2025天津市东丽区事业单位招聘16人笔试历年参考题库典型考点附带答案详解
- 黔西南布依族苗族自治州2025贵州黔西南州招聘事业单位人员772人笔试历年参考题库典型考点附带答案详解
- 2026陕西投资集团高校毕业生春季校园招聘笔试历年难易错考点试卷带答案解析
- 2026重庆市西南证券股份有限公司招聘31人笔试历年典型考点题库附带答案详解
- 2026年客户联动营销方案设计案例分享
- 2026秋季国家管网北京智网数科公司高校毕业生招聘16人笔试历年难易错考点试卷带答案解析
- 2026年教师创新能力测试题及答案
- 危重症患者家属沟通
- 2026年固体废物培训考试试卷及答案
- 保定理工学院《大学英语》2025-2026学年第一学期期末试卷(B卷)
- 2026全球及中国线性α-烯烃行业发展趋势与供需前景预测报告
- TSG08-2026《特种设备使用管理规则》解读
- 超市收银工作制度及流程
- 服务质量标准化体系构建-洞察与解读
- 初中英语项目式学习设计方案
- 洁净工程监理实施细则
- 消防三懂四会培训课件
评论
0/150
提交评论