在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于RS-485變頻器與PC機(jī)串行通信的實(shí)現(xiàn)

            基于RS-485變頻器與PC機(jī)串行通信的實(shí)現(xiàn)

            作者: 時(shí)間:2016-12-12 來源:網(wǎng)絡(luò) 收藏
            1引言

              目前,在我國現(xiàn)場控制總線中,RS-485使用最為普遍。RS-485總線的共模輸出電壓在-7V至+12V之間,具有抑制共模干擾的能力,數(shù)據(jù)傳輸速率最大為10Mbit/s,當(dāng)波特率為1200bps時(shí)最大的傳輸距離理論上可達(dá)15千米。RS-485網(wǎng)絡(luò)所具有的設(shè)備簡單、容易實(shí)現(xiàn)、傳輸距離遠(yuǎn)、維護(hù)方便等優(yōu)點(diǎn)而被許多變頻器廠家所采用。文章分析了工業(yè)環(huán)境中串行通信選擇RS-485的原因,論述了基于RS-485三墾變頻器與PC機(jī)串行通信的硬件特性,通信協(xié)議及軟件實(shí)現(xiàn),實(shí)驗(yàn)表明該通信軟件穩(wěn)定可靠,能直觀的觀看變頻器的實(shí)際運(yùn)行狀態(tài),并能比較方便的進(jìn)行多組參數(shù)的設(shè)定和改寫。通過此軟件,極大的方便了工程師和客戶對(duì)變頻器的操控和掌握。

            本文引用地址:http://www.biyoush.com/article/201612/329002.htm

            2RS-232與RS-485的比較

              常用的串行通信有兩種,一種為RS-232串行通信,一種為RS-485串行通信。由于串行通信使用方式簡便易用,工業(yè)控制領(lǐng)域大多都使用串行通信作為其數(shù)據(jù)交換的手段。但是工業(yè)設(shè)備的使用環(huán)境經(jīng)常比較惡劣,可能會(huì)存在噪聲或者電源諧波的干擾,RS-232在如此環(huán)境下抗干擾的能力遠(yuǎn)不及RS-485,除此之外,RS-232只能是一對(duì)一控制,而RS-485則可以實(shí)現(xiàn)一對(duì)多控制;RS-232一般是9針公頭,而RS-485則是兩根線就可以控制。因此工業(yè)環(huán)境下的串行通信大多都采取RS-485串行通信方式。

            3三墾變頻器與PC的串行通信

              3.1軟硬件環(huán)境

              硬件配置:PC(配備標(biāo)準(zhǔn)RS-232)一臺(tái)、RS-232/RS-485轉(zhuǎn)換卡一個(gè)、ISI通信卡一塊、Inverter三臺(tái)(三墾變頻器ES-0.4KW、SPF-11KW、IPF-90KW)。

              軟件包括:WindowsXP操作系統(tǒng)、MicrosoftVisualBasic6.0中文版、三墾變頻器通信協(xié)議指導(dǎo)手冊(cè)等。

              3.2通信協(xié)議

              三墾各個(gè)系列變頻器所提供的通信協(xié)議格式如下:

              1、指令格式:指令格式如圖1所示,各字段含義如表1。

              2、指令的詳細(xì)解釋

              圖1顯示了指令的格式,共25條指令,由操作碼(OP)決定,分別由A-Q及R、S、x、y、z、a、b、c組成。以指令C和N說明指令的詳細(xì)構(gòu)成,如表2。

              表1指令各字段含義

              3、變頻器所進(jìn)行的通信錯(cuò)誤處理

              變頻器如果從上位機(jī)接收到的指令中檢查出錯(cuò)誤,將進(jìn)行以下處理:

             ?、僭谄媾煎e(cuò)誤、校驗(yàn)和錯(cuò)誤或指令代碼未定義時(shí):

              回傳的錯(cuò)誤指令為指令代碼“?”。同時(shí),DT項(xiàng)回傳一個(gè)字節(jié)的通信錯(cuò)誤代碼。

             ?、谠贒T項(xiàng)的數(shù)據(jù)過長或不足,不能解釋數(shù)據(jù)內(nèi)容時(shí):

              如果接收指令的各個(gè)指令所定義的數(shù)據(jù)過長或不足、或者接收指令無法解釋時(shí),其錯(cuò)誤處理同①。

              ③超時(shí)處理:

              接收開始代碼后,如果不能在150ms以內(nèi)接收全部指令將進(jìn)行超時(shí)處理,強(qiáng)制完成接收狀態(tài)。這時(shí)變頻器將返回通信錯(cuò)誤代碼“d”。

             ?、芡ㄐ佩e(cuò)誤代碼分別為:“p”代表奇偶錯(cuò)誤;“s”代表檢驗(yàn)和錯(cuò)誤;“u”代表未定義操作代碼;“d”代表數(shù)據(jù)過長、數(shù)據(jù)不足或者數(shù)據(jù)無法解釋。

             ?、萜渌e(cuò)誤

              有關(guān)接收計(jì)算機(jī)指令的錯(cuò)誤,在上述情況以外,將進(jìn)行超時(shí)處理,對(duì)計(jì)算機(jī)而言為“無應(yīng)答”。

              4、變頻器和計(jì)算機(jī)的指令發(fā)送接收方法

              串行通信的基本程序是一臺(tái)計(jì)算機(jī)將指令發(fā)送給一臺(tái)變頻器,之后變頻器回傳應(yīng)答給計(jì)算機(jī)。所以,變頻器在接收到了計(jì)算機(jī)發(fā)送出的指令后必須回傳應(yīng)答。如果計(jì)算機(jī)在沒有得到應(yīng)答時(shí),仍連續(xù)發(fā)送多條指令則無法確保正常的工作。

              由于變頻器異?;蛘咄ㄐ啪€路異常,計(jì)算機(jī)可能無法接收到變頻器的應(yīng)答。為了避免由于等待變頻器的應(yīng)答而造成的通信程序鎖定,計(jì)算機(jī)將按照所設(shè)定的2秒或更長以上的時(shí)間來執(zhí)行接收超時(shí)處理。

              表2指令詳細(xì)內(nèi)容舉例

              3.3串行通信的程序?qū)崿F(xiàn)

              由于篇幅所限,這里僅介紹通信部分的實(shí)現(xiàn)代碼,主要包括:通信端口的定義,通信速率的設(shè)定,通信發(fā)送、通信接受、通信錯(cuò)誤處理以及退出等。

              主要代碼如下:

              …

              MSComm1.CommPort=1‘選擇1號(hào)通信端口

              MSComm1.Settings="4800,o,8,1"‘設(shè)定為4800bps,奇數(shù)、數(shù)據(jù)8位、停止1位

              MSComm1.RThreshold=1‘CommmEvert發(fā)生當(dāng)接收到一個(gè)字符時(shí)

              MSComm1.InputLen=0‘輸入緩沖數(shù)據(jù)清零?

              MSComm1.PortOpen=True‘通信端口打開?

              Timer1.Interval=1000‘接收超時(shí)時(shí)間(ms)1秒

              Tx=“*01C”?‘設(shè)定向變頻器傳送的數(shù)據(jù)

              TxLen=Len(Tx)‘得到傳送數(shù)據(jù)長度(校驗(yàn)和與停止位除外)

              Sum=0

              Fori=1ToTxLen

              Sum=Sum+Asc(Mid(Tx,i,1))

              Nexti

              Sum=((0-Sum)And127)Or64

              Tx=Tx+Chr(Sum)+vbCrLf‘在傳送代碼上添加校驗(yàn)和與停止位(CR+LF)

              Timer1.Enabled=True‘啟動(dòng)接收超時(shí)檢出計(jì)數(shù)器

              MSComm1.Output=Tx‘向變頻器傳送數(shù)據(jù)

              EndSub

              PrivateSubMSComm1_OnComm()‘[通過Comm事件接收數(shù)據(jù)]

              DimRxAsString,RxLenAsInteger,SumAsInteger

              DimMsgAsString

              IfMSComm1.CommEvent<>comEvReceiveThenExitSub‘確認(rèn)接收的數(shù)據(jù)是Comm事件

              Do

              Rx=Rx+MSComm1.Input‘接收變頻器的數(shù)據(jù)

              DoEvents

              LoopUntilRight(Rx,2)=(Chr(13)&Chr(10))‘找到停止位

              Timer1.Enabled=False‘取消超時(shí)定時(shí)器

              RxLen=Len(Rx)-2‘接收數(shù)據(jù)字長(停止位除外)

              Sum=0‘接收到的校驗(yàn)和的計(jì)算

              Fori=1ToRxLen-1

              Sum=Sum+Asc(Mid(Rx,i,1))

              Nexti

              Sum=((0-Sum)And127)Or64

              IfMid(Rx,RxLen,1)=Chr(Sum)Then‘校驗(yàn)和的檢查

              Msg=Left(Rx,RxLen)‘接收數(shù)據(jù)(包括校驗(yàn)和,不包括停止位)

              Else

              Msg=“CheckSumNG”?‘校驗(yàn)和錯(cuò)誤顯示

              EndIf

              MsgBox“ReceivedData=”&Msg‘顯示接收數(shù)據(jù)

              MSComm1.PortOpen=False‘[關(guān)閉通信端口]

              EndSub

              ‘在變頻器的輸出頻率為20Hz時(shí),運(yùn)行該程序,在信息框中將顯示“*01C02000@”

            4結(jié)論

              文章首先對(duì)RS-232與RS-485進(jìn)行了比較,然后介紹了基于RS-485三墾變頻器與上位機(jī)串行通信的實(shí)現(xiàn),實(shí)驗(yàn)表明:利用VB編制的人機(jī)界面操作簡便,取得了良好的實(shí)用效果。利用RS-485協(xié)議進(jìn)行串行通信,可以保證快速、穩(wěn)定遠(yuǎn)距離地傳輸數(shù)據(jù)。在目前以及以后的工業(yè)控制和其他方面必將得到越來越多的應(yīng)用。



            關(guān)鍵詞: RS-485變頻器串行通

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