资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vbnetrs232 vbtps235

怎样用VB实现RS232接口通信

VB可以使用MsComm控件来实现串口通信。

印台ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm 控件提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或

Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm

事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent

属性。

OnComm 事件

无论何时当 CommEvent 属性的值变化时,就产生 OnComm 事件,标志发生了一个通讯事件或一个错误。

OnComm 事件示例

下例说明如何处理通讯错误和事件。可以在相关的 Case 语句之后插入代码来处理特定的错误或事件。

Private Sub MSComm_OnComm()

Select Case MSComm1.CommEvent

' 错误

Case comEventBreak   ' 收到 Break。

Case comEventCDTO   ' CD (RLSD) 超时。

Case comEventCTSTO   ' CTS Timeout。

Case comEventDSRTO   ' DSR Timeout。

Case comEventFrame   ' Framing Error

Case comEventOverrun   '数据丢失。

Case comEventRxOver '接收缓冲区溢出。

Case comEventRxParity ' Parity 错误。

Case comEventTxFull   '传输缓冲区已满。

Case comEventDCB   '获取 DCB] 时意外错误

' 事件

Case comEvCD   ' CD 线状态变化。

Case comEvCTS   ' CTS 线状态变化。

Case comEvDSR   ' DSR 线状态变化。

Case comEvRing   ' Ring Indicator 变化。

Case comEvReceive   ' 收到 RThreshold # of chars.

Case comEvSend   ' 传输缓冲区有 Sthreshold 个字符         

Case comEvEOF   ' 输入数据流中发现 EOF 字符

End Select

End Sub

MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

Output 属性,往传输缓冲区写数据流。该属性在设计时无效,在运行时为只读。

说明

Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的

Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到

Output 属性。

正常情况下,如果发送一个 ANSI 字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。

以下代码是在打开COM口后,能以二进制形式或字符串发送指令:

Option Explicit

Dim sjByt() As Byte

Private Sub Command1_Click() '2进制发送

ReDim sjByt(1 To 10) '设置为10个元素

sjByt(1) = H31

sjByt(2) = H32

sjByt(3) = H12

sjByt(4) = H31

sjByt(5) = H32

sjByt(6) = H33

sjByt(7) = H34

sjByt(8) = H35

sjByt(9) = H36

sjByt(10) = H37

MSComm1.Output = sjByt '此命令执行一次发送10字节

End Sub

Private Sub Command2_Click()'文本字符串发送

Dim sjStr As String

sjStr = "Dim sjStr As String"

MSComm1.Output = sjStr '此命令执行字符串发送

End Sub

vb.net与rs232串口的通讯

Dim str As String

Dim str1() As String

str = "xxm+0000.00yym+0000.00zzm+0000.00"

str1 = str.Split("+")

结果在str1()中

vb 与RS-232的通讯

给出在Win2000下利用VB6.0的MSComm控件开发计算机与一智能采集模块进行串行通信的程序实现。在工控领域内,智能采集模块有着相当重要的地位,它可以通过串口通讯协议(RS232、RS485等)或其他通讯协议与PC机相连,并与外界现场信号直接相连或与由传感器转换过的外界信号相连,由PC机中的程序控制并实现采集现场的模拟信号,并处理采集到的现场信号并输出模拟控制信号、开关量输入输出等功能。因此,智能采集模块在工业控制领域内有着极其广泛的应用。本例子中的智能采集模块与计算机进行通信时,采用一位开始位、一位停止位、7位数据位、偶校验方式,波特率为9600bps.

(1)在窗体中添加名为MyComm的MSComm控件,并设置空间的属性,如下:

.CommPort=2 ‘使用COM2

.Setting=”9600,e,7,1” ‘波特率9600,偶校验,7个数据位,1个停止位

.InBufferSize=40 ‘设置MyComm接收缓冲区为40个字节

.OutBufferSize=2 ‘设置MyComm发送缓冲区为2个字节

.InputMode=comInputModeBinary

‘设置接收数据模式为二进制模式

.InputLen=1 ‘设置一次从接收缓冲区读取字节数为1

.Sthreshold=1 ‘设置一次从发送缓冲区读取字节数为1

.PortOpen=True ‘打开通信口

‘其他属性设置省略

(2)下面是响应Mycomm_OnComm事件的处理程序,对数据库采集的处理程序采用MSComm事件驱动方式。

Private Sub MyComm_OnComm()

With MyComm

Select case .CommEvent

Case .comEvReceive

‘ 接收数据

‘ 对数据进行处理

case .comEVSend

‘发送数据

case .comEventRxParity

‘对奇偶校验错误进行处理

end select

end with

end sub

vb.NET过设备232控制设备

现在很少使用RS232接口的设备,新出的主板也少带这种接口的了,常见的只是早期一些MODEM和鼠标使用,一些交换机和企业路由器、还有少数的条码机或是一些手机通过RS232与电脑通讯的。不知楼主现在指的是什么设备要用电脑控制了?不同的设备接线方式不同,这个接线方式没有绝对的统一的,很多时候是要自己手工焊接连接线的,再配上该设备专用的软件才能通讯成功。


网页标题:vbnetrs232 vbtps235
标题网址:http://cdkjz.cn/article/dodicgs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220