999国内精品永久免费视频,色偷偷9999www,亚洲国产成人爱av在线播放,6080亚洲人久久精品,欧美超高清xxxhd

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺
串口地址轉(zhuǎn)換的純軟件實現(xiàn)
武漢波仕卡科技有限公司
收藏本文     查看收藏

                           

 

                          串口地址轉(zhuǎn)換的純軟件實現(xiàn)

 

                                      武漢波仕電子有限公司 --代永鋒

    串口多機(jī)通信,就是RS-232/RS-485多機(jī)通信,要求通信的下位機(jī)必須帶地址。通信時由上位機(jī)先發(fā)送某個下位機(jī)的地址,位于同一個網(wǎng)絡(luò)中的所有下位機(jī)都同時讀取這個地址的值,然后與自己的地址進(jìn)行比較,如果地址相同則接收后面的數(shù)據(jù),如果地址不同則不讀取后面的數(shù)據(jù)。某些情況下,下位機(jī)也可以主動向上位機(jī)發(fā)送數(shù)據(jù),但是必須按照預(yù)先設(shè)置的格式在數(shù)據(jù)前面加上下位機(jī)的地址,這樣上位機(jī)才可以知道是哪一個下位機(jī)發(fā)來的數(shù)據(jù)?墒窃谠S多情況下,下位機(jī)沒有設(shè)置地址的功能,或者地址的格式不同,這就必須進(jìn)行串口地址的轉(zhuǎn)換。本文介紹了如何用純軟件實現(xiàn)串口地址的轉(zhuǎn)換。

 

 如果上位機(jī)與多個下位機(jī)之間需要通信,但是下位機(jī)卻不帶地址。純軟件實現(xiàn)串口地址的轉(zhuǎn)換的原理就是利用計算機(jī)的兩個串口,稱為上位機(jī)串口和下位機(jī)串口,利用純軟件加上人為設(shè)置的地址。將上位機(jī)串口接收到的數(shù)據(jù)去掉地址后從下位機(jī)串口發(fā)送出去。將下位機(jī)串口接收到的數(shù)據(jù)加上地址后從上位機(jī)串口發(fā)送出去。

    地址轉(zhuǎn)換軟件使用非常方便。首先根據(jù)用戶通信程序的波特率進(jìn)行波特率設(shè)置,特點是可以獨立選擇上位機(jī)串口(串口A)和下位機(jī)串口(串口B)不同的的波特率等。

    設(shè)置好串口格式后,按“打開串口”。注意A和B兩個串口都要打開。成功打開串口后會在“打開串口”按鈕的旁邊顯示紅色的圓圈!按蜷_串口”按鈕下面為“清空計數(shù)”按鈕和本串口接收和發(fā)送數(shù)據(jù)的個數(shù)。正常情況下,由于串口A接收到的數(shù)據(jù)減去地址碼后立即發(fā)送給了串口B,所以串口A接收的計數(shù)比串口B發(fā)送的計數(shù)時多地址碼的位數(shù)。同理串口B接收的計數(shù)比串口A發(fā)送的計數(shù)時少地址碼的位數(shù)。

    界面右下角有“字符格式”和“十六進(jìn)制”的選項,默認(rèn)為“字符格式”。當(dāng)選擇“十六進(jìn)制”時,本軟件可以實現(xiàn)16進(jìn)制數(shù)據(jù)的格式轉(zhuǎn)換,特別適合MODBUS等工控軟件。

然后設(shè)置將要連接的下位機(jī)的地址碼,包括地址碼前綴、地址值、地址碼后綴,這3部分合起來共同稱為地址碼。軟件界面的左側(cè)為 “上位機(jī)串口”;右側(cè)“下位機(jī)串口”。

通信規(guī)則:上位機(jī)串口發(fā)送數(shù)據(jù)=地址碼+下位機(jī)串口接收數(shù)據(jù)

    或者:下位機(jī)串口發(fā)送數(shù)據(jù)=上位機(jī)串口接收數(shù)據(jù)—地址碼

比如我們可以在軟件界面中鍵入地址碼前綴為###后綴為:(冒號),那么如果上位機(jī)串口收到 ###3:1234567,則地址為3的產(chǎn)品的下位機(jī)串口發(fā)送出 1234567(地址不是3的軟件的下位機(jī)串口不發(fā)送任何數(shù)據(jù)),就是去幀頭。地址碼就是在地址值的前面加3個井號(###)和后面加一個冒號(:)的英文字符。如果地址為3的產(chǎn)品的下位機(jī)串口收到abcdefg ,則上位機(jī)串口發(fā)送出###3:abcdefg  就是加幀頭。

