微型计算机控制技术于海生

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
入信号yR,零信号的补 偿由数字调零来完成。 设数字调零后测出的数据分别为xR(接校准输入yR时) 和x(接被测输入y时),则可按下式来计算y。
yR y x xR
如果在校准时,计算并存放 yR / xR 的值,则测量 校准时,只需行一次乘法即可。有时也可用yi代替yR 人工自动校准特别适于传感器特性随时间会发生 变化的场合。如常用的湿敏电容等湿度传感器。
6.1.3 高级语言I/O控制台编程
对于PC总线工业控制机,我们以Turbo C为例来说明其访问I/O端口 的编程。 Turbo C通常有库函数,允许直接访问I/O端口,头文件〈conio.h〉 中定义了I/O端口例程。 例如: a=inportw(0x210) b=inportb(0x220) 第一条指令表示将端口210H的16位二进制数(一个字)输入给变量a, 第二条指令表示将端口220H的8位二进制数(一个字节)输入给变量b。在 C语言中,0x起头的是16进制数。 又如: outportw(0x230,0x3435) outportb(0x240,0x26) 第一条指令表示将二字节数3435H输出到端口230H中,第二条指令 表示将单字节数26H输出到端口240H中。
6.2.1
误差自动校准
系统误差定义:是指在相同条件下,经过多次测量,误差的 数值(包括大小符号)保持恒定,或按某种已知的规律变化的 误差。 特点:在一定的测量条件下,其变化规律是可以掌握的, 产生误差的原因一般也是知道的。 方法:偏移校准在实际中应用最多,并且常采用程序来 实现,称为数字调零。 数字调零:在测量时,先把多路输入接到所需测量的一 组输入电压上进行测量,测出这时的输入值为x1,然后把多路 开关的输入接地,测出零输入时A/D转换器的输出为x0,用x1 减去x0即为实际输入电压x。图6-3 除了数字调零外,还可以采用偏移和增益误差的自动校 准。
6.2
测量数据预处理技术
传感器把生产过程的信号转换成电信号,然后用A/D转换 器把模拟信号变成数字信号,读入计算机中。 对于这样得到的数据,一般要进行一些预处理,其中最基 本的处理有线性化处理、标度变换和误差自动校准。
6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6
误差自动校准 线性化处理和非线性补偿 标度变换方法 越限报警处理 量化误差来源 A/D、D/A及运算字长的选择
6.2.2
线性化处理和非线性补偿
过程控制作业P102第30题 已知热电偶的分度号为K,工作时的冷端温度为30℃,测得热 电势以后,错用E分度表查得工作端的温度715.2 ℃,试求 工作端实际温度是多少? 解:首先求出工作端温度相对0 ℃冷端的热电势的值,设该 值为X,按E分度表,可列出方程:
X 53.907 10, 求得X 54.33 (mV) 54.703 53.907 即:E(t, 0) 54.33mV , 又由于E(t,0) E(t,30) E (30,0) 715.2 710
1.模块化程序设计
(1)自底向上模块化设计 首先对最低层模块进行编码、测试和调试。这些模块 正常工作后,就可以用它们来开发较高层的模块。这种方 法是汇编语言设计常用的方法。 (2)自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些 最高层模块,可以用“结点”来代替还未编码的较低层模 块,这些“结点”的输入和输出满足程序的说明部分要求, 但功能少得多。 该方法一般适合用高级语言来设计程序。
微型计算机控制 技术于海生
6.1 程序设计技术
6.1.1 6.1.2 6.1.3 模块化与结构化程序设计 面向过程与面向对象的程序设计 高级语言I/O控制台编程
6.1.1
模块化与结构化程序设计
一个完整的程序设计过程可以用左图来说明。

首先要分析用户的要求,这大约占整个程序设 计工作量的10%; 然后编写程序的说明,这大约也占10%; 接着进行程序的设计与编码,这大约占30%左 右,其中设计与编码几乎各占15%; 最后进行测试和调试,这要花费整个程序设计 工作量的40%以上。
2.结构化程序设计
1966年,C.Bohm 和G.Jacopini证明了 只用三种基本的控制 结构就能实现任何单 入口单出口的程序。 这三种基本的控制结 构是“顺序”、“选 择”、“循环”。如 右图所示。
6.1.2 面向过程与面向对象的程序设计
1.面向过程的程序设计及其局限性 过程式程序设计是面向功能的。首先要定义所要实现的功能, 然后设计为实现这些功能所要执行的步骤。这些步骤就是过程。 编写代码实际上等于分解这些步骤,使每一步直接对应一行代码。 这就是过程式编程中的“逐步求精”的过程。 这种方式不利于中大型软件的开发与维护,小部分数据或功能 的改变会涉及到很多的相关程序。 2.面向对象的程序设计 以上两种方法在概念上存在以下主要区别: (1)模块与对象 (2)过程调用和消息传递 (3)类型和类 (4)静态链接和动态链接
1.全自动校准
自动校准:自动测量基准参数,计算误差模型,获得并存储误差补偿因子。
先把开关接地,测出这时的输入值x0,然后把开关接基准 电压VR,测出输入值x1,并存放x1、x0,在正式测量时,如测 出的输入值为x,则这时的V可用下式计算
V (
x x0 ) VR x1 x 0
采用这种方法测得的V与放大器的漂移和增益变化无关,与V 和R的精度也无关。这样可大大提高测量精度,降低对电路器件 的要求。 全自动校准只适于基准参数是电信号场合,并且不能校正由 传感器引入的误差。为克服这种缺点,采用人工自动校准。
6.2.2
线性化处理和非线性补偿
1.铂热电阻的阻值与温度的关系 离线计算温度与铂热电阻阻值对应关系表即分度表, 然后分段进行线性化。 2.热电偶的热电势与温度的关系 与热电阻方法相同。测量的参数为热电偶的热电势。 3.孔板差压与流量的关系
F K P
4.气体体积流量的非线性补偿
T0 P1 F0 F T1 P0
相关文档
最新文档