VB6.0串口操作
VB6.0下MSComm控件实现串口通信
VB6.0下用MSComm控件实现串口通信MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明:1基本属性CommPortO mPort[=value]Object为MSComm控件,value为整数值,标志端口号。
说明:该属性设置并返回通讯端口号,value的值可以设为1-16间的任意数(默认为1)。
在打开端口之前必须先设置CommPort属性,当端口不存在时,如果用PortOpen属性打开它,MSComm控件会产生错误68(即设备无效的错误)。
SettingsObjiect.Setting[=value]Object为MSComm控件,value为字符串类型,表示通讯端口的设置值。
说明:本属性用来设置并返回端口的波特率、奇偶校验位、数据位和停止位参数。
当端口打开时,如果指定的value参数非法,则MSComm控件产生380号(非法属性值)错误。
有效的value参数值由四个设置值组成,有如下格式:“BBBB,P,D,S”,其中BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。
Value的默认值为:“9600,N,8,1”,下面给出合法的波特率、奇偶校验位、数据位和停止位参数:波特率:110,300,600,1200,2400,4800,9600(默认),14400,19200,28800,38400,56000,57600,115200,128000,256000。
奇偶校验值:E(偶校验,Even)、M(标记,Mark)、N(默认,Default,None)、O(奇校验,Odd)、S(空格,Space)。
数据位值:4,5,6,7,8(默认),9。
停止位值:1(默认),1.5,2。
PortOpenO bject.PortOpen[=value]Object为MSComm控件。
Value为布尔类型,表明通讯端口的状态。
vb6.0串口通讯上位机开发视频教程下载地址
资料1第一章VisualBasic6基本介绍1. 菜单栏的使用2. 属性窗口的使用3. 创建工程4.窗体的操作5. 属性值的设定6. 程序代码编写7. 制作一个简单应用程序8. 窗体属性(1)9. 窗体属性(2)10. 窗体事件11. 方法第二章VisualBasic6的数据类型与运算符表达式12.数据类型(1)13. 数据类型(2)14. 运算符表达式(1)15.运算符表达式(2)16. 运算符表达式(3)第三章VisualBasic6的内部函数17.常用内部函数(1)18.常用内部函数(2)19. 常用内部函数(3)20. 常用内部函数(4)21. 常用内部函数(5)22. 常用内部函数(6)23. 常用内部函数(7)24. 常用内部函数(8)25. 常用内部函数(9)26. 常用内部函数(10)第四章VisualBasic6的基本语句27.基本语句(1)28. 基本语句(2)29. 基本语句(3)30. 基本语句(4) 、31.基本语句(5)32. 基本语句(6)33. 基本语句(7)34. 基本语句(8)35. 基本语句(9)36. 基本语句(10)37. 基本语句(11)38. 基本语句(12)第五章VisualBasic6的数组39.数组(1)40.数组(2)41. 数组(3)42. 数组(4)43. 数组(5)44. 数组(6)45. 数组(7)46. 数组(8)第六章VisualBasic6的过程47.过程(1)48.过程(2)49. 过程(3)50. 过程(4)51. 过程(5)52. 过程(6)53. 过程(7)54. 过程(8)55. 过程(9)56. 过程(10)第七章VisualBasic6的标准控件57. 1111标准控件(1)58.标准控件(2)59. 标准控件(3)60. 标准控件(4)61. 标准控件(5)62. 标准控件(6)63. 标准控件(7)64. 标准控件(8)65. 标准控件(9)66. 标准控件(10)67. 标准控件(11)68. 标准控件(12)69. 标准控件(13)70. 标准控件(14)71. 标准控件(15)72. 标准控件(16)73. 标准控件(17)74. 标准控件(18)75. 标准控件(19)76. 标准控件(20)77. 标准控件(21)78. 标准控件(22)第八章VisualBasic6的界面设计79.界面设计(1) 880.0. 界面设计(2)81. 界面设计(3)82. 界面设计(4)83. 界面设计(5)84. 界面设计(6)85. 界面设计(7)86. 界面设计(8)87. 界面设计(9)88. 界面设计(10)第九章VisualBasic6的开发绘图程序89.开发绘图程序(1)90. 开发绘图程序(2)91. 开发绘图程序(3)92.开发绘图程序(4)93. 开发绘图程序(5)94. 开发绘图程序(6)95. 开发绘图程序(7)96. 开发绘图程序(8)97. 开发绘图程序(9)98. 开发绘图程序(10)99. 开发绘图程序(11)100.开发绘图程序(12)101.开发绘图程序(13)102.开发绘图程序(14)第十章VisualBasic6的文件操作103.文件操作(1)104.104.文件操作(2)105.105.文件操作(3)106.文件操作(4)107.文件操作(5)107.108.文件操作(6)109.文件操作(7)110.文件操作(8)111.文件操作(9)112.文件操作(10)第十一章VisualBasic6的键盘事件113.键盘事件(1)114.键盘事件(2)115.键盘事件(3)第十二章VisualBasic6的鼠标事件116.鼠标事件(1)117.鼠标事件(2)118.鼠标事件(3)119 鼠标事件(4)120.鼠标事件(5)121.鼠标事件(6)122.鼠标事件(7)123.鼠标事件(8)124.鼠标事件(9)第十三章VisualBasic6的开发数据库管理程序125.开发数据库管理程序(1)126.开发数据库管理程序(2)127.开发数据库管理程序(3)128.开发数据库管理程序(4)129.开发数据库管理程序(5)130.开发数据库管理程序(6)131.开发数据库管理程序(7)132.开发数据库管理程序(8)133.开发数据库管理程序(9)134.开发数据库管理程序(10)135.开发数据库管理程序(11)136.开发数据库管理程序(12)137.开发数据库管理程序(13)138.开发数据库管理程序(14)139.开发数据库管理程序(15)140.开发数据库管理程序(16)141.开发数据库管理程序(17)142.开发数据库管理程序(18)143.开发数据库管理程序(19)144.开发数据库管理程序(20)145.开发数据库管理程序(21)146.开发数据库管理程序(22)147.开发数据库管理程序(23)148.开发数据库管理程序(24)149.开发数据库管理程序(25)150.开发数据库管理程序(26)第十四章VisualBasic6的开发多媒体应用程序151.开发多媒体应用程序(1)152.开发多媒体应用程序(2)153.开发多媒体应用程序(3)154.开发多媒体应用程序(4)155.开发多媒体应用程序(5)156.开发多媒体应用程序(6)157.开发多媒体应用程序(7)158.开发多媒体应用程序(8)159.开发多媒体应用程序(9)160.开发多媒体应用程序(10)161.开发多媒体应用程序(11)162.开发多媒体应用程序(12)163.开发多媒体应用程序(13)164.开发多媒体应用程序(14)165.开发多媒体应用程序(15)166.开发多媒体应用程序(16)167.开发多媒体应用程序(17)168.开发多媒体应用程序(18)169.开发多媒体应用程序(19)170.开发多媒体应用程序(20)171.开发多媒体应用程序(21)172.开发多媒体应用程序(22)第十五章VisualBasic6的开发网络应用程序173.开发网络应用程序(1)174.开发网络应用程序(2)175.175.开发网络应用程序(3)176.开发网络应用程序(4)177.开发网络应用程序(5)178.开发网络应用程序(6) 179.开发网络应用程序(7) 180.开发网络应用程序(8) 181.开发网络应用程序(9) 182.开发网络应用程序(10) 183.开发网络应用程序(11) 184.开发网络应用程序(12) 185.开发网络应用程序(13) 186.开发网络应用程序(14) 187.开发网络应用程序(15) 188.开发网络应用程序(16) 189.开发网络应用程序(17) 190.开发网络应用程序(18) 191.开发网络应用程序(19) 192.开发网络应用程序(20) 193.开发网络应用程序(21) 194.开发网络应用程序(22) 195.开发网络应用程序(23) 196.开发网络应用程序(24) 197.开发网络应用程序(25) 198.开发网络应用程序(26) 199.开发网络应用程序(27) 200.开发网络应用程序(28) 201.开发网络应用程序(29) 202.开发网络应用程序(30) 203.开发网络应用程序(31) 204.开发网络应用程序(32) 205.开发网络应用程序(33) 206.开发网络应用程序(34) 207.开发网络应用程序(35) 208.开发网络应用程序(36) 209.开发网络应用程序(37) 210.开发网络应用程序(38) 211.开发网络应用程序(39) 212.开发网络应用程序(40) 213.开发网络应用程序(41) 214.开发网络应用程序(42) 215.开发网络应用程序(43) 216.开发网络应用程序(44) 217.开发网络应用程序(45) 218.开发网络应用程序(46) 219.开发网络应用程序(47)以上资源是本人花RMB在淘宝上买来的,现在分享给大家。
基于VB6.0的上位机与PLC实时通信技术
基于VB6.0的上位机与PLC实时通信技术一、引言随着自动化技术的不断发展,PLC(可编程逻辑控制器)已经成为自动化领域中不可或缺的设备。
PLC通常用于控制工业生产线上的设备和机器,而上位机则是用来监控和管理PLC系统的设备。
众所周知,实时通信是保证PLC系统正常运行的重要因素之一。
在这篇文章中,我们将重点介绍基于VB6.0的上位机与PLC实时通信技术。
二、VB6.0简介VB6.0是微软公司于1998年发布的一款集成开发环境(IDE),它是一种编程语言,被广泛用于开发Windows平台下的应用程序。
VB6.0具有简单易学、功能丰富、开发效率高等特点,因此在工业领域得到了广泛应用。
考虑到VB6.0的这些优势,我们可以利用它来开发上位机程序,并实现与PLC的实时通信。
三、PLC实时通信技术1. 串口通信PLC通常通过串口与上位机进行通信。
在VB6.0中,我们可以利用MSCOMM控件来实现串口通信。
通过在VB6.0的界面中添加MSCOMM控件,并设置相应的串口参数(如波特率、数据位、校验位、停止位等),就可以实现与PLC的串口通信。
2. Modbus通信Modbus是一种通信协议,被广泛用于工业控制领域。
通过Modbus协议,我们可以实现上位机与PLC之间的实时通信。
在VB6.0中,我们可以使用第三方的Modbus通信库来实现Modbus通信,例如Modbus ActiveX控件等。
通过这些控件,我们可以轻松地实现Modbus通信,从而实现上位机与PLC的实时数据交换。
3. Socket通信1. 配置MSCOMM控件接下来,我们需要编写VB6.0代码,实现与PLC的串口通信。
您可以编写相应的串口通信代码,例如打开串口、发送数据、接收数据等。
示例代码如下:Private Sub Form_Load()mPort = 1 ' 串口号MSComm1.Settings = "9600,n,8,1" ' 波特率、校验位、数据位、停止位MSComm1.PortOpen = True ' 打开串口End SubPrivate Sub Command1_Click()MSComm1.Output = "010*********FF01" ' 发送数据End Sub3. 运行程序并测试您可以运行程序,并测试与PLC的串口通信是否正常。
VB6.0环境下利用Mscomm控件实现串行通信
VB6.0环境下利用Mscomm控件实现串行通信Use Mscomm Control Component to Implement Serial Communication under Visual Basic摘要: 本文简要介绍了VB6.0中Mscomm通信控件的属性和使用方法,并结合具体实例给出了基本的通信程序。
主题词:串行通信Visual Basic Mscomm .vbx控件Abstract: This paper briefly introduces the principle and method of Mscomm object of Visual basic 6.0, and with a real example basic program codes are given.Key Words:Serial Communication; Visual Basic; Mscomm .vbx control component随着计算机技术的飞速发展及其广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。
微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。
而单片机具有价格低,功能强,抗干扰能力好,温限宽和面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。
在需要对采集的数据进行分析处理或在远程需要对控制对象的控制过程进行统计或有条件控制时,采用数据库访问技术能有效地解决这类问题。
Visual Basic 6.0以其强大的功能、使用简单、能在短时间内开发出高效的通信程序而成为Windows系统开发的主要编程语言。
首先表现在VB可直接使用户自定义控件VBX或OCX文件;其次表现在VB可通过调用动态链接库(DLL,dynamic link library)来加快应用程序关键部分的执行速度。
用vb6实现仪器串口通信及检测功能
1 设计用户界面第一新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框当选择Microsoft Comm 即可添加MsComm控件;再在窗体中依次布置如下控件并设置其属性。
控件名称name属性Caption属性Form form1空Frame1frame1空Frame2frame2空Frame3frame3空Command1comd1确定Command2comd2退出Command3comd3确定Command4comd4退出Command5comd5做完退出MSComm msc1空Label 1lab1RS-232接口功能检测Label 2lab2请输入被检仪器程控码控制仪器功能Label 3lab3请输入被检仪器程控码读取仪器数据Text1txt1空Text2txt2空完成后的界面如图1所示图1 用户界面2 编写程序代码编写的程序代码如下:PriVate Sub Form_Load()=1 ’ 使用串行口1’波特率9600,偶校验,8个数据位,1个停止位Msc =“9600,E,8,1”’当使用Msc 时,每次从接收缓冲区取一个字节。
=0 ’读取整个接收缓冲区内码或消除=True ’ 打开串行口End SubPrivate Sub Comd1_Click()On Error Resume Next ’简单的错误处理If = "" Thenx = MsgBox("被检仪器程控码不能为空值", 16)Exit SubEnd If= + Chr$(13)’发送程控码For i = 1 ToNextEnd SubPrivate Sub Comd2_Click()= ""End SubPrivate Sub Comd3_Click()Dim instring As stringinstring == + Chr$(13)DoDoEventsLoop Until >= 20instring = ’ 从接收队列中读入字符串= ""= instring ’ 显示读入的字符串End SubPrivate Sub Comd4_Click()= ""End SubPrivate Sub Comd5_Click()= False ’ 关闭串行口EndEnd Sub3 程序简要说明上述程序设置的端口通信协议为:9600波特率,偶校验,8个数据位,1个停止位。
基于VB6.0的串口通信方法
基于VB6.0的串口通信方法串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数据可靠。
作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调用WindowsAPI函数实现。
这里我们使用VB6.0提供的MSComm控件,因为MSComm控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串口通信功能。
1.MSComm控件简介MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。
另外一种是查询法。
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。
2.MSComm控件的常用属性MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。
CommPort 设置并返回通讯端口号Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen 设置并返回通讯端口的状态。
也可以打开和关闭端口Input 从接收缓冲区返回和删除字符Output 向传输缓冲区写一个字符串3.程序代码设计利用MSComm控件编写串口通信程序是十分便利和简单的。
下面我就事件驱动方式以VB6.0为平台编写了PC间串口通信程序的实例。
代码如下:'串口初始化PrivateSubForm_Load()mPort=1 '设置通信端口号为COM1MSComm1.Settings="9600,n,8,1" '设置串口参数MSComm1.InputMode=0 '接收文本型数据MSComm1.RThreshold=1'接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件MSComm1.PortOpen=True '打开通信端口1EndSub'把字符通过串口发送出去'启动定时器PrivateSubCmdsend_Click()IfTextsend.Text=""Thenpp=MsgBox("发送的数据不能为空!",16)ExitSubEndIfMSComm1.Output=Trim(Textsend.Text)EndSub'MSComm的OnComm事件程序'由CommEvent属性值的不同,将各自的程序代码写入相关的子程序中'只要RThresold中的设定字符数到达时便会使得CommEvent属性值变成comEvReceive'因此接收的子程序便会被执行PrivateSubMSComm1_OnComm()Dimbuf$mEvent'通过取代每一个case表达式来处理每个事件与错误CasecomEvCD'CD线的状态发生变化CasecomEvCTS'CTS线的状态发生变化CasecomEvDSR'DSR线的状态发生变化CasecomEvReceivebuf=Trim(MSComm1.Input)'将缓冲区内的数据读入buf变量中CasecomEvSendEndSelectTextReceive.Text=TextReceive.Text&bufEndSub'停止程序运行PrivateSubCmdquit_Click()UnloadMeEndSub'关闭通信端口,PrivateSubForm_Unload(CancelAsInteger)MSComm1.PortOpen=FalseEndSub4结束语本文通过具体实例介绍了如何利用VB6.0中的MSComm控件来实现串口通信。
Visual+Basic串口通讯调试方法
Visual Basic串口通讯调试方法现有电子秤一台,使用串口与计算机进行通讯。
编写VB程序来访问串口,达到读取电子秤上显示的数据。
该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。
所有字符均发送11位ASCII码,一个起始位。
在VB 中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。
具体程序如下:控件简称:MSCDim Out(12) As Byte '接收var中的值Dim var As Variant '接收MSC.input中的数值Dim nRece As Integer '计算MSC.inputbuffer的个数Dim i As Integer, j As Integer '随即变量,计算循环****************************************************************************Private Sub Form_Load()ClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit).InBufferSize = 40 '设置缓冲区接收数据为40字节.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1.RThreshold = 1 '设置接收一个字节就产生OnComm事件End WithEnd Sub****************************************************************************Private Sub ClearText()Text3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_Click()ClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为二进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnComm()DelayTime ‘用来延续时间ClearTextWith MSCSelect Case .CommEvent '判断通信事件Case comEvReceive: '收到Rthreshold个字节产生的接收事件SwichVar 1If Out(1) = 2 Then '判断是否为数据的开始标志.RThreshold = 0 '关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节' nRece = nRece + 1For i = 2 To 12SwichVar iText1.Text = Text1.Text & Chr(Out(i))NextText1.Text = LTrim(Text1.Text)Text2.Text = Text2.Text & CStr(nRece).RThreshold = 1 '打开MSComm事件接收Case Else' .PortOpen = FalseEnd SelectEnd WithEnd Sub****************************************************************************Private Sub DelayTime()Dim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = TruesPrevious = Timer (Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = TrueEnd Sub(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用二进制形式,即InputMode=comInputModeBinary,但用Input 属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。
Visual Basic 6MSComm控件
Visual Basic6.0(以下简称VB)是一种功能强大、简单易学的程序设计语言。
它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。
它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。
本文结合计算机通信的两个例子,详细介绍如何在VB中使用MSComm控件。
处理方式MSComm控件提供了两种处理通信的方式:一种为事件驱动方式,该方式相当于一般程序设计中的中断方式。
当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。
本文的两个例子均采用该方式。
另一种为查询方式,在用户程序中设计定时或不定时查询MSComm控件的某些属性是否发生变化,从而确定相应处理。
在程序空闲时间较多时可以采用该方式。
常用属性和方法利用MSComm控件实现计算机通信的关键是理解并正确设置MSComm控件众多属性和方法。
以下是MSComm 控件的常用属性和方法:●Commport:设置或返回串口号。
●Settings:以字符串的形式设置或返回串口通信参数。
●Portopen:设置或返回串口状态。
●InputMode:设置或返回接收数据的类型。
●Inputlen:设置或返回一次从接收缓冲区中读取字节数。
●InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。
●InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。
●Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。
●OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。
●OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。
●Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。
●Rthreshold:该属性为一阀值。
基于VB6.0的串口发送接收程序
Public a, mun, m As Integer '定义全局变量a,mPrivate Sub Command1_Click() '步进度控制a = a + 1 '没按一次加一If a > 4 Then a = 0 '到四返0If a = 0 Then mun = 5 '下边几个为相应的步进档的显示值If a = 1 Then mun = 25If a = 2 Then mun = 50If a = 3 Then mun = 75If a = 4 Then mun = 100Text1 = munText2 = munText4 = munEnd SubPrivate Sub Command2_Click() '顺时针转动Dim temp(0) As Byte '定义串口输出数据类型On Error GoTo aatemp(0) = "&H" & a '把数据类型转化为十六进制MSComm1.OutBufferCount = 0 '清空串口输出缓冲器MSComm1.Output = temp '把数据送入串口aa:If Err.Number = 8018 Then MsgBox "串口无效,请更换串口号!" '当串口无效时候显示'Else'MsgBox "ERROR"'End IfResume NextEnd SubPrivate Sub Command3_Click() '逆时针转动On Error GoTo bb '定义串口输出数据类型Dim temp(0) As ByteDim b As Integerb = a '先把步进度暂时存放起来,赋值完再赋还给a;以免影响下次使用a = a + 5temp(0) = "&H" & a '把数据类型转化为十六进制MSComm1.OutBufferCount = 0 '清空串口输出缓冲器MSComm1.Output = temp '把数据送入串口a = bbb:If Err.Number = 8018 Then MsgBox "串口无效,请更换串口号!" '当串口无效时候显示'Else'MsgBox "ERROR"'End IfResume NextEnd SubPrivate Sub Command4_Click() '串口号选择,以下为串口初始化设置On Error GoTo wwm = Text3.TextmPort = m '使用COM 1 作为通信端口MSComm1.Settings = "9600,n,8,1" '波特率为9600, 无奇偶校验位, 8 个数据位, 一个停止位MSComm1.InputMode = comInputModeText '文本形式接收数据MSComm1.OutBufferSize = 5000MSComm1.InputLen = 0MSComm1.RThreshold = 1 '一次从接收缓冲区中读取全部字符数MSComm1.SThreshold = 0 '取全部字符数数If MSComm1.PortOpen = False ThenMSComm1.PortOpen = True '若COM 1 关闭则打开End Ifww:If Err.Number = 8002 Then MsgBox "串口无效,请更换串口号!" '当串口无效时候显示'Else'MsgBox "ERROR!"'End IfResume NextEnd SubPrivate Sub Form_Load() '窗口初始化设置Form1.Width = 14000Form1.Height = 9000 '窗口大小a = 0 '下边这几个是几个人控件的初值b = 0Text3 = 1Text1 = 5Text2 = 5Text4 = 5End SubPrivate Sub MSComm1_OnComm() '接收数据程序Select Case mEventCase comEvReceive ' '当串口无效时候显示R th resho ld 时引起O nComm 事件Text1.Text = Text1.Text + MSComm1.InputEnd SelectEnd Sub。
基于VB6.0的MSComm通信方法设计
基于VB6.0的MSComm通信方法设计摘要:本文介绍了基于vb6.0的msm串行通信设计方法,并给出了计算机与智能采集模块进行通信的程序设计的框架。
关键词:串行通信,vb6.0,msm 1 前言在工业控制领域,我们经常需要进行计算机与其他设备之间的通信,而串行通信作为一种灵活、方便、可靠的通信方式被广泛采用。
在开发串行通信程序的过程中,利用微软的msm通信控件则相对较简单,该控件具有丰富的与串行通信密切相关的属性及事件,提供了对串口的各种操作。
msm控件在串口编程时非常方便,程序员不必花时间去了解较为复杂的api函数,而且在vb中容易使用。
2 用visual basic 6.0进行串行通信程序设计的方法(1)用visual basic 6.0进行串行通信程序的设计有两种方式,一是直接调用windows api,另一种方式是使用通信组件,但后一种方式实际上是通过通信组件间接的调用了windows api函数,其过程要比直接调用api要复杂,但是在程序的实现上要比前一种方式简单的多。
在操作系统方面,windows使用通信驱动程序m.drv,以便于应用程序能够使用标准的windows api函数来传递和接收数据。
串行外围设备的制造商则提供硬件驱动程序,以便让其硬件能与windows 连接。
使用msm控件时,实际上就是使用了api函数,api函数将被m.drv解释并传送给外围设备驱动程序,使用msm 的用户只需要关心如何使用msm所提供的属性或事件,以驱动api函数的接口完成工作。
串行通信程序的执行过程(2)msm提供了两种处理通信问题的方法,一是事件驱动方法,一是查询法。
①事件驱动法在使用事件驱动法设计程序时,每当有新字符到达或端口状态改变,或发生错误时,msm控件将触发onm事件,而应用程序在捕获该事件后,通过检查msm控件的mevent属性可以获知所发生的事件或错误,从而采取相应的操作。
这种方法的优点是程序响应及时,可靠性高。
如何用VB编写串口程序
如何用VB编写串口程序VB控件MSComm功能介绍VB中的MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi 等语言中均可使用。
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。
1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。
在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。
OnComm 事件还可以检查和处理通讯错误。
所有通讯事件和通讯错误的列表,参阅CommEvent 属性。
在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。
这种方法的优点是程序响应及时,可靠性高。
每个MSComm 控件对应着一个串行端口。
如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。
1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。
如果应用程序较小,并且是自保持的,这种方法可能是更可取的。
例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
利用VB如何进行串口读写
利用VB如何进行串口读写今天说下利用VB如何进行串口读写。
首先需要的是在VB中增加一个microsoft comm control 6.0的控件。
步骤就是:工程->部件->点击microsoft comm control 6.0->确定。
先介绍一下必须熟悉几个属性:CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。
也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
然后利用给大家一个读串口的小例程:Private Sub Form_Load()mPort = 1 '选择com1Mcom.Settings = "115200,N,8,1" '设置波特率为115.2kpbs,没有奇偶校验,8位数据位,1位结束位Mcom.InputLen = 0 '读取全部的输入缓冲区If Mcom.PortOpen = False Then Mcom.PortOpen = True '端口打开Mcom.RThreshold = 2Mcom.SThreshold = 2End SubPrivate Sub Mcom_OnComm() '所有的通讯事件都可以激发MSComm1控件的OnComm事件Select Case mEventCase comEvReceive'此处的代码可以进行当串口的接受缓冲区里有RThreshold个字符的处理Text4 = Text4 & Mcom.InputCase comEvSend'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理End SelectEnd SubPrivate Sub Form_Unload(Cancel As Integer)If Mcom.PortOpen = True Then Mcom.PortOpen = FalseEnd Sub利用上面的小程序,我们就可以通过读到外设给串口发出的数据了。
VB中串口通讯的实现详解说明
VB中串口通讯的实现详解说明在VB中实现串口通讯可以分为以下几个步骤:1.引用串口通讯相关的命名空间首先在项目中引用System.IO.Ports命名空间,该命名空间包含了实现串口通讯所需的类和方法。
2.创建串口对象使用SerialPort类创建一个串口实例,可以指定串口的名称、波特率、数据位、停止位、校验位等参数。
```vbDim serialPort As New SerialPortserialPort.PortName = "COM1"serialPort.BaudRate = 9600serialPort.DataBits = 8serialPort.StopBits = StopBits.OneserialPort.Parity = Parity.None```3.打开串口使用Open方法打开串口,可以在Open之前先判断串口是否已经打开。
```vbIf serialPort.IsOpen Then'串口已经打开ElseserialPort.OpenEnd If```4.串口数据接收通过事件处理函数来处理串口接收到的数据。
可以使用DataReceived事件来处理数据接收,当串口接收到数据时会触发该事件。
```vbPrivate Sub SerialPort_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles serialPort.DataReceived Dim data As String = serialPort.ReadExisting'处理接收到的数据End Sub```5.串口数据发送通过串口的Write方法来发送数据。
```vbserialPort.Write("Hello World")```需要注意的是,串口通讯是一种异步操作,发送和接收数据都需要一定的时间,因此在程序中需要合理处理串口的状态。
用VB6.0实现计算机间串口通信
用VB6.0实现计算机间串口通信作者:李永胜来源:《电脑知识与技术·学术交流》2008年第08期摘要:本文主要介绍利用VB6.0串行通信编程的方法,利用MSComm控件实现计算机与计算机间的串口通信。
关键词:串口通信;VB6.0;MSCOMM控件中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c随着互联网的不断发展,计算机间的相互通信已非常普遍,只要通过计算机的串行口就可以实现。
而对于串口通信的编程软件,微软公司的Visual Basic 6.0(简称VB6.0)以其友好的开发界面、简单易用、实用性强等优点已在国内外得到广泛应用。
VB6.0提供了许多供用户选择的控件,这些控件以.OCX为文件后缀名,其中MSComm.OCX即是用于串行通信的控件。
如果需要使用该控件,可将控件添加到工具箱内,这样就可以利用该控件进行串行通信程序的设计。
下面这个例子,说明如何进行串行通信程序设计,该程序在Windows98环境下已调试通过。
在调试程序时,很难做到一个人同时占有两台计算机。
为此,可通过直接短接串口的2、3两个脚,即将串行口的2、3脚连接在一起,从而使发送的信息直接被本机接收。
这样,就可以在一台计算机上调试程序。
1 MSComm控件常用属性Commport 设置并返回通信端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen设置并返回通信端口的状态,也可以打开和关闭端口。
InBufferSize 设置并返回接收缓冲区的字符数。
Input 从接收缓冲区返回和删除字符。
InputLen设置并返回Input属性从缓冲区读取的字符数。
OutBufferSize以字符形式设置并返回传输缓冲区的大小。
Output向传输缓冲区写数据。
2 用户界面设计首先新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框中选择Microsoft Comm Control6。
VB6.0串口操作
串口操作职业2010-12-22 11:30:58 阅读60 评论0 ??字号:大中小?订阅一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。
计算机与单片机的连接,是通过串口来实现的。
如何实现,我想应该明白VB怎样来操作串口,实现VB操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。
这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。
开发软件:Visual Basic 企业版(VB6)新建一个工程:标准EXE。
接下来做Form界面。
代码:Private Sub Combo1_Click()If = True Then '如果串口打开先关闭后再进行其他操作?? = FalseEnd If= + 1End SubPrivate Sub Command1_Click()??? Dim Temp(0) As Byte??? Dim strBuff As String???If = True Then '如果显示16进制发送则进行16进制处理,这里只发送一个?? Temp(0) = "&H" & Text1?? = Temp '发送一个16进制???????Else???? strBuff = Text1End IfIf = False Then?? MsgBox "请打开串口"End IfOn Error GoTo uerror= strBuffuerror: End SubPrivate Sub Command2_Click()On Error GoTo uerror????? '发现错误跳转到错误处理If = "关闭串口" Then??????? = False??????? = "打开串口" '按钮文字改变??????? = &HFFFFC0??? '灯颜色改变Else??????????? = True?????? = "关闭串口"?????? = &HFFEnd IfExit Subuerror:??? msg$ = "无效端口号"????????? '错误显示??? Title$ = "串口调试助手"??? x = MsgBox(msg$, 48, Title$) '48标示显示警告图标??End SubPrivate Sub Command3_Click()= ""End SubPrivate Sub Command4_Click()= ""End SubPrivate Sub Form_Load()If = True Then?? = FalseElseEnd If"COM1""COM2""COM3""COM5" "COM6" "COM7" "COM8" "COM9" "COM10" "COM11" "COM12" "COM13" "COM14" "COM15" "COM16"= 0= + 1= "9600,n,8,1" ?? = "打开串口" ?? = &HFFFFC0 ??= True= True"256000" "128000" "115200" "57600" "38400" "28800" "19200"' "14400"' "12800"' "11520" "9600" "4800" "2400" "1200" "600""无None""奇Odd""偶Even""4""5""6""8""1""2"End SubPrivate Sub MSComm1_OnComm()Dim BytReceived() As Byte??? Dim strBuff As String??? Dim i As Integer??? Select Case ??? '事件发生??????? Case 2??????????? Cls?????????????????????? = 0???? '读入缓冲区全部内容??????????? strBuff = '读入到缓冲区???????? If = comInputModeBinary Then??????????? BytReceived() = strBuff '如果是二进制接收模式则进行数据处理,否则直接显示字符串??????????? For i = 0 To UBound(BytReceived)??????????????? If Len(Hex(BytReceived(i))) = 1 Then??????????????????? strData = strData & "0" & Hex(BytReceived(i)) & " " '如果只有一个字符,则前补0,如F显示0F,最后补空格??????????????? Else??????????????????????????????????????????????????? '方便显示观察如: 00 0F FE??????????????????? strData = strData & Hex(BytReceived(i)) & " " ??????????????? End If??????????? Next??????????? Text2 = Text2 & strData??????????? strData = ""??????? Else??????????? Text2 = Text2 & strBuff??????? End If??? End SelectEnd SubPrivate Sub Option1_Click()= comInputModeBinaryEnd SubPrivate Sub Option2_Click()= comInputModeTextEnd Sub一。
应用VB6.0实现串口控制伺服运动系统
1 概
述
式 中,
( )为 第 n个采 样 周期 的控 制 输 出值 ,e n
直流 电动 机 位置 伺服 系统 主要 由上 位 P c机 、 PC 6 87单 片机 、PD控 制 、驱 动 电路 、直 流 电 I1F 7 I 动机 和增 量 编 码 器 组 成 。其 中 ,上 位 机 是 P c机 , 可 由 V 60实 现用 户 界 面 ,并 将 用户 输 入 的控 制 B.
M
根据自动控制理论 ,电机控制可以用 PD三个 I 参数对系统进 行伺 服控 制 j 比例 增益 为 系统提 供 。
刚性 ,它的大小 决定 系统 响应 的快 速 性 ,积 分增 益 可以消除系统 的稳 态误差 ,微分 增益 是为 系统 提 供 稳定性 的阻尼项 ,能改 善 系统 的动态 特 性 。本 文 中 使用 的 L 2 M69中 PD滤 波器 可 以作 为一 个 数 字 比 I 例 、积分 、微分 校正装置 。系统框 图见 图 1 。 L 2 M69提 供 了强 大 的 PD参 数 调 节 功 能 ,通 I 过 内置 PD补偿环 节 可以非 常方 便地 对 电机 的 PD I I 参 数进行 调 节 ,获 得 理 想 的控 制 性 能 ;只 需 在 软 件 中写 入所 需 要 的 PD参 数 就 能 实 现 对 系统 的控 I 制 。其输 入输 出关 系式如下 :
+5 V
李惠平 ,等
数 据 。对 P C机协 议规 定如 下 :
() K () K∑e) KE n 一( 一) n : pn + e ( + a () e 1 n ] e
l= I
() 1
收稿 日期 :20 —70 0 70 —2
・
7 ・ D
维普资讯
基于VB6.0的宇电仪表与计算机串口通信及在发动机磨合试验台的应用
水、 加热等) 电压、 压力等) J油泵、 报警等)
l
l
,
温 度 等重 要参 数 进 行 测量 和显 示 。 同时 存 储 试验 数 据 ,
判 定 发动 机 的好 坏 。 I I 磨合 试验 流 程简 述 .
至 热试 台前 , 自动对 接 热 试 托 盘 和发 动 机 的所 有 辅 助 系
2 2 水 箱温 度控 制 .
发 动机 的冷 却 水水 温是 保 证 发 动 机 正 常 工 作 的前
提, 由于发动 机在磨 合过 程 中 , 对进 出水 温 度有 一定 的要 求, 水温过 高 , 发动 机 的热 量 无 法 及 时散 发 , 会影 响发 动
张 满 韵 等 : f B . 基 V 60的 字 电仪 表 与 计 算 机 串 口通 信 及 在 发 动 机 磨 合 试 验 台的 应 硐
基 于 V 6 0的宇 电仪 表 与计 算 机 串 口通 信 B. 及在 发 动 机磨 合 试 验 台 的应 用
Meh do s fA t n o to U eo IMee a dC mmuainB tenaHot o p t n I f r ct ew e s m ue a dA o C r
设 定值 附 近 。
2 3 发动机 转 速 的测 量 .
起始 位 , 数 据位 , 奇偶 校 验位 , 位 或 2位 停 止 位 , 8位 无 1 波 特率可在 10 20—120 i S选 择 ,8 90 b / t 4 5通 信 。仪表 数 据 采用 l 求 和校 验 , 6位 纠错 能 力 比奇 偶校 验 高 数万 倍 , 可 确保 通 信数据 的正确可靠 。
用VB6.0实现设备串口通信及监控功能
用VB6.0实现设备串口通信及监控功能
顾环宇
【期刊名称】《电脑知识与技术》
【年(卷),期】2007(003)018
【摘要】在实际应用中,串口是计算机与外部串行设备之间常用的数据传输通道.本文介绍了串口通信的基本原理和函数,提出了在windows环境下实现串口通信的一般方法和步骤,并在VB6.0下编程实现.
【总页数】2页(P1487,1494)
【作者】顾环宇
【作者单位】上海电信科技发展有限公司,上海,200065
【正文语种】中文
【中图分类】TP393
【相关文献】
1.基于VB6.0的RS232串口通信研究与实现 [J], 黄天强
2.用VB6.0实现设备串口通信及监控功能 [J], 顾环宇
3.基于VB6.0的多方式串口通信实现 [J], 侯志军;高媛媛;沙楠
4.基于VB6.0实现单片机与PC机的串口通信 [J], 陈代胜;张莉君;;;
5.基于VB6.0的西门子PLC与PC的通信实现微机监控功能 [J], 郭春春; 贺贵明; 陈明榜; 刘发慧
因版权原因,仅展示原文概要,查看原文内容请购买。
用VB进行串口实时数据采集
用VB进行串口实时数据采集xx交通学院信息与计算科学系(410077)xxxx----本文介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。
给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。
----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。
该仪表带有一个9针的RS-232C串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。
----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。
仪表每秒发送50帧检测数据,每帧数据由4个字节组成。
第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:----则为负数;第八位为0,即:----则为正数。
----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H表示-26.8734.62。
----通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。
----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下:RThreshold = 1接收缓冲区收到一个字节产生OnComm事件InputLen = 1每次读取一个字节----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms时间,然后再进行数据处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB6.0串口操作职业2010-12-22 11:30:58 阅读60 评论0 字号:大中小订阅一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。
计算机与单片机的连接,是通过串口来实现的。
如何实现,我想应该明白VB怎样来操作串口,实现VB操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。
这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。
开发软件:Visual Basic 6.0企业版(VB6)新建一个工程:标准EXE。
接下来做Form界面。
代码:Private Sub Combo1_Click()If MSComm1.PortOpen = True Then '如果串口打开先关闭后再进行其他操作MSComm1.PortOpen = FalseEnd IfmPort = Combo1.ListIndex + 1End SubPrivate Sub Command1_Click()Dim Temp(0) As ByteDim strBuff As StringIf Option3.Value = True Then '如果显示16进制发送则进行16进制处理,这里只发送一个Temp(0) = "&H" & Text1MSComm1.Output = Temp '发送一个16进制ElsestrBuff = Text1End IfIf MSComm1.PortOpen = False ThenMsgBox "请打开串口"End IfOn Error GoTo uerrorMSComm1.Output = strBuffuerror: End SubPrivate Sub Command2_Click()On Error GoTo uerror '发现错误跳转到错误处理If Command2.Caption = "关闭串口" ThenMSComm1.PortOpen = FalseCommand2.Caption = "打开串口" '按钮文字改变Shape1.FillColor = &HFFFFC0 '灯颜色改变ElseMSComm1.PortOpen = TrueCommand2.Caption = "关闭串口"Shape1.FillColor = &HFFEnd IfExit Subuerror:msg$ = "无效端口号" '错误显示Title$ = "串口调试助手"x = MsgBox(msg$, 48, Title$) '48标示显示警告图标End SubPrivate Sub Command3_Click()Text2.Text = ""End SubPrivate Sub Command4_Click()Text1.Text = ""End SubPrivate Sub Form_Load()If MSComm1.PortOpen = True ThenMSComm1.PortOpen = FalseElseEnd IfCombo1.AddItem "COM1"Combo1.AddItem "COM2"Combo1.AddItem "COM3"Combo1.AddItem "COM4"Combo1.AddItem "COM5"Combo1.AddItem "COM6"Combo1.AddItem "COM7"Combo1.AddItem "COM8"Combo1.AddItem "COM9"Combo1.AddItem "COM10"Combo1.AddItem "COM11"Combo1.AddItem "COM12"Combo1.AddItem "COM13"Combo1.AddItem "COM14"Combo1.AddItem "COM15"Combo1.AddItem "COM16"Combo1.ListIndex = 0mPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,n,8,1"Command2.Caption = "打开串口"Shape1.FillColor = &HFFFFC0Option2.Value = TrueOption4.Value = TrueCombo2.AddItem "256000"Combo2.AddItem "128000"Combo2.AddItem "115200"Combo2.AddItem "57600"Combo2.AddItem "38400"Combo2.AddItem "28800"Combo2.AddItem "19200"'Combo2.AddItem "14400"'Combo2.AddItem "12800"'Combo2.AddItem "11520"Combo2.AddItem "9600"Combo2.AddItem "4800"Combo2.AddItem "2400"Combo2.AddItem "1200"Combo2.AddItem "600"Combo3.AddItem "无None"Combo3.AddItem "奇Odd"Combo3.AddItem "偶Even"Combo4.AddItem "4"Combo4.AddItem "5"Combo4.AddItem "6"Combo4.AddItem "7"Combo4.AddItem "8"Combo5.AddItem "1"Combo5.AddItem "2"End SubPrivate Sub MSComm1_OnComm()Dim BytReceived() As ByteDim strBuff As StringDim i As IntegerSelect Case mEvent '事件发生Case 2ClsMSComm1.InputLen = 0 '读入缓冲区全部内容strBuff = MSComm1.Input '读入到缓冲区If MSComm1.InputMode = comInputModeBinary ThenBytReceived() = strBuff '如果是二进制接收模式则进行数据处理,否则直接显示字符串For i = 0 To UBound(BytReceived)If Len(Hex(BytReceived(i))) = 1 ThenstrData = strData & "0" & Hex(BytReceived(i)) & " " '如果只有一个字符,则前补0,如F显示0F,最后补空格Else '方便显示观察如:00 0F FEstrData = strData & Hex(BytReceived(i)) & " "End IfNextText2 = Text2 & strDatastrData = ""ElseText2 = Text2 & strBuffEnd IfEnd SelectEnd SubPrivate Sub Option1_Click()MSComm1.InputMode = comInputModeBinaryEnd SubPrivate Sub Option2_Click()MSComm1.InputMode = comInputModeTextEnd Sub重要:一。
添加新的VB控件:在控件工具箱点鼠标右键:部件添加:Microsoft Comm Control 6.0 (Mscomm1)二、设置Mscomm1选中Mscomm1改:RThreshold 0--->1LThreshold 0----->1其他可不用改,默认。
OK,以上基本可以完成这个小程序的设计,这样点发送就可以发送一个字符了。
如果有单片机,在单片机里编好接收程序,则可以实现一定的控制,如实现LED灯的亮与灭,数码管显示,这在以后我会努力搞定发表的。
附:上面程序界面中命名:信息(1)发送区:用frame3 (必须用,这样隔离option1,2)..Text1 (发送文本框) option3(16进制发送)option 4 (字符格式发送)发送(command1) 清空发送区(command4)(2)接收区:Frame1 (必须用,隔离option3,4,)Text2(接收文本框,要多行,即:属性:MultiLine:True)option1(16进制接收)option2(字符格式接收)command3(清空接收区:Text2)(3)端口设置区:(在Form_load里设置的初值)combo1(端口,Text:COM1) combo2(波特率)combo3(校验位)combo4(数据位)combo5(停止位)Label1~Label5标示名字:即:Label1:端口Label2:波特率Label3:校验位Label4:数据位Label5:停止位(4)command2 :打开串口,(5)Mscomm1(添加的VB6.0串口控件)(6)添加一Shape1(圆形的用3-Circle) 通过设置其FillColor(颜色变化)来标示COM口是否打开以上基本完成。