版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、l传送指令 l数学运算指令 l逻辑运算指令 l移位和循环移位指令 l数据转换指令l表功能指令l程序控制指令 l中断指令 lPID回路指令l高速计数器指令 l高速脉冲输出指令 l时钟指令 l功能指令涉及的数据类型多,编程时应保证操作数在合法范围内。lS7-200PLC不支持完全数据类型检查l操作数的数据类型应与指令标识符相数据类型应与指令标识符相匹配匹配MOV_BEN ENOIN OUTMOV_WEN ENOIN OUTMOV_DWEN ENOIN OUTMOV_REN ENOIN OUTMOVB IN, OUTMOVW IN, OUTMOVD IN, OUTMOVR IN, OUTVB100V
2、B400VW100VW400VD100VD400VD100VD400数据传送指令 数据块传送指令 传送字节立即读、写指令 MOV_BEN ENOIN OUTMOV_WEN ENOIN OUTMOV_DWEN ENOIN OUTMOV_REN ENOIN OUTMOVB IN, OUTMOVW IN, OUTMOVD IN, OUTMOVR IN, OUTVB100VB400VW100VW400VD100VD400VD100VD400 把输入(IN)指定的数据传送到输 出(OUT),传送过程中数据值保 持不变。输入输出数据传送指令按操作数的数据类型可分为:数据传送指令按操作数的数据类型可分为:
3、操作数可操作数可为有符号为有符号数或无符数或无符号数号数 MOV_BEN ENOIN OUTMOV_WEN ENOIN OUTMOV_DWEN ENOIN OUTMOV_REN ENOIN OUTMOVB IN, OUTMOVW IN, OUTMOVD IN, OUTMOVR IN, OUTVB100VB400VW100VW400VD100VD400VD100VD400MOV_BEN ENOIN OUTMOV_WEN ENOIN OUTMOV_DWEN ENOIN OUTMOV_REN ENOIN OUTMOVB IN, OUTMOVW IN, OUTMOVD IN, OUTMOVR IN,
4、OUTVB100VB400VW100VW400VD100VD400VD100VD400字节传字节传送送(MOVBMOVB)字传送字传送(MOVWMOVW)双字传送双字传送(MOVDWMOVDW)实数传送实数传送(MOVRMOVR)l数据类型应与指令标识符相匹配数据类型应与指令标识符相匹配l数据块传送指令 (操作数均为为无符号数)l传送字节立即读、写指令 (物理输入、输出点 )l四则运算指令 l数学功能指令 l加法指令 l减法指令 l乘法指令 l除法指令 把两个输入端(IN1,IN2)指定的数相加,结果送到输出端(OUT)指定的存储单元中。ADD_DIEN ENOIN1 OUTIN2ADD_IE
5、N ENOIN1OUTIN2+IIN1, OUTADD _REN ENOIN1 OUTIN2VW100VW200VW200VD100VD200VD100VD200VD200VD200+D IN1, OUT+R IN1, OUT输入端输入端输出端输出端整数加法指令整数加法指令 对应的操作数数据类型:对应的操作数数据类型: 有符号整数(INT) 有符号双整数(DINT) 实数(REAL) ADD_DIEN ENOIN1 OUTIN2ADD_IEN ENOIN1OUTIN2+IIN1, OUTADD _REN ENOIN1 OUTIN2VW100VW200VW200VD100VD200VD100VD
6、200VD200VD200+D IN1, OUT+R IN1, OUT整数加法 双整数加法 实数加法 操作数IN2与OUT共用一个地址单元 操作:IN1+OUT=OUTADD_DIEN ENOIN1 OUTIN2ADD_IEN ENOIN1OUTIN2+IIN1, OUTADD _REN ENOIN1 OUTIN2VW100VW200VW200VD100VD200VD100VD200VD200VD200+D IN1, OUT+R IN1, OUTIN1+OUT=OUT 把两个输入端(把两个输入端(IN1IN1,IN2IN2)指定指定的数相减,结果送到输出的数相减,结果送到输出(OUTOUT)指
7、定的指定的存储单元中去。存储单元中去。 SUB_IEN ENOIN1OUTIN2SUB_DIEN ENOIN1 OUTIN2-IIN2, OUT-DIN2, OUT-RIN2, OUTSUB_REN ENOIN1OUTIN2VW300VW400VW300VD300VD400VD300VD300VD400VD300输出端输入端对应的操作数: 有符号整数(有符号整数(INTINT) 有符号双整数(有符号双整数(DINTDINT) 实数(实数(REALREAL) 整数减法 双整数减法 实数减法 SUB_IEN ENOIN1OUTIN2SUB_DIEN ENOIN1 OUTIN2-IIN2, OUT-
8、DIN2, OUT-RIN2, OUTSUB_REN ENOIN1OUTIN2VW300VW400VW300VD300VD400VD300VD300VD400VD300操作数IN1与OUT共用一个地址单元操作:OUT-IN2=OUT SUB_IEN ENOIN1OUTIN2SUB_DIEN ENOIN1 OUTIN2-IIN2, OUT-DIN2, OUT-RIN2, OUTSUB_REN ENOIN1OUTIN2VW300VW400VW300VD300VD400VD300VD300VD400VD300OUT- IN2 =OUT ADD_DIEN ENOIN1 OUTIN2ADD_IEN EN
9、OIN1OUTIN2+IIN1, OUTADD _REN ENOIN1 OUTIN2VW100VW200VW200VD100VD200VD100VD200VD200VD200+D IN1, OUT+R IN1, OUT操作数的数据类型:操作数的数据类型:l有符号整数(INT)l有符号双整数(DITN)l实数(REAL)MUL_IEN ENOIN1OUTIN2MUL_ DIEN ENOIN1 OUTIN2MULEN ENOIN1 OUTIN2MUL_REN ENOIN1 OUTIN2VW100VW200VW200VD100VD200VD200VD100VD200VD200*I IN1, OUT*
10、D IN1, OUT*R IN1, OUTMUL IN1, OUTVW100VW202VD200 整数乘法整数乘法 双整数乘法双整数乘法 实数乘法实数乘法 整数完全乘法整数完全乘法 操作数IN2与OUT共用一个地址单元IN1OUT=OUT 把两个输入端(IN1,IN2)指定的数相乘,结果送到输出端(OUT)指定的存储单元中去SM1.1指示溢出错误和非法数值指示溢出错误和非法数值整数完全乘法指令 操作数IN2与OUT的低16位用的是同地址单元MUL_IEN ENOIN1OUTIN2MUL_ DIEN ENOIN1 OUTIN2MULEN ENOIN1 OUTIN2MUL_REN ENOIN1 O
11、UTIN2VW100VW200VW200VD100VD200VD200VD100VD200VD200*I IN1, OUT*D IN1, OUT*R IN1, OUTMUL IN1, OUTVW100VW202VD2001616bitbit有符有符号整数号整数32bit的乘积01531VW202VW200IN1OUT=OUTVD200IN1(16bit) IN2(16bit) =32(bit)乘积 (OUT) 操作数的数据类型:操作数的数据类型: 有符号整数(有符号整数(INT) 有符号双整数(有符号双整数(DINT) 实数(实数(REAL) DIV_IEN ENOIN1OUTIN2DIV_D
12、IEN ENOIN1OUTIN2DIVEN ENOIN1OUTIN2DIV_REN ENOIN1OUTIN2VW300VW400VW300 VD300VD400VD300VD400VW302VD300VW400VD300VD300/I IN2, OUT/D IN2, OUT/R IN2, OUTDIV IN2, OUT操作数操作数IN1与与OUT共共用一个地址单元用一个地址单元OUT/IN2=OUT 整数除法整数除法 双整数除法双整数除法 实数除法实数除法 整数完全除法整数完全除法 把两个输入端(IN1,IN2)指定的数相除,结果送到输出端(OUT)指定的存储单元中去。指令 操作数IN1与OU
13、T的低16位用的是同地址单元DIV_IEN ENOIN1OUTIN2DIV_DIEN ENOIN1OUTIN2DIVEN ENOIN1OUTIN2DIV_REN ENOIN1OUTIN2VW300VW400VW300 VD300VD400VD300VD400VW302VD300VW400VD300VD300/I IN2, OUT/D IN2, OUT/R IN2, OUTDIV IN2, OUTVD30032bit的结果 OUT/ IN2 =OUT1616bitbit有符有符号整数号整数余数商03115VW300VW302IN1(16bit) IN2(16bit) =32(bit)结果 (OU
14、T) AC0 DIV VW120,VD200/R VD130,VD400I0.0ADDIENENENENIN1IN1IN1IN1IN2IN2IN2IN2OUTOUTOUTOUTENOENOENOENOAC1AC0AC1VW102VD100VW202VD200VW120VD300VD400VD130MULDIVDIVRLD I0.0+I AC1,AC0MUL AC1,VD100MOVR VD300,VD400IN1与OUT不是同一地址单元加法、减法、乘法指令遇到上述情况,也可作类似的处理。 操作数的数据类型操作数的数据类型: 字节、字、双字INC_WEN ENOIN OUTDEC_WEN ENO
15、IN OUTINC_ DWEN ENOIN OUTDEC_ DWEN ENOIN OUTINC_BEN ENOIN OUTDEC_BEN ENOIN OUTINCB OUTDECB OUTINCW OUTDECW OUTINCD OUTDECD OUTINC_WEN ENOIN OUTDEC_WEN ENOIN OUTINC_ DWEN ENOIN OUTDEC_ DWEN ENOIN OUTINC_BEN ENOIN OUTDEC_BEN ENOIN OUTINCB OUTDECB OUTINCW OUTDECW OUTINCD OUTDECD OUTVB100VB100IN和OUT共用一个
16、地址单元 INCW OUTINCD OUTl平方根l自然对数l自然指数l三角函数 l操作数均为实数实数(REAL)逻辑“与”指令 逻辑“或”指令 逻辑“异或”指令 取反指令 逻辑运算指令的操作数均为逻辑运算指令的操作数均为无符号数无符号数自学自学WAND_BEN ENOIN1 OUTIN2WAND_ WEN ENOIN1OUTIN2EN ENOIN1OUTIN2ADNB IN1,OUT ANDW IN1,OUT ANDD IN1,OUTVB100VB200VB200VW100VW200VW200VD100VD200VD200WAND_DW对两个输入端(IN1,IN2)的数据按位“与”,结果存入
17、OUT单元 ORD IN1,OUT 右移位指令 左移位指令 循环右移指令 循环左移指令 移位和循环移位指令均为无符号数操作 l把输入端(IN)指定的数据右移N位,结果存入OUT。l多位操作多位操作SHR_BEN ENOINOUTNSHR_WEN ENOINOUTNSHR_DWEN ENOINOUTNSRB OUT,N SRW OUT,N SRD OUT,NVB100VB1004VD100VW100VD100VW10044字节右移 字右移 双字右移 07VB100101010100710001000SHR_BEN ENOINOUTNSHR_WEN ENOINOUTNSHR_DWEN ENOINO
18、UTNSRB OUT,N SRW OUT,N SRD OUT,NVB100VB1004VD100VW100VD100VW1004407VB100101010100710001000空位自动补零溢出SM1.1移位后溢出位(SM1.1)的值就是最后一次移出的位值。 字节左移字节左移 字左移字左移 双字左移双字左移 SHL_BEN ENOINOUTNSHL_WEN ENOINOUTNSHL_DWEN ENOINOUTNSLB OUT,N SLW OUT,N SLD OUT,NVB100444VW100VB100VW100VD100VD100自学ROR_BEN ENOINOUTNROR_WEN ENO
19、INOUTNROR_DWEN ENOINOUTNRRB OUT,N RRW OUT,N RRD OUT,NVB1004VB100VW100VW100VD100VD1001210字节循环右移字节循环右移 字循环右移字循环右移双字循环右移双字循环右移 07VB1001010101007VB100101010101SM1.1溢出位把输入端(IN)指定的数据循环右移N位,结果存入OUT。 ROR_BEN ENOINOUTNROR_WEN ENOINOUTNROR_DWEN ENOINOUTNRRB OUT,N RRW OUT,N RRD OUT,NVB1004VB100VW100VW100VD100V
20、D1001210 字节、字、双字循环移位指令,如果所需移位次数N大于或等于8、16、32,那么在执行循环移位前,先对先对N取以取以8、16、32为底的模为底的模,其结果07、015、031为实际移动位数。 ROL_BEN ENOINOUTNROL_WEN ENOINOUTNROL_DWEN ENOINOUTNRLB OUT,N RLW OUT,N RLD OUT,NVB300VW300VW300VD300VD300VB30041012字节循环左移字节循环左移 字循环左移字循环左移 双字循环左移双字循环左移 自学溢 出AC1VW30LD I2.0RRW AC1, 1SLW VW30, 1AC1V
21、W30VW30 1ENENININOUTOUTENOENOAC1NN11VW30ROR WSHL W溢 出10111010AC11101010100011001 10101110110011011001010001100101000110110循 环 前循 环 后移 位 前移 位 后I2.0lBCD码与整数的转换 l双字整数与实数的转换 l双字整数与整数的转换 l字节与整数的转换 l译码、编码指令 l段码(SEG)指令 均为无符号数操作BCD_IEN ENOIN OUTI_BCDEN ENOIN OUTBCDI OUT IBCD OUTBCDBINBCDBINBCD BINBIN BCD 09
22、99909999 32bit 32bitDI_REN ENOIN OUTROUNDEN ENOIN OUTTRUNCEN ENOIN OUTDTR IN,OUT ROUND IN,OUT TRUNC IN,OUTAC1VD100VD100VD200VD100VD300DINT REAL REAL DINT REAL DINT +101 +101.0 256.54 257256.54 256有效的实数 有效的实数 DI_IEN ENOIN OUTI_DIEN ENOINOUTDTI IN,OUT ITD IN,OUTVD100VD100VW200VW200有效的双字整数 进行符号扩展 DINT
23、INTINT DINT符号扩展: ORD 16#FFFF_0000, VD100DI_IEN ENOIN OUTI_DIEN ENOINOUTDTI IN,OUT ITD IN,OUTVD100VD100VW200VW200l ITD DTRlINT DINT REALDI_REN ENOIN OUTROUNDEN ENOIN OUTTRUNCEN ENOIN OUTDTR IN,OUT ROUND IN,OUT TRUNC IN,OUTAC1VD100VD100VD200VD100VD300B_IEN ENOIN OUTI_BEN ENOIN OUTBTI IN,OUT ITB IN,OUT
24、VW200VW200VB100VB100有效的整数 ROUND VD108,VD120 VD104,VD108AC0VD100VD108LD I0.0ITD VW0,AC0DTR AC0,VD100MOVR VD100,VD108*RIDIDIRMULRENENENININENOENOENOOUTOUTOUTIN2AC0VD100VD104IN1I0.0VW0VD120ENINROUNDENOOUTVD108IN2与OUT不是同一地址l5译码、编码指令l6段码(SEG)指令l填表、查表指令l先进先出、后进先出指令l存储器填充指令存储器填充指令执行FILL指令后,VW400VW418的区域被清零
25、。用输入值(IN)填充从输出单元(OUT)开始的N个字的内容。0VW418LD I1.2VW400FILL 0, VW400, 10000VW400VW402ENENOI1.2FILL_N+010INNOUTl全局中断允许/全局中断禁止指令 l中断连接/中断分离指令 l中断返回指令 l中断的分类:通讯、时基和输入/输出 l中断优先级 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRET
26、IRETIINTERRUPT 4SM5.0处理后返回原程序中断指令使系统暂时中断现在正在执行的程序,而转到中断服务程序去处理那些急需处理的事件。l通讯口中断:自由口通讯 lI/O中断 l时基中断 :定时中断和定时器中断事件号 中断描述 优先组 优先组中的 优先级 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 上
27、升沿 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 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 外部复位 1
28、8 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 l中断队列溢出位:说明(0 = 无溢出,1 = 溢出)SM位l通讯队列SM4.0lI/O中断队列 SM4.1l定时中断队列SM4.2 执行DISI指令后,出现的中断事件就进入中断队伍排队
29、等候,直到全局中断允许指令(ENI)重新允许中断。 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0全局地允许所有被连接的中断事件 全局地禁止处理所有中断事件 CPU进入RUN模式时自动禁止了中断。在RUN模式执行全局中断允许指令(ENI)后,允许所有中断。 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH
30、INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0用来建立某个中断事用来建立某个中断事件(件(EVNTEVNT)和某个中断和某个中断程序(程序(INTINT)之间的联之间的联系。系。并允许这个中断事件并允许这个中断事件该中断事件发生时执该中断事件发生时执行相关的中断程序行相关的中断程序 多 个 中 断事 件 可 调用 同 一 个中断程序 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH IN
31、T4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.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.0CRETIRETIINTERRUP
32、T 4SM5.0截断某中断事件和中断程序之间的联系单独单独禁止某中断事件。 LD SM0.1ENILD SM5.0DTCH 0LD M5.0DISIATCH INT4,0INT_40ATCHENINTEVNTENODTCHENEVNTENO0SM0.1M5.0DISIENISM5.0MAIN PROGRAM OB1LD SM5.0CRETIRETIINTERRUPT 4SM5.0有条件中断返回指有条件中断返回指令令(CRETICRETI),根根据控制的条件从中据控制的条件从中断程序中返回到主断程序中返回到主程序程序中断程中断程序入口序入口 编程软件自动编程软件自动在中断程序结在中断程序结尾加上
33、无条件尾加上无条件中断返回指令中断返回指令(RETIRETI) 中断处理提供了对特殊的内部或外部事件的快速响应。优化中断程序:优化中断程序:l使其简短,减少中断程序的执行时间l在执行某特殊的任务后立即返回主程序,否则有可能引起主程序控制设备的异常操作。l全局中断禁止指令DISIl全局中断允许指令ENIl高速计数器指令HDEFl顺序控制继电器指令LSCRl有条件结束指令END。l定时中断l定时器中断ENSBR_0ENMOV_BENINENOOUTSMB34INT_010ATCHENINTEVNTENOSM0.0100( )ENISM0.1MOV_WENINOUTENOAIW4SM0.0VW100
34、 OB1INT 0SBR 0LD SM0.1CALL SBR_0LD SM0.0MOVB 100, SMB34ATCH INT_0, 10ENILD SM0.0MOVW AIW4, VW100100ms SMB34建立中断连接100ms定时采集模拟量输入值按指定的周期按指定的周期时间循环执行时间循环执行必须用必须用ATCH指指令,令,建立中断程建立中断程序与定时中断事序与定时中断事件的连接。件的连接。 l周期增量周期增量:1 1msms ,周期时间,周期时间:1 1255ms255ms。l定时中断0/1的周期时间 SMB34/35l改变周期时间:修改SMB34/35中的值,必须重新建立中断程序
35、与定时中断事件的连接。l当定时中断设定的周期时间到,即定时中断事件(10/11)发生,则执行相应的中断程序。l定时中断一旦允许就连续地运行,按指定的时间间隔反复执行被连接的中断程序。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建立
36、中断连接100ms定时采集模拟量输入值l常用定时中断以固定的时间间隔去控制模拟量的采集和执行PID回路程序。l如果退出RUN模式或分离定时中断,则定时中断被禁止。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定
37、时采集模拟量输入值l定时器定时器T32/T96中断允许对指定时间间隔完成中断允许对指定时间间隔完成及时作出应答。仅在及时作出应答。仅在1毫秒分辨率毫秒分辨率接通延时接通延时(TON)和断开延时()和断开延时(TOF)定时器)定时器T32和和T96中支持此类中断。中支持此类中断。l用中断例行程序附加至用中断例行程序附加至T32/T96中断事件(中断事件(事事件号件号20/25)的方法,启用此类中断。)的方法,启用此类中断。 lT32和和T96中断被启用后,在中断被启用后,在S7-200中执行的正中执行的正常常1毫秒定时器更新的过程中,毫秒定时器更新的过程中,当现用定时器当现用定时器的当前值等于预
38、设时间数值时,即执行中断连的当前值等于预设时间数值时,即执行中断连接例行程序接例行程序。l通讯(最高)(最高)lI/O中断(中等)(中等)l时基中断(最低)(最低)lPID算法 lPID回路指令 l控制方式 l回路输入输出变量的数值转换 l变量和范围 l选择回路控制类型 l出错条件 lPID指令编程举例 PIDPID控制器调节回路输出。为使系统达到稳定状控制器调节回路输出。为使系统达到稳定状态,应让偏差(态,应让偏差(e e)趋于零。趋于零。l偏差(e)= 给定值(SP)过程变量(PV)l回路的输出变量M(t): dtdeKMedtKeKtMcinitialtcc/)( 0 比例项 积分项 微
39、分项lM(t)PID回路的输出lKCPID回路的增益lePID回路的偏差lMinitialPID回路输出的初始值。时间t的函数lMn在第n采样时刻PID回路输出的计算值;lKCPID回路增益;len在第n采样时刻的偏差值;len-1在第n-1采样时刻的偏差值(偏差前值);lKI积分项的系数;lMinitialPID回路输出的初值;lKD微分项的系数。)(11nnDinitialniiInCneeKMeKeKM积分项:包括从第1个采样周期到当前采样周期的所有误差的累积值。)(1nnDnInCneeKMXeKeKMnnnnMDMIMPM)(11nnDinitialniiInCneeKMeKeKM积
40、分项积分项 积分项积分项 计算中,只需保留积分项前值(MX),即:l比例项 MPn=KC(SPn-PVn-)l积分项 MIn= KCTS / T1(SPn-PVn)+MXl微分项 MDn=KCTD / TS(PVn-1-PVn)nnnnMDMIMPMKIKDl过程变量当前值 PVnl给定值 SPnl增益 KC l采样时间 TS l积分时间 TIl微分时间 TDl积分项前值 MX l过程变量前值 PVn-1 l输出值 MnlPID回路指令运用回路表中的输入信息和组态信息,进行PID运算,编程极其简便。(组态编程,即填表式编程)(组态编程,即填表式编程) PIDENTBLLOOPENOVB100I
41、0.02回路回路号号0707回路表的回路表的起始地址起始地址限用限用VBVB区区域域l在程序中最多可以用8条PID指令。l不可重复使用同一个回路号PIDENTBLLOOPENOVB100I0.02逻辑堆栈栈顶(TOS)值必须为11偏移地址 变量名 数据类型 变量类型 描 述 0 过程变量(PVn) 实数 输入 必须在 0.01.0 之间 4 给定值(SPn) 实数 输入 必须在 0.01.0 之间 8 输出值(Mn) 实数 输入/输出 必须在 0.01.0 之间 12 增益(KC) 实数 输入 比例常数,可正可负 16 采样时间(TS) 实数 输入 单位为秒,必须是正数 20 积分时间(TI)
42、 实数 输入 单位为分钟,必须是正数 24 微分时间(TD) 实数 输入 单位为分钟,必须是正数 28 积分项前值(MX) 实数 输入/输出 必须在 0.01.0 之间 32 过程变量前值(PVn-1) 实数 输入/输出 最近一次 PID 运算的过程变量值,必须在 0.01.0 之间 VB10036个个字节字节 *以一定的采样频率进行PID运算PIDPID指令必须编入定时发生的中断程指令必须编入定时发生的中断程序中序中在主程序中由定时器控制在主程序中由定时器控制PIDPID指令的指令的执行频率执行频率 当允许输入端(EN)检测到一个正跳变信号,PID回路就从手动方式无扰动地切换到自动方式。PI
43、DENTBLLOOPENOVB1002I0.1无扰动无扰动切换切换自动自动手动手动无扰动切换时:l系统把手动方式的当前输出值填入回路系统把手动方式的当前输出值填入回路表中的表中的MMn n栏,用来初始化输出值栏,用来初始化输出值MMn n;l进行一系列的操作,对回路表中的值进进行一系列的操作,对回路表中的值进行组态:行组态:l置给定值(置给定值(SPSPn n)= = 过程变量(过程变量(PVPVn n)l置过程变量前值(置过程变量前值(PVPVn-1n-1)= = 过程变量当过程变量当前值前值(PVPVn n)l置积分项前值(置积分项前值(MXMX)= = 输出值(输出值(MMn n)l若若
44、PIDPID指令的允许输入端(指令的允许输入端(ENEN)直接接至直接接至左母线,在启动左母线,在启动CPUCPU或或CPUCPU从从STOPSTOP方式转方式转换到换到RUNRUN方式时,方式时,PIDPID允许输入端(允许输入端(ENEN)的默认值是的默认值是1 1,可以执行,可以执行PIDPID指令;指令;l但无正跳变信号,因而不能实现无扰动的但无正跳变信号,因而不能实现无扰动的切换。切换。PIDENTBLLOOPENOVB1002PIDENTBLLOOPENOVB1002I0.1无扰无扰动切动切换换无正跳无正跳变信号变信号l回路输入变量的转换和标准化 l回路输出变量的数据转换 执行PI
45、D指令前必须把给定值和过程变量转换成标准的浮点型实数。 将过程变量PVn 输入值标准化为(0.00.1)的实数,填入表中(VD100): INT REAL (0.00.1)AIW0过程变量XORD AC0,AC0, 清空累加器MOVW AIW0,AC0, 把待变换的AIW0的模拟量 (INT)存入累加器。LDW= AC0,0 如果模拟量为正JMP 0 则直接转成实数NOT 否则ORD 16#FFFF0000,AC0 先对AC0中的值进行 符号扩展LBL 0ITD AC0,AC0 把16位整数转换成双字整数DTR AC0,AC0 把双字整数转成实数 实数标准化的公式: RNorm=(RRaw /
46、 Span+ Offset)lRNorm是标准化的实数值;lRraw是未标准化的实数值;lOffset是补偿值或偏置,单极性为0.0,双极性为0.5;lSpan是值域大小,为最大允许值减去最小允许值,单极性为32,000(典型值)双极性为64,000(典型值)。RNorm=(RRaw / Span+ Offset)/R 64000.0,AC0 累加器中的实数值除以64000.0+R 0.5,AC0 加上偏置,使其落在0.01.0之间MOVR AC0,VD100(过程变量过程变量PVn) 标准化的实数值存入回路表lPID运算的输出值是0.01.0之间的标准化了的实数值。l在输出变量传送给D/A模
47、拟量单元之前,必须把回路输出变量转换成相应的16位整数。l是实数值标准化的逆过程: 标准化的实数值(标准化的实数值(0.00.1)REAL INT 标准化的实数值(标准化的实数值(0.00.1)REAL 标准化实数转换成实数的公式: RScal=(Mn-Offset)SpanlRScal是回路输出的刻度实数值lMn是回路输出的标准化实数值lOffset、Span定义同前 RScal=(Mn-Offset)SpanlMOVRVD108,AC0 把(Mn)移入累加器l-R0.5,AC0 对双极性,0ffset为0.5l*R64000.0,AC0 得输出变量的刻度值(REAL)lROUND AC0
48、AC0 REAL DINTREAL DINT lDTI AC0,AC0 DINT INTDINT INT lMOVW AC0,AQW0 INT INT AQW0 D/Al(五)变量和范围l(六)选择回路控制类型l(七)出错条件l水箱由水泵供水 l维持水箱的水位( 0.75)l控制水泵速度 0.75维持0.75水位变化的速度v变化的速度vl给定值给定值是水箱满水位的75%时的水位 (0.75)l过程变量过程变量由水位测量仪(A/D)提供 (单极性)l输出值输出值用来控制水泵的速度是最大允许值的 0%100%(0.01.0) (单极性)l其回路增益和时间常数可以通过 工程计算初步确定。l进一步调整
49、以达到最优控制效果。l初步确定的回路增益和时间常数: KC=0.25 TS=0.1秒,秒, T1=30分钟分钟 TD=0。l启动时关闭出水口l打开控制开关(编址I0.0)l用手动方式控制水泵速度l使水位达到满水位的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,AC0MOVW AC0,AQW0ENSBR_0ENSM0.1ENINOUTENO0.75VD104MOV_RENINOUT
50、ENO0.25VD112MOV_RENINOUTENO0.1VD116MOV_RENINOUTENO30.0VD120MOV_RENINOUTENO0.0VD124MOV_RENINOUTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DIENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1000PIDENTBLLOOPENOAC0OUTI0.0MOV_RENINOUTENOVD108AC0VD10832000
51、.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 INT0,10调用初始化子程序装入设定值75%装入回路增益0.25装入采样时间0.1s装入积分时间30分关闭微分作用设定定时
52、中断0的时间间隔为100ms设置定时中断以执行PID指令允许中断把模拟量输入寄存器的值(单极性)存入AC032位双整数转换为实数标准化AC0中的值将AC0中的值存入回路表VD100在自动方式下执行PID指令把输出值送到AC0将AC0中的值刻度化将实数转换为32位双整数将双整数转换为16位整数将整数值写到模拟量输出寄存器图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,AQW
53、0ENSBR_0ENSM0.1ENINOUTENO0.75VD104MOV_RENINOUTENO0.25VD112MOV_RENINOUTENO0.1VD116MOV_RENINOUTENO30.0VD120MOV_RENINOUTENO0.0VD124MOV_RENINOUTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DIENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1000PIDENTBLLOOP
54、ENOAC0OUTI0.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 INT0,10调用初始化子程序装
55、入设定值75%装入回路增益0.25装入采样时间0.1s装入积分时间30分关闭微分作用设定定时中断0的时间间隔为100ms设置定时中断以执行PID指令允许中断把模拟量输入寄存器的值(单极性)存入AC032位双整数转换为实数标准化AC0中的值将AC0中的值存入回路表VD100在自动方式下执行PID指令把输出值送到AC0将AC0中的值刻度化将实数转换为32位双整数将双整数转换为16位整数将整数值写到模拟量输出寄存器控制开关l自动方式:自动方式:l打开出水口,l合上控制开关(I0.0)l水泵控制从手动方式切换到自动方式(无扰动切换)0.75图5-81INT0SBR0MAINMOVR 0.25,VD11
56、2MOVR 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_RENINOUTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DI
57、ENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1000PIDENTBLLOOPENOAC0OUTI0.0MOV_RENINOUTENOVD108AC0VD10832000.0MUL_RENIN1IN2ENOAC0OUTROUNDENINOUTENOAC0AC0MOV_WENINOUTENOAC0AQW0DI_IENINOUTENOAC0AC0SM0.0LD SM0.1CALL SBR0LD SM0.0MOVR 0.75,VD104MOVR 0.1,VD11
58、6MOVR 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在自动方式下执行PID指令把输出值送到AC0将AC0中的值刻度化将实数转换为32位双整数将双整数转换为16位整
59、数将整数值写到模拟量输出寄存器水箱水位水箱水位PIDPID控制程序控制程序 图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.
60、0VD124MOV_RENINOUTENO100SMB34INT_010ATCHENINTEVNTENOSM0.0MOV_RENII_DIENINOUTENOAIW0SM0.0AC0DI_RENINOUTENOAC0AC0MOV_RENINOUTENOAC0VD100AC032000.0DIV_RENIN1IN2ENOVB1000PIDENTBLLOOPENOAC0OUTI0.0MOV_RENINOUTENOVD108AC0VD10832000.0MUL_RENIN1IN2ENOAC0OUTROUNDENINOUTENOAC0AC0MOV_WENINOUTENOAC0AQW0DI_IENINO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中生学期总结和计划
- 铁道概论电子教案05 列车编组计划、车流组织及货物列车编组计划
- 2025年餐具清洗工试题及答案
- 2025年小学一年级体育上学期体能测试标准
- 2025年宏观管理试题及答案
- 2025年腾讯职能类试题及答案
- 2025年内容审核笔试题及答案
- 山东省公务员2025年公共基础知识历年真题
- 2025年小学五年级数学上学期统计图表试卷
- 2025年供款分期买卖合同范本
- 科技小院筹建方案(3篇)
- 中国印度对比课件
- 2025至2030中国水产品加工行业发展分析及发展趋势分析与未来投资战略咨询研究报告
- 2025年液体闪烁仪市场发展现状
- 关于无人机多旋翼的结构细节试题及答案
- 企业财务管理中的流动性风险评估与应对策略
- 某管理咨询公司薪酬管理制度
- 物业管家管理课件
- TCACM 1460-2023 成年人中医体质治未病干预指南
- 三人合租房协议合同
- 大学生职业生涯规划书模板范文:市场营销篇
评论
0/150
提交评论