S7-200plc的基本指令及编程_第1页
S7-200plc的基本指令及编程_第2页
S7-200plc的基本指令及编程_第3页
S7-200plc的基本指令及编程_第4页
S7-200plc的基本指令及编程_第5页
已阅读5页,还剩308页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章S7-200的基本指令系统

及编程*位操作类指令*

运算类指令

数据处理类指令

表功能类指令

转换类指令7.1位操作类指令

1.指令格式及说明方式约定2.梯形图的基本绘制规则3.基本逻辑指令的作用及逻辑堆栈4.基本逻辑指令

位操作类指令,主要是指位操作及位运算指令,同时也包含与位操作密切相关的定时器和计数器指令。5.复杂逻辑指令6.定时器指令7.计数器指令8.比较指令一、指令格式及说明方式约定

1.本章所介绍的指令都给出了梯形图LAD、语句表STL两种最常用的编程语言的表达形式,部分指令给出了功能框图FBD形式,用以说明功能框图的应用特点。

2.输入和输出数据的寻址范围在部分指令中加以描述,以节省篇幅。

3.程序实例或应用实例中,一般是某个用户程序的程序片段,也有完整程序。

*为便于理解:左边--梯形图程序右边--对应的语句表程序及注释实际编程时只需选择一种编程语言即可。

4.用语句表编程时,可用2条或2条以上斜线开始为每个程序行加注释和说明。

5.用梯形图编程时,每条指令的EN和ENO的功能都相同,因此只在部分指令中加以描述。下面以整数加法指令为例,说明指令介绍的一般格式。整数加法指令为指令盒,指令名称?EN?ENO?IN1和IN2?数据类型?OUT?数据类型?当EN有效时执行整数加法操作,结果为IN1+IN2=OUT

在语句表STL中,整数加法指令为+IIN1,OUT执行结果为IN1+OUT=OUT**IN1和IN2的寻址范围:IW、QW、MW、SMW、SW、W、LW、AIW、T、C、AC,*VD、*AC常数。*********************************************************************OUT的寻址范围:IW、QW、MW、SMW、SW、W、LW、AIW、T、C、AC,*VD、AC**本指令的执行影响的特殊存储器位:SM1.0(零值标志)SM1.1(溢出标志)SM1.2(负值标志)**影响允许输出ENO正常工作的出错条件:

SM1.1(溢出标志)=1SM4.3(运行时发现编程错误标志)=1

出现错误代码0006(间接寻址错误)LDI0.0//使能输入端+IVW0,VW4//整数加法

//VW0+VW4=VW4二、梯形图的基本绘制规则

1.Network***Network为网络段,后面的***为网络段编号。

2.能流/使能在梯形图中有两种基本类型的输入输出,一种是能量流,另一种是数据。EN为能流输入,ENO为能流输出,均为布尔型数据。

3.编程顺序

梯形图按照从上到下,从左到右的顺序绘制。

4.编号分配对外部输入/输出设备分配编号,编号的分配必须是主机或扩展模块本身实际提供的,而且是用来进行编程的。

5.内、外触点的配合

在梯形图中选择输入继电器的触点类型(内部触点)与两方面的因素有关:一是输入设备的触点类型(外部触点)二是控制电路的实际通断要求。输入设备的触点类型与输入继电器触点类型的*异或结果*决定了控制电路的实际通断

6.触点的使用次数

在梯形图中,同一编程元件的常开(动合)、常闭(动断)触点可以任意多次重复使用,不受限制。(*第四章提到的软器件)

7.线圈的使用次数

在绘制梯形图时,*不同的多个继电器线圈可以并联输出,*但同一个继电器的线圈不能重复使用。

8.线圈的连接

----主要采用并联连接。三、基本逻辑指令的作用及逻辑堆栈基本逻辑指令在语句表中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。

堆栈是一组能够存储和取出数据的暂时存储单元。存取特点后进先出堆栈结构如下表所示。堆栈结构名称说明S0STACK0第一个堆栈(即栈顶)S1STACK1第二个堆栈S2STACK2第三个堆栈S3STACK3第四个堆栈S4STACK4第五个堆栈S5STACK5第六个堆栈S6STACK6第七个堆栈S7STACK7第八个堆栈S8STACK8第九个堆栈四、基本逻辑指令

主要包括标准触点指令、正负跳变指令置位和复位指令、立即指令主要是与位相关的输入输出及触点的简单连接。1.标准触点指令

LD、LDN、A、AN、O、ON、NOT、=这些指令对存储器位在逻辑堆栈中进行操作,如果数据类型是输入继电器I或输出继电器Q,则从映像寄存器存取数值。

操作数为BOOL型,编址范围:I、Q、M、SM、T、C、S、V、L。

LD,装入常开触点(LoaD)

指令格式:LDbitLDN,装入常闭触点(LoaDNot)

指令格式:LDNbit梯形图中每个从左母线开始的*单一逻辑行*、*每个程序块(逻辑梯级)的开始*、*指令盒的输入端*都必须使用LD和LDN这两条指令。这两条指令对各类内部编程元件的触点都适用

A

串联一个常开触点(And)。可连续使用,但是由于打印纸宽度限制,梯形图每行串联不要超过8个元件

指令格式:Abit*******************************AN

串联一个常闭触点(AndNot)可连续使用,但是使用原则同A。指令格式:ANbitO并联一个常开触点(Or)可连续使用,但由于打印纸长度限制,梯形图每个网络并联不要超过8个元件指令格式:Obit*************************************************************************************ON并联一个常闭触点(OrNot)可连续使用,但是使用原则同O。指令格式:ONbitNOT

触点取非(输出反相)在梯形图中用来改变能流的状态取非触点左端的逻辑运算结果为1时(即有能流),触点断开能流,反之能流可以通过。指令格式:NOT(NOT指令无操作数)=

