第5章-S7-200PLC的指令系统_第1页
第5章-S7-200PLC的指令系统_第2页
第5章-S7-200PLC的指令系统_第3页
第5章-S7-200PLC的指令系统_第4页
第5章-S7-200PLC的指令系统_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

S7-200PLC指令系统第五章一、编程语言(一)梯形图(LAD)编程语言

梯形图是与电气控制电路图相呼应的图形语言。它来源于继电器逻辑控制系统的描述。(二)功能块图(FBD)

功能块图类似于普通逻辑概念图,沿用了半导体逻辑电路的逻辑框图表达方式。(三)语句表(STL)

语句表程序设计语言是用布尔助记符来描述程序的一种程序设计语言,计算机中的汇编语言非常相似,目前已经可以应用高级语言。

语句表可以编写梯形图或功能块无法实现的程序。第一节S7-200PLC编程的基本概念图5-1功能块图(FBD)二、数据类型1、基本数据类型1位布尔型(BOOL)8位字节型(BYTE)16位无符号整数型(WORD)16位有符号整数型(INT)32位无符号双字整数型(DWORD)32位有符号双字整数型(DINT)32位实数型(REAL)。实数型(REAL)是按照NSI/IEEE754—1985标准(单精度)的表示格式规定。

(一)基本数据类型及数据类型检查表5-22、数据类型检查(1)PLC对数据类型检查有助于避免常见的编程错误。分为三级:完全数据类型检查、简单数据类型检查和无数据类型检查。(2)S7-200PLC的SIMATIC指令集不支持完全数据类型检查。使用局部变量时,执行简单数据类型检查;使用全局变量时,指令操作数为地址而不是可选的数据类型时,执行无数据类型检查。表5-1表5-3(二)数据长度与数值范围表5-4数据长度与数值数据的数值范围:无符号数为0~2n,有符号数为-2n-1~2n-1。注意实数的数值范围-1038~1038。

程序区用于存放用户程序,存储器为EEPROM。

系统区用于存放有关PLC配置结构的参数,如PLC主机及扩展模块的I/O配置和编址、配置PLC站地址,设置保护口令、停电记忆保持区、软件滤波功能等,存储器为EEPROM。

数据区是S7-200CPU提供的存储器的特定区域。它包括输入映象寄存器(I)、输出映像寄存器(Q)、变量存储器(V)、内部标志位存储器(M)、顺序控制继电器存储器(S)、特殊标志位存储器(SM)、局部存储器(L)、定时器存储器(T)、计数器存储器(C)、模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)、累加器(AC)、高速计数器(HC)。存储器为EEPROM和RAM。三、存储器区域

PLC的存储器分为程序区、系统区、数据区。(一)数据区存储器的地址表示格式

存储器是由许多存储单元组成,每个存储单元都有惟一的地址,可以依据存储器地址来存取数据。数据区存储器地址的表示格式有位、字节、字、双字地址格式。1、位地址格式某一位的地址由存储器区域标识符、字节地址及位号构成,如V5.4,I0.0等。图5-2存储器中的位字地址(1)字节编址的指定方式为:(区域标志符)B(字节号),如IB0表示由I0.0~I0.7这8位组成的字节。(2)字编址的指定方式为:(区域标志符)W(起始字节号),且最高有效字节为起始字节。例如VW100表示由VB100和VB101这2字节组成的字。(3)双字编址的指定方式为:(区域标志符)D(起始字节号),且最高有效字节为起始字节。例如VD100表示由VB100到VB103这4字节组成的双字。2、字节、字、双字地址格式3、其他地址格式

数据区存储器区域中,还包括定时器存储器(T)、计数器存储器(C)、累加器(AC)、高速计数器(HC)等,它们是模拟相关的电器元件的。它们的地址格式为:Ay。

由区域标识符A和元件号y组成,例T24表示某定时器的地址,T是定时器的区域标识符,24是定时器号,同时T24又可表示此定时器的当前值。(二)数据区存储器区域1、输入/输出映像寄存器(I/Q)(1)输入映像寄存器(I)

PLC的输入端子输入映像寄存器(I)的相应位。输入映像寄存器的状态只能由外部输入信号驱动,而不能在内部由程序指令来改变。位地址:I[字节地址].[位地址],如I0.1;字节、字、双字地址:I[数据长度][起始字节地址],如IB4、IW6、ID10。(2)输出映像寄存器(Q)

每一个输出模块的端子与输出映像寄存器的相应位相对应。CPU将输出判断结果存放在输出映像寄存器中,在扫描周期的结尾,CPU以批处理方式将输出映像寄存器的数值复制到相应的输出端子上。

在程序的执行过程中,对于输入或输出的存取通常是通过映像寄存器,而不是实际的输入、输出端子。S7-200CPU执行有关输入输出程序时的操作过程如图所示。

