PLC应用技术第六章 功能指令_第1页
PLC应用技术第六章 功能指令_第2页
PLC应用技术第六章 功能指令_第3页
PLC应用技术第六章 功能指令_第4页
PLC应用技术第六章 功能指令_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、功能指令功能指令20世纪80年代开始,众多的PLC制造商就在小型机上加入了功能指令或称应用指令。这些功能指令的出现,大大拓宽了PLC的应用范围。 S7200系列系列PLC的功能指令极其丰富,主要包括以下几方面:的功能指令极其丰富,主要包括以下几方面:数据表处理指令PID指令 程序控制指令中断指令通信指令传送指令数据转换指令算术与逻辑运算指令移位、循环移位及填充指令高速计数器处理指令注意:注意:n由于由于S7-200PLC不支持完全数据类型检查。不支持完全数据类型检查。因此,格外要注意操作数对应的数据类型应与因此,格外要注意操作数对应的数据类型应与指令标识符相匹配。指令标识符相匹配。 MOV-B

2、ENINOUTENOMOV-WENINOUTENOMOV-DWENINOUTENOMOV-RENINOUTENOMOVB IN,OUTMOVW IN,OUTMOVDW IN,OUTMOVR IN,OUT例:例:若若I0.1=1,则将,则将VW100的数据传送到的数据传送到AC0MOVW VW100,AC0I0.1MOV-WENINOUTENOVW100AC0VW1001046MSBLSB1046AC0MSBLSBVD10一、传送指令数据传送指令传送指令对应的操作数MOVB IN,OUTMOVW IN,OUTMOVDW IN,OUTBLKMOV-DWENINOUTENONBLKMOV-WENIN

3、OUTENONBLKMOV-BENINOUTENON数据块传送指令数据块传送指令传送字节立即写(BIW)指令,将从输入端(IN)指定字节地址的内容写入输出端(OUT)指定字节地址的物理输出点(QB)。传送字节立即读(传送字节立即读(BIR)指令,读取输入端()指令,读取输入端(IN)指定字节地址的物理输入)指定字节地址的物理输入点(点(IB)的值,并写入输出端()的值,并写入输出端(OUT)指定字节地址的存储单元中。)指定字节地址的存储单元中。传送字节立即读传送字节立即读传送字节立即写传送字节立即写MOV-BIRENINOUTENOBIW IN,OUTMOV-BIWENINOUTENOBIR

4、IN,OUT传送字节立即读、写指令二、数学运算指令二、数学运算指令1.加法指令加法指令+I IN1,OUT+D IN1,OUT+R IN1,OUTADD-IENIN1OUTENOIN2ADD-DIENIN1OUTENOIN2ADD-RENIN1OUTENOIN2执行加法操作时,将操作数IN2与OUT共用一个地址单元,因而在语句表中IN1+OUT=OUTADD-IENIN1OUTENOIN2SM0.0VW10VW23VW23LD SM0.0+I VW10,VW23MOVW VW28,VW23VW282.减法指令-I IN2,OUT-D IN2,OUT-R IN2,OUTSUB-IENIN1OUT

5、ENOIN2SUB-DIENIN1OUTENOIN2SUB-RENIN1OUTENOIN2执行减法操作时,将操作数IN1与OUT共用一个地址单元,因而语句表中OUT-IN2=OUT3.乘法指令*I IN1,OUT*D IN1,OUT*R IN1,OUTMUL-IENIN1OUTENOIN2MUL-DIENIN1OUTENOIN2MUL-RENIN1OUTENOIN2MUL IN1,OUTMULENIN1OUTENOIN2执行乘法操作时,将操作数IN2与OUT共用一个地址单元(整数完全乘法指令的IN2与OUT的低16位用的是同地址单元),因而语句表中IN1OUT=OUT整数完全乘法指令,把输入端

6、(IN1、IN2)指定的两个16位整数相乘,产生一个32位乘积 .4.除法指令/I IN2,OUT/D IN2,OUT/R IN2,OUTDIV-IENIN1OUTENOIN2DIV-DIENIN1OUTENOIN2DIV-RENIN1OUTENOIN2DIV IN2,OUTDIVENIN1OUTENOIN2将操作数IN1与OUT共用一个地址单元 整数完全除法指令整数完全除法指令 操作数操作数IN1与与OUT的低的低16位用的是同地址单元位用的是同地址单元VD30003115VW300VW302LD SM0.0DIV VW10,VD20余数商VW20VW22ADD-IENIN1OUTENOIN

7、2SM0.0VW10VD20VW2232bit的结果 16bit有符号整数 IN1(16bit) IN2(16bit) =32(bit)结果)结果 (OUT) 其中高其中高16位是余数,低位是余数,低16位是商位是商 四则运算举例四则运算举例 AC0 DIV VW120,VD200/R VD130,VD400I0.0ADDIENENENENIN1IN1IN1IN1IN2IN2IN2IN2OUTOUTOUTOUTENOENOENOENOAC1AC0AC1VW102VD100VW202VD200VW120VD300VD400VD130MULDIVDIVRLD I0.0+I AC1,AC0MUL A

