串行通信概念_第1頁
串行通信概念_第2頁
串行通信概念_第3頁
串行通信概念_第4頁
串行通信概念_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1串行通信的概念

在機器設備中,通信就是設備之間的數(shù)據(jù)交換。人類之間使用諸如電話,書

信等方式進行,而機器設備之間則大都是采用電信號。最常見的信號傳遞就是使

用電壓的改變來達到表示不同狀態(tài)的目的。如,高電位代表了一種狀態(tài),低電位

又代表了另一種狀態(tài),在組合了很多電位狀態(tài)后就形成了設備之間的數(shù)據(jù)交換。

而最簡單的信息傳遞方式,應該是使用一條信號線路來傳送電壓的變化而達

到傳送信息的目的,只要準備溝通的雙方事先定義好什么樣的狀態(tài)代表什么樣的

意思,那么通過一條線就可以讓雙方進行數(shù)據(jù)交換。在計算機內(nèi)部,所有的數(shù)據(jù)

都是使用位來存儲的,每一位都是電位的一個狀態(tài)(計算機中以0、1表示);計

算機內(nèi)部使用組合在一起的8位代表一般使用的字符、數(shù)字及一些符號,例如,

010100001就表示一個字符。一般來說,必須傳遞這些字符、數(shù)字及符號才能算

是數(shù)據(jù)交換,如果上面所討論的使用一條線路來傳送信息的話,8個位就一條線

路上連續(xù)變化8個狀態(tài)才算是完成了一個字符的傳遞,這種一次只能傳遞一個位

的通訊方法就是一串行通信;換個角度來說,如果我們可以使用多個線路來傳送

數(shù)據(jù),這些就可以更快一點傳送完畢,因此,還有所謂的并行傳輸,如果并行傳

輸使用了8條信號線就可以一次將一個字符全部傳送完畢,其速度理論上是串行

通信的8倍。計算機的發(fā)展已經(jīng)有很長時間了,其中,串行通信存在的時間也相

當久了,其應用領域也相當廣泛,到如今,市場上很都產(chǎn)品都使用了串行通信技

術作為產(chǎn)品對外數(shù)據(jù)交換的橋梁。-----為何串行通信受到如此大的重視呢?我

想,主要是因為這個技術簡單且易實現(xiàn)的特性。

串行通信以RS-232和RS-485為代表,二者各有其使用領域,使用的范疇

也不盡相同,但二者都屬于串行通信的方法。

串行通信端口(SerialCommunicationPort)在系統(tǒng)控制的范疇中一直扮演著

極其重要的角色,它不僅沒有因為時代的進步而淘汰,反而在規(guī)格上越來越先進,

應用也越來越廣泛?,F(xiàn)在,串行通信端口是計算機上的標準配置,而其用途在不

同的環(huán)境中有不同的用法。RS-232通信端口是每臺計算機上的必要配置,通常

有COM1和COM2兩個端口,新一代的計算機9引腳的接頭接出所有的RS-232

通信端口。每一個引腳都有其特定的名稱和用途,它們在計算機和接線上的位置

和定義如圖:

1:CD---CarrierDetect'載波檢查

計算機上的公頭2:RXD-—Receive'數(shù)據(jù)接收

3:TXD-Transmit'數(shù)據(jù)傳輸

4:DTR---DataTerminalReady'數(shù)據(jù)端待命

5:GND---Ground'地線

6:DSR—DataSetReady'傳輸端待命

7:RTS---RequestToSend'要求傳輸

8:CTS—ClearToSend'清除并傳輸

9:RL---RingIndicator'響鈴指示

由于串行通信的簡單易用,在工業(yè)上也使用了串行通信作為數(shù)據(jù)交換的手

段,但在工業(yè)環(huán)境中常有噪聲干擾傳輸線路,在用RS-232作傳輸時經(jīng)常受到外

界的電氣干擾而使信號發(fā)生錯誤;此外RS-232的最大傳輸距離在不另加緩沖器

的情況下只有15米。為了解決上述問題,RS-485的通信方式就應運而生了。

RS-232的信號標準電位是參考地線而來的,如果有噪聲進入到傳輸線路中的話,

可能會產(chǎn)生干擾,干擾信號在地線和信號上都會產(chǎn)生影響,原始信號加上干擾信

號后依然傳送到接收端,而地線部分的信號則被地電位給抵消了,因此,信號便

發(fā)生了扭曲,當然整個信號就不對了。而RS-485的信號傳送出去之前會先分解

成正負兩條線路,當?shù)竭_接收端后,再將信號相減還原成原來的信號,所以使用

