来源:互联网 发布时间:12-29
浏览量:
许多梯度薄膜制备的实验和工艺中都需要能灵活,精确控制的气体流量。目前精确控制气体流量的主流设备是MKS公司生产的247C/D Four-Channel Readout(247C)和Mass Flow Controler(MFC)。此设备具有流量控制精度高并且稳定的特点,不足之处是必须进行人工控制。该设备实现自动化控制,需购买其配套控制界面产品。原有控制界面产品232INTRFACE已经停产,新改进的控制界面产品价格颇高。
1 质量流量计工作原理和工作曲线
1.1 工作原理
首先在247C面板设定目的流量值。247C根据目的流量值发出设定值信号到MFC,MFC比较气体流量信号和设定值信号后产生一修正电压,修正电压经MFC内部运算放大器多级反馈到设定值信号,使流量值信号和设定值信号维持平衡,调整后的流量值信号送到247C显示面板进行流量显示,从而实现对流量的控制。
1.2 系统工作曲线
在247C产品说明书中可得到247C的工作电压范围为0~5V。为得到设定值信号电压和气体流量之间的关系,用电压表和可调直流电压源进行系统工作曲线的测量。曲线的测量环境是:维持MFC两端有一定气压差以确保有足够的工作气体进行真实工作环境的模拟,工作气体选择N2气,所选MFC满量程为100sccm。图1是手动设定调节和外路电压设定调节时面板流量显示(MoNItor)和流量电压值(Flowout)的关系,图2是外路电压(Setinput)和247C面板流量显示(Monitor)之关系。红线是数据拟合曲线。从中可以看出各信号之间都是线性关系,并且手动设置和利用外路电压控制一致。其中
Monitor=Flowout. . .(1)
Setinput=50Monitor (2)
2 接口电路设计
设备输出流量精确到0.1sccm,由(2)式可得设定值电压的输出电压误差必须≤2.5mv,即数模转换器的输出误差必须≤2.5mv,对于最高输出电压为5v,十位电压输出,±1LSB线性误差度的器件可以满足要求。本电路选用接受十二位并行输入,±1/2LSB线性误差,兼容TTL信号,电压输出的AD667。
其中AD667的接法使其满量程输出为5V。74LS374是一个八位触发器,它将并口数据断口的数据锁存到输出端,管脚11的上升沿将锁存数据输出。74LS138是三八译码器,它对需要控制的字节作出选择。PC并口的管脚1、14、17内置有反相器,故在接口电路中将其还原。
在此接法中,PC机并口数据端口(管脚2~9)地址为378(十六进制),控制端口地址为37A(378+2),管脚1、14、16、17分别为控制端口的0、2、4、8位。管脚1、14、16负责产生74LS374触发器的片选信号,管脚17负责对74LS374触发器产生上升沿信号。
对AD667写入一字节,需要以下工作:
1)将数据写入并口数据端口,即管脚2~9。
2)将管脚17置高,并把所选74LS374地址写入管脚1、14、16。从而使所选74LS374脉冲管脚置低。
3)将管脚17置低,这使得74LS138所有输出管脚变高,其对所选74LS374脉冲管脚产生的上升沿信号使该74LS374的锁存数据输出。而其它74LS374的输出状态将不改变。
3 控制程序
在VB中不能利用Inp和Out来实现对端口的直接访问,但我们可以借助C或C++等工具来开发一些动态链接库(DLL)或ActiveX控件,通过对其调用来完成对底层端口的访问。更为方便的是可以到互联网上去寻找一免费的DLL或ActiveX控件。本控制软件就是基于Ntport dll来开发的。此文件可以到https://zealsoftsludio.com/ntport/download下载,如若在Windows98或Windows me使用, 请在该地址下载VBIO.DLL。下载后将其拷贝在Windowssystem下。
3.1 窗体
窗体如图3所示,一个父窗口和四个子窗口。每一通道后台包含6个timer控件,timer1~5的interval值设为1000,timer6的interval值设为1。
3 2 部分源码
在VB中对dll的的调用要有声明。声明代码如下:
写特定端口
Declare Sub Outport Lib “ntport dll”(ByVal portid As Integer,ByVal nByte As Integer)
Public Const portid=&H378
程序主要原码:
Dim sec1 As Integer, sec2 As Integer, sec3 As Integer, sec4
As Integer,sec5 As Integer
Dim cirnum As Integer, outnum As Long, outlow As Integer,
outhig As Integer
Dim alltime As Integer remtime As Integer
Private Sub Commandstart_Click()
变量初始化
secl=Val(Texttimeset1.Text)
sec2=Val(Texttimeset2.Text)
sec3=Val(Texttimeset3.Text1)
sec4=Val(Texttimeset4.Text)
sec5=Val(Texttimeset5.Text1)
Cirnum = Val(Textcir.Text1)
Timer1 Enabled = True
Commandstart Enabled = False
Commandstop.Enabled = True
End Sub
Private Sub Commandstop_Click()
Commandstart Enabled = True
Commandstop Enabled = False
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
数据端口置0,锁存数据置0,关闭质量流量计第一通道
0utport portid 0
Outport portid ±2.8
Outport portid ±2.0
0utport portid 128
Outport portid ±2.9
0utport portid ±2.0
End Sub
Private Sub Timer1_Timer()
If sec1 > 0 Then
Textremcir Text= crinum-1
sec1 = sec1-1
Text3.Text= Format(sec 1.”0000”)
remtime = sec1 + sec2 + sec3 + sec4 + sec5
ProgressBarl Value = 100-remtIme*100/alltime
Outnum =Val(Textl.Text) '取得欲输出流量值
Outnum = outnum*4095/1000 '据(2)式换算成AD667所需数值
Outlow = outnum Mod 256 '取得欲输出高字节值
Outhig = outnum 256 '取得欲输出低字节值
Outport portid,outlow '输出低字节到数据端口 74LS244
Outport portid + 2.8 '将并口 17置高并将第一通道,低字节通道选通
Outport portid + 2.0 '将并口 17置低,送出低字节到AD667
Outport portid,outhig '输出低字节到数据端口 74LS244
Outport portid + 2.9 '将并口 17置高并将第一通道高字节通道选通
Outport portid + 2.0 '将并口 17置低,送出高字节到
AD667
Else
Timer1.Enabled = False
Timer2.Enabled = True
End if
End Sub
Private Sub Timer5_Timer()
If sec5 > 0 Then
sec5 = sec5 - 1
Text15.Text= Format(sec5.”0000”)
remtime = sec1 + sec2 + sec3 + sec4 + sec5
ProgressBar1.Value = 100 –remtime*100/alltime
Outnum = Val(Text1 3.Text)
Outnum = outnum*4095 / 1000
Outlow = outnum Mod 256
Outhig = outnum 256
Outport portid,outlow
Outport portid + 2.8
Outport po~id + 2.0
Outport portid,outhig
Outport porid + 2.9
Outport portid + 2.0
Else
Timer5.Enabled = False
If cirnum >= 1 Then '判断是否还有循环
Timer6.Enabled = True
Else
Timer6.Enabled = False
Command1.Enabled = True
'若不需再循环,置0高低字节端口并关闭第一通道
Outport portid,0
Outport portid + 2.8
Outport portid + 2.0
Outport portid.128
Outport portid + 2.8
Outport portid + 2.0
End If
End If
End Sub
'对循环赋值
Private Sub Timer6_Timer()
see1 =Val(Text2.Text)
sec2 = Val(Text5.Text)
sec3 = Val(Text8.Text)
see4 = Val(Textl1.Text1)
sec5 = Val(Textl4.Text)
Timer6.Enabled = False
Timer1.Enabled = True
End Sub
'对第二通道输出
Outport portid,outlow '输出高字节
Outport portid + 2.10 '将并口17置高并将第二通道低字节通道选通
Outport portid + 2.0 '将并口17置低,送出低字节到AD667
Outport portid,outhig '输出高字节
Outport portid + 2.11 '将并口17置高并将第二通道高字节通道选通
Outport portid + 2.0 '将并口17置低,送出高字节到AD667
'对第三通道输出
Outport portid,outlow '输出低字节
Outport portid + 2.12 '将并口17置高并将第三通道低字节通道选通
Outport portid + 2.0 '将并口17置低,送出低字节到AD667
Outport portid,outhig '输出高字节
Outport portid + 2.13 '将并口17置高并将第三通道高字节通道选通
Outport portid + 2.0 '将并口17置低,送出高字节到AD667
'对第四通道输出
Outport portid,outlow '输出低字节
Outport portid + 2.14 '将并口17置高并将第四通道低字节通道选通
Outport portid + 2.0 '将并口17置低,送出低字节到AD667
Outport portid,outhig '输出高字节
Outport portid + 2.15 '将并口17置高并将第四通道高字节通道选通
Outport portid + 2.0 '将并口17置低,送出高字节到AD667
'对高字节输出值>=128,关闭该通道。
'对高字节输出值< 128,开启该通道。
4 结束语
此控制方法也可利用NTport.dll中的inport函数和仪器进行对话,实现其它微电压信号工作仪器实时控制。
参考文献
[1] 南京电力学校.电子技术基础.电力工业出版社,1981.11输出低字
[2] 陈汝全.电子技术常用器件应用手册北京理工大学出版社,1991.9
[3] Jan Axelon 著.那怡超译.并行端口大全.中国电力出版社.2001.4
上一篇 : 暂无 下一篇 : 烤地瓜机 烤地瓜机烤地瓜的原理
版权声明:
1.华商贸易网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味 着赞同其观点或证实其内容的真实性。
2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系邮箱:me@lm263.com