RPC610工控机中基于VB6.0的数据采集系统的开发

作者:工业平板电脑|手持终端解决方案提供商    来源:www.wxtkj.cn    发布时间:2014-07-24 21:34    浏览量:

                 工控机在工业领域的广泛应用,免不了一些基本的基础层次的开发应用,而Visual Basic 6.0作为一款简便快捷的编程语言,在工业领域也应用非常广泛,本文将以一个简单的应用案例来分析RPC610工控机与Visual Basic的完美结合,希望对大家有用。
 
                 1、 硬件系统设计
 
           1-1、被测参数分析
 
           按照有关规定,对维修后的坦克炮控系统需要进行静态参数和动态参数的检测[1]。需检测的静态参数共有94路±15V范围的电压信号,动态参数有位移、拉力、压力、转速、漂移等12路信号,位移、拉力信号为标准传感器输出信号,范围为±5V和0-5V,转速和漂移信号为陀螺仪组输出的检查信号,为±15V的电压信号。另外,为了丈量位移和拉力,需要使用液压元件以及电磁铁作为执行元件进行相应的操纵,故需进行相应的控制。
 
           1-2、数据采集卡
 
           数据采集卡的选择是硬件系统建设的关键,基于性能的稳定性和性价比的原因,选用了研华的ISA总线产品。根据需要,使用了3块PCL813B和1块PCL818H。这两款板卡都可支持双性±5V的输进范围,我们另制作了一块外围端子板将±15V的电压转换为±5V[2-3]。
 
           PCL813B具有32路单端隔离模拟量输进,本应用中使用它采集94路静态电压信号。它采用了12位分辨率A/D转换器AD574,转换时间为25μs,数据传送速率达25Kbps,输进范围为双性±5V、±2.5V、±1.25V和±0.625V,单性为0~10V、0~5V、0~2.5V和0~1.25V,A/D转换触发方式为软件触发。
 
           PCL-818H是一款多功能采集卡,本应用中使用它采集动态信号及控制液压阀和电磁铁。它提供了5个为常用的丈量和控制功能:12位的A/D转换,D/A转换,数字输进,数字输出和计时器/计数器。它的特点是:
 
           (1) 16路(单)或8路(双)差分模拟量输进;
 
           (2) 12位模数转换,100KHZ的采样频率;
 
           (3) 16路数字输进和输出;
 
           (4) 可通过软件改变增益的值;
 
           (5) 软件可选择逻辑输进范围(双性)。
 
           两块板卡使用方法基本相同,由于篇幅限制,下面仅以818H对模拟量的输进采集为例先容采集卡的使用。
 
           编写PCL-818H的程序的关键是使用板卡上的16个寄存器。它需要16个连续的PC机I/O空间地址,每个口地址与采集板内的寄存器相对应。每个寄存器的地址是通过指定到板卡基地址的偏移量。例如,BASE+0是这个板卡的基地址,并且BASE+7表示基地址+7个字节。假如板卡的基地址是300h,则BASE+7寄存器的地址就是307h,结果见表1。
 
           表1、 寄存器的作用及相应的I/O端口地址
 
 
           PCL-818H模拟输进的16个端口,可以构成16个单端输进或者8对差分输进,输进通道的工作方式利用跳线设置,软件控制对一个或多个通道的操纵。输进信号经放大电路后,由一个逐次逼近式A/D转换为12位数字信号。
 
           PCL-818H提供了软件、时钟步进和外部信号3种触发方式。软件触发的触发器是由软件控制的,当在软件寄存器中写进数值后,启动A/D转换,这种方式适用于低速A/D转换。时钟步进触发适用于转换速度要求很高的系统,PCL-818H提供的8254定时/计数器用来为A/D提供一个固定触起源,计数器1和计数器2级联在一起提供了一个周期精确的触发脉冲,非常适合于需要固定且精确的采样频率的系统。把外部触发信号接在CN3的35脚,可以实现外部触发,适用于不需要周期采样的系统,外部信号的上升沿启动A/D转换。根据该系统的需要,我们选择了软件触发方式。
 
           1-3、工控机的选择
 
           工控机(IPC)是一种具备特殊性能的计算机,能在恶劣的产业生产环境下,保证系统的连续稳定运行,并能承受环境中的高(低)温、冲击、振动、电磁干扰、湿润、粉尘等不利因素[4]。考虑到三防的特殊性,我们选择了车载使用方便的产业便携机,型号为华北工控的RPC610工控机,该机具有8槽PCI/ISA扩展能力,液晶屏可360℃旋转,具有防暴功能。
 
        
 
