s7-200plc的基本指令及程序设计.ppt
《s7-200plc的基本指令及程序设计.ppt》由会员分享,可在线阅读,更多相关《s7-200plc的基本指令及程序设计.ppt(69页珍藏版)》请在冰点文库上搜索。
S7-200PLC的基本指令及程序设计,第五章,1.梯形图(LAD)编程语言梯形图是与电气控制电路图相呼应的图形语言。
它来源于继电器逻辑控制系统的描述。
2.功能块图(FBD)功能块图类似于普通逻辑概念图,沿用了半导体逻辑电路的逻辑框图表达方式。
3.语句表(STL)语句表程序设计语言是用布尔助记符来描述程序的一种程序设计语言,计算机中的汇编语言非常相似,目前已经可以应用高级语言。
5.1S7-200PLC的编程语言,图5-1功能块图(FBD),LDI0.1OQ0.0ANI0.0=Q0.0,5.2S7-200的数据类型与存储区域,1位布尔型(BOOL)8位字节型(BYTE)16位无符号整数型(WORD)16位有符号整数型(INT)32位无符号双字整数型(DWORD)32位有符号双字整数型(DINT)32位实数型(REAL)。
实数型(REAL)是按照NSI/IEEE7541985标准(单精度)的表示格式规定。
5.2.1基本数据类型,5.2.2数据类型及范围,表5-4数据长度与数值,数据的数值范围:
无符号数为02n-1,有符号数为-2n-12n-1。
注意实数的数值范围10381038。
-128127,表5-4数据长度与数值,807F,-128127,1.存储器(回顾)存储器主要用于存放系统程序、用户程序以及工作数据。
a.常用的存储器类型RAMRandomAccessMemoryROMReadOnlyMemoryEPROMErasableProgrammableReadOnlyMemoryEEPROMElectricalErasableProgrammableReadOnlyMemory,5.2.3数据的存储区,ROM、EPROM和EEPROM的区别,EEPROM仅依靠电子信号即可修改内容!
程序区用于存放用户程序,存储器为EEPROM。
系统区用于存放有关PLC配置结构的参数,如PLC主机及扩展模块的I/O配置和编址、配置PLC站地址,设置保护口令、停电记忆保持区、软件滤波功能等,存储器为EEPROM。
数据区是S7-200CPU提供的存储器的特定区域。
它包括输入映象寄存器(I)、输出映像寄存器(Q)、变量存储器(V)、内部标志位存储器(M)、顺序控制继电器存储器(S)、特殊标志位存储器(SM)、局部存储器(L)、定时器存储器(T)、计数器存储器(C)、模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)、累加器(AC)、高速计数器(HC)幻灯片9。
存储器为EEPROM和RAM。
2.存储器区域PLC的存储器分为程序区、系统区、数据区。
3.数据区存储器的地址表示格式存储器是由许多存储单元组成,每个存储单元都有惟一的地址,可以依据存储器地址来存取数据。
数据区存储器地址的表示格式有位、字节、字、双字地址格式。
1)、位地址格式某一位的地址由存储器区域标识符、字节地址及位号构成,如V5.4,I0.0等。
(1)字节编址的指定方式为:
(区域标志符)B(字节号),如IB0表示由I0.0I0.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是定时器号。
(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(0255)。
8、计数器(C)计数器是累计其计数输入端脉冲电平由低到高的次数,有三种类型:
增计数、减计数、增减计数。
计数器存储器地址表示格式为:
C计数器号,如C3。
S7-200PLC计数器存储器的有效地址范围为:
C(0255)。
9、模拟量输入映像寄存器(AI)模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理。
如AIW0,AIW2,AIW4等。
10、模拟量输出映像寄存器(AQ)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(05)。
用户程序可分为三个程序分区:
主程序、子程序(可选)和中断程序(可选)。
主程序(OB1):
是用户程序的主体。
CPU在每个扫描周期都要执行一次主程序指令。
子程序:
是程序的可选部分,主程序调用时才能够执行。
中断程序:
是程序的可选部分,只有当中断事件发生时,才能够执行。
中断程序可在扫描周期的任意点执行。
5.5用户程序的结构,用户程序可分为三个程序分区:
主程序、子程序(可选)和中断程序(可选)。
5.4寻址方式指令中如何提供操作数或操作数地址,称为寻址方式。
S7-200PLC的寻址方式有:
立即寻址、直接寻址、间接寻址。
MOVD256,VD100MOVDVD100,VD200,5.6S7-200PLC的基本指令,1)外接输入电路闭合时,输入映像寄存器为“1”状态,梯型图中对应的“|”接通,“|/|”断开。
2)外接输入电路断开时,输入映像寄存器为“0”状态,梯型图中对应的“|”断开,“|/|”闭合。
3)梯形图中某一个线圈“通电”时,对应的输出映像寄存器的位为“1”,对应外部的负载通电工作。
4)梯形图中某一个线圈“断电”时,对应的输出映像寄存器的位为“0”,对应外部的负载断电,停止工作。
5.6.1位逻辑指令,梯形图(LAD)常开和常闭触点指令用触点“|”“|/|”表示;与某触点对应的存储器地址的位(bit)值为1时,表示该触点的常开触点是接通的,位值为1;同时与之对应的常闭触点得位值为0,表示该常闭触点是断开的,1.标准触点指令,1.标准触点指令,2.输出指令,输出指令又称为线圈驱动指令,表示对继电器输出线圈编程。
在梯形图(LAD)中,用“()”表示线圈。
当执行输出指令时,“能流”到,则线圈被“激励”,输出映像寄存器或其他存储器的相应位为“1”,反之为“0”。
例1:
直接启动停车控制,I/O分配:
I0.0:
停车I0.1:
启动Q0.1:
KM,语句表LDI0.1OQ0.0AI0.0=Q0.0,继电器控制电路图,Q0.1,Q0.1,Q0.1,Q0.1,I/O分配决定PLC的端子接线图,PLC的端子接线方式又决定编程语言,I/O分配:
I0.0:
停车I0.1:
启动Q0.1:
KM,接触器联锁正反转控制电路,例2:
电动机的正反转控制,FU,KM1,QS,正转接触器,反转接触器,L1L2L3,主电路,KM2,FR,注意调相,电动机的正反转控制,I/O接线图,正转启动SB2-I0.0,反转启动SB3-I0.1,停止SB1-I0.2,正转接触器KM1-Q0.0,反转接触器KM2-Q0.1,正转互锁,反转互锁,电动机的正反转控制梯形图,正转,反转,反转的梯形图?
正转启动SB2-I0.0,反转启动SB3-I0.1,停止SB1-I0.2,3.置位、复位指令,S(set):
置位指令。
指从指定的位地址开始的N个连续的位地址都被置位且保持。
置位后即使能流断,仍保持置位。
R(Reset):
复位指令.指从指定的位地址开始的N个连续的位地址都被复位且保持。
复位后即使能流断,仍保持复位。
若I0.0和I0.1同时为1,Q0.1置位还是复位?
电动机的正反转控制梯形图,问:
如何用置位、复位指令完成电机正反转控制功能?
5.6.2立即I/O指令,1.立即输入指令在每个标准触点指令的后面加“I”。
指令执行时,立即读取物理输入点的值,但不刷新相应输入映像寄存器的值。
2.立即输出指令(只能用于Q)用立即指令访问输出点时,把操作数地址立即复制到指令所指定的物理输出点和相应的输出映像寄存器,而不受扫描过程的影响。
3.立即置位和立即复位指令(只能用于Q)当执行立即置位或立即复位指令时,从指令操作数所指定的位(bit)地址开始的N个(最多为128个)物理输出点被立即置位或复位且保持。
执行该指令时,新值被同时写到物理输出点和相应地输出映像寄存器,说明:
立即I/O指令不受PLC循环扫描工作方式的约束,允许对输入输出物理点进行快速直接存取。
加快了输入输出响应速度。
但比访问映像寄存器的指令占用的CPU时间要长。
例:
5.6.3取非触点指令和空操作指令,取非触点可以改变能流的状态。
触点左侧为1时,右侧为0,能流就停止;触点左侧为0时,右侧为1,能流就通过。
空操作(NOPN)指令不影响程序的执行,操作数N是一个0255之间的常数。
预先在程序中设置一些NOP指令,在修改和增加其他指令时,可使程序地址的更改量变小,5.6.4正/负跳变触点指令,正跳变触点检测到脉冲的每一次正跳变后,产生一个扫描周期的脉冲。
指令格式:
负跳变触点检测到脉冲的每一次负跳变后,产生一个扫描周期的脉冲。
指令格式:
应用举例:
5.6.5定时器指令,输入接点,设定值:
132767,定时器号码(0255),定时器的实际设定时间:
T=设定值PT分辨率,?
ms,分辨率(时基),TS=50.1=0.5s,1、接通延时定时器,其工作波形图如下:
首次扫描,定时器位OFF,当前值为0。
使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位为ON,当前值连续计数到32767。
使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。
哪几部分有输出?
?
ms,100ms,2、断开延时定时器(TOF),上电周期或首次扫描,定时器位OFF,当前值为0。
使能输入接通时,定时器位为ON,当前值为0。
当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。
使能输入由OFF变为ON时TOF复位,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。
其工作波形图如下:
TS=8*10ms=80ms,10ms,上电初期或首次扫描时,定时器位为OFF,当前值为0。
当输入端(IN)接通(为ON)时,定时器位立即为“1”,并把当前值设为0。
2、断开延时定时器(TOF),其工作波形图如下:
输入端,Q0.1,当前值,设定值,TS=120*10ms,M0.1,TONR,PT,IN,I0.1,120,T4,(),T4,Q0.1,最大值,32767,120,3、有记忆接通延时定时器,首次扫描,定时器位OFF,当前值保持,使能输入接通时,定时器位为OFF,当前值从保持值开始计数时间,当前值达到预设值时,定时器位为ON,当前值连续计数到32767。
定时器用复位指令清除当前值。
TS,10ms,电气原理图,工作原理,例3定子绕组串电阻(电抗)启动控制,串电阻降压起动硬件接线图及程序,例4闪烁控制程序,闪烁控制梯形图及信号时序图,要求灯,每隔1S,持续接通2S,定时器是对PLC内部的时钟脉冲进行计数,而计数器是对外部的或由程序产生的计数脉冲进行计数。
计数器用来累计输入脉冲的次数,经常用来对产品进行计数。
计数器与定时器的结构和使用基本相似,编程时输入它的预设值PV(计数的次数),计数器累计它的脉冲输入端电位上升沿(正跳变)个数,当计数器达到预设值PV时,发出中断请求信号,以便PLC作出相应的处理。
计数器指令有3种:
增计数CTU、减计数CTD和增减计数CTUD。
5.6.6计数器指令,1、增计数器CTU指令,首次扫描,定时器位OFF,当前值为0。
脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。
复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。
2、减计数器,CD,PV,C(0255),LD,复位,装设定值,计脉冲数,设定值,CTD,当装载输入端有效时,计数器复位并把设定值PV装入当前值寄存器中。
计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。
无复位端,在装载输入端接通时,使计数器复位并把设定值装入当前寄存器中。
为什么C40当前值没有减1?
2、增/减计数器(CTUD)指令,增计数,减计数,复位,C(0255),设定值,首次扫描,定时器位OFF,当前值为0。
当前值等于或大于预设值时,计数器位ON。
增减计数器计数到32767(最大值)后,下一个CU输入的上升沿将使当前值跳变为最小值(32768);反之,当前值达到最小值(32768)时,下一个CD输入的上升沿将使当前值跳变为最大值(32767)。
复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。
例5.产品数量检测,(每24个产品机械手动作1次),电机起动后,Q0.0产生宽度为一个扫描周期的正脉冲,使C20和T37复位,起、停传送带电机,Q0.0,Q0.0,I0.2,24,C20,T37,20,C20,Q0.1,每检测到一个产品,I0.2产生一个正脉冲,使C20计一个数,C20每计24个数,机械手动作一次,机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。
C20复位后,Q0.1和T37也复位,(),I0.0,I0.1,C20,(),IN,PT,TON,T37,T37,P,Q0.0,例5.,例6.定时器的扩展,1.定时器串联扩展,共延时T=(30000+30000)0.1s=6000s,问题:
单一定时器的最大计时值为3276.7s,当需设定时间超过该值的时候怎么办?
如果我想设定60000s怎么办?
扩大计时范围也可采用定时器和计数器串联的方法,程序如右。
从电源接通到输出线圈Q2.0有输出,共延时T=3000.0s20000=6107s。
若还要增大计时范围,可增加串联的计数器数目。
2.定时器、计数器串联扩展计时范围,例6.定时器的扩展,5.6.7顺序控制继电器指令,
(一)SCR指令的功能1、SCR程序段的S位置位时,允许该程序段工作;2、SCRT指令一方面使当前激活的SCR程序段S位复位,以使该程序段停止工作,另一方面使下一个将要执行的SCR程序段S位置位;3、SCRE指示一个SCR程序段结束。
所谓顺序控制,是生产过程按工艺要求事先安排的顺序自动地进行控制。
顺序控制继电器存储器(S)顺序控制继电器(S)用于顺序控制(或步进控制)。
顺序控制继电器指令(SCR)基于顺序功能图(SFC)的编程方式。
SCR指令提供控制程序的逻辑分段,从而实现顺序控制。
如S0.1,SB4,SW10,SD21。
(三)SCR指令的编程举例根据舞台灯光效果的要求,控制红、绿、黄三色灯。
要求:
红灯先亮,2s后绿灯亮,再过3s后黄灯亮。
待红、绿、黄灯全亮3min后,全部熄灭。
程序如图5-29所示。
说明:
每一个SCR程序段中均包含三个要素:
1)输出对象:
在这一步序中应完成的动作;2)转移条件:
满足转移条件后,实现SCR段的转移;3)转移目标:
转移到下一个步序。
特殊标志位存储器(SM)特殊标志位(SM)即特殊内部线圈,它是用户与系统程序之间的界面。
SM0.0RUN监控,PLC在RUN方式时,SM0.0总为1;SM0.1初始脉冲,SM0.1接通一个扫描周期;SM0.3PLC上电进入RUN方式时,SM0.3接通一个扫描周期;SM0.5秒脉冲,占空比为50,周期为1s的脉冲。
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指令编程,5.6.8移位寄存器指令,移位寄存器指令可用来进行顺序控制、物流及数据流控制。
S_BIT指定移位寄存器的最低位,N指定寄存器的长度;正数表示正向移动(左)0,N为负数表示反向移动;N为字节型数据类型,最大长度为64位。
EN端每个上升沿采样。
当允许输入端EN有效时,该指令把数据输入端(DATA)的数值(位值)移入移位寄存器,并进行移位。
5.6.9.比较触点指令,比较指令为上、下限控制提高了方便,实际上是一个比较触点。
该指令是将两个操作数按指定的关系比较,比较关系成立则比较触点闭合。
比较运算符有:
=、=、(表示不等于)。
比较指令的类型有:
字节比较、整数比较、双字整数比较和实数比较。
应用举例,一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。
货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。
其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。
LDI0.0/增计数出入端LDI0.1/减计数出入端LDI0.2/复位出入端CTUDC30,+10000/增减计数,设定脉冲数为10000LDW=C30,VW20/比较计数器,当前值是否大于等/于VW20中的值Q0.0/输出触点LDW=C30,VW30/比较计数器,当前值是否大于等/于VW30中的值Q0.1/输出触点,程序举例,基本指令小结,5.6.1位逻辑指令(触点、输出、置位复位)5.6.2立即I/O指令(I)5.6.3取反和空操作指令(NOT、NOP)5.6.4正/负跳变触点指令(P/N)5.6.5定时器指令(TON、TONR、TOF)5.6.6计数器指令(CUT、CTUD、CTD)5.6.7顺序控制继电器指令(装载、转换、结束)5.6.8移位在寄存器指令(SHRB)5.6.9比较触点指令,难点内容:
逻辑堆栈指令,逻辑堆栈指令只用于语句表编程。
使用梯形图编程时,梯形图编辑器会自动插入相关的指令处理堆栈操作。
栈装载与(ALD)指令栈装载或(OLD)指令逻辑入栈(LPS)、逻辑读栈(LRD)、逻辑出栈(LPP)、装入堆栈(LDS)指令,1.标准触点指令,逻辑堆栈指令,ALD、OLD指令的使用举例,例1:
直接启动停车控制,I/O分配:
I0.0:
停车I0.1:
启动Q0.1:
KM,语句表LDI0.1OQ0.0AI0.0=Q0.0,继电器控制电路图,Q0.1,Q0.1,Q0.1,Q0.1,I/O分配决定PLC的端子接线图,PLC的端子接线方式又决定编程语言,I/O分配:
I0.0:
停车I0.1:
启动Q0.1:
KM,例2:
电动机的正反转控制,例2:
电动机的正反转控制,FU,KM1,QS,正转接触器,反转接触器,L1L2L3,主电路,KM2,FR,注意调相,电动机的正反转控制,I/O接线图,正转启动SB2-I0.0,反转启动SB3-I0.1,停止SB1-I0.2,正转接触器KM1-Q0.0,反转接触器KM2-Q0.1,正转互锁,反转互锁,电动机的正反转控制梯形图,正转,反转,反转的梯形图?
置位、复位指令,S(set):
置位指令。
指从指定的位地址开始的N个连续的位地址都被置位且保持。
置位后即使能流断,仍保持置位。
R(Reset):
复位指令.指从指定的位地址开始的N个连续的位地址都被复位且保持。
复位后即使能流断,仍保持复位。
电动机的正反转控制梯形图,问:
如何用置位、复位指令完成电机正反转控制功能?
例3闪烁控制程序,闪烁控制梯形图及信号时序图,要求灯,每隔1S,持续接通2S,