RS-485可以有效的防止噪聲干擾,因此在實際的工業(yè)現(xiàn)場中比較適合使用這種

通訊方式。

串行通信的信號定義和編碼

由于計算機無法分辨所謂的數(shù)字和文字,在其內(nèi)部所有的數(shù)據(jù)都是。和1,

任何數(shù)據(jù)都是0和1的組合。只有信號定義正確才能對傳遞的數(shù)據(jù)有相同的認識。

所有電子儀器的基礎均來自“開”、“關”兩個狀態(tài)的改變,我們可以將它們表示

成0、1或是“高電位”、“低電位”,將很多的0與1組合成一大串的數(shù)列后,就

可以定義它們所代表的意義了。當然,RS-232也有相關的電氣標準定義,是大

家共同遵守的。在RS-232的標準中,電壓在+3V~+15V稱之為0,一般用途是

On,電壓在-3V~-15V之間稱為1,一般用途是OFF。

對應字符

計算機上的RS-232的“高電位”約9伏,而“低電位”則是約-9伏,如此

正負9伏的改變,被記錄成。與1的狀態(tài)。因此,RS-232串行通信以正負9伏

代表0、1的狀態(tài),這個范圍是符合規(guī)定的。由于兩臺設備之間的信息傳遞是在

一連串的高低電位之間進行,每一個電位可當成一個狀態(tài),這個狀態(tài)可能是0

或1,計算機將每一個0或1稱之為一個位。而8個位則組成一個字節(jié),8個位

共有2的8次方(256)種數(shù)值,其數(shù)值從0~255,而在計算機中有一個ASCH

碼對照表,將此256種組合情況分別代表256個字符或句柄,而通信的過程就是

著256個字符或句柄的交換。

一般個人計算機或歐美儀器,都會使用到256個字符,工業(yè)上最普遍的自動

控制儀器(PLC)在它上面?zhèn)鬏數(shù)臄?shù)據(jù)幾乎都是可見字符,也就是說,所傳輸?shù)?/p>

數(shù)據(jù)或句柄都會落在ASCII碼前128個字符以內(nèi),針對128以上的ASCII碼,

日本重新加以定義,將這些不可見的字符的位置留給假名使用,日本將這種改編

過的碼與原來的128之前碼合在一起指定了JIS碼。利用實現(xiàn)定義好的ASCII碼,

通信雙方所傳輸?shù)母叩碗娢唤M合成一個字節(jié)后,便可以在ASCII碼中找到相應

的字符,比如,傳輸?shù)淖止?jié)是下面的電位信號01001100(這是以二進制表示的)

與之對應的十六進制是4C,十進制數(shù)是76,按此數(shù)值在ASCII碼中查找,發(fā)現(xiàn)

它所代表的字符是L,其他的字符也是這樣換算過來的。

工作模式

通訊是由雙方的數(shù)據(jù)相互交換形成,而交換當然是借助一定的線路才能達到

的。計算機在傳輸數(shù)據(jù)時,在傳輸線路上數(shù)據(jù)的流動情況可分為3種情況:單工,

數(shù)據(jù)流動只有一個方向;半雙工,數(shù)據(jù)的流動是雙向的,但在同一時間內(nèi)只能一

個方向進行;;全雙工,同時具有兩個方向的傳輸能力。就串行通訊而言,RS-232

使用的是全雙工模式,RS-422和485則分別使用全雙工,半雙工。(如下圖:)

設備1設備2

設備1設備2

設備1設備2

串行通信的傳輸速度和通信端口的初始化

串行基本上是用來做異步傳輸,既然是異步傳輸,雙方并沒有一個可參考的

同步時鐘作為基準;但如果沒有一個參考的話,雙方所傳輸?shù)母叩碗娢坏降状?/p>

幾個位就不得而知了,要使得雙方的數(shù)據(jù)讀取正常,就要考慮到傳輸速度一波特

率(BPS)指的是每一秒傳送的位數(shù)。通信雙方獲得相同的通信速度是首先要做

的事情。既然是通信,雙方當然要說明白到底是如何傳輸數(shù)據(jù)或命令的,否則如

果雙方?jīng)]有一個共同的譯碼方式,恐怕都無法了解對方所傳過來的數(shù)據(jù)意義。因

此,雙方必須遵守一定的通信規(guī)則。這就是端口的初始化,它有以下幾項:

1,數(shù)據(jù)的傳送單位;串行通信端口所傳送的數(shù)據(jù)是字符型的,工業(yè)界使用

的有ASCII碼和JIS碼。ASCII碼中8個位形成一個字符,而JIS碼則以7個位

形成一個字符。

