登录
首页
串口通信
串口通信
回帖
发帖
正文
主题:请高人指点,如何用VB实现串口通信的编程[求助]
点击:7775 回复:13
楼主
编辑
引用
管理
rachel-su
用vb实现水电站调速器的上位机(微机)与下位机(可编程序控制器)的通信方式的模拟,为上位机(微机)管理系统提供实时数据输入,并将上位机控制命令下传.
其实我在实际做时的下位机就是pc机,说白了就是两台计算机通信。
我没学过串口通信编程,可以说一窍不通,就会用vb,知道有一个MScomm控件和它的属性,但实际编程就晕!请各位高人提点,万分感谢!
最后修改:
2005-3-8 21:51:45
05-03-08 15:44
1楼
编辑
引用
管理
吴辉
一般人我不告诉她
05-03-08 20:43
2楼
编辑
引用
管理
rachel-su
你太有个性了,不过我还是得谢谢你,十多个人看了都没理我,就你还说了一句,仗义!
05-03-08 21:56
3楼
编辑
引用
管理
利昌機電
[quote]我没学过串口通信编程,可以说一窍不通,就会用vb,知道有一个MScomm控件和它的属性,但实际编程就晕!
[/quote]
若是如此;您本末倒置.....先學用控制項(件);學會之後再來.否則如何把手去教您?
05-03-08 22:01
4楼
编辑
引用
管理
GDFT2005
请问兄弟你需要那些信息呢?
感觉范围太大了﹐呵呵
05-03-10 10:04
5楼
编辑
引用
管理
GDFT2005
VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其它通信设备(如Modem)、还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工的、事件驱动的、高效实用的通信程序。但在实际通信软件设计过程中,MSComm控件并非像想象中那样完美和容易控制,特别是在中文Win 95/98下通信时更会出现问题。下面就从基础开始介绍,然后逐步讨论MSComm控件在编程中出现的问题以及编程技巧。
05-03-10 10:04
6楼
编辑
引用
管理
GDFT2005
用MSComm控件通信
串口通信基础知识
一般说来,计算机都有一个或多个串行端口,它们依次为Com1、Com2、...。这些串口还提供了外部设备与PC进行数据传输和通信的信道,这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU。再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据。当用通信控件或声明调用API函数时,它们由COMM.DRV解释并传递给设备驱动程序。作为一个VB程序员,要编写通信程序,只需知道通信控件提供给Windows通信API函数的接口即可,换句话说,只需设定和监视通信控件的属性和事件即可。
05-03-10 10:05
7楼
编辑
引用
管理
GDFT2005
使用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
搞清楚以上基本属性后就可以开始编写通信程序了
05-03-10 10:06
8楼
编辑
引用
管理
rachel-su
谢谢GDFT2005介绍 ,利昌機電 听你的话,我已经做好功课了(关于MSComm控件),就是还不太明白怎么实现通信的,比如我要传20这个数到上位机,或者是“开机”这个命令,还有上位机下达“关机”命令传给下位机,应该怎么编呀?是不是在最前边还得编一段串口初始化的程序呀?
我其实学自动化的,没学过这些,是个菜鸟,希望高人们别闲我烦呀,顺便说一句我不是兄弟,哈哈哈!
05-03-12 23:03
9楼
编辑
引用
管理
GDFT2005
其实我也不太懂﹐哎﹐谁叫你是女孩子呢。
在启动过程中对串口和输入输出缓冲区初始化
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 '启动串口
05-03-13 08:32
上一页
下一页
工控新闻
英伟达发售新一代人形机器人“大脑”:性能提高7.5倍,宇树、优必选等采用
新松机器人上半年实现营收16.6亿元 研发与全球化双线发力
降本增效协同创新 制造业数字化转型深入推进
苏州打造工业软件创新生态雨林
工信部公布护航新型工业化网络安全典型案例名单 河北省入选数量全国第一
2025协作机器人市场半年报:二季度同比增长52%!各行业增长提速,码垛、焊接场景表现亮眼
欧姆龙携手柳职大,共推产教融合与工业自动化人才升级
加速工业AI融合!卡奥斯两项IEEE标准正式启动
更多新闻资讯