純軟件實現(xiàn)串口地址轉(zhuǎn)換的最大優(yōu)勢就在于通用性。由于不同廠家對地址碼的定義不一樣,軟件的實現(xiàn)可以非常方便地設(shè)置各種不同的地址編碼方案。比如有以$開頭,以!開頭的地址編碼,只要在本軟件界面的地址碼前綴填寫$或者!,后綴空著即可。

    在同一個RS-232/RS-485總線中可以同時接入的地址轉(zhuǎn)換軟件的數(shù)量理論上無限。甚至可以將不同地址編碼方案的軟件一起使用。使用時將這地址分別設(shè)置為不同的值即可。將所有地址轉(zhuǎn)換軟件的上位機(jī)串口共同接入到一個總線并接到上位機(jī)的RS-232或RS-485口。 計算機(jī)必須至少有兩個RS-232或者RS-485串口,擴(kuò)展串口可以采用USB-串口轉(zhuǎn)換器等。這樣就實現(xiàn)了兩個串口之間的地址轉(zhuǎn)換。

    本軟件用Visual Basic軟件編寫,串口用MSCOMM控件實現(xiàn)。核心功能就是將Mscomm1接收的數(shù)據(jù)立即送到Mscomm2的發(fā)送區(qū)。難點在于對16進(jìn)制數(shù)據(jù)的轉(zhuǎn)換處理。

Mscomm的核心代碼如下:

Private Sub MSComm1_OnComm()

    Dim BytReceived() As Byte

    Dim strBuff As String

    Dim i As Integer

    Select Case MSComm1.CommEvent    '事件發(fā)生

            Case 2

           MSComm1.InputLen = 0     '讀入緩沖區(qū)全部內(nèi)容

            strBuff = MSComm1.Input  '讀入到緩沖區(qū)

            If MSComm1.InputMode = comInputModeBinary Then

            BytReceived() = strBuff  '如果是二進(jìn)制接收模式則進(jìn)行數(shù)據(jù)處理,否則直接顯示字符串

            For i = 0 To UBound(BytReceived)

             If Len(Hex(BytReceived(i))) = 1 Then

       strData = strData & "0" & Hex(BytReceived(i)) & " " 

'如果只有一個字符,則前補(bǔ)0,如F顯示0F,最后補(bǔ)空格

                Else                      '方便顯示觀察如: 00 0F FE

                    strData = AdressCode+strData & Hex(BytReceived(i)) & " "   

  End If

            Next

             Text1 = strData

              Call hexSend2          '  '發(fā)送一個16進(jìn)制

              strData = ""

        Else

            Text1 = Text1 & strBuff

           If MSComm2.PortOpen = False Then

           MsgBox "請打開串口B"

            End If

            On Error GoTo uerror3

            MSComm2.Output = strBuff

            Label14.Caption = Label14.Caption + Len(strBuff) '發(fā)送計數(shù)

           End If

       End Select

uerror3:   

  End Sub

    本文介紹的串口地址轉(zhuǎn)換的純軟件方法和程序,對不帶地址的串口多機(jī)通信具有一定的使用價值。本軟件不僅僅實現(xiàn)了地址的轉(zhuǎn)換,還同時實現(xiàn)了波特率、校驗位、數(shù)據(jù)位和停止位的轉(zhuǎn)換。文中介紹的軟件可以從波仕電子的網(wǎng)站下載。純軟件地址轉(zhuǎn)換的不足之處在于占用了一臺計算機(jī),并且必須配有兩個專門用于地址轉(zhuǎn)換的串口。如果要實現(xiàn)方便簡單的地址轉(zhuǎn)換,還是要用具有雙串口的單片機(jī)或者FPGA。通過對單片機(jī)或者FPGA的兩個串口進(jìn)行地址等格式的設(shè)置,而兩個串口在內(nèi)部進(jìn)行數(shù)據(jù)地址幀的加減。這種產(chǎn)品就是硬件串口地址轉(zhuǎn)換器,我們將以另外文章《串口地址轉(zhuǎn)換的純硬件實現(xiàn)》予以介紹。


 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

公司名稱: 武漢波仕卡科技有限公司
聯(lián) 系 人: 向麗
電  話: 027-87561485
傳  真: 027-87561485 QQ:1823063487
地  址: 武漢市洪山區(qū)關(guān)東科技園(珞瑜東路關(guān)山口)
郵  編: 430074
主  頁:
 
該廠商相關(guān)技術(shù)文摘:
USB串口轉(zhuǎn)換器跨入USB3.0時代
使用RS-232隔離器保證232串口通信的可靠性
實現(xiàn)CAN的高速超遠(yuǎn)程傳輸
RS-232的高電壓隔離
CAN集線器最新發(fā)展
RS485中繼器的最新進(jìn)展
RS-485遠(yuǎn)程測控系統(tǒng)
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費(fèi)注冊為中華工控網(wǎng)會員
請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved