计算机控制技术常用控制程序设计_第1页
计算机控制技术常用控制程序设计_第2页
计算机控制技术常用控制程序设计_第3页
计算机控制技术常用控制程序设计_第4页
计算机控制技术常用控制程序设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机控制技术常用控制程序设计计算机控制技术-常用控制程序设计2 硬件组成 测量温度的传感器为热电偶,由于系统测量温度的范围为0800度,故选用镍铬热电偶,其输出的mV信号,经变送器转换成05V直流信号,供A/D转换用。A/D转换结束信号EOC送IBM计算机的IRQ2中断请求输入端,以便在A/D转换结束后,向CPU发中断请求。选择那个通道的模拟量进行转换,由地址总线A0、A1、A2的状态确定。 3.软件例:试设计一个数据采集系统例:试设计一个数据采集系统要求该系统能对八路模拟信号(变化频率要求该系统能对八路模拟信号(变化频率100Hz100Hz)进行连续巡回检测,电压范围)进行连续巡回检测,电

2、压范围0V0V10V10V,分辨,分辨率为率为5mV5mV(0.05%0.05%),巡回检测周期允许为),巡回检测周期允许为1s1s,但为了对采样的数据进行滤波处理,必须对每路信,但为了对采样的数据进行滤波处理,必须对每路信号进行多次采集。因此,号进行多次采集。因此,A/DA/D转换器选用转换速度较快的转换器选用转换速度较快的AD574AD574。AD574AD574的分辨率的分辨率1212位(),转位(),转换误差,转换时间换误差,转换时间25s 25s ,输入电压的范围均能符合上述要求。多路模拟开关选用,输入电压的范围均能符合上述要求。多路模拟开关选用CD4051CD4051。CD4051

3、CD4051导通电阻为导通电阻为200200,由于采样保持器的输入电阻一般在,由于采样保持器的输入电阻一般在10M10M以上,所以输入电压在以上,所以输入电压在CD4051CD4051上的压降仅为上的压降仅为0.002%0.002%左右,符合要求。左右,符合要求。CD4051CD4051的开关漏电流仅为的开关漏电流仅为0 008nA08nA,当信号源内阻,当信号源内阻为为10k10k时,误差电压约为时,误差电压约为0.08V 0.08V ,可以忽略不计。采样保持器选用,可以忽略不计。采样保持器选用LF398LF398,LF398LF398采样速度采样速度快,保持性能好,非线性度为士,也符合上述

4、要求。整个系统采用以快,保持性能好,非线性度为士,也符合上述要求。整个系统采用以8086CPU8086CPU构成的微机系统构成的微机系统来实施控制。来实施控制。 3.2.1 概述 由于工业控制对象的环境比较恶劣,干扰源比较多,如环境温度、电场及磁场等。因此,为了减少对采样值的干扰,提高系统的性能,一般先对采样值进行数字滤波,再进行数据处理和调节控制。 所谓数字滤波,是通过一定的计算程序对采样信号进行平滑加工,提高其有用信号,消除或减少各种干扰和噪音,以保证计算机系统的可靠性。 一、程序判断滤波 程序判断滤波的方法,是根据生产经验,确定出两次采样输入信号可能出现的最大偏差Y,若超过此偏差值,则表

5、明该输入信号是干扰信号,应该去掉,若小于此偏差值,可将信号作为本次采样值。 程序判断滤波既照顾了采样的实时性,又照顾了不采样时的连续性,是一种折中的方法,可用于变化较慢的参数,如温度、液位等,可克服由于随机干扰和误检测或者变送器不稳定而引起采样信号的严重失真。 程序判断滤波分为限幅滤波和限速滤波两种。3.2.2 数字滤波方法 2. 限速滤波 设顺序采样时刻t1、t2、t3所采集的参数分别为y1、y2、y3,则当| y2-y1|Y, 则y2输入计算机,| y2-y1| Y, 则y2不采用,但仍保留,再继续采样一次,得y3。| y3-y2|Y,则y3输入计算机,| y3-y2| Y,则取(y2 +

6、y3)/ 2输入计算机。1. 限幅滤波 |Yn-Yn-1|Y, 则Yn = Yn,取本次采样值 |Yn-Yn-1| Y, 则Yn = Yn -1,舍本次采样值,取上次采样值二、中值滤波 所谓中值滤波就是对某一个被测参数连续采样n次(一般 n 取奇数,数值不宜太大,取35即可),然后把n次的采样值从小到大(或从大到小)排队,再取中间值作为本次采样值。采用本程序滤波,对于去掉脉动性质的干扰比较有效,但对快速变化过程的参数(如流量)则不宜采用。 三、算术平均滤波 该方法是把n次采样值相加(通常流量取12次,压力取4次 ),然后取其算术平均值,即:nixnY11 本方法主要适用于对压力、流量等周期脉动