输出指令将逻辑运算结果输出到指定存储器位或输出映像寄存器,以驱动线圈指令格式:=bit

在语句表中,LD、LDN、A、AN、O、ON、NOT这几条指令的执行对逻辑堆栈的影响分别如表5.4、表5.5其后的说明。

A

I0.2的执行程序实例:介绍标准触点指令在梯形图、语句表和功能块图3种语言编程中的应用。其梯形图和语句表程序如图所示。其功能块图和语句表程序如图所示。Q0.0=(I0.0+I0.1)*I0.2Q0.3=Q0.1Q0.1=(I0.0+I0.1)*I0.2Q0.0Q0.3I0.0I0.1I0.22.正负跳变指令在梯形图中以触点形式表示用于检测脉冲的正跳变(上升沿)或负跳变(下降沿)利用跳变让能流接通一个扫描周期,即可以产生一个扫描周期长度的微分脉冲常用此脉冲触发内部继电器线圈。EU正跳变指令正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。指令格式:EU(无操作数)ED负跳变指令。负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。指令格式:ED(无操作数)应用举例:下图是跳变指令的程序片断和指令执行的时序。LDI0.0EU=Q0.0--------------------LDI0.0ED=Q0.13.置位和复位指令

置位即置1,复位即置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。S置位指令将位存储区的指定位(位bit)开始的N个同类存储器位置位指令格式:

Sbit,NR复位指令将位存储区的指定位(位bit)开始的N个同类存储器位复位。如果是对定时器T位或计数器C位进行复位,则定时器位或计数器位被复位,同时,定时器或计数器的当前值被清零。指令格式: Rbit,NSbit,NRbit,N注意:在存储区的一位或多位被置位后,不能自己恢复,必须用复位指令使之由1跳回到0。Q1.0=I0.0*I0.1Q0.0(SET)=I0.0*I0.1Q0.2-Q0.4(RESET)=I0.0*I0.1

I0.0I0.1Q0.0Q1.0Q0.2-Q0.4立即指令允许对输入和输出点进行快速和直接存取当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应的输出寄存器的内容也被刷新。4.立即指令注意:只有输入继电器I和输出继电器Q可以使用立即指令。

LDI、LDNI、AI、ANI、OI和ONI立即触点指令指令格式:LDIbit

注意:bit只能是I类型=I,立即输出指令。指令格式:

=Ibit

注意:bit只能是Q类型SI,立即置位指令。指令格式:SIbit,N注意:bit只能是Q类型RI,立即复位指令。指令格式:RIbit,N注意:bit只能是Q类型Q0.0

=

I0.0(LD)Q0.1

=I

I0.0Q0.2,1

SII0.0Q0.3

=

I0.0(LDI)五、复杂逻辑指令

主要用来对触点进行复杂连接对逻辑堆栈也可以实现非常复杂的操作

ALD,栈装载与指令(与块)在梯形图中用于并联电路块的串联连接。指令格式:ALD

2.OLD,栈装载或指令(或块)

在梯形图中用于串联电路块的并联连接。指令格式:OLD

在语句表中指令ALD、OLD执行情况如下表所示。名称执行前执行后说明STACK010假设执行前,S0=1,S1=0本指令对堆栈中的栈顶S0和S1的值进行逻辑与运算,结果放回栈顶。即S0=S0*S1=1*0=0执行完本指令后堆栈串行上移一格,深度减1STACK10S2STACK2S2S3STACK3S3S4STACK4S4S5STACK5S5S6STACK6S6S7STACK7S7S8STACK8S8X指令ALD名称执行前执行后说明STACK011假设执行前,S0=1,S1=0本指令对堆栈中的栈顶S0和S1的值进行逻辑或运算,结果放回栈顶。即S0=S0+S1=1+0=0执行完本指令后堆栈串行上移一格,深度减1STACK10S2STACK2S2S3STACK3S3S4STACK4S4S5STACK5S5S6STACK6S6S7STACK7S7S8STACK8S8X指令OLD

3.LPS,逻辑推入栈指令

在梯形图的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。指令格式:LPS4.LPP,逻辑弹出栈指令

在梯形图的分支结构中,用于将LPS指令生成的母线进行恢复。指令格式:LPP

在语句表中指令LPS、LPP执行情况如下表所示注意:使用LPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP。即LPS与LPP指令必须成对出现。名称执行前执行后说明STACK011假设执行前,S0=1本指令对堆栈中的栈顶S0进行复制,并将这个复制值由栈顶压入堆栈。即:S0=S0=1执行完本指令后堆栈串行下移一格,深度加1,原来的栈底S8内容将自动丢失STACK1S11STACK2S2S1STACK3S3S2STACK4S4S3STACK5S5S4STACK6S6S5STACK7S7S6STACK8S8S7指令LPS名称执行前执行后说明STACK011假设执行前,S0=1,S1=1本指令将堆栈的栈顶S0弹出,用以进行本指令之后的操作。即:S0=S1=1执行完本指令后堆栈串行上移一格,深度减1,栈底S8内容将生成一个随机值XSTACK11S1STACK2S1S2STACK3S2S3STACK4S3S4STACK5S4S5STACK6S5S6STACK7S6S7STACK8S7X指令LPP

5.LRD,逻辑读栈指令在梯形图的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。

指令格式:LRD

在语句表中指令执行情况如下表所示。

6.LDS,装入堆栈指令

编程时较少使用

指令格式:LDSn

(n为0-8的整数)

