坦克炮控系统数据采集系统的开发技术

扫码手机浏览

关键词:摘要:本文先容了基于VB6.0和工控机的坦克炮控系统试验平台数据采集系统的开发技术,具体说明了该系统的设计方法和关键环节,给出了PCL818H和PCL813B数据采集卡的特点和应用方法以及VB6.0访问数据库的技术。    随着武器装备的不断升级换代,性能的不断进步,对维修后试验技术的要求也不断进步。新近几年装备部队的主战坦克火控系统对维修后的试验要...
  • 关键词:
  • 摘要:本文先容了基于VB6.0和工控机的坦克炮控系统试验平台数据采集系统的开发技术,具体说明了该系统的设计方法和关键环节 ,给出了PCL818H和PCL813B数据采集卡的特点和应用方法以及VB6.0访问数据库的技术 。

    随着武器装备的不断升级换代,性能的不断进步,对维修后试验技术的要求也不断进步。新近几年装备部队的主战坦克火控系统对维修后的试验要求相当严格 ,现行的试验手段多为手工操纵,自动化程度低,精确度很差 ,新型坦克炮控系统试验平台的开发正是基于这一背景提出的,本文介绍了该平台的数据采集系统的开发技术。


    1
 、 硬件系统设计


    
1-1、被测参数分析


    
按照有关规定,对维修后的坦克炮控系统需要进行静态参数和动态参数的检测 。需检测的静态参数共有94±15V范围的电压信号 ,动态参数有位移、拉力 、压力、转速、漂移等12路信号 ,位移 、拉力信号为标准传感器输出信号,范围为±5V0-5V,转速和漂移信号为陀螺仪组输出的检查信号 ,为±15V的电压信号。另外,为了丈量位移和拉力,需要使用液压元件以及电磁铁作为执行元件进行相应的操纵 ,故需进行相应的控制。


    
1-2、数据采集卡


    
数据采集卡的选择是硬件系统建设的关键,基于性能的稳定性和性价比的原因,选用了研华的ISA总线产品 。根据需要 ,使用了3PCL813B1PCL818H。这两款板卡都可支持双极性±5V的输进范围,我们另制作了一块外围端子板将±15V的电压转换为±5V[2-3]。


    
PCL813B具有32路单端隔离模拟量输进,本应用中使用它采集94路静态电压信号 。它采用了12位分辨率A/D转换器AD574 ,转换时间为25μs,数据传送速率达25Kbps,输进范围为双极性±5V、±2.5V 、±1.25V±0.625V,单极性为010V 、05V、02.5V01.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个连续的PCI/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级联在一起提供了一个周期精确的触发脉冲,非常适合于需要固定且精确的采样频率的系统。把外部触发信号接在CN335,可以实现外部触发,适用于不需要周期采样的系统 ,外部信号的上升沿启动A/D转换 。根据该系统的需要,我们选择了软件触发方式 。


    
1-3、的选择


    
工控机(IPC)是一种具备特殊性能的计算机,能在恶劣的产业生产环境下,保证系统的连续稳定运行,并能承受环境中的高(低)温、冲击 、振动、电磁干扰、湿润 、粉尘等不利因素[4]。考虑到军用的特殊性,我们选择了车载使用方便的产业便携机 ,型号为华北工控的REPC-815,该机具有8PCI/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_DeviceOpen0,DeviceHandle


    
假如ErrCde0表示成功 ,否则返回错误信息。


    
2)、配置输进通道范围

    

    lpAIConfig.DasChan=int Channel ‘设置通道


    
lpAIConfig.DasGain=0 ‘设置增益为0


    
ErrCde=DRV_AIConfigDeviceHandle,lpAIConfig


    
3)、读取电压值IConfig


    
AiVolIn.chan=lpAIConfig.DasChan ‘电压输进通道


    
AiVolIn.Gain=lpAIConfig.DasGain ‘电压输进增益


    
AiVolIn.TrigMode=AiCtrMode ‘触发模式


    
AiVolIn.voltage=DRV_GetAddressvoltage ‘读进电压值


    
ErrCde=DRV_AIVotageInDeviceHandle,AivolIn


    
4) 、返回值


    
fnGetValue=voltage


    
5)、封闭设备


    
ErrCde=DRV_DeviceCloseDeviceHandle


    
2-2、数据库的访问


    
VB6.0提供了相当强的数据库存储能力,可以直接支持Microsorft Access数据库[6].VB在单机环境访问数据库的技术有DAOADO,既可用控件也可用代码编程实现 。本应用中利用控件并分歧适,故采用了比较灵活的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_UnloadCancel As Integer ‘卸载窗体事件


    
cn.Close ‘封闭连接


    
End Sub


    ‘
保存按钮的单击事件中将界面中的数据写进记录集


    
Private Sub Command1_Click()


    
adors.Fields"name" = Text1.Text ‘检测项目名称


    
adors.Fields"testdata" = ValText2.Text ‘检测值


    
adors.Fields"giveddata" = ValText3.Text ‘给定的指标值


    
adors.Fields"conclusion" = Text4.Text ‘检测结论


    
adors.Update

 

    adors.Close


    
End Sub


    
2-3 、报表输出


   
对报表的输出 ,VB6.0提供了很多方法,其中DataReport设计器和Printer对象方法特点鲜明。利用Printer对象方法需要编写较多的代码,但极具灵活性;DataReport设计器是VB6.0新增的功能 ,它只提供了最基本的功能 ,但具有非常易用的特点 。由于本系统数据比较简单,所以使用了DataReport设计器实现试验报告的输出 。


    3
、结论


   
经过反复调试,我们开发的基于VB的工控机数据采集系统实现了预期的各项功能,达到了各项技术指标要求。该系统在我军某坦克中修单位使用了近半年,界面友好 ,功能丰富,运行可靠,有着较高的推广应用价值 ,并且对其它行业多参数数据采集系统有参考价值。

 

本文转载自互联网,如有侵权,联系删除

展开