8、C1,VD100MOVR VD300,VD400IN1与OUT不是同一地址单元加法、减法、乘法指令遇到上述情况,也可作类似的处理。 5.加1指令 INC-BENINOUTENOITD IN, OUTINC-WENINOUTENODTI IN, OUTINC-DWENINOUTENODTI IN, OUTDEC-BENINOUTENOITD IN, OUTDEC-WENINOUTENODTI IN, OUTDEC-DWENINOUTENODTI IN, OUT6.减1指令三、转换指令三、转换指令n1 1BCDBCD码与整数的转换码与整数的转换n2 2双字整数与实数的转换双字整数与实数的转换n3

9、3双整数与整数的转换双整数与整数的转换n4. 4. 字节与整数的转换字节与整数的转换 BCD码转为整数(BCDI)指令,将输入端(IN)指定的BCD码转换成整数,并将结果存放到输出端(OUT)指定的存储单元中去。输入数据的范围是0到9999(BCD码)。整数转为BCD码(IBCD)指令,将输入端(IN)指定的整数转换成BCD码,并将结果存放到输出端(OUT)指定的存储单元中去。输入数据的范围是0到 9999。指令影响的特殊存储器位:SM1.6(非法BCD)BCD-IENINOUTENOIBCD OUTI-BCDENINOUTENOBCDI OUT无符号操作1BCD码与整数的转换转换指令转换指令

10、DI-RENINOUTENOROUND IN, OUTROUNDENINOUTENOTRUNCENINOUTENOTRUNC IN, OUTDTR IN, OUTDI-R指令:将输入端(IN)指定的32位有符号整数转换成32位实数ROUND取整指令,转换时实数的小数部分四舍五入。实数的小数部分四舍五入。TRUNC取整指令,实数舍去小数部分舍去小数部分后,转换成32位有符号整数。实数转为双字整数指令可分为四舍五入取整(ROUND)和舍去尾数后取整(TRUNC)指令。取整指令被转换的输入值应是有效的实数,如果实数值太大,使输出取整指令被转换的输入值应是有效的实数,如果实数值太大,使输出无法表示,那

11、末溢出位(无法表示,那末溢出位(SM1.1)被置位。)被置位。2双字整数与实数的转换双字整数与实数的转换3双字整数与整数的转换双字整数与整数的转换DI-IENINOUTENOITD IN, OUTI-DIENINOUTENODTI IN, OUT输入端(IN)的有符号双整数转换成整数,并存入OUT。被转换的输入值应是有效的双整数,否则溢出位(SM1.1)被置位。欲将整数转换为实数,可先用欲将整数转换为实数,可先用ITD指令把整数转指令把整数转换为双整数,然后再用换为双整数,然后再用DTR指令把双整数转换指令把双整数转换为实数。为实数。例:将计数器中的数值(英寸)转换为厘米:1英寸2.54厘米1

12、002.54VD8四、移位指令四、移位指令和循环移位移位和循环移位指令均为无符号数操作。移位和循环移位指令均为无符号数操作。右移位指令,把输入端(右移位指令,把输入端(IN)指定的数据右移)指定的数据右移N位,结果存位,结果存入入OUT。(移位后的空位自动补移位后的空位自动补0)1右移位指令右移位指令SRB OUT,NSHR-BENINOUTENONSHR-WENINOUTENONSHR-DWENINOUTENONSRW OUT,NSRD OUT,N2左移位指令3、循环右移位、循环右移位RRB OUT,NROR-BENINOUTENONROR-WENINOUTENONROR-DWENINOUT

13、ENONRRW OUT,NRRD OUT,N4、循环左移位、循环左移位字节、字、双字循环移位指令的实际移动位数R O R _ BE N E N OI NO U TNR O R _ WE N E N OI NO U TNR O R _ D WE N E N OI NO U TNR R B O U T ,N R R W O U T ,N R R D O U T ,NV B 1 0 04V B 1 0 0 V W 1 0 0V W 1 0 0V D 1 0 0V D 1 0 01 21 0N若若大于或等于大于或等于8、16、32,那么在执行循环移位前,先对N取以8、16、32为底的模,其结果其结果0