在语句表中LRD、LDS执行情况如下表所示名称执行前执行后说明STACK010假设执行前,S0=1,S1=0本指令将堆栈中的第二层S1的值进行复制,然后将这个复制值放入栈顶S0,本指令不对堆栈进行压入和弹出操作。即:S0=S1=0执行完本指令后堆栈不串行上移或下移,除栈顶值之外,其他部分的值不变STACK100STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S8指令LRD名称执行前执行后说明STACK010假设执行前,S0=1,S4=0本指令对堆栈中的第五层S4的值进行复制,并将这个复制值由栈顶压入堆栈。即:S0=S4=0执行完本指令后堆栈串行下移一格,深度加1,原来的栈底S8内容自动丢失STACK1S11STACK2S2S1STACK3S3S2STACK40S3STACK5S50STACK6S6S5STACK7S7S6STACK8S8S7指令LDS4右图是复杂逻辑指令在实际应用中的一段程序基本逻辑指令程序示例例7-4边沿微分指示LDI0.1EU=M0.0LDM0.0SQ0.01LDI0.2ED=M0.1LDM0.1RQ0.01例7-5简单的报警电路例7-6用置位、复位指令实现顺序控制LDI0.0ANM0.0SM0.0,2LDM0.1AV0.1RM0.1,1SM0.2,1LDM0.2AV0.2RM0.2,1SM0.3,1LDM0.3AV0.3RM0.3,1RM0.0,1例7-7二分频电路(a)(b)例7-8采用顺序控制思想,应用置位、复位指令和边沿微分指令实现多分频控制7.2定时器指令S7-200提供3种定时器指令:TON、TONR和TOF。每种定时器有3个精度等级:1ms、10ms和100ms,定时器精度等级和地址编号之间的关系如下表所示。定时器类型精度等级ms最大当前值(s)定时器号

TONR132.767T0,T6410327.67T1~T4,T65~T68

1003276.7T5~T31,T69~T95TON/TOF

132.767T32,T96

10327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255指令格式TONTxxx,PTPT用于单一间隔的定时上电周期或首次扫描时,状态位OFF,当前值为0。TON,接通延时定时器指令允许输入接通时,状态位OFF,当前值从0开始定时,当前值达到预设值时,状态位ON,当前值继续递增到32767并保持。允许输入断开时定时器自动复位,即状态位OFF,当前值为0。

例:TONT35,+40允许输入再次接通时,当前值从保持值继续定时,当累积当前值达到预设值时,状态位ON,当前值继续计数到32767并保持。TONR,接通延时保持定时器指令指令格式:

TONRTxxx,PT例TONRT2,+100TONR只能用复位指令进行复位用于多个间隔的累积定时上电周期或首次扫描时,状态位OFF,当前值为0允许输入接通时,状态位OFF,当前值从0开始定时。允许输入断开时状态位和当前值保持最后状态

用于单个间隔的定时

上电周期或首次扫描时,状态位OFF,当前值为0

允许输入接通时,状态位ON,当前值为0。允许输入断开时,定时器从0开始定时,当前值达到预设值时,状态位OFF,当前值保持预设值,停止定时。TOF,断电延时定时器指令指令格式:

TOFTxxx,PT例:TOFT36,+3LDI0.0TONT35,+4(T=4*10ms)LDI0.0TONRT2,+4(T=10*10ms)LDI0.0TOFT36,+4(T=3*10ms)例1:有的厂商提供的PLC只有TON定时器,因此,在这种情况下可以利用TON来构造断电延时型的各种触点。用TON构造各种类型的时间继电器触点例2:用通电延时定时器与输出继电器组成带瞬动触点的定时器本程序实现的功能是:用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0.0断开。利用常开触点实现通电和断电都延时的触点作用LDI0.0//启动定时TONT33,+100//一级通电

//延时时间为1000msLDT33//启动定时TONT34,+200//二级通电

//延时时间为2000ms例3:扩大延时范围。

例4:三台电动机按顺序起动。电机M1先起动,运行20秒后,M2起动,再经30秒后,M3起动。LDM0.0=Q0.1//M1通电TONT40,+200//延20sLDT40=Q0.2//M2通电TONT41,+300//延30sLDT41=Q0.37.3、计数器指令S7-200提供3种计数器指令:CTU、CTD和CTUD1)首次扫描时,状态位OFF,当前值为0;2)在脉冲输入的每个上升沿,当前值增加1;3)当前值达到预设值时,状态位ON,当前值继续计数到32767停止;4)复位输入有效或执行复位指令,计数器自动复位,即状态位OFF,当前值为0例:CTUC20,+3

1.CTU,增计数器指令指令格式:CTUCxxx,PVCU:计数脉冲-信号输入端R:复位信号输入端CUCTURPV+3C20I0.0I0.1C20Q0.0网络

2网络

1I0.0I0.1C20当前值C20位1)首次扫描时,状态位OFF,当前值等于预设值PV。2)在脉冲输入的每个上升沿,计数器当前值减1,当前值减到0时,状态位ON。3)装载输入有效或执行复位指令时,计数器自动装载,即状态位OFF,当前值为预设值。2.CTD,减计数器指令指令格式:CTDCxxx,PV

例:CTDC40,+4首次扫描时,状态位OFF,当前值为0。有两个脉冲输入端:CU用于递增计数,CD用于递减计数当前值达到预设值时,状态位ON。复位输入有效或执行复位指令时,计数器自动复位,即状态位OFF,当前值为0。3.CTUD增减计数器指令指令格式:CTUDCxxx,PV

例:CTUDC30,+5I0.0I0.1I0.2C30Q0.0C30CTUDCUCDRPV+5LDI0.0LDI0.1LDI0.2CTUD30,+5LDC30=Q0.0CU--I0.0CD---I0.1

RESET---I0.2PV=5I0.0I0.1I0.2C30当前值C30位I0.0T37C1Q0.0例1.用计数器和定时器配合增加延时时间7.4、比较指令用于两个相同类型数据大小的比较判断,结果为真时,允许能流通过。1字节比较指令

指令格式:

LDB= VB10, VB12AB<> MB0, MB1OB<= AC1, 116LDB>SB1,MB62整数比较指令指令格式:

LDW=VW10, VW12AW<>MW0, MW4OW<= AC2, 1160双整数比较指令指令格式:

LDD= VD10, VD14AD<> MD0, MD8OD<= AC0, 1160000LDD>= HC0, *AC0实数比较指令指令格式:

LDR= VD10, VD18AR<> MD0, MD12OR<= AC1, 1160.478AR> *AC1, VD100例:一自动仓库存放货物,最多6000箱现在需要对所存的货物进出计数,货物多于1000箱时灯L1亮;货物多于5000箱时灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制;数值1000和5000分别存储在VW20和VW30字存储单元中。Q0.0Q0.1

I0.0I0.1

I0.2C30

CUCDCTUDRPV+10000C30>=IVW20

C30>=IVW207-21用比较指令实现脉冲输出电路I0.0T37Q0.0例7-18用按钮控制一盏灯,按下5次后灯亮,再按3次后灯灭,依次循环反复。(用计数指令完成)I0.0C0当前值C1当前值C0计数器位C1计数器位例7-22用按钮控制一盏灯,按下5次后灯亮,再按3次后灯灭,依次循环。(用比较指令完成)例7-23十字路口交通灯的控制。东西向绿灯Q0.0东西向黄灯Q0.1东西向红灯Q0.2南北向绿灯Q0.3南北向黄灯Q0.4南北向红灯Q0.57.5数据处理类指令

数据处理类指令包括传送、移位、字节交换、循环移位和填充指令。一、传送类指令指令格式:MOVBIN,OUTMOVWIN,OUT

允许输入有效时,将1个字节型(或字长)数据传送到OUT指定的字节(或字)存储单元。例:MOVWVW0,VW41.单一传送指令格式:MOVDIN,OUTMOVRIN,OUT

允许输入有效时,将1个双字长(或实数)数据传送到OUT指定的双字存储单元。例:MOVRVD0,VD4指令格式:BIRIN,OUTBIWIN,OUT

允许输入有效时,立即读取外部输入字节单元的内容传给OUT字节单元(或把一个字节的数据立即传送到外部输出字节)。例:BIRIB0,VB4BIWMB2,QB0指令格式:BMBIN,OUT,NBMWIN,OUT,NBMDIN,OUT,N

允许输入有效时,将从IN开始的N个字节型(或字长、双字长)数据传送到OUT开始的N个字节(或字、双子)存储单元。例:BMBVB0,VB40,202.块传送二转换类指令

数值量数据类型转换编码和译码七段码数值量数据字符串数据的转换转换包括一、数值量数据类型转换指令1.字节型与整型转换指令指令格式:BTIIN,OUTITBIN,OUT

允许输入有效时,将字节型输入转换成整型输出(或将整型输入转换成字节型输出)。例:BTIAC0,VW10

2.整型与双整型转换指令指令格式:ITDIN,OUTDTIIN,OUT

允许输入有效时,将整型输入转换成双整型输出(或将双整型输入转换成整型输出)。例:ITDVW10,AC0

3.双整型与实数型转换指令指令格式:DTRIN,OUTROUNDIN,OUTTRUNCIN,OUT

允许输入有效时,将双整型输入转换成实数型输出(或将实数型输入转换成双整型输出)。例:ROUNDVD10,AC0

4.整型与BCD码转换指令指令格式:IBCDOUTBCDIOUT允许输入有效时,将整型输入转换成BCD码输出(或将BCD码输入转换成整型输出)。例:IBCDAC0

二、编码与译码指令1.编码指令指令格式:ENCOIN,OUT允许输入有效时,将字型输入的最低有效位(值为1的位)的位号进行编码,结果放入OUT字节单元的低4位。例:ENCOAC0,VB02.译码指令指令格式:DECOIN,OUT允许输入有效时,将字节型输入的低4位内容翻译成位号,然后对字型输出的对应位置1.例:DECOVB0,AC0三、七段码指令指令格式:SEGIN,OUT允许输入有效时,将字节型输入的低4位所表示的数值转换成相应的七段码,存放到OUT指定的字节单元。例:SEGVB0,AC0

四、数值量数据与字符串数据转换指令

1.ASCII码转换16进制指令

2.16进制到ASCII码

3.整数到ASCII码

4.双整数到ASCII码

5.实数到ASCII码1.ASCII码转换成16进制数指令指令格式:ATHIN,OUT,LEN允许输入有效时,把从IN指定字节开始的,长度为LEN的ASCII码转换为16进制数,结果存放到OUT开始的字节单元。例:ATHVB10,VB20,3

7.7、移位指令7.7.1左移、右移指令左移、右移指令的功能是将输入数据向左或向右移动N位后,将结果送入OUT中移位时,移出位进入SM1.1,另一端自动补零。例如右移时,移位数据的最右端位移入SM1.1,左端每次补零。SM1.1始终存放最后一次被移除的位。移位次数如果大于移位数据的位数,超出次数无效。移位指令影响的特殊存储器位:SM1.0(零)SM1.1(溢出)ENO断开的出错条件:SM4.3(运行时间)0006(间接寻址)移位次数N为字节型数据指令格式:SLBOUT,NSRBOUT,N

允许输入有效时,将1个字节型数据右移(或左移)N位。例:SLBMB0,2SRBMB1,31.字节移位指令移位次数地址单元内容位SM1.1说明0MB010110101X移位前1MB0011010101数左移,移出位1进入SM1.1,右端补02MB0110101000数左移,移出位0进入SM1.1,右端补0指令格式:SLWOUT,NSRWOUT,N

允许输入有效时,将1个字型数据左移(或右移)N位。例:SLWVW0,2SRWLW0,32.字移位指令移位次数地址单元内容位SM1.1说明0LW01011010100110011X移位前1LW001011010100110011右移,1进入SM1.1,左端补02LW000101101010011001右移,1进入SM1.1,左端补03LW000010110101001100右移,0进入SM1.1,左端补0指令SRW执行结果指令格式:SLDOUT,NSRDOUT,N

