当前位置: 首页 > 范文大全 > 公文范文 >

PCI总线技术在仪表检测控制系统中的应用

时间:2022-03-23 09:24:23  浏览次数:

摘 要:给出了一种基于PCI总线技术控制的仪表检测控制系统的设计方法。该系统以研华PCI1750作为I/O控制卡,并以研华PCI1601作为仪表监控数据采集通讯卡,同时通过 VB 6.0编写系统的上位机软件。实验结果表明,该系统可提升数据传输的实时性,降低系统所需成本,从而实现设备管理的一体化。

关键词:PCI总线技术;I/O控制卡;数据采集通讯卡;仪表检测控制系统

中图分类号:TP39文献标识码:A文章编号:2095-1302(2012)08-0059-04

Application of PCI bus in instrument test and control system

ZHENG Xue-na1 , WANG Hong-cheng1, BI Jia-rui2, WANG Yu-han3

(1. School of Electric Information, Southwest Petroleum University, Chengdu 610500, China; 2. Dagang Oilfield No.1 Oil Production Plant, Tianjin 300280, China;

3. The Shallow Water Development Company, Dagang Oilfield Corporation, Tianjin 300280, China)

Abstract: A designing method of instrument test and control system based on PCL bus technology is proposed in the paper. The system takes PCI 1750 as I/O controller card and PCI 1601 as data acquisition communication card. And the software of the system is developed and written in VB6.0. The experimental result indicates that instantaneity of data transmission is improved, the cost of the system is reduced, and thus equipments integrated with their management are realized.

Keywords: PCI bus technology; I/O controller card; data acquisition communication card; instrument test and control system

0 引 言

小型仪器仪表监控系统一般由控制器、数据采集模块、串口通讯模块以及工控机组成。但是,这种结构会存在设计结构复杂,系统灵活性较低的缺点。为了克服这些缺点,本文利用PCI总线技术,并结合研华公司所研制的两种PCI控制卡完成了这种小型系统的设计。其中PCI总线是先进的高性能局部总线,可同时支持多组外围设备,而不受制于处理器,为中央处理器及高速外围设备提供一座桥梁,更可作为显现之间的交通指挥员,提高数据吞吐量。PCI采用高度综合化的局部总线结构,可确保电脑部件、附加卡及系统之间的可靠运作,并能完全兼容现有的ISA/EISA/Micro Channel扩充总线。PCI总线与其他主流总线相比,具有速度更快、实时性更好和可控性更佳的优点,适用于高速实时的I/O控制卡。但由于PCI总线协议比较复杂,因此,其接口电路实现起来并不容易,而采用通用PCI接口芯片就能很好地解决这一问题[1]。

1 控制系统设计方案

本设计采用PCI总线来构建硬件平台,通过PCI总线由PC机来控制系统的电磁阀,通过PCI1601通讯板卡将外置仪器仪表采集的设备温度、压力及流量等信息传送给PC机并进行相关数据处理。具体设计原理框图如图1所示。

1.1 PCI1750

PCI1750是一款功能强大的PCI总线半长卡,能提供16路隔离数字量输入通道、16路隔离数字量输出通道以及一个带输入信号的隔离计数器/定时器。由于带有2 500 VDC隔离保护及支持干接点,PCI1750非常适合需要高电压保护的工业应用场所。PCI1750与PC机可以构成主从式控制结构,其中PC机负责人机交互界面的管理和控制系统的实时监控等方面的工作[2],PCI1750则完成对开关电磁阀或是逻辑控制类执行器的控制,依靠输出的数字脉冲信号来驱动相应回路的继电器,从而实现PC机通过PCI1750对开关电磁阀的逻辑控制。除了对开关电磁阀的简单逻辑控制外,用户可根据控制系统的要求调用PCI1750运动函数库中的指令函数,从而开发出满足要求而且成本低廉的逻辑控制系统。

本文利用PCI1750板卡实现了对开关电磁阀的控制,这种控制方法具有控制简单、点位利用率高等优点。

1.2 PCI1601