2、内部标志位存储器(M)内部标志位存储器(M)也称内部线圈,是模拟继电器控制系统中的中间继电器,它存放中间操作状态,或存储其它相关数据。如M26.7,MB11,MW23,MD26。3、变量存储器(V)变量存储器(V)存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其他相关数据。变量存储器全局有效。全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断程序)被访问。如V10.2,VB20,VW100,WD320。4、局部存储器(L)局部存储器(L)存放局部变量,是局部有效的。局部有效是指某一局部存储器只能在某一程序分区(主程序或子程序或中断程序)中使用。如L0.0,LB33,LW44,LD55。6、特殊标志位存储器(SM)特殊标志位(SM)即特殊内部线圈,它是用户与系统程序之间的界面。

SM0.0RUN监控,PLC在RUN方式时,SM0.0总为1;

SM0.1初始脉冲,SM0.1接通一个扫描周期;

SM0.3PLC上电进入RUN方式时,SM0.3接通一个扫描周期;

SM0.5秒脉冲,占空比为50%,周期为1s的脉冲。5、顺序控制继电器存储器(S)顺序控制继电器(S)用于顺序控制(或步进控制)。顺序控制继电器指令(SCR)基于顺序功能图(SFC)的编程方式。SCR指令提供控制程序的逻辑分段,从而实现顺序控制。如S3.1,SB4,SW10,SD21。7、定时器(T)定时器是模拟继电器控制系统中的时间继电器。时基有三种:1ms、10ms、100ms。定时器存储器地址表示格式为:T[定时器号],如T24。S7-200PLC定时器存储器的有效地址范围为:T(0~255)。8、计数器(T)计数器是累计其计数输入端脉冲电平由低到高的次数,有三种类型:增计数、减计数、增减计数。计数器存储器地址表示格式为:C[计数器号],如C3。S7-200PLC计数器存储器的有效地址范围为:C(0~255)。9、模拟量输入映像寄存器(AI)模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理。如AIW0,AIW2,AIW4等。10、模拟量输出映像寄存器(AO)

CPU运算结果存放在模拟量输出映像寄存器(AQ)中,供D/A转换器将1个字长的数字量转换成模拟量。如AQW0,AQW2,AQW4等。11、累加器(AC)累加器用来暂存计算中间值的存储器,也可向子程序传递参数或返回参数。S7-200CPU累加器:AC0、AC1、AC2、AC3。

累加器是可读写单元,可以按字节、字、双字存取累加器中的数值。由指令标识符决定存取数据的长度,例如,MOVB指令存取累加器的字节,DECW指令存取累加器的字,INCD指令存取累加器的双字。按字节、字存取时,累加器只存取存储器中数据的低8位、低16位;以双字存取时,则存取存储器的32位。12、高速计数器(HC)高速计数器用来累计高速脉冲信号,当高速脉冲信号频率比CPU扫描速率更快时,必须使用高速计数器。CPU226高速计数器:HC(0~5)。

四、寻址方式指令中如何提供操作数或操作数地址,称为寻址方式。S7-200PLC的寻址方式有:立即寻址、直接寻址、间接寻址。

(一)立即寻址指令直接给出操作数,操作数紧跟着操作码。十进制常数:30112十六进制常数:16#42FASCII常数:‘INPUT’实数或浮点常数:+1.112E-10

二进制常数:2#0101

1110#为常数的进制格式说明符

(二)直接寻址指令直接给出操作数的地址的寻址方式称为直接寻址。有按位、字节、字、双字的寻址方式。位寻址:ANDQ5.5字节寻址:ORBVB33,LB21字寻址:MOVWAC0,AQW2双字寻址:MOVDAC1,VD200(三)间接寻址间接寻址通过使用地址指针来存取存储器中的数据。在S7-200中允许使用指针对I、Q、M、V、S、T、C(仅当前值)存储区进行间接寻址。1、建立指针

间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元(最大为双字型32位)的物理地址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,AC0不能用作间接寻址的指针。2、指针建立好后,利用指针存取数据3、修改指针在取连续地址的存储单元中数据时,通过修改指针可以非常方便地存取数据。修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加1(或减1);若对字进行存取、或对定时器、计数器的当前值进行存取,指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图5-5

使用指针间接寻址

把VB200的地址送入AC1建立指针

把指针处的值送到AC0

本指令是MOVW,为字型长度,则AC0的高16位空闲未用;若是MOVD双字型指令,则将VB200∼VB203的内容(即12345678)送到AC0

这里给出的是起始字节地址,而并不表示数据长度(由随后间接存取指令类型决定)为字型。所以,如果改为&VB200或&VD200效果完全相同。把指针增加两次,指向下一个字

把AC1(VW202)所指向的字数值送到AC0

图5-6

存取数据值时指针的修改

五、用户程序的结构

用户程序可分为三个程序分区:主程序、子程序(可选)和中断程序(可选)。主程序(OB1):是用户程序的主体。CPU在每个扫描周期都要执行一次主程序指令。子程序:是程序的可选部分,主程序调用时才能够执行。中断程序:是程序的可选部分,只有当中断事件发生时,才能够执行。中断程序可在扫描周期的任意点执行。第二节S7-200PLC的基本指令及编程方法常开触点I0.0触点地址编号I0.1常闭触点触点地址编号I0.0Q0.0标准线圈线圈地址编号()1)外接输入电路闭合时,输入映像寄存器为“1”状态,梯型图中对应的“-||-”接通,“-|/|-”断开。2)外接输入电路断开时,输入映像寄存器为“0”状态,梯型图中对应的“-||-”

断开,“-|/|-”

闭合。3)梯形图中某一个线圈“通电”时,对应的输出映像寄存器的位为“1”,对应外部的负载通电工作。4)梯形图中某一个线圈“断电”时,对应的输出映像寄存器的位为“0”,对应外部的负载断电,停止工作。一、基本逻辑指令逻辑关系梯形图助记符I0.0I0.1LD I0.0A I0.1= Q0.0与AND当I0.0与I0.1

都“ON”时,则输出Q0.0

“ON”(1)。Q0.0()LD I0.0O I0.1= Q0.0或OR当I0.0

或I0.0

“ON”时,则输出Y0

“ON”(1)I0.0I0.1Q0.0()LDN

I0.1= Q0.0非NOT当I0.1

“OFF”时则输出Q0.0

“ON”(1)Q0.0I0.1()逻辑关系梯形图助记符LD I0.0O I0.1LD I0.2O I0.3ALD=Q0.0当“I0.0或I0.1”与“I0.2

或I0.3”

都“ON”时,则输出Y0

“ON”。区块与ALD(AndStack)区块或OLD(OrStack)当“I0.0

与I0.1”或“I0.2

与I0.3非”

“ON”时,则输出Q0.0

“ON”。I0.0I0.1I0.2I0.3Q0.0I0.0I0.2I0.1I0.3Q0.0LD I0.0O I0.1LD I0.2O I0.3OLD=Q0.0例1:直接启动停车控制I/O分配:I0.0:停车I0.1:启动Q0.1:KM语句表LDI0.1OQ0.0AI0.0=Q0.0继电器控制电路图I/O分配决定PLC的端子接线图PLC的端子接线方式又决定编程语言I/O分配:I0.0:停车I0.1:启动Q0.1:KMQ0.0I0.0Q0.0I0.1置位、复位指令硬件接线及I/O分配连续按钮SB1-I0.0点动按钮SB2-I0.1停止按钮SB3-I0.2SB1KM1SB2SB3电源Q0.0L+I0.0I0.1I0.21LFR正确的程序分析、程序扫描周期的理解连续按钮SB1-I0.0点动按钮SB2-I0.1停止按钮SB3-I0.2SB1KM1SB2SB3电源Q0.0L+I0.0I0.1I0.21LFR接触器联锁正反转控制电路电动机的正反转控制FUKM1QS正转接触器反转接触器L1L2L3主电路KM2FRM3~注意调相电动机的正反转控制I/O接线图正转启动SB2-I0.0反转启动SB3-I0.1

停止SB1-I0.2KM2SB2KM1SB3SB1KM2KM1电源FR正转接触器KM1-Q0.0反转接触器KM2-Q0.1正转互锁反转互锁Q0.0L+I0.0I0.1I0.2Q0.11L电动机的正反转控制梯形图正转反转I0.1Q0.1I0.0Q0.0I0.2Q0.1()I0.0Q0.0I0.1Q0.1I0.2Q0.0()注意图中两个自保持回路的不同!KM2SB2KM1SB3SB1KM2KM1电源FRQ0.0L+I0.0I0.1I0.2Q0.11L二、立即I/O指令(一)立即输入指令在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但不刷新相应映像寄存器的值。(二)立即输出指令用立即指令访问输出点时,把栈顶值立即复制到指令所指定的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。(三)立即置位和立即复位指令用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。用立即复位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即复位,同时,相应的输出映像寄存器的内容也被刷新。说明:立即I/O指令是直接访问物理输入输出点的,比一般指令访问输入输出映像寄存器占用CPU时间要长,不能盲目使用。例:三、逻辑堆栈指令逻辑堆栈指令只用于语句表(STL)编程,使用梯形图(LAD)、功能块(FBD)编程时,编辑器会自动插入相关的指令处理堆栈操作。四、取非触点指令和空操作指令

取非触点可以改变能流的状态。触点左侧为1时,右侧为0,能流就停止;触点左侧为0时,右侧为1,能流就通过。

空操作(NOPN)指令不影响程序的执行,操作数N是一个0~255之间的常数。五、正/负跳变触点指令正跳变触点检测到脉冲的每一次正跳变后,产生一个扫描周期的脉冲。指令格式:负跳变触点检测到脉冲的每一次负跳变后,产生一个扫描周期的脉冲。指令格式:应用举例:六、定时器和计数器指令输入接点设定值:1~32767定时器号码(0~255)INPTT37TON定时器的实际设定时间:T=设定值PT×分辨率

类型TON:接通延时定时器

TOF:断开延时定时器

TONR:有记忆接通延时定时器(一)定时器指令TS=5×0.1=0.5s1、接通延时定时器其工作波形图如下:计时值设定值Q0.1(T37)I1.0TST37TONPTINI1.05()T37Q0.1首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位为ON,当前值连续计数到32767。使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。

其工作波形图如下:输入端Q0.1当前值设定值TS=120*10msM0.1TONRPTINI0.1120T4()T4Q0.1()T4R1M0.1最大值327671202、有记忆接通延时定时器首次扫描,定时器位OFF,当前值保持,使能输入接通时,定时器位为OFF,当前值从保持值开始计数时间,当前值达到预设值时,定时器位为ON,当前值连续计数到32767。定时器用复位指令清除当前值。

TS3、断开延时定时器(TOF)TOFPTINI1.28T97()T97Q0.1TS=1200*0.1=120S上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。其工作波形图如下:I1.2Q0.1计时值设定值TS串电阻降压起动硬件接线图及程序(二)计数器指令定时器是对PLC内部的时钟脉冲进行计数,而计数器是对外部的或由程序产生的计数脉冲进行计数。计数器用来累计输入脉冲的次数,经常用来对产品进行计数。计数器与定时器的结构和使用基本相似,编程时输入它的预设值PV(计数的次数),计数器累计它的脉冲输入端电位上升沿(正跳变)个数,当计数器达到预设值PV时,发出中断请求信号,以便PLC作出相应的处理。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。当前值等于或大于设定值时,计数器位被置为“1”。1、增计数器CTU指令首次扫描,定时器位OFF,当前值为0。脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。2、增/减计数器(CTUD)指令增计数减计数复位C(0~255)I2.0I1.1I1.2当前值输出端当前值

首次扫描,定时器位OFF,当前值为0。当前值等于或大于预设值时,计数器位ON。

增减计数器计数到32767(最大值)后,下一个CU输入的上升沿将使当前值跳变为最小值(–32768);反之,当前值达到最小值(–32768)时,下一个CD输入的上升沿将使当前值跳变为最大值(32767)。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。3、减计数器CUPVC(0~255)LD复位,装设定值计脉冲数设定值CTD首次扫描,定时器位OFF,当前值为预设值PV。计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。无复位端,在装载输入端接通时,使计数器复位并把设定值装入当前寄存器中。计数器应用举例:产品数量检测产品通过检测器PH机械手KM1KM2传送带电机PLC的I/O分配:I0.0—传送带停机按钮I0.1—传送带起动按钮I0.2—产品通过检测器PHQ0.0—传送带电机KM1Q0.1—机械手KM2T37—定时器,定时2秒C20—计数器,初始值24(每24个产品机械手动作1次)机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20复位后,Q0.1和T37也复位 电机起动后,Q0.0产生宽度为一个扫描周期的正脉冲,使C20和T37复位起、停传送带电机计数器应用举例:产品数量检测Q0.0Q0.0I0.224C20T3720C20Q0.1每检测到一个产品,I0.2产生一个正脉冲,使C20计一个数C20每计24个数,机械手动作一次机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20

复位后,Q0.1和T37也复位 ()I0.0I0.1C20CUPVCTUR()INPTTONT37T37PQ0.0七、顺序控制继电器指令(一)SCR指令的功能1、SCR程序段的S位置位时,允许该程序段工作;2、SCRT指令一方面使当前激活的SCR程序段S位复位,以使该程序段停止工作,另一方面使下一个将要执行的SCR程序段S位置位;3、SCRE指示一个SCR程序段结束。(二)使用SCR指令的限制只能使用顺序控制继电器位作为段标志位,同一地址的S位不可用于不同的程序分区;在一个SCR段中不能使用JMP、LBL、FOR、NEXT、END指令。所谓顺序控制,是生产过程按工艺要求事先安排的顺序自动地进行控制。(三)SCR指令的编程举例根据舞台灯光效果的要求,控制红、绿、黄三色灯。要求:红灯先亮,2s后绿灯亮,再过3s后黄灯亮。待红、绿、黄灯全亮3min后,全部熄灭。程序如图5-29所示。说明:每一个SCR程序段中均包含三个要素:1)输出对象:在这一步序中应完成的动作;2)转移条件:满足转移条件后,实现SCR段的转移;3)转移目标:转移到下一个步序。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.2//S0.2=1,激活第二SCR程序段,

//进入第二步序LDSM0.0SQ1.1//绿灯亮,并保持TONT38,+30//启动3s定时器

I0.1:启动;Q0.0:红灯;Q0.1:绿灯;Q0.2:黄灯。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.4//S0.4=1,激活第四SCR程序段,

//进入第四步序LDSM0.0RS0.1,4RQ0.0,3//红、绿、黄灯全灭SCRE//第四SCR段结束图5-29SCR指令编程八、移位寄存器指令移位寄存器指令可用来进行顺序控制、物流及数据流控制。S_BIT指定移位寄存器的最低位,N指定寄存器的长度;正数表示正向移动,N为负数表示反向移动;N为字节型数据类型,最大长度为64位。EN端每个上升沿采样。SM1.1→→九、比较触点指令☆比较指令为上、下限控制提高了方便,实际上是一个比较触点。该指令是将两个操作数按指定的关系比较,比较关系成立则比较触点闭合。☆比较运算符有:=、>=、<=、>、<和<>(<>表示不等于)。☆比较指令的类型有:字节比较、整数比较、双字整数比较和实数比较。应用举例