允许输入有效时,将1个双字型数据左移(或右移)N位。例:SLDVD0,2SRDMD4,33.双字移位指令左移、右移指令示例LDI0.0EUSRBMB1,1MOVWVW100,VW102SLWVW102,1移位前MB1:01011101移位后MB1:00101110SM1.1:1移位前VW100:1100010111010001传送指令VW102:1100010111010001移位后VW102:1000101110100010SM1.1:17.7.2循环移位指令循环左移、右移指令的功能是将输入数据向左或向右循环移动N位后,将结果送入OUT中移位时,移位数据存储单元的移出端与另一端相连,同时也与SM1.1相连,移出位被移到另一端的同时,也进入SM1.1。例如右移时,移位数据的最右端位移入最左端,同时也进入SM1.1,SM1.1始终存放最后一次被移除的位。移位次数如果大于移位数据的位数,系统将自动求取实际循环次数。移位指令影响的特殊存储器位:SM1.0(零)SM1.1(溢出)ENO断开的出错条件:SM4.3(运行时间)0006(间接寻址)移位次数N为字节型数据指令格式:RLBOUT,NRRBOUT,N

允许输入有效时,将1个字节型数据循环左移(或右移)N位。例:RLBMB0,2RRBLB0,31.字节循环移位指令指令格式:RLWOUT,NRRWOUT,N

允许输入有效时,将1个字型数据循环左移(或右移)N位。例:RLWMW0,2RRWLW0,32.字循环移位指令移位次数地址单元内容位SM1.1说明0LW01011010100110011X移位前1LW011011010100110011右端1移入SM1.1和LW0左端2LW011101101010011001右端1移入SM1.1和LW0左端3LW001110110101001100右端0进入SM1.1和LW0左端指令RRW执行结果指令格式:RLDOUT,NRRDOUT,N

允许输入有效时,将1个双字型数据循环左移(或右移)N位。例:RLDMD0,2RRDLD0,33.双字循环移位指令7.7.3移位寄存器指令移位寄存器SHRB使用比较灵活,移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。移位时,移位数据存储单元的移出端与SM1.1相连,移出位被移至SM1.1,另一端自动补以DATA移入位的值。移位方向分为正向和反向。正向移位时长度N为正值,移位是从最低字节的最低位S-BIT移入,从最高字节的最高位移出;反向移位时长度N为正负值,移位是从最高字节的最高位移入,从最低字节的最低S-BIT位移出;最高位的计算方法:MSB字节号=S-BIT字节号+{〔(N的绝对值-1)+S-BIT位号〕/8}的商MSB位号={〔(N的绝对值-1)+S-BIT位号〕/8}的余数允许输入有效时,如果是正向移位,则移位寄存器的内容由低向高移动1位;如果是反向移位,则移位寄存器的内容由高向低移动1位。7.移位寄存器指令指令格式:SHRBDATA,S_BIT,N例:SHRBI0.5,V20.0,5脉冲数I0.5值VB20内容位SM1.1说明0110110101X移位前.移位时,从V20.4移出111010101111移入SM1.1,I0.5的脉冲值进入右端201011011100移入SM1.1,I0.5的脉冲值进入右端301010111011移入SM1.1,I0.5的脉冲值进入右端SHRBI0.5,V20.0,5Q0.3Q0.2Q0.1Q0.0MSBLSBI0.0Q0.0Q0.1Q0.2Q0.3用一个开关控制6盏灯。开关闭合时,依次点亮开关断开时,按相反顺序依次熄灭,间隔1秒。其控制要求为:第1根亮→第2根亮→第3根亮……第8根亮,即每隔1

s依次点亮,全亮后,闪烁1次(灭1

s亮1

s),再反过来按8→7→6→5→4→3→2→1反序熄灭,时间间隔仍为1

s。全灭后,停1

s,再从第1根灯管点亮,开始循环。图8-1某广告牌霓虹灯广告牌循环彩灯的PLC控制应用举例1.系统I/O分配输入信号输出信号名称功能编号名称功能编号SB1启动I0.0KA1~KA8控制8根霓虹灯管Q0.0~Q0.7SB2停止I0.12.PLC电气接线图3.控制程序三、字节交换指令指令格式:SWAPIN

允许输入有效时,将字型输入数据的高位字节与低位字节内容进行交换。例:SWAPVW10时间单元地址单元内容说明执行前VW101011010100000001交换指令执行前执行后VW100000000110110101执行交换指令,将高、低字节的内容交换指令SWAP执行结果四、填充指令指令格式:FULLIN,OUT,N

允许输入有效时,将单字长数据IN填充到OUT开始的N个字存储单元。例:FILL1000,VW100,127.6运算类指令

一、加法二、减法三、乘法四、除法运算类指令包括算术运算指令和逻辑运算指令。算术运算包括加、减、乘、除、数学函数和增减运算;逻辑运算包括与、或、非和异或运算。五、数学函数六、增减七、逻辑运算+IIN1,OUT允许输入有效时,将两个单字长(16位)的有符号整数相加,产生一个16位整数和结果。例+IVW0,VW41.+I

整数加法一、加法运算指令LDI0.0//使能输入端+IVW0,VW4//整数加法

//VW0+VW4=VW4I0.0ADD_IADD_IENENOVW0VW4VW4IN1IN2OUT允许输入有效时,将两个双字长(32位)的有符号双整数相加,产生一个32位双整数和结果。2.+D,双整数加法指令格式:

+DIN1,OUT例:+DVD0,VD4允许输入有效时,将两个双字长(32位)的实数相加,产生一个32位实数和结果。3.+R,实数加法指令格式:

+RIN1,OUT例:+RVD0,VD4二、减法运算指令允许输入有效时,将两个单字长(16位)的有符号整数相减,产生一个16位整数差结果。1.-I,整数减法指令格式:-IIN2,OUT例:-IAC0,VW4允许输入有效时,将两个双字长(32位)的有符号双整数相减,产生一个32位双整数差结果。2.-D,双整数减法指令格式:-DIN2,OUT例:-DAC0,VD4指令格式:

-RIN2,OUT

允许输入有效时,将两个双字长(32位)的实数相减,产生一个32位实数差结果。3-R,实数减法例:-RAC0,VD4三、乘法运算指令格式:*IIN1,OUT

允许输入有效时,将两个单字长(16位)的有符号整数相乘,产生一个16位整数积结果。1.*I,整数乘法例:*IAC0,VW4指令格式:*DIN1,OUT

允许输入有效时,将两个双字长(32位)的有符号双整数相乘,产生一个32位双整数积结果。2.*D,双整数乘法例:*DAC0,VD4指令格式:*RIN1,OUT

允许输入有效时,将两个双字长(32位)的实数相乘,产生一个32位实数积结果。3.*R,实数乘法指令例:*RAC0,VD4四、除法运算指令指令格式:

/IIN2,OUT

允许输入有效时,将两个单字长(16位)的有符号整数相除,产生一个16位整数商结果。1./I,整数除法指令例/IAC0,VW4指令格式:

/DIN2,OUT

允许输入有效时,将两个双字长(32位)的有符号双整数相除,产生一个32位双整数商结果。2./D,双整数除法指令例:/DAC0,VD4指令格式:/RIN2,OUT

允许输入有效时,将两个双字长(32位)的实数相除,产生一个32位实数商结果。3./R,实数除法指令例:/RAC0,VD4指令格式:MULIN1,OUT

允许输入有效时,将两个单字长(16位)的有符号整数相乘,产生一个32位双整数积结果。MUL,整数完全乘法例MULVW0,VD2指令格式:DIVIN2,OUT

允许输入有效时,将两个单字长(16位)的有符号整数相除,产生一个32位的余数和商结果。DIV

整数完全除法例DIVVW0,VD2LDI0.0MOVWVW10,VW32MULVW20,VD30MOVWAC0,VW202DIVVW100,VD200五、数学函数指令指令格式:SQRTIN,OUT

允许输入有效时,将一个双字长(32位)的实数开平方,产生一个32位实数平方根结果。1.SQRT,求平方根例:SQRTAC0,VD4指令格式:LNIN,OUT

允许输入有效时,将一个双字长(32位)的实数求自然对数,产生一个32位实数结果。LN求自然对数例:LNAC0,VD4指令格式:EXPIN,OUT

允许输入有效时,将一个双字长(32位)的实数求自然指数,产生一个32位实数结果。3.EXP求自然指数例:EXPAC0,VD44.SIN、COS、TAN,分别为正弦、余弦、正切指令例:SINAC0,VD4指令格式:SININ,OUTCOSIN,OUTTANIN,OUT

允许输入有效时,将一个双字长(32位)的实数求三角函数,产生一个32位实数结果。

六、增减指令1.INCB、DECB,分别为字节增、减指令指令格式:INCBOUTDECBOUT

允许输入有效时,将一个字节长(8位)的无符号数增加1、减少1,产生一个8位无符号数结果。

例:

INCBVB4指令格式:INCWOUTDECWOUT

允许输入有效时,将一个字长(16位)的无符号数增加1、减少1,产生一个16位无符号数结果。例:

INCWVW42.INCW、DECW字增、减指令指令格式:INCDOUTDECDOUT

允许输入有效时,将一个双字长(32位)的无符号数增加1、减少1,产生一个32位无符号数结果。3.INCD、DECD双字增、减指令例:INCDVD100LDI0.0LDC30CTU,+24LDC30INCD

D100七、逻辑运算指令1.字节逻辑运算指令指令格式:ANDBIN1,OUTORBIN1,OUTXORBIN1,OUTINVBOUT允许输入有效时,将两个(或1个)字节型数据按位进行逻辑运算,产生一个字节型数据结果。例:ANDBVB0,AC1ORBVB0,AC0指令操作数地址单元单元长度

(n字节)运算前值运算结果值1)IN1VB010101001101010011IN2(OUT)AC1111110001010100012)IN1VB010101001101010011IN2(OUT)AC0100110110011101113)IN1VB010101001101010011IN2(OUT)AC2111011010100010014)IN(OUT)VB1010101001110101100指令格式:ANDWIN1,OUTORWIN1,OUTXORWIN1,OUTINVWOUT2.字逻辑运算指令允许输入有效时,将两个(或1个)字型数据按位进行逻辑运算,产生一个字型数据结果。例:ANDWVW0,AC1ORWVW0,AC0允许输入有效时,将两个(或1个)双字型数据按位进行逻辑运算,产生一个双字型数据结果。例:ANDDVD0,AC1ORDVD0,AC03.双字逻辑运算指令指令格式:ANDDIN1,OUTORDIN1,OUTXORDIN1,OUTINVDOUTLDI0.0MOVBMB1,MB3ANDBMB2,MB3ORWVW100,VW102MOVDVD200,VD208XORDVD204,VD208MOVBVB10,AC0INVBAC07.8

程序控制类指令

空操作指令

结束及暂停指令

看门狗复位指令

跳转指令

子程序指令

程序循环指令

顺序控制继电器指令

与ENO指令7.8.1结束指令

指令格式:END(无操作数)

MEND(无操作数)

END,条件结束指令。允许输入有效时,终止主程序执行,返回主程序起点。MEND,无条件结束指令。终止主程序的执行,返回主程序起点用Micro/Win32编程时,编程人员不需手工输入MEND指令。注意事项1.结束指令只能用在主程序中,不能用在子程序和中断程序中,而条件结束指令可用在无条件结束前结束主程序;2.调试程序时,在程序的适当位置插入无条件结束指令,可分段调试程序;3.可以利用程序的结果状态、系统状态或外部设置等作为条件结束指令的输入;4.使用编程软件编程时,不需手工输入无条件结束指令,编译时会自动添加到到主程序的结尾。7.8.2、子程序指令

