动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Visual Basic教程 ]的信息

本月文章推荐
.用VB尝试新的界面风格.
.如何在数据控件断开所有的数据连.
.VB千里行-让程序在后台运行.
.用VB实现任意修改Win桌面背景.
.MicrosoftJet的多客户模型--多客.
.VisualBasic工程管理一.
.VisualBasic让一个Form出现在另一.
.如何设定墙纸的显示方式?.
.VB6中的FSO对象模型.
.VB6.0初学者的10个编程小技巧.
.获取桌面窗口图象.
.让一个App永远保持在最上层.
.怎样在VB中播放Flash动画.
.用VB实现全屏幕图形界面及动态功.
.菜鸟的数据库入门.
.制作自己的MP3播放器.
.在VB5中如何使机箱内的小喇叭发出.
.字体对象克隆招法.
.复本操作的对象、属性和方法(1)-.
.如何使用文件复制对话框.

VisualBasic通信程序设计

发表日期:2006-2-27 |


VisualBasic中通信控件及其在windows平台下的通信软件设计方法,并结合具体实例给出了基本的通信程序。


  1992年crescentsoftwareinc.公司专为vb设计了mscomm.vbx用户通信控件,它提供了通过串口发送和接收数据的串行通信能力,不但包括了全部windowsapi中关于串行通信的16个函数所完成的功能,而且开拓了更多的使用户设计方便的对象属性来满足不同用户不同业务的需求。目前国内众多的vb资料中很少涉及该通信控件的介绍,本文将详细介绍mscomm.vbx通信控件及编程方法,并结合工作中的一个实例给出基本通信程序。


1mscomm.vbx通信控件描述


mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信。若toolbox中无此控件,则用tools的customcontrols将mscomm.vbx从windows的system子目录中加入vb的toolbox中。


1.1通信方式


mscomm.vbx有2种不同的方式来处理和解决各类通信软件的开发和设计问题


1、事件驱动。它与c/c 写windows软件时的窗口回调函数类似,是1种功能强大的处理问题的方法。在实际工作中,往往要处理许多通信中的相关事件,例如:当线路数据到达本端或cd线和rts信号线状态发生变化时,要求我们使用相应的事件来跟踪和处理,该控件是使用oncomm事件来实现的,它也包括检测和处理通信错误等方面的问题,commevent值返回最近的通信事件或错误的数字代码。通信控件详细的错误和事件举例有:


mscomm-er-break收到1个breaksignal


mscomm-er-cdtocd信号超时


……


mscomm-ev-cdcd信号改变


……


2、查询方式。由程序设计者负责读取commevent的值并处理所发生的错误或事件。通常简单的应用程序设计可采用这种办法。


1.2通信控件的属性


利用通信控件编制通信程序,关键是准确理解设置通信控件的属性。mscomm.vbx提供了27个关于通信控件方面的属性,例如:


commport:设置或返回通信口编号。

settings:设置或返回以字符串形式出现的数据通信格式:波特率、校验、数据位和停止位。

portopen:设置或返回通信口状态(包括打开和关闭1个通信口)

……


3、实例

本程序应用背景为dcc95型静电除尘器自动监控系统软件,解决1个pc工控机(主站)与32个单片机(子站)之间的通信问题。主站与子站之间这总线式网络结构,采用rs-485通信标准,以问答方式进行数据通信。由于32个子站与主站发送通信命令(下行命令),主站在接收子站发回的相应回答命令(上行命令)后继续发送下行命令的通信形式。根据系统功能的要求,主站需发送2种类型的命令:(1)同期命令,它由定时器触发引起,每隔ls周期发送1次;(2)非周期性命令,它由操作者按动相应命令按钮引起,非周期性发送。自动监控系统软件安装在主站上,而通信程序作为自动监控系统软件的一部分也安装在主站上。


本文仅列出调试通信程序时进行试验用的基本演示程序清单。试验时,用1台pc机作为主站,另一台pc机模拟32个子站的工作,两台pc机之间采用rs232c串口通信。往主站的通信演示程序窗体(form)中加入1个通信控件、2个定时器控件和1个命令按钮控件,通信控件(mscomm1)用于访问串口,发送和接收数据;periodic定时器控件(periodic)用于控制每秒由主站向各子站发送周期性命令;命令按钮控件(nonperiodic-command)与nonperiodic定时器控件(nonperiodic)用于发送非周期性命令。数据传送采用事件驱动的通信方式,根据不同的发送命令设置rtreshlod属性,从而引起oncomm事件以接收数据。