14、7、015、031为实际移动位数。为实际移动位数。 1110 0010 1010 1101VW200001 0101 0110 1000VW20移位前移位后111溢出MW10MW101100 0000 0010 0001MW100111 0000 0000 1000MW10移位前移位后应用举例18段码指令段码指令nSEG指令将输入的字节型数据低指令将输入的字节型数据低4位位 (16#0F)转换转换成七段显示码,送入输出端成七段显示码,送入输出端七段显示编码aVB1005QB06DSEG0110 11010000 0101七、程序控制指令七、程序控制指令1有条件结束指令(有条件结束指令(END)

15、 p执行条件成立时结束主程序返回主程序起点。执行条件成立时结束主程序返回主程序起点。p条件结束指令用在无条件结束指令条件结束指令用在无条件结束指令(MEND(MEND)之前。)之前。pMicro/WIN32Micro/WIN32自动在主程序结束时加上一个无条件结束自动在主程序结束时加上一个无条件结束指令指令MENDMEND。p条件结束指令不能在子程序或中断程序中使用。条件结束指令不能在子程序或中断程序中使用。2暂停指令(暂停指令(STOP)从运行模式(从运行模式(RUNRUN)进入停止模式()进入停止模式(STOPSTOP),立即终止程序的执行),立即终止程序的执行 3监视定时器复位指令(监视

16、定时器复位指令(WDR)设置系统监视定时器设置系统监视定时器WTD,WTD,定时时间为定时时间为100100300ms,300ms,扫描到扫描到WTDWTD时,时,WTDWTD将复位将复位正常工作时:WTD及时复位;故障时:不能复位,会报警并终止系统运行;使用WDR指令:用户程序长执行中断程序的时间长循环指令使扫描周期延长4跳转与标号指令跳转与标号指令跳转指令和相应的标号指令必须用在同一个程序段中 02555循环指令(For,Next)循环开始循环开始循环结束循环结束INDX:当前循环次数计数器INIT:起始值FINAL:结束值FOR与NEXT必须成套使用举例举例 8 8个个1212位二进制数

17、位二进制数存放在存放在VW10VW10开始的存开始的存储区内,在储区内,在I0.3I0.3的上的上升沿,用循环指令求升沿,用循环指令求平均值,并将结果存平均值,并将结果存放在放在VW0VW0中。中。6子程序无参数带参数调用子程序带参数调用子程序主程序子程序局部变量表局部变量表注意注意在中断程序和子程序中可以调用子程序主程序和子程序共用累加器子程序中的定时器在停止调用时:100ms定时器将停止计时,当前值不变,重新调用时继续计时1ms和10ms定时器将继续定时,定时时间到,位变为1,可以在子程序之外起作用子程序内的定时器的位状态保持不变例:当例:当I0.1I0.1为为ONON时,定时器时,定时器

18、T32T32开始定时,产生开始定时,产生每秒每秒1 1次的周期脉冲。次的周期脉冲。T32T32每次定时时间到时调用每次定时时间到时调用一个子程序,在子程序中将模拟量输入一个子程序,在子程序中将模拟量输入AIW0AIW0的值的值送入送入VW10VW10,设计主程序和子程序,设计主程序和子程序对特定的内部和外部事件作快速响应 八、中断指令 中断程序不是由用户程序调用,而是在中断事件中断程序不是由用户程序调用,而是在中断事件发生时由操作系统调用发生时由操作系统调用注意:注意:在中断程序中不能改写其他程序使用在中断程序中不能改写其他程序使用的存储器,在中断程序中可以调用一级子程序,的存储器,在中断程序

19、中可以调用一级子程序,累加器和逻辑堆栈在中断程序和被调用的子程累加器和逻辑堆栈在中断程序和被调用的子程序中是公用的,序中是公用的,设计时应设计时应“越短越好越短越好”(一)全局中断允许、全局中断禁止指令 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0全局地允许全局地允许所有被连接所有被连接的中断事件的中断事件 全局地禁止全局地禁止处理所有

20、中处理所有中断事件断事件 pCPUCPU进入进入 RUN RUN 模式时模式时自动禁止了中断。自动禁止了中断。p在在RUNRUN模式执行全局模式执行全局中断允许指令(中断允许指令(ENIENI)后,允许所有中断。后,允许所有中断。 (一)中断连接指令 与与 中断事件中断事件 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0用来建立某个中断事

21、用来建立某个中断事件(件(EVNTEVNT)和某个中断)和某个中断程序(程序(INTINT)之间的联)之间的联系。系。该中断事件发生时执该中断事件发生时执行相关的中断程序行相关的中断程序 中断事件号事件号 中断描述 优先组 优先组中的 优先级 8 通信口0 :接收字符 0 9 通信口0 :发送信息完成 0 2 3 通信口0 :接收信息完成 0 2 4 通信口1 :接收信息完成 1 2 5 通信口1 :接收字符 1 2 6 通信口1 :发送信息完成 通信(最高) 1 1 9 P T O 0 完成脉冲数输出 0 2 0 P T O 1 完成脉冲数输出 1 0 1 0 . 0上升沿 2 2 1 0

22、. 1上升沿 3 4 1 0 . 2上升沿 4 6 1 0 . 3上升沿 5 1 1 0 . 0下降沿 6 3 1 0 . 1下降沿 7 5 1 0 . 2下降沿 8 7 1 0 . 3下降沿 9 1 2 H S C 0 C V= P V(当前值= 设定值) 1 0 2 7 H S C 0 输入方向改变 1 1 2 8 H S C 0 外部复位 1 2 1 3 H S C 1 C V= P V(当前值= 设定值) 1 3 1 4 H S C 1输入方向改变 1 4 1 5 H S C 1 外部复位 1 5 1 6 H S C 2 C V= P V(当前值= 设定值) 1 6 1 7 H S C

23、 2 输入方向改变 1 7 1 8 H S C 2 外部复位 1 8 3 2 H S C 3 C V= P V(当前值 = 设定值) 1 9 2 9 H S C 4 C V= P V(当前值 = 设定值) 2 0 3 0 H S C 4 输入方向改变 2 1 3 1 H S C 4 外部复位 2 2 3 3 H S C 5 C V= P V(当前值 = 设定值) I / O (中等) 2 3 1 0 定时中断0 0 1 1 定时中断1 1 2 1 定时器T 3 2 C T = P T中断 2 2 2 定时器T 9 6 C T = P T中断 定时(最低) 3 事件号 中断描述 优先组 优先组中

24、的 优先级 8 通信口0 :接收字符 0 9 通信口0 :发送信息完成 0 2 3 通信口0 :接收信息完成 0 2 4 通信口1 :接收信息完成 1 2 5 通信口1 :接收字符 1 2 6 通信口1 :发送信息完成 通信(最高) 1 1 9 P T O 0 完成脉冲数输出 0 2 0 P T O 1 完成脉冲数输出 1 0 1 0 . 0上升沿 2 2 1 0 . 1上升沿 3 4 1 0 . 2上升沿 4 6 1 0 . 3上升沿 5 1 1 0 . 0下降沿 6 3 1 0 . 1下降沿 7 5 1 0 . 2下降沿 8 7 1 0 . 3下降沿 9 1 2 H S C 0 C V =

25、 P V (当前值= 设定值) 1 0 2 7 H S C 0 输入方向改变 1 1 2 8 H S C 0 外部复位 1 2 1 3 H S C 1 C V = P V (当前值= 设定值) 1 3 1 4 H S C 1输入方向改变 1 4 1 5 H S C 1 外部复位 1 5 1 6 H S C 2 C V = P V (当前值= 设定值) 1 6 1 7 H S C 2 输入方向改变 1 7 1 8 H S C 2 外部复位 1 8 3 2 H S C 3 C V = P V (当前值 = 设定值) 1 9 2 9 H S C 4 C V = P V (当前值 = 设定值) 2 0

26、 3 0 H S C 4 输入方向改变 2 1 3 1 H S C 4 外部复位 2 2 3 3 H S C 5 C V = P V (当前值 = 设定值) I / O (中等) 2 3 1 0 定时中断0 0 1 1 定时中断1 1 2 1 定时器T 3 2 C T = P T中断 2 2 2 定时器T 9 6 C T = P T中断 定时(最低) 3 中断事件 中断程序多个中断事件可调用同一个中断程序 L D S M 0 . 1E N IL D S M 5 . 0D T C H 0L D M 5 . 0D I S IA T C H I N T 4, 0I N T _ 40A T C HE

27、NI N TE V N TE N OD T C HE NE V N TE N O0S M 0 . 1M 5 . 0D I S IE N IS M 5 . 0M A I N P R O G R A M O B 1L D S M 5 . 0C R E T IR E T II N T E R R U P T 4S M 5 . 0一个中断事件不能同时与多个中断程序建立连接,否则,系统默认执行这些中断程序中的最后一个。(一)中断分离指令 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0S

28、M0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0截断某中断事件和中截断某中断事件和中断程序之间的联系断程序之间的联系单独单独禁止某中断事件禁止某中断事件 (三) 中断返回指令 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4 ,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0有条件中断返回指有条件中断

29、返回指令令(CRETICRETI),根,根据控制的条件从中据控制的条件从中断程序中返回到主断程序中返回到主程序程序 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0中断程序中中断程序中不能使用不能使用:n全局中断禁止指令全局中断禁止指令DISIn全局中断允许指令全局中断允许指令ENIn高速计数器指令高速计数器指令HDEFn顺序控制继电器指令

30、顺序控制继电器指令LSCRn有条件结束指令有条件结束指令END。(四) 中断的分类 n通讯口中断通讯口中断 nI/O中断中断 n时基中断时基中断 1.通信口中断事件号 中断描述 优先组 优先组中的 优先级 8 通信口0:接收字符 0 9 通信口0:发送信息完成 0 23 通信口0:接收信息完成 0 24 通信口1:接收信息完成 1 25 通信口1:接收字符 1 26 通信口1:发送信息完成 通信(最高) 1 19 PTO 0 完成脉冲数输出 0 20 PTO 1 完成脉冲数输出 1 0 10.0上升沿 2 2 10.1上升沿 3 4 10.2上升沿 4 6 10.3上升沿 5 1 10.0下降

31、沿 6 3 10.1下降沿 7 5 10.2下降沿 8 7 10.3下降沿 9 12 HSC0 CV=PV(当前值=设定值) 10 27 HSC0 输入方向改变 11 28 HSC0 外部复位 12 13 HSC1 CV=PV(当前值=设定值) 13 14 HSC1输入方向改变 14 15 HSC1 外部复位 15 16 HSC2 CV=PV(当前值=设定值) 16 17 HSC2 输入方向改变 17 18 HSC2 外部复位 18 32 HSC3 CV=PV(当前值 = 设定值) 19 29 HSC4 CV=PV(当前值 = 设定值) 20 30 HSC4 输入方向改变 21 31 HSC4

32、 外部复位 22 33 HSC5 CV=PV(当前值 = 设定值) I/O(中等) 23 10 定时中断0 0 11 定时中断1 1 21 定时器T32 CT = PT中断 2 22 定时器T96 CT = PT中断 定时(最低) 3 利用接受和发送中断来简化程序对通信的控制利用接受和发送中断来简化程序对通信的控制2.I/O中断事件号 中断描述 优先组 优先组中的 优先级 8 通信口0:接收字符 0 9 通信口0:发送信息完成 0 23 通信口0:接收信息完成 0 24 通信口1:接收信息完成 1 25 通信口1:接收字符 1 26 通信口1:发送信息完成 通信(最高) 1 19 PTO 0

33、完成脉冲数输出 0 20 PTO 1 完成脉冲数输出 1 0 10. 0上升沿 2 2 10. 1上升沿 3 4 10. 2上升沿 4 6 10. 3上升沿 5 1 10. 0下降沿 6 3 10. 1下降沿 7 5 10. 2下降沿 8 7 10. 3下降沿 9 12 HSC0 CV=PV(当前值=设定值) 10 27 HSC0 输入方向改变 11 28 HSC0 外部复位 12 13 HSC1 CV=PV(当前值=设定值) 13 14 HSC1输入方向改变 14 15 HSC1 外部复位 15 16 HSC2 CV=PV(当前值=设定值) 16 17 HSC2 输入方向改变 17 18 H

34、SC2 外部复位 18 32 HSC3 CV=PV(当前值 = 设定值) 19 29 HSC4 CV=PV(当前值 = 设定值) 20 30 HSC4 输入方向改变 21 31 HSC4 外部复位 22 33 HSC5 CV=PV(当前值 = 设定值) I/ O(中等) 23 10 定时中断0 0 11 定时中断1 1 21 定时器T32 CT = PT中断 2 22 定时器T96 CT = PT中断 定时(最低) 3 事件号 中断描述 优先组 优先组中的 优先级 8 通信口0:接收字符 0 9 通信口0:发送信息完成 0 23 通信口0:接收信息完成 0 24 通信口1:接收信息完成 1 2

35、5 通信口1:接收字符 1 26 通信口1:发送信息完成 通信(最高) 1 19 PTO 0 完成脉冲数输出 0 20 PTO 1 完成脉冲数输出 1 0 10. 0上升沿 2 2 10. 1上升沿 3 4 10. 2上升沿 4 6 10. 3上升沿 5 1 10. 0下降沿 6 3 10. 1下降沿 7 5 10. 2下降沿 8 7 10. 3下降沿 9 12 HSC0 CV=PV(当前值=设定值) 10 27 HSC0 输入方向改变 1 1 28 HSC0 外部复位 12 13 HSC1 CV=PV(当前值=设定值) 13 14 HSC1输入方向改变 14 15 HSC1 外部复位 15

36、16 HSC2 CV=PV(当前值=设定值) 16 17 HSC2 输入方向改变 17 18 HSC2 外部复位 18 32 HSC3 CV=PV(当前值 = 设定值) 19 29 HSC4 CV=PV(当前值 = 设定值) 20 30 HSC4 输入方向改变 21 31 HSC4 外部复位 22 33 HSC5 CV=PV(当前值 = 设定值) I / O(中等) 23 10 定时中断0 0 1 1 定时中断1 1 21 定时器T32 CT = PT中断 2 22 定时器T96 CT = PT中断 定时(最低) 3 3.时基中断:n定时中断n定时器中断定时中断ENSBR_0ENMOV_BEN

37、INENOOUTSMB34INT_010ATCHENINTEVNTENOSM0.0100( )ENISM0.1MOV_WENINOUTENOAIW4SM0.0VW100 OB1INT 0SBR 0LD SM0.1CALL SBR_0LD SM0.0MOVB 100, SMB34ATCH INT_0, 10ENILD SM0.0MOVW AIW4, VW100100ms SMB34建立中断连接100ms定时采集模拟量输入值按指定的周期按指定的周期时间循环执行时间循环执行当定时中断设定的当定时中断设定的周期时间到,定时周期时间到,定时中断事件把控制权中断事件把控制权交给相应的中断程序。交给相应的中

38、断程序。定时中断一旦被允许,定时中断一旦被允许,就会按指定的时间间就会按指定的时间间隔反复执行被连接隔反复执行被连接的中程序的中程序定时中断的周期时间n定时中断定时中断0/1的周期时间的周期时间 SMB34/35n改变周期时间:修改改变周期时间:修改SMB34/35中的值,必须重新建立中的值,必须重新建立中断程序与定时中断事件的连接。中断程序与定时中断事件的连接。周期时间:周期时间:1 1255ms255ms周期增量:周期增量:1ms1ms定时中断的应用n常用定时中断以固定的时间间隔去控制模拟量的采集和执行PID回路程序。E NS B R _ 0E NM O V _ BE NI NE N OO

39、 U TS M B 3 4I N T _ 01 0A T C HE NI N TE V N TE N OS M 0 . 01 0 0( )E N IS M 0 . 1M O V _ WE NI NO U TE N OA I W 4S M 0 . 0V W 1 0 0 O B 1I N T 0S B R 0L D S M 0 . 1C A L L S B R _ 0L D S M 0 . 0M O V B 1 0 0 , S M B 3 4A T C H I N T _ 0 , 1 0E N IL D S M 0 . 0M O V W A I W 4 , V W 1 0 01 0 0 ms S

40、M B 3 4建立中断连接1 0 0 ms 定时采集模拟量输入值ENSBR_0ENMOV_BENINENOOUTSMB34INT_010ATCHENINTEVNTENOSM0.0100( )ENISM0.1MOV_WENINOUTENOAIW4SM0.0VW100 OB1INT 0SBR 0LD SM0.1CALL SBR_0LD SM0.0MOVB 100, SMB34ATCH INT_0, 10ENILD SM0.0MOVW AIW4, VW100100ms SMB34建立中断连接100ms定时采集模拟量输入值定时器中断n使用1ms分辨率的定时器T32和T96当中断被允许,定时器的当前值等

41、于设定值时,当中断被允许,定时器的当前值等于设定值时,在在CPU的的1ms定时刷新中,执行被链接的中断程序定时刷新中,执行被链接的中断程序(五)中断优先级 n通讯通讯(最高)nI/O中断中断(中等)n时基中断时基中断(最低)中断指令举例例:用定时中断0,每100ms将VB0加1,VB0到100时关闭定时中断,并将Q0.0置1,设计主程序和中断程序九、PID回路指令 用PLC实现模拟量闭环控制系统PLCc(t)M(t)SP(n)e(n)M(n)PV(n)PV(t)模拟量输入端子(一)PID算法 PID控制器调节回路输出。为使系统达到稳定状态,应让偏差(e)趋于零。 dtdeKMedtKeKtMc

42、initialtcc/)( 0 偏差(偏差(e e)= = 给定值(给定值(SPSP)过程变量()过程变量(PVPV)PID控制器的输出量控制器的输出量M(t):比例项比例项积分项积分项初始值初始值微分项微分项随时间t连续变化的模拟量PID回路的增益回路的增益将连续函数离散化 )(11nnDinitialniiInCneeKMeKeKMdtdeKMedtKeKtMcinitialtcc/)( 0 Mn在第在第n采样时刻采样时刻PID回路输出的计算值;回路输出的计算值;en在第在第n次采样时刻的偏差值;次采样时刻的偏差值;en-1在第在第n-1采样时刻的偏差值(偏差前值);采样时刻的偏差值(偏差

43、前值);KI积分项的系数;积分项的系数;KD微分项的系数;微分项的系数;)(1nnDnInCneeKMXeKeKMnnnnMDMIMPM)(11nnDinitialniiInCneeKMeKeKM计算中,只需保留积分项前值(计算中,只需保留积分项前值(MX),即),即: :从第一个采样周期到当前采样周期的所有误差的累积值从第一个采样周期到当前采样周期的所有误差的累积值将连续函数离散化 比例项、积分项、微分项n比例项比例项 MPn=KC (SPn-PVn-)n积分项积分项 MIn= KCTS / TI (SPn-PVn)+MXnn微分项微分项 MDn=KCTD / TS(PVn-1-PVn)nn

44、nnMDMIMPM9个参数个参数KIKD进行PID运算的9个参数:n过程变量当前值过程变量当前值 PVnn给定值给定值 SPnn增益增益 KC n采样时间采样时间 TS n积分时间积分时间 TIn微分时间微分时间 TDn积分项前值积分项前值 MX n过程变量前值过程变量前值 PVn-1 n输出值输出值 Mn(二)PID回路指令 nPID回路指令运用回路表中的输入信息和组态信息,进行PID运算,编程极其简便。(组态编程,即填表式编程) PIDENTBLLOOPENOVB100I0.02回路回路号号0-70-7回路表的回路表的起始地址起始地址限用限用VBVB区区域域)PVPV()T/T(KMX)P

45、VSP()T/T(K)PVSP(KMn1-nsdcnniscnncn偏移偏移地址地址变量名变量名数据数据类型类型变量类型变量类型描描 述述0 0过程变量(过程变量(PVn)实数实数输入输入必须在必须在0.00.01.01.0之间之间4 4给定值(给定值(SPn)实数实数输入输入必须在必须在0.00.01.01.0之间之间8 8输出值(输出值(Mn)实数实数输入输入/ /输出输出必须在必须在0.00.01.01.0之间之间1212增益(增益(KC)实数实数输入输入比例常数,可正可负比例常数,可正可负1616采样时间(采样时间(TS)实数实数输入输入单位为秒,须是正数单位为秒,须是正数2020积分

46、时间(积分时间(TI)实数实数输入输入单位为分钟,须是正数单位为分钟,须是正数2424微分时间(微分时间(TD)实数实数输入输入单位为分钟,须是正数单位为分钟,须是正数2828积分项前值(积分项前值(MX)实数实数输入输入/ /输出输出必须在必须在0.00.01.01.0之间之间3232过程变量前值(过程变量前值(PVn-1)实数实数输入输入/ /输出输出最近一次最近一次PIDPID运算的过运算的过程变量值,必须在程变量值,必须在0.00.01.01.0之间之间PIDENTBLLOOPTBL:回路表的起始地址限:回路表的起始地址限V区域(区域(byte)进行进行PIDPID运算的前提条件运算的

47、前提条件n在程序中最多可以用8条PID指令n不可重复使用同一个回路号PIDENTBLLOOPENOVB100I0.02逻辑堆栈栈顶值必须为11周期地进行PID运算n以一定的采样频率进行PID运算nPIDPID指令编入定时发生的中断程序中指令编入定时发生的中断程序中n或在主程序中由定时器控制或在主程序中由定时器控制PIDPID指令的指令的执行频率执行频率 (三)控制方式 当允许输入端(当允许输入端(ENEN)检测到一个)检测到一个正跳变信号,信号,PIDPID回路就从手动方式回路就从手动方式无扰动地切换到自动方式。切换到自动方式。PIDENTBLLOOPENOVB1002I0.1自动自动手动手动

48、切换时将参数Mn、SPn、PVn-1、MX先后填入回路表,完成回路表的组态编程(四)回路输入输出变量的数值转换(四)回路输入输出变量的数值转换 n回路输入变量的转换和标准化回路输入变量的转换和标准化 n回路输出变量的数据转换回路输出变量的数据转换 模拟量输入端子1回路输入变量的转换和标准化 执行PID指令前必须把给定值和过程变量转换成标准的浮点型实数。 AIW0PV(t)PV(n)SP(n)将过程变量将过程变量PVn 输入值标准化为(输入值标准化为(0.01.0)的实数,)的实数,填入表中(填入表中(VD100):): INT REAL (0.01.0)模拟量AIW*数字量回路输入变量的数据转

49、换INT REAL 以单极性为例2回路输出变量的数据转换回路输出变量的数据转换 nPID运算的输出值是0.01.0之间的标准化了的实数值。n在输出变量传送给D/A模拟量单元之前,必须把回路输出变量转换成相应的16位整数,从AQW送出去。pv(t)pv(n)Sp(n)M(n)M(t)是实数值标准化的逆过程:是实数值标准化的逆过程: 标准化的实数值(标准化的实数值(0.01.0)REAL INT将实数转换为16位整数(INT) REAL INT D/A以单极性为例n(五)变量和范围(五)变量和范围n(六)选择回路控制类型(六)选择回路控制类型n(七)出错条件(七)出错条件(八)(八)PID指令编程

50、举例指令编程举例 n水箱由水泵供水水箱由水泵供水 n维持水箱的水位(维持水箱的水位( 0.750.75)n控制水泵速度控制水泵速度 0.75维持0.75水位变化的速度v变化的速度v分分 析析n给定值是水箱满水位的是水箱满水位的75%时的水位时的水位 (0.75)n过程变量由水位测量仪(由水位测量仪(A/D)提供提供 (单极性)单极性)n输出值用来控制用来控制水泵的速度水泵的速度是最大允许值的是最大允许值的 0%100%(0.01.0) (单极性)单极性)选择比例和积分控制选择比例和积分控制n其回路增益和时间常数可以通过其回路增益和时间常数可以通过 工程计算初步确定。工程计算初步确定。n进一步调

51、整以达到最优控制效果。进一步调整以达到最优控制效果。n初步确定的回路增益和时间常数:初步确定的回路增益和时间常数: KC=0.25 TS=0.1秒, TI=30分钟 TD=0。手动方式n启动时关闭出水口启动时关闭出水口n用手动方式控制水泵速度用手动方式控制水泵速度n使水位达到满水位的使水位达到满水位的75%0.75手动方式手动方式 自动方式自动方式图5-81INT0SBR0MAINMOVR 0.25,VD112MOVR 30.0,VD120MOVB 100,SMB34/R 32000.0,AC0MOVR AC0,VD100MOVR VD108,AC0*R 32000.0,AC0DTI AC0,

52、AC0MOVW AC0,AQW0ENSBR_0ENSM0.1ENINOUTENO0.75VD104MOV_RENINOUTENO0.25VD112MOV_RENINOUTENO0.1VD116MOV_RENINOUTENO30.0VD120MOV_RENINOUTENO0.0VD124MOV_RENINOUTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DIENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1

53、000PIDENTBLLOOPENOAC0OUTI0.0MOV_RENINOUTENOVD108AC0VD10832000.0MUL_RENIN1IN2ENOAC0OUTROUNDENINOUTENOAC0AC0MOV_WENINOUTENOAC0AQW0DI_IENINOUTENOAC0AC0SM0.0LD SM0.1CALL SBR0LD SM0.0MOVR 0.75,VD104MOVR 0.1,VD116MOVR 0.0,VD124ENILD SM0.0ITD AIW0,AC0DTR AC0,AC0LD I0.0PID VB100,0LD SM0.0ROUND AC0,AC0ATCR I

54、NT0,10调用初始化子程序装入设定值75%装入回路增益0.25装入采样时间0.1s装入积分时间30分关闭微分作用设定定时中断0的时间间隔为100ms设置定时中断以执行PID指令允许中断把模拟量输入寄存器的值(单极性)存入AC032位双整数转换为实数标准化AC0中的值将AC0中的值存入回路表VD100在自动方式下执行PID指令把输出值送到AC0将AC0中的值刻度化将实数转换为32位双整数将双整数转换为16位整数将整数值写到模拟量输出寄存器控制开关n自动方式:n打开出水口,n合上控制开关(I0.0)n水泵控制从手动方式切换到自动方式(无扰动切换)0.75给定值给定值增益增益采样时间采样时间微分时

55、间微分时间积分时间积分时间INT_0MAIN图5-81INT0SBR0MAINMOVR 0.25,VD112MOVR 30.0,VD120MOVB 100,SMB34/R 32000.0,AC0MOVR AC0,VD100MOVR VD108,AC0*R 32000.0,AC0DTI AC0,AC0MOVW AC0,AQW0ENSBR_0ENSM0.1ENINOUTENO0.75VD104MOV_RENINOUTENO0.25VD112MOV_RENINOUTENO0.1VD116MOV_RENINOUTENO30.0VD120MOV_RENINOUTENO0.0VD124MOV_RENINO

56、UTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DIENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1000PIDENTBLLOOPENOAC0OUTI0.0MOV_RENINOUTENOVD108AC0VD10832000.0MUL_RENIN1IN2ENOAC0OUTROUNDENINOUTENOAC0AC0MOV_WENINOUTENOAC0AQW0DI_IENINOUTENOAC0AC0SM0.0

57、LD SM0.1CALL SBR0LD SM0.0MOVR 0.75,VD104MOVR 0.1,VD116MOVR 0.0,VD124ENILD SM0.0ITD AIW0,AC0DTR AC0,AC0LD I0.0PID VB100,0LD SM0.0ROUND AC0,AC0ATCR INT0,10调用初始化子程序装入设定值75%装入回路增益0.25装入采样时间0.1s装入积分时间30分关闭微分作用设定定时中断0的时间间隔为100ms设置定时中断以执行PID指令允许中断把模拟量输入寄存器的值(单极性)存入AC032位双整数转换为实数标准化AC0中的值将AC0中的值存入回路表VD100在自

58、动方式下执行PID指令把输出值送到AC0将AC0中的值刻度化将实数转换为32位双整数将双整数转换为16位整数将整数值写到模拟量输出寄存器图5 - 8 1I N T 0S B R 0M A I NM O V R 0 . 2 5 ,V D 1 1 2M O V R 3 0 . 0 ,V D 1 2 0M O V B 1 0 0 ,S M B 3 4/ R 3 2 0 0 0 . 0 ,A C 0M O V R A C 0 ,V D 1 0 0M O V R V D 1 0 8 ,A C 0* R 3 2 0 0 0 . 0 ,A C 0D T I A C 0 ,A C 0M O V W A C 0

59、 ,A Q W 0E NS B R _ 0E NS M 0 . 1E NI NO U TE N O0 . 7 5V D 1 0 4M O V _ RE NI NO U TE N O0 . 2 5V D 1 1 2M O V _ RE NI NO U TE N O0 . 1V D 1 1 6M O V _ RE NI NO U TE N O3 0 . 0V D 1 2 0M O V _ RE NI NO U TE N O0 . 0V D 1 2 4M O V _ RE NI NO U TE N O1 0 0S M B 3 4I N T _ 01 0A T C HE NI N TE V N TE

60、N OS M 0 . 0M O V _ RE N II _ D IE NI NO U TE N OA I W 0S M 0 . 0A C 0D I _ RE NI NO U TE N OA C 0A C 0M O V _ RE NI NO U TE N OA C 0V D 1 0 0A C 03 2 0 0 0 . 0D I V _ RE NI N 1I N 2E N OV B 1 0 00P I DE NT B LL O O PE N OA C 0O U TI 0 . 0M O V _ RE NI NO U TE N OV D 1 0 8A C 0V D 1 0 83 2 0 0 0 . 0

温馨提示

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

评论

0/150

提交评论