《3-2S7-200 PLC的基本指令及编程方法2.ppt》由会员分享,可在线阅读,更多相关《3-2S7-200 PLC的基本指令及编程方法2.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.2.5 定时器和计数器指令定时器和计数器指令 1.定时器指令定时器指令 定定时时器器是是由由集集成成电电路路构构成成,是是PLCPLC中中的的重重要要硬硬件件编编程程元元件件。定定时时器器编编程程时时提提前前输输入入时时间间预预设设值值,在在运运行行时时当当定定时时器器的的输输入入条条件件满满足足时时开开始始计计时时,当当前前值值从从0 0开开始始按按一一定定的的时时间间单单位位增增加加,当当定定时时器器的的当当前前值值达达到到预预设设值值时时,定定时时器器发发生生动动作作,发发出出中中断断请请求求,以以便便PLCPLC响响应应而而作作出出相相应应的的动动作作。此此时时它它对对应的常开触点
2、闭合,常闭触点断开。应的常开触点闭合,常闭触点断开。系系统统提提供供3 3种种定定时时指指令令:TONTON(通通电电延延时时)、TONRTONR(有有记记忆忆通电延时)和通电延时)和TOFTOF(断电延时)。断电延时)。S7-200S7-200定定时时器器的的分分辨辨率率(时时间间增增量量/时时间间单单位位/分分辨辨率率)有有3 3个个等等级级:1ms1ms、10ms10ms和和100ms100ms,分分辨辨率率等等级级和和定定时时器器号号关关系系如表如表3-113-11所示。所示。返回返回3.2.5 定时器和计数器指令定时器和计数器指令表3-11定时器号和分辨率定时器类型定时器类型分辩率分
3、辩率/ms计时范围计时范围/s定时器号定时器号TONTOF 132.767T32,T9610327.67T33T36,T97T1001003276.7T37T63,T101T255TONR 132.767T0,T6410327.67T1T4,T65T681003276.7T5T31,T6995定时时间的计算:定时时间的计算:T=PTT=PTS S(T T为实际定时时间,为实际定时时间,PTPT为预设值,为预设值,S S为分辨率等级)为分辨率等级)例例如如:TONTON指指令令用用定定时时器器T33T33,预预设设值值为为125125,则则实实际际定定时时时时间间 T=125 T=125 10=
4、1250ms 10=1250ms 3.2.5 定时器和计数器指令定时器和计数器指令定时器指令操作数有定时器指令操作数有3 3个:个:编号编号、预设值预设值和和使能输入使能输入。1 1)编编号号:用用定定时时器器的的名名称称和和它它的的常常数数编编号号(最最大大255255)来来表表示示,即即TxxxTxxx,如:如:T4T4。T4T4不不仅仅仅仅是是定定时时器器的的编编号号,它它还还包包含含两两方方面面的的变变量量信信息息:定定时时器器位位和和定定时器当前值时器当前值。定定时时器器位位:定定时时器器位位与与时时间间继继电电器器的的输输出出相相似似,当当定定时时器器的的当当前前值值达达到到预设值
5、预设值PTPT时,该位被置为时,该位被置为“1”1”。定定时时器器当当前前值值:存存储储定定时时器器当当前前所所累累计计的的时时间间,它它用用1616位位符符号号整整数数来来表表示,故最大计数值为示,故最大计数值为3276732767。2 2)预预设设值值PTPT:数数据据类类型型为为INTINT型型。寻寻址址范范围围可可以以是是VWVW、IWIW、QWQW、MWMW、SWSW、SMWSMW、LWLW、AIWAIW、T T、C C、ACAC、*VDVD、*ACAC、*LDLD和常数。和常数。3 3)使使能能输输入入(只只对对LADLAD和和FBDFBD):BOOLBOOL型型,可可以以是是I
6、I、Q Q、M M、SMSM、T T、C C、V V、S S、L L和能流。和能流。可可以以用用复复位位指指令令来来对对3 3种种定定时时器器复复位位,复复位位指指令令的的执执行行结结果果是是:使使定定时时器位变为器位变为OFFOFF:定时器当前值变为定时器当前值变为0 0。3.2.5 定时器和计数器指令定时器和计数器指令(1)接通延时定时器指令:)接通延时定时器指令:TON 用用于于单单一一间间隔隔定定时时。上上电电周周期期或或首首次次扫扫描描,定定时时器器位位OFFOFF,当当前前值值为为0 0。使使能能输输入入接接通通时时,定定时时器器位位为为OFFOFF,当当前前值值从从0 0开开始始
7、计计数数时时间间,当当前前值值达达到到预预设设值值时时,定定时时器器位位为为ONON,当当前前值值连连续续计计数数到到3276732767。使使能能输输入入断断开开,定定时时器器自自动动复复位位,即即定定时时器器位位OFFOFF,当前值为当前值为0 0。填填“计计定时器号定时器号”,如:如:T35T35填填“预设值预设值”,如:,如:100指令格式:指令格式:TON TON TxxxTxxx,P PT T例:例:TON T120TON T120,8 8 返回返回3.2.5 定时器和计数器指令定时器和计数器指令(2)有记忆接通延时定时器指令:)有记忆接通延时定时器指令:TONR 用用于于对对许许
8、多多间间隔隔的的累累计计定定时时。上上电电周周期期或或首首次次扫扫描描,定定时时器器位位OFFOFF,当当前前值值保保持持。使使能能输输入入接接通通时时,定定时时器器位位为为OFFOFF,当当前前值值从从0 0开开始始累累计计计计数数时时间间。使使能能输输入入断断开开,定定时时器器位位和和当当前前值值保保持持最最后后状状态态。使使能能输输入入再再次次接接通通时时,当当前前值值从从上上次次的的保保持持值值继继续续计计数数,当当累累计计当当前前值值达达到到预预设设值值时时,定定时时器器位位ONON,当当前前值值连续计数到连续计数到3276732767。填填“计计定时器号定时器号”,如:如:T31T
9、31填填“预设值预设值”,如:,如:100TONRTONR定时器只能用复位指令进行复位操作,使当前值清零。定时器只能用复位指令进行复位操作,使当前值清零。指令格式:指令格式:TONR TONR TxxxTxxx,PTPT;例:例:TONR T20TONR T20,63 63 3.2.5 定时器和计数器指令定时器和计数器指令(3)断开延时定时器指令:)断开延时定时器指令:TOF 用用于于断断开开后后的的单单一一间间隔隔定定时时。上上电电周周期期或或首首次次扫扫描描,定定时时器器位位OFFOFF,当当前前值值为为0 0。使使能能输输入入接接通通时时,定定时时器器位位为为ONON,当当前前值值为为0
10、 0。当当使使能能输输入入由由接接通通到到断断开开时时,定定时时器器开开始始计计数数,当当前前值值达达到到预预设设值值时时,定定时时器器位位OFFOFF,当前值等于预设值,停止计数。当前值等于预设值,停止计数。TOFTOF复复位位后后,如如果果使使能能输输入入再再有有从从ONON到到OFFOFF的负跳变,则可实现再次启动。的负跳变,则可实现再次启动。填填“计计定时器号定时器号”,如:如:T35T35填填“预设值预设值”,如:,如:100指令格式:指令格式:TOF TOF TxxxTxxx,PTPT;例例 TOF T35TOF T35,6 6 3.2.5 定时器和计数器指令定时器和计数器指令LD
11、I0.0/使能输入TONT35,+4/通电延时定时器,延时时间为40msLDI0.0/使能输入TONRT2.+10/有记忆通电延时定时器,/延时时间为1000msLDI0.0/使能输入TOFT36,+3/断电延时定时器,延时时间为30ms(4)应用)应用 举例举例:图3-21定时器特性 T35T35为通电延时定时器为通电延时定时器 T2T2为有记忆通电延时定时器为有记忆通电延时定时器 T36T36为断电延时定时器为断电延时定时器 3.2.5 定时器和计数器指令定时器和计数器指令u 上述梯形图程序中输入输出执行时序关系如图上述梯形图程序中输入输出执行时序关系如图3-22所示。所示。图3-22定时
12、器时序 返回返回3.2.5 定时器和计数器指令定时器和计数器指令(5)应用定时器指令应注意的几个问题)应用定时器指令应注意的几个问题 不不能能把把一一个个定定时时器器号号同同时时用用作作断断开开延延时时定定时时器器(TOFTOF)和接通延时定时器(和接通延时定时器(TONTON)。)。使使用用复复位位(R R)指指令令对对定定时时器器复复位位后后,定定时时器器位位位位“0 0”,定时器当前值为,定时器当前值为“0 0”。有有记记忆忆接接通通延延时时定定时时器器(TONRTONR)只只能能通通过过复复位位指指令令进进行复位。行复位。对对于于断断开开延延时时定定时时器器(TOFTOF),需需要要输
13、输入入端端有有一一个个负负跳跳变(由变(由onon到到offoff)的输入信号启动计时。的输入信号启动计时。不不同同精精度度的的定定时时器器,它它们们当当前前值值的的刷刷新新周周期期是是不不同同的的,具体情况如下:具体情况如下:3.2.5 定时器和计数器指令定时器和计数器指令v 1)1ms分辨率定时器分辨率定时器 1ms分辨率定时器启动后,定时器分辨率定时器启动后,定时器对对1ms的时间间隔(时基信号)进行计时。定时器当前值的时间间隔(时基信号)进行计时。定时器当前值每隔每隔1ms刷新一次,在一个扫描周期中要刷新多次,而不刷新一次,在一个扫描周期中要刷新多次,而不和扫描周期同步。和扫描周期同步
14、。v 2)10ms分辨率定时器分辨率定时器 10ms分辨率定时器启动后,定时分辨率定时器启动后,定时器对器对10ms的时间间隔进行计时。程序执行时,在每次扫的时间间隔进行计时。程序执行时,在每次扫描周期开始对描周期开始对10ms定时器刷新,在一个扫描周期内定时定时器刷新,在一个扫描周期内定时器当前值保持不变。器当前值保持不变。v 3)100ms分辨率定时器分辨率定时器 100ms分辨率定时器启动后,定分辨率定时器启动后,定时器对时器对100ms的时间间隔进行计时。只有在定时器指令执的时间间隔进行计时。只有在定时器指令执行时,行时,100ms定时器的当前值才被刷新。定时器的当前值才被刷新。3.2
15、.5 定时器和计数器指令定时器和计数器指令v 举例说明:举例说明:在图在图3-23a中,中,T32定时器定时器1ms更新一次。当更新一次。当定时器当前值定时器当前值100在图示在图示A处刷新,处刷新,Q0.0可以接通一个扫可以接通一个扫描周期,若在其他位置刷新描周期,若在其他位置刷新,Q0.0则用永远不会接通。而则用永远不会接通。而在在A处刷新的概率是很小的。若改为图处刷新的概率是很小的。若改为图3-23b,就可保证当就可保证当定时器当前值达到设定值时,定时器当前值达到设定值时,Q0.0会接通一个扫描周期。会接通一个扫描周期。图图3-23a3-23a同样不适合同样不适合10ms10ms分辨率定
16、时器。分辨率定时器。图3-231ms定时器编程 3.2.5 定时器和计数器指令定时器和计数器指令v 在子程序和中断程序中不易使用在子程序和中断程序中不易使用100ms定时器。子程序和中断程序定时器。子程序和中断程序不是每个扫描周期都执行的,那么在子程序和中断程序中的不是每个扫描周期都执行的,那么在子程序和中断程序中的100ms定定时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;在主程序中,不能重复使用同一个在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器的定时器号,否则该定时器指令在一个扫描周期中多次被执行
17、,定时器的当前值在一个扫描周期指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失准。因而,准。因而,100ms定时器只能用于每个扫描周期内同一定时器指令执定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合。行一次,且仅执行一次的场合。100ms定时器的编程例子如图定时器的编程例子如图3-24a所所示。示。a)b)图3-24100ms定时器的应用 返回返回3.2.5 定时器和计数器指令定时器和计数器指令2.计数器指令计数器指令 计计数数器器用用来来
18、累累计计输输入入脉脉冲冲的的次次数数。计计数数器器也也是是由由集集成成电电路路构构成,是应用非常广泛的编程元件,经常用来对产品进行计数。成,是应用非常广泛的编程元件,经常用来对产品进行计数。计计数数器器与与定定时时器器的的结结构构和和使使用用基基本本相相似似,编编程程时时输输入入它它的的预预设设值值PVPV(计计数数的的次次数数),计计数数器器累累计计它它的的脉脉冲冲输输入入端端电电位位上上升升沿沿(正正跳跳变变)个个数数,当当计计数数器器达达到到预预设设值值PVPV时时,发发出出中中断断请求信号,以便请求信号,以便PLCPLC作出相应的处理。作出相应的处理。计数器指令有计数器指令有3 3种:
19、增计数种:增计数CTUCTU、增减计数增减计数CTUDCTUD和减计数和减计数CTDCTD。指令操作数有指令操作数有4 4方面:方面:编号编号、预设值预设值、脉冲输入脉冲输入和和复位输入复位输入。3.2.5 定时器和计数器指令定时器和计数器指令1)编编号号:用用计计数数器器名名称称和和它它的的常常数数编编号号(最最大大255)来来表表示示,即即Cxxx,如如:C6。C6不不仅仅仅仅是是计计数数器器的的编编号号,它它还还包包含含两方面的变量信息:计数器位和计数器当前值。两方面的变量信息:计数器位和计数器当前值。计计数数器器位位:表表示示计计数数器器是是否否发发生生动动作作的的状状态态,当当计计数
20、数器器的的当当前值达到预设前值达到预设值值PV时,该位被置为时,该位被置为“1”。计计数数器器当当前前值值:存存储储计计数数器器当当前前所所累累计计的的脉脉冲冲个个数数,它它用用16位符号整数(位符号整数(INT)来表示,故最大计数值为来表示,故最大计数值为32767。2)预预设设值值PV:数数据据类类型型为为INT型型。寻寻址址范范围围可可以以是是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。和常数。3)脉冲输入:)脉冲输入:BOOL型,可以是型,可以是I、Q、M、SM、T、C、V、S、L和能流。和能流。3.2.5 定时器和计数器指令定时器和
21、计数器指令 4)复位输入:)复位输入:与脉冲输入同类型和范围。与脉冲输入同类型和范围。(1)增计数器指令:)增计数器指令:CTU CTU 首首次次扫扫描描,定定时时器器位位OFF,当当前前值值为为0。在在增增计计数数器器的的计计数数输输入入端端(CU)脉脉冲冲输输入入的的每每个个上上升升沿沿,计计数数器器计计数数1次次,当当前前值值增增加加1个个单单位位,当当前前值值达达到到预预设设值值时时,计计数数器器位位ON,当当前前值值继继续续计计数数到到32767停停止止计计数数。复复位位输输入入有有效效或或执执行行复复位位指指令令,计计数数器器自自动动复复位位,即即计计数数器器位位OFF,当前值为当
22、前值为0。指令格式:指令格式:CTU CTU CxxxCxxx,PVPV;例:例:CTU C20CTU C20,3 3 填填“计计数器器号数器器号”,如:如:C30C30填填“预设值预设值”,如:,如:3脉冲输入脉冲输入复位输入复位输入3.2.5 定时器和计数器指令定时器和计数器指令u应用举例:应用举例:LDI0.0/计数脉冲信号输入端LDI0.1/复位信号输入端CTUC20,+3/增计数,计数设定值为3个脉冲LDC20/装入计数器触点=Q0.0/输出触点图3-25增计数程序及时序 3.2.5 定时器和计数器指令定时器和计数器指令(2)增减计数器指令:)增减计数器指令:CTUD 该该指指令令有
23、有两两个个脉脉冲冲输输入入端端:CU输输入入端端用用于于递递增增计计数数,CD输输入入端端用用于于递递减减计计数数。首首次次扫扫描描,定定时时器器位位OFF,当当前前值值为为0。CU输输入入的的每每个个上上升升沿沿,计计数数器器当当前前值值增增加加1个个单单位位,CD输输入入的的每每个个上上升升沿沿,都都使使计计数数器器当当前前值值减减小小1个个单单位位,当当前前值达到预设值时,计数器位值达到预设值时,计数器位ON。增增减减计计数数器器计计数数到到32767(最最大大值值)后后,下下一一个个CU输输入入的的上上升升沿沿将将使使当当前前值值跳跳变变为为最最小小值值(32768);反反之之,当当前
24、前值值达达到到最最小小值值(32768)时时,下下一一个个CD输输入入的的上上升升沿沿将将使使当当前前值值跳跳变变为为最最大大值值(32767)。复复位位输输入入有有效效或或执执行行复复位位指指令令,计计数数器器自自动动复复位位,即即计计数数器器位位OFF,当前值为当前值为0。指令格式:指令格式:CTUD xCTUD x,PVPV;例:例:TUD C30TUD C30,5 5 返回返回3.2.5 定时器和计数器指令定时器和计数器指令LDI0.0/增计数输入端LDI0.1/减计数输入端LDI0.2/复位端CTUDC30,+5/增减计数,设定脉冲数为5LDC30/装入计数器触点=Q0.0/输出触点
25、 u应用应用举例:举例:图3-26增减计数程序及时序 3.2.5 定时器和计数器指令定时器和计数器指令(3)减计数器指令:)减计数器指令:CTD 首首次次扫扫描描,定定时时器器位位OFF,当当前前值值为为预预设设值值PV。计计数数器器检检测测到到CD输输入入的的每每个个上上升升沿沿时时,计计数数器器当当前前值值减减小小1个个单单位位,当当前前值值减减到到0时,计数器位时,计数器位ON。复复位位输输入入有有效效或或执执行行复复位位指指令令,计计数数器器自自动动复复位位,即即计计数数器器位位OFF,当当前前值值复复位位为为预预设设值值,而而不是不是0。指令格式:指令格式:CTD CTD CxxxC
26、xxx,PVPV;例:例:CTD C40CTD C40,4 4 3.2.5 定时器和计数器指令定时器和计数器指令u应用应用举例:举例:LDI0.0/减计数脉冲输入端LDI0.1/复位输入端CTDC40,+4/减计数器,设定计数脉冲/数为4LDC40/装入计数器触点=Q0.0/输出触点图3-27减计数程序及时序3.2.6 顺序控制继电器指令顺序控制继电器指令 u S7-200 CPU含有含有256个顺序控制继电器个顺序控制继电器(SCR)用于顺序控制。用于顺序控制。S7-200包含顺序控制指包含顺序控制指令,可以模仿控制进程的步骤,对程序逻辑分段;令,可以模仿控制进程的步骤,对程序逻辑分段;可以
27、将程序分成单个流程的顺序步骤,也可同时可以将程序分成单个流程的顺序步骤,也可同时激活多个流程;可以使单个流程有条件地分成多激活多个流程;可以使单个流程有条件地分成多支单个流程,也可以使多个流程有条件地重新汇支单个流程,也可以使多个流程有条件地重新汇集成单个流程。从而对一个复杂的工程可以十分集成单个流程。从而对一个复杂的工程可以十分方便地编制控制程序。方便地编制控制程序。u 系统提供系统提供3个顺序控制指令:顺序控制开始指令个顺序控制指令:顺序控制开始指令(LSCR)、)、顺序控制转移指令(顺序控制转移指令(SCRT)和顺序和顺序控制结束指令(控制结束指令(SCRE)。)。返回返回3.2.6 顺
28、序控制继电器指令顺序控制继电器指令1.顺序继电器指令顺序继电器指令(1)段开始指令:)段开始指令:LSCR(2)段结束指令:段结束指令:SCRE(3)段转移指令:段转移指令:SCRT 定定义义一一个个顺顺序序控控制制继继电电器器段段的的开开始始。操操作作数数为为顺顺序序控控制制继继电电器器位位Sx.ySx.y,Sx.ySx.y作作为为本本段段的的段段标标志志位位。当当Sx.ySx.y位位为为1 1时时,允许该允许该SCRSCR段工作。段工作。该该指指令令用用来来实实现现本本段段与与另另一一段段之之间间的的切切换换。操操作作数数为为顺顺序序控控制制继继电电器器位位Sx.ySx.y,Sx.ySx.
29、y是是下下一一个个SCRSCR段段的的标标志志位位。当当使使能能输输入入有有效效时时,一一方方面面对对Sx.ySx.y置置位位,以以便便让让下下一一个个SCRSCR段段开开始始工工作作,另另一一方方面面同同时时对对本本SCRSCR段段的的标标志志位位复复位位,以以便便本本段段停止工作。停止工作。一个一个SCRSCR段必须用该指令来结束。段必须用该指令来结束。返回返回3.2.6 顺序控制继电器指令顺序控制继电器指令2.使用顺序继电器指令的限制使用顺序继电器指令的限制 只只能能使使用用顺顺序序控控制制继继电电器器位位作作为为段段标标志志位位。一一个个顺顺序序控控制制继继电器位电器位Sx.ySx.y
30、在程序中只能使用一次。在程序中只能使用一次。在在一一个个SCRSCR段段中中不不能能出出现现跳跳入入、跳跳出出或或段段内内跳跳转转等等程程序序结结构构。即即在在段段中中不不能能使使用用JMPJMP和和LBLLBL指指令令。同同样样,在在一一个个SCRSCR段段中中不不允允许许出出现现循循环环程程序序结结构构和和条条件件结结束束,即即禁禁止止使使用用FORFOR、NEXTNEXT和和ENDEND指令。指令。指令格式:指令格式:LSCR bit LSCR bit (段开始指令)段开始指令)SCRT bit SCRT bit (段转移指令)段转移指令)SCRE SCRE (段结束指令)段结束指令)3
31、.2.6 顺序控制继电器指令顺序控制继电器指令3.顺序结构顺序结构 4.程序实例程序实例 根根据据舞舞台台灯灯光光效效果果的的要要求求,控控制制红红、绿绿、黄黄三三色色灯灯。要要求求:红红灯灯先先亮亮,2s2s后后绿绿灯灯亮亮,再再过过3s3s后后黄黄灯灯亮亮。待待红红、绿绿、黄灯全亮黄灯全亮3min3min后后,全部熄灭。程序如图全部熄灭。程序如图3-293-29所示。所示。说明:每一个说明:每一个SCRSCR程序段中均包含三个要素:程序段中均包含三个要素:1 1)输出对象:在这一步序中应完成的动作;)输出对象:在这一步序中应完成的动作;2 2)转移条件:满足转移条件后,实现)转移条件:满足
32、转移条件后,实现SCRSCR段的转移;段的转移;3 3)转移目标:转移到下一个步序。)转移目标:转移到下一个步序。一个一个SCRSCR段必须用该指令来结束。段必须用该指令来结束。3.2.6 顺序控制继电器指令顺序控制继电器指令LDI0.1ANQ0.0ANQ0.1ANQ0.2/在初始状态下起动,置SS0.1,1/S0.1=1LSCRS0.1/S0.1=1,激活第一SCR程序段,/进入第一步序LDSM0.0SQ0.0,1/红灯亮,并保持TONT37,+20/启动2s定时器LDT37/2s后程序转移到第二SCR段,SCRTS0.2/(S0.2=1,S0.1=0)SCRE/第一SCR段结束LSCRS0
33、.2/S0.2=1,激活第二SCR程序段,/进入第二步序LDSM0.0SQ1.1/绿灯亮,并保持TONT38,+30/启动3s定时器 LDI0.13.2.6 顺序控制继电器指令顺序控制继电器指令LDT38/3s后程序转移到第三SCR段,SCRTS0.3/(S0.3=1,S0.2=0)SCRE/第二SCR段结束LSCRS0.3/S0.3=1,激活第三SCR程序段,/进入第三步序LDSM0.0SQ0.2,1/黄灯亮,并保持TONT39,+1800/启动3min定时器LDT39/3min后程序转移到第四SCR段,SCRTS0.4/(S0.4=1,S0.3=0)SCRE/第三SCR段结束LSCRS0.
34、4/S0.4=1,激活第四SCR程序段,/进入第四步序LDSM0.0RS0.1,4RQ0.0,3/红、绿、黄灯全灭SCRE/第四SCR段结束 图3-29SCR指令编程 返回返回3.2.7 移位寄存器指令移位寄存器指令 u 移位指令都是对无符号数进行的处理,执移位指令都是对无符号数进行的处理,执行时只考虑要移位的存储单元的每一位数字行时只考虑要移位的存储单元的每一位数字状态,而不管数据的值的大小。本类指令在状态,而不管数据的值的大小。本类指令在一个数字量输出点对应多个相对固定状态的一个数字量输出点对应多个相对固定状态的情况下有广泛的应用。情况下有广泛的应用。返回返回3.2.7 移位寄存器指令移位
35、寄存器指令1.左移和右移左移和右移 左左移移和和右右移移根根据据所所移移位位的的数数的的长长度度分分别别又又可可分分为为字字节节型型、字字型型、双双字字型。型。移位特点:移位特点:移移位位数数据据存存储储单单元元的的移移出出端端与与SM1.1SM1.1(溢溢出出)相相连连,所所以以最最后后被被移移出出的位被放到的位被放到SM1.1SM1.1位存储单元。位存储单元。移移位位时时,移移出出位位进进入入SM1.1SM1.1,另另一一端端自自动动补补0 0。SM1.1SM1.1始始终终存存放放最最后后一一次次被移出的位。被移出的位。移移位位次次数数与与移移位位数数据据的的长长度度有有关关,如如果果所所
36、需需移移位位次次数数大大于于移移位位数数据据的的位数,则超出的次数无效。位数,则超出的次数无效。如果移位操作使数据变为如果移位操作使数据变为0 0,则零存储器位(,则零存储器位(SM1.0SM1.0)自动置位。自动置位。移位指令影响的特殊存储器位:移位指令影响的特殊存储器位:SM1.0SM1.0(零);零);SM1.1SM1.1(溢出)。溢出)。使使能能流流输输出出ENOENO断断开开的的出出错错条条件件:SM4.3SM4.3(运运行行时时间间);00060006(间间接接寻寻址)。址)。移位次数移位次数N N为字节型数据。为字节型数据。3.2.7 移位寄存器指令移位寄存器指令(1)字节左移和
37、字节右移指令:)字节左移和字节右移指令:SLB,SRB 使使能能输输入入有有效效时时,把把字字节节输输入入数数据据IN左左移移或或右右移移N位位后后,再再将将结结果果输输出出到到OUT所所指指的的字字节节存存储储单单元元(在在语语句句表表中中,IN与与OUT使用同一个单元)。最大实际可移位次数为使用同一个单元)。最大实际可移位次数为8。指令格式:指令格式:SLB OUTSLB OUT,N N (字节左移)字节左移)SRB OUTSRB OUT,N N (字节右移)字节右移)例:例:SLB MB0SLB MB0,2 2 SRB LB0 SRB LB0,3 33.2.7 移位寄存器指令移位寄存器指
38、令以第一条指令为例,指令执行情况如表以第一条指令为例,指令执行情况如表3-12所示所示 移位次数移位次数地址地址单元内容单元内容 位位SM1.1说说 明明0MB010110101X移位前(移位前(SM1.1不确定)不确定)1MB0011010101数左移,移出位数左移,移出位1进入进入SM1.1,右端补右端补02MB0110101000数左移,移出位数左移,移出位0进入进入SM1.1,右端补右端补0表3-12左移指令SLB执行结果(2 2)字左移和字右移指令)字左移和字右移指令:SLWSLW,SRW SRW 指指令令盒盒与与字字节节移移位位比比较较,只只有有名名称称变变为为SHLSHL W W
39、和和SHRSHR W W。最大实际可移位次数为最大实际可移位次数为1616。指令格式:指令格式:SLW OUTSLW OUT,N N (字左移)字左移)SRW OUTSRW OUT,N N (字右移)字右移)例:例:SLW MW0SLW MW0,2 2 SRW LW0 SRW LW0,3 3 返回返回3.2.7 移位寄存器指令移位寄存器指令以第二条指令为例,指令执行情况如表以第二条指令为例,指令执行情况如表3-133-13所示。所示。表3-13右移指令SRW执行结果 移位次数移位次数地址地址单元内容单元内容位位SM1.1说说 明明0LW01011010100110011 X移位前(移位前(SM
40、1.1不确定)不确定)1LW001011010100110011右移,右移,1进入进入SM1.1,左端补左端补0 2LW000101101010011001右移,右移,1进入进入SM1.1,左端补左端补03LW000010110101001100右移,右移,0进入进入SM1.1,左端补左端补03.2.7 移位寄存器指令移位寄存器指令指令格式:指令格式:SLD OUT,N (双字左移)双字左移)SRD OUT,N (双字右移)双字右移)例:例:SLD MD0,2 SRD LD0,3(3 3)双字左移和双字右移指令:)双字左移和双字右移指令:SLDSLD,SRD SRD 指指令令盒盒与与字字节节移
41、移位位比比较较,只只有有名名称称变变为为SHLSHL DWDW和和SHRSHR DWDW,其他部分完全相同。最大实际可移位次数为其他部分完全相同。最大实际可移位次数为3232。3.2.7 移位寄存器指令移位寄存器指令2.循环左移、循环右移循环左移、循环右移 循环移位特点:循环移位特点:移移位位数数据据存存储储单单元元的的移移出出端端与与另另一一端端相相连连,同同时时又又与与SM1.1SM1.1(溢溢出出)相相连连,所所以以最最后后被被移移出出的的位位被被移移到到另另一一端端的的同同时时,也也被被放放到到SM1.1SM1.1位位存存储单元。储单元。移移位位次次数数与与移移位位数数据据的的长长度度
42、有有关关,如如果果移移位位次次数数设设定定值值大大于于移移位位数数据据的的位位数数,则则执执行行循循环环移移位位之之前前,系系统统先先对对设设定定值值取取以以数数据据长长度度为为底底的的模模,用用小小于于数数据据长长度度的的结结果果作作为为实实际际循循环环移移位位的的次次数数。如如字字左左移移时时,若若移移位位次次数数设设定定为为3636,则则先先对对3636取取以以1616为为底底的的模模,得得到到小小于于1616的的结结果果4 4,故指令实际循环移位,故指令实际循环移位4 4次。次。如果移位操作使数据变为如果移位操作使数据变为0 0,则零存储器位(,则零存储器位(SM1.0SM1.0)自动
43、置位。自动置位。移位指令影响的特殊存储器位:移位指令影响的特殊存储器位:SM1.0SM1.0(零);零);SM1.1SM1.1(溢出)。溢出)。使使能能流流输输出出ENOENO断断开开的的出出错错条条件件:SM4.3SM4.3(运运行行时时间间);00060006(间间接接寻寻址)。址)。移位次数移位次数N N为字节型数据。为字节型数据。返回返回3.2.7 移位寄存器指令移位寄存器指令(1)字节循环左移和字节循环右移指令)字节循环左移和字节循环右移指令:RLB,RRB 指指令令盒盒与与字字节节移移位位比比较较,只只有有名名称称变变为为SHLSHL DWDW和和SHRSHR DWDW,其他部分完
44、全相同。最大实际可移位次数为其他部分完全相同。最大实际可移位次数为3232。指令格式:指令格式:RLB OUTRLB OUT,N N (字节循环左移)字节循环左移)RRB OUTRRB OUT,N N (字节循环右移)字节循环右移)例:例:RLB MB0RLB MB0,2 2 RRB LB0 RRB LB0,3 3 3.2.7 移位寄存器指令移位寄存器指令(2)字循环左移和字循环右移指令:)字循环左移和字循环右移指令:RLW,RRW 指指令令盒盒与与字字节节循循环环移移位位只只有有名名称称变变为为ROL W和和ROR W,其其他他部部分分完完全全相相同同。使使能能输输入入有有效效时时,把把字字
45、型型输输入入数数据据IN循循环环左左移移或或循循环环右右移移N位位后后,再再将将结结果果输输出出到到OUT所所指指的的字字存存储储单单元元(在在语语句句表表中中,IN与与OUT使使用用同同一一个个单单元元)。实际移位次数为设定值取以实际移位次数为设定值取以16为底的模所得的结果。为底的模所得的结果。指令格式:指令格式:RLW OUTRLW OUT,N N (字循环左移)字循环左移)RRW OUTRRW OUT,N N (字循环右移)字循环右移)例:例:RLW MD0RLW MD0,2 2 RRW LD0 RRW LD0,3 3 3.2.7 移位寄存器指令移位寄存器指令(3)双字循环左移和双字循
46、环右移指令:)双字循环左移和双字循环右移指令:RLD,RRD 指指令令盒盒与与字字节节循循环环移移位位只只有有名名称称变变为为ROL DW和和ROR DW,其其他他部部分分完完全全相相同同。使使能能输输入入有有效效时时,把把双双字字型型输输入入数数据据IN循循环环左左移移或或循循环环右右移移N位位后后,再再将将结结果果输输出出到到OUT所所指指的的双双字字存存储储单单元元(在在语语句句表表中中,IN与与OUT使使用用同同一一个个单单元元)。实实际际移移位位次次数数为为设设定定值值取取以以32为为底底的的模模所所得得的的结结果。果。指令格式:指令格式:RLD OUT,N (双字循环左移)双字循环
47、左移)RRD OUT,N (双字循环右移)双字循环右移)例:例:RLD MD0,2 RRD LD0,3 返回返回3.2.7 移位寄存器指令移位寄存器指令以指令以指令RRW LW0,3为例,指令执行情况如表为例,指令执行情况如表3-14所示。所示。表3-14指令RRW执行结果 移位次数移位次数地址地址单元内容单元内容位位SM1.1说说 明明0LW01011010100110011 X移位前(移位前(SM1.1不确定)不确定)1LW011011010100110011右端右端1移入移入SM1.1和和LW0LW0左端左端 2LW011101101010011001右端右端1移入移入SM1.1和和LW
48、0LW0左端左端3LW001110110101001100右端右端0移入移入SM1.1和和LW0LW0左端左端3.2.7 移位寄存器指令移位寄存器指令3.寄存器移位寄存器移位 SHRB,寄寄存存器器移移位位指指令令。该该指指令令在在梯梯形形图图中中有有3个个数数据据输输入入端端:DATA为为数数值值输输入入,将将该该位位的的值值移移入入移移位位寄寄存存器器;S BIT为为移移位位寄寄存存器器的的最最低低位位端端;N指指定定移移位位寄寄存存器器的的长长度度。每每次次使使能能输输入入有有效效时,整个移位寄存器移动时,整个移位寄存器移动1位。位。移位特点:移位特点:移移位位寄寄存存器器长长度度在在指
49、指令令中中指指定定,没没有有字字节节型型、字字型型、双双字型之分。可指定的最大长度为字型之分。可指定的最大长度为64位,可正也可负。位,可正也可负。移移位位数数据据存存储储单单元元的的移移出出端端与与SM1.1SM1.1(溢溢出出)相相连连,所所以以最后被移出的位被放到最后被移出的位被放到SM1.1SM1.1位存储单元。位存储单元。3.2.7 移位寄存器指令移位寄存器指令移移位位时时,移移出出位位进进入入SM1.1,另另一一端端自自动动补补以以DATA移移入入位位的值。的值。正正向向移移位位时时长长度度N为为正正值值,移移位位是是从从最最低低字字节节的的最最低低位位S BIT移移入入,从从最最
50、高高字字节节的的最最高高位位MSB.b移移出出;反反向向移移位位时时,长长度度N为为负负值值,移移位位是是从从最最高高字字节节的的最最高高位位移移入入,从从最最低低字字节的最低位节的最低位S BIT移出。移出。最最高高位位的的计计算算方方法法:(N的的绝绝对对值值1+(S BIT的的位位号号)/8,相相除除结结果果中中,余余数数即即是是最最高高位位的的位位号号,商商与与S BIT的的字字节号之和即是最高位的字节号。节号之和即是最高位的字节号。例例如如,如如果果S BIT是是V22.5,N是是8,那那么么MSB.b是是V23.4。具体计算如下:具体计算如下:MSB.bV22+(8-1+5)8V2