2,起始位和停止位;當雙方準備開始傳輸數(shù)據(jù)時,傳輸端會在所發(fā)送出的

字符前后分別加上低電位的起始位和高電位的停止位。接收端會按此設置正確的

接收字符;起始位固定為1個位,而停止位則有1、1.5、2個位等多種選擇。

3,校驗位的檢查;校驗位是用來檢查所傳送數(shù)據(jù)正確性的一種核對碼,在

這之中又分為奇校驗位和偶校驗位兩種方式,分別是檢查字符串中1的數(shù)目是奇

數(shù)或偶數(shù)。如:A的ASCII碼是41H(十六進制)將它以二進制表示時,是

01000001,其中1的個數(shù)是兩個,以偶校驗為列,校驗位便是0,使1的個數(shù)保

持偶數(shù),以奇校驗為列的話,校驗位便是1,使1的個數(shù)保持為奇數(shù)。如圖:

原狀態(tài)10001111>1的個數(shù)是5個

如果偶校驗位:>100011111

如果奇校驗位:>100011110

上位鏈接系統(tǒng)即Hostlink系統(tǒng)是對于FA系統(tǒng)一種即優(yōu)化又經(jīng)濟的通信方

式,它適合一臺上位機與一臺或多臺PLC進行鏈接。上位機可對PLC傳送程序,

并監(jiān)控PLC的數(shù)據(jù)區(qū),以及控制PLC的工作情況。

HOSTLINK系統(tǒng)允許一臺上位機通過上位機鏈接命令向HOSTLINK系統(tǒng)的

PLC發(fā)送命令,PLC處理來自上位機的每條指令,并把結(jié)果傳回上位機。

系統(tǒng)特點:

通信:即可采用RS-232c方式,又可采用RS-422方式。

RS-232c方式是基于1:1的通信,距離為15m。

RS-422方式是實現(xiàn)1:N的通信,即一臺上位機與多臺PLC進行

通信,最多可有32臺PLC連接到上位機,通信距離最大可達500m.

上位機監(jiān)控:上位機可對PLC的程序進行傳送或讀取,并可對PLC數(shù)據(jù)區(qū)

進行讀寫操作

雙重檢查系統(tǒng):所有通信都將作奇偶檢驗和幀檢驗,從而能估計出通信中

的錯誤.

系統(tǒng)配置:

RS-232c鏈接(1:1):

一使用PLC自帶的RS-232C口.

-使用上位鏈接單元.

-使用通信板.

RS-422鏈接0:N):

-CPM1-CIF11為外設口轉(zhuǎn)RS-422口的適配器.

-NT-AL001為RS-232C與RS-422轉(zhuǎn)換的適配器.

-B500-AL001為分支器,其功能是將一路RS-422信號轉(zhuǎn)成兩路

RS-422信號.

-上位機鏈接模塊為C200H-LK202,是帶RS-422端口的模塊.

-也可用通信板進行連接.

計算機和PLC(Omron)串行通信的實現(xiàn)

這是我這次畢業(yè)設計中的其中一個題目,在FA中它屬于上位通訊的范疇。

首先介紹現(xiàn)有硬件:普通個人PC一臺,其上配有COM1,COM2兩端口;CPM1A

一塊,帶手持編程器;一段傳輸線。

第一步工作是硬件的連接,就是要將PLC與計算機連接起來。

-4-

首先是RS-232c電纜的制作(如,下圖)

1——CD1接線圖

2SDRXD2

3RDTXD3

4RS1-*DTR4

5CSGND5

6——DSR6

7—RTS7

8——CTS8

9SGRL9

PLC(RS-232c適配器)計算機

第二步是了解并掌握(OMRON)PLC的上位通信協(xié)議。

1,命令和響應格式

命令格式:

@機號識別碼正文FCS*CR

@―必須以@開頭

機號…上位機識別所連PLC的機號,CPM1A中在(DM6653)中設定

識別碼--2個字符的命令碼

正文…設定命令的參數(shù)

FCS—2個字符的校驗碼

標□CR碼一表示命令結(jié)束的2個字符。CR碼用(CHR(13))表示

響應格式:

格式與命令格式完全一樣

@、機號、設備碼的返回值和命令相同

結(jié)束碼一返回命令的執(zhí)行狀態(tài)

正文…僅在讀出數(shù)據(jù)時返回

FCS的計算范圍:——9正文

FCS的計算;

將@到正文的最后一個字符進行依位異或運算,再將所得的結(jié)果換成2個

16進制的字符。(下圖是FCS的計算過程)

ASCII碼8位二進制碼

@一941---01000000

XOR