2.1窗体各控件初始化程序


设置通信串口工作参数,设置periodic定时器的在断间隔为ls,nonperiodic定时器的中断间隔为0.5s。


subform-load()


mscomm1.commport=2'选用com2串行口


mscomm1.settings="9600,n8,1"'波特率9600,无奇偶校验位,8位数据位1位停止位


mscomm1.inputlen=0'input将读取接收缓冲区的全部内容


mscomm1.inbuffersize=1024'设置接收缓冲区的字节长度


mscomm1.portopen=true'打开通信口


mscomm1.inbuffercount=0'清除发送缓冲区数据


mscomm1.outbuffercount=0'清除接收缓冲区数据


periodic.inteval=100'设置ls定时间隔,使遥测命令每隔ls发送1次


nonperiodic.inteval=500'设置0.5s定时间隔,查询命令按钮是否处于激活状态以确定是否发送周期性命令


command-pressed=false'命令按钮为未激活状态


during-periodic=false'周期性命令数据传输尚未开始


during-nonperiodic=false'非周期性命令数据传输尚未开始


endsub


2.2非周期性命令发送程序


根据命令按钮状态及周期性命令数据传输状态,在nonperiodic定时器的中断程序中发送非周期性命令。


subnonperiodic-command-click()


command-pressed=true'命令按钮激活


endsub


subnonperiodic-timer()


ifduring-periodic=trueorcommand-pressed=false


thenexitsub'若周期性命令数据传输尚未结束或命令按钮处于激活状态,则退出发送非周期性命令程序。


command-pressed=false'命令按钮恢复为未激活状态


callsenddata(nonperiodic-command)'发送非周期性命令


mscomm1.rthreshold=r-nonperiodic-byte'发送非周期性命令后,设置rthreshold属性,使主站接收所设定的字节数后引发oncomm事件


endsub


2.3periodic定时器程序


在periodic定时器的中断程序中发送周期性命令:


subperiodic-timer()


ifduring-nonperiodic=truethenexitsub'若非周期性命令数据传输尚未结束,则退出发送非周期性命令程序。


during-periodic=true'设置周期性命令数据传输状态为正在进行中


callsenddata(periodic-command)'发送周期性命令


mscomm1.rthreshold=r-periodic-byte'发送周期性命令后,主站接收r-remot-edata-byte个字节,可引发oncomm事件


endsub


2.4oncomm事件程序


根据rthreshold属性设置值,当接收缓存区内接收到相应字节的字符时,引发oncomm事件,在中断程序中接收数据。


submscomm1-oncomm()


selectcasemscomm1.commevent'在此可插入处理各种不同错误或事件的代码


casemscomm-ev-receive


receivestring$=mscomm1.input


selectcasemscomm1.rthreshold


caser-periodic-byte'周期性命令的应答数据


calldisposedata(periodic-command)'处理接收数据


duringperiodic=false'设置周期性命令数据传输状态为结束


caser-nonperiodic-byte'非周期性命令的应答数据


calldisposedata(nonperiodic-command)'处理接收数据


during-nonperiodic=false'设置非周期性命令数据传输状态为结束


endselect


endselect


endsub


随着vb版本的不断升级,vb将成为最快速、易用、强劲的应用开发工具,是企业级客户/服务器应用软件开发的首选工具之一。->

上一篇:做出分隔线 人气:4225
下一篇:在VB中模拟实现邮件传输 人气:3100
浏览全部Visual Basic的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-2 OpenPNE中文 v2.12.5 for win 中
2008-12-2 谷秋精品课程软件课程版 v2.3
2008-12-2 晴天电影系统(带一键迅雷/自定义
2008-12-2 QQip138闪字程序
2008-12-2 SmartWeb企业智能建站系统 v1.0.2
2008-12-2 梦想不死个人主页 v2009
2008-12-2 开良ASP小偷程序生成器 v1.1
2008-12-2 toolxp.cnalexa世界排名查询 php
2008-12-2 腾讯留言板 v1.3
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成