一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。LDI0.0//增计数出入端LDI0.1//减计数出入端LDI0.2//复位出入端CTUDC30,+10000//增减计数,设定脉冲数为10000

LDW>=C30,VW20//比较计数器,当前值是否大于等

//于VW20中的值=

Q0.0//输出触点

LDW>=C30,VW30//比较计数器,当前值是否大于等

//于VW30中的值=

Q0.1//输出触点程序举例

一、传送指令第三节S7-200PLC的功能指令MOV_DWENINOUTENOMOV_WENINOUTENOMOV_BENINOUTENOMOV_RENINOUTENO数据块传送指令把从输入(IN)指定地址的N个连续字节、字、双字的内容传送到从输出(OUT)指定地址开始的N个连续字节、字、双字的存储单元中去。BLKMOV-DWENINOUTENONBLKMOV-WENINOUTENONBLKMOV-BENINOUTENON(二)数据块传送指令(一)数据传送指令如果功能框允许输入端(EN)存在“能流”,且功能框准确无误地执行了其功能,那么允许输出端(ENO)将把“能流”传到下一个功能框,此时,ENO=1。如果执行错误,那么“能流”就在出现错误的功能框终止,即ENO=0。(三)字节交换指令交换字节指令,把输入端(IN)指定字的高字节内容与低字节内容相交换,交换结果仍存在输入端(IN)指定的地址中。无符号整数型(WORD)。(四)传送字节立即读、写指令MOV-BIRENINOUTENOMOV-BIWENINOUTENO

传送字节立即读(BIR)指令,读取输入端(IN)指定字节地址的物理输入点(IB)的值,并写入输出端(OUT)指定字节地址的存储单元中。

传送字节立即写(BIW)指令,将从输入端(IN)指定字节地址的内容写入输出端(OUT)指定字节地址的物理输出点(QB)。二、数学运算指令

(一)四则运算指令ADD_IENIN1OUTENOIN2ADD_DIENIN1OUTENOIN2ADD_RENIN1OUTENOIN2加法指令可分为整数、双整数、实数加法指令;执行操作:IN1+IN2=OUT。SUB-IENIN1OUTENOIN2SUB-DIENIN1OUTENOIN2SUB-RENIN1OUTENOIN22、减法指令1、加法指令减法指令可分为整数、双整数、实数减法指令;执行操作:IN1-IN2=OUT加法/减法指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。3.乘法指令MUL-IENIN1OUTENOIN2MUL-DIENIN1OUTENOIN2MUL-RENIN1OUTENOIN2MULENIN1OUTENOIN24.除法指令DIV-IENIN1OUTENOIN2DIV-DIENIN1OUTENOIN2DIV-RENIN1OUTENOIN2DIVENIN1OUTENOIN2整数完全除法指令(带余数的整数除法),把输入端(IN)指定的两个16位整数相除,产生一个32位结果,并送到输出端(OUT)指定的存储单元中去。其中高16位是余数,低16位是商。执行操作:IN1/IN2=OUT乘法指令可分为整数、双整数、实数乘法指令和整数完全乘法指令。整数完全乘法指令:把输入端(IN1、IN2)指定的两个16bit整数相乘产生一个32bit乘积,并送到输出端(OUT)指定的存储单元。执行操作:IN1*IN2=OUT。影响特殊存储器位:SM1.0(零)、SM1.1(溢出)、SM1.2(负)、SM1.3(除数为0)。例:四则运算5、加1和减1指令说明:加1/减1指令用于自增、自减操作,以实现累加计数和循环控制等程序的编制。(字节、字、双字操作)执行操作:IN±1→OUT.影响特殊存储器位:SM1.0(零)、SM1.1(溢出)。(二)数学功能指令(1)数学函数指令包括平方根、自然对数、指数、三角函数等几个常用的函数指令。(2)运算输入输出数据都为实数。结果如果大于32位二进制表示的范围,则产生溢出。(3)影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。1、平方根指令:SQRT执行操作:把一个双字长(32位)的实数IN开方,得到32位的实数结果OUT。把一个双字长(32位)的实数IN取自然对数,得到32位的实数结果OUT;执行操作:LN(IN)=OUT。2、自然对数指令:LN3、自然指数指令:EXP把一个双字长(32位)的实数IN取以e为底的指数,得到32位的实数结果OUT。4、正弦、余弦、正切指令即正弦、余弦、正切指令。将把一个双字长(32位)的实数弧度值IN分别取正弦、余弦、正切,各得到32位的实数结果OUT。

程序实例:(求65°的正切值)

三、逻辑运算指令(1)逻辑运算指令的操作数均为无符号操作数。(2)按操作数长度可分为字节、字和双字逻辑运算,IN1、IN2、OUT操作数的数据类型为:B、W、DW。(3)逻辑运算指令影响特殊标志位存储器位:SM1.0(零)。逻辑运算指令举例四、移位和循环移位指令

