1、2022-5-30机械工业出版社Page 12022-5-30机械工业出版社Page 1【学习目标】uS7-200的编程元件及寻址方式的编程元件及寻址方式u基本指令基本指令u运算指令运算指令u数据处理指令数据处理指令u表功能指令表功能指令u转换指令转换指令u程序控制类指令程序控制类指令u特殊指令特殊指令2022-5-30机械工业出版社Page 22022-5-30机械工业出版社Page 2 S7-200的大多数指令要同具有一定大小的数据对象一的大多数指令要同具有一定大小的数据对象一起进行操作。起进行操作。基本数据类型基本数据类型位数位数范围范围布尔型布尔型 BOOL1位位 范围:范围:0,1字
2、节型字节型 BYTE8字节字节 范围:范围:0255字型字型 WORD16字字 范围:范围:065535双字型双字型 DWORD32双字双字 范围:范围:0(232-1)整型整型 INT16整数整数 范围:范围:-32768+32767双整型双整型 DINT32双字整数双字整数 范围:范围:-231(231-1)实数型实数型 REAL32浮点数浮点数3.1.1 S7-200的基本数据类型2022-5-30机械工业出版社Page 32022-5-30机械工业出版社Page 3 编程元件沿用了传统继电器控制系统中继电器编程元件沿用了传统继电器控制系统中继电器的名称,并根据其功能,分别为输入继电器、
3、输的名称,并根据其功能,分别为输入继电器、输出继电器、通用辅助继电器、特殊标志继电器、出继电器、通用辅助继电器、特殊标志继电器、变量存储器、局部变量存储器、顺序控制继电器变量存储器、局部变量存储器、顺序控制继电器、定时器和计数器等。在、定时器和计数器等。在PLC内部并不真正存在内部并不真正存在这些实际的物理器件,与其对应的只是存储器的这些实际的物理器件,与其对应的只是存储器的某些存储单元。某些存储单元。 输入继电器(输入继电器(I) 输出继电器(输出继电器(Q)3.1.2 编程元件2022-5-30机械工业出版社Page 42022-5-30机械工业出版社Page 4 通用辅助继电器(通用辅助
4、继电器(M)特殊标志继电器(特殊标志继电器(SM)变量存储器(变量存储器(V)局部变量存储器(局部变量存储器(L)顺序控制继电器(顺序控制继电器(S)定时器(定时器(T)计数器(计数器(C)模拟量输入映像寄存器(模拟量输入映像寄存器(AI)、模拟量输出映)、模拟量输出映像寄存器(像寄存器(AQ)2022-5-30机械工业出版社Page 52022-5-30机械工业出版社Page 5高速计数器(高速计数器(HC)累加器(累加器(AC)3.1.3 编程元件的寻址根据对存储器单元中信息存取形式的不同,对编程元件根据对存储器单元中信息存取形式的不同,对编程元件的寻址可分为直接寻址和间接寻址的寻址可分为
5、直接寻址和间接寻址1、直接寻址、直接寻址根据数据类型,直接寻址方式又分为位寻址、字节寻址、根据数据类型,直接寻址方式又分为位寻址、字节寻址、字寻址和双字寻址四种。字寻址和双字寻址四种。2、间接寻址、间接寻址间接寻址是指数据存放在存储器或寄存器,在指令中只间接寻址是指数据存放在存储器或寄存器,在指令中只出现所需数据所在单元的内存地址。存储单元地址的地出现所需数据所在单元的内存地址。存储单元地址的地址又称为地址指针。址又称为地址指针。2022-5-30机械工业出版社Page 62022-5-30机械工业出版社Page 63.2 基本指令3、装载指令、装载指令LD(Load)、装载反指令、装载反指令
6、LDN(Load Not)与与线圈驱动指令线圈驱动指令=(Out)。 LD(Load):从梯形图左侧母线开始,连接动合触点:从梯形图左侧母线开始,连接动合触点 LDN(Load Not):从梯形图左侧母线开始,连接动:从梯形图左侧母线开始,连接动断触点断触点 =(Out):线圈输出。:线圈输出。建立地址指针;间接存取,在操作数的前面加建立地址指针;间接存取,在操作数的前面加“*”表示该操作数为一个指针;修改指针,处表示该操作数为一个指针;修改指针,处理连续数据时,通过修改指针可以很容易地存取理连续数据时,通过修改指针可以很容易地存取相邻数据。相邻数据。3.2.1 基本位操作指令2022-5-3
7、0机械工业出版社Page 72022-5-30机械工业出版社Page 74、触点串联指令、触点串联指令A(And)、)、AN(And Not) A(And):与操作指令,用于动合触点的串联。):与操作指令,用于动合触点的串联。 AN(And Not):与非操作指令,用于动断触点的串):与非操作指令,用于动断触点的串联联2022-5-30机械工业出版社Page 82022-5-30机械工业出版社Page 85、触点并联指令、触点并联指令O(Or)、)、ON(Or Not)O(Or):或操作指令,用于动合触点的并联):或操作指令,用于动合触点的并联ON(Or Not):或非操作指令,用于动断触点的
8、并联):或非操作指令,用于动断触点的并联6、置位、置位/复位指令复位指令S(Set)/R(Reset)S:置位指令,将由操作数指定的位:置位指令,将由操作数指定的位(地址)开始的地址)开始的指定数目(可从指定数目(可从1位至最多位至最多255位)的位置位)的位置“1”,并,并保持。保持。R:复位指令,将由操作数指定的位(地址)开始:复位指令,将由操作数指定的位(地址)开始的指定数目(可从的指定数目(可从1位至最多位至最多255位)的位清位)的位清“0”,并保持。并保持。7、立即存取指令、立即存取指令I(LDI,LDNI,AI,ANI,OI,ONI,I,SI,RI)它不受它不受PLC循环扫描工作
9、方式的影响,允许对输循环扫描工作方式的影响,允许对输入入/输出点进行直接快速存取。输出点进行直接快速存取。8、边沿脉冲指令边沿脉冲指令EU(Edge Up)/ED(Edge Down)上升沿脉冲指令上升沿脉冲指令 检测信号的上升沿,产生一个扫描检测信号的上升沿,产生一个扫描周期宽度的脉冲周期宽度的脉冲下降沿脉冲指令下降沿脉冲指令 检测信号的下降沿,产生一个扫描检测信号的下降沿,产生一个扫描周期宽度的脉冲周期宽度的脉冲9、逻辑结果取反指令逻辑结果取反指令NO10、空操作指令、空操作指令NOP(No Operation)使能输入有效时,执行空操作指令,将稍微延长扫描周使能输入有效时,执行空操作指令
10、,将稍微延长扫描周期长度,但是这不影响用户程序的执行,也不会使输出期长度,但是这不影响用户程序的执行,也不会使输出断开。断开。11、基本位操作指令的举例基本位操作指令的举例控制要求:使用两个按钮分别控制电动机的启动和停控制要求:使用两个按钮分别控制电动机的启动和停止。止。编程元件:编程元件:I0.0-启动按钮;启动按钮;I0.1-停止按钮;停止按钮;Q0.0-电动电动机;机;Q0.1-启动指示灯;启动指示灯;Q0.2-停止指示灯。停止指示灯。电动机启动电动机启动/停止控制方案停止控制方案1,2如图所示如图所示3.2.2 逻辑堆栈指令 1 、电路块并联指令电路块并联指令OLD(Or Load)2
11、电路块串联指令电路块串联指令ALD(And Load) 3、载入堆栈指令载入堆栈指令LDS、逻辑入栈指令、逻辑入栈指令LPS、逻辑出栈、逻辑出栈指令指令LPP、逻辑读栈指令、逻辑读栈指令LRD3.2.3 定时器指令定时器指令1、通电延时定时器指令通电延时定时器指令TON2、保持型通电延时定时器保持型通电延时定时器TONRTONR指令用于积累许多时间间隔。当定时器的输指令用于积累许多时间间隔。当定时器的输入端入端IN为为ON时,定时器开始计时,当定时器的当时,定时器开始计时,当定时器的当前值大于等于设定值时,定时器被置位,其常开触前值大于等于设定值时,定时器被置位,其常开触点闭合,常闭触点断开。
12、点闭合,常闭触点断开。4、定时器应用、定时器应用(1)定时器的串级组合定时器的串级组合 n个计时器的串级组合,可个计时器的串级组合,可扩大延时范围扩大延时范围T=T1+T2+Tn。(2)延时接通延时接通/断开电路断开电路3、断电延时定时器指令、断电延时定时器指令TOF(3)脉冲宽度可控制电路脉冲宽度可控制电路该电路在输入信号宽度不规范的情况下,要求在每该电路在输入信号宽度不规范的情况下,要求在每个输入个输入信号的上升沿产生一个宽度固定的脉冲。信号的上升沿产生一个宽度固定的脉冲。(4)闪烁电路闪烁电路闪烁电路也称为振荡电路。闪烁电路实际上就是一闪烁电路也称为振荡电路。闪烁电路实际上就是一个时钟电
13、路,它可以是等间隔的通断,也可以是个时钟电路,它可以是等间隔的通断,也可以是不等间隔的通断不等间隔的通断3.2.4 计数器指令 1、递增计数器指令递增计数器指令CTU首次扫描首次扫描CTU时,其状态位为时,其状态位为OFF,当前值为,当前值为0。当。当CU为为ON时,在每个输入脉冲的上升沿,计数器计数时,在每个输入脉冲的上升沿,计数器计数1次,次,当前寄存器加当前寄存器加1。如果当前值达到设定值。如果当前值达到设定值PV,计数器动,计数器动作,状态位为作,状态位为ON,当前值计数递增计数,最大可达,当前值计数递增计数,最大可达32 767。2、递减计数器指令递减计数器指令CTD3、增增/减计数
14、器指令减计数器指令CTUD3.2.5 比较指令 1、数值比较指令数值比较指令数值比较指令用于两个相同类型的有符号或无符号数数值比较指令用于两个相同类型的有符号或无符号数IN1和和IN2(IN1和和IN2为比较指令的操作数)的比较判断。这为比较指令的操作数)的比较判断。这里用到的比较运算符有:等于()、大于等于(里用到的比较运算符有:等于()、大于等于(=)、)、小于等于(小于等于()、小于()、小于()、不等于)、不等于()。)。2、字符串比较指令字符串比较指令3.3.1 四则运算及增减指令1、加法指令加法指令整数加法指令整数加法指令+I双整数加法指令双整数加法指令 +D实数加法指令实数加法指
15、令 +R减法指令减法指令乘法指令乘法指令除法指令除法指令增减指令增减指令3.3.2数学函数指令S7-200除了四则运算指令及增减指令外,还有一类数学函除了四则运算指令及增减指令外,还有一类数学函数指令,其分为三角函数运算指令(包括三角函数的正数指令,其分为三角函数运算指令(包括三角函数的正弦函数指令、余弦函数指令和正切函数指令)、自然对弦函数指令、余弦函数指令和正切函数指令)、自然对数和指数指令、平方根函数指令。其中,数和指数指令、平方根函数指令。其中,CPU22X系列系列仅仅支持平方根函数指令,而仅仅支持平方根函数指令,而CPU224 1.0版本以上支持版本以上支持所有的数学函数指令。所有的
16、数学函数指令。3.3.3 逻辑运算指令逻辑运算指令是对逻辑数(无符号数)进行处理,包括逻逻辑运算指令是对逻辑数(无符号数)进行处理,包括逻辑与、逻辑或、逻辑异或和逻辑取反等操作辑与、逻辑或、逻辑异或和逻辑取反等操作3.4.1 数据传送指令 (1)单个数据传送指令单个数据传送指令周期性传送指令周期性传送指令立即传送指令立即传送指令 立即传送指令分为立即读传送指令立即传送指令分为立即读传送指令(BIR)和立即写传送指令()和立即写传送指令(BIW)两种。)两种。(2)成组数据传送指令成组数据传送指令成组数据传送指令也称为块传送指令,它用来一次传送多成组数据传送指令也称为块传送指令,它用来一次传送多
17、个数据,将最多可达个数据,将最多可达255个的数据组成的个的数据组成的1个数据块,数个数据块,数据块的类型可以是字节块、字块和双字块,据块的类型可以是字节块、字块和双字块,3.4.2 移位指令 (1)逻辑移位指令逻辑移位指令 逻辑移位指令分为左移位和右移位指令两种。当每个位逻辑移位指令分为左移位和右移位指令两种。当每个位都被移出,左移位和右移位指令将用零填补每个位。都被移出,左移位和右移位指令将用零填补每个位。(2)循环移位指令)循环移位指令循环移位指令分为左循环移位和右循环移位指令。循环移循环移位指令分为左循环移位和右循环移位指令。循环移位中被移位的数据是无符号的。在移位时,存放被移位数位中
18、被移位的数据是无符号的。在移位时,存放被移位数据的编程元件的移出端既与另一端连接,又与特殊继电器据的编程元件的移出端既与另一端连接,又与特殊继电器SM1.1连接,移出位在被移到另一端的同时,也进入连接,移出位在被移到另一端的同时,也进入SM1.1(溢出),另一端自动补(溢出),另一端自动补0。(3)移位寄存器指令)移位寄存器指令SHRB移位寄存器指令将数值移入移位寄存器,此指令用于排序移位寄存器指令将数值移入移位寄存器,此指令用于排序和控制产品流或数据。和控制产品流或数据。3.4.3 字节交换指令字节交换指令字节交换指令SWAP专用于对专用于对1个字长的字型数据进行处个字长的字型数据进行处理,
19、即将字型输入数据理,即将字型输入数据IN的高位字节与低位字节进行交的高位字节与低位字节进行交换,因此又可称为半字交换指令换,因此又可称为半字交换指令3.5.1 填表指令填表指令(填表指令(ATT)()(Add ToTable)用于把指定的字型数)用于把指定的字型数据添加到数据表中。梯形图中该指令有据添加到数据表中。梯形图中该指令有2个数据输入端:个数据输入端:DATA指出被填表的字型数据或其他地址;指出被填表的字型数据或其他地址;TBL为数据表为数据表的首地址,用以指明被填数据表的位置。的首地址,用以指明被填数据表的位置。3.5.2 表取指令S7-200中,可以将数据表中的字型数据按先进先出或
20、后中,可以将数据表中的字型数据按先进先出或后进先出的方式取出送到指定的存储单元。所以表取数指进先出的方式取出送到指定的存储单元。所以表取数指令分为先进先出指令和后进先出指令两种令分为先进先出指令和后进先出指令两种3.5.3 填充指令填充指令填充指令FILL用于处理字型数据,指令功能是将字型输用于处理字型数据,指令功能是将字型输入数据入数据IN填充到从填充到从OUT开始的开始的N个存储单元中。个存储单元中。N为字为字节型数据,节型数据,3.5.4 表查找指令表查找指令(表查找指令(Table Find)是从字型数据表中找出)是从字型数据表中找出符合条件数据在数据表中的地址编号,编号范围为符合条件
21、数据在数据表中的地址编号,编号范围为099。在梯形图中该指令有。在梯形图中该指令有4个数据输入端:个数据输入端:TBL为数据表的首地址,用以指明被访问数据表的位置;为数据表的首地址,用以指明被访问数据表的位置;PTN用来描述查表条件时进行比较的数据;用来描述查表条件时进行比较的数据;INDX用来指定表中符合查找条件的数据所在的位置;CMD是比较运算的编码,它是一个14的数值,分别代表运算符=、。TBL、PTN、INDX为字型数据,CMD为字节型数据转换指令是对操作数的类型进行转换,并输出到指定转换指令是对操作数的类型进行转换,并输出到指定的目标地址中。转换指令包括数据类型转换指令、的目标地址中
22、。转换指令包括数据类型转换指令、编码和译码指令及字符串转换指令。编码和译码指令及字符串转换指令。2022-5-30机械工业出版社Page 302022-5-30机械工业出版社Page 30 数据类型转换指令的功能是将一个固定的数值,根据数据类型转换指令的功能是将一个固定的数值,根据操作指令对数据类型的需要进行相应的转换。操作指令对数据类型的需要进行相应的转换。PLC经常经常处理的数据类型有字节型数据、整数、双整数、实数和处理的数据类型有字节型数据、整数、双整数、实数和BCD码码5种。种。3.6.1 数据类型转换指令1、整数与、整数与BCD码转换指令码转换指令指令名称梯形图STL功能描述影响EN
23、O正常工作的出错条件整数到BCD码转换指令IBCDIBCD OUTEN有效时,将字整数输入数据IN转换成BCD码类型,并将结果送到OUT输出SM1.6(BCD错误)SM4.3(运行时间)0006(间接寻址)BCD码到整数转换指令BCDIBCDI OUTEN有效时,将BCD码输入数据IN转换成字整数类型,并将结构送到OUT输出2022-5-30机械工业出版社Page 312022-5-30机械工业出版社Page 312、字节型与整数转换指令字节型与整数转换指令字节型与字型整数转换指令的梯形图中的字节型与字型整数转换指令的梯形图中的IN、OUT的数的数据类型一个为整数,另一个为字节型数据。字节型数
24、据是据类型一个为整数,另一个为字节型数据。字节型数据是无符号数,整数输入数据的大小为无符号数,整数输入数据的大小为02553、整数与双整数转换指令、整数与双整数转换指令整数与双整数转换指令的梯形图中的整数与双整数转换指令的梯形图中的IN、OUT端子的数端子的数据类型为一个双整数,另一个为整数。据类型为一个双整数,另一个为整数。4、双整数与实数转换指令、双整数与实数转换指令双整数与实数转换指令分为三类:双整数与实数转换指令分为三类:ROUND指令、指令、TRUNC指令和指令和DTR指令,其中,指令,其中,ROUND和和2022-5-30机械工业出版社Page 322022-5-30机械工业出版社
25、Page 32TRUNC指令都能将实数转换成双整数,但前者将小数部指令都能将实数转换成双整数,但前者将小数部分四舍五入后转换成整数;而后者将小数部分直接舍去取分四舍五入后转换成整数;而后者将小数部分直接舍去取整。梯形图中的整。梯形图中的IN,OUT端子的数据类型都为双字型数端子的数据类型都为双字型数据。据。3.6.2 编码和译码指令编码和译码指令在在PLC中,字数据可以是中,字数据可以是16位二进制数,也可用位二进制数,也可用4位十六位十六进制数来表示,编码过程就是把字型数据中最低有效位的进制数来表示,编码过程就是把字型数据中最低有效位的位号进行编码,而译码过程是将执行数据所表示的位号对位号进
26、行编码,而译码过程是将执行数据所表示的位号对所制定单元的字型数据的对应位置所制定单元的字型数据的对应位置1。2022-5-30机械工业出版社Page 332022-5-30机械工业出版社Page 333.6.3 字符串转换指令字符串转换指令1、ASCII码到十六进制数转换指令码到十六进制数转换指令ASCII码到十六进制数转换指令码到十六进制数转换指令ATH的梯形图中的的梯形图中的IN端表端表示开始字符的字节首地址;示开始字符的字节首地址;LEN端表示字符串长度,字节端表示字符串长度,字节型,最大长度型,最大长度255;OUT端输出字节的首地址端输出字节的首地址2、十六进制数到十六进制数到ASC
27、II码转换指令码转换指令十六进制数到十六进制数到ASCII码转换指令码转换指令HTA的梯形图中的的梯形图中的IN端代端代表整数数据输入;表整数数据输入;LEN端代表转换位数,字节型,最大长端代表转换位数,字节型,最大长度度255。OUT端代表输出字节的首地址端代表输出字节的首地址3、整数到整数到ASCII码转换指令码转换指令整数到整数到ASCII码转换指令码转换指令ITA的梯形图中的的梯形图中的IN端代表整数端代表整数数据输入;数据输入;FMT端代表转换精度或转换格式(小数位的表端代表转换精度或转换格式(小数位的表示方式);示方式);OUT端代表连续端代表连续8个输出字节的首地址。个输出字节的
28、首地址。2022-5-30机械工业出版社Page 342022-5-30机械工业出版社Page 344、双整数到双整数到ASCII码转换指令码转换指令双整数到双整数到ASCII码转换指令码转换指令DTA的梯形图中的的梯形图中的IN端代表双端代表双整数数据输入;整数数据输入;FMT端代表转换精度或转化格式(小数位端代表转换精度或转化格式(小数位的表示方式);的表示方式);OUT端代表连续端代表连续12个输出字节的首地址。个输出字节的首地址。5、实数到实数到ASCII码转换指令码转换指令实数到实数到ASCII码转换指令码转换指令RTA的梯形图中的的梯形图中的IN端代表实数端代表实数数据输入;数据输
29、入;FMT端代表转换精度或转化格式(小数位的表端代表转换精度或转化格式(小数位的表示方式);示方式);OUT端代表连续端代表连续315个输出字节的首地址个输出字节的首地址3.7 3.7 程序控制类指令程序控制类指令3.7.1 结束、暂停指令和看门狗指令1、结束指令(、结束指令(END、MEND)结束指令的功能是结束主程序,它只能在主程序中使用,结束指令的功能是结束主程序,它只能在主程序中使用,不能在子程序和中断服务程序中使用不能在子程序和中断服务程序中使用2、暂停指令(、暂停指令(STOP)暂停指令的功能是使能输入有效时,立即终止程序的执暂停指令的功能是使能输入有效时,立即终止程序的执行,行,
30、PLC工作方式由工作方式由RUN切换到切换到STOP。3、看门狗指令(、看门狗指令(WDR)在在PLC中,为了避免程序出现死循环的情况,有一个专中,为了避免程序出现死循环的情况,有一个专门监视扫描周期的警戒时钟,常称为看门狗定时器门监视扫描周期的警戒时钟,常称为看门狗定时器WDT。WDT有一稍微大于程序扫描周期的定时值,有一稍微大于程序扫描周期的定时值,若出现某个扫描周期大于若出现某个扫描周期大于WDT的设定值的情况,发的设定值的情况,发出信号给出信号给CPU,做异常处理,做异常处理3.7.2 跳转指令跳转指令可以使跳转指令可以使PLC编程的灵活性大大提高,使编程的灵活性大大提高,使PLC可可
31、根据不同条件的判断,选择不同的程序段执行程序。根据不同条件的判断,选择不同的程序段执行程序。跳转指令由跳转指令(跳转指令由跳转指令(JMP)和标号指令()和标号指令(LBL)组)组成,二者必须配合使用,缺一不可。成,二者必须配合使用,缺一不可。3.7.3 循环指令循环指令由循环开始指令(循环指令由循环开始指令(FOR)和循环结束指令)和循环结束指令(NEXT)组成。)组成。FOR用来标志循环体的开始。用来标志循环体的开始。NEXT用来标记循环体的结束,无操作数。二者必须配合使用,用来标记循环体的结束,无操作数。二者必须配合使用,缺一不可。缺一不可。FOR和和NEXT之间的程序段称为循环体,每之
32、间的程序段称为循环体,每执行一次循环体,当前计数值增执行一次循环体,当前计数值增1,并且将其结果同终,并且将其结果同终值进行比较,如果大于终值,则终止循环。值进行比较,如果大于终值,则终止循环。3.7.4 子程序指令与子程序有关的操作有:建立子程序、子程序的调用和与子程序有关的操作有:建立子程序、子程序的调用和返回,与子程序有关的指令有:子程序调用和返回指返回,与子程序有关的指令有:子程序调用和返回指令。令。1、子程序调用指令和返回指令子程序调用指令和返回指令子程序调用指令子程序调用指令CALL的功能是将正在执行的程序转移的功能是将正在执行的程序转移到编号为到编号为n的子程序。在子程序执行过程
33、中,如果满足的子程序。在子程序执行过程中,如果满足条件返回指令的返回条件,就结束子程序,返回到原调条件返回指令的返回条件,就结束子程序,返回到原调用处继续执行用处继续执行2、子程序调用过程的特点、子程序调用过程的特点CRET多用于子程序的内部多用于子程序的内部子程序嵌套子程序嵌套当一个子程序被调用时,系统自动保存当前的堆栈数当一个子程序被调用时,系统自动保存当前的堆栈数据,并把堆栈顶置据,并把堆栈顶置1,堆栈中的其他置为,堆栈中的其他置为0,子程序占,子程序占有控制权有控制权累加器可在调用程序和被调用子程序之间自由传递累加器可在调用程序和被调用子程序之间自由传递3、带参数的子程序调用、带参数的
34、子程序调用(1)子程序参数。子程序最多可以传递子程序参数。子程序最多可以传递16个参数。参数在个参数。参数在子程序的局部变量表中加以定义。参数包含下列信息子程序的局部变量表中加以定义。参数包含下列信息:变量名、变量类型和数据类型。:变量名、变量类型和数据类型。(2)参数子程序调用的规则参数子程序调用的规则常数参数必须声明数据类型常数参数必须声明数据类型输入或输出参数没有自动数据类型转换功能输入或输出参数没有自动数据类型转换功能参数在调用时必须按照一定的顺序排列,显示输入参参数在调用时必须按照一定的顺序排列,显示输入参数,然后是输入输出参数,最后是输出参数。数,然后是输入输出参数,最后是输出参数
35、。(3)局部变量表的使用局部变量表的使用按照子程序指令的调用顺序,将参数值分配到局部变量按照子程序指令的调用顺序,将参数值分配到局部变量存储器,起始地址是存储器,起始地址是L0.0。使用编程软件时,地址分。使用编程软件时,地址分配是自动的配是自动的3.7.5 与ENO指令ENO(Enable Output)是在)是在S7-200的梯形图及功能的梯形图及功能块图中以功能框形式编程时的允许输出端,如果允许块图中以功能框形式编程时的允许输出端,如果允许输入有效,并且指令执行正确,输入有效,并且指令执行正确,ENO就能将能流向下就能将能流向下传递,允许程序继续执行。与传递,允许程序继续执行。与ENO指
36、令名称为指令名称为AENO3.8 3.8 特殊指令特殊指令3.8.1实时时钟指令实时时钟指令分为设置实时时钟指令和读取实时时钟指令实时时钟指令分为设置实时时钟指令和读取实时时钟指令读取实时时钟指令(读取实时时钟指令(TODR)从硬件时钟读取当前时间和)从硬件时钟读取当前时间和日期,并将它载入以地址日期,并将它载入以地址T开始的开始的8个字节时间缓冲器。个字节时间缓冲器。设置实时时钟指令(TODW)将当前时间和日期写入硬件时钟,硬件时钟以由T指定的8字节时间缓冲器开始。3.8.2中断指令所谓中断,是当控制系统执行正常程序时,系统中出现了某些急需处理的情况或特殊请求,这时系统暂时中断现行程序,转去
37、对随机发生的更紧迫事件进行处理(执行中断服务程序),当该事件处理完后,系统自动回到原来被中断的程序继续执行1.中断源中断源通信中断通信中断IO中断中断 IO中断包括外部输入中断、高速计数器中断包括外部输入中断、高速计数器中断和高速脉冲串输出中断中断和高速脉冲串输出中断时基中断时基中断 时基中断包括定时中断和定时器中断。时基中断包括定时中断和定时器中断。2. 中断程序的调用原则中断程序的调用原则中断优先级由高到低的顺序依次是:通信中断,高速脉中断优先级由高到低的顺序依次是:通信中断,高速脉冲串输出中断、外部输入中断、高速计数器中断、定冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中
38、断。在时中断、定时器中断。在CPU执行中断程序期间,对执行中断程序期间,对新出现的中断事件仍然按照中断性质和优先级的顺序新出现的中断事件仍然按照中断性质和优先级的顺序分别进行排队,形成中断队列分别进行排队,形成中断队列3、中断调用指令、中断调用指令中断源向中断源向PLC发出中断请求,经过中断判优,将优先级发出中断请求,经过中断判优,将优先级最高的中断请求送给最高的中断请求送给CPU,CPU响应中断后自动保存响应中断后自动保存逻辑堆栈、累加器和某些特殊标志寄存器位,即保护逻辑堆栈、累加器和某些特殊标志寄存器位,即保护现场。中断处理完成后,又自动恢复这些单元保存起现场。中断处理完成后,又自动恢复这
39、些单元保存起来的数据,即恢复现场。来的数据,即恢复现场。【例【例3-2】编制】编制I0.0下降沿中断程序。下降沿中断程序。设计分析设计分析网络网络1SM0.1=1,定义中断服务程序,定义中断服务程序INT0为为I0.0下降沿中下降沿中断,开全局中断;网络断,开全局中断;网络2检测到检测到I/O错误,错误,SM5.0=1,禁用禁用I0.0下降沿中断。若检测到下降沿中断。若检测到I/O错误,则返回到主错误,则返回到主程序。程序。求解过程求解过程中断调用程序如图中断调用程序如图3-74,中断服务程序如图,中断服务程序如图3-75图3-74图3-754、中断程序、中断程序中断程序亦称中断服务程序,是用
40、户为处理中断事件而中断程序亦称中断服务程序,是用户为处理中断事件而事先编制的程序,编程时可以用中断程序入口的中断事先编制的程序,编程时可以用中断程序入口的中断程序号识别每一个中断程序。中断服务程序由中断程程序号识别每一个中断程序。中断服务程序由中断程序号开始,以无条件返回指令结束序号开始,以无条件返回指令结束3.8.3 高速计数器指令高速计数器可用来累计比高速计数器可用来累计比PLC扫描频率高的脉冲输入(扫描频率高的脉冲输入(30Hz),利用产生的中断事件完成预定的操作。高速),利用产生的中断事件完成预定的操作。高速计数指令有计数指令有2条:定义高速计数器指令条:定义高速计数器指令HDEF和执
41、行高和执行高速计数器指令速计数器指令HSC,使用,使用HSC指令前,必须先执行指令前,必须先执行HDEF指令对高速计数器进行定义。指令对高速计数器进行定义。1、高速计数器地址编号、高速计数器地址编号两条高速计数器指令的操作数里都需指明高速计数器编两条高速计数器指令的操作数里都需指明高速计数器编号,告知号,告知CPU是哪个高速计数器要执行计数操作。编是哪个高速计数器要执行计数操作。编号是号是05之间的常数之间的常数2、高速计数器的工作模式在执行定义高速计数器指令、高速计数器的工作模式在执行定义高速计数器指令HDEF时,需确定高速计数器的工作模式时,需确定高速计数器的工作模式MODE。选。选择高速
42、计数器的工作模式时,需先了解高速计数器工择高速计数器的工作模式时,需先了解高速计数器工作模式的输入点和确定高速计数器工作模式的控制字作模式的输入点和确定高速计数器工作模式的控制字节,然后合理地选择合适的高速计数器及其工作模式节,然后合理地选择合适的高速计数器及其工作模式,最后在高速计数器工作时利用状态字监视其工作状,最后在高速计数器工作时利用状态字监视其工作状态。态。【例【例3-3】 包装数粒机控制系统应用高速计数器对料斗出包装数粒机控制系统应用高速计数器对料斗出来的产品进行累计,集料斗中检测到来的产品进行累计,集料斗中检测到60粒产品时,自粒产品时,自动打开集料斗的下方的气动阀门,完成瓶装产
43、品。采动打开集料斗的下方的气动阀门,完成瓶装产品。采用用PLC为为S7-200CPU224。设计分析设计分析选用高速计数器选用高速计数器HC0,工作模式为,工作模式为0,采用当前值等于设,采用当前值等于设定值的中断事件,中断事件号为定值的中断事件,中断事件号为12,启动瓶装子程序,启动瓶装子程序。主程序的功能是。主程序的功能是SM0.1=1,调用高速计数器初始化,调用高速计数器初始化子程序子程序SBR0。子程序的功能是。子程序的功能是SM0.0=1,将控制字写,将控制字写入入SMB37,执行,执行HDEF指令,选择指令,选择HC0,工作模式为,工作模式为0,向,向SMD38写入当前值写入当前值
44、0,将设定值,将设定值60传送传送SMD42,执行中断连接指令,将中断程序执行中断连接指令,将中断程序INT0与中断事件与中断事件12连连接起来,开接起来,开全局中断,执行高速计数器指令全局中断,执行高速计数器指令HSC。中断服务程序的功。中断服务程序的功能是能是SM0.0=1,调用瓶装子程序,调用瓶装子程序SBR1,更改新的设定值,更改新的设定值和初始值。和初始值。求解过程求解过程主程序功能如图主程序功能如图3-81,该子程序,该子程序1功能如图功能如图3-82,该中断服,该中断服务程序务程序0功能如图功能如图3-83。图3-81包装数粒机控制程序的主程序图3-82包装数粒机控制程序的子程序
45、图3-83包装数粒机控制程序的中断服务程序3.8.4 高速脉冲输出指令高速脉冲输出功能是指在高速脉冲输出功能是指在PLC的某些输出端产生高速脉的某些输出端产生高速脉冲,用来驱动负载,实现高速输出和精确控制,冲,用来驱动负载,实现高速输出和精确控制,高速脉冲输出指令可以输出两种类型的方波信号,在精高速脉冲输出指令可以输出两种类型的方波信号,在精确位置控制中有很重要的应用。确位置控制中有很重要的应用。1、高速脉冲输出端、高速脉冲输出端2、高速脉冲的输出形式、高速脉冲的输出形式 高速脉冲输出有高速脉冲串输高速脉冲输出有高速脉冲串输出出PTO和宽度可调脉冲输出和宽度可调脉冲输出PWM两种形式两种形式3
46、.8.5 PID指令1、PID指令指令 PID指令的功能是进行指令的功能是进行PID计算计算2、PID指令的参数表及初始化指令的参数表及初始化3、PID回路的组合选择回路的组合选择在许多控制场合,也许只需在许多控制场合,也许只需PID算法中的算法中的P项(比例项)项(比例项)或或I项(积分项),或项(积分项),或PI项。对这种回路控制的功能组合项。对这种回路控制的功能组合的选择可通过对相关参数的设定来完成的选择可通过对相关参数的设定来完成4、输入模拟量的转换及归一化、输入模拟量的转换及归一化5、输出模拟量转换为工程实际值、输出模拟量转换为工程实际值6、PID指令的控制方式指令的控制方式7、PI
47、D指令出错情况指令出错情况【例【例5-6】某水塔为居民区供水,为保证水压不变,需保】某水塔为居民区供水,为保证水压不变,需保持水位为满水量的持水位为满水量的75%。为此需要用水泵供水,水泵。为此需要用水泵供水,水泵电机有变频调速器驱动,水位通过漂浮在水面上的水电机有变频调速器驱动,水位通过漂浮在水面上的水位计检测。供水系统在刚开始工作时为手动控制,当位计检测。供水系统在刚开始工作时为手动控制,当水位达到满水位的水位达到满水位的75%时,无扰动的转换达到时,无扰动的转换达到PID控控制。由制。由PID控制变频调速器,从而控制水泵电机的转控制变频调速器,从而控制水泵电机的转速。速。设计分析设计分析
48、该控制系统的控制要求如下所述。该控制系统的控制要求如下所述。 (1)因为需保持水位为满水量的因为需保持水位为满水量的75%,所以可知调节量为,所以可知调节量为水位,给定量为满水位的水位,给定量为满水位的 75%。因为由水泵供水保持水位,所以控制量应为供。因为由水泵供水保持水位,所以控制量应为供水水泵的转速。水水泵的转速。(2)水水位的变化范围是满水位的位的变化范围是满水位的0%100%,水泵电机,水泵电机的转速是额定转速的的转速是额定转速的0%100%,所以水位跟电机转,所以水位跟电机转速均为单极性信号。速均为单极性信号。(3)因为水塔里的水会随着居民的使用情况而减少,所因为水塔里的水会随着居
49、民的使用情况而减少,所以应选择以应选择PI控制。本例选择控制。本例选择KC=0.25,TS=0.1s,TI=30s。PID参数控制表存放在参数控制表存放在VB100开始的开始的36个字节个字节中。中。求解过程求解过程本例程序由本例程序由3部分组成,分别为水位控制主程序、部分组成,分别为水位控制主程序、PID参参数初始化子程序和数初始化子程序和PID控制定时中断程序,其中控制定时中断程序,其中PID控控制定时中断程序实现调节量采样和制定时中断程序实现调节量采样和PID运算。运算。STL功能说明网络1PLC开始工作的第一个扫描周期;调用PID参数初始化子程序SBR0(见表5-47)STL功能说明网
50、络1PLC处于RUN模式时,即SM0.0=1;将给定值0.75(满水位的75%)送到VD104;将增益0.28送到VD112;将采样时间0.1s送到VD116;将积分常数30送到VD120;因不用微分作用,所以将0送到VD124;将常数100送到;MB34,设定定时中断的时间间隔为100ms;每次定时时间到则调用中断程序0(见表5-48);开全局中断STL功能说明网络1PLC处于RUN工作模式时,即SM0.0=1;清累加器AC0;读入连接在模拟量通道0(AIW0)上的水位值;将水位值(AC0)由双整数转换为实数(即浮点数);对单极性的水位值进行归一化;将水位值的归一化结果填入PID参数控制表网
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。