找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4766|回復: 0
打印 上一主題 下一主題
收起左側(cè)

精通RS485通訊系列教程_通訊基礎(chǔ) <圖文詳解一>

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-6 16:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、通訊基礎(chǔ)知識
1.1什么是通訊
要搞清楚RS485通訊我們要先搞明白什么是通訊,通訊就是兩個設備之間0、1代碼的傳遞,0-低電平1-高電平。
舉例:A設備向B設備傳遞數(shù)據(jù),首先A設備和B設備之間必須通過電纜連接(硬件連接)。如果A設備要向B設備發(fā)送101010這樣一串代碼,那么A設備就要在他的通訊端口產(chǎn)生如下圖所示的高低電平的組合,通過電纜這個介質(zhì)B設備的通訊端口就會接收到A設備發(fā)出高低電平的組合,同時就會將接收到的高低電平組合翻譯成101010,這就完成了A設備向B設備數(shù)據(jù)的傳遞,B設備向A設備數(shù)據(jù)傳遞也是同樣的道理。

與通訊有個的概念。
【全雙工與半雙工】全雙工是通訊端口在發(fā)送數(shù)據(jù)的同時可以接收數(shù)據(jù)。而半雙工指的是同一時刻通訊端口要么只能發(fā)送數(shù)據(jù),要么只能接收數(shù)據(jù)。舉例:全雙工-打電話時雙方都可以說。半雙工:對講機-同一時刻只能一個人說另一個人聽。
【通訊速率】通訊速率也叫通訊波特率是1S內(nèi)通訊端口發(fā)送01代碼(或者說是高低電平)的數(shù)量。舉例:我們說通訊速率是9.6kbps,就表示通訊端口每秒發(fā)送9600個bit的數(shù)據(jù),也就是每秒可以產(chǎn)生9600個高低電平(注意:是高低電平總共加起來9600個)。
【主從通訊】是在一個通訊網(wǎng)絡中一個站點是主站,其他站點作為從站。主站和從站之間可以直接進行數(shù)據(jù)的傳遞,但是從站與從站之間不能直接進行數(shù)據(jù)的傳遞。如果需要從站之間交換數(shù)據(jù)也必須要通過主站進行轉(zhuǎn)發(fā)。如下圖所示

1.2、485通訊定義
明白了通訊的基本概念后再理解485通訊就相對容易了,下面我們從通訊介質(zhì)、通訊方式、通訊類型、物理層四個方面來介紹485通訊。
通訊介質(zhì):屏蔽雙絞線,也就是我們通常用的帶有屏蔽層的兩心電纜如下圖所示。

通訊方式:半雙工
通訊類型:主從通訊
物理層:9針接口,需要注意的是通常情況下485通訊的9針接口,只需要將兩芯電纜接 到3號腳和8號腳上,3是信號“﹢”,8是信號“-”。如下圖


1.3通訊協(xié)議
問:你這個通訊用的是什么協(xié)議?
答:我這個是485協(xié)議、我這個是232協(xié)議”!
這就是典型的把通訊協(xié)議和通訊物理層搞混了,舉例:還是打電話,電話是物理層,通話的人之間說的語言就是協(xié)議。同一個物理層可以傳輸不同的協(xié)議,就像電話兩邊的人既可以說中文也可以說英語。中文是一種協(xié)議,英文是另一種協(xié)議。485就好比是電話是物理層,在485這個物理層可以傳輸modbus協(xié)議,也可以傳送Profibus協(xié)議,這就是通訊協(xié)議和物理層之間的關(guān)系。
二、數(shù)據(jù)的發(fā)送
說到通訊大家都覺得很難,覺得學起來沒有頭緒。其實所有學習通訊的人,剛開始的時候也是這樣的感覺,資料找了一大堆都是理論,看來看去總感覺無從下手,最后終于搞懂后才發(fā)現(xiàn),其實學不懂的主要原因并不應該用難來形容,而是這個東西它太復雜了,想要一次全部看懂消化是不太可能的事情,只有分步驟將這個復雜的知識一點點的進行拆分,循序漸進的進行理解,才能最終將這個復雜的知識掌握。
這里為了好理解咱們先動手做,在做的過程中逐步的理解理論。
2.1實驗工具
實例中所用到的學習工具,看完后大家可以找到這些東西自己親手做一遍。相信當你從電腦上看到PLC發(fā)出的數(shù)據(jù)時你會由衷的露出喜悅的笑容,不信試試··········
工具①、S7-200CPU 1個(型號無所謂,最好有兩個通訊口)



工具②、串口調(diào)試軟件(可以從網(wǎng)上任意下載一個使用,不一定是下圖所示)


工具③、Usb轉(zhuǎn)485轉(zhuǎn)換接頭1個(RS232轉(zhuǎn)RS485接頭也可)

4. 工具④、9針接頭公頭1個

工具⑤、兩芯電纜

2.2、實驗流程
實驗目的:從PLC向電腦發(fā)送一個字節(jié)的數(shù)據(jù)。
實驗操作:用S7-200PLC向電腦發(fā)送一個字節(jié)的數(shù)據(jù),通過串口調(diào)試軟件接收,F(xiàn)在的電腦一般沒有RS485通訊接口,要使用Usb轉(zhuǎn)485轉(zhuǎn)換接頭才能保障電腦可以接收到來自PLC的數(shù)據(jù),接線是要注意9針頭的3針腳接Usb轉(zhuǎn)485接頭的信號“+”,8針腳接Usb轉(zhuǎn)485接頭的信號“-”
2.3自由口模式
這里先介紹一下S7-200的自由口模式,S7-200的默認通訊方式是PPI通訊,不能自由的收發(fā)數(shù)據(jù),想自由收發(fā)數(shù)據(jù)就必須將S7-200的通訊接口設置為自由口模式?刂芐7-200自由口的是特殊位寄存器SMB30和SMB130。其中SMB30是控制CPU通訊口0的,SMB130是控制通訊口1的,如果只有一個通訊端口就只能使用SMB30這個特殊位寄存器了。下面我們來看看SMB30這8個位,分別表示什么含義。如下圖所示。

①、0 -1位: 協(xié)議選擇
mm:00 = 點到點接口協(xié)議(PPI/從站模式)
01 = 自由口協(xié)議
10 = PPI/主站模式
11 = 保留(缺省是PPI/從站模式)
②、2-4位:自由口波特率設置
bbb:000= 38400bps
001 = 19200bps
010 = 9600bps
011 = 4800bps
100 = 2400bps
101 = 1200bps
110 = 115200bps
111 = 57600bps
③、5位:每個字符的數(shù)據(jù)位
d:0 = 8位/字符。1 = 7位/字符

④、6-7位:效驗選擇
pp:00 = 不效驗
01 = 偶效驗
10 = 不效驗
11 = 奇效驗
【理論補充】在通訊的過程中每次發(fā)送與接收的最小單位是字符而不是位,1個字符包括1個起始位表示字符的開始,1個停止位表示字符的結(jié)束,一個奇偶效驗位用于驗證字符錯對,和8個或者7個數(shù)據(jù)位用于傳遞信息。奇偶效驗位可有可無,數(shù)據(jù)位通常情況下是8個位也就是1個字節(jié),因此一個字符包含奇偶效驗位通常是11個位,不包含奇偶效驗位則是10個位。
如果我們在S7-200CPU的通訊端口0使用自由口模式,通訊速率為9600bps傳輸?shù)淖址灰媾夹炍,那么就必須將SMB30中的數(shù)據(jù)配置成00001001換算成16進制就是16#9

2.4程序編寫
在編寫程序之前,先要掌握S7-200發(fā)送指令的使用。

XMT發(fā)送指令有兩個管腳,TBL和PORT。
【PORT】通訊端口編號,如果用0端口則寫0,如果用1端口則寫1.

【TBL】定義發(fā)送緩沖區(qū)的起始地址和緩沖區(qū)的大。ㄗ⒁馐瞧鹗嫉刂泛途彌_區(qū)的大小兩個參數(shù))。
舉例:如果TBL中寫VB100并且VB100中存放1,那么發(fā)送緩沖區(qū)是VB101,發(fā)送數(shù)據(jù)時將VB101中的數(shù)據(jù)發(fā)送出去。如果VB100中存放2,那么發(fā)送緩沖區(qū)為VB101和VB102,發(fā)送數(shù)據(jù)時將VB101、VB102兩個字節(jié)的數(shù)據(jù)發(fā)送出去。
程序如下圖所示

上圖所示的程序是一個最簡單的發(fā)送程序,先用SMB30將通訊口0定義為自由口,通訊速率9600bps,然后定義VB101為發(fā)送緩沖區(qū)(因為VB100中存放的是1)。通過SM0.5將VB101中的16進制的CC以1秒鐘為單位發(fā)送給電腦。最后在電腦端將會以1秒為單位接收到PLC發(fā)送的字符CC。如下圖所示


【特別注明】此資源來自互聯(lián)網(wǎng),版權(quán)歸原作者所有。僅作為購買前的參考,如若喜歡,請購買正版


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表