移位和循环移位指令的操作数均为无符号操作数。(一)右移位指令说明:(1)把输入端(IN)指定的数据右移/左移N位,结果存入OUT单元;(2)移位时,移出位进入SM1.1,另一端自动补0。SM1.1始终存放最后一次被移出的位;(3)移位次数最大分别为8、16、32。(4)如果移位结果是0,零存储器位(SM1.0)置位。(二)左移位指令(三)循环右移指令(四)循环左移指令说明:(1)把输入端(IN)指定的数据循环右移/左移N位,结果存入OUT单元;(2)移位时,SM1.1始终存放最后一次被移出的位。(3)移位次数与移位数据的长度有关,如果移位次数设定值大于移位数据的位数,则执行循环移位之前,系统先对设定值取以数据长度为底的模,用小于数据长度的结果作为实际循环移位的次数。如字左移时,若移位次数设定为36,则先对36取以16为底的模,得到小于16的结果4,故指令实际循环移位4次。例:移位和循环指令编程例题:用I0.0控制接在Q0.0~Q0.7上的8个彩灯循环移位,从左到右以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。要求:使用循环移位指令。LDSM0.1//首次扫描时MOVB1,QB0//置8位彩灯初态

LDI0.0//T37产生周期为ANT370.5s的移位脉冲TONT37,+5

LDT37//每来一个脉冲RLBQB0,1彩灯循环左移1位已知:I0.0接外部开关,Q0.0接指示灯,问下面的梯形图实现什么功能?(一)BCD码与整数的转换五、数据转换指令BCD_IENINOUTENOI_BCDENINOUTENO(1)BCD码转为整数(BCDI)指令,将输入端(IN)指定的BCD码转换成整数,并将结果存放到输出端(OUT)指定的存储单元中去。输入数据的范围是0~9999(BCD码)。(2)整数转为BCD码(IBCD)指令,将输入端(IN)指定的整数转换成BCD码,并将结果存放到输出端(OUT)指定的存储单元中去。输入数据的范围是0~9999。(3)指令影响的特殊存储器位:SM1.6(非法BCD)已知(AC0)=1234,程序运行后:(AC0)=04D2。

程序实例:(二)双字整数与实数的转换双字整数转为实数(DTR)指令:将输入端(IN)指定的32位有符号整数转换成32位实数。ROUND取整指令,转换时实数的小数部分四舍五入。TRUNC取整指令,实数舍去小数部分后,转换成32位有符号整数。取整指令被转换的输入值应是有效的实数,如果实数值太大,使输出无法表示,那么溢出位(SM1.1)被置位。(三)双字整数与整数的转换使能输入有效时,将双整数型输入数据IN转换成整数类型,并将结果送到OUT输出。被转换的输入值应是有效的双字整数。输入数据超出整数范围则产生溢出。

(四)字节与整数的转换使能输入有效时,将字节型输入数据IN转换成整数类型,并将结果送到OUT输出。字节型是无符号的,所以没有符号扩展。

使能输入有效时,将整数型输入数据IN转换成字节类型,并将结果送到OUT输出。输入数据超出字节范围(0~255)则产生溢出。使能输入有效时,将整数型输入数据IN转换成双整数类型(符号进行扩展),并将结果送到OUT输出。例:将101英寸转换为厘米(五)译码、编码指令编码指令:使能输入有效时,将字型输入数据IN中值为1的最低有效位的位号编码成4位二进制数,输出到OUT所指定的字节单元的低4位。即用半个字节来对一个字型数据16位中的1位有效位进行编码。

译码指令:使能输入有效时,根据字节型输入数据IN的低4位所表示的位号将OUT所指定的字单元的对应位置1,其他位置0。即对半个字节的编码进行译码来选择一个字型数据16位中的1位。

