您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子s7_200PLC基本指令
22:091第四章S7-200的基本指令及编程第一节位操作指令第二节运算指令第三节数据处理指令第四节表功能指令第五节转换指令学习目标•掌握LAD位指令、运算指令和数据处理指令•了解LAD表功能指令、转换指令•能够用学到的LAD指令编写简单程序22:092第一节位操作指令主要用于实现逻辑运算1.基本逻辑指令2.堆栈操作指令*3.定时器指令4.计数器指令5.比较指令22:093一、基本逻辑指令1、触点指令①检查闭指令其中???位代表位地址??????②检查开指令其中???位代表位地址当???指定地址的数据为1时,指令结果接通能流;否则,指令结果断开能流。当???指定地址的数据为0时,指令结果接通能流;否则,指令结果断开能流。22:094I0.0M0.0V0.0当I0.0=1时,能流通过第一条指令当M0.0=0时,能流通过第二条指令当V0.0=0时,能流不能通过第三条指令22:095当???指定地址的数据为1时,指令结果接通能流;否则,指令结果断开能流。③立即检查闭指令???位代表位地址???I当???指定地址的数据为0时,指令结果接通能流;否则,指令结果断开能流。④立即检查开指令???位代表位地址???I对能流取反如果指令收到能流,则终止能流;如果指令没有收到能流,则产生能流输出。⑤取反指令NOTI0.0M0.0NOT22:096⑥单脉冲指令(边沿触发指令)•上升沿触发单脉冲指令PN•下降沿触发单脉冲指令当收到能流时,产生一个扫描周期的能流输出;当收到能流被断开时,产生一个扫描周期的能流输出;I0.0I0.0PN()Q0.0()Q0.1Q0.0Q0.1I0.022:097(2)线圈指令①输出线圈指令???位代表位地址()???当指令收到能流时,则???指定的位=1;当指令没收到能流时,则???指定的位=0。当指令收到能流时,则???指定位开始的XXX个位被置1;当指令没收到能流时,则???指定的位状态不变。当指令收到能流时,则???指定位开始的XXX个位被置0;当指令没收到能流时,则???指定的位状态不变。当指令收到能流时,则???指定位对应的物理输出=1;当指令没收到能流时,则???指定位对应的物理输出=0。④立即输出线圈指令???Q区位代表位地址(I)???②置位线圈指令???位代表位起始地址(S)???xxx③复位线圈指令???位代表位起始地址(R)???xxx22:098例1:电机起停控制已知:起动按钮信号接入I0.0停止按钮信号接入I0.1电机运行命令由Q0.0输出M3~KM1FR1M1QSFUL1L2L3SB1SB2KKM1M1FR1Q0.0KM1~220VI0.0I0.1SB1SB222:09922:091022:0911例2:用单按钮实现电机起停控制已知:按钮信号接入I0.0电机运行命令由Q0.0输出KM1Q0.0I0.0~220VM3~KM1FR1M1QSFUL1L2L322:0912例3:正反转向电机起停控制已知:正转向起动按钮信号接入I0.0反转向起动按钮信号接入I0.11停止按钮信号接入I0.2电机正转运行命令由Q0.0输出、反转运行命令由Q0.0输出。KM1Q0.0I0.0I0.2~220VI0.1KM2Q0.1~220VM3~KM1FR1M1QSFUL1L2L3KM222:0913二、堆栈操作指令用于完成复杂的语句表指令设置堆栈操作22:0914三、定时器指令1、接通延时定器(TON)S7-200CPU22X有三种定时器:TON、TONR、TOF•在输入(IN)收到能流时开始计时;•当当前值达到预置值(PT)时,定时器位被置1;•当输入能流断开时停止计时,同时定时器位被置0、清除当前值。•定时器号(Txx)决定了定时器的分辨率。INTONPTTxx22:091522:09162、保持型接通延时定器(TONR)•在输入(IN)收到能流时,从当前值开始计时;•当当前值达到预置值(PT)时,定时器位被置1;•当输入能流断开时停止计时,定时器位、当前值保持不变;•必须用复位指令才能清除定时器位和当前值;•定时器号(Txx)决定了定时器的分辨率。INTONRPTTxx22:091722:091822:09193、断开延时定器(TOF)•在输入(IN)有能流时,定时器位被置1、当前值=0;•在输入(IN)的能流断开时,开始计时,定时器位=1;•当当前值达到预置值(PT)时,定时器位被置0,停止计时;•定时器号(Txx)决定了定时器的分辨率。INTOFPTTxx22:092022:0921四、计数器指令1、增计数器指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。•当Cxx的当前值大于等于预置值PV时,计数器位Cxx置位。•当复位端(R)接通或者执行复位指令后,计数器被复位。•当它达到最大值(32,767)后,计数器停止计数。CUCTURPVCxx22:09222、减计数器减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。•当CXX的当前值等于0时,计数器位CXX置位。•当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预置值PV。•当计数值到0时,计数器停止计数,计数器位CXX接通。CDCTDLDPVCxx22:0923减计数器22:09243、增/减计数器指令(CTUD)在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。•当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(-32768)。•当达到最小值(-32768)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(32767)。•当CXX的当前值大于等于预置值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。CUCTUDCDRPVCxx22:0925五、比较指令比较指令数值比较比较指令用于比较两个数值:IN1=IN2;IN1=IN2;IN1=IN2;IN1IN2;IN1IN2;IN1IN2。字节比较操作是无符号的。整数比较操作是有符号的。双字比较操作是有符号的。实数比较操作是有符号的。对于LAD:当比较结果为真时,比较指令使能点闭合或者输出接通。当使用IEC比较指令时,可以使用各种数据类型作为输入。但是,两个输入的数据类型必须一致。1.数值比较22:0926SIMATICIEC113122:09272.字符串比较比较指令比较两个字符串的ASCII码字符:IN1=IN2;IN1IN2当比较结果为真时,比较指令使触点闭合或者输出接通。SIMATICIEC113122:0928第二节运算指令1.加法指令2.减法指令3.乘法指令4.除法指令5.数学函数指令6.增减指令7.逻辑运算指令22:09291、整数加法(+I)将两个16位整数相加,产生一个16位结果。2、双整数加法(+D)将两个32位整数相加,产生一个32位结果。3、实数加法(+R)将两个32位实数相加,产生一个32位实数结果。一、加法指令ADD_IENENOIN1OUTIN2当EN输入端为1(获得能流)时执行加法运算,IN1+IN2=OUT。如果执行正确,则ENO=1(输出能流);否则,ENO=0。ADD_DIENENOIN1OUTIN2ADD_RENENOIN1OUTIN222:0930二、减法指令SUB_IENENOIN1OUTIN2SUB_DIENENOIN1OUTIN2SUB_RENENOIN1OUTIN2IN1-IN2=OUT22:0931三、乘法指令MUL_IENENOIN1OUTIN2MULENENOIN1OUTIN2(1)整数乘法指令IN1*IN2=OUT将两个16位整数乘,产生一个16位结果。(2)完全整数乘法指令IN1*IN2=OUT将两个16位整数乘,产生一个32位结果。22:0932MUL_DIENENOIN1OUTIN2MUL_RENENOIN1OUTIN2(3)双整数乘法指令IN1*IN2=OUT将两个32位整数乘,产生一个32位结果。(4)实数乘法指令IN1*IN2=OUT将两个实数乘,产生一个实数结果。22:0933三、除法指令DIV_IENENOIN1OUTIN2DIVENENOIN1OUTIN2(2)完全整数除法IN1÷IN2=OUT将两个16位整数相除,得到32位结果。其中高16位为余数,另外低16位为商。(1)整数除法IN1÷IN2=OUT将两个16位整数相除,产生一个16位结果。22:0934DIV_DIENENOIN1OUTIN2DIV_RENENOIN1OUTIN2(3)双整数除法IN1÷IN2=OUT将两个32位整数除,产生一个32位结果。(4)实数除法IN1÷IN2=OUT将两个实数除,产生一个实数结果。22:0935五、数学函数指令SQRTENENOIN1OUTLNENENOIN1OUTEXPENENOIN1OUTSINENENOIN1OUTCOSENENOIN1OUTTANENENOIN1OUT22:0936六、增减指令指令将输入IN加1或者减1,并将结果存放在OUT中。递增:IN+1=OUT递减:IN-1=OUT字节递增(INCB)和字节递减(DECB)操作是无符号的。字递增(INCW)和字递减(DECW)操作是有符号的。双字递增(INCD)和双字递减(DECD)操作是有符号的。SIMATICIEC113122:093722:0938七、逻辑运算指令对字节、字、双字(按位)进行逻辑运算1、字节逻辑运算WAND_BENENOIN1OUTIN2WOR_BENENOIN1OUTIN2WXOR_BENENOIN1OUTIN2INV_BENENOIN1OUTIN2与或异或取反2、字逻辑运算WAND_WENENOIN1OUTIN2WOR_WENENOIN1OUTIN2WXOR_WENENOIN1OUTIN2INV_WENENOIN1OUTIN2与或异或取反3、双字逻辑运算22:093922:0940编程举例例1根据波形图设计梯形图程序(主机与润滑设备)I0.0I0.1Q0.0Q0.110S18S22:0941例2:按下起动按钮,小车到达左端,同时压下行程开关LS1,小车在此装料15s后自动开始右行,到达右端,并压下行程开关LS2,下料10s后自动左行去装料,如此自动往复循环,直到按下停止按钮,小车停止运行。要求编写小车运行控制梯形图程序。解:1、确定I/O类型和数量开关量输入:4个开关量输出:2个2、分配I/O地址、定义开关量状态,起动按钮:I0.0,按下闭合,放开断开停止按钮:I0.1,按下断开,放开闭合行程开关LS1:I0.2,压下闭合,放开断开行程开关LS2:I0.3,压下闭合,放开断开左运行输出信号:Q0.0,1运行,0停止右运行输出信号:Q0.1,1运行,0停止3、编写梯形图程序LS1LS222:0942例3进出人数统计。在门廊装设两个光电开关,当有人遮蔽开关的光信号时,开关闭合,否则断开。设计统计进出人数的程序。进入走出开关A开关B22:0943第三节数据处理指令1.传送类指令2.移位指令3.字节交换指令4.填充指令22:0944一、传送类指令字节传送(MOV_B)字传送(MOV_W)双字传送(MOV_D)实数传送(MOV_R)指令在不改变原值的情况下将IN中的值传送到OUT。1.单个传送指令22:0945字节立即传送(读和写)指令允许在物理I/O和存储器之间立即传送一个字节数据。字节立即读(MOV-BIR)指令读物理输入(IN),并将结果存入内存地址(OUT),但过程映像寄存器并不刷新。字节立即写指令(MOV-BIW)从内存地址(IN)中读取数据,写入物理输出(OUT),同时刷新相应的过程映像区。22:09462.块传送指令字节块传送(BLKMOV_B)字块传送(BLKMOV_W)双字块传送(BLKMOV_D)指令传送指定数量的数据到
本文标题:西门子s7_200PLC基本指令
链接地址:https://www.777doc.com/doc-4175478 .html