你当前的位置:首页 > 编程技巧 >

基于VB的远程通讯程序

返回文章列表 作者:老耿 时间:01-27 来源:大测控  字体:【

基于VB的远程通讯程序

1 引言
  计算机与通信的紧密结合极大地推动了工业自动化的进程。人们坐在计算机前就可以实现对远端设备的集中监控,从而提高了整个系统的稳定性和可靠性。本文作者曾经参与了电源远程监控系统软件的开发工作。在运用VB开发监控软件的过程中,为实现远程通讯功能,我们利用了VB提供的通讯控件MSComm。该控件屏蔽了通信过程中的底层操作,程序员只需设置和监视MSComm控件的属性和事件,就可以轻而易举地实现串行异步通讯。

  远程监控中心可以对分布的各个独立的电源系统进行遥测、遥控。电源控制器可以现场监测和控制电源系统的各项工作参数;可以接受远端监控中心的查询、控制;并可以向中心上报工作状态。为实现上述功能 ,首要任务是建立两者之间的通讯。因此可分别将监控中心计算机和电源控制器通过RS-232C接口与Modem相连,再通过Modem接入公用电话网(PSTN),由PSTN实现本地Modem与电源端Modem的联接,就可以实现监控中心计算机与电源控制器间的通讯。

2 通讯控件简介

  MSComm 控件提供了一系列标准通讯属性和方法。使用它可以建立起应用程序与串行端口的联接。为实现远程通讯,还需要把调制解调器与串行端口通过RS-232C接口连接,这样,在应用程序中发出AT命令,就可以达到控制调制解调器的目的,进行远程通讯。有关调制解调器的AT命令,本文不做讨论,读者可以参考相关的调制解调器手册。
2.1 在项目中加入MSComm控件
  启动Visual Basic,建立一个新项目。
  选Project菜单,从中选择Components子菜单。
  在弹出的Components对话框里的Controls标签下选择Microsoft Comm Control 5.0项。
2.2 与程序设计有关的 MSComm控件属性
  CommPort 设置或返回通讯端口号。格式为:MSComm.CommPort[ = PortNumber ]。 在设计时,PortNumber 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用 PortOpen 属性打开一个并不存在的端口时,就会产生错误 。还需注意的是必须在打开端口之前设置 CommPort 属性。例如:MSComm.CommPort=2,即设置当前通信串口为COM2口。
  Settings 以字符串形式设置或返回波特率、奇偶校验、数据位和停止位。格式为:
  MSComm.Settings[=ParaString]。ParaString是一个包含四部分的字符串。第一部分为波特率,其可选值为110,300,600,1200,2400,4800,9600,14400,19200,28800。第二部分为奇偶校验,N 表示不校验,E 表示偶校验,O表示奇校验,S表示空格检验,M表示符号校验。第三部分为数据位位数,其可选值为4,5,6,7,8。第四部分为停止位位数,其可选值为1,1.5,2 。Settings属性的缺省值为“9600,N,8,1” 。
  PortOpen 设置并返回通讯端口的状态(打开或关闭)。在设计时无效。格式为:
  MSComm.PortOpen[=TRUE/FALSE] 。
  Input 返回并删除接收缓冲区中的数据流。该属性在设计时无效,在运行时为只读。
  格式为:MSComm.Input。
  InputLen 设置并返回 Input 属性从接收缓冲区中每次读取的字符数。格式为:MSComm.InputLen[=CharNumber]。InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。若接收缓冲区中的字符数小于InputLen 属性设置的字符数,Input 属性返回一个零长度字符串 ("")。所以在使用Input 前,用户可以通过检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。
  InBufferCount 返回接收缓冲区中已接收的字符数。格式为: MSComm.InBufferCount[=0]。该属性在设计时无效,但设置InBufferCount 属性为0 可以清除接收缓冲区。
  InputMode 设置或返回 Input 属性取回的数据的类型。格式为MSComm.InputMode[=ModeValue]。若数据只用 ANSI 字符集,设置InputMode属性值为0(缺省),数据通过 Input 属性以文本形式取回。如数据中有嵌入控制字符、Nulls 等等,可设置InputMode属性值为1,数据通过 Input 属性以二进制形式取回。
  Output 向发送缓冲区写数据。该属性在设计时无效,在运行时为只读。格式为:MSComm.Output=OutData。OutData为要发送的数据,可以是文本数据或二进制数据。
  Rthreshold 设置或返回输入缓冲区中存放接收字符的最小数。当其属性值为1时,则缓冲区中每接收到一个字符就引发一次OnComm事件,以便及时从缓冲区中取走数据;当设为0时,则不引发OnComm事件;当设为其它值时,如Rthreshold属性值为5时,则缓冲区中每接收到5个字符引发一次OnComm事件。
  CommEvent 返回最近的通讯事件或错误的数字代码。格式为:Mscomm.CommEvent。 当CommEvent属性值为常数ComEvReceive=2时,收到 Rthreshold 个字符,就会触发OnComm事件,直到用 Input 属性从接收缓冲区中取出数据。
  DTREnable 确定在通讯时是否使 Data Terminal Ready (DTR) 线有效。Data Terminal Ready 是计算机发送到调制解调器的信号,指示计算机准备就绪,可以开始传输数据。格式为:MSComm.DTREnable[=TRUE/FALSE]。 DTREnable 设置为 True,当端口被打开时 Data Terminal Ready 线设置为高电平(开),当端口被关闭时 Data Terminal Ready 线设置为低电平(关)。 DTREnable 设置为 False,Data Terminal Ready 线始终保持为低电平。在很多情况下,当Data Terminal Ready 线发生从开到关的转换时,调制解调器进入命令状态,执行“ATH0”命令来挂断电话。