(六)段码(SEG)指令使能输入有效时,将字节型输入数据IN的低4位有效数字(16#0~F)转换成七段显示码,并将其输出到OUT所指定的字节单元。图5-59七段码显示编码功能:将模拟量输入端采样值由整数转换为双整数,然后由双整数转换为实数,再除以一个比例因子得到PLC可以处理的范围内的值。模拟量控制程序中的数据类型转换表中数据的存储格式单元地址单元内容说明VW2000005表格的首地址,TL=5为表格的最大填表数VW2020004数据EC=4(EC≤100)为该表中的实际填表数VW2042345数据0VW2065678数据1VW2089876数据2VW2106543数据3VW212****无效数据六、表功能指令(一)填表、查表指令1、填表指令(ATT):向表(TBL)中填入DATA端的数据。TBL指明表格的首地址,表中第一个数是最大填表数(TL),第二个数是实际填表数(EC),指出已填入表单数据个数,新的数据填加在表的末尾。每向表中存一个数据,实际填表数EC会自动加1。程序实例:(5)表查找指令执行之前,当使能输入有效时,从INDX开始搜索表TBL,寻找符合由PTN和CMD所决定的条件的数据,如果没有发现符合条件的数据,则INDX的值等于EC。如果找到一个符合条件的数据,则将该数据的表中地址装入INDX中。(6)表查找指令执行完成,找到一个符合条件的数据,如果想继续向下查找,必须先对INDX加1,以重新激活表查找指令。2、查表指令(FND):从INDX开始搜索表(TBL),寻找满足条件的数据。(1)TBL——被访问表格的首地址;(2)PTN——用来描述查表条件的进行比较的数据;(3)CMD——查找条件,它是一个1~4的数值,分别代表=、<>、<和>运算符;(4)INDX——用来指定表中符合查找条件的数据地址,查表前,INDX的内容清0

。程序实例:(二)先进先出、后进先出指令

当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。

FIFO表取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。

当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。

LIFO表取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC自动减1。FILL,存储器填充指令。当使能输入有效时,将字型输入值IN填充至从OUT开始的N个字的存储单元中。N为字节型,可取1~255的正数。(三)存储器填充指令七、程序控制指令(一)有/无条件结束(END/MEND)指令有条件结束(END)指令,当条件满足时结束主程序,并返回主程序的第一条指令执行。无条件结束(MEND)指令,直接连接母线。程序执行到此指令时,无条件结束主程序,并返回第一条指令。

STEP7-Micro/WIN32编程软件自动在主程序结束时加上一个无条件结束(MEND)指令。(二)暂停(STOP)指令停止指令STOP可使PLC从运行模式进入停止模式,立即停止程序的执行。如果在中断程序中执行停止指令,中断程序立即终止,并忽略全部等待执行的中断,继续执行主程序的剩余部分,并在主程序的结束处,完成从运行方式至停止方式的转换。(三)监视定时器复位(WDR)指令

(1)为了保证系统可靠运行,PLC内部设置了系统监视定时器(WDT),用于监视扫描周期是否超时。每当扫描到WDT定时器时,WDT定时器将复位。(2)WDT定时器有一设定值(100~300ms),系统正常工作时,所需扫描时间小于WDT的设定值,WDT定时器及时复位。系统故障情况下,扫描时间大于WDT设定值,该定时器不能及时复位,则报警并停止CPU运行,同时复位输入、输出。这种故障称为WDT故障,以防止因系统故障或程序进入死循环而引起的扫描周期过长。(3)系统正常工作时,有时会因为用户程序过长或使用中断指令、循环指令使扫描时间过长而超过WDT定时器的设定值,为防止这种情况下WDT动作,可使用监视定时器复位指令(WDR),使WDT定时器复位。

(四)跳转与标号指令跳转指令包括:跳转指令JMP和标号指令LBL。当条件满足时,跳转指令JMP使程序转到对应的标号LBL处,标号指令用来表示跳转的目的地址。

JMP与LBL指令中的操作数n为常数0~255。JMP和对应的LBL指令必须在同一程序块中。(五)循环指令(FOR,NEXT)

FOR指令表示循环的开始,NEXT指令表示循环的结束。当驱动FOR指令的逻辑条件满足时,反复执行FOR和NEXT之间的程序。在FOR指令中,需要设置指针或当前循环次数计数器(INDX),初始值(INIT)和终值(FINAL)。

例题:有3台电动机M1~M3,具有两种起停工作方式:1)手动操作方式:分别用每个电动机各自的起停按钮控制M1~M3的起停状态。2)自动操作方式:按下起动按钮,M1~M3每隔5s依次起动;按下停止按钮,M1~M3同时停止。

JMP、LBL指令在工业现场控制中,常用于工作方式的选择

2重循环程序

1、各参数复位,置初值INIT和终值FINAL,并将初值拷贝到INDX中;如果计数器大于终值,循环结束。2、问SBR_0子程序执行多少次?(六)子程序子程序在结构化程序设计中是一种方便有效的工具。S7-200PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。1、子程序调用指令CALL

在使能输入有效时,主程序把程序控制权交给子程序。2、子程序条件返回指令CRET

在使能输入有效时,结束子程序的执行,返回主程序中。

软件为每个子程序自动加入无条件返回(RET)指令。八、中断指令所谓中断,是当控制系统执行正常程序时,系统中出现了某些急需处理的异常情况或特殊请求,这时系统暂时中断当前程序,转去对随机发生的紧迫事件进行处理(执行中断服务程序),当该事件处理完毕后,系统自动回到原来被中断的程序继续执行。(一)全局中断允许/禁止指令全局中断允许指令ENI,允许所有被连接的中断事件。全局中断禁止指令DISI,禁止处理所有的中断事件。CPU进入RUN运行模式时自动禁止所有中断。在RUN运行模式中执行ENI指令后,允许所有中断。中断连接指令ATCH,用来建立某个中断事件(EVNT)和某个中断程序(INT)之间的联系。并允许这个中断事件。(二)中断连接/分离指令

