工学
RSS阅读器
 您现在的位置: 在职教育交流中心 >> 论文写作 >> 工学 >> 计算机 >> 论文正文

基于VB的分布式监控系统通信设计

作者:佚名    论文来源:在职教育交流中心    点击数:    更新时间:2007-5-17

    本文介绍了利用VB的多种通信手段实现分布式监控系统的多种通信功能,对每一种通信手段给出其原理和应用实例。

关键词  VB  通信  串行口  控件  DDE  API

The Communication Design of Distributed Control System Based on VB

Abstract:  This article introduces the realization of many communication functions of Distributed Control System with the application on lots of communication methods of VB.

Key Words:  VB Communication Serial Port Control Box DDE API

1.   概论

分布式监控系统已在工业领域得到广泛应用,许多企业对于中小规模的设备,如中小型热电厂和水电站,出于硬件软件投资利润率和性能价格比的考虑,常常是自行开发或参与开发本企业的监控系统。而许多企业在成套引进大型DCS系统后,也常因实际情况而需要自行开发或改进其监控系统。

分布式监控系统以微机为基础,用数据通信将微机连在一起实现数据共享,从而对工业过程进行集中监视管理和分散控制。因此,分布式监控系统中通信的设计与实现是至关重要的环节。Visual Basic开发语言具有简洁明了、编程效率高、开发周期短的特点,利用VB中的多种通信手段,可实现分布式监控系统的多种通信功能。

2.   与下位机的通信

分布式监控系统的数据采集站可直接与现场带有标准RS232C接口的智能仪表、PLC和单片机等链接,并可通过扩展控制卡形成一个数据采集子网,以高速准确地获取数据。VBMSCOMM通信控件具有完善的串口数据发送和接受功能,利用它可以屏蔽对硬件的操作,简易快捷地进行串行通信编程。

本文的实例为上位机与OMRON 200HG系列PLC1:N链接通信。带有RS485接口通信板的PLC直接挂在RS485总线上,上位机通过RS232C /RS485转换器与总线相连,这样即构成数据采集子网,甚至可以是一个独立的小型分布式监控系统。其它仪器仪表设备,只要是标准串口都可以类似方式直接或间接与上位机链接。

关于VBMSCOMM控件可参考相关资料。本例通信程序摘要如下:

(1)        初始化程序

Mscomm1.Commport=2           选择COM2

Mscomm1.Settings=”9600,N,8,2”   设置通信参数

Mscomm1.Inputlen=0             读入接收缓冲区全部字符 

Mscomm1.OutbufferSize=256      设置发送缓冲区大小

Mscomm1.InbufferSize=512       设置接收缓冲区大小

Mscomm1.PortOpen=True          打开COM2

(2)        发送命令程序

比如读取节点号03PLCIR000IR009内容,并放到tag1字符串变量中,此时有:

Dim Command, node, begin, number as string

Dim Answerlen as integer

node=”03”            节点号

Command=”RR”       命令为读IR

begin=”0000”          IR000开始

number=10              读取长度

Answerlen=51           计算接收字符串长度

进行命令发送和接收应答处理:

Dim  FCS, I as integer

Dim  s ,f as string

s=”@”+node+Commad+begin+number

FCS=0

For i=1 to Len(s)

   FCS=FCS xor Asc(Mid$(s,i,1) )      帧校验码FCS

Next i

f=Hex$(FCS)

If  Len(f)=1  Then  f=”0”+f

Commfrm.MSComm1.Output=s + f + ”*” + CHR$(13)   命令帧发送

Do

         Dummy=DoEvents()

Loop Untill Commfrm.MSComm1.InbufferCount >= Answerlen   等待应答帧

Do tag1= Commfrm.MSComm1.Input

Loop Untill Commfrm.MSComm1.InbufferCount=0  读完应答帧

上述程序具有相当的通用性,对于其它设备不同的只是各自的数据帧格式,因而只需做相应少量修改即可。

3.   节点自身的“通信”

节点自身的“通信”是一种形象的说法,严格说来应是VB应用程序利用DDE技术与本节点其它Windows应用程序进行数据交换。DDEDynamic Data Exchange)即动态数据交换,它是Windows支持的三种内部通信机制之一,是应用程序间通过共享内存进行进程间通信的一种形式。应用程序间进行数据交换称为“会话”(Conversation),申请会话端叫客户(Client),响应申请端叫服务器(Server)。一旦客户与服务器间建立起DDE所需的数据链路就可自动进行数据交换。

在监控系统开发中,工控组态软件以其功能强大、使用方便等特点得到广泛应用,但在处理复杂数据时其计算功能受到一定限制,而VB可以较好地弥补这一不足,并且还能承担数据采集、报表打印等功能。这就需要在VB应用程序与组态软件应用程序间进行动态数据交换。

VB中只有TextBoxPictureBoxLabelForm可以与其它应用程序进行动态数据交换,控件用于DDE的属性项有LinkTopic(连接主题)、LinkItem(连接项)、LinkMode(连接模式)和LinkTimeout(连接等待时间)。

这里以本实验室的小型分布式监控实验系统为例,介绍一个VB应用程序与组态王5.0应用程序间实现DDE的实例。

3.1     VB作为Server,组态王作为Client

当有些参数需要从VB应用程序传输到组态王应用程序,如VBPLC采集水位值参数至程序Ser.vbpText1,再将数据动态传递给组态王的I/O变量

【声明】本网站刊载的资料由网友提供分享 资料内容纯属作者个人观点,不表示本网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系
·基于VB的分布式监控系统通信设计· 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】    
    
  • 上一篇论文:
  •  
        
  • 下一篇论文:
  •  
    相关论文
    基于动态网页——ASP的WEB数据库开发
    用VB制作网址链接器
    基于ASP组件技术的在线教育系统的设计与开发…
    基于ASP组件技术的在线教育系统的设计与开发…
    基于JSP网页自动生成工具的设计与实现
    基于“积件”思想的网络课件设计
    网友评论:
    (只显示最新10条。评论内容只代表网友观点!)
    早上8:30-下午5:30
    全国客服热线: 010-84639241
    客服QQ: 10015411 / 173799180
    客服Email: edufo@163.com
      QQ交流群: 5379191 / 5371551
    网站介绍 |  联系我们 | 加盟合作 | 友情链接 | 广告服务 | 诚聘英才 | 网站地图 | 免责声明
    不良信息
    举报中心
    在职教育交流中心 版权所有 TEL:010-84639241 京ICP备06028089
    Copyright © 1998 - 2007 EDUFO Inc. All Rights Reserved
    网络110
    报警服务