建立子程序子程序调用带参数的子程序调用1.建立子程序

可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。2.子程序调用

子程序调用指令

CALLSBR_n子程序条件返回指令

CRET子程序无条件返回指令

RET下图所示的程序实现用外部控制条件分别调用两个子程序。

调用带参数的子程序时需要设置调用的参数,参数在子程序的局部变量表中定义参数由地址、参数名称、变量类型和数据类型描述。子程序最多可传递16个参数。3.带参数的子程序调用

参数名称最多用8个字符表示,第一个字符不能是数字。变量类型:传入子程序参数(IN)、传入和传出子程序参数(IN/OUT)、传出子程序参数(OUT)、暂时变量(TEMP)4种类型。4种变量类型的参数在局部变量表中的位置必须按IN、IN/OUT、OUT、TEMP的先后顺序排列。数据类型:布尔型、字节型、字型、双字型、整型、双整型、实型。字节型、字型、双字型分别指明一个1、2或4字节的无符号整数参数。整型、双整型分别指明2或4字节的有符号整数参数。实型数据类型指明4字节的单精度IEEE浮点参数局部变量表L地址参数名参数类型数据类型说明无ENINBOOL指令使能输入参数,由系统自动分配L0.0in1INBOOL第一个参数,输入布尔类型,分以L0.0变量LB1in2INBYTE第二个参数,字节类型LD2in3INREAL第三个参数,实型I0.0I0.2SBR_0ENin1in2in3VB20VD30LDI0.0CALLSBR_0,I0.2,VB20,VD30七、程序循环指令

循环开始指令FORINDX,INIT,FINAL循环结束指令NEXT一、空操作指令

NOP,空操作指令。允许输入有效时,执行空操作指令。空操作指令不影响用户程序的执行,操作数N是标号,是一个0—255的常数。指令格式: NOP N例: NOP30 STOP,暂停指令。允许输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令的执行不考虑对特殊标志寄存器位和能流的影响。指令格式:STOP(无操作数)返回本节暂停指令

注意事项STOP指令可以用在主程序、子程序和中断程序中;在中断程序或子程序中执行STOP指令时,中断程序或子程序立即终止,并忽略全部等待执行的中断,返回主程序继续执行主程序的剩余部分,并在主程序的结束处,完成从RUN方式到STOP方式的转换。四、看门狗复位指令

WDR,看门狗复位指令。当允许输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式:WDR (无操作数)程序实例:指令STOP、END、WDR的应用如下图所示。LDSM5.0//检查I/O错误O SM4.3//运行时刻检查

//编程O I0.3//外部切换开关STOP //条件满足,由RUN//切换到STOP方式

LD I0.5 //外部停止控制END//停止程序执行

//LDM0.4//用触点重新触发WDR //看门狗定时器五、跳转指令

跳转开始指令JMPn。允许输入有效时,使程序流程跳到指定标号n处执行。执行跳转指令时,逻辑堆栈的栈顶值总是1。跳转标号指令LBLn。标记程序段,作为跳转指令执行时跳转到的目的位置,取值0--255。注意事项1.跳转指令和标号指令只能使用在同一程序块中,不能在不同的程序块中互相跳转;2.执行跳转后,被跳过程序段的各元器件的状态为:Q、M、S、C等元器件的位保持跳转前状态;计数器C停止计数,当前值保持跳转前的状态;对定时器来说,因刷新方式不同而工作状态不同。注意事项1.如果起动了FOR/NEXT循环,除非在循环内部修改了结束值,否则循环就一直进下去,直到结束;2.再次启动时,它将初始值INIT传送到指针INDX中;3.FOR指令必须和NEXT指令配套使用;4.FOR和NEXT允许循环嵌套,最多可嵌套8层,但各个嵌套之间一定不可有交叉现象。八、顺序控制继电器指令段开始指令

LSCRS*.*段转移指令

SCRTSx.x段结束指令

SCRE注意事项1.顺序控制继电器指令仅对S有效;2.不能把同一个S位用于不同的程序中;3.在顺序控制继电器指令段不能使用跳转指令和标号指令;4.在顺序控制继电器指令段不能使用FOR,NEXT和END指令;5.在状态位发生转移后,所有的段的元件一般也要复位,如果希望继续输出,可使用置位/复位指令。例:根据舞台灯光效果的要求,控制红、绿、黄三色灯。要求:红灯先亮,2s后绿灯亮,再过3s后黄灯亮。待红、绿、黄灯全亮3min后,全部熄灭。试用顺序控制指令设计其控制程序。九、与ENO指令

ENO梯形图和功能块图编程时指令盒的布尔能流输出端。如果指令盒的能流输入有效,同时执行没有错误,ENO就置位,将能流向下传递。当用梯形图编程时,且指令盒后串联一个指令盒或线圈,语句表语言中用AENO指令描述。指令格式:AENO(无操作数)AENO

只能在语句表中使用,将栈顶值和ENO位进行逻辑与运算,结果保存到栈顶。5.2特殊指令

时钟指令

中断指令

通信指令

高速计数器指令

高速脉冲输出指令

PID回路指令

一、时钟指令

TODR,读实时时钟指令。允许输入有效时,系统读当前时间和日期,装入一个以T为起始字节的8字节缓冲区TODW,写实时时钟指令。用来设定实时时钟。允许输入有效时,系统将包含当前时间和日期的一个8字节缓冲区将装入时钟。

