大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>串口地址轉換的純軟件實現

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

串口地址轉換的純軟件實現

2012年07月26日 09:22:18人氣:986來源:武漢波士卡

                     串口地址轉換的純軟件實現

                                武漢波仕電子有限公司 __向媛______

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

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

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

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

    界面右下角有“字符格式”和“十六進制”的選項,默認為“字符格式”。當選擇“十六進制”時,本軟件可以實現16進制數據的格式轉換,特別適合MODBUS等工控軟件。

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

通信規則:上位機串口發送數據=地址碼+下位機串口接收數據

    或者:下位機串口發送數據=上位機串口接收數據—地址碼

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

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

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

    本軟件用Visual Basic軟件編寫,串口用MSCOMM控件實現。核心功能就是將Mscomm1接收的數據立即送到Mscomm2的發送區。難點在于對16進制數據的轉換處理。

Mscomm的核心代碼如下:

Private Sub MSComm1_OnComm()

    Dim BytReceived() As Byte

    Dim strBuff As String

    Dim i As Integer

    Select Case mEvent    '事件發生

            Case 2

           MSComm1.InputLen = 0     '讀入緩沖區全部內容

            strBuff = MSComm1.Input  '讀入到緩沖區

            If MSComm1.InputMode = 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,zui后補空格

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

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

  End If

            Next

             Text1 = strData

              Call hexSend2          '  '發送一個16進制

              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) '發送計數

           End If

       End Select

uerror3:   

  End Sub

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

    詳細參數請到查看。咨詢:    向 咨詢訂購:1256985485   :bosicomcn@

 

 

全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 福州市| 老河口市| 江山市| 南昌市| 崇州市| 香港 | 定结县| 申扎县| 庆云县| 崇文区| 耒阳市| 武义县| 泌阳县| 日土县| 勐海县| 阜城县| 玉环县| 沛县| 泌阳县| 蒙阴县| 龙口市| 巫山县| 大足县| 白朗县| 洱源县| 综艺| 句容市| 黄冈市| 黎平县| 定边县| 彭阳县| 麦盖提县| 高清| 突泉县| 锡林浩特市| 汝南县| 郎溪县| 莱州市| 内丘县| 通道| 府谷县|