7、值的采样,但对脉冲性干扰的平滑尚不理想。四、加权平均滤波将各采样值取不同的比例,然后再相加五、一阶滞后滤波 为提高对于慢速随机变化过程的采样效果,可采用动态滤波方法,即一阶滞后滤波方法,其表达式为: 1)1 (nnnYXY六、复合滤波程序 把两种以上的滤波方法结合起来使用。如把中值滤波程序和算数平均值滤波两种结合起来,把n个采样值首先按大小排序,然后分别去掉k个最大值和最小值,再把剩下的值加起来,最后取平均值。即 1. 滤波效果 a. 对于变化比较慢的参数如温度,可选用程序判断滤波以及一阶滞后滤波方法比较好; b.对于变化比较快的脉冲参数,如压力、流量等,则可选用算术平均和加权平均滤波方法;

8、c.对于要求比较高的系统可选用复合滤波方法。 d.在算术平均滤波和加权平均滤波中,其滤波效果与所选择的次数n有关,n越大,则效果越好,但花费时间也越长。2. 滤波时间 在考虑滤波效果的前提下,尽量采用执行时间比较短的程序,如果时间允许,则可采用更好的复合滤波程序。3. 注意,并不是在任何一个系统中都需要进行数字滤波!七、各种滤波方法的比较3.2.3 数字滤波程序设计 用复合滤波方法将上节中1号退火炉的5个温度采样值(起始存放地址为7000H:0)进行滤波,并存入SAMP单元。程序设计 1. 将5个数据从小到大排序, 2. 去掉一个最大值和一个最小值, 3. 求剩下3个数的算术平均值。 DOSS

9、EG;采用DOS简化段定义.MODELMIDUM.DATASAMP DB0;定义滤波结果单元CNT = 5;共5个数.CODESTART: MOVAX,7000H;指向采样数据段 MOVDS,AX MOVBX,CNT-1;置外循环次数LP1: MOVSI,0;指向采样数据首地址 MOVCX,BX;置内循环次数LP2: MOVAL,SI;相邻两数据比较 CMPAL,SI+1 JBBIG;大于转BIG XCHGAL,SI+1;小于两数交换 XCHGAL,SIBIG: INCSI;调整指针 LOOPLP2;本轮未比较完转LP2 DECBXJNZLP1;未全部比较完转LP1 MOVCX,CNT-2;去

10、掉最大最小值并求和存AX LEASI,1 MOVAX,0MOVBH,0LP3:MOVBL,SIADDAX,BXINCSILOOPLP3MOVCL,CNT-2;求平均值存CLDIVCLMOVCL,ALMOVAX,DATA;存入SAMP单元MOVDS,AXMOVSAMP,CLMOVAX,4C00H;程序结束返回DOSINT21HENDSTART3.3 标度变换程序 被测量 - 05V - 00FF温度、压力等传感器,变送器A/D 把输入计算机的数字量转换成不同的量纲,以便操作人员进行监视和管理生产,就是所谓的标度变换 3.3.1 线性标度变换 如果被测参数的起点A0(输入信号为0)所对应的A/D转

11、换值为0,即N0=0,这样式(3-6)化简为: 【例】某热处理炉温度测量仪表的量程为200800C,在某一时刻计算机采样并经数字滤波后的数字量为CDH,求此时的温度是多少?(设该仪表的量程是线性的)。 解:A0=200C,Am=800C,Nx=CDH=(205)D,Nm=FFH=(255)D。所以此时的温度为 标度变换程序 DOSSEG;采用DOS简化段定义.MODEL SMALL.STACK 100H.DATAAM DW 800;测量仪表上限A0 DW 200;测量仪表下限NM DW 255;A/D转换上限N0 DW 0;A/D转换下限NX DW 205;实际A/D转换值MX DW ? ;实

12、际温度.CODESTART: MOV AX,DATA MOV DS,AX MOV AX,AM;计算Am-A0 SUB AX,A0 MOV BX,NX;计算Nx-N0 SUB BX,N0 MUL BX;计算(Am-A0)*( Nx-N0) MOV BX,NM;计算Nm-N0 SUB BX,N0 DIV BX;计算(Am-A0)*( Nx-N0)/( Nm-N0) ADD AX,A0;计算(Am-A0)*( Nx-N0)/( Nm-N0)+ A0 CALLHEX_BCD;调二进制转十进制子程序MOV MX,AX;存标度变换结果MOVAX,4C00HINT21HHEX_BCD PROCNEAR MO

13、V DX,AX SUB AX,AX MOV CX,16LP: ADD DX,DX ADC AL,AL DAA XCHG AH,AL ADC AL,AL DAA XCHG AH,AL LOOP LP RET HEX_BCD ENDP END START 3.3.2 非线性参数标度变换 例: 压差流量计,其流量与差压的公式为 所得的流量测量的标度变换公式: 对于流量测量仪表,一般下限均取零,此时G0=0,N0=0: 整数开方的计算方法 令被开方数N = n2,则被开方数的近似计算公式 :3.3.3 非线性补偿 1. 线性插值法 2. 非线性补偿应用举例 线性化处理程序 DATASEGMENTKDW

14、K1,K2,K3,K4;为保证精度,各段斜率扩大10倍存储VDWV1,V2,V3,V4TDWTD,TC,TB,TASAMPDB?TMPDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDX,AXMOVAL,SAMP; AX=ViMOVAH,0CMPAX,V4; ViV4转N5JAEN5CMPAX,V3 ; ViV3转N4JAEN4CMPAX,V2 ; ViV2转N3JAEN3CMPAX,V1 ; ViV1转N2JAEN2N1:MOVCX,K1 ; ViV1,计算K1ViMULCXMOVCX,10;计算结果缩小10倍DIV

15、CXJMPDONEN2:SUBAX,V1 ;计算K2(Vi- V1)+tAMOVCX,K2MULCXMOVCX,10DIVCXADDAX,TAJMPDONEN3:SUBAX,V2 ;计算K3(Vi- V2)+tBMOVCX,K3MULCXMOVCX,10DIVCXADDAX,TBJMPDONEN4:SUBAX,V3 ;计算K4(Vi- V3)+ tCMOVCX,K4MULCXMOVCX,10DIVCXADDAX,TCJMPDONEN5:MOVAX,TD;t= tDDONE:MOVTMP,AX ;存线性化结果MOVAX,4C00HINT21HCODEENDSENDSTART3.4 上、下限报警程

16、序 报警程序的设计是比较简单的,它主要是采用比较法,把采样并经数字滤波以及标度变换后的被测参数值与给定的上下限值进行比较,如果大于上限或者小于下限,则输出报警信号或进行自动处理。举例: 某温度巡回检测系统,共有4个回路,每个回路都有一个上限和下限报警值,分别为XMAXi和XMINi。 采用顺序比较法,即首先取出1#炉的上限报警值XMAX1进行比较,如果X1XMAX1,则转1#炉上限报警,否则再检查X1是否小于下限报警值XMIN1,如果X1 XMIN1则转下限报警。 1#炉上下限报警处理完毕或无报警,再转2#炉报警处理,其方法与1#炉相同,如此下去,直到把四个炉子全部处理完毕,返回主程序。 报警

17、程序流图 (图3-9)DOSSEG;采用DOS简化段定义.MODELSMALL.STACK 100H.DATASAMP DB3, 21, 30, 35 ;实际值ALARM DB10,5,200,15,130,25,40,30;报警上、下限ALMMOD DB1,2,4,8,16,32,64,128;报警模型ALMBUF DB0;报警缓冲区.CODE START: MOV AX,DATA MOV DS,AX MOV DX,203H;8255A口方式0输出 MOV AL,80H OUT DX,AL MOV CX,4;4路报警 LEA SI,SAMP LEA DI,ALARM LP1: MOV AL,

18、SI;实际值与报警上、下限比较 CMP AL,DI JB LP2CALLALM;大于上限,报警LP2: INC DICMP AL,DIJA LP3 CALLALM;小于下限,报警 LP3: INC DI INC SI LOOP LP1;四路报警未完继续 MOV AX,4C00H INT 21H ALM: PROCNEAR;上、下限报警处理 MOV AL,DI+8;取报警模型 OR ALMBUF,AL;并入报警缓冲区 MOV AL,ALMBUF NOT AL;报警缓冲区模型求反 MOV DX,200H;8255A口输出 OUT DX,AL RET END START 3.5数码管显示程序 3.5

19、.1 LED数码管显示原理 1 图 3-10 七段数码管管脚及内部接线图 2 3 4 5 10 9 8 7 6 a b e f g o.p c d 7 3 2 4 5 8 9 10 (a) BS201(共阴极) a b e f g o.p c d 6.9 11 2 7 8 10 13 1 (b) BS201(共阳极) a b c d e f g o.p 1 2 3 4 5 14 13 12 11 10 a b c d e f g o.p 8 7 1.6 3.14 9 6 表3-3 大 写 字 母 的 七 段 表 示 法 十 六 进 制 表 示 字 母 共 阴 极 共 阳 极 A 77 08 C

20、 39 46 E 79 06 F 71 0E H 76 09 I 06 79 G 1E 61 L 38 47 O 3F 40 P 73 0C U 3E 41 Y 66 19 表3-2 十 进 制 数 的 七 段 表 示 法 十 六 进 制 表 示 十 进 制数 码 共 阴 极 共 阳 极 0 3F 40 1 06 79 2 5B 24 3 4F 30 4 66 19 5 6D 12 6 7D 02 7 07 78 8 7F 00 9 67 18 表3-4 小 写 字 母 及 特 殊 符 号 十 六 进 制 表 示 字 母 共 阴 极 共 阳 极 b 7C 03 c 58 27 d 5E 21

21、h 74 0B n 54 2B o 5C 23 r 50 2F u 1C 63 - 40 3F ? 53 3C 七段数码显示数字、字母和符号 (a对应最低位,g对应最高位)3.5.2 静态显示 一、软件查表法用软件的显示不需译码器,而直接将数码管经锁存器和CPU相连。软件查表法显示程序 P69二、硬件译码法 由硬件译码器代替软件查表求出显示字模“56”的输出显示程序:MOVAL, 56HMOVDX, 200HOUTDX,AL3.5.3 动态显示 动态显示是利用扫描的方法不断对每一位LED数码管依次进行显示驱动。 优点:硬件开销小、成本低、适合多位LED数码管显示。 缺点:由于扫描占用了大量CP

22、U的时间,使软件开销过大。 一、共阴LED数码管显示 显示程序由拆字程序和循环显示程序组成。 P70 二、共阳LED数码管显示 3.6键处理程序 对非编码键盘主要是用软件扫描的办法进行编码。 以88非编码键盘为例: 键盘扫描程序的一般先行扫描,即依次使各行为低电平,然后分别读出列数据,并检查是否有键按下,则找出该键的位置并计算其编码,然后转入该功能键的入口程序地址。若无键按下,则进行下一步的扫描,直到八行全部检查完为止,若都无键按下,则返回。 8255连接的键盘接口电路 图中PB0PB7为行扫描锁存器的输出,经八个反相器分别与X7X0相连接。列数据的读入由PA0PA7进行控制。X,Y的每一个交

23、点设置一个键,其编号1、264。 一、扫描键值的确定 1、判断是否有键按下CPU依次使X0X7为低电平,其代码分别为X0(01H),X1(02H),X2(04H),X3(08H),X4(10H),X5(20H),X6(40H),X7(80H),然后由三态门读出列线Y0Y7的值,若无键按下为FFH,否则不等于FFH,由此可判断是否有键按下。 2、求十进制键值分别设一个行值寄存器BL和列值寄存器BH,每扫完一行后,如果此行无键按下,则行寄存器加08,否则不加08而转到求列值。求列值的方法是将列值读数右移,每移一次列值寄存器加1,直到有键按下为止(低电平表示有键按下),最后把行值和列值相加并进行DAA修正,即可得到所求键值。 二、功能键入口地址的确定 对数字键就是要把该键值直接送到显示缓冲区进行显示。对功能键则是找到该键处理程序入口地址,并转去执行。 64键全译码键扫描程序和功能

温馨提示

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

评论

0/150

提交评论