1—931—00110001

XOR

0—30…玲00110000

XOR

R—952—901010010

XOR

R—52―01010010

XOR

0---玲30―今00110000

XOR

0—30一今00110000

-XOR

-

0---930—00110000

XOR

1—931---900110000

計算結(jié)果——今01000001--——916進制數(shù)-942

2,上位通信命令參考

RR--讀出I/O區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

RL-一讀出鏈接繼電器(LR)區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

RH—-讀出保持繼電器(HR)區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

RC-一讀出定時器/計數(shù)器當前值區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

RD——讀出數(shù)據(jù)內(nèi)存(DM)區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

RJ-—讀出輔助記憶繼電器(AR)區(qū)指定通道開始的指定通道數(shù)量的內(nèi)容。

WR--寫入I/O區(qū)指定通道開始的指定寫入數(shù)據(jù)。(以通道為單位)

WL--寫入LR區(qū)指定通道開始的指定寫入數(shù)據(jù)。(以通道為單位)

WH--寫入HR區(qū)指定通道開始的指定寫入數(shù)據(jù)。(以通道為單位)

WC--寫入定時器/計數(shù)器當前區(qū),以號為單位寫入指定數(shù)據(jù)。

WD---寫入DM區(qū)指定通道開始的指定寫入數(shù)據(jù)。

WJ---寫入AR區(qū)指定通道開始的指定寫入數(shù)據(jù)。

MS——讀出PLC的運行狀態(tài)。

SC——寫入狀態(tài)(改變PLC的模式)。

KS——對PLC的I/O、LR、HR、AR、定時器/計數(shù)器到標志的狀態(tài)強制

置位,只能同時強制置位1點

KR——對PLC的I/O、LR、HR、AR、定時器/計數(shù)器到標志的狀態(tài)強制

復位,只能同時強制復位1點。

FK——多點強制置位/復位;對PLC的I/O、LR、HR、AR、定時器/計數(shù)

器到標志的狀態(tài)強制置位/復位。1次發(fā)送命令能設定1個通道。

KC——強制置位/復位解除,解除強制置位(KS)、強制復位(KR)和(FK)

所設定的強制狀態(tài)。即:強制狀態(tài)一齊解除。

上位鏈接通信功能的設定方法(針對CPM1A)

通信地位功能設定

00:標準設定

00-07上位鏈接通信01:個別設定00

條件標準形式其它:系統(tǒng)設定異常(AR1302

ON)

08-111:1鏈接區(qū)域大0:LR00CH-15CH0

DM6650小的設定

0:上位鏈接

2:1:1鏈接子局

12-15用于模式設定3:1:1鏈接親局0

4:NT鏈接

其它:系統(tǒng)設定異常(AR1302

ON)

00:1200BPS

上位鏈接波特01:2400BPS

00-07率的設定02;4800BPS00

03:9600BPS

04:19200BPS

起始位數(shù)據(jù)位終止位基偶

數(shù)

00:171偶

01:171奇

02:171無

03:172偶

DM665108-15上位連接通信04:172奇00

形式05:172無

06:181偶

07:181奇

08:181無

09:182偶

10:182奇

11:182無

其他:系統(tǒng)設定異常

(AR1302ON)

0000-9999(BCD),設定值(單

DM665200-15上位鏈接通信位:10ms)其他;系統(tǒng)設定異0000

延時設定常(AR1302ON)

DM665300-07上位鏈接機號00-31(BCD)00-31

08-15不可使用00

另外;在與計算機、本公司(OMRON)的PT(觸摸屏)等進行上位連接

使用時,請將RS-232c適配器(CPM1A-CIF01)的模式設定開關設定到“HOST”。

而與本公司的CPM*,CQM1,C200,CS等進行1:1鏈接時(一方做主動,一

方做從動),應將適配器的模式開關設定到“NT(下側(cè)),

CPMJA的1:1鏈接的限制

1;由于CPM1A的鏈接繼電器只有LROO—LR15CH的16個通道,因此在

與CQM1或者CS200等做1:1鏈接時,另一側(cè)都要使用LROO—LR15CH的16

個通道,即:LR16—LR63CH,在與CPM1A做1:1鏈接時都不能使用。

2;關于本公司以外的1:1鏈接的設定,請參考各自的手冊,但RS-232C

的跳線開關,應設定為(NT)下側(cè)。

NT鏈接功能和限制

NI鏈接可將CPM1A與本公司的PT以NT鏈接為媒介連接,以隨機存取的

形式高速通信。但是,僅當使用RS-232c鏈接時,才能使用NT鏈接。

