国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>MSComm控件的使用方法(232通訊用)

      直播推薦

      更多>

      企業(yè)動(dòng)態(tài)

      更多>

      推薦展會(huì)

      更多>

      MSComm控件的使用方法(232通訊用)

      2006年11月15日 09:04:10人氣:3932來(lái)源:煙臺(tái)勾股通信技術(shù)有限公司

      MSComm 控件為應(yīng)用程序提供了串口通信功能,該應(yīng)用程序允許通過(guò)串口發(fā)送和接收數(shù)據(jù)。

      語(yǔ)法
      MSComm
      說(shuō)明
      MSComm控件提供了兩種處理通信的方法:
      · 事件驅(qū)動(dòng)通信,是一種功能很強(qiáng)的處理串口活動(dòng)的方法。在大多數(shù)情況下,用戶需要獲知事件發(fā)生的時(shí)間,

      例如,在CD(Carrier Detect)線或RTS(Request To Send)線上有字符到達(dá)或發(fā)生了改變等。在這種情況下

      ,使用MSComm 控件的OnComm 事件捕獲和處理這些通信事件。OnComm也可以捕獲和處理通信中的錯(cuò)誤。要獲取

      所有事件和通信錯(cuò)誤的完整清單,請(qǐng)參閱CommEvent屬性。
      · 用戶也可以在每個(gè)重要的程序功能之后檢查CommEvent 屬性的值來(lái)檢測(cè)事件和通信錯(cuò)誤。這對(duì)小的自含程序

      可能比較常用。例如,如果編寫(xiě)一個(gè)簡(jiǎn)單的撥號(hào)程序,那么在接收了每個(gè)字符后都產(chǎn)生一個(gè)事件并沒(méi)有
      意義,因?yàn)槟阒淮蛩銖恼{(diào)制解調(diào)器中接收OK響應(yīng)信息。
      使用的每個(gè)MSComm 控件都與一個(gè)串口對(duì)應(yīng)。如果在應(yīng)用程序中需要訪問(wèn)多個(gè)串口,必須使用多個(gè)MSComm 控件

      。可以在Windows 控制面板中修改串口地址的中斷地址。
      雖然MSComm控件有許多很重要的屬性,但應(yīng)先熟悉下面幾個(gè)屬性:
      屬性描述
      CommPort 設(shè)置或返回通信端口號(hào)
      Settings 以字符串的形式設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位
      PortOpen 設(shè)置或返回通信端口的狀態(tài)。也可以打開(kāi)和關(guān)閉端口
      Input 返回和刪除接收緩沖區(qū)中的字符
      Output 將字符串寫(xiě)入發(fā)送緩沖區(qū)

      示例
      下面的例子演示了使用調(diào)制解調(diào)器進(jìn)行基本的通信。
      Private Sub Form_Load ()
       Buffer to hold input string
      Dim Instring As String
       Use COM1.
      mPort = 1
       9600 baud no parity 8 data and 1 stop bit.
      MSComm1.Settings = "9600N81"
       l the control to read entire buffer when Input
       is used.
      MSComm1.InputLen = 0
       Open the port.
      MSComm1.PortOpen = True
       Send the attention command to the modem.
      MSComm1.Output = "ATVtQ0"& + Chr$(13) Ensure that
       the modem responds with “OK”
       Wait for data to come back to the serial port.
      Do
      DoEvents
      Buffer$ = Buffer$ MSComm1.Input
      Loop Until InStr (Buffer$ “OK” & vbCRLF)
       Read the "OK" response data in the serial port.
       Close the serial port.
      MSComm1.PortOpen = False
      End Sub
      注意:MSComm 控件可以使用查詢或事件驅(qū)動(dòng)的方法從串口接收數(shù)據(jù)。本例使用了查詢的方法。對(duì)于事件驅(qū)動(dòng)方

      法的例子,請(qǐng)參閱OnComm 事件的幫助。
      Break屬性
      設(shè)置或清除斷開(kāi)信號(hào)狀態(tài)。在設(shè)計(jì)時(shí)該屬性不可用。
      語(yǔ)法
      object.Break [=value]
      Break屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,指明是否設(shè)置斷開(kāi)信號(hào)狀態(tài),如“設(shè)置”中所示
      設(shè)置
      vlaue 值的設(shè)置如下:
      設(shè)置描述
      True 設(shè)置斷開(kāi)信號(hào)狀態(tài)
      False 清除斷開(kāi)信號(hào)狀態(tài)
      說(shuō)明
      當(dāng)設(shè)置為T(mén)rue 時(shí),Break 屬性就發(fā)送一個(gè)斷開(kāi)信號(hào)。斷開(kāi)信號(hào)將停止字符發(fā)送,將發(fā)送線置為斷開(kāi)狀態(tài),直到

      將Break屬性置為False。
      通常,為短時(shí)間區(qū)以及只有當(dāng)用于通信的設(shè)備需要設(shè)置斷開(kāi)狀態(tài)時(shí)才設(shè)置斷開(kāi)狀態(tài)。
      數(shù)據(jù)類型
      Boolean。

      示例
      下面的例子演示了如何發(fā)送十分之一秒的斷開(kāi)信號(hào)。
       Set the Break condition.
      MSComm1.Break = True
       Set duration to 1/10 second.
      Duration! = Timer + .1
       Wait for the duration to pass.
      Do Until Timer  Duration!
      Dummy = DoEvents()
      Loop
       Clear the Break condition.
      MSComm1.Break = False

      CDHolding屬性
      通過(guò)檢查CD 線的狀態(tài)來(lái)查詢是否有載波。CD(Carrier Detect,載波檢測(cè))是調(diào)制解調(diào)器發(fā)送給連接計(jì)算機(jī)的

      指示調(diào)制解調(diào)器在線的信號(hào)。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只讀的。
      語(yǔ)法
      object.CDHolding
      CDHolding屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      設(shè)置
      CDHolding屬性的設(shè)置如下:
      設(shè)置描述
      True CD線高
      False CD線低
      說(shuō)明
      當(dāng)CD線高(CDHolding = True)并超時(shí),MSComm控件就將CommEvent屬性設(shè)置為commEventCDTO(Carrier

      Detect Timeout Error),并產(chǎn)生一個(gè)OnComm事件。CD也稱為RLSD(Receive Line Singal Detect,接收線信

      號(hào)檢測(cè))。
      注意:尤其要注意的是,在主機(jī)應(yīng)用程序比如電子公告板中要偵測(cè)載波信號(hào)的丟失問(wèn)題,因?yàn)楹艚姓唠S時(shí)都有

      可能掛起。
      數(shù)據(jù)類型:
      Boolean。

      CommEvent 屬性
      返回zui近的通信事件或錯(cuò)誤。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只讀的。
      語(yǔ)法
      mEvent
      CommEvent屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      說(shuō)明
      盡管通信事件或錯(cuò)誤都產(chǎn)生OnComm 事件,但CommEvent 屬性中包含了事件或錯(cuò)誤的代碼。要確定導(dǎo)致OnComm

      事件的實(shí)際錯(cuò)誤或事件,必須引用CommEvent屬性。
      CommEvent 屬性為通信事件或錯(cuò)誤返回下列值之一。在該控件的對(duì)象庫(kù)中也可以找到這些常量。
      通信錯(cuò)誤包含了下面的設(shè)置:
      常量值描述
      ComEventBreak 1001 收到了斷開(kāi)信號(hào)
      ComEventCTST
      O
      1002 Clear To Send Timeout。在發(fā)送字符時(shí),在系統(tǒng)的事件內(nèi),CTS(Clear To Send)線是低電平
      ComEventDSRT
      O
      1003 Data Set Ready Timeout。在發(fā)送字符時(shí),在系統(tǒng)的事件內(nèi),DSR(Data Set Ready)線是低電平
      ComEventFrame 1004 數(shù)據(jù)幀錯(cuò)誤。硬件檢測(cè)到一個(gè)數(shù)據(jù)幀錯(cuò)誤
      ComEventOverru
      n
      1006 端口溢出。硬件中的字符尚未讀,下一個(gè)字符又到達(dá),
      并且丟失
      ComEventCDTO 1007 Carrier Detect Time。在發(fā)送字符時(shí),在系統(tǒng)的事件內(nèi),CD(Carrier Detect)線是

      低電平。CD也稱為RLSD(Receive Line Singal Detect,接收線信號(hào)檢測(cè))
      ComEventRxOve
      r
      1008 接收緩沖區(qū)溢出。在接收緩沖區(qū)中沒(méi)有空間
      ComEventRxPari
      ty
      1009 奇偶校驗(yàn)錯(cuò)。硬件檢測(cè)到奇偶校驗(yàn)錯(cuò)誤
      續(xù)表
      ComEventTxFull 1010 發(fā)送緩沖區(qū)滿。在對(duì)發(fā)送字符排隊(duì)時(shí),發(fā)送緩沖區(qū)滿ComEventDCB 1011 檢取端口DCB(

      Device Control Blick)時(shí)發(fā)生了沒(méi)有預(yù)料到的錯(cuò)誤
      通信事件包含了下面的設(shè)置:
      常量值描述
      ComEvSend 1 發(fā)送緩沖區(qū)中的字符數(shù)比Sthreshold值低
      ComEvRecei
      ve
      2 接收到了Rthreshold 個(gè)字符。持續(xù)產(chǎn)生該事件,直到使用了Input屬性刪除了接收緩沖區(qū)中的數(shù)據(jù)
      ComEvCTS 3 CTS(Clear To Send)線改變
      ComEvDSR 4 DSR(Data Set Ready)線改變。當(dāng)DSR 從1 到0 改變時(shí),該事件發(fā)生
      ComEvCD 5 CD(Carrier Detect)線改變
      ComEvRing 6 檢測(cè)到響鈴信號(hào)。一些URAT(Universal Asynchronous
      Reciver-Transmitters通用異步收發(fā)器)不支持該事件
      ComEvEOF 7 收到了EOF字符(ASCII字符26)
      數(shù)據(jù)類型
      Integer。

      CommID屬性
      返回標(biāo)識(shí)通信設(shè)備的句柄。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只讀的。
      語(yǔ)法
      mID
      CommID屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      說(shuō)明
      該值與Windows API 函數(shù)CreateFile 返回值是一樣的。在Windows API 中調(diào)用任何通信例程都使用該值。
      數(shù)據(jù)類型
      Long

      CommPort屬性
      返回或設(shè)置通信端口號(hào)。
      語(yǔ)法
      mPort [=value]
      CommPort屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 端口號(hào)的整數(shù)
      說(shuō)明
      在設(shè)計(jì)時(shí),可以將value 置為1 到16 之間的整數(shù)(缺省為1)。然而,當(dāng)試圖使用PortOpen 屬性打開(kāi)一個(gè)不存

      在的端口號(hào)時(shí),MSComm 控件就產(chǎn)生68
      錯(cuò)誤(Device unavilable)。
      警告:必須在打開(kāi)端口前設(shè)置CommPort屬性。
      數(shù)據(jù)類型
      Integer。

      CTSHolding屬性
      檢查CTS(Clear To Send)線的狀態(tài),確定是否可以發(fā)送數(shù)據(jù)。通常,調(diào)制解調(diào)器給連接的計(jì)算機(jī)發(fā)送CTS 信

      號(hào),指明正在處理發(fā)送過(guò)程。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只讀的。
      語(yǔ)法
      object.CTSHolding
      CTSHolding屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      CTSHolding屬性的設(shè)置如下表所示:
      設(shè)置描述
      True CTS(Clear To Send)線高
      False CTS(Clear To Send)線低
      說(shuō)明
      當(dāng)CTS線低(CTSHolding = False)并超時(shí),MSComm控件就設(shè)置CommEvent
      屬性為comEventCTSTO(Clear To Send Timout)并激活OnComm事件。
      在RTS/CTS( Request To Send / Clear To Send)硬件握手中使用CTS線。如果需要確定CTS線的狀態(tài),可以使用

      CTSHolding屬性手動(dòng)查詢。
      要獲取更多信息或握手協(xié)議,請(qǐng)參閱Handshaking屬性。
      數(shù)據(jù)類型
      Boolean

      DSRHolding屬性
      確定DSR(Data Set Ready)線的狀態(tài)。通常,調(diào)制解調(diào)器給連接的計(jì)算機(jī)發(fā)送CTS信號(hào),指明準(zhǔn)備就緒。該屬

      性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只讀的。
      語(yǔ)法
      object.DSRHolding
      object置換元表示一個(gè)對(duì)象表達(dá)式,其值為“應(yīng)用于”列表中的一個(gè)對(duì)象。
      DSRHolding屬性返回如下值:
      值描述
      True DSR(DataSetReady)線高
      False DSR(DataSetReady)線低
      說(shuō)明
      當(dāng)DSR線高(DSRHolding = False)并超時(shí),MSComm控件設(shè)置CommEvent
      屬性為comEventDTSTO(Data Set Ready Timeout)并激活OnComm事件。
      在為DTE(Data Terminal Equipment)計(jì)算機(jī)編寫(xiě)DSR/DTR(Data Set Ready /
      Data Terminal Equipment )握手例程時(shí),該屬性很有用。
      數(shù)據(jù)類型
      Boolean

      DRTEnable 屬性
      確定在通信過(guò)程中是否使用DTR(Data Terminal Ready)線。通常,DTR 信
      號(hào)是計(jì)算機(jī)發(fā)送給調(diào)制解調(diào)器的,指明計(jì)算機(jī)可以接收輸入數(shù)據(jù)了。
      語(yǔ)法
      object.DTREnable [=value]
      DTREnable屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,是否使用DTR線,如“設(shè)置”中所示
      設(shè)置
      value 值的設(shè)置如下:
      設(shè)置描述
      True 使用DTR線
      False (缺省)禁止DTR線
      說(shuō)明
      當(dāng)DTREnable屬性設(shè)置為T(mén)rue時(shí),如果端口打開(kāi),DTR線被設(shè)置為高(on),
      如果端口關(guān)閉,DTR線被設(shè)置為低(off)。
      注意:在大多數(shù)情況下,將DTR線設(shè)置為低將掛起。
      數(shù)據(jù)類型
      Boolean

      EOFEnable屬性
      EOFEnable 屬性確定MSComm 控件是否檢查輸入中的EOF 字符。如果發(fā)現(xiàn)了EOF 字符,停止輸入,將把

      CommenEvent 屬性置為comEvEOF,激活OnComm事件。
      語(yǔ)法
      object.EOFEnable [=value]
      EOFEnable屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,發(fā)現(xiàn)了EOF 字符時(shí)是否觸發(fā)OnComm 事件,如“設(shè)置”所示
      設(shè)置
      value 設(shè)置如下:
      設(shè)置描述
      True 當(dāng)發(fā)現(xiàn)EOF字符時(shí)就觸發(fā)On Comm事件
      False (缺省值)當(dāng)發(fā)現(xiàn)EOF字符時(shí)不觸發(fā)On Comm事件
      說(shuō)明
      當(dāng)EOFEnable屬性設(shè)置為False時(shí),控件將不在輸入流中掃描EOF字符。
      Error 消息(MSComm控件)
      下表列出了MSComm控件可捕獲的錯(cuò)誤消息:
      常量值描述
      ComInvalidPropertyVal
      ue
      380 無(wú)效的屬性值
      ComSetNotSupported 383 屬性只讀
      ComGetNotSupported 394 屬性只讀
      ComPortOpen 8000 端口打開(kāi)時(shí)該存在無(wú)效
      8001 超時(shí)設(shè)置必須比0 值大
      ComPortInvalid 8002 無(wú)效的端口號(hào)
      8003 屬性只在運(yùn)行時(shí)有效
      8004 屬性在運(yùn)行時(shí)是只讀的
      ComPortAleadyOpen 8005 端口已經(jīng)打開(kāi)
      8006 設(shè)備標(biāo)識(shí)符無(wú)效或不支持
      8007 不支持設(shè)備的波特率
      8008 的字節(jié)大小無(wú)效
      8009 缺省參數(shù)錯(cuò)誤
      8010 硬件不可用(被其他設(shè)備鎖?。?BR>8011 函數(shù)不能分配隊(duì)列
      ComNoOpen 8012 設(shè)備沒(méi)有打開(kāi)
      8013 設(shè)備已經(jīng)打開(kāi)
      8014 不能使用通信通知
      續(xù)表
      ComSetCommStateFaile
      d
      8015 不能設(shè)置通信狀態(tài)
      8016 不能設(shè)置通信事件屏蔽
      ComPortNotOpen 8018 該存在只在端口打開(kāi)是有效
      8019 設(shè)備忙
      ComReadError 8020 通信設(shè)備讀錯(cuò)誤
      ComDCBError 8021 檢取端口設(shè)備控制塊時(shí)出現(xiàn)內(nèi)部錯(cuò)誤
      Handshaking屬性
      設(shè)置或返回硬件握手協(xié)議。
      語(yǔ)法
      object.Handshaking [=value]
      Handshaking屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,握手協(xié)議,如“設(shè)置”中所示
      設(shè)置
      value 值的設(shè)置如下:
      設(shè)置值描述
      comNone 0 (缺?。](méi)有握手協(xié)議
      ComXOnXOff 1 XON/XOFF握手協(xié)議
      ComRTS 2 RTS/CTS(Request To Send / Clear To Send)握手協(xié)議
      ComRTSXOnXOff 3 RTS和XON/XOFF協(xié)議
      說(shuō)明
      握手協(xié)議是指從硬件端口向接收緩沖區(qū)傳輸數(shù)據(jù)時(shí)使用的內(nèi)部通信協(xié)議。
      當(dāng)一個(gè)字符數(shù)據(jù)到達(dá)串口時(shí),通信設(shè)備必須將其移動(dòng)到接收緩沖區(qū),使應(yīng)用程序可以讀取數(shù)據(jù)。如果沒(méi)有接收

      緩沖區(qū)而應(yīng)用程序希望直接從硬件讀取每個(gè)字符,你將可能丟失數(shù)據(jù),因?yàn)閿?shù)據(jù)到達(dá)的速度很快。
      握手協(xié)議保證緩沖區(qū)溢出時(shí)不丟失沒(méi)有數(shù)據(jù),到達(dá)串口的數(shù)據(jù)將被通信設(shè)備很快地移動(dòng)到接收緩沖區(qū)中。
      數(shù)據(jù)類型
      Integer

      InBufferCount屬性
      返回在接收緩沖區(qū)中等待的字符數(shù)。該屬性在設(shè)計(jì)時(shí)不可用。
      語(yǔ)法
      object.InBufferCount [=value]
      InBufferCount屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,在接收緩沖區(qū)中等待的字符數(shù)
      說(shuō)明
      InBufferCount 是指已被接收到接收緩沖區(qū)、等待應(yīng)用程序讀取的字符數(shù)。
      將InBufferCount設(shè)置置為0將清除接收緩沖區(qū)。
      注意:不要將該屬性與InBufferize 屬性混淆。InBufferSize 屬性
      反映的是接收緩沖區(qū)總的大小。
      數(shù)據(jù)類型
      Integer

      InBufferSize屬性
      設(shè)置或返回接收緩沖區(qū)大小的字節(jié)數(shù)。
      語(yǔ)法
      object.InBufferSize[=value]
      InBufferSize屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,接收緩沖區(qū)大小的字節(jié)數(shù)
      說(shuō)明
      InBufferSize 是指整個(gè)接收緩沖區(qū)的大小。缺省是1024 個(gè)字節(jié)。不要將該屬性與反映等待應(yīng)用程序讀取字符

      數(shù)的InBufferCount屬性混淆。
      注意:對(duì)接收緩沖區(qū)設(shè)置的越大,應(yīng)用程序可以使用的內(nèi)存就越少。
      然而,如果接收緩沖區(qū)太小,緩沖區(qū)將會(huì)溢出,除非使用握手協(xié)議。通常,將緩沖區(qū)設(shè)置為1024。如果發(fā)生了

      溢出,就增大該緩沖區(qū),以滿足應(yīng)用程序傳輸速率。
      數(shù)據(jù)類型
      Integer

      Input屬性
      返回或刪除接收緩沖區(qū)中的數(shù)據(jù)流。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是
      只讀的。
      語(yǔ)法
      object.Input
      Input屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      說(shuō)明
      InputLen屬性確定了Input屬性讀入的字符數(shù)。將InputLen 屬性設(shè)置為0將導(dǎo)致Input屬性讀入整個(gè)接收緩沖區(qū)

      的內(nèi)容。
      InputMode 屬性確定了Input 屬性檢取數(shù)據(jù)的類型。如果InputMode 設(shè)置為comInputModeText,則Input屬性將

      返回Variant類型的文本數(shù)據(jù)。如果InputMode屬性設(shè)置為comInputModeBinary,則Input 屬性返回一個(gè)Variant

      類型的二進(jìn)制
      字節(jié)矩陣。
      數(shù)據(jù)類型
      Variant

      示例
      下面的例子演示了如何從接收緩沖區(qū)中檢取數(shù)據(jù)。
      Private Sub Command1_Click()
      Dim InString as String
       Retrieve all available data.
      MSComm1.InputLen = 0
       Check for data.
      If MSComm1.InBufferCount Then
       Read data.
      InString = MSComm1.Input
      End If
      End Sub

      InputLen屬性
      設(shè)置和返回Input屬性從接收緩沖區(qū)中讀取的字符數(shù)。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.InputLen [=value]
      InputLen屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象value 一個(gè)整數(shù)表達(dá)式,Input 屬性從接收緩沖

      區(qū)中讀取的字符數(shù)
      說(shuō)明
      InputLen 屬性的缺省值是0。將InputLen 屬性設(shè)置為0 將導(dǎo)致Input 屬性讀入整個(gè)接收緩沖區(qū)的內(nèi)容。
      如果接收緩沖區(qū)中沒(méi)有可讀的字符,就返回空字符串。在使用Input 之前,用戶可以檢查InBufferCount的值,

      以便確定是否讀取了所要求的字符數(shù)。
      從輸出格式固定的計(jì)算機(jī)讀取定長(zhǎng)數(shù)據(jù)塊時(shí)該屬性很有用。
      數(shù)據(jù)類型
      Integer

      示例
      下面的例子演示了如何檢取10個(gè)字符的數(shù)據(jù)。
      Private Command1_Click()
      Dim CommData as String
       Specify a 10 character block of data.
      MSComm1.InputLen = 10
       Read data.
      CommData = MSComm1.Input
      End Sub

      InputMode屬性
      設(shè)置和返回Input屬性所檢取數(shù)據(jù)的類型。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.InputMode [=value]
      InputMode屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)值或常量,輸入模式,如“設(shè)置”中所示
      設(shè)置
      value 值的設(shè)置如下:
      常量值描述
      comInputModeText 0 (缺?。㊣nput 屬性檢取的數(shù)據(jù)是文本
      comInputModeBinary 1 Input屬性檢取的數(shù)據(jù)是二進(jìn)制數(shù)據(jù)
      說(shuō)明
      InputMode 屬性確定了如果通過(guò)Input 屬性檢取數(shù)據(jù)。數(shù)據(jù)將被看作字符串或一個(gè)二進(jìn)制字節(jié)矩陣。
      對(duì)于使用ANSI 字符集的數(shù)據(jù)應(yīng)使用comInputModeText 類型。所有其他數(shù)據(jù)如內(nèi)嵌控制字符、Null等都使用

      comInputModeBinary類型。
      示例
      下面的例子從通信端口中讀取了10字節(jié)的二進(jìn)制數(shù)據(jù)并分配給一個(gè)矩陣。
      Private Sub Command1_Click()
      Dim Buffer as Variant
      Dim Arr() as Byte
       Set and open port
      mPort = 1
      MSComm1.PortOpen = True
       Set InputMode to read binary data
      MSComm1.InputMode = comInputModeBinary
       Wait until 10 bytes are in the input buffer
      Do Until MSComm1.InBufferCount  10
      DoEvents
      Loop
       Store binary data in buffer
      Buffer = MSComm1.Input
       Assign to byte array for processing
      Arr = Buffer
      End Sub
      NullDiscard屬性
      確定是否將null字符傳輸給接收緩沖區(qū)。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.NullDiscard [=value]
      NullDiscard屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,確定是否將端口來(lái)的Null 字符發(fā)送給接收緩沖區(qū),如“設(shè)置”中所示
      設(shè)置
      value 值的設(shè)置如下:
      設(shè)置描述
      True 不把端口來(lái)的Null 字符傳輸給接收緩沖區(qū)
      False (缺省)將端口來(lái)的Null字符傳輸給接收緩沖區(qū)
      說(shuō)明
      Null字符定義為ASCII字符0──Chr$(0)。
      數(shù)據(jù)類型
      Boolean

      OnComm事件
      當(dāng)CommEvent 屬性值改變時(shí)產(chǎn)生該事件,表明產(chǎn)生了通信事件或通信錯(cuò)
      誤。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      Private Sub object_OnComm()
      OnComm事件的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      說(shuō)明
      CommEvent 屬性捕獲了OnComm 產(chǎn)生事件或錯(cuò)誤的代碼。注意,將
      RThreshold 或Sthreshold 屬性置為0 將不捕獲comEvReceive 和comEvSend 事件。
      示例
      下面的例子演示了如何處理通信錯(cuò)誤和事件。你可以在Case 語(yǔ)句的后面插入代碼處理相應(yīng)的錯(cuò)誤或事件。
      Private Sub MSComm_OnComm ()
      Select Case mEvent
       Handle each event or error by placing
       code below each case statement
       Errors
      Case comEventBreak  A Break was received.
      Case comEventCDTO  CD (RLSD) Timeout.
      Case comEventCTSTO  CTS Timeout.
      Case comEventDSRTO  DSR Timeout.
      Case comEventFrame  Framing Error
      Case comEventOverrun  Data Lost.
      Case comEventRxOver  Receive buffer overflow.
      Case comEventRxParity  Parity Error.
      Case comEventTxFull  Transmit buffer full.
      Case comEventDCB  Unexpected error retrieving DCB]
       Events
      Case comEvCD  Change in the CD line.
      Case comEvCTS  Change in the CTS line.
      Case comEvDSR  Change in the DSR line.
      Case comEvRing  Change in the Ring Indicator.
      Case comEvReceive  Received RThreshold # of
       chars.
      Case comEvSend  There are SThreshold number of
       characters in the transmit
       buffer.
      Case comEvEof  An EOF charater was found in
       the input stream
      End Select
      End Sub
      OutBufferCount 屬性
      返回在發(fā)送緩沖區(qū)中等待的字符數(shù)。你可以使用該屬性清除發(fā)送緩沖區(qū)。
      該屬性在設(shè)計(jì)時(shí)不可用。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.OutBufferCount [=value]
      OutBufferCount屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,發(fā)送緩沖區(qū)中等待的字符數(shù)
      說(shuō)明
      將OutBufferCount屬性置為0將清除發(fā)送緩沖區(qū)。
      注意:不要將OutBufferCount屬性與OutBufferSize屬性混淆起來(lái)。
      數(shù)據(jù)類型
      Integer

      OutBufferSize 屬性
      返回或設(shè)置發(fā)送緩沖區(qū)的字節(jié)大小。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.OutBufferSize [=value]
      OutBufferSize屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,發(fā)送緩沖區(qū)的字節(jié)大小
      說(shuō)明
      OutBufferSize 指整個(gè)發(fā)送緩沖區(qū)的大小。缺省值是512 字節(jié)。不要將該屬性與OutBufferCount 屬性混淆起來(lái)

      OutBufferCount 屬性反映的是發(fā)送緩沖區(qū)當(dāng)前等待的字節(jié)數(shù)。
      注意:對(duì)發(fā)送緩沖區(qū)設(shè)置的越大,應(yīng)用程序可以使用的內(nèi)存就越少。
      然而,如果你的發(fā)送緩沖區(qū)太小,緩沖區(qū)將會(huì)溢出,除非使用握手協(xié)議。
      通常,將緩沖區(qū)設(shè)置為512 字節(jié)。如果發(fā)生了溢出,就增大該緩沖區(qū),
      以滿足你的應(yīng)用程序傳輸速率。
      數(shù)據(jù)類型
      Integer

      Output屬性
      將數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū)。該屬性在設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)是只寫(xiě)的。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.Output [=value]
      Output屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)字符串,是寫(xiě)入發(fā)送緩沖區(qū)中的字符
      說(shuō)明
      Output 屬性可以發(fā)送文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。要使用Output 屬性發(fā)送文本
      數(shù)據(jù),你必須指明包含字符串的一個(gè)Variant 變量。要發(fā)送二進(jìn)制數(shù)據(jù),必須將
      包含字節(jié)矩陣的Variant變量傳遞給Output屬性。
      通常,如果你給應(yīng)用程序發(fā)送ANSI 字符串,可以文本方式發(fā)送。如果數(shù)
      據(jù)包含了內(nèi)嵌控制字符、Null字符等,必須將其作為二進(jìn)制傳遞過(guò)去。
      數(shù)據(jù)類型
      Variant

      示例
      下面的例子演示了如何將用戶輸入的字符發(fā)送給串口。
      Private Sub Form_KeyPress (KeyAscii As Integer)
      Dim Buffer as Variant
       Set and open port
      mPort = 1
      MSComm1.PortOpen = True
      Buffer = Chr$(KeyAscii)
      MSComm1.Output = Buffer
      End Sub

      ParityReplace 屬性
      設(shè)置或返回一個(gè)字符,該字符在方式了奇偶校驗(yàn)錯(cuò)誤時(shí)將替換數(shù)據(jù)流中的無(wú)效字符。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.ParityReplace [=value]
      ParityReplace屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 字符串表達(dá)式,表示替換字符,如“說(shuō)明”中所示
      說(shuō)明
      parity bit 是一個(gè)比特位,與的數(shù)據(jù)比特一起傳送,可以提供一定的錯(cuò)誤檢測(cè)功能。
      當(dāng)你使用奇偶校驗(yàn)位時(shí),MSComm 控件將數(shù)據(jù)中所有設(shè)置(即“1”)的比特位相加,來(lái)檢測(cè)結(jié)果的奇偶性(根

      據(jù)端口的奇偶設(shè)置)。
      缺省地,控件使用問(wèn)號(hào)(“?”)替換無(wú)效字符。將ParityReplace 屬性設(shè)置為空字符串("")將在奇偶校驗(yàn)

      錯(cuò)誤時(shí)不替換無(wú)效字符,但仍將CommEvent屬性設(shè)置為commEventRXParity并觸發(fā)OnComm事件。
      ParityReplace 字符是面向字節(jié)的操作,必須是單字節(jié)字符。你可以任意的0到255的ANSI字符作為替換字

      符。
      數(shù)據(jù)類型
      String

      PortOpen屬性
      設(shè)置或返回通信端口的狀態(tài)(打開(kāi)或關(guān)閉)。在設(shè)計(jì)時(shí)該屬性不可用。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.PortOpen [=value]
      PortOpen屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,通信端口的狀態(tài)
      說(shuō)明
      將PortOpen 屬性設(shè)置為T(mén)rue 將打開(kāi)端口。設(shè)置為False 將關(guān)閉端口并清除接收和發(fā)送緩沖區(qū)。當(dāng)你的應(yīng)用程

      序終止時(shí),MSComm控件將自動(dòng)關(guān)閉串口。
      在打開(kāi)端口前,確定CommPort 屬性設(shè)置為正確的端口號(hào)。如果CommPort屬性設(shè)置為無(wú)效的端口號(hào),在你試圖打

      開(kāi)端口時(shí),MSComm 控件將產(chǎn)生error
      68(Device unavailable)錯(cuò)誤。
      而且,你的串口設(shè)備必須支持Settings 屬性中的設(shè)置。如果你的硬件設(shè)備不支持Settings屬性中的一些設(shè)置,

      則你的硬件工作或許不正確。
      如果端口在打開(kāi)之前將DTREnable 或RTSEnable 屬性設(shè)置為T(mén)rue,則當(dāng)端口關(guān)閉時(shí)這些屬性就自動(dòng)設(shè)置為False

      。另外,DTR 和RTS 線保持它們?cè)瓉?lái)的狀態(tài)。
      數(shù)據(jù)類型
      Boolean

      示例
      下面的例子打開(kāi)端口1,波特率是9600,沒(méi)有奇偶校驗(yàn),8 個(gè)數(shù)據(jù)位,一個(gè)停止位。
      MSComm1.Settings = "9600 n 81"
      mPort = 1
      MSComm1.PortOpen =True

      RThreshold屬性
      設(shè)置或返回在MSComm 控件將CommEvent 屬性設(shè)置為comEvReceive 并在產(chǎn)生OnComm事件之前所接收的字符數(shù)。
      應(yīng)用于MSComm控件。
      語(yǔ)法
      object.Rthreshold [=value]
      RThreshold屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,產(chǎn)生OnComm事件之前接收的字符數(shù)
      說(shuō)明
      將RThreshold屬性設(shè)置為0(缺?。⒃诮邮兆址麜r(shí)不產(chǎn)生OnComm事件。
      例如,將RThreshold 屬性設(shè)置為1 將導(dǎo)致MSComm 控件在每個(gè)字符放入緩沖區(qū)時(shí)就觸發(fā)OnComm事件。
      數(shù)據(jù)類型
      Integer

      RTSEnable 屬性
      確定是否使用RTS(Request To Send)線。通常RTS信號(hào)是計(jì)算機(jī)發(fā)送該連接的調(diào)制解調(diào)器,請(qǐng)求準(zhǔn)許發(fā)送數(shù)據(jù)

      。應(yīng)用于MSComm控件。
      語(yǔ)法
      object. RTSEnable [=value]
      RTSEnable屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)布爾表達(dá)式,是否使用RTS線,如“設(shè)置”中所示
      設(shè)置
      value 值的設(shè)置如下:
      設(shè)置描述
      True 使用RTS線
      False (缺省)不使用RTS線
      說(shuō)明
      當(dāng)RTSEnable 屬性設(shè)置為T(mén)rue 時(shí),打開(kāi)端口將把RTS 線置為高,關(guān)閉端口將把RTS線置為低。
      在RTS/CTS 握手協(xié)議中使用RTS 線。如果你需要確定RTS 線的狀態(tài),RTSEnable屬性允許你手工檢測(cè)該線。
      想了解有關(guān)握手協(xié)議中的更多信息,請(qǐng)參閱HardShaking屬性。
      數(shù)據(jù)類型
      Boolean

      Settings屬性
      設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位參數(shù)。
      應(yīng)用于MSComm控件。
      語(yǔ)法
      object.Settings [=value]
      Settings 屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)字符串表達(dá)式,代表通信端口設(shè)置,如下所示
      說(shuō)明
      當(dāng)端口打開(kāi)時(shí)value 值設(shè)置不正確,MSComm 控件就產(chǎn)生error 380(Invalidproperty value)錯(cuò)誤。
      value 由4部分組成,格式如下:
      “BBBB P D S”
      BBBB 是波特率,P 是奇偶校驗(yàn),D 是數(shù)據(jù)位,S 是停止位。Value 的缺省值如下:
      " 9600 N 8 1"
      下表列出了有效的波特率:
      設(shè)置
      110
      300
      600
      1200
      2400
      9600(缺?。?BR>14400
      19200
      28800
      38400(保留)
      56000(保留)
      128000(保留)
      256000(保留)
      下表列出了有效的奇偶校驗(yàn)值:
      設(shè)置描述
      E 偶校驗(yàn)
      M 屏蔽
      N (缺省)None
      O 奇校驗(yàn)
      S 空格
      下表列出了有效的數(shù)據(jù)位:
      設(shè)置
      4
      5
      6
      7
      8(缺?。?BR>下表列出了有效的停止位:
      設(shè)置
      1(缺?。?BR>1.5
      2
      數(shù)據(jù)類型
      String

      示例
      下面的例子將端口設(shè)置為波特率9600,沒(méi)有奇偶校驗(yàn),8 個(gè)數(shù)據(jù)位,一個(gè)停止位。
      MSComm1.Settings = "9600 N 8 1"

      SThreshold屬性
      設(shè)置或返回在MSComm控件將CommEvent 屬性設(shè)置為comEvSend 并產(chǎn)生OnComm事件之前所發(fā)送緩沖區(qū)中允許的zui

      少字符數(shù)。
      應(yīng)用于
      MSComm控件。
      語(yǔ)法
      object.Sthreshold [=value]
      SThreshold屬性的語(yǔ)法有如下幾個(gè)部分:
      部分描述
      object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象
      value 一個(gè)整數(shù)表達(dá)式,產(chǎn)生OnComm 事件之前發(fā)送緩沖區(qū)中的zui少字符數(shù)
      說(shuō)明
      將SThreshold屬性設(shè)置為0(缺?。⒃诎l(fā)送字符時(shí)不產(chǎn)生OnComm事件。
      例如,將SThreshold屬性設(shè)置為1將導(dǎo)致發(fā)送緩沖區(qū)*變空。
      如果發(fā)送緩沖區(qū)中的字符比value 值小,則將CommEvent 屬性設(shè)置為
      comEvSend,并產(chǎn)生OnComm 事件。comEvSend 事件只產(chǎn)生一次,在字符數(shù)低于SThreshold 時(shí)。例如,如果

      SThreshold 等于5,當(dāng)字符數(shù)從5 降低到4 時(shí)產(chǎn)生一次comEvSend事件。如果輸出隊(duì)列中的字符數(shù)總不多于

      SThreshold屬性值,
      則產(chǎn)生該事件。
      數(shù)據(jù)類型
      Integer

      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
      智能制造網(wǎng)APP

      功能豐富 實(shí)時(shí)交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號(hào)

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號(hào):gkzhan

      打開(kāi)抖音 搜索頁(yè)掃一掃

      視頻號(hào)

      智能制造網(wǎng)

      公眾號(hào):智能制造網(wǎng)

      打開(kāi)微信掃碼關(guān)注視頻號(hào)

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開(kāi)快手 掃一掃關(guān)注
      意見(jiàn)反饋
      關(guān)閉
      企業(yè)未開(kāi)通此功能
      詳詢客服 : 0571-87858618