《微型计算机控制技术》于海生第6章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.模块化程序设计
(1
首先对最低层模块进行编码、测试和调试。这些模块正 常工作后,就可以用它们来开发较高层的模块。这种方法 是汇编语言设计常用的方法。
(2
首先对最高层进行编码、测试和调试。为了测试这些最 高层模块,可以用“结点”来代替还未编码的较低层模块, 这些“结点”的输入和输出满足程序的说明部分要求,但 功能少得多。
设炉温为X度,则可列方程:1350 - 0 X - 0 1350 X ,求得X 363.69o C 5 -1 2.0776 -1 4 1.0776
过程控制作业P101第13题 有一台DDZ-Ⅲ型两线制差压变送器,已知其量程为
20-100kPa,当输入信号为40kPa和70kPa时,变送器 的输出信号分别是多少? 解: DDZ-Ⅲ型差压变送器输出信号:4-20mA,由于 电流信号与测量信号呈线性关系,当输入信号为 40kPa时,设变送器输出信号为X,可列出方程:
q ymax ymin 2n 1
例:设模拟电压为0—5V,分别采用8位和12位的A/D转换器, 则可表示的最小单位q分别是:
q1
ymax ymin 2n 1
5000 28 1
19.6078(mV)
q2
ymax ymin 2n 1
5000 212 1
1.2210(mV)
量化过程实际上是一个用q去度量采样值幅值高低的小数 归整过程。如同单位一样。
(1) 若xn>xmax,则上限报警,否则继续执行原定操作。 (2) 若xn<xmin,则下限报警,否则继续执行原定操作。 (3) 若xn>xmax,则上限报警, xn<xmin否?若是则下限报警,否则继续原定操作。 根据上述规定,程序可以实现对被控参数y、偏差e以及控制 量u进行上下限检查。
6.2.5 量化误差来源
y
Ymax N max
Ymin N min
(X
N min ) Ymin
t
1350 0
[106(6AH) 51(33H )]
255(FFH) 51(33H )
363.970 C
解法二: 8位AD0809量化单位q 5 0 5 0.0196(V )
28 1 255 6AH 01101010B 106D 经温度变送器送来的电压信号为:106 0.0196 2.0776V
标度变换有各种类型,它取决于被测参数的传感器的类型, 应根据实际要求来选用适当的标度变换方法。
1.线性变换公式 2.公式转换法 3.其它标度变换法
1.线性变换公式(前提:参数值与A/D转换结果为线 性关系)
Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin Y表示参数测量值,Ymax表示参数量程最大值,Ymin 表示参数量程最小值,Nmax表示 Ymax对应的A/D转 换后的输入值,Nmin表示量程起点Ymin对应的A/D转 换后的输入值,X表示测量值Y对应的A/D转换值。
特点:在一定的测量条件下,其变化规律是可以掌握的, 产生误差的原因一般也是知道的。
方法:偏移校准在实际中应用最多,并且常采用程序来实 现,称为数字调零。
数字调零:在测量时,先把多路输入接到所需测量的一组 输关入的电输压入上接进地行,测测量出,零测输出入这时时A/的D输转入换值器为的x输1,然出后为把x0多,路用开x1 减去x0即为实际输入电压x。图6-3
该方法一般适合用高级语言来设计程序。
2.结构化程序设计
1966年,C.Bohm 和G.Jacopini证明了 只用三种基本的控制 结构就能实现任何单 入口单出口的程序。 这三种基本的控制结 构是“顺序”、“选 择”、“循环”。如 右图所示。
6.1.2 面向过程与面向对象的程序设计
1.面向过程的程序设计及其局限性 过程式程序设计是面向功能的。首先要定义所要实现的功能,然 后设计为实现这些功能所要执行的步骤。这些步骤就是过程。编写 代码实际上等于分解这些步骤,使每一步直接对应一行代码。这就 是过程式编程中的“逐步求精”的过程。 这种方式不利于中大型软件的开发与维护,小部分数据或功能的 改变会涉及到很多的相关程序。
2.面向对象的程序设计 以上两种方法在概念上存在以下主要区别: (1)模块与对象 (2)过程调用和消息传递 (3)类型和类 (4)静态链接和动态链接
6.1.3 高级语言I/O控制台编程
对于PC总线工业控制机,我们以Turbo C为例来说明其访问I/O端口 的编程。
Turbo C通常有库函数,允许直接访问I/O端口,头文件〈conio.h〉 中定义了I/O端口例程。
设数字调零后测出的数据分别为xR(接校准输入yR时) 和x(接被测输入y时),则可按下式来计算y。
y yR x xR
如果在校准时,计算并存放yR/xR的值,则测量校 准时,只需行一次乘法即可。有时也可用yi代替yR
人工自动校准特别适于传感器特性随时间会发生变 化的场合。如常用的湿敏电容等湿度传感器。
6.2.2 线性化处理和非线性补偿
1.铂热电阻的阻值与温度的关系 离线计算温度与铂热电阻阻值对应关系表即分度表, 然后分段进行线性化。 2.热电偶的热电势与温度的关系 与热电阻方法相同。测量的参数为热电偶的热电势。 3.孔板差压与流量的关系
F K P
4.气体体积流量的非线性补偿
F0 F
T0 P1 T1 P0
除了数字调零外,还可以采用偏移和增益误差的自动校准。
1.全自动校准
自动校准:自动测量基准参数,计算误差模型,获得并存储误差补偿因子。
先把开关接地,测出这时的输入值x0,然后把开关接基准电
压VR,测出输入值x1,并存放x1、x0,在正式测量时,如测
出的输入值为x,则这时的V可用下式计算
V
(
x x0 x1 x0
由于量化过程是小数归整过程,因而存在量化误差,量化误差 (±1/2)q,在A/D转换器的字长足够长,整量化误差足够小。
1.量化误差
通过A/D转换可计算出模拟电压x相当于多少个整量化 单位,即:
x=Lq+ε,式中L为整数,
对于余数ε(ε<q)可以用截尾或舍入来处理 。
所谓截尾就是舍掉数值中小于q的余数ε(ε<q),其截尾误 差εt为:εt=xt-x,式中x为实际数值,xt为截尾后的数值。 显然-q<εt≤0。
6.2.1 误差自动校准 6.2.2 线性化处理和非线性补偿 6.2.3 标度变换方法 6.2.4 越限报警处理 6.2.5 量化误差来源 6.2.6 A/D、D/A及运算字长的选择
6.2.1 误差自动校准
系统误差定义:是指在相同条件下,经过多次测量,误差的 数值(包括大小符号)保持恒定,或按某种已知的规律变化的误 差。
2.公式转换法(非线性场合) 可采用直接按解析式来计算。
3.其它标度变换法(非线性场合) 可采用多项式插值法,也可以用线性插值法或查表进行 标度变换。
6.2.4 越限报警处理
越限报警是工业控制过程常见而又实用的一种报警形式,它 分为上限报警、下限报警及上下限报警。如果需要判断的报警 参数是xn,该参数的上下限约束值分别是xmax和xmin,则上下
所谓舍入是指,当被舍掉的余数ε大于或等于量化单位的 一半时,则最小有效位加1;而当余数ε小于量化单位的一 半时,则舍掉ε。这时舍入误差为εr=xr-x,式中x为实际数 值,xr舍入后的数值。显然,-q/2≤εr≤q/2。
20 4 X 4 ,求得X 8mA 100 20 40 20
当输入信号为70kPa时,可列出方程:
20 4 X 4 ,求得X 14mA 100 20 70 20
1.线性变换公式 Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin
Y表示参数测量值,Ymax表示参数量程最大值,Ymin表示 参入值数,量N程m最in小表值示,量N程m起ax点表Y示minY对m应ax对的应A/的DA转/换D转后换的后输的入值输, X表示测量值Y对应的A/D转换值。
)
VR
采用这种方法测得的V与放大器的漂移和增益变化无关,与V 和R的精度也无关。这样可大大提高测量精度,降低对电路器件 的要求。
全自动校准只适于基准参数是电信号场合,并且不能校正由 传感器引入的误差。为克服这种缺点,采用人工自动校准。
2.人工自动校准
人工自动校准只测一个 偿由数字调零来完成。
标准输入信号yR,零信号的补
1330 53.733 53.451 10 1337.9o C 53.795 53.451
6.2.3 标度变换方法
在工业测控系统中,如,压力的单位为Pa,流量的单位为 m3/h,温度的单位为℃等,这些参数经传感器和A/D转 换后得到一系列的数码,这些数码值并不一定等于原来带有 量纲的参数值,它仅仅对应于参数值的大小,故必须把它转 换成带有量纲的工程值后才能运算、显示或打印输出,这种 转换就是标度变换。
例如: a=inportw(0x210) b=inportb(0x220)
第一条指令表示将端口210H的16位二进制数(一个字)输入给变量a, 第二条指令表示将端口220H的8位二进制数(一个字节)输入给变量b。 在C语言中,0x起头的是16进制数。
又如: outportw(0x230,0x3435) outportb(0x240,0x26)
即:E(t,0) 54.33mV,又由于E(t,0) E(t,30) E(30,0) 54.33 E(t,30) 1.801,求得E(t,30) 52.53mV
即热电偶在冷端温度为30o C时测得的热电势为52.53mV
再通过查K型热电偶分度表,可求得工作端实际温度t
E(t,0) E(t,30) E(30,0) 52.53 1.203 53.733
第⑥章 应用程序设计与实现技术
软件是工业控制机的程序系统,它可分为系统软件和。 所谓就是面向控制系统本身的程序,它是根据系统的具体要 求,由用户自己设计的。
软件设计的方法:利用计算机语言自己编制需要的应用程 序;利用组态软件。
6.1 程序设计技术 6.2 测量数据预处理技术 6.3 数字控制器的工程实现 6.4 系统的有限字长数值问题
2、量化
所谓量化,就是采用一组数码(如二进制码)来逼近离 散模拟信号的幅值,将其转换为数字信号。将采样信号 转换为数字信号的过程称为量化过程,执行量化动作的 装置是A/D转换器。
量化单位
量化单位:字长为n的A/D转换器把一定范围内变化的 采样信号变换为数字0—2n-1,其最低有效位(LSB)所 对应的模拟量q称为量化单位。
第一条指令表示将二字节数3435H输出到端口230H中,第二条指令 表示将单字节数26H输出到端口240H中。
6.2 测量数据预处理技术
传感器把生产过程的信号转换成电信号,然后用A/D转换器 把模拟信号变成数字信号,读入计算机中。
对于这样得到的数据,一般要进行一些预处理,其中最基本 的处理有线性化处理、标度变换和误差自动校准。
Y
(Nmax ,Ymax )
(X,Y)
( Nmin ,Ymin) X
例:P218 第2题
某热处理炉温度变化范围为0℃-1350℃,经温度变送 器变换为1-5V电压送至ADC0809,ADC0809的输入 范围为0-5V。当t=某值时,ADC0809的转换结果为 6AH,问此时炉内温度t=?
解法一:
6.2.2 线性化处理和非线性补偿
过程控制作业P102第30题 已知热电偶的分度号为K,工作时的冷端温度为30℃,测得热 电势以后,错用E分度表查得工作端的温度715.2 ℃,试求 工作端实际温度是多少? 解:首先求出工作端温度相对0 ℃冷端的热电势的值,设该 值为X,按E分度表,可列出方程:
715.2 710 X 53.907 10,求得X 54.3(3 mV) 54.703 53.907
6.1 程序设计 6.1.2 面向过程与面向对象的程序设计 6.1.3 高级语言I/O控制台编程
6.1.1 模块化与结构化程序设计
一个完整的程序设计过程可以用左图来说明。 首先要分析用户的要求,这大约占整个程序设 计工作量的10%; 然后编写程序的说明,这大约也占10%; 接着进行程序的设计与编码,这大约占30%左 右,其中设计与编码几乎各占15%; 最后进行测试和调试,这要花费整个程序设计 工作量的40%以上。