并且,要將RS-232c的模式開關設定為(NT)下側(cè)。

如果將其設定為HOST時,就不受DM6650的設定控制,而變?yōu)樯衔煌ㄐ?/p>

鏈接。

連接示意圖和接線方法

1:HostLink

RS—232C

NT-AL001(KS-232c*4RS422)

B500-AL001RS-422

C200H

C200H-LK202

外設口

2:1:1計算機和CPM1A連接

3:1:1NT連接

4:1:1CPM1A和CPM1A的連接

4:I:N計算機和CPM1A的連接

5:CPM1A和CPM1A連接的接線方法

6:PT與CPM1A連接的接線方法

7:1:NAL004模塊的接線

3G2A9AL004ELink

9:計算機COM端口和B500-AL00425芯的接線

計算機上位通信程序的開發(fā)

這個程序,我是用VisualBasic6.0開發(fā)的。

首先介紹一下這個程序也是一般串行通信中的一個核心控件一MSComm,

所有的數(shù)據(jù)發(fā)送和接收都是通過它來完成的。現(xiàn)將其重要屬性說明如下:

1,CommPort屬性

它用于設置或返回通信連接端口的號碼,程序必須指定所要使用的串行端口

的號碼,Windows系統(tǒng)會使用所設置的通信端口與外界進行通信。程序也可借助

此屬性返回所使用的連接端口號碼。在此所設置的通信端口號由1開始往上遞

增,MSComm控件的最大值是16。盡管Windows操作系統(tǒng)可以容納最多256個

串行端口。

例:MSComml.CommPort=1,指定使用COM1作通信傳輸

2,Settings屬性

它用于設置初始化參數(shù),以字符串的形式設置或返回傳輸速率、檢驗位、數(shù)

據(jù)位、停止位等四個參數(shù)。其格式為:“BBBB,P,D,S”其中BBBB表示傳

輸速率,P表示校驗檢查方式,D表示數(shù)據(jù)位數(shù),S表示停止位數(shù)。在VB中的

默認值是“9600,N,8,1”,它表示所是使用的通信端口是以每秒9600位的

速度作傳輸,不作校驗位的檢查,每個數(shù)據(jù)單元是8個位,而停止位是1個位,

需要注意的是:這四項必須按照上述順序,不可前后對調(diào)。

校驗檢查的種類:E-—偶數(shù),O-一奇數(shù),默認值

正確的數(shù)據(jù)位有:4,5,6,7,8(默認值),日本的產(chǎn)品多使用7位的數(shù)據(jù)

位,而歐美的產(chǎn)品多使用8位的數(shù)據(jù)位。

正確的停止位有:1,1.5(默認值),2。

Settings設置完成后,所傳輸和接收的字符串便以此設置為準,通信的雙方

Setings必須完全一樣,彼此才能順利的溝通,否則雙方將無法正確接收到彼此

所傳輸?shù)男盘枴?/p>

例:MSComm.Settings="9600,e,8.1”

3,PorOpen屬性

此屬性用于設置或返回通信連接端口的狀態(tài)。使用前必須將要使用的串行接

口先行打開,而在使用完畢后,也必須執(zhí)行關閉操作。串行通信的各項功能都是

在此屬性的True和False之間完成的

4,Input屬性

此屬性用于從輸入緩存區(qū)返回并刪除字符。程序靠這個命令將對方傳到輸入

緩存區(qū)的字符讀進來,并清除緩存區(qū)中已被讀取的字符。

緩存區(qū)的特性是先進先出,即先進入字符先讀出來,而后進入的字符則向前

遞補。

例;str=MScomml.Input,將輸入緩存區(qū)的字符讀入str字符串變量中。

5,Output屬性

此屬性是用于將一個字符串寫入輸出緩存區(qū)。當程序需要向?qū)Ψ絺鬏斪址?/p>

時,可用此命令將字符串寫入輸出緩存區(qū)中。

例:MScomml.Output="@01WR0010FFFF',將@01WR0010FFFF通過

RS-232傳輸出去。

6,InputLen屬性

此屬性用于指定由串行端口讀入的字符串長度。在VisualBasic程序中可使

用Input命令將存放在輸入緩存區(qū)(貼切的說是接收緩存區(qū))中的字符讀入,但

要指定所讀入的字符長度則需要設置本屬性。此屬性默認值是0,此值會使Input

命令一次讀取所有輸入緩存區(qū)中的數(shù)據(jù)。

例:MScomml.InputLen=10,則當程序執(zhí)行Input命令時,只會讀取10個字

符,假設輸入緩沖區(qū)中有63個字符,這時,Input命令每次會讀取10個字符進

來,因此要全部讀完所有的數(shù)據(jù)需要執(zhí)行7次Input命令。如果我們需要對固定

字符串的長度進行特別的運算或判斷時,就必須使用此屬性。

7,Handshaking屬性

此屬性用于指定通信兩方的交握協(xié)議。交握協(xié)議只有在緩存區(qū)沒有超速的情

況下才能保證數(shù)據(jù)不被遺失,而緩存區(qū)超速是指數(shù)據(jù)到達連接端口的速率太快,

以至通信裝置來不及將數(shù)據(jù)移到接收緩沖區(qū)。

既然交握協(xié)議所要做的是數(shù)據(jù)傳輸速度的控制,因此也被稱為“流量控制”;

簡單的說,當雙方傳輸數(shù)據(jù)時,如果一方送出數(shù)據(jù)的速度快過能處理的速度時,

接收的一方便要求傳輸?shù)囊环綍和K统鰯?shù)據(jù),待接收的一方處理完數(shù)據(jù)之后,再

通知傳輸方繼續(xù)傳輸未傳完的數(shù)據(jù)。下表是交握協(xié)議的設置:

設置值說明

ComNone0(默認值)沒有交握協(xié)議

ComXOnXOff1(XOn/XOff)交握協(xié),議

ComRTS2RTS/CTS(requesttosend/cleartosend)交握協(xié)議

ComRTSXOnXOff3RTS和XOn/XOff交握協(xié)議

其中,XOn/XOff交握協(xié)議是所謂的軟件交握協(xié)議,它使用XON表示暫停

數(shù)據(jù)的傳輸;而使用XOFF表示恢復傳輸。其中,由于XON使用chr(19)(鍵盤

上的Pause鍵)作為控制信號,當系統(tǒng)采用此交握協(xié)議時,如果所傳輸?shù)臄?shù)據(jù)中

含有chr(19)字符,將使得傳輸暫停而發(fā)生錯誤,這是使用時應該注意的地方。

8,Rthreshold屬性

此屬性用于設置或返回引發(fā)接收事件的字符數(shù);即屬性頁上的“最收字符

數(shù)”。當接收緩沖區(qū)達到所設置的字符數(shù)時,將會引發(fā)OnComm事件中的接收事

件,所以此屬性也就是接收事件的“門閥”。此屬性的默認值是0,其意義是無

論緩沖區(qū)中有多少字符均不引發(fā)接收事件。

例:MScomml.Rthreshold=20'當接收緩沖區(qū)達到20個字符時,引發(fā)接收

事件。

9,InBujferCoimt屬性

此屬性用于返回在接收緩沖區(qū)中的字符數(shù),該屬性設計時無效,此屬性是指

已接收,并在接收緩沖區(qū)中等待讀取的字符數(shù),用戶可以把此屬性值為0,以清

除接收緩沖區(qū)。

例:i=MScomml.InBufferCount,返回已接收到的字符數(shù)

MScomml.InBufferCount=0,清除緩沖區(qū)

通信參數(shù)的確定

當使用通信傳輸?shù)膬x器設備時,最重要的就是參數(shù)的設置,這個參數(shù)設置除

了MScomm控件上的Setting屬性外,有時候還要注意Handshaking屬性,尤其

是Settings屬性。不同的設備都可能采用不相同的通信參數(shù)設置,在設計程序之

前,一定要弄清楚所要控制和傳輸?shù)脑O備參數(shù)是什么。一般地,日本的設備較常

用“9600,E,7,2”,而歐美的則常用用600,N,8,1”。

而交握方式依每種設備的設計而有所不同,最主要的的目的在于預防數(shù)據(jù)的

遺失,當數(shù)據(jù)量不大,或是雙方的數(shù)據(jù)緩沖區(qū)足夠大時,Handshaking也可以設

置成None,不過還是要以設備的要求為主。

從最前面的硬件到現(xiàn)在的軟件,其實由程序的運行到硬件操作的完成,對

VisualBasic來說可以有兩種方式:(其流程圖如下)

使用MScomm控件的方式表面上看起來要比直接調(diào)用API函數(shù)來得復雜,

但實際上,使用MScomm控件可以省去不少底層程序的編寫,因此實際上要比

API函數(shù)簡單多了。

在操作系統(tǒng)方面,Windows使用通信驅(qū)動程序Ccmm.drv,以讓應用程序能

夠使用標準的WindowsAPI函數(shù)傳輸和接受數(shù)據(jù)。串行外圍設備制造商則提供

硬件驅(qū)動程序,以便使其能與Windows連接。使用此控件時,實際上就是使用

