1、基本指令基本指令 知识知识4.1位操作类指令位操作类指令 4.2运算指令运算指令 4.3其他数据处理指令其他数据处理指令 4.4表功能指令表功能指令 4.5转换指令转换指令本章学习目的本章学习目的l l 位操作类指令,主要是位操作及运算指令,位操作类指令,主要是位操作及运算指令,与时也包含与位操作密切相关的定时器和计数与时也包含与位操作密切相关的定时器和计数器指令等。器指令等。l l 运算指令,包括常用的算术运算和逻辑运算运算指令,包括常用的算术运算和逻辑运算指令。指令。l l 其他数据处理类,包括数据的传送、移位、其他数据处理类,包括数据的传送、移位、填充和交换等指令。填充和交换等指令。l
2、l 表功能指令,包括对表的存取和查找指令。表功能指令,包括对表的存取和查找指令。l l 转换指令,包括数据类型转换、码转换和字转换指令,包括数据类型转换、码转换和字符转换指令。符转换指令。返回本章首页返回本章首页4.1位操作类指令位操作类指令 4.1.1指令使用概述指令使用概述 4.1.2基本逻辑指令基本逻辑指令 4.1.3复杂逻辑指令复杂逻辑指令 4.1.4定时器指令定时器指令 4.1.5计数器指令计数器指令 4.1.6比较比较 返回本章首页返回本章首页4.1.1指令使用概述指令使用概述 1.主机的有效主机的有效编程范围编程范围存储器的存储存储器的存储容量及各编程容量及各编程元件的有效编元件
3、的有效编程范围如右表程范围如右表4.1所示。所示。许多指令中含有操作数,操作数的有许多指令中含有操作数,操作数的有效编址范围如表效编址范围如表4.2所示。所示。(1)指令例)指令例整数加法整数加法+I,整数加法指令。使能输入有效时,将两个单字长(,整数加法指令。使能输入有效时,将两个单字长(16位)的符位)的符号整数号整数IN1和和IN2相加,产生一个相加,产生一个16位整数结果输出(位整数结果输出(OUT)。)。在在LAD和和FBD中,以指令盒形式编程。指令盒的执行结果:中,以指令盒形式编程。指令盒的执行结果:IN1+IN2=OUT在在STL中,执行结果:中,执行结果:IN1+OUT=OUT
4、IN1和和IN2的寻址范围:的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。和常数。OUT的寻址范围:的寻址范围:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC和和*LD。本指令影响的特殊存储本指令影响的特殊存储器位:器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负)(负)使能流输出使能流输出ENO断开断开的出错条件:的出错条件:SM1.1(溢出);(溢出);SM4.3(运(运行时间);行时间);0006(间接(间接寻址)寻址)指令格式:指令格式:+IIN1,OUT例:例:+IVW
5、0,VW4本指令在梯形图和语句表中的编程如图本指令在梯形图和语句表中的编程如图4.1所示。所示。图图4.1整数加法整数加法LDI0.0/使能输入端+IVW0,VW4/整数加法/VW0+VW4=VW43.梯形图的基本绘制规则梯形图的基本绘制规则(1)Network(2)能流)能流/使能使能(3)编程顺序)编程顺序(4)编号分配)编号分配(5)内、外触点的配合)内、外触点的配合(6)触点的使用次数)触点的使用次数(7)线圈的使用次数)线圈的使用次数(8)线圈的连接)线圈的连接 返回本节返回本节4.1.2基本逻辑指令基本逻辑指令 基本逻辑指令在语句表语言中是指对位存储单元基本逻辑指令在语句表语言中是
6、指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。连接和对标准线圈的输出。一般来说,语句表语言更适合于熟悉可编程序控一般来说,语句表语言更适合于熟悉可编程序控制器和逻辑编程方面有经验的编程人员。用这种制器和逻辑编程方面有经验的编程人员。用这种语言可以编写出用梯形图或功能框图无法实现的语言可以编写出用梯形图或功能框图无法实现的程序。选择语句表时进行位运算要考虑主机的内程序。选择语句表时进行位运算要考虑主机的内部存储结构。部存储结构。可编程序控制器中的可编程序控制器中的堆栈与计算机中的堆堆栈与计算机中的堆栈结构相同,堆栈是栈结
7、构相同,堆栈是一组能够存储和取出一组能够存储和取出数据的暂时存储单元。数据的暂时存储单元。堆 栈 的 存 取 特 点 是堆 栈 的 存 取 特 点 是“后进先出后进先出”,S7-200可编程序控制器的可编程序控制器的主机逻辑堆栈结构如主机逻辑堆栈结构如表表4.3所示。所示。1.标准触点指令标准触点指令(1)LD:装入常开触点(:装入常开触点(LoaD)(2)LDN:装入常闭触点(:装入常闭触点(LoaD Not)(3)A:与常开触点(:与常开触点(And)(4)AN:与常闭触点(:与常闭触点(And Not)。)。(5)O:或常闭触点(:或常闭触点(Or)(6)ON:或常闭触点(:或常闭触点(
8、Or Not)(7)NOT:触点取非(输出反相):触点取非(输出反相)(8)=:输出指令:输出指令 在语句表中,在语句表中,LD、LDN、A、AN、O、ON、NOT这几这几条指令的执行对逻辑堆栈的影响分别如表条指令的执行对逻辑堆栈的影响分别如表4.4、表、表4.5其后其后的说明。的说明。表表4.5指令指令AI0.2的执行的执行程序实例:程序实例:本程序段用以本程序段用以介绍标准触点介绍标准触点指令在梯形图、指令在梯形图、语句表和功能语句表和功能块图块图3种语言编种语言编程中的应用,程中的应用,仔细比较不同仔细比较不同编程工具的区编程工具的区别与联系。别与联系。其梯形图和语其梯形图和语句表程序结
9、构句表程序结构如图如图4.2所示。所示。LD I0.0 /装入常开触点 O I0.1 /或常开触点 A I0.2 /与常开触点=Q0.0 /输出触点/如果本梯级中将 I0.1 的触点改/为 Q0.0 的常开触点,则成为电/机起动停止控制环节的梯形图。LDN I0.0 /装入常闭触点 ON I0.1 /或常闭触点 AN I0.2 /与常闭触点=Q0.1 /LD I0.0 /O I0.1 /A I0.2 /NOT /取非,即输出反相=Q0.3 /图图4.2标准触点标准触点LAD和和STL例例本程序对应的本程序对应的功能框图如图功能框图如图4.3所示。在功所示。在功能框图中,常能框图中,常闭触点的装
10、入闭触点的装入和串并联用指和串并联用指令盒的对应输令盒的对应输入信号端加圆入信号端加圆圈来表示。圈来表示。程序执行的时程序执行的时序图如图序图如图4.4所所示。示。LD I0.0 /O I0.1 /A I0.2 /=Q0.0/LDN I0.0 /ON I0.1 /AN I0.2 /=Q0.1/LD I0.0 /O I0.1 /A I0.2 /NOT /=Q0.3 /图图4.3标准触点标准触点FBD例例2.正负跳变指令正负跳变指令 图图4.4时序图时序图I0.0Q0.2Q0.0I0.2I0.1负跳变触点检测到脉冲的每一次负跳变后,负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。产生一个微
11、分脉冲。指令格式:指令格式:ED (无操作数)(无操作数)应用举例:图应用举例:图4.5是跳变指令的程序片断。是跳变指令的程序片断。图图4.6是图是图4.5指令执行的时序。指令执行的时序。LD I0.0 /输入常开触点 EU /脉冲正跳变=Q0.0 /输出触点 LD I0.0 /ED /脉冲负跳变=Q0.1 /图图4.5跳变应用跳变应用图图4.6时序时序I0.0Q0.1Q0.0(1)S,置位指令,置位指令(2)R,复位指令,复位指令 置位即置置位即置1,复位即置,复位即置0。置位和复位指令可以将位存储区。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达的某一位开始的一个或多个(最
12、多可达255个)同类存储器个)同类存储器位置位置1或置或置0。这两条指令在使用时需指明三点:操作性质、。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。各操作数类型及范围如表开始位和位的数量。各操作数类型及范围如表4.6所示。所示。3.置位和复位指令置位和复位指令(1)S,置位指令,置位指令 将位存储区的指定位(位将位存储区的指定位(位bit)开始的)开始的N个同类存个同类存储器位置位。储器位置位。用法:用法:Sbit,N例:例:SQ0.0,1(2)R,复位指令,复位指令 将位存储区的指定位(位将位存储区的指定位(位bit)开始的)开始的N个同类存个同类存储器位复位。当用复位指令时,
13、如果是对定时器储器位复位。当用复位指令时,如果是对定时器T位或计数器位或计数器C位进行复位,则定时器位或计数位进行复位,则定时器位或计数器位被复位,同时,定时器或计数器的当前值被器位被复位,同时,定时器或计数器的当前值被清零。清零。用法:用法:Rbit,N例:例:RQ0.2,3应用举例:图应用举例:图4.7为置位和复位指令应用程序片断。为置位和复位指令应用程序片断。LD I0.0 /装入常开触点 A I0.1 /与常开触点=Q1.0 /输出触点 LD I0.0 /A I0.1 /S Q0.0,1/将Q0.0开始的/1个触点置 1 R Q0.2,3 /将Q0.2开始的/3个触点置 0 图图4.7
14、置位复位置位复位本程序对应的时序图如图本程序对应的时序图如图4.8所示。所示。图图4.8时序图时序图I0.0Q0.2-Q0.4Q0.0Q1.0I0.14.立即指令立即指令 (1)立即触点指令)立即触点指令(2)=I,立即输出指令,立即输出指令(3)SI,立即置位指令,立即置位指令(4)RI,立即复位指令,立即复位指令(1)立即触点指令)立即触点指令在每个标准触点指令的后面加在每个标准触点指令的后面加“I”。指令执行时,。指令执行时,立即读取物理输入点的值,但是不刷新对应映像立即读取物理输入点的值,但是不刷新对应映像寄存器的值。寄存器的值。这类指令包括:这类指令包括:LDI、LDNI、AI、AN
15、I、OI和和ONI。下面以。下面以LDI指令为例。指令为例。用法:用法:LDI bit例:例:LDI I0.2注意:注意:bit只能是只能是I类型。类型。(2)=I,立即输出指令,立即输出指令用立即指令访问输出点时,把栈顶值立即复制到用立即指令访问输出点时,把栈顶值立即复制到指令所指出的物理输出点,同时,相应的输出映指令所指出的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。像寄存器的内容也被刷新。用法:用法:=Ibit例:例:=IQ0.2注意:注意:bit只能是只能是Q类型。类型。(3)SI,立即置位指令,立即置位指令用立即置位指令访问输出点时,从指令所指出的位(用立即置位指令访问输出
16、点时,从指令所指出的位(bit)开始的开始的N个(最多为个(最多为128个)物理输出点被立即置位,同个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。时,相应的输出映像寄存器的内容也被刷新。用法:用法:SIbit,N例:例:SIQ0.0,2注意:注意:bit只能是只能是Q类型。类型。SI和和RI指令的操作数类型及范指令的操作数类型及范围如表围如表4.7所示。所示。(4)RI,立即复位指令,立即复位指令用立即复位指令访问输出点时,从指令所指出的用立即复位指令访问输出点时,从指令所指出的位(位(bit)开始的)开始的N个(最多为个(最多为128个)物理输出点个)物理输出点被立即复
17、位,同时,相应的输出映像寄存器的内被立即复位,同时,相应的输出映像寄存器的内容也被刷新。容也被刷新。用法:用法:RIbit,N例:例:RIQ0.0,1应用举例:应用举例:图图4.9为立即指令应用中的一段程序,图为立即指令应用中的一段程序,图4.10是程是程序对应的时序图。序对应的时序图。LD I0.0 /装 入 常 开 触 点 =Q0.0 /输 出 触 点,非 立 即 =I Q0.1 /立 即 输 出 触 点 SI Q0.2,1/从 Q0.2 开 始 的 1 个 /触 点 被 立 即 置 1 LDI I0.0 /立 即 输 入 触 点 指 令 =Q0.3 /图图4.9立即指令程序立即指令程序图
18、图4.10时序图时序图返回本节返回本节扫描周期 n扫描周期 n+1扫描周期 n+3扫描周期 n+2输出刷新输出刷新输出刷新输出刷新输出刷新输入扫描输入扫描输入扫描输入扫描输入扫描Q0.1I0.0Q0.0Q0.3Q0.24.1.3复杂逻辑指令复杂逻辑指令 1.栈装载与指令栈装载与指令 2.栈装载或指令栈装载或指令 3.逻辑推入栈指令逻辑推入栈指令 4.逻辑弹出栈指令逻辑弹出栈指令 5.逻辑读栈指令逻辑读栈指令 6.装入堆栈指令装入堆栈指令 1.栈装载与指令栈装载与指令 ALD,栈装载与指令(与块)。在梯形图中用于将并联,栈装载与指令(与块)。在梯形图中用于将并联电路块进行串联连接。电路块进行串联
19、连接。在语句表中指令在语句表中指令ALD执行情况如表执行情况如表4.8所示。所示。OLD,栈装载或指令(或块)。在梯形图中用于,栈装载或指令(或块)。在梯形图中用于将串联电路块进行并联连接。将串联电路块进行并联连接。在语句表中指令在语句表中指令OLD执行情况如表执行情况如表4.9所示。所示。2.栈装载或指令栈装载或指令 LPS,逻辑推入栈指令(分支或主控指令)。在梯形图中,逻辑推入栈指令(分支或主控指令)。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。辑块时,第一个完整的从逻辑行从此处开始。注意
20、:注意:使用使用LPS指令时,本指令为分支的开始,以后必须指令时,本指令为分支的开始,以后必须有分支结束指令有分支结束指令LPP。即。即LPS与与LPP指令必须成对出现。指令必须成对出现。在语句表中指令在语句表中指令LPS执行情况如下表执行情况如下表4.10所示。所示。3.逻辑推入栈指令逻辑推入栈指令 4.逻辑弹出栈指令逻辑弹出栈指令 LPP,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的分支结构中,用于将分支结构中,用于将LPS指令生成一条新的母线进行恢复。指令生成一条新的母线进行恢复。注意:注意:使用使用LPP指令时,必须出现
21、在指令时,必须出现在LPS的后面,与的后面,与LPS成对出现。成对出现。在语句表中指令在语句表中指令LPP执行情况如下表执行情况如下表4.11所示。所示。5.逻辑读栈指令逻辑读栈指令 LRD,逻辑读栈指令。在梯形图中的分支结构中,当左,逻辑读栈指令。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。在语句表中指令在语句表中指令LRD 执行情况如表执行情况如表4.12所示。所示。6.装入堆栈指令装入堆栈指令 LDS,装入堆栈指令。本指令编程时较少使用。,装入堆栈指令。本指令编程时较少使用。指令格式:指令格式:LDSn(
22、n为为08的整数)的整数)例:例:LDS4指令指令LDS4 在语句表中执行情况如下表在语句表中执行情况如下表4.13所示。所示。应用举例:应用举例:图图4.11是复杂逻辑指令在实际应用中的一段程序的梯形图。是复杂逻辑指令在实际应用中的一段程序的梯形图。LD I0.0 /装入常开触点 O I2.2 /或常开触点 LD I0.1 /被串的块开始 LD I2.0 /被并路开始 A I2.1 /OLD /栈装载或,并路结束 ALD /栈装载与,串路结束 LD I0.0 /LPS /逻辑推入栈,主控 A I0.5 /=Q7.0 /LRD /逻辑读栈,新母线 LD I2.1 /O I1.3 /ALD /栈
23、装载与=Q6.0 /LPP /逻辑弹出栈,母线复原 LD I3.1 /O I2.0 /ALD /=Q1.3 /图图4.11复杂逻辑复杂逻辑指令的应用指令的应用返回本节返回本节4.1.4定时器指令定时器指令 系统提供系统提供3种定时指令:种定时指令:TON、TONR和和TOF。精度等级:精度等级:S7-200定时器的精度(时间增量定时器的精度(时间增量/时间单位时间单位/分辨率)有分辨率)有3 个等级:个等级:1ms、10ms和和100ms,精度等级和定时器号关系,精度等级和定时器号关系如表如表4.14所示。所示。指令操作数指令操作数 1)编号:)编号:2)预设值)预设值PT:3)使能输入(只对
24、)使能输入(只对LAD和和FBD):):1.接通延时定时器接通延时定时器 TON,接通延时定时器指令。用于单一,接通延时定时器指令。用于单一间隔的定时。上电周期或首次扫描,定间隔的定时。上电周期或首次扫描,定时器位时器位OFF,当前值为,当前值为0。使能输入接。使能输入接通时,定时器位为通时,定时器位为OFF,当前值从,当前值从0开开始计数时间,当前值达到预设值时,定始计数时间,当前值达到预设值时,定时器位时器位ON,当前值连续计数到,当前值连续计数到32767。使能输入断开,定时器自动复位,即定使能输入断开,定时器自动复位,即定时器位时器位OFF,当前值为,当前值为0。指令格式:指令格式:T
25、ONTxxx,PT例:例:TONT120,82.有记忆接通延时定时器有记忆接通延时定时器 TONR,有记忆接通延时定时器指令。用于,有记忆接通延时定时器指令。用于对许多间隔的累计定时。上电周期或首次扫对许多间隔的累计定时。上电周期或首次扫描,定时器位描,定时器位OFF,当前值保持。使能输入,当前值保持。使能输入接通时,定时器位为接通时,定时器位为OFF,当前值从,当前值从0开始开始计数时间。使能输入断开,定时器位和当前计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前前值从上次的保持值继续计数
26、,当累计当前值达到预设值时,定时器位值达到预设值时,定时器位ON,当前值连,当前值连续计数到续计数到32767。TONR定时器只能用复位指令进行复位操作。定时器只能用复位指令进行复位操作。指令格式:指令格式:TONRTxxx,PT例:例:TONRT20,633.断开延时定时器断开延时定时器TOF,断开延时定时器指令。用于断开,断开延时定时器指令。用于断开后的单一间隔定时。上电周期或首次扫后的单一间隔定时。上电周期或首次扫描,定时器位描,定时器位OFF,当前值为,当前值为0。使能输。使能输入接通时,定时器位为入接通时,定时器位为ON,当前值为,当前值为0。当使能输入由接通到断开时,定时器开当使能
27、输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器始计数,当前值达到预设值时,定时器位位OFF,当前值等于预设值,停止计数。,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从复位后,如果使能输入再有从ON到到OFF的负跳变,则可实现再次启动。的负跳变,则可实现再次启动。指令格式:指令格式:TOFTxxx,PT例:例:TOFT35,64.应用举例应用举例例例1:图:图4.12是介绍是介绍3种定时器的工作特性的种定时器的工作特性的程序片断,其中程序片断,其中T35为通电延时定时器,为通电延时定时器,T2为有记忆通电延时定时器,为有记忆通电延时定时器,T36为断电延时为断电延
28、时定时器。定时器。LD I0.0 /使能输入 TON T35,+4/通电延时定时 /延时时间为/40ms LD I0.0 /TONR T2,+10/有记忆通电 /延时时间累计 /为 1000ms LD I0.0 /TOF T36,+3/断电延时定时 /延时时间为 /30ms 图图4.12定时器特性定时器特性本梯形图程序中输入输出执行时序关系如图本梯形图程序中输入输出执行时序关系如图4.13所示。所示。图图4.13定时器时序定时器时序T36位4103I0.0T33当前值T2当前值T33位3T2位T36当前值最大值最大值4例例2:用:用TON构造各种类型的时间继电器触点。构造各种类型的时间继电器触
29、点。有的厂商的有的厂商的PLC只有只有TON定时器,因此,在这种情况下定时器,因此,在这种情况下可以利用可以利用TON来构造断电延时型的各种触点。来构造断电延时型的各种触点。图图4.14是用是用TON构造构造TOF作用的触点。其时序图与作用的触点。其时序图与TOF的的时序完全相同。时序完全相同。图图4.15用通电延时定时器与输出继电器组成带瞬动触点的用通电延时定时器与输出继电器组成带瞬动触点的定时器。定时器。图图4.16是利用常开触点实现通电和断电都延时的触点作用。是利用常开触点实现通电和断电都延时的触点作用。本程序实现的功能是:用输入端本程序实现的功能是:用输入端I0.0控制输出端控制输出端
30、Q0.0,当,当I0.0接通后,过接通后,过3个时间单位个时间单位Q0.0端输出接通,当端输出接通,当I0.0断开断开后,过后,过6个时间单位个时间单位Q0.0断开。断开。LDI0.0/启动 M0.0OM0.0/自保ANT33/断开 M0.0=M0.0/瞬时闭合/延时 50ms 断开ANI0.0/连续输出TON T33,+5/图图4.14定时器应用定时器应用LDI0.0/=Q0.0/定时器的瞬动触点TON T33,+50/通电延时定时器/时间为 500msLDT33/=Q0.1/延时动作触点图图4.14定时器应用定时器应用LDI0.0/=Q0.0/定时器的瞬动触点TON T33,+50/通电延
31、时定时器/时间为 500msLDT33/=Q0.1/延时动作触点图图4.15定时器应用定时器应用LDI0.0/TON T33,+3/常开通电延时/用作通电延时定时LDQ0.0/断电延时的基础ANI0.0/断电延时开始TON T34,+6/通电延时定时器/用作断电延时计时LDT33/OQ0.0/ANT34/=Q0.0/用作通、断电延时图图4.16定时器应用定时器应用返回本节返回本节4.1.5计数器指令计数器指令 1.概概 述述 2.增计数器增计数器 3.增减计数器增减计数器 4.减计数器减计数器 5.应用举例应用举例 1.概述概述 计数器用来累计输入脉冲的次数。计数器也是由计数器用来累计输入脉冲
32、的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。常用来对产品进行计数。计数器指令有计数器指令有3种:增计数种:增计数CTU、增减计数、增减计数CTUD和减计数和减计数CTD。指令操作数有指令操作数有4方面:编号、预设值、脉冲输入方面:编号、预设值、脉冲输入和复位输入。和复位输入。LDM0.0/起动信号=Q0.1/起动电机 M1TON T40,+200/延时 2000ms/后起动电机 M2LDT40/=Q0.2/起动电机 M2TON T41,+300/延时 3000ms/后起动电机 M3LDT41/=Q0.3/起动电机
33、 M3图图4.18电机顺序起动电机顺序起动2.增计数器增计数器 CTU,增计数器指令。首次扫描,定时器位,增计数器指令。首次扫描,定时器位OFF,当前值为当前值为0。脉冲输入的每个上升沿,计数器计。脉冲输入的每个上升沿,计数器计数数1次,当前值增加次,当前值增加1个单位,当前值达到预设值个单位,当前值达到预设值时,计数器位时,计数器位ON,当前值继续计数到,当前值继续计数到32767停止停止计数。复位输入有效或执行复位指令,计数器自计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位动复位,即计数器位OFF,当前值为,当前值为0。指令格式:指令格式:CTUCxxx,PV例:例:CTUC
34、20,3程序实例:程序实例:图图4.19为增计数器的程序片断和时序图。为增计数器的程序片断和时序图。LDI0.0/计数脉冲信号输入端LDI0.1/复位信号输入端CTU C20,+3/增计数,计数设定值/为 3 个脉冲LDC20/计数值达到 3,则=Q0.0/将输入位置 1I0.0I0.1C20 当前值C20 位图图4.19增计数程序及时序增计数程序及时序3.增减计数器增减计数器 CTUD,增减计数器指令。有两个脉冲输入端:,增减计数器指令。有两个脉冲输入端:CU输入端用于递增输入端用于递增计数,计数,CD输入端用于递减计数。输入端用于递减计数。指令格式:指令格式:CTUDCxxx,PV例:例:
35、CTUDC30,5程序实例:如图程序实例:如图4.20所示为增减计数器的程序片断和时序图。所示为增减计数器的程序片断和时序图。LD I0.0 /增计数输入端 LD I0.1 /减计数输入端 LD I0.2 /复位输入端 CTUD C30,+5/增减计数,设定 /脉冲数为 5。LD C30 /计数器触点=Q0.0 /输出触点 图图4.20增减计数程序及时序增减计数程序及时序1234543434567I0.0I0.1I0.2C30 当前值C30 位4.减计数器减计数器 CTD,增减计数器指令。脉冲输入端,增减计数器指令。脉冲输入端CD用于递减计数。用于递减计数。首次扫描,定时器位首次扫描,定时器位
36、OFF,当前值为等于预设值,当前值为等于预设值PV。计。计数器检测到数器检测到CD输入的每个上升沿时,计数器当前值减小输入的每个上升沿时,计数器当前值减小1个单位,当前值减到个单位,当前值减到0时,计数器位时,计数器位ON。复位输入有效或执行复位指令,计数器自动复位,即计复位输入有效或执行复位指令,计数器自动复位,即计数器位数器位OFF,当前值复位为预设值,而不是,当前值复位为预设值,而不是0。指令格式:指令格式:CTDCxxx,PV例:例:CTDC40,4程序实例:图程序实例:图4.21为减计数器的程序片断和时序图。为减计数器的程序片断和时序图。LDI0.0/减计数脉冲输入端LDI0.1/复
37、位输入端CTD C40,+4/减计数器,设定计数/脉冲数为 4。LDC40/装入计数器触点=Q0.0/输出触点图图4.21减计数程序及时序减计数程序及时序I0.0I0.1C40 当前值C40 位5.应用举例应用举例 1)循环计数。)循环计数。以上三种类型的计数器如果在使用时,将计数器以上三种类型的计数器如果在使用时,将计数器位的常开触点作为复位输入信号,则可以实现循位的常开触点作为复位输入信号,则可以实现循环计数。环计数。2)用计数器和定时器配合增加延时时间,如图)用计数器和定时器配合增加延时时间,如图4.22所示。试分析以下程序中实际延时为多长时所示。试分析以下程序中实际延时为多长时间。间。
38、LDI0.0/启动通电延时ANM0.0/重新启动延时TON T50,+30000/通电延时定时器/时间设定为 3000sLDT50/延时时间到=M0.0/关定时器,产生一个/脉冲。LDM0.0/每隔 3000s 输入一个/脉冲LDN I0.0/复位输入CTU C20,+10/增计数器,累计脉冲/的总数。图图4.22计数器应用例计数器应用例返回本节返回本节123111054I 0.0T50 位C20 位4.1.6比较比较 1.字节比较字节比较 2.整数比较整数比较 3.双字整数比较双字整数比较 4.实数比较实数比较 5.应用举例应用举例 1.字节比较字节比较 字节比较用于比较两个字节型整数值字节
39、比较用于比较两个字节型整数值IN1和和IN2的的大小,字节比较是无符号的。比较式可以是大小,字节比较是无符号的。比较式可以是LDB、AB或或OB后直接加比较运算符构成。后直接加比较运算符构成。如:如:LDB=、AB、OB=等。等。整数整数IN1和和IN2的寻址范围:的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。和常数。指令格式例:指令格式例:LDB=VB10,VB12ABMB0,MB1OB=AC1,1162.整数比较整数比较 整数比较用于比较两个一字长整数值整数比较用于比较两个一字长整数值IN1和和IN2的大小,的大小,整数比较是有符号的(整数范围为整数
40、比较是有符号的(整数范围为16#8000和和16#7FFF之之间)。比较式可以是间)。比较式可以是LDW、AW或或OW后直接加比较运算后直接加比较运算符构成。符构成。如:如:LDW=、AW、OW=等。等。整数整数IN1和和IN2的寻址范围:的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常和常数。数。指令格式例:指令格式例:LDW=VW10,VW12AW MW0,MW4OW=AC2,11603.双字整数比较双字整数比较 双字整数比较用于比较两个双字长整数值双字整数比较用于比较两个双字长整数值IN1和和IN2的大小,双字整数比较是有符号的(双
41、字整的大小,双字整数比较是有符号的(双字整数范围为数范围为16#80000000和和16#7FFFFFFF之间)。之间)。指令格式例:指令格式例:LDD=VD10,VD14ADMD0,MD8OD=HC0,*AC04.实数比较实数比较 实数比较用于比较两个双字长实数值实数比较用于比较两个双字长实数值IN1和和IN2的的大小,实数比较是有符号的(负实数范围为大小,实数比较是有符号的(负实数范围为-1.175495E-38和和-3.402823E+38,正实数范围为,正实数范围为+1.175495E-38和和+3.402823E+38)。比较式可以)。比较式可以是是LDR、AR或或OR后直接加比较运
42、算符构成。后直接加比较运算符构成。指令格式例:指令格式例:LDR=VD10,VD18ARMD0,MD12OR*AC1,VD1005.应用举例应用举例 控制要求:控制要求:一自动仓库存放某种货物,最多一自动仓库存放某种货物,最多6000箱,需对所箱,需对所存的货物进出计数。货物多于存的货物进出计数。货物多于1000箱,灯箱,灯L1亮;亮;货物多于货物多于5000箱,灯箱,灯L2亮。亮。其中,其中,L1和和L2分别受分别受Q0.0和和Q0.1控制,数值控制,数值1000和和5000分别存储在分别存储在VW20和和VW30字存储单元中。字存储单元中。本控制系统的程序如图本控制系统的程序如图4.23所
43、示。程序执行时序所示。程序执行时序如图如图4.24所示。所示。图图4.23程序举例程序举例LDI0.0/增计数输入端LDI0.1/减计数输入端LDI0.2/复位输入端CTUDC30,+10000/增减计数,/设定脉冲数/为 10000。LDW=C30,VW20/比较计数器/当前值是否大于/VW20 中的值=Q0.0/输出触点LDW=C30,VW30/比较计数器/当前值是否大于/VW30 中的值=Q0.1/输出触点图图4.24时序图时序图1000100050005000C30 当前值Q 0.0Q 0.1返回本节返回本节4.2运算指令运算指令 4.2.1 加法加法 4.2.2减法减法 4.2.3乘
44、法乘法 4.2.4除法除法 4.2.5 数学函数指令数学函数指令 4.2.6增减增减 4.2.7 逻辑运算逻辑运算 返回本章首页返回本章首页4.2.1 加法加法 1.整数加法整数加法+I,整数加法指令。使能输入有效时,将两个单,整数加法指令。使能输入有效时,将两个单字长(字长(16位)的符号整数位)的符号整数IN1和和IN2相加,产生一相加,产生一个个16位整数结果位整数结果OUT。LDI0.0/使能输入端+IVW0,VW4/整数加法/VW0+VW4=VW4图图4.25整数加法例整数加法例2.双整数加法双整数加法+D,双整数加法指令。使能输入有效时,将两个双字长(,双整数加法指令。使能输入有效
45、时,将两个双字长(32位)的位)的符号双整数符号双整数IN1和和IN2相加,产生一个相加,产生一个32位双整数结果位双整数结果OUT。在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1+IN2=OUT。在在STL中,执行结果:中,执行结果:IN1+OUT=OUT。OUT的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。指令格式:指令格式:+DIN1,OUT例:例:+DVD0,VD4+R,实数加法指令。使能输入有效时,将两个双字长(,实数加法指令。使能输入有效时,将两个双字长(32位)的实位)的实数数IN1和
46、和IN2相加,产生一个相加,产生一个32位实数结果位实数结果OUT。在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1+IN2=OUT。OUT的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:本指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负)。(负)。返回本节返回本节4.2.2减法减法 减法指令是对有符号数进行相减操作。包括:整减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指数减法、双整数减法和实数
47、减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其令与所对应的加法指令除运算法则不同之外,其他方面基本相同。他方面基本相同。在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1-IN2=OUT。在在STL中,执行结果:中,执行结果:OUT-IN2=OUT。指令格式:指令格式:-IIN2,OUT(整数减法)(整数减法)-DIN2,OUT(双整数减法)(双整数减法)-RIN2,OUT(实数减法)(实数减法)例:例:-IAC0,VW4返回本节返回本节4.2.3乘法乘法 *I,整数乘法指令。使能输入有,整数乘法指令。使能输入有效时,将两个单字长(效时,将
48、两个单字长(16位)的位)的符号整数符号整数IN1和和IN2相乘,产生一相乘,产生一个个16位整数结果位整数结果OUT。指令格式:指令格式:*IIN1,OUT例:例:*IVW0,AC01.整数乘法整数乘法 2.完全整数乘法完全整数乘法 MUL,完全整数乘法指令。使能输入有效时,将两个单,完全整数乘法指令。使能输入有效时,将两个单字长(字长(16位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位位双整数结果双整数结果OUT。在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1*IN2=OUT。OUT的寻址范围:的寻址范围:VD、I
49、D、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:本指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢(溢出);出);SM1.2(负);(负);SM1.3(被(被0除)。除)。指令格式:指令格式:MUL IN1,OUT例:例:MUL AC0,VD10 3.双整数乘法双整数乘法 *D,双整数乘法指令。使能输入有效时,将两个双字长,双整数乘法指令。使能输入有效时,将两个双字长(32位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位双整位双整数结果数结果OUT。在在STL中,执行结果:中,执行结果:IN1*OUT=O
50、UT。IN1和和IN2的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。和常数。OUT的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:本指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢(溢出);出);SM1.2(负);(负);SM1.3(被(被0除)。除)。指令格式:指令格式:*DIN1,OUT例:例:*DVD0,AC04.实数乘法实数乘法*R,实数乘法指令。使能输入有效时,将两个双字长(,实数乘法指令。使能输入有效时,将两个双字长(32位)位