410 likes | 619 Views
第 6 章 应用程序设计与实现技术. 6.1 概 述 6.2 应用程序设计技术 6.3 查 表 技 术 6.4 线性化处理技术 6.5 量程自动转换和标度变换 6.6 报警程序设计 6.7 DSP 在数据处理中的应用 6.8 小 结. 6.1 概 述. 6.2 应用程序设计技术 6.2.1 应用程序设计的基本任务 1. 应用程序设计的基本步骤 程序设计的第一步是了解系统的工艺流程 程序设计最基本的问题是定义输入和输出 在输入数据和送出控制信号之间是一个处理阶段. 2. 应用程序设计的方法.
E N D
第6章 应用程序设计与实现技术 6.1 概 述 6.2 应用程序设计技术 6.3 查 表 技 术 6.4 线性化处理技术 6.5 量程自动转换和标度变换 6.6 报警程序设计 6.7 DSP在数据处理中的应用 6.8 小 结
6.1 概 述 6.2 应用程序设计技术 6.2.1 应用程序设计的基本任务 1. 应用程序设计的基本步骤 • 程序设计的第一步是了解系统的工艺流程 • 程序设计最基本的问题是定义输入和输出 • 在输入数据和送出控制信号之间是一个处理阶段
2. 应用程序设计的方法 • 1) 模块化程序 • 把一个完备的功能由若干个小的程序或模块共同完成。 • 优点: • (1) 单一功能模块无论编写或调试都很容易。 • (2) 一个模块可以被多个其他程序调用。 • (3) 检查错误容易,因为模块功能单一,且相对独立,不牵涉其他模块。 • 缺点,比如有些程序难以模块化,把模块装在一起时较困难,模块相互调用时易产生相互影响。
2) 自顶向下程序设计 • 先从系统级的管理程序或者主程序开始设计,低一级的从属程序或者子程序用一些程序标志来代替。当系统级的程序编好后,再将各标志扩展成从属程序或子程序,最后完成整个系统的程序设计。 • 优点是: • 设计、测试和连接同时按一个线索进行,矛盾和问题可以较早发现和解决。 • 而且测试能够完全按真实的系统环境来进行,不需要依赖于测试程序。 • 比较习惯于人们日常的思维,而且研制应用程序的几个步骤可以同时结合进行,因而能提高研制效率。
3) 自底向上模块化设计 • 自底向上模块化的设计是首先对最低层模块进行编码、测试和调试,这些模块正常工作后,就可以用它们来开发较高层的模块。 • 这种方法是汇编语言设计常用的方法。
6.2.3 工业控制组态软件 • 组态软件是指在软件领域内,操作人员根据应用对象及控制任务的要求,配置(包括对象的定义、制作和编辑,对象状态特征属性参数的设定等)用户应用软件的过程,也就是把组态软件视为“应用程序生成器”。 • 从应用角度讲,组态软件是完成系统硬件与软件沟通、建立现场与监控层沟通的人机界面的软件平台。
组态软件的功能简介 • 1.控制组态 • 2.图形生成系统 • 3.显示组态 • 4. I/O通道登记 • 5. 单位名称登记 • 6. 趋势曲线登记 • 7. 报警系统登记 • 8. 报表生成系统
计算机控制系统的组态功能分为两个主要方面,即硬件组态和软件组态。计算机控制系统的组态功能分为两个主要方面,即硬件组态和软件组态。 • 硬件组态 • 以总线式(PC总线或STD总线)工业控制机为主进行选择和配置,在硬件上可以根据不同的控制对象选择相应的功能模板,组成各种不同的应用系统,使硬件工作量几乎接近于0,只需按要求对各种功能模块进行安装和接线即可。
软件组态 • 控制工程师不需了解计算机的硬件和软件,就可在触摸屏上采用菜单方式,用填表的办法,对输入、输出信号用“仪表组态”的方法进行软连接。
6.2.4 软件工程方法概述 • 软件工程的过程是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。 • 过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理及软件开发各个阶段完成的里程碑。 • 软件工程就是包含上述方法、工具及过程在内的一些步骤。
6.3 查 表 技 术 • 常用的有三种方法:直接查找法、顺序查找法和对分查找法 。 • 6.3.1 顺序查找法 • 顺序查找法的步骤如下。 • (1) 设定表格的起始地址。 • (2) 设定表格的长度。 • (3) 设定要搜索的关键字。 • (4) 从表格的第一项开始,比较表格数据和关键字,进行数据搜索。
顺序查表法程序清单: • SEARCH: MOV R0,TABLE ;设定表格起始地址 • MOV R1,LENGTH ;设定表格长度 • CLR FLAG ;查找成功标志位清零 • LOOP:MOV A,KEY;读关键字 • XRL A,@R0;比较 • JNZ NEXT ;未查找到关键字,继续 • SETB FLAG ;查找到关键字,置位查找成功标志位 • MOV A,R0 ;读出关键字在表中的地址 • AJMP RETU ;退出查找 • NEXT:INC R0 ;指向表格的下一个数据 • DJNZ R1,LOOP ;未检索完全部数据,继续 • RETU:RET ;退出查找程序,子程序返回
6.3.2 计算查找法 • 计算查表法适用于数据按一定的规律排列,并且搜索内容和表格数据地址之间的关系能用公式表示的有序表格。 • 只要根据所给的数据元素Xi,通过一定的计算,求出元素Xi所对应的数值的地址,然后将该地址单元的内容取出即可。 • 关键在于找出一个计算表地址的公式 。
设计一巡回检测报警装置,要求能对16个通道输入值进行比较,当某一通道输入值超过该路的报警值时,发出报警信号。设计一巡回检测报警装置,要求能对16个通道输入值进行比较,当某一通道输入值超过该路的报警值时,发出报警信号。 • 通道值和报警值的存放地址之间的关系可用下面的公式表示: • 报警值存放地址=数据表格起始地址+通道值×2
设通道值(以16进制表示)存放在CIRC单元中,查表后的上限报警值存放在UPPER单元中,下限报警值存放在LOWER单元中。设通道值(以16进制表示)存放在CIRC单元中,查表后的上限报警值存放在UPPER单元中,下限报警值存放在LOWER单元中。 • 查表程序清单如下: • CLR C ;进位标志位清零 • MOV DPTR,#TAB ;设置数据表首址 • MOV A,CIRC ;读检测通道值 • RLC A ;检测通道值乘2 • MOVC A,@A+DPTR ;读上限值 • MOV UPPER,A ;保存上限值 • INC DPTR • MOVC A,@A+DPTR ;读下限值 • MOV LOWER,A ;保存下限值 • RET • TAB: UPPER0,LOWER0,UPPER1,LOWER1,....,UPPER15,LOWER15 ;报警数据表
6.3.3 对分查找法 • 对于从小到大(或从大到小)顺序排列的表格,通常采用快速而有效的对分查找法。 • 对分查表法的最高搜索次数Log2N-1。 • 和顺序查表法相比,对分法可以大大减少查表次数,提高检索效率。
对分查表法程序清单: • MOV BEGIN,#00H ;设置检索范围起点 • MOV END,#DVL ;设置检索范围终点 • MOV KEY,#KEY ; 设置关键字 • MOV TIME,#01H ;置检索次数初值 • LOOP: MOV R0,#ADD ;置数据区起始地址 • MOV A,BEGIN ;取检索范围起点 • ADD A,END ;起点+终点 • CLR C • RRC A ;除2 • MOV FLAG,A ;存放对分检索取数序号 • CLR C
XOR A,2AH ;判断是否到检索范围边缘 • JZ LOOP3 ;是,跳转至LOOP3 • MOV A,FLAG • ADD A,R0 ;形成对分检索取数地址 • MOV R0,A • MOV A,@R0 ;读数 • MOV DATA,A ;保存检索到的数据 • CLR C • SUBB A,KEY ;和关键字比较 • JZ LOOP5 ;相等,则检索成功 • JNC LOOP2 ;取的数据大,跳转至LOOP2 • MOV 2AH,FLAG ;取的数据小,修改检索范围的起点
INC TIME ;检索次数加1 • SJMP LOOP1 ;继续检索 • LOOP2: MOV A,FLAG ;取的数据大,修改检索范围的终点 • MOV END,A • INC TIME • SJMP LOOP1 ;继续检索 • LOOP3: MOV R0,#DATA ;到达检索边缘,比较是否为关键字 • MOV A,@R0 • CJNE A,KEY,LOOP4 ;不是关键字,跳转至LOOP4 • MOV DATA,A ;是关键字,保存 • SJMP LOOP5 ;退出检索程序 • LOOP4: MOV A,#0FFH ;不是关键字,置检索不成功标志 • MOV FLAG,A • LOOP5: RET ;检索程序结束
6.4 线性化处理技术 • 为了得到线性输出的变量,需要引入非线性补偿,将非线性关系转化成线性的,这种转化过程称为线性化处理。 • 最常用的是线性插值法和抛物线插值法 。
6.4.1 线性插值法 • 1. 线性插值原理 • 将输出特性曲线按一定的规则插入若干个点,将曲线分成若干段,插入点X0和Xi之间的间距越小,那么在区间(X0,Xi)上实际曲线和近似直线之间的误差就越小。这就是线性插值法的思想。 • 将相邻两点用直线连接起来,用直线替代相应的曲线。这样,原来复杂的非线性关系就可以通过简单的线性方程加以表示。
(1)曲线斜率变化越小,替代直线越逼近特性曲线,则线性插值法带来的误差就越小。因此,线性插值法适用于斜率变化不大的特性曲线的线性化。(1)曲线斜率变化越小,替代直线越逼近特性曲线,则线性插值法带来的误差就越小。因此,线性插值法适用于斜率变化不大的特性曲线的线性化。 • (2)插值基点取得越多,替代直线越逼近实际的曲线,插值计算的误差就越小。因此,只要插值基点足够多,就可以获得足够的精度。 传感器的输出特性曲线图
2. 线性插值的计算机实现 • 利用计算机实现线性插值的步骤如下: • (1)用实验法测出传感器输出特性曲线,应尽可能保证该曲线的精确性; • (2)选取插值点,将绘制好的曲线分段。 • (3)计算并存储各相邻插值点间逼近曲线的斜率Ki; • (4)计算X-Xi; • (5)读出X所在区间的斜率Ki,计算Ki(X-Xi); • (6)计算。 计算机实现的线性插值计算流程图
3. 线性插值法非线性补偿实例 • 热电偶的输出特性曲线
由图可以看出,该热电偶的输出特性曲线斜率的变化不大,可以采用线性插值法进行非线性补偿。由图可以看出,该热电偶的输出特性曲线斜率的变化不大,可以采用线性插值法进行非线性补偿。 • 选择4个插值基点(V1,T1)、(V2,T2)、(V3,T3)、(V4,T4),然后写出每段曲线的插值函数表达式,表达式如式所示。程序略
6.4.2 非线性插值法 • 仅靠增加插值基点的数量来减少误差是不可行的。 • 抛物线插值法可以很好的解决斜率变化较大曲线的非线性补偿问题。 • 抛物线插值法能够提高非线性补偿的精度 。 线性插值法和抛物线插值法补偿精度比较
6.5 量程自动转换和标度变换 • 在计算机过程控制系统中,生产中的各个参数都有着不同的数值和量纲 ,所有这些参数都经过变送器,A/D转换器转换成数字量。 • 为实现显示、记录、打印以及报警等操作,必须把这些数字量转换成不同的单位,以便操作人员对生产过程进行监视和管理,这就是所谓的标度变换。
6.5.1 量程自动转换 • 可编程增益放大器(PGA,Programmable Gain Amplifier) 是一种通用性很强的放大器,其放大倍数可根据需要用程序进行控制,使A/D转换器满量程信号达到均一化,而大大提高测量精度。 集成电路 PGA102 内部结构
增益可编程仪用放大器 • 利用PGA可进行量程自动转换。特别是当被测参数动态范围比较宽时,使用PGA的优越性更为显著。
6.5.2 线性参数标度变换 • 1. 线性参数的标度变换 • 所谓线性参数,指一次仪表测量值与A/D转换结果具有线性关系 。 • A0为一次测量仪表的下限; • AM为一次测量仪表的上限; • AX为实际测量值(工程量); • N0为仪表下限对应的数字量; • NM为仪表上限对应的数字量; • NX为测量值所对应的数字量。
例6.6 某热处理炉温度测量仪表的量程为200~800℃,在某一时刻计算机采样并经数字滤波后的数字量为0xCDH。求此时温度值为多少(设仪表量程为线性的)? • 解 根据标度变换公式,已知A0=200℃、AM=800℃。Nx=0xCDH=(205)D,NM=0xFFH=(255)D,所以此时温度为
2. 非线性参数标度变换 • 1) 公式变换法 • 例如,在流量测量中,流量与差压间的关系式为 • 据此,可得测量流量时的标度变换为 • GX为被测量的流量值; • GM为流量仪表的上限值; • G0为流量仪表的下限值; • NX为差压变送器所测得的差压值(数字量); • NM为差压变送器上限所对应的数字量; • N0为差压变送器下限所对应的数字量。 • 2) 其他标度变换法
6.6 报警程序设计 • 6.6.1 简单报警程序设计 • 1. 微机测控系统中常用的报警方式 • 1) 简单声光报警 • 2) 声音报警驱动电路 简单报警电路原理图 声音集成芯片HY8000A系列引脚图与应用电路原理图
2. 报警程序的设计技术 • 1) 软件报警程序设计技术 • 2) 硬件直接报警的程序设计技术 硬件直接报警原理图
6.6.2 越限报警程序设计 设定报警上下限回差带
越限报警处理 • 1.上限报警: • 若xn>xmax,则上限报警,否则继续执行原定操作。 • 2.下限报警 • 若xn<xmin,则下限报警,否则继续执行原定操作。 • 3.上下限报警 • 若xn>xmax,则上限报警,否则对下式做判别:xn<xmin否?若是则下限报警,否则继续原定操作。
6.7 DSP在数据处理中的应用 • DSP 芯片的特点 • (1) 具有乘法器和多功能单元。 • (2) DSP采用哈佛结构,具有独立程序总线和数据总线,这样可同时取指令和取操作数。 • (3) 内部设有ROM和RAM,可通过独立的数据总线在两块中间同时访问。 • (4) 采用流水线处理技术。在处理器中。流水线过程使得若干条指令的不同阶段并行执行,因而可大大地提高程序的执行速度。
2. DSP在滤波器中的应用 • (5) 具有特别的DSP指令。如:DMOV指令,用来完成数据移位功能;LTD,它在一个指令周期内完成LT,DMOV和APAC 三条指令。LD和MPY指令可以将FIR滤波器抽头计算从四条指令降为两条指令。 • (6) 具有低开销或无开销循环及跳转的硬件支持。 • (7) 具有快速的中断处理和硬件I/O支持。
6.8 小 结 • 依靠灵活设计的程序,微型计算机数据处理系统具有如下优点。 • (1) 可用程序代替硬件电路,完成多种运算。 • (2) 能自动修正误差。 • (3) 能对被测参数进行较复杂的计算和处理。 • (4) 不仅能对被测参数进行测量和处理,而且还可以进行逻辑判断。 • (5) 微型计算机数据处理系统不但精度高,而且稳定可靠,不受外界干扰。