2.3 MSComm控件的OnComm 事件
  通讯控件产生的唯一事件是OnComm事件。每当有通讯错误或某事件发生时,通讯控件就会产生此事件。事件或错误的数字代码放在CommEvent属性中。
文章相关
现有0条评论 | 更多评论..

我要发表看法



  如果您还不是本站会员
欢迎加入
  • ※ 评论注意事项:
  • 不是会员或未登陆发表评论,评论人名字显示为匿名。
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规。
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
  • 本站管理人员有权保留或删除评论中的任意内容。
  • 参与本评论即表明您已经阅读并接受上述条款。
站内搜索
本栏热门
计算机及通讯技术已成为工业环境中大部分解决方案的核心部分,其在系统中的比重正在迅速增加。在工业控制中,交流电机的拖动越来越多的采用变频器完成,不仅作为一个单独的执行机构,而是随着不断的智能化,同远程计算机之间可以通过各种通讯方式结合成一个有机的整体。
自来水是保障城市经济发展和人民生活的重要基础设施,是保障城市繁荣发展、人民生活以及发展国民经济不可缺少的先决条件。从另一个方面来说,我国是一个高度缺水的发展中国家,随着改革开放的不断深入和发展以及人口数量的不断增长,无论从自来水产量和质量上,社会都对城市供水提供了更高的要求。而实现水厂与供水调度系统的自动化,是保证自来水安全
西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台,也提供了一套编程接口,可使用高级语言编程通过Simatic Net访问PLC数据。
针对控制系统中上位机与S7-200系列PLC通信的实际问题,总结了几种监控计算机与S7-200系列PLC的通信方法,这几种方法在不同的控制系统中能较好解决监控计算机与S7-200系列PLC通信问题。西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATIC PLC
西门子S7-200PLC是德国西门子公司生产的小型PLC。S7-200以其高可靠性、指令丰富、内置功能丰富、强劲的通讯能力、较高的性价比等特点,在工业控制领域中被广泛应用。S7-200PLC的突出特点之一是自由口通讯功能。如何实现S7-200PLC与个人计算机的互联通信,是S7-200PLC应用

设为首页| 加入收藏| 联系我们
Copyright 2004-2007 Www.plc365.coM All Rights Reserved
免费提供PLC可编程控制器编程资料,应用案例,软件下载
请使用1024*768分辨率浏览本站以达到最佳视觉效果