0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >技术信息 > PCI总线技术在仪表检测控制系统中的应用

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

来源: 21ic
2021-09-22
类别:技术信息
eye 35
文章创建人 拍明

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

  引言

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

  1控制系统设计方案

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

  


  图1 控制系统方案图

  PCI1750

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

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

  PCI1601

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

  


  图2 字节传输序列图

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

  2控制系统软件设计

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

  


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

  PCI1750与计算机的连接

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

  PrivateSubBtnSelectDevice_Click()

  TimerLEnabled=False

  AdvDIO1.SelectDevice

  If(AdvDIO1.DeviceNumber>=0)ThentxtDeviceName.Text=AdvDIO1.DeviceNameEnableCommandControlsTrue

  SetProperties

  EnableButtonFrameOptDO.Value

  Else

  EnableCommandControlsFalse

  EndIf

  EndSub

  2.2串口通讯的实现

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

  PrivateSubForm_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

  EndSub

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

  Dimdatal()AsByte'串口发送字节

  ReDimdatal(7)

  IfComm1=1Then

  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

  GoTo1

  EndIf

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

  2.3仪表采集数据的处理

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

  


  图4双精度浮点数格式的转换

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

  IfLenB(StrConv(HDatal,vbFromUnicode))=74Then

  IfComm1=1Then

  Text1.Text=HDatal

  sngTemp=0

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

  CopyMemorysngTemp,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))CopyMemorydblTemp,lngArray(0),8

  Text3=(CStr(dblTemp)*1000)

  EndIf

  EndIf

  2.4人机界面总体效果

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

  


  图5 人机界面图

  3结论

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


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