资源预览内容
第1页 / 共154页
第2页 / 共154页
第3页 / 共154页
第4页 / 共154页
第5页 / 共154页
第6页 / 共154页
第7页 / 共154页
第8页 / 共154页
第9页 / 共154页
第10页 / 共154页
亲,该文档总共154页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
指令系统指令系统 S7-1200的指令从功能上大致可分为三类:基的指令从功能上大致可分为三类:基本指令、扩展指令和全局库指令。本指令、扩展指令和全局库指令。 5.1 基本指令基本指令 基本指令包括位逻辑指令、定时器、计数器、基本指令包括位逻辑指令、定时器、计数器、比较指令、数学指令、移动指令、转换指令、程序比较指令、数学指令、移动指令、转换指令、程序控制指令、逻辑运算指令以及移位和循环移位指令控制指令、逻辑运算指令以及移位和循环移位指令等。等。 基本逻辑指令基本逻辑指令 内部输入触点内部输入触点(I)(I)的闭合与断开仅与输入映像寄存器相应位的状的闭合与断开仅与输入映像寄存器相应位的状态有关,与外部输入按钮、接触器、继电器的常开态有关,与外部输入按钮、接触器、继电器的常开/ /常闭接法无关。常闭接法无关。输入映像寄存器相应位为输入映像寄存器相应位为1 1,则内部常开触点闭合,常闭触点断开。,则内部常开触点闭合,常闭触点断开。输入映像寄存器相应位为输入映像寄存器相应位为0 0,则内部常开触点断开,常闭触点闭合。,则内部常开触点断开,常闭触点闭合。置位域复位域指令置位域复位域指令置置位位域域指指令令将将指指定定的的地地址址开开始始的的连连续续若若干干个个地地址址置置位位( (变变为为1 1状状态并保持态并保持) )。复复位位域域指指令令将将指指定定的的地地址址开开始始的的连连续续若若干干个个地地址址复复位位(变变为为0状状态并保持态并保持)。置位置位/复位指令复位指令 (1) S 、R指令中的指令中的2表示从指定的表示从指定的Q0.0开始的两个触点,即开始的两个触点,即Q0.0与与Q0.1。 (2) 在检测到在检测到I0.0闭合的上升沿时,输出线圈闭合的上升沿时,输出线圈Q0.0、Q0.1被置为被置为1,并保持,并保持,而不论而不论I0.0为何种状态。为何种状态。 (3) 在检测到在检测到I0.1闭合的上升沿时,输出线圈闭合的上升沿时,输出线圈Q0.0、Q0.1被复位为被复位为0,并保持,并保持,而不论而不论I0.0为何种状态。为何种状态。 指令说明指令说明 (1) 指定触点一旦被置位,则保持接通状态,直到指定触点一旦被置位,则保持接通状态,直到对其进行复位操作;而指定触点一旦被复位,则变为对其进行复位操作;而指定触点一旦被复位,则变为接通状态,直到对其进行复位操作。接通状态,直到对其进行复位操作。 (2) 如果对定时器和计数器进行复位操作,则被指如果对定时器和计数器进行复位操作,则被指定的定的T或或C的位被复位,同时其当前值被清的位被复位,同时其当前值被清0。 复位优先、置位优先锁存器复位优先、置位优先锁存器复位优先锁存器、置位优先锁存器:输出线圈可选指令功能指令功能 RS RS 复位优先锁存器,当置位信号和复位信号都有效复位优先锁存器,当置位信号和复位信号都有效时,复位信号优先,输出线圈不接通。时,复位信号优先,输出线圈不接通。 SR SR 置位优先锁存器,当置位信号和复位信号都有效置位优先锁存器,当置位信号和复位信号都有效时,置位信号优先,输出线圈接通。时,置位信号优先,输出线圈接通。 RS RS、SRSR指令均为锁存器,一个复位优先,一个置位优指令均为锁存器,一个复位优先,一个置位优先。先。S S连接置位输入,连接置位输入,R R连接复位输入。一旦输出线圈被置位,连接复位输入。一旦输出线圈被置位,则保持置位状态直到复位输入接通。则保持置位状态直到复位输入接通。 置位、复位输入均以高电平状态有效。置位、复位输入均以高电平状态有效。 例:抢答器的设计例:抢答器的设计抢答器有三个输入,分别抢答器有三个输入,分别为为I0.0I0.0、I0.1I0.1和和I0.2I0.2,输出输出分别为分别为Q4.0Q4.0、Q4.1Q4.1和和Q4.2Q4.2,复位输入是复位输入是I0.4I0.4。要求:要求:三人中任意抢答,谁先按按钮,谁的指示灯优先亮,三人中任意抢答,谁先按按钮,谁的指示灯优先亮,且只能亮一盏灯,进行下一问题时主持人按复位按钮,且只能亮一盏灯,进行下一问题时主持人按复位按钮,抢答重新开始。抢答重新开始。 抢答器程序抢答器程序 边沿指令边沿指令 位逻辑指令位逻辑指令边缘检测触点指令边缘检测触点指令如如果果输输入入信信号号I0.6由由0变变为为1状状态态(即即输输入入信信号号I0.6的的上上升升沿沿),则则该触点接通一个扫描周期。该触点接通一个扫描周期。触触点点下下面面的的M4.3为为边边缘缘存存储储位位,用用来来存存储储上上一一个个扫扫描描循循环环是是I0.6的的状状态态,通通过过比比较较输输入入信信号号的的当当前前状状态态和和上上一一次次循循环环的的状状态态来来检检测测信信号号的的边边沿沿。边边沿沿存存储储位位的的地地址址只只能能在在程程序序中中使使用用一一次次,它它的的状状态态不不能能在在其其他他地地方方被被改改写写。只只能能使使用用M、全全局局DB和和静静态态局局部部变变量量来来作作边边沿沿存存储储位位,不不能能使使用用临临时时局局部部数数据据或或I/O变变量量来来作边沿存储位。作边沿存储位。位逻辑指令位逻辑指令P_TRIG与与N_TRIG指令指令在在流流进进P_TRIG指指令令的的CLK输输入入端端的的能能流流的的上上升升沿沿,Q端端输输出出一一个个扫描周期的能流,使扫描周期的能流,使M8.1置位。置位。P_TRIG指令与指令与N_TRIG指令不能放在电路的开始处和结束处。指令不能放在电路的开始处和结束处。位逻辑指令位逻辑指令3种边沿检测指令的功能种边沿检测指令的功能以上升沿检测为例:以上升沿检测为例:在在P触触点点指指令令中中,触触点点上上面面的的地地址址的的上上升升沿沿,该该触触点点接接通通一一个个扫扫描描周周期期,因因此此P触触点点用用于于检检测测触触点点上上面面地地址址的的上上升升沿沿,并并且且直直接接输出上升沿脉冲。输出上升沿脉冲。在在P线线圈圈的的能能流流的的上上升升沿沿,线线圈圈上上面面的的地地址址在在一一个个扫扫描描周周期期为为1状状态态,因因此此P线线圈圈用用于于检检测测能能流流的的上上升升沿沿,并并用用线线圈圈上上面面的的地地址址来来输出上升沿脉冲。输出上升沿脉冲。P_TRIG指令用于检测能流的上升沿,并且直接输出上升沿脉冲。指令用于检测能流的上升沿,并且直接输出上升沿脉冲。如如果果P_TRIG指指令令左左边边只只有有I1.0触触点点,可可以以用用I1.0的的P触触点点来来代代替替P_TRIG指令。指令。例例按动一次瞬时按钮按动一次瞬时按钮I0.0,输出,输出Q4.0亮,再按动一亮,再按动一次按钮,输出次按钮,输出Q4.0灭;重复以上。灭;重复以上。 例例 若故障信号若故障信号I0.0为为1,使,使Q4.0控制的指示灯以控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮的频率闪烁。操作人员按复位按钮I0.1后,如果后,如果故障已经消失,则指示灯熄灭,如果没有消失,指故障已经消失,则指示灯熄灭,如果没有消失,指示灯转为常亮,直至故障消失。示灯转为常亮,直至故障消失。定时器定时器使使用用定定时时器器指指令令可可创创建建编编程程的的时时间间延延迟迟,S7-1200PLC有有4种种定定时器:时器:TP:脉冲定时器可生成具有预设宽度时间的脉冲。脉冲定时器可生成具有预设宽度时间的脉冲。TON:接通延迟定时器输出:接通延迟定时器输出Q在预设的延时过后设置为在预设的延时过后设置为ON。TOF:关断延迟定时器输出:关断延迟定时器输出Q在预设的延时过后重置为在预设的延时过后重置为OFF。TONR:保保持持型型接接通通延延迟迟定定时时器器输输出出在在预预设设的的延延时时过过后后设设置置为为ON。在在使使用用R输输入入重重置置经经过过的的时时间间之之前前,会会跨跨越越多多个个定定时时时时段段一直累加经过的时间。一直累加经过的时间。RT:通通过过清清除除存存储储在在指指定定定定时时器器背背景景数数据据块块中中的的时时间间数数据据来来重置定时器。重置定时器。每每个个定定时时器器都都使使用用一一个个存存储储在在数数据据块块中中的的结结构构来来保保存存定定时时器器数数据。据。在编辑器中放置定时器指令时可分配该数据块。在编辑器中放置定时器指令时可分配该数据块。接通延迟定时器及其时序图接通延迟定时器及其时序图 定时器的背景数据块结构定时器的背景数据块结构 练习练习按按下下瞬瞬时时启启动动按按钮钮I0.0,5秒秒后后电电动动机机启启动动,按下按下瞬时停止按钮瞬时停止按钮I0.1,10秒后电动机停止。秒后电动机停止。例例用接通延时定时器设计一个周期振荡电路。用接通延时定时器设计一个周期振荡电路。用接通延时定时器设计周期和占空比可调的振荡电路。用接通延时定时器设计周期和占空比可调的振荡电路。振荡电路的高、低电平时间分别由两个定时器的振荡电路的高、低电平时间分别由两个定时器的PT值确定。值确定。保持型接通延迟定时器及其时序图保持型接通延迟定时器及其时序图 关断延迟定时器及其时序图关断延迟定时器及其时序图 脉冲定时器及其时序图脉冲定时器及其时序图 例:用脉冲定时器实现一个周期振荡电路例:用脉冲定时器实现一个周期振荡电路 复位定时器指令复位定时器指令 两两条条运运输输带带顺顺序序相相连连,为为避避免免运运送送的的物物料料在在1号号运运输输带带上上堆堆积积,按按下下起起动动按按钮钮I0.3,1号号带带开开始始运运行行,8s后后2号号带带自自动动起起动动。停停机机的的顺顺序序与与起起动动的的顺顺序序相相反反,按按了了停停止止按按钮钮I0.2后后,先先停停2号号带带,8s后后停停1号带。号带。Q1.1和和Q0.6控制两台电动机控制两台电动机M1和和M2。参参数数IN从从0变变为为1将将启启动动TP、TON和和TONR,从从1变变0将将启启动动TOF。ET为为定定时时开开始始后后经经过过的的时时间间,或或称称为为已已耗耗时时间间值值(可可以以不不为为ET指指定定地地址址),它它们们的的数数值值类类型型为为32位位的的Time,单单位位为为ms,最最大大定定时时时间为时间为T#24D_20H_31M_23S_647MS。IEC定定时时器器和和IEC计计数数器器属属于于功功能能块块,调调用用时时需需要要指指定定配配套套的的背背景数据块,定时器和计数器指令的数据保存在背景数据块中。景数据块,定时器和计数器指令的数据保存在背景数据块中。在在梯梯形形图图中中输输入入定定时时器器指指令令时时,打打开开右右边边的的指指令令窗窗口口将将“定定时时器器操操作作”文文件件夹夹中中的的定定时时器器指指令令拖拖放放到到梯梯形形图图中中适适当当的的位位置置,在在出出现现的的“调调用用选选项项”对对话话框框中中修修改改将将要要生生成成的的背背景景数数据据块块的的名名称称,或或采用默认的名称。点击采用默认的名称。点击“确定确定”按钮,自动生成数据块。按钮,自动生成数据块。计数器计数器S7-1200有有3种种计计数数器器:加加计计数数器器(CTU)、减减计计数数器器(CTD)和和加加减减计计数数器器(CTUD)。它它们们属属于于软软件件计计数数器器,其其最最大大计计数数速速率率受受到到它它所所在在的的OB的执行速率的限制。的执行速率的限制。如果需要速率更高的计数器,可以使用如果需要速率更高的计数器,可以使用CPU内置的高速计数器。内置的高速计数器。调用计数器指令时,需要生成保存计数器数据的背景数据块。调用计数器指令时,需要生成保存计数器数据的背景数据块。CU和和CD分分别别是是加加计计数数输输入入和和减减计计数数输输入入,在在CU或或CD由由0变变为为1是,实际计数值是,实际计数值CV加加1或减或减1。复复位位输输入入R为为1时时,计计数数器器被被复复位位,CV被被清清0,计计数数器器的的输输入入Q变变为为0。计数器指令计数器指令计数器的输入输出计数器的输入输出参数参数加计数器及其时序图加计数器及其时序图 CTU:参参数数CU的的值值从从0变变为为1时时,CTU使使计计数数值值加加1。如如果果参参数数CV(当当前前计计数数值值)的的值值大大于于或或等等于于参参数数PV(预预设设计计数数值值)的的值值,则则计计数数器器输输出出参参数数Q=1。如如果果复复位位参参数数R的的值值从从0变变为为1,则则当前计数值复位为当前计数值复位为0。计数器的背景数据块结构计数器的背景数据块结构 减计数器及其时序图减计数器及其时序图 CTD:参参数数CD的的值值从从0变变为为1时时,CTD使使计计数数值值减减1。如如果果参参数数CV(当当前前计计数数值值)的的值值等等于于或或小小于于0,则则计计数数器器输输出出参参数数Q=1。如如果果参参数数LOAD的的值值从从0变变为为1,则则参参数数PV(预预设设值值)的的值值将将作作为为新的新的CV(当前计数值当前计数值)装载到计数器。装载到计数器。计数器指令计数器指令加减计数器加减计数器CTUD:加加计计数数(CU,CountUp)或或减减计计数数(CD,CountDown)输入的值从输入的值从0跳变为跳变为1时,时,CTUD会使计数值加会使计数值加1或减或减1。如如果果参参数数CV(当当前前计计数数值值)的的值值大大于于或或等等于于参参数数PV(预预设设值值)的的值值,则则计计数数器器输输出出参参数数QU=1。如如果果参参数数CV的的值值小小于于或或等等于零,则计数器输出参数于零,则计数器输出参数QD=1。如果参数如果参数LOAD的值从的值从0变为变为1,则参数,则参数PV(预设值)的值将(预设值)的值将作为新的作为新的CV(当前计数值)装载到计数器。(当前计数值)装载到计数器。如果复位参数如果复位参数R的值从的值从0变为变为1,则当前计数值复位为,则当前计数值复位为0。加减计数器及其时序图加减计数器及其时序图 PV = 4传送带控制传送带控制一个能够电气启动的传送带。在传送带的起点有两个按钮一个能够电气启动的传送带。在传送带的起点有两个按钮开关:用于开关:用于START的的S1和用于和用于STOP的的S2。在传送带的尾部也。在传送带的尾部也有两个按钮开关:有两个按钮开关:S3用于用于START,S4用于用于STOP。可以从任一。可以从任一端启动或停止传送带。另外,当传送带上的物件到达末端时,端启动或停止传送带。另外,当传送带上的物件到达末端时,传感器传感器S5使传送带停机。使传送带停机。传送带示意图传送带示意图用于传送带系统符号编程的元素用于传送带系统符号编程的元素控制传送带程序控制传送带程序风机监控程序风机监控程序某设备有三台风机,当设备处于运行状态时,如果风机至某设备有三台风机,当设备处于运行状态时,如果风机至少有两台以上转动,则指示灯常亮;如果仅有一台风机转动,少有两台以上转动,则指示灯常亮;如果仅有一台风机转动,则指示灯以则指示灯以0.5Hz的频率闪烁;如果没有任何风机转动,则指的频率闪烁;如果没有任何风机转动,则指示灯不亮。示灯不亮。输入位输入位I0.0,I0.1,I0.2分别分别为风机为风机1,2,3输入端。输入端。通过传送带电机KM1带动传送带传送物品,通过产品检测器PH检测产品通过的数量,传送带每传送24个产品机械手KM2动作1次,进行包装,机械手动作后,延时2秒,机械手的电磁铁切断。通过传送带起动按钮、传送带停机按钮控制传送带的运动。产品通过检测器产品通过检测器PH机械手机械手KM1KM2传送带电机传送带电机计数器应用举例:产品数量检测计数器应用举例:产品数量检测产品通过检测器产品通过检测器PH机械手机械手KM1KM2传送带电机传送带电机PLC的的I/O分配:分配:I0.0传送带停机按钮传送带停机按钮I0.1传送带起动按钮传送带起动按钮I0.2产品通过检测器产品通过检测器PHQ0.0传送带电机传送带电机KM1Q0.1机械手机械手KM2定时器定时器,定时定时2秒秒计数器,设定值计数器,设定值24(每(每24个产品个产品机械手动作机械手动作1次)次)I0.0传送带停传送带停机按钮机按钮I0.1传送带起动传送带起动按钮按钮I0.2产品通过产品通过检测器检测器PHQ0.0传送带电机传送带电机KM1Q0.1机械手机械手KM2定时器定时器,定时定时2秒秒计数器,设定值计数器,设定值24机械手动作后,延时机械手动作后,延时2 2秒,秒,机械手的电磁铁切断机械手的电磁铁切断测到一个产品,测到一个产品,I0.2产生一个正产生一个正脉冲,使计一个数。脉冲,使计一个数。C10每计每计24个数,机械手动作一次个数,机械手动作一次 3台电机顺序启动、反序停止控制台电机顺序启动、反序停止控制 控制要求:按下启动按钮后,控制要求:按下启动按钮后,3台电机按台电机按M1、M2、M3的顺序隔的顺序隔2s启动;按下停止按钮后,启动;按下停止按钮后,3台台电机按电机按M3、M2、M1的顺序隔的顺序隔2s停止。停止。3台电机顺序启台电机顺序启动,反序停止控动,反序停止控制程序制程序展厅人数控制系统展厅人数控制系统 控制要求:现有一展厅,最多可容纳控制要求:现有一展厅,最多可容纳50人同时人同时参观。展厅进口与出口各装一传感器,每有一人进参观。展厅进口与出口各装一传感器,每有一人进出,传感器给出一个脉冲信号。试编程实现,当展出,传感器给出一个脉冲信号。试编程实现,当展厅内不足厅内不足50人时,绿灯亮,表示可以进入;当展厅人时,绿灯亮,表示可以进入;当展厅满满50人时,红灯亮,表示不准进入。人时,红灯亮,表示不准进入。 展厅人数控制系统展厅人数控制系统I/O分配表分配表展厅人数控制程序展厅人数控制程序运料车自动装、卸料控制运料车自动装、卸料控制 控制要求:控制要求:某运料车如图所示,可在某运料车如图所示,可在A A、B B两地分别启动。运两地分别启动。运料车启动后,自动返回料车启动后,自动返回A A地停止,同时控制料斗门的电磁阀地停止,同时控制料斗门的电磁阀Y1Y1打开,打开,开始装料。开始装料。1 1分钟后,电磁阀分钟后,电磁阀Y1Y1断开,关闭料斗门,运料车自动向断开,关闭料斗门,运料车自动向B B地运行。到达地运行。到达B B地后停止,小车底门由电磁阀地后停止,小车底门由电磁阀Y2Y2控制打开,开始卸料。控制打开,开始卸料。1 1分钟后,运料车底门关闭,开始返回分钟后,运料车底门关闭,开始返回A A地。之后重复运行。地。之后重复运行。 运料车在运行过程中,可用手动开关使其停车。再次启动后,运料车在运行过程中,可用手动开关使其停车。再次启动后,可重复可重复中内容中内容 图图7.43 运料车自动装、卸料控制示意图运料车自动装、卸料控制示意图 运料车自动装、卸料控制运料车自动装、卸料控制I/O分配表分配表比较指令比较指令 可以使用可以使用“等于等于”操作确定第一个比较值是否等于第二个比较值。操作确定第一个比较值是否等于第二个比较值。 要比较的两要比较的两个值必须为相同的数据类型。该个值必须为相同的数据类型。该 LAD 触点比较结果为触点比较结果为 TRUE 时,则该触点会时,则该触点会被激活。被激活。 在程序编辑器中单击该指令后,可以从下拉菜单中选择比较类型和数在程序编辑器中单击该指令后,可以从下拉菜单中选择比较类型和数据类型。据类型。可以使用“大于”操作确定第一个比较值是否大于第二个比较值。要比较的两个值必须为相同的数据类型。如果比较为真,则RLO为“1”。在比较字符串时,通过字符ASCII码比较字符(例如“a”大于“A”)。从左到右执行比较。第一个不同的字符决定比较结果。如果较长字符串的左侧部分和较短字符串相同,则认为较长字符串更大。使用 IN_RANGE 和 OUT_RANGE 指令可测试输入值是在指定的值范围之内还是之外。 如果比较结果为 TRUE,则功能框输出为 TRUE。输入参数 MIN、VAL 和 MAX 的数据类型必须相同。在程序编辑器中单击该指令后,可以从下拉菜单中选择数据类型。例例:用用比比较较和和计计数数指指令令编编写写开开关关灯灯程程序序,要要求求灯灯控控按按钮钮I0.0按按下下一一次次,灯灯Q4.0亮亮,按按下下两两次次,灯灯Q4.0,Q4.1全全亮亮,按按下下三三次次灯灯全全灭灭,如如此此循循环。环。分析:在程序中所用计数器为加法计数器,当分析:在程序中所用计数器为加法计数器,当加到加到3 3时,必须复位计数器,这是关键。灯控制时,必须复位计数器,这是关键。灯控制程序如图所示。程序如图所示。梯形图程序如下:梯形图程序如下:例:在例:在HMI设备上可以设定电动机的转速,设定值设备上可以设定电动机的转速,设定值MW20的范围为的范围为100-1440转转/分钟,若输入的设定值分钟,若输入的设定值在此范围内,则延时在此范围内,则延时5秒钟启动电动机秒钟启动电动机Q0.0,否则,否则Q0.1长亮提示。长亮提示。 使用使用OK和和NOT_OK指令可测试输入的数据是否为符合指令可测试输入的数据是否为符合IEEE规范规范754的有的有效实数。图中,当效实数。图中,当MD0和和MD4中为有效的浮点数时,会激活中为有效的浮点数时,会激活“实数乘实数乘”(MUL) 运算并置位输出,即将运算并置位输出,即将MD0的值将与的值将与MD4的值相乘,结果存储在的值相乘,结果存储在MD10中同时中同时Q4.0输出为输出为1。 如果输入IN的值为123.4567则输出OUT返回值0.4567移动指令移动指令 可以使用“移动块”操作将一个存储区(源区域)的内容复制到另一个存储区(目标区域)。要复制到目标区域的元素个数由参数COUNT指定。要复制的元素的宽度由输入IN的元素宽度定义。复制操作沿地址升序方向进行。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。复制的数据量超出输出OUT存储区所提供的数据量。可以通过“填充块”操作使用输入IN的值填充存储区(目标区域)。从输出OUT指定的地址开始填充目标区域。重复的复制操作次数由参数COUNT指定。执行该操作时,将选择输入IN的值并将其按照参数COUNT指定的重复次数复制到目标区域。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。复制的数据量超出输出OUT存储区所提供的数据量。数据复制操作规则要复制Bool数据类型,请使用SET_BF、RESET_BF、R、S或输出线圈(LAD)要复制单个基本数据类型、结构或要复制字符串中的单个字符,请使用MOVE要复制基本数据类型数组,请使用MOVE_BLK或UMOVE_BLK要复制字符串,请使用S_CONVMOVE_BLK和UMOVE_BLK指令不能用于将数组或结构复制到I、Q或M存储区。数据填充操作规则要使用BOOL数据类型填充,请使用SET_BF、RESET_BF、R、S或输出线圈(LAD)要使用单个基本数据类型填充或要在字符串中填充单个字符,请使用MOVE要使用基本数据类型填充数组,请使用FILL_BLK或UFILL_BLKFILL_BLK和UFILL_BLK指令不能用于将数组填充到I、Q或M存储区。转换指令转换指令 “转换”操作读取参数IN的数据,然后根据指定的数据类型对其进行转换。仅当使能输入EN的信号状态为“1”时,才能启动“转换”操作。如果执行过程中未发生错误,则输出ENO的信号状态也为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。处理过程中发生溢出之类的错误。可以使用“取整数字值”运算将输入IN的值取整为最接近的整数。该运算将输入IN的值解释为浮点数并将其转换为最接近的双精度整数。如果输入值恰好是相邻偶数和奇数的平均数,则选择偶数。运算结果放在输出OUT中,可供查询。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。可以使用“浮点数向上取整”运算将输入IN的值向上取整为相邻整数。该运算将输入IN的值解释为浮点数并将其向上转换为相邻的整数。运算结果放在输出OUT中,可供查询。输出值可以大于或等于输入值。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。可以使用“浮点数向下取整”运算将输入IN的值向下取整为相邻整数。该运算将输入IN的值解释为浮点数并将其向下转换为相邻的整数。运算结果放在输出OUT中,可供查询。输出值可以小于或等于输入值。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。可以使用“截取整数”运算得出整数而不对输入IN的值进行舍入。输入IN的值被视为浮点数。该运算仅选择浮点数的整数部分,并将其发送到输出OUT中,不带小数位。只有使能输入EN的信号状态为“1”时,才执行该操作。如果运算执行过程中未发生错误,则输出ENO的信号状态为“1”。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:输入EN的信号状态为“0”。可以使用“标定”运算通过将输入VALUE的值映射到指定的取值范围对该值进行标定。执行“标定”运算时,会将输入VALUE的浮点数值标定到由参数MIN和MAX定义的取值范围。标定结果为整数,并存储在输出OUT中。只有使能输入端EN的信号状态为“1”时,才执行“标定”运算。在这种情况下,使能输出ENO的信号状态也为“1”。可以使用“标准化”运算通过将输入VALUE的变量值映射到线性标尺对其进行标准化。可以使用参数MIN和MAX定义(应用于该标尺的)取值范围的限值。根据标准化值在该取值范围内的位置,计算结果并以浮点数形式存储在输出OUT中。如果要标准化的值等于输入MIN的值,输出OUT将返回值“0.0”。如果要标准化的值等于输入MAX的值,输出OUT将返回值“1.0”。程序控制指令程序控制指令 可以使用“为 1 时块中跳转(有条件)” 目标程序段必须标有跳转标签。 需要指定该跳转标签的名称以便执行该操作。 指定的跳转标签位于该操作的上方。指定的跳转标签必须在执行该操作的块中。 指定的名称在块中只能出现一次。 如果该操作的输入端的逻辑运算结果 为“1”,则跳转到跳转标签所标识的程序段。 跳转方向可以朝向更大或更小的程序段编号。 如果该操作的输入不为真 (RLO = 0),则程序继续在下一个程序段中执行。可以使用“跳转标签”指定跳转的目标程序段,程序应在目标程序段中继续执行。跳转标签的名称可以包含字母、数字或下划线。跳转标签以及指定了该跳转标签的操作必须位于同一个块中。跳转标签的名称在块中只能分配一次。 可以使用“为0时块中跳转(有条件)”操作,目标程序段必须标有跳转标签。需要指定该跳转标签的名称以便执行该操作。指定的跳转标签位于该操作的上方。指定的跳转标签必须在执行该操作的块中。指定的名称在块中只能出现一次。如果该操作的输入端的逻辑运算结果(RLO)为“0”,则跳转到跳转标签所标识的程序段。跳转方向可以朝向更大或更小的程序段编号。如果该操作的输入端的逻辑运算结果为“1”,则程序在下一个程序段中继续执行。可以使用“返回”操作停止块的执行。只有左侧接头的信号状态为“1”时,才会执行该操作。如果满足该条件,将在当前被调用块中终止程序执行并在调用块(例如,在调用OB中)中的调用功能后继续执行。调用功能的状态由“返回”操作的参数决定。该参数可以为以下值:TRUE:调用功能的输出ENO置位为“1”。FALSE:调用功能的输出ENO复位为“0”。:调用功能的输出ENO由指定操作数的信号状态决定。如果组织块被“返回”操作终止,则CPU继续执行系统程序。如果“返回”操作输入端的信号状态为“0”,则不执行该操作。在这种情况下,程序继续在被调用块的下一个程序段中执行。图图无条件跳转无条件跳转图图条件跳转条件跳转字逻辑运算指令字逻辑运算指令 可以使用“AND逻辑运算”将输入IN1的值与输入IN2的值通过AND逻辑逐位运算,并通过输出OUT查询结果。执行该运算时,输入IN1的值的位0与输入IN2的值的位0通过AND逻辑进行运算。结果存储在输出OUT的位0中。对指定值的所有其它位都执行相同的逻辑运算。仅当该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。如果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。只有使能输入EN的信号状态为“1”时,才执行该操作。在这种情况下,输出ENO的信号状态也为“1”。如果使能输入EN的信号状态为“0”,则使能输出ENO的信号状态复位为“0”。可以使用“解码”运算在输出值中置位一个位,该位通过输入值指定。“解码”运算读取输入IN的值,然后在输出值中置位一个位,该位位置与读取的值一致。输出值中的其它位以零填充。只有使能输入EN的信号状态为“1”时,才能启动“解码”运算。如果执行过程中未发生错误,则输出ENO的信号状态也为“1”。如果使能输入EN的信号状态为“0”,则使能输出ENO的信号状态复位为“0”。可以使用“编码”运算读取输入值中最低有效置位位的位号并将其发送到输出OUT。“编码”运算选择输入IN值的最低有效位并将该位号写入输出OUT的变量中。只有使能输入EN的信号状态为“1”时,才能启动“编码”运算。如果执行过程中未发生错误,则输出ENO的信号状态也为“1”。如果使能输入EN的信号状态为“0”,则使能输出ENO的信号状态复位为“0”。“选择”操作依靠一个开关(参数G)选择输入IN0或IN1中的一个并将其数据复制到输出OUT。如果参数G的信号状态为“0”,则复制输入IN0的值。如果参数G的信号状态为“1”,则将输入IN1的值复制到输出OUT。只有使能输入EN的信号状态为“1”时,才执行该操作。如果执行过程中未发生错误,则输出ENO的信号状态也为“1”。如果使能输入EN的信号状态为“0”或执行该操作期间出错,将复位使能输出ENO。可以使用“多路复用”操作将所选输入的数据复制到输出OUT。功能框MUX的可选输入数可以扩展。输入会在该功能框中自动编号。从IN0起开始编号,每个新输入的编号连续递增。可以使用参数K确定应该将哪个输入的数据复制到输出OUT。如果参数K的值大于可用输入数,则将参数ELSE的数据复制到输出OUT,并将使能输出ENO设置为信号状态“0”。只有所有输入的变量和输出OUT的变量具有相同数据类型时,才能执行“多路复用”操作。参数K例外,因为只能为其指定整数。只有使能输入EN的信号状态为“1”时,才执行该操作。如果执行过程中未发生错误,则输出ENO的信号状态也为“1”。移位和循环指令移位和循环指令 可以使用“右移”操作将输入IN的变量数据逐位右移,并通过输出OUT查询结果。使用参数N设置指定将移位的位数。参数N的值为“0”时,输入IN的值将被复制到输出OUT的变量中。当参数N的值大于位数时,输入IN的变量值将按其可用位数向右移位。无符号值移位时,用零填充变量左侧区域中空出的位。如果指定值有符号,则用符号位的信号状态填充空出的位可以使用“左移”操作将输入IN中的变量数据逐位左移,并通过输出OUT查询结果。使用参数N设置指定将移位的位数。参数N的值为“0”时,输入IN的值将被复制到输出OUT的变量中。当参数N的值大于位数时,输入IN的变量值将按其可用位数向左移位。用零填充变量右侧部分因移位空出的位。可以使用“循环右移”操作将输入IN的变量数据逐位循环右移,并通过输出OUT查询结果。参数N指定将循环移位的位数。用挤出的位填充因循环移位空出的位。参数N的值为“0”时,输入IN的值将被复制到输出OUT的变量中。当参数N的值大于位数时,输入IN的变量值将按其可用位数进行循环移位。可以使用“循环左移”操作将输入IN的变量数据逐位循环左移,并通过输出OUT查询结果。参数N指定将循环移位的位数。用挤出的位填充因循环移位空出的位。参数N的值为“0”时,输入IN的值将被复制到输出OUT的变量中。当参数N的值大于位数时,输入IN的变量值将按其可用位数进行循环移位。例例 通过循环指令实现彩灯控制。通过循环指令实现彩灯控制。编写程序如图编写程序如图5-30所示,其中所示,其中I0.0为控制开关,为控制开关,M1.5为周期为为周期为1s的时钟存储器位,实现的功能为当的时钟存储器位,实现的功能为当按下按下I0.0,QD4中为中为1的输出位每秒钟向左移动的输出位每秒钟向左移动1位。位。第第1段程序的功能是赋初值,即将段程序的功能是赋初值,即将QD4中的中的Q7.0置置位,第位,第2段程序的功能是每秒钟段程序的功能是每秒钟QD4循环左移一位。循环左移一位。 5.2 扩展指令扩展指令 S7-1200的扩展指令包括日期和时间指令,字的扩展指令包括日期和时间指令,字符串和字符指令,程序控制指令,通信指令,中断符串和字符指令,程序控制指令,通信指令,中断指令,指令,PID控制指令,运动控制指令,脉冲指令等。控制指令,运动控制指令,脉冲指令等。 日期和时间指令日期和时间指令 使用T_CONV可将输入IN的值转换成输出OUT指定的数据格式。可实现下列转换:时间(TIME)到数字值(DINT)的转换数值(DINT)到时间(TIME)的转换通过选择指令输入和输出的数据类型来决定转换的类型。可通过输出OUT查询转换结果。使用T_ADD可将输入IN1的时间与输入IN2的时间相加。通过输出OUT查询结果。可以对下列格式进行相加操作:时间段(TIME)与时间段(TIME)相加。结果可以输出到TIME格式的变量中。时间段(TIME)与时间点(DTL)相加。结果可以输出到DTL格式的变量中。通过选择指令输入和输出的数据类型来决定输入IN1和输出OUT的格式。在输入IN2中,只能指定TIME格式的时间。使用T_SUB可将输入IN1的时间与输入IN2的时间相减。通过输出OUT查询差值。可以对下列格式进行相减操作:时间段(TIME)与时间段(TIME)相减。结果可以输出到TIME格式的变量中。从某时间点(DTL)减去一个时间段(TIME)。结果可以输出到DTL格式的变量中。通过选择指令输入和输出的数据类型来决定输入IN1和输出OUT的格式。在输入IN2中,只能指定TIME格式的时间。使用T_DIFF可将输入IN1的时间与输入IN2的时间相减。以TIME格式通过输出OUT输出结果。在输入IN1和IN2中只能指定DTL格式的值。如果在输入IN2中指定的时间大于在输入IN1中指定的时间,则结果将以负值的形式通过输出OUT输出。如果该指令的结果超出允许范围,则此结果将限制为相应的值,并且使能输出ENO将设置为“0”。可使用WR_SYS_T设置CPU时钟的日期和时间。在指令的输入IN指定DTL格式的日期和时间。在输出RET_VAL中,可以查询指令执行期间是否出错。不能使用“WR_SYS_T”指令发送有关本地时区或夏令时的信息。可使用RD_SYS_T读取CPU时钟的当前日期和当前时间。数据以DTL格式放在指令的输出OUT中。得出的值不包含有关本地时区或夏令时的信息。在输出RET_VAL中,可以查询指令执行期间是否出错。可使用RD_LOC_T从CPU时钟读取当前本地时间,并在输出OUT以DTL格式输出该值。在CPU时钟的组态中设置的时区和夏令时开始时间以及标准时间,其相关信息均包括在本地时间信息中。字符串转换指令字符串转换指令 使用S_CONV可将输入IN的值转换成在输出OUT中指定的数据格式。可实现下列转换:字符串(STRING)转换为数字值:在输入IN中指定的字符串的所有字符都将进行转换。允许的字符为数字0到9、小数点以及加号和减号。字符串的第一个字符可以是有效数字或符号。前导空格和指数表示将被忽略。无效字符可能会中断字符转换。此时,使能输出ENO将设置为“0”。可通过选择输出OUT的数据类型来决定转换的输出格式。数字值转换为字符串(STRING):通过选择输入IN的数据类型来决定要转换的数字值格式。必须在输出OUT中指定一个有效的STRING数据类型的变量。转换后的字符串长度取决于输入IN的值。由于第一个字节包含字符串的最大长度,第二个字节包含字符串的实际长度,因此转换的结果从字符串的第三个字节开始存储。输出正数字值时不带符号。复制字符串:如果在指令的输入和输出均输入STRING数据类型,则输入IN的字符串将被复制到输出OUT。如果输入IN字符串的实际长度超出输出OUT字符串的最大长度,则将复制IN字符串中完全适合OUT的字符串的那部分,并且使能输出ENO将设置为“0”值。使用STRG_VAL可将字符串转换为数字值。在输入IN中指定要转换的字符串。可通过选择输出OUT的数据类型来决定输出值的格式。通过输出OUT查询结果。从参数P中指定位置的字符开始转换。例如,如果参数P中指定的值为“1”,则将从指定字符串的第一个字符开始转换。转换允许的字符为数字0到9、小数点、逗号小数点、符号“E”和“e”以及加号和减号字符。无效字符可能会中断转换。此时,使能输出ENO将设置为“0”。使用参数FORMAT可指定要如何解释字符串中的字符。也可以使用“STRG_VAL”指令来转换和表示指数值。只能为参数FORMAT指定USINT数据类型的变量。使用VAL_STRG可将数字值转换为字符串。在输入IN中指定要转换的值。通过选择数据类型来决定数字值的格式。通过输出OUT查询转换结果。通过参数P可指定从字符串中的哪个字符开始写入结果。例如,如果参数P中指定的值为“2”,则将从字符串的第二个字符开始保存转换值。通过参数SIZE可以指定字符串中写入的字符数。这要从参数P中指定的字符开始算起。如果由参数P和SIZE定义的长度不够,则使能输出ENO将设置为“0”。如果输出值比指定长度短,则结果将以右对齐方式写入字符串。空字符位置将填入空格。转换允许的字符为数字0到9、小数点、逗号小数点、符号“E”和“e”以及加号和减号字符。无效字符可能会中断转换。此时,使能输出ENO将设置为“0”。使用参数FORMAT可指定在转换期间如何解释数字值以及如何将其写入字符串。只能为参数FORMAT指定USINT数据类型的变量。字符串操作指令字符串操作指令 STRING类型的变量包含两个长度:最大长度和当前长度(即当前有效字符的数量)。每个变量的字符串最大长度在STRING关键字的方括号中指定。当前长度表示实际使用的字符位置数。当前长度必须小于或等于最大长度。字符串占用的字节数为最大长度加2。可使用“LEN”指令查询在输入IN中指定的字符串的当前长度,并在输出OUT以数字值的形式将其输出。空字符串()的长度为零。如果操作处理期间出错,则将输出空字符串。CONCAT连接字符串参数IN1和IN2以形成一个字符串,并放在OUT中。目标字符串必须足够长,否则结果字符串将被截短并且使能输出ENO将设置为“0”值。如果指令处理期间出错并且可以写入到输出OUT,则将输出空字符串。可使用LEFT从输入IN字符串的第一个字符开始提取出一部分字符串。通过参数L指定要提取的字符数。以STRING格式通过输出OUT输出提取的字符。如果要提取的字符数大于字符串的当前长度,则输出OUT将返回输入字符串。参数L的值为“0”时或者输入值为空字符串时都将返回空字符串。如果参数L的值为负值,则将输出空字符串并且使能输出ENO将设置为“0”值。可使用MID将输入IN字符串的一部分提取出来。可通过参数P指定要提取的第一个字符的位置。通过参数L指定要提取的字符串长度。提取的部分字符串通过输出OUT输出。执行该指令时应遵守以下规则:如果要提取的字符数超出输入IN字符串的当前长度,则将输出从字符位置P开始到该字符串末尾的这一部分字符串。如果通过参数P指定的字符位置超出输入IN字符串的当前长度,则将通过输出OUT输出空字符串并且使能输出ENO将设置为“0”值。如果参数L或P的值等于零或为负值,则将通过输出OUT输出空字符串并且使能输出ENO将设置为“0”值。可使用DELETE将输入IN字符串的一部分删除。可通过参数P指定要删除的第一个字符的位置。可使用参数L指定要删除的字符数。剩余部分的字符串通过输出OUT以STRING格式输出。执行该指令时应遵守以下规则:如果参数L或P的值等于零,则输出OUT将返回输入字符串。如果参数P的值大于输入IN字符串的当前长度,则输出OUT将返回输入字符串。如果要删除的字符数大于输入IN字符串的长度,则将输出空字符串。如果参数L或P的值为负值,则将输出空字符串并且使能输出ENO将设置为“0”值从字符串1的某个字符位置开始插入字符串2,并将结果存储在目标字符串中。可使用参数P指定要插入字符的字符位置。以STRING格式通过输出OUT输出结果。执行该指令时应遵守以下规则:如果参数P的值超出输入IN1字符串的当前长度,则输入IN2的字符串将附加到输入IN1的字符串的后面。如果参数P的值为负值或等于零,则将通过输出OUT输出空字符串。使能输出ENO将设置为“0”值。如果结果字符串比在输出OUT中指定的变量长,则结果字符串将被限制为有效长度。使能输出ENO将设置为“0”值。可使用REPLACE将输入IN1的字符串替换为输入IN2的字符串。可通过参数P指定要替换的第一个字符的位置。通过参数L指定要替换的字符数。以STRING格式通过输出OUT输出结果。执行该指令时应遵守以下规则:如果参数L的值等于零,则输出OUT将返回输入IN1的字符串。如果P等于1,则将从输入IN1字符串的第一个字符开始(包括该字符)对其进行替换。如果参数P的值超出输入IN1字符串的当前长度,则输入IN2的字符串将附加到输入IN1的字符串的后面。如果参数P的值为负值或等于零,则将通过输出OUT输出空字符串。使能输出ENO将设置为“0”值。如果结果字符串比在输出OUT中指定的变量长,则结果字符串将被限制为有效长度。使能输出ENO将设置为“0”值。可使用FIND来搜索输入IN1的字符串以查找特定字符或特定字符串。在输入IN2中指定要搜索的值。搜索从左向右进行。将通过输出OUT输出第一个搜索结果的位置。如果搜索未返回任何匹配值,则将通过输出OUT输出“0”值。如果指令处理期间出错,则将输出空字符串。 某十字路口,东西方向车流量某十字路口,东西方向车流量较小,南北方向车流量较大。东西较小,南北方向车流量较大。东西方向上绿灯亮方向上绿灯亮30秒,南北方向上秒,南北方向上绿灯亮绿灯亮40秒,绿灯向红灯转换中秒,绿灯向红灯转换中间黄灯亮间黄灯亮5秒且闪烁,红灯在最后秒且闪烁,红灯在最后5秒闪烁。十字路口红绿灯示意图秒闪烁。十字路口红绿灯示意图如图所示。试利用如图所示。试利用PLC进行控制,进行控制,并编写梯形图程序。并编写梯形图程序。执行机构与动作过程执行机构与动作过程 虽然十字路口有虽然十字路口有12只红绿灯,但同只红绿灯,但同一个方向上的同色灯(如灯一个方向上的同色灯(如灯1与灯与灯7)同)同时动作,应作为一个输出,所以共有时动作,应作为一个输出,所以共有6个个输出。输出。 由于一个方向上亮绿灯或黄由于一个方向上亮绿灯或黄灯时,另一个方向上肯定亮红灯,灯时,另一个方向上肯定亮红灯,所以亮红灯可不作为一个单独的所以亮红灯可不作为一个单独的时间状态。时间状态。 十字路口红绿灯工作为循环方式,循环周期为十字路口红绿灯工作为循环方式,循环周期为80秒。由秒。由4部分组成:部分组成:40秒秒5秒秒30秒秒5秒。秒。 青岛大学青岛大学-西门子先进自动化技术联合实验室西门子先进自动化技术联合实验室138第第5章章程序控制指令程序控制指令 TSEND_C是异步指令且具有以下功能:设置并建立通信连接:TSEND_C可设置并建立TCP或ISO-on-TCP通信连接。设置并建立连接后,CPU会自动保持和监视该连接。在参数CONNECT中指定的连接描述用于设置通信连接。要建立连接,参数CONT的值必须设置为“1”。连接成功建立后,参数DONE在一个周期内设置为“1”。若CPU转到STOP模式,将终止现有连接并删除所设置的相应连接。必须再次执行TSEND_C,才能重新设置并建立该连接。通过现有通信连接发送数据:通过参数DATA可指定要发送的区域。这包括要发送数据的地址和长度。在参数REQ中检测到上升沿时执行发送作业。使用参数LEN指定通过一个发送作业可发送的最大字节数。在发送作业完成前不允许编辑要发送的数据。如果发送作业成功执行,则参数DONE将设置为“1”。参数DONE的信号状态为“1”并不表示是确认通信伙伴已读取发送数据。终止通信连接:参数CONT设置为“0”时,将终止通信连接。通信指令通信指令 设置并建立通信连接:TRCV_C可设置并建立TCP或ISO-on-TCP通信连接。设置并建立连接后,CPU会自动保持和监视该连接。使用参数CONNECT指定的连接描述,可以设置通信连接。要建立连接,参数CONT的值必须设置为“1”。连接成功建立后,参数DONE在一个周期内设置为“1”。若CPU转到STOP模式,将终止现有连接并删除所设置的相应连接。必须再次执行TRCV_C,才能重新设置并建立该连接。通过现有通信连接接收数据:如果参数EN_R的值设置为“1”,则启用数据接收。接收到的数据将输入到接收区中。根据所用的协议选项,通过参数LEN指定接收区长度(如果LEN0),或者通过参数DATA的长度信息来指定(如果LEN=0)。成功接收数据后,参数DONE的信号状态为“1”。如果数据传送过程中出错,参数DONE将设置为“0”。终止通信连接:参数CONT设置为“0”时,将终止通信连接。点对点指令点对点指令 点对点指令点对点指令 启启动动和取消延和取消延时时中断指令中断指令 禁用和启用禁用和启用报报警中断指令警中断指令PID控制指令控制指令 运动控制指令运动控制指令 脉冲指令脉冲指令 5.3 全局库指令全局库指令 USS协议库指令协议库指令 Modbus协议库指令协议库指令
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号