时钟缓冲区字节TT+1T+2T+3T+4T+5T+6T+7含义年月日小时分钟秒0星期几范围00~9901~1201~3100~2300~5900~59001~07例:控制要求:编写一段程序,可实现读、写实时时钟,并以BCD码显示分钟。时钟缓冲区从VB100开始。程序中的子程序SBR_0为写时钟子程序,将当前时间写入从VB100开始的8字节时间缓冲区,时间设置如下表所示。程序实现:读写时钟程序下图所示读写时钟二、中断指令1.中断源及种类中断源,即中断事件发出中断请求的来源。S7-200具有最多34个中断源,每个中断源都分配一个编号用以识别,称为中断事件号。这些中断源大致分为三大类:通信中断、输入/输出中断、时基中断2.中断优先级中断优先级由高到低依次是:通信中断输入/输出中断时基中断每类中断中的不同中断事件又有不同的优先级。主机中的所有中断事件及优先级如下表所示。中断事件及优先级中断事件及优先级队列CPU221CPU222CPU224CPU226通信中断队列4448I/O中断队列16161616定时中断队列8888中断队列和每个队列的最大中断数

队列SM位通信中断队列溢出SM4.0I/O中断队列溢出SM4.1定时中断队列溢出SM4.2中断队列的溢出位

3.中断调用即响应中断程序,使系统对特殊的内部或外部事件作出响应。系统响应中断时自动保护现场。中断处理完成时,又自动恢复现场。中断调用指令:中断允许指令(ENI),中断禁止指令(DISI),中断连接指令(ATCH),中断分离指令(DTCH),中断返回指令(CRETI、RETI)进入RUN模式时,所有中断被禁止,ENI指令可以全局地允许所有被连接的中断事件。DISI指令全局性地允许中断排列等候,但不允许执行中断程序,直到用全局中断允许指令ENI重新激活中断。把一个中断事件(EVNT)和一个中断程序(INT)连接起来,并允许这个中断事件。中断分离指令DTCH用来断开一个中断事件(EVNT)和所有的中断程序(INT)之间的联系,并禁止了该中断事件。在控制它的逻辑条件满足时,从中断程序返回。编程软件自动为各中断程序添加无条件返回指令。中断调用程序4.中断程序中断程序必须由三部分构成:中断程序标号、中断程序指令和无条件返回指令。要求编制方法注意事项三、通信指令

XMT,自由口发送指令

RCV,自由口接收指令

NETR,网络读指令

NETW,网络写指令

GPA,获取口地址指令四、高速计数器指令

高速计数器介绍高速计数器指令高速计数器的使用方法应用实例1.高速计数器介绍

数量及编号中断事件类型工作模式及输入点

(1)数量及编号高速计数器在程序中使用时的地址编号用HSCn来表示,HSC表编程元件名称为高速计数器,n为编号。HSCn除了表示高速计数器的编号之外,还代表两方面的含义:高速计数器位和高速计数器当前值。编程时,从所用的指令可以看出是位还是当前值。(2)中断事件类型高速计数器的计数和动作可采用中断方式进行控制,与CPU的扫描周期关系不大,高速计数器的中断事件大致分为3类:当前值等于预设值中断、输入方向改变中断和外部复位中断。所有高速计数器都支持当前值等于预设值中断。每个高速计数器的3种中断的优先级由高到低,不同高速计数器之间的优先级又按编号顺序由高到低。具体对应关系如下表所示。(3)工作模式及输入点工作模式输入端连接高速计数器的工作模式共有12种。以模式4为例,时序如下图所示。HSC0HSC3HSC4HSC5模式I0.0I0.1I0.2I0.1I0.3I0.4I0.5I0.40时钟时钟时钟时钟1时钟复位时钟复位3时钟方向时钟方向4时钟方向复位时钟方向复位6加时钟减时钟加时钟减时钟7加时钟减时钟复位加时钟减时钟复位9A相时钟B相时钟A相时钟B相时钟10A相时钟B相时钟复位A相时钟B相时钟复位HSC1HSC2模式I0.6I0.7I1.0I1.1I1.2I1.3I1.4I1.50时钟时钟1时钟复位时钟复位2时钟复位启动时钟复位启动3时钟方向时钟方向4时钟方向复位时钟方向复位5时钟方向复位启动时钟方向复位启动6加时钟减时钟加时钟减时钟7加时钟减时钟复位加时钟减时钟复位8加时钟减时钟复位启动加时钟减时钟复位启动9A相时钟B相时钟A相时钟B相时钟10A相时钟B相时钟复位A相时钟B相时钟复位11A相时钟B相时钟复位启动A相时钟B相时钟复位启动模式4操作时序选用某个高速计数器在某种工作模式下工作时,高速计数器的输入端不是任意选择的,必须按系统指定的输入点。具体分配如下表所示。2.高速计数器指令

HDEFHSC,MODE

定义高速计数器指令。允许输入有效时,为指定的高速计数器分配一种工作模式。HSC表示高速计数器编号,取值0-5,MODE表示工作模式,取值0-11。

HSCN

高速计数器指令。允许输入有效时,根据高速计数器配套的控制字节,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作。N表示高速计数器编号,为0-5.每个高速计数器都有固定的特殊继电器与之相配合,完成高速计数功能。具体对应关系如下表所示。3.高速计数器的使用方法

HSC0HSC1HSC2HSC3HSC4HSC5描述SM36.5SM46.5SM56.5SM136.5SM146.5SM156.5计数方向标志0=减数器1=加计数SM36.6SM46.6SM56.6SM136.6SM146.6SM156.6当前值等于预置值标志SM36.7SM46.7SM56.7SM136.7SM146.7SM156.7当前值大于预置值标志状态字节含义控制字节含义选择高速计数器及工作模式设置控制字节执行HDEF指令设定当前值和预设值设置中断事件并全局开中断执行HSC指令使用高速计数器的步骤4.应用实例

要对一高速事件进行精确控制,通过对脉冲输出信号进行增计数,计数当前值达到24时产生中断,HSC重新从0开始计数,中断次数需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论