综合技能实训西门子S7200指令.docx
《综合技能实训西门子S7200指令.docx》由会员分享,可在线阅读,更多相关《综合技能实训西门子S7200指令.docx(25页珍藏版)》请在冰豆网上搜索。
综合技能实训西门子S7200指令
西门子CPU226可编程控制器
CPU226集成24输入/16输出共40个数字量I/O点。
可连接7个扩展模块,最大扩展至248路数字量I/O点或35路模拟量I/O点。
26K字节程序和数据存储空间。
6个独立的30KHz高速计数器,2路独立的20KHz高速脉冲输出,具有PID控制器。
2个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力,I/O端子排可很容易地整体拆卸。
用于较高的控制系统,具有更多的输入/输出点,更强的模块扩展能力,更快的运行速度和功能更强的内部集成特殊功能。
图1-1S7-200微型PLC
CPU226外围接线:
对于大多数输入来讲,都是24VDC输入,因为S7-200的数字量输入点内部为双向二级管,可以接成漏型(图1—2)或源型(图1—3),只要每一组接成一样就行。
对于数字量输入电路来说,关键是构成电流回路。
输入点可以分组接不同的电源,这些电源之间没有联系也可以。
图1-2漏型接法图1-3源型接法
图1-4CPU226外围典型接线图
存储器的数据类型与寻址方式
1.数据类型
(1)数据类型及范围
SIMATICS7-200系列PLC数据类型可以是布尔型、整型和实型(浮点数)。
实数采用32位单精度数来表示,其数值有较大的表示范围:
正数为+1.175495E-38~+3.402823E+38;负数为-1.175495E~38~-3.402823E+38。
不同长度的整数所表示的数值范如表3.8所示。
(2)常数
在编程中经常会使用常数。
常数数据长度可为字节、字和双字,在机器内部的数据都以二进制存储,但常数的书写可以用二进制、十进制、十六进制、ASCII码或浮点数(实数)等多种形式。
几种常数形式分别如表3.9所示。
S7-200将编程元件统一归为存储器单元,存储单元按字节进行编址,无论所寻址的是何种数据类型,通常应指出它在所在存储区域和在区域内的字节地址。
每个单元都有惟一的地址,地址用名称和编号两部分组成,元件名称(区域地址符号)如表3.10所示。
按位寻址的格式为:
Ax.y
必须指定元件名称、字节地址和位号,如图3.8所示。
图3.8中MSB表示最高位,LSB表示最低位。
基本指令
4.1 位操作类指令
基本逻辑指令
基本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。
一般来说,语句表语言更适合于熟悉可编程序控制器和逻辑编程方面有经验的编程人员。
用这种语言可以编写出用梯形图或功能框图无法实现的程序。
选择语句表时进行位运算要考虑主机的内部存储结构。
1.标准触点指令
(1)LD:
装入常开触点(LoaD)
(2)LDN:
装入常闭触点(LoaDNot)
(3)A:
与常开触点(And)
(4)AN:
与常闭触点(AndNot)。
(5)O:
或常闭触点(Or)
(6)ON:
或常闭触点(OrNot)
(7)NOT:
触点取非(输出反相)
(8)=:
输出指令
程序实例:
其梯形图和语句表程序结构如图4.2所示。
图4.2 标准触点LAD和STL例
2.正负跳变指令
(正)负跳变触点检测到脉冲的每一次(正)负跳变后,产生一个微分脉冲。
指令格式:
(EU)ED(无操作数)
图4.5 跳变应用
3.置位和复位指令
(1)S,置位指令
(2)R,复位指令
置位即置1,复位即置0。
置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。
这两条指令在使用时需指明三点:
操作性质、开始位和位的数量。
各操作数类型及范围如表4.6所示。
图4.7 置位复位
4.立即指令
(1)立即触点指令
(2)=I,立即输出指令
(3)SI,立即置位指令
(4)RI,立即复位指令
图4.9 立即指令程序
4.1.3 复杂逻辑指令
1.栈装载与指令
ALD,栈装载与指令(与块)。
在梯形图中用于将并联电路块进行串联连接。
在语句表中指令ALD执行情况如表4.8所示。
2.栈装载或指令
OLD,栈装载或指令(或块)。
在梯形图中用于将串联电路块进行并联连接。
在语句表中指令OLD执行情况如表4.9所示。
3.逻辑推入栈指令
LPS,逻辑推入栈指令(分支或主控指令)。
在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。
注意:
使用LPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP。
即LPS与LPP指令必须成对出现。
在语句表中指令LPS执行情况如下表4.10所示。
4.逻辑弹出栈指令
LPP,逻辑弹出栈指令(分支结束或主控复位指令)。
在梯形图中的分支结构中,用于将LPS指令生成一条新的母线进行恢复。
注意:
使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。
在语句表中指令LPP执行情况如下表4.11所示。
5.逻辑读栈指令
LRD,逻辑读栈指令。
在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。
在语句表中指令LRD执行情况如表4.12所示。
6.装入堆栈指令
LDS,装入堆栈指令。
本指令编程时较少使用。
指令格式:
LDSn(n为0~8的整数)
例:
LDS4
指令LDS4
在语句表中执行情况如下表4.13所示。
应用举例:
复杂逻辑指令的应用
4.1.4 定时器指令
系统提供3种定时指令:
TON、TONR和TOF。
精度等级:
S7-200定时器的精度(时间增量/时间单位/分辨率)有3个等级:
1ms、10ms和100ms,精度等级和定时器号关系如表4.14所示。
1.接通延时定时器
TON,接通延时定时器指令。
用于单一间隔的定时。
上电周期或首次扫描,定时器位OFF,当前值为0。
使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位ON,当前值连续计数到32767。
使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。
指令格式:
TONTxxx,PT
例:
TONT120,8
2.有记忆接通延时定时器
TONR,有记忆接通延时定时器指令。
用于对许多间隔的累计定时。
上电周期或首次扫描,定时器位OFF,当前值保持。
使能输入接通时,定时器位为OFF,当前值从0开始计数时间。
使能输入断开,定时器位和当前值保持最后状态。
使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。
TONR定时器只能用复位指令进行复位操作。
指令格式:
TONRTxxx,PT
例:
TONRT20,63
3.断开延时定时器
TOF,断开延时定时器指令。
用于断开后的单一间隔定时。
上电周期或首次扫描,定时器位OFF,当前值为0。
使能输入接通时,定时器位为ON,当前值为0。
当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。
TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。
指令格式:
TOFTxxx,PT
例:
TOFT35,6
4.应用举例
例1:
图4.12是介绍3种定时器的工作特性的程序片断,其中T35为通电延时定时器,T2为有记忆通电延时定时器,T36为断电延时定时器。
图4.12 定时器特性
图4.13 定时器时序
例2:
用TON构造各种类型的时间继电器触点。
有的厂商的PLC只有TON定时器,因此,在这种情况下可以利用TON来构造断电延时型的各种触点。
图4.14是用TON构造TOF作用的触点。
其时序图与TOF的时序完全相同。
图4.15用通电延时定时器与输出继电器组成带瞬动触点的定时器。
图4.16是利用常开触点实现通电和断电都延时的触点作用。
本程序实现的功能是:
用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0.0断开。
图4.14 定时器应用
图4.14 定时器应用
图4.15 定时器应用
图4.16 定时器应用
4.1.5 计数器指令
1.概述
计数器用来累计输入脉冲的次数。
计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。
计数器指令有3种:
增计数CTU、增减计数CTUD和减计数CTD。
指令操作数有4方面:
编号、预设值、脉冲输入和复位输入。
图4.18 电机顺序起动
2.增计数器
CTU,增计数器指令。
首次扫描,定时器位OFF,当前值为0。
脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。
复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。
指令格式:
CTUCxxx,PV
例:
CTUC20,3
程序实例:
图4.19为增计数器的程序片断和时序图。
图4.19 增计数程序及时序
3.增减计数器
CTUD,增减计数器指令。
有两个脉冲输入端:
CU输入端用于递增计数,CD输入端用于递减计数。
指令格式:
CTUDCxxx,PV
例:
CTUDC30,5
程序实例:
如图4.20所示为增减计数器的程序片断和时序图。
图4.20 增减计数程序及时序
4.减计数器
CTD,增减计数器指令。
脉冲输入端CD用于递减计数。
首次扫描,定时器位OFF,当前值为等于预设值PV。
计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。
复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为预设值,而不是0。
指令格式:
CTDCxxx,PV
例:
CTDC40,4
程序实例:
图4.21为减计数器的程序片断和时序图。
图4.21 减计数程序及时序
4.1.6 比较
1.字节比较
字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。
比较式可以是LDB、AB或OB后直接加比较运算符构成。
如:
LDB=、AB<>、OB>=等。
整数IN1和IN2的寻址范围:
VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。
指令格式例:
LDB=VB10,VB12
AB<>MB0,MB1
OB<=AC1,116
2.整数比较
整数比较用于比较两个一字长整数值IN1和IN2的大小,整数比较是有符号的(整数范围为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,VW12
AW<>MW0,MW4
OW<=AC2,1160
3.双字整数比较
双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。
指令格式例:
LDD=VD10,VD14
AD<>MD0,MD8
OD<=AC0,1160000
LDD>=HC0,*AC0
4.实数比较
实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。
比较式可以是LDR、AR或OR后直接加比较运算符构成。
指令格式例:
LDR=VD10,VD18
AR<>MD0,MD12
OR<=AC1,1160.478
AR>*AC1,VD100
5.应用举例
控制要求:
一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。
货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。
其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。
本控制系统的程序如图4.23所示。
程序执行时序如图4.24所示。
图4.23 程序举例
4.2 运算指令
4.2.1加法
1.整数加法
+I,整数加法指令。
使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相加,产生一个16位整数结果OUT。
图4.25 整数加法例
2.双整数加法
+D,双整数加法指令。
使能输入有效时,将两个双字长(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和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 减法
减法指令是对有符号数进行相减操作。
包括:
整数减法、双整数减法和实数减法。
这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。
在LAD和FBD中,以指令盒形式编程,执行结果:
IN1-IN2=OUT。
在STL中,执行结果:
OUT-IN2=OUT。
指令格式:
-IIN2,OUT(整数减法)
-DIN2,OUT(双整数减法)
-RIN2,OUT(实数减法)
例:
-IAC0,VW4