欢迎来到天天文库
浏览记录
ID:40054640
大小:186.50 KB
页数:5页
时间:2019-07-18
《ADAM模块在液位检测中应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ADAM模块在液位检测中的应用关键词:ADAM4017,ADAM4520,VB软件,集中液位实时采集,实时数据通讯 一、概述 山东泉林纸业有限责任公司是一个集制浆、造纸类综合企业,该企业铜版纸生产线所用附料液位监视系统是自行开发的集中液位实时采集系统,生产人员通过中心控制室的电脑屏幕即可得到料罐液位的实时数据,从而决定是否配料。采用此系统还可减少为每个料罐配置一个液位显示仪表而产生的繁琐布线,只要把液位信号线集中铺设到中控室与ADAM4017模块连接即可。集中配料,物料通过管道输送到各个料罐,一人可配多种料,减少了人力成本。本文主要讨论WINXP操作系统下利用VB软件实现研华公
2、司的ADAM4520与ADAM4017的实时数据通讯。监视电脑二、系统的实现方法数据采集框图ADAM4520ADAM4017ADAM4017ADAM4017液位信号液位信号液位信号 本系统要采集20种物料的液位,监视画面及电脑与ADAM4520的通讯由VB软件实现,ADAM4017用于接收4~20MA液位信号,ADAM4520用于电脑与ADAM4017之间数字信号和模拟信号的转换。VB程序做出监控画面如下:由于篇幅所限现只列出主程序代码如下:PrivateSubCommand1_Click()UnloadForm1EndSubPrivateSubCommand2_Click()
3、Form1.WindowState=1EndSubPrivateSubCommand3_Click()Timer1.Enabled=Falsesetup.ShowEndSubPrivateSubCommand4_Click()DimfreeFAsIntegerfreeF=FreeFile()Open"d:gaoddemodival.dat"ForRandomAsfreeF"可以自行设置路径"Fori=1To20PutfreeF,i,modifyVal(i-1)NextiClose(freeF)EndSubPrivateSuberrCode_Change()IfMVal(err
4、Code)+1>=300ThenerrCode=0EndSubPrivateSubForm_DblClick()Form1.WindowState=1EndSubPrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfShift=7ThenenabledSetup=1ElseIfShift=6ThenenabledSetup=2ElseenabledSetup=0EndIfEndSubPrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)enabledSetup=0End
5、SubPrivateSubForm_Load()DimfreeFAsIntegerMI(0)=1MI(1)=2MI(2)=4MII(0)=6MII(1)=5MII(2)=3freeF=FreeFile()Open"d:gaoddemodival.dat"ForRandomAsfreeF"路径可自行定义"IfLOF(freeF)=0ThenFori=1To20modifyVal(i-1)=0Text1(i-1).Text=modifyVal(i-1)PutfreeF,i,modifyVal(i-1)NextiElseFori=1To20GetfreeF,i,modifyVal(
6、i-1)Text1(i-1).Text=modifyVal(i-1)NextiEndIfClose(freeF)'Open"com2,9600,8,N,1"ForRandomAsfreeFx=sio_open(PortNum)x=sio_ioctl(PortNum,B9600,BIT_8+STOP_1+P_NONE)x=sio_flush(PortNum,2)Fori=0To2Label14(i)=""Label7(i)=""Label16(i)=""Label17(i)=""Nextitongxun_ok=0EndSubPrivateSubLabel11_Click()Ifen
7、abledSetup=1ThenmyDelay=myDelay+100Label12=myDelayEndIfEndSubPrivateSubLabel16_Change(IndexAsInteger)IfMVal(Label16(Index))>9999ThenLabel16(Index)=0EndSubPrivateSubLabel17_Change(IndexAsInteger)IfMVal(Label17(Index))>9999ThenLabel17(Index)=0E
此文档下载收益归作者所有