系统结构图
 
         2、软件系统的设计
 
           系统的软件设计采用了VB6.0,VB6.0以其易学、高效、功能强大以及所开发的系统界面友好等特点受到了众多用户的欢迎,在数据采集和产业控制领域得到了广泛应用。本系统的软件部分主要有数据采集处理和数据治理两部分组成,实现的功能有数据采集的控制、数据处理、数据的治理以及试验报告的输出。下面给出了数据采集和存储两个关键环节的代码。
 
           2-1、模拟电压的读取
 
           VB固然易学且功能强大,但也有其自身的弱点,比如对硬件的直接访问仅靠VB自身是无法解决的。但是它可以通过调用板卡提供的驱动函数,实现对I/O的访问和控制,而且支持事件驱动,这样就使VB可以很方便地编制数据采集软件[5]。
 
           在Windows环境下调用驱动程序,需要在工程中添加一个模块Driver.bas,模块中定义了PCL-818H的所有常量,全局变量,函数,数据结构,状态代码和消息。可以直接在程序中调用文件中定义的这些量实现数据的读取。在Driver.bas文件的后定义了很多API函数,但都不是私有的,工程里的所有窗体都可以调用这些函数。模拟值的读取分为如下5步:
 
           (1)、打开设备
 
           ErrCde=DRV_DeviceOpen(0,DeviceHandle)
 
           假如ErrCde为0表示成功,否则返回错误信息。
 
           (2)、配置输进通道范围
 
           lpAIConfig.DasChan=int Channel ‘设置通道
 
           lpAIConfig.DasGain=0 ‘设置增益为0
 
           ErrCde=DRV_AIConfig(DeviceHandle,lpAIConfig)
 
           (3)、读取电压值IConfig)
 
           AiVolIn.chan=lpAIConfig.DasChan ‘电压输进通道
 
           AiVolIn.Gain=lpAIConfig.DasGain ‘电压输进增益
 
           AiVolIn.TrigMode=AiCtrMode ‘触发模式
 
           AiVolIn.voltage=DRV_GetAddress(voltage) ‘读进电压值
 
           ErrCde=DRV_AIVotageIn(DeviceHandle,AivolIn)
 
           (4)、返回值
 
           fnGetValue=voltage
 
           (5)、封闭设备
 
           ErrCde=DRV_DeviceClose(DeviceHandle)
 
           2-2、数据库的访问
 
           VB6.0提供了相当强的数据库存储能力,可以直接支持Microsorft Access数据库[6].VB在单机环境访问数据库的技术有DAO和ADO,既可用控件也可用代码编程实现。本应用中利用控件并分歧适,故采用了比较灵活的ADO代码编程方法。假定在C:\mydatabase\mydata.mdb数据库中存在”pkxt”表格,name、testdata、giveddata、conclusion是其字段名,界面中几个Text文本框中显示了试验数据,将数据写进数据库的代码如下:
 
           Private Sub Form_Load() ‘ 窗体装载事件
 
           Dim strSQL As String
 
           Set cn = New ADODB.Connection ‘建立新的连接
 
           cn.Provider = "microsoft.jet.oledb.3.51" ‘ 数据库引擎
 
           cn.ConnectionString = "C:\mydatabase\mydata.mdb" ‘数据库路径
 
           cn.Open ‘打开连接
 
           Set adors = New ADODB.Recordset ‘打开“pkxt”表的一个记录集
 
           adors.LockType = adLockOptimistic
 
           strSQL = "select *" & "from pkxt"
 
           adors.Source = strSQL
 
           Set adors.ActiveConnection = cn
 
           adors.Open
 
           adors.AddNew
 
           End Sub
 
           Private Sub Form_Unload(Cancel As Integer) ‘卸载窗体事件
 
           cn.Close ‘封闭连接
 
           End Sub
 
           ‘在“保存“按钮的单击事件中将界面中的数据写进记录集
 
           Private Sub Command1_Click()
 
           adors.Fields("name") = Text1.Text ‘检测项目名称
 
           adors.Fields("testdata") = Val(Text2.Text) ‘检测值
 
           adors.Fields("giveddata") = Val(Text3.Text) ‘给定的指标值
 
           adors.Fields("conclusion") = Text4.Text ‘检测结论
 
           adors.Update
 
           adors.Close
 
           End Sub
 
           2-3、报表输出
 
           对报表的输出,VB6.0提供了很多方法,其中DataReport设计器和Printer对象方法特点鲜明。利用Printer对象方法需要编写较多的代码,但具灵活性;DataReport设计器是VB6.0新增的功能,它只提供了基本的功能,但具有非常易用的特点。由于本系统数据比较简单,所以使用了DataReport设计器实现试验报告的输出。

企业分站 在线客服 :     服务热线: 025-86136252 / 15062244194     电子邮箱: [email protected]

公司地址:江苏省南京市江宁区未来科技城

研维信息是一家集研发、生产、销售为一体的工控机、嵌入式安装工业平板电脑、加固手持平板电脑、加固类三防计算机的专业设备提供商,提供各种尺寸和规格的安装式工业平板电脑,手持三防平板电脑,加固三防计算机。核心研发及市场团队均有10余年的相关行业背景,尤其是公司的ODM团队,可以为客户提供快速、质优、灵活的客户定制化产品OEM及ODM服务,公司对员工及客户,都一直秉承合作共赢、以德为先的经营宗旨,为客户提供优质产品及服务,提升客户价值。

关注研维微信公众号,掌握工控行业最新动态资讯
备案号:苏ICP备14059761号-8
主营区域:北京江苏浙江上海安徽山东四川广东福建天津河北河南湖南湖北陕西、山西、辽宁吉林江西黑龙江重庆内蒙古广西海南贵州云南新疆甘肃宁夏青海西安成都深圳杭州苏州广州武汉青岛东莞珠海宁波郑州
声明:(1)本站遵循《中华人民共和国广告法》,在标题、页面等文案描述中尽量规避违禁词、极限词,如还有违禁词、极限词,在此申明上述词汇表述全部失效,如客户咨询均表示默认此条款,不支持任何形式以违禁词、极限词等理由投诉或要求收取费用私下解决,特此申明!(2)除非研维公司另行申明,本网站内的所有产品、技术、软件、程序、数据及其他信息(包括文字、图标、图片、照片、音频、视频、图标、色彩组合、版面设计等)的所有权利(包括版权、商标权、专利权、商业秘密及其他相关权利)均归研维公司所有。未经研维公司的许可,任何人不得以包括通过机器人、人力等程序或设备监视、复制、传播、展示、镜像、上载、下载等方式擅自使用本网站的任何内容。一旦发现侵权行为,我司将立即进行证据保全并诉诸法律。
在线客服