中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

串口通信

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 串口通信 → 浏览主题: 请高人指点,如何用VB实现串口通信的编程[求助]
发表新帖 回复该主题
回帖:13个,阅读:7581 [上一页] [1] [2] [下一页]
* 帖子主题:

请高人指点,如何用VB实现串口通信的编程[求助]

分享到
911
rachel-su
文章数:4
年度积分:50
历史总积分:911
注册时间:2005/3/8
发站内信
发表于:2005/3/8 15:44:00
#0楼
用vb实现水电站调速器的上位机(微机)与下位机(可编程序控制器)的通信方式的模拟,为上位机(微机)管理系统提供实时数据输入,并将上位机控制命令下传.
其实我在实际做时的下位机就是pc机,说白了就是两台计算机通信。
我没学过串口通信编程,可以说一窍不通,就会用vb,知道有一个MScomm控件和它的属性,但实际编程就晕!请各位高人提点,万分感谢!表情表情


[此贴子已经被作者于2005-3-8 21:51:45编辑过]
9012
吴辉
文章数:2354
年度积分:50
历史总积分:9012
注册时间:2002/1/15
发站内信
发表于:2005/3/8 20:43:00
#1楼
一般人我不告诉她
911
rachel-su
文章数:4
年度积分:50
历史总积分:911
注册时间:2005/3/8
发站内信
发表于:2005/3/8 21:56:00
#2楼
你太有个性了,不过我还是得谢谢你,十多个人看了都没理我,就你还说了一句,仗义!
4061
利昌機電 版主
文章数:2023
年度积分:50
历史总积分:4061
注册时间:2003/10/26
发站内信
发表于:2005/3/8 22:01:00
#3楼
我没学过串口通信编程,可以说一窍不通,就会用vb,知道有一个MScomm控件和它的属性,但实际编程就晕!

若是如此;您本末倒置.....先學用控制項(件);學會之後再來.否則如何把手去教您?
图
1022
GDFT2005
文章数:49
年度积分:50
历史总积分:1022
注册时间:2005/2/20
发站内信
发表于:2005/3/10 10:04:00
#4楼
请问兄弟你需要那些信息呢?
感觉范围太大了﹐呵呵
Happy new year!
1022
GDFT2005
文章数:49
年度积分:50
历史总积分:1022
注册时间:2005/2/20
发站内信
发表于:2005/3/10 10:04:00
#5楼
VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其它通信设备(如Modem)、还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工的、事件驱动的、高效实用的通信程序。但在实际通信软件设计过程中,MSComm控件并非像想象中那样完美和容易控制,特别是在中文Win 95/98下通信时更会出现问题。下面就从基础开始介绍,然后逐步讨论MSComm控件在编程中出现的问题以及编程技巧。
Happy new year!
1022
GDFT2005
文章数:49
年度积分:50
历史总积分:1022
注册时间:2005/2/20
发站内信
发表于:2005/3/10 10:05:00
#6楼
用MSComm控件通信
串口通信基础知识
  一般说来,计算机都有一个或多个串行端口,它们依次为Com1、Com2、...。这些串口还提供了外部设备与PC进行数据传输和通信的信道,这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU。再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据。当用通信控件或声明调用API函数时,它们由COMM.DRV解释并传递给设备驱动程序。作为一个VB程序员,要编写通信程序,只需知道通信控件提供给Windows通信API函数的接口即可,换句话说,只需设定和监视通信控件的属性和事件即可。
Happy new year!
1022
GDFT2005
文章数:49
年度积分:50
历史总积分:1022
注册时间:2005/2/20
发站内信
发表于:2005/3/10 10:06:00
#7楼
使用MSComm控件
  在开始使用MSComm控件之前,需要先了解其属性(见下表)。
  属性   描述   数据类型   举例
  CommPort   设置并返回通信端口号   Integer   2
  Settings   设置并返回波特率、校验位、数据位、停止位   String  "9600,N,8,1"
  PortOpen   设置并返回端口状态,也可以用于打开和关闭串口   Boolean   True
  OutBufferSize   设置并返回发送缓冲区的大小,以字符为单位   Integer   512
  InBufferSize   设置并返回接收缓冲区的大小,以字符为单位   Integer   1024
  SThreshold   设置并返回发送时产生ONComm事件的字符数   Integer   0'不产生ONComm事件
  RThreshold   设置并返回接收时产生ONComm事件的字符数   Integer   8'收到8个字符时发生OnComm事件
  NullDiscard   设定是否忽略发送0(Null)字符   Bollean   True'不发送,False'发送
  InputMode   设置并返回接收类型   ComInputModeText'字符方式,ComInputModeBinary'二进制方式
  InputLen   设置并返回从接收缓冲区读取的字符   Integer   256

  搞清楚以上基本属性后就可以开始编写通信程序了
Happy new year!
911
rachel-su
文章数:4
年度积分:50
历史总积分:911
注册时间:2005/3/8
发站内信
发表于:2005/3/12 23:03:00
#8楼
谢谢GDFT2005介绍 ,利昌機電 听你的话,我已经做好功课了(关于MSComm控件),就是还不太明白怎么实现通信的,比如我要传20这个数到上位机,或者是“开机”这个命令,还有上位机下达“关机”命令传给下位机,应该怎么编呀?是不是在最前边还得编一段串口初始化的程序呀?
我其实学自动化的,没学过这些,是个菜鸟,希望高人们别闲我烦呀,顺便说一句我不是兄弟,哈哈哈!
1022
GDFT2005
文章数:49
年度积分:50
历史总积分:1022
注册时间:2005/2/20
发站内信
发表于:2005/3/13 8:32:00
#9楼
其实我也不太懂﹐哎﹐谁叫你是女孩子呢。

在启动过程中对串口和输入输出缓冲区初始化
 comm1.Settings = "1200,n,8,1" '设定波特率1200bps,无校验,8位数据位,1位停止位
 comm1.CommPort = 1 '串口1
 comm1.InputLen = 1 '一次从输入缓冲区中读取一个字符
 comm1.InBufferSize = 512 '定义输入缓冲区为512字节(bytes)
 comm1.InBufferCount = 0 '清空输入缓冲区
 comm1.OutBufferCount = 0 '清空输出缓冲区
 comm1.PortOpen = True '启动串口
Happy new year!
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005