计算机通过PCI1601总线通讯接口卡与仪器仪表设备的传感器进行连接,进而控制电磁阀。PCI1601总线通讯接口卡可以支持RS-422、RS-485两种串行通讯接口标准,并采用Modbus规约RTU模式,可以方便地与多种组态软件相连接,其通讯驱动与Modicon Modbus_RTU 格式完全兼容。PCI1601板卡增加了 “自动数据流控制”硬件, 故可自动识别数据是“发送”还是“接收”,它不再支持“RTS握手信号”,这样就使RS-485通讯软件的开发与RS-232完全相同。板卡通过DIP拨码开关设置相应模式。RS-485的通信距离最远可达1 200 m,通信距离为15 m时,波特率可达10 Mb/s。在工业现场中,RS-485作为一种双线差分半双工的通信方法而广泛采用,具有很高的抗共模干扰能力,并可很好地适应现场的恶劣环境 [3]。在数据传输过程中,其字节格式如图2所示。

图2 字节传输序列图

图2中,D0 是字节的最低有效位,D7 是字节的最高有效位。传输时,先传低位,后传高位。通讯时,数据以字(WORD— 2 字节)的形式回送,回送的每个字中,高字节在前,低字节在后。如果2个字连续回送(如浮点或长整形),则高字在前,低字在后。上位机发送的数据格式和仪表回送的数据包格式分别如表1和表2所列。

2 控制系统软件设计

本系统采用VB 6.0作为上位机软件开发平台,其程序流程图如图3所示。编写上位机程序时,可利用ModBus规约来完成串口通讯部分的软件设计。

该通讯模块中的仪表地址可以在1~247之间选择。仪器出厂时,一般的默认地址为1,而在实际使用中,则可以根据现场情况设定不同的通讯地址。

2.1 PCI1750与计算机的连接

通过下列函数可实现PCI-1750与PC机的连接,以使PC机能实现对输入输出的控制,并通过AdvDIO1.WriteDoPorts(DOBuffer0,0,1)实现对DO的控制。其代码如下:

Private Sub BtnSelectDevice_Click()

Timer1.Enabled = False

AdvDIO1.SelectDevice

If (AdvDIO1.DeviceNumber >= 0) Then

txtDeviceName.Text = AdvDIO1.DeviceName

EnableCommandControls True

SetProperties

EnableButtonFrame OptDO.Value

Else

EnableCommandControls False

End If

End Sub

2.2 串口通讯的实现

实现串口通讯时,可在程序中插入MSComm控件,并配置串行端口参数;每当一组数据接收完毕后便激活1个OnComm()事件,在OnComm()消息处理函数中加入相应的数据处理算法,并做出相应的处理,如显示、控制等。其具体程序如下:

Private Sub Form_Load()

Command1.Caption = "打开串口"

MSComm2.Settings = "9600,N,8,2"

MSComm2.InBufferSize = 40

MSComm2.OutBufferSize = 2

MSComm2.InputMode =comInputModeBinary

MSComm2.InBufferCount = 0

MSComm2.OutBufferCount = 0

MSComm2.RThreshold = 1

End Sub

通过上列函数即可实现串口通讯的建立。通过下面的函数则可实现与现场实际仪表的通讯:

Dim datal() As Byte "串口发送字节

ReDim datal(7)

If Comm1 = 1 Then

datal(0) = &H1

datal(1) = &H3

datal(2) = &HB

datal(3) = &HBA

datal(4) = &H0

datal(5) = &H10

datal(6) = &H67

datal(7) = &HC7

Comm1 = 2

GoTo 1

End If

由于一个串口通常可以挂接好几个仪表,因此,程序中使用了GoTo函数。不同仪表可以编写不同的通讯命令,以便采集各仪表的数据。

2.3 仪表采集数据的处理

由于上位机数据显示格式为十进制,而仪表传送到上位机的数据一般均为浮点数,因此,必须经过相应的计算将其转换为十进制数才能进行显示。图4所示是一种由双精度浮点数格式转换为十进制格式的方法,其转换公式为:

其中,第63 bit为符号位,该位为0表示正数,反之为负数,其读数值用S表示;第62~52 bit共11幂数(2的幂数),其读数值可用E表示;第51~0 bit共52位为系数,视为二进制纯小数,假定该小数的十进制值为F;那么,转换后的十进制浮点数据则以FData表示。整个转换算法的具体代码如下:

If LenB(StrConv(HDatal, vbFromUnicode)) = 74 Then

If Comm1 = 1 Then

Text1.Text = HDatal

sngTemp = 0

lngTemp = CLng("&H" & Mid(HDatal, 7, 8))

CopyMemory sngTemp, lngTemp, 4

Text2 = Round(("" & CStr(sngTemp)) * 3600, 6) dblTemp=0

strHex = Mid(HDatal, 63, 8) & Mid(HDatal, 55, 8)

lngArray(1) = CLng("&H" & Right(strHex, 8))

lngArray(0) = CLng("&H" & Left(strHex, Len(strHex) - 8))

CopyMemory dblTemp, lngArray(0), 8

Text3 = (CStr(dblTemp) * 1000)

End If

End If

2.4 人机界面总体效果

本系统的人机界面总体效果图如图5所示。从图5中可以看出,此界面能监视所有连接到上位机的仪表数据,并通过设定值与实际值的比较来实现阀1和阀2的自动控制。

3 结 论

本文介绍了一种基于PCI总线技术的小型仪器仪表监控系统,该系统以 PCI1601通讯接口卡作为通讯模块的核心设备。目前,该系统已经正式运行,应用效果良好,并具有可靠性好、集成度高、灵活性高等优点,可以大大缩短系统研制和开发周期,满足用户对小型仪器仪表监控系统的不同控制要求。

参 考 文 献

[1] 李贵山,戚德虎.PCI局部总线开发者指南[M].西安:西安电子科技大学出版社出版,2001.

[2] 姜培昌,卢军霞,赵庆志.基于PCI21750数据采集卡的步进电机控制系统设计[J].山东理工大学学报:自然科学版,2010(1):93-95.

[3] 张桂,金国强,李辉.基于ARM平台ModbusRTU协议的研究与实现[J].电力科学与工程,2011(1):23-27.

[4] 张宏林,求是科技.Visual Basic 6.0程序设计与开发技术大全[J].北京:人民邮电出版社,2004.

[5] 林永,张乐强.Visual Basic 6.0用户编程手册[M].北京:人民邮电出版社,2002.

[6] 马宏伟 毛清华 张旭辉. 基于PCI总线的超声检测虚拟仪器系统设计 [J].仪表技术与传感器, 2011(1):34-36.

[7] 刘宝明,阚丹丹,史云辉. 基于Tsi148的PCI-VME总线接口设计[J].现代电子技术,2010,33(4):116-118,121.

[8] 李丹,贺占庄,李灏. PCI Express总线接口板的设计与实现[J].现代电子技术,2009,32(4):166-169.

[9] 王东霞,乐建华 . 基于虚拟仪器检测技术实验平台的开发与应用[J].现代电子技术,2010,33(18):192-195.

[10]李文博. 一种基于SVM的数字仪表显示值识别方法[J].现代电子技术,2011,34(4):203-205.

作者简介: 郑雪娜 女,1985年出生,重庆人,硕士研究生。研究方向为电气传动与控制,测试计量技术及仪器。

王洪诚 男,1955年出生,四川阆中人,教授,硕士生导师。研究方向为电气传动与控制,控制理论与控制工程。

毕珈瑞 男,1984年出生,天津人,西南石油大学资源勘查专业本科毕业,天津市滨海新区大港油田采油一厂助理工程师。研究方向为

油气储运与企业管理。

王钰涵 女,1984年出生,四川南充人,西南石油大学电气工程及其自动化专业本科毕业,天津市滨海新区大港油田滩海开发公司工艺

研究所助理工程师。研究方向为电气传动与控制、电力系统及其自动化。

推荐访问: 仪表 检测 控制 系统中的应用 总线技术