利用vb制作控制系统上位机仿真监控软件_第1页
利用vb制作控制系统上位机仿真监控软件_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用 VB 制作控制系统上位机仿真文传源航空航天大学自动控制系100083)(摘要在设计 PLC 控制系统上位机仿真中,本文采用了 Visual Basicfor Windows,VB 具有良好的面象设计方法、友好的用户界面、简易方便的串行口操作以及与数据库系统的兼容,因此无需借用其他语言就可以成功地开发优秀的控制系统上位机仿真。本文以 Goldstar PLC 为例,研究了上位机仿真开发的主要过程。控制系统;仿真;数据库1 引言在工业控制系统中,PLC 作为一种稳定可靠的控制器已越来越受到人们的重视,但它有自身的一些缺点,即信息的统计管理能力较弱,特别是不能给用户提供一个友好的交互界面。采用

2、上位机与 PLC 相结合的办法可以有效地解决上述问题,在这里,PLC 完成对系统的底层控制,而上位机则完成顶层的与信息管理。本文研究了采用 Visual Basic for Windows来实现PLC 分别与近距离(小于 15m)计算机及与远距离计算机(约 500m)通信的方法,并且还研究了利用Foxpro 与Visual Basic相结合的方法来解决大量信息管理问题123。2 硬件R图 1 系统硬件结构框图整个系统分别由PLC、显示计算机、管理计算机及通信线缆所组成,其硬件结构框图如图 1 所示。其中显示计算机用于仿真画面的显示与故障,而管理计算机则用于管理信息的统计。PLC 与显示计算机的

3、通信为RS232 串行方式,利用 PLC 与计算机各自的RS232 串行通信口,通信线路采用多股屏蔽电缆,其连线如图 2 所示。PLC 同管理计算机的通信是借助于显示计算机作过渡,由于两台计算机之间的距离较远,因此采用了RS422 串行通信方式,使用了双绞线,它们之间的连线如图 2 所示。两台计算机都使用了研华PCL-745B 串行通信卡,其硬件设置均为:模式为 RS422,中断号为 IRQ10,I/O 地址为 3F8H,并将该串行口均设置为COM3。除硬件设置外,还要进行相应的设置,其方法是通过修改PCL-745B 的驱动程序中的有关参数,具体设置可参阅PCL-745B 说明书6。图 2 所

4、示的连线均为 9 芯方式。Gstar PLCS232C显示计算机RS422管理计算机图 2 系统接口连线图3 通口编程VB 提供了串行口控件(Comm Control),编程时可直接采用。在普通VB 版本中,串行口控件不列在工具箱中,因此必须人为添加,其方法是在Tools 菜单项中在选Custom Controls,出现一列表控件名,选中Comm Control 即可。在使用时,只要将通信端填入即可,其他可直接采用系统本身的缺省值。通口分为两部分,第一部分为 PLC 与显示计算机的接口,在PLC 与计算机通信中,PLC 处于状态45,它们之间的协议如下面所示:计算机通信请求格式: PLC 肯定

5、应答格式:PLC 否定应答格式:ENQ$+局号命令地址数据EOT$ ACK$+局号命令数据EOT$NAK$+局号命令错误代码EOT$因此根据上述通信协议,编制出计算机与 PLC 的通口子程序如下:Private Sub PLCread(addr$, num$, str3$)RS232 串行口通信程序Dim str1$, str2$str1$为发送字符串,str2$为接受字符串Dim p1 As Single, p2 As Single, p3 As Single 2.Settings = 9600,N,8,1On Error Resume Next2.PortOpen = TrueIf Err

6、 ThenMsgBox 串行 2 口出现故障, 16, 信息提示窗口 2.PortOpen = FalseExit Sub End Ifstr1$ = Chr$(5) + 00RD + addr$ + num$ + Chr$(4) 2.InBufferCount = 02.Output = str1$ ccd1: p1 = TimerIf p1 86395# Then GoTo ccd1 Dop2 = Timer p3 = p2 - p1If p3 3# Then Exit Do显示计算机管理计算机1PLC显示计算机23If2.InBufferCount Thenstr2$ = str2$ +

7、2.InputIf InStr(str2$, Chr$(4) Then Exit Do End IfLoopIf InStr(str2$, Chr$(6) Thenstr3$ = Mid$(str2$, 5, 4 * Val(num$) ElseIf InStr(str2$, Chr$(21) ThenMsgBox PLC 数据格式错误, 64, 信息提示窗口 str3$ = Mid$(str2$, 5, 2)Else MsgBox PLC 或者是通信线路出现故障, 16, 信息提示窗口End If End IfEnd Sub其中addr$为 0000-9999 的十进制数,它与前面的“D”开

8、始的单元数,str3$为被读出的数据内容或错误代码,了 PLC 的D 数据区,num$为从 addr$2 为串行口 2 的对象名。通口的第二部分是两台计算机之间的通信,为了有效可靠地传输数据,因此也必须在两台计算机之间设计一个通信协议,具体如下:显示计算机的通信请求格式:管理计算机的肯定请求格式:管理计算机的否定请求格式:ENQ$+数据EOT$ACK$EOT$ NAK$+“错误代码”EOT$每次建立这样的通信通道后,显示计算机就向管理计算机发送一帧数据,因此每发送一帧数据之前均需要进行通信握手,以保证传输数据通道的畅通。根据该协议编制出下列子程序:Sub Pr422(str422$, str4

9、$)Dim str2$422 串行口通信程序Dim p1 As Single, p2 As Single, p3 As Single 3.Settings = 9600,N,8,1On Error Resume Next3.PortOpen = TrueIf Err ThenMsgBox 串行 3 口出现故障, 16, 信息提示窗口 3.PortOpen = FalseExit Sub End If3.InBufferCount = 03.Output = Chr$(5)str422$ + Chr$(4) ccd1: p1 = TimerIf p1 86395# Then GoTo ccd1s

10、tr2$ = Do While Not DoEvents() p2 = Timerp3 = p2 - p1If p3 1.5 ThenMsgBox RS422 通信线路出现故障, 64, 信息提示窗口 3.PortOpen = Falsecmain_RS422.Enabled = True Exit SubEnd IfIf3.InBufferCount Thenstr2$ = str2$ +3.InputIf InStr(str2$, Chr$(4) Then Exit Do End IfLoopIf Instr(str2$,Chr$(21) ThenMsgBox 计算机数据格式错误, 64,

11、 信息提示窗口 str4$ = Mid$(str2$, 2, 2)End if3.PortOpen = False cmain_RS422.Enabled = FalseEnd Sub其中str422$为被发送的数据。str4$为被读出的数据内容或错误代码,对象名。3 为串行口 3 的4 管理信息接口编程显示计算机用于显示PLC 的工作状态,如运行状态、故障状态,而管理计算机用于显示统计报表, PLC 与计算机之间采用一种代码协议方式,计算机根据从PLC 读进来的代码来进行相关的操作。这些工作是基于对数据库的操作来完成的。这里,数据库是用Foxpro 编制的,利用了VB 的Foxpro 接口,

12、只要在VB 的程序中编制好数据库操作程序,就可以对 Poxpro 数据库进行操作了,而具体的库管理可以由Foxpro 完成,这样就很容易地将仿真中的数据库管理与数据库利用有效地分离开,有助于程序的模块化设计。图 3 说明了VB 与Foxpro 共享数据库的示意情况,下面为用VB 编制的数据库查询程序。Visual BasicFoxpro数据库图 3 VB 与Foxpro 接口示意图Dim us2$.Recordset.Moveccd2: us2$ = ccause_no.CaptionIfo = Val(us2$) Then ccause_timer.Enabled = FalseExit S

13、ubElse.Recordset.MoveNextEnd If GoTo ccd2End Sub其中为数据库控件名,在使用它之前,将其属性中的 connect 指向所操作的数据库类型,这里为Foxpro2.6,将其属性中的DatabaseName 指向所操作的数据库文件名,并将其属性中的Visible 设置成False。ccause_no 为一Label 控件,它与数据库中的某个域相连,其方法是将Label 控件中的DataSource 属性指向数据库控件,将Label 控件中的Datafield 属性指向数据库指定的域,这样通过该段程序,可以实现数据库指定内容(由o 变量给定)的查询。5 界面程序设计由于VB 具有面象的程序设计方法,采用可视化的编程,用户就象在纸上画画一样将有关控件安置好,进行一定量的编程后,就可以完成整个界面的程序设计。限于篇幅,这里不介绍界面程序的设计。6 结束语由于 VB 本身能够提供良好的用户界面,面象的程序设计方法,提供串行口控件,因而省去了编写大量串行口操作程序,再加上 VB 可提供与Foxpro 接口,因而可以很容易地调用Foxpro 所管理的数据库,以实现大量信息管理所需的数据。由于中的界面设计程序很大,因此这里没有一一列出,仅例举了通信程序与数据库查询程序。总之,VB 在编制控制系统上位机仿真有很大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论