中断分离指令DTCH,用来解除某个中断事件(EVNT)和某个中断程序(INT)之间的联系。并禁止该中断事件。在调用一个中断程序前,必须用中断连接指令,建立某中断事件与中断程序的连接。(三)中断返回指令条件返回指令CRETI,RETI根据前面逻辑条件决定是否返回。无条件返回指令RETI,是中断服务程序必备的结束指令,编程软件自动在中断程序结尾加上RETI指令。INTERRUPT4表5-10按优先级排列的中断事件INT——中断程序名称EVNT——中断事件号(四)中断的分类1、通信口中断2、I/O中断I/O中断包含了上升沿或下降沿中断、高速计数器中断和脉冲串输出中断。3、时基中断时基中断包括定时中断和定时器T32/T96中断。定时中断以1ms为周期增量,周期时间可为1~255ms。定时中断0、定时中断1把周期时间分别写入特殊存储器SMB34、SMB35。定时器T32/T96中断(TON和TOF),在给定时间间隔到达时产生中断。定时中断采集模拟量程序例//首次扫描时SM0.1位打开,用于调用初始化子例行程序//当系统处于RUN模式时,SM0.0始终打开,100毫秒放入特/殊内存字节SMB34//调用中断程序//全局性启用中断//模拟量输入映像寄存器AIW2的值装入VW100例:喷泉的模拟控制参考程序,喷泉模拟控制的移位时间为0.5s,大于定时中断0的最大定时时间设定值255ms

。主程序INT_0九、PID回路指令(一)PID算法离散化保留积分项前值——PID回路输出的初值为使系统达到稳态,应让偏差e趋于零。比例环节:控制系统的稳态精度;

积分环节:作用是消除稳态误差,提高控制精度;微分环节:减少超调量,改善动态性能。-在第n-1采用时刻的积分项1、比例项:MPn是增益KC和偏差e的乘积。2、积分项:MIn与偏差的和成正比。3、微分项:MDn与偏差的变化成正比。(二)PID回路指令

TBL是回路表起始地址,只能使用字节VB区域。LOOP是回路号,为字节常量0~7;程序中可使用8条PID指令。表5-11回路表格式(三)控制方式执行PID指令时为“自动”运行方式;当输入端检测到一个正跳变(从0到1)信号,PID回路就从手动方式无扰动地切换到自动方式,并进行组态:(1)置给定值SPn=过程变量PVn(2)置过程变量前值PVn-1=过程变量当前值PVn(3)置积分项前值MX=输出值Mn(四)回路输入输出变量的数值转换1、回路输入变量的转换和标准化(1)回路输入变量的数据转换:把A/D模拟量单元输出的整数值转换成标准的浮点型实数。

ITDAIW0,AC0DTRAC0,AC0(2)实数值的标准化:把实数值标准化为0.0~1.0之间的实数。双极性模拟量信号:-5~+5V,-2.5~2.5V等,对应双极性数据程范围为-32000~32000。单极性模拟量信号:0~5V,4~20mA等,对应单极性数据范围为0~32000。/R64000.0,AC0+R0.5,AC0MOVRAC0,VD1002、回路输出变量的数据转换(1)回路输出变量的刻度化:把回路输出的标准化实数转换成实数。MOVRVD108,AC0-R0.5,AC0*R64000.0,AC0(2)将实数转换为整数(INT):把回路输出变量的刻度值转换成整数(INT)。ROUNDAC0,AC0DTIAC0,AC0MOVWAC0,AQW0(六)选择回路控制类型

在很多控制系统中,有时只采用一种或两种控制回路。例如,可能只要求比例控制回路或比例和积分控制回路。通过设置常量参数值选择所需的控制回路。(1)如果只需要比例、微分回路控制,可以把积分时间常数设为无穷大。(2)如果只需要比例、积分回路控制,可以把微分时间常数设为零。(3)如果只需要积分或积分微分回路控制,可以把回路增益KC设为0.0,在计算机积分项和微分项时,系统把回路增益KC当作1.0。(八)PID指令编程举例

某水箱需要维持一定的水位,该水箱里的水以变化的流速流出。这就需要有一个水泵以变化的速度给水箱供水以维持水位(满水位的75%)不变,这样才能使水箱不断水。

本系统选择比例和积分控制,初步确定的回路增益和时间常数为:KC=0.25,TS=0.1s,TI=30min,TD=0。(2)程序结构由主程序,子程序,中断程序构成。(1)I/O分配手动/自动切换开关I0.0模拟量输入AIW0模拟量输出AQW0地址参数数值VB100过程变量当前值PVn水位检测计提供的模拟量经A/D转换后的标准化数值VB104给定值SPn0.75VB108输出值MnPID回路的输出值(标准化数值)VB112增益Kc0.25VB116采样时间Ts0.1VB120积分时间TI30.0VB124微分时间Td0(关闭微分作用)VB128上一次积分值Mx根据PID运算结果更新VB132上一次过程变量PVn-1最近一次PID的变量值MAIN调用初始化子程序设定时中断0的时间间隔为100ms允许中断子程序建立PID回路初始参数表和设置中断INT_0在自动方式下执行PID指令执行PID运算,I0.0=1时,执行PID运算十、高速计数器指令高速计数器脱离主机的扫描周期而独立计数,它对脉宽小于主机扫描周期的高速脉冲准确计数。(一)高速计数器指令定义高速计数器(HDEF)指令,为指定的高速计数器(HSCx)选定一种工作模式。HSC是高速计数器编号(0~5);MODE是工作模式(0~11)。高速计数器(HSC)指令用来激活高速计数器,N为计数器号(0~5)。说明:高速计数器装入预置值

温馨提示

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

评论

0/150

提交评论