了API函數(shù),API函數(shù)將被Comm.drv解釋并傳輸給外圍設備驅(qū)動程序。

好,下面介紹我的VB程序:

-首先是設備的初始化-

PrivateSubForm_Load()

Forml.MSComml.CommPort=1'設定由COM1串行口進行通信

Form1.MSComm1.PortOpen=True'打開COM1端口

Forml.MSComml.Settings二”9600,E,7,2"'通訊參數(shù)設置

Form1.MSComml.InputLen=0'使MSComm控件讀取接收緩沖區(qū)中

全部的內(nèi)容

EndSub

此程序代碼一般出現(xiàn)在主窗體的LOAD事件中

-計算FCS校驗碼的函數(shù)--

PublicFunctionfcs(strlAsString)'定義函數(shù)

DimstrAsInteger

DimhlAsString

str=Asc(n@n)'因為第一個固定字符是“@”

Fori=2ToLen(strl)

str=strXorAsc(Mid(strl,i,1))'依位異或運算

Nexti

hl二Hex(str)'轉(zhuǎn)換成16進制的字符串

fcs=hl

ExitFunction

EndFunction

具體可以參看第6頁的FCS計算示意圖?。?/p>

值得提醒的是:FCS的計算范圍是從@到正文。

下面是我做的程序界面圖;

Computer與CPM1A進行上位通訊

向PLC寫入數(shù)據(jù)

讀取PLC數(shù)據(jù)

對PLC進行置/復住

定時裝/計數(shù)器區(qū)

南陽理工學院PLC實驗室

?讀出PLC內(nèi)一個或多個通道內(nèi)的內(nèi)容,1□!X|

-區(qū)域選項:-

行輸入輸出/內(nèi)部輔助/特殊輔助繼電器區(qū)

C鏈接繼電器(U)區(qū)

C保持繼電器QiR)區(qū)

C數(shù)據(jù)內(nèi)存0DM)區(qū)

C輔助記憶繼電器聊)區(qū)

讀出指定通道開始的指定通道數(shù)量的內(nèi)容

(建議:通道數(shù)量不要太大?,)

,確定退出

只要硬件連接和通信設置正確,就能夠?qū)崿F(xiàn)通信

這個程序中,用的最多的就是命令就是Mscomml.output^xxxxxxxxxx",一

切的命令傳輸都是通過它來完成。

這段代碼是實現(xiàn)向PLC寫入數(shù)據(jù)的:

PrivateSubCommandl_Click()

DimstrAsString

DimstrlAsString

IfOption1.Value=TrueThen

strl="WR"

EndIf

IfOption2.Value=TrueThen

strl="WL"

EndIf

IfOption3.Value=TrueThen

strl="WH"

EndIf

IfOption5.Value=TrueThen

strl="WD"

EndIf

IfOption6.Value=TrueThen

strl="WJ"

EndIf

str=+Combo1.Text+strl+RTrim(Textl.Text)+RTrim(Text2.Text)

Form1.MSComm1.Output=str+CStr(Forml.fcs(str))++Chr(13)

下面是對PLC進行強制置位或復位的部分代碼:

PrivateSubCommandl_Click()

DimstrAsString

DimstrlAsString

IfOption1.Value=TrueThen

strl="CIO"

EndIf

IfOption2.Value=TrueThen

strl="HR"

EndIf

IfOption3.Value=TrueThen

strl="LR"

EndIf

IfOpt沁n4.Value=TrueThen

strl="AR"

EndIf

IfCommand1.Caption="置位"Then

Commandl.BackColor=vbGreen

str="@"+Combo1.Text+nKS"+strl+RTrim(Text1.Text)+Combo2.Text

Form1.MSComm1.Output=str+CStr(Form1.fcs(str))+叫”+Chr(13)

Else

Command!.BackColor=vbRed

str=“@"+Combo1.Text+"KR"+strl+RTrim(Textl.Text)+Combo2.Text

Form1.MSComm1.Output=str+CStr(Forml.fcs(str))++Chr(13)

EndIf

IfCommand!.Caption="置位"Then

Command1.Caption="復位”

Else

Command1.Caption="置位”

EndIf

EndSub

PrivateSubCommand2_Click()

UnloadMe

EndSub

PrivateSubCommand3_Click()

Form1.MSComm1.Output=+Combo1.Text+"KCn+

CStr(Forml.fcsC@H+Combo1.Text+“KC"))++Chr(13)

EndSub

PrivateSubCommand4_Click()

UnloadMe

EndSub

PrivateSubCommand5_Click()

DimstrAsString

DimstrlAsString

IfOption1.Value=TrueThen

strl="CIO"

EndIf

IfOption2.Value=TrueThen

strl=“HR”

EndIf

IfOption3.Value=TrueThen

strl=nLR”

EndIf

IfOption4.Value=TrueThen

strl=“AR”

EndIf

IfCommands.Caption="(M)置位"Then

str=+Combo1.Text+"FK"+strl+RTrim(Textl.Text)+"0101"

Form1.MSComm1.Output=str+CStr(Forml.fcs(str))++Chr(13)

Else

str=+Combo1.Text+"FK"+strl+RTrim(Textl.Text)+"0100"

Form1.MSComm1.Output=str+CStr(Forml.fcs(str))++Chr(13)

EndIf

IfCommands.Caption="(M)置位"Then

Commands.Caption="(M)復位"

Else

Command5.Caption="(M)置位”

EndIf

EndSub

計算機和PLC的上位通訊就到此為止,下面我來介紹計算機和華為

TD2000型變頻器之間的串行通信。

首先介紹TD2000型變頻器的功能和使用方法。

功能特點

?TD2000系列采用先進的工藝。模塊化的設計,維護更

■b加方便。

?中英文液晶操作面板,更符合中國人的操作習慣。

L「一」?主控板采用表面貼裝(SMT)工藝,外層涂覆三防漆,

防塵、防潮、防毒。

?采用TI公司最新電機控制專用高速數(shù)字信號處理器(DSP),高效完成電機實時控制算法。

?主回路連接采用鍍銀銅排,防銹蝕。采用正負母線重疊工藝,分布電感小,極大提高模塊安

全性和整機可靠性。

?主電路采用最新的智能功率模塊(IPM),集驅(qū)動、保護、功率變換于一體,大大提高整機可

靠性;

產(chǎn)品特點:

高性能:

寬電壓工作范圍:額定電壓+—20%,適應惡劣電網(wǎng)環(huán)境;

優(yōu)化的PWM算法和死區(qū)補償技術:0.5HZ滿轉(zhuǎn)矩輸出;輸出電流波形好,適合大慣性負載的直

接啟動;

具有檢測電機轉(zhuǎn)速和方向的再啟動功能,特別適合對各種風機平滑啟動;

低成本:

內(nèi)置具有7段速度的簡易PLC功能,每段時間最長達6小時,適合紡織機械等的勻降速控制和

周期運行控制;自帶脈沖編碼器(PG)反饋卡,適合高精度速度控制的需求;

7.5KW以下內(nèi)置制動單元

內(nèi)置PI、直接提供24V電源,方便組成多種閉環(huán)控制系統(tǒng)。

網(wǎng)絡化:

標準RS485接口或PROFIBUS現(xiàn)場總線接口,開放的通信協(xié)議,方便地實現(xiàn)網(wǎng)絡化控制。

客戶化:

可選中英文液晶操作面板,帶外引和熱插拔功能,操作更方便靈活。

容許電網(wǎng)波動范圍:額定電壓±20%

輸出頻率范圍:0-400HZ

頻率精度:0.01%X最高頻率

顯示方式:四位LED顯示,LCD(中/英)+LED可?選

核心硬件:IPM+DSP+MCU

PWM控制方式:電壓矢量控制

防護等級:IP20

安裝方式:

5.5KW-90KW壁掛

1I0KW-220KW裝機裝柜

走線方式:

5.5-90KW下進下出

110-220KW上進下出

計算機和變頻器的硬件連接圖:

計算機COM口變頻器接線端

RS-232c接口和變頻器的接線圖:

TD2000系列變頻器的通訊命令格式和功能實現(xiàn)協(xié)議表

命令格式:

包頭地址命令命令索引運行數(shù)據(jù)校驗位

7EXXXXXXXXXXXXXXXX

功能協(xié)議表:

讀取運行參數(shù)命令命令索引運行控制調(diào)節(jié)命令命令索引

運行頻率010000開機(無參數(shù))020000

設定頻率010001設置當前運行頻率的給定020001

輸出電壓010002開機(運行頻率給定)020002

輸出電流010003開機正轉(zhuǎn)(無參數(shù))020003

運行轉(zhuǎn)速010004開機反轉(zhuǎn)(無參數(shù))020004

設定轉(zhuǎn)速010005開機正轉(zhuǎn)(運行頻率給定)020005

運行線速度010006開機反轉(zhuǎn)(運行頻率給定)020006

設定線速度010007停機020007

閉環(huán)反饋010008點動020008

閉環(huán)設定010009點動正轉(zhuǎn)020009

外部計數(shù)值01000A點動反轉(zhuǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論