這一節(jié)介紹PLC的數(shù)據(jù)通信,數(shù)據(jù)通信在PLC的學(xué)習(xí)中是屬于比較高級(jí)的應(yīng)用,對(duì)于初學(xué)者來說覺得還是有一定的難度,許多朋友一接觸通信就感覺頭大,各種的云山霧罩,想要學(xué)習(xí)卻又無從下手。其實(shí)PLC的數(shù)據(jù)通信并沒有大家想的那么難學(xué),你只要把通信的基礎(chǔ)原理弄明白了,不管什么樣的通訊很容易就能學(xué)會(huì),因?yàn)榻^大數(shù)的通信本質(zhì)都是一樣的,都是一堆0和1,。下面我就以圖片加文字的方式,從通信最基礎(chǔ)的知識(shí)給大家講起。
看圖1,這是一張PLC和各種現(xiàn)場(chǎng)設(shè)備的通信示意圖,通信的組合方式有許多種,可以是1對(duì)1,1對(duì)多,也可以多對(duì)多。這些通信的雙方或多方雖然長(zhǎng)的千奇百怪各不相同,但是它們都要有這么幾個(gè)共同點(diǎn)。
1,都要有一個(gè)或多個(gè)通信端口。
2,相同的通信協(xié)議。
3, 相同的波特率,等等,這些會(huì)在以后講解。
再看圖2,PLC的通信原理就和我們?nèi)祟惖膶?duì)話是一樣的,都是你問我答,或我問你答。只不過我們用的是漢語對(duì)話,而PLC用的是PLC和設(shè)備能聽懂的語言進(jìn)行對(duì)話的。那么PLC是怎么說話的?說的又是什么呢?接著往下看。
看圖3,就是PLC正在和外部設(shè)備進(jìn)行對(duì)話,它對(duì)話的方式就是,控制通訊端口的輸出電壓。當(dāng)想要說1時(shí)它就輸出一個(gè)高電壓 5V,當(dāng)想要說0時(shí)它就輸出一個(gè)低電壓0V。這樣它就能夠說出無數(shù)的0和1。
這就是PLC說話的方式,并且只能說0和1,但這對(duì)于PLC通信來說已經(jīng)夠了,因?yàn)槲覀兊耐ㄐ旁O(shè)備也都只認(rèn)識(shí)0和1。好了,有了共同的語言它們就可以進(jìn)行交流了。
圖4,就是PLC和變頻器的1對(duì)1的通信示意圖,PLC通過通信端口把輸出電壓變化8次,就能輸出8個(gè)0或1,分別是10110101。因?yàn)樽冾l器的通信端口和PLC的通信端口是連接在一起的,所以當(dāng)PLC的通信端口電壓變化時(shí),變頻器的通信端口就能檢測(cè)到電壓的變化。它就能知道PLC給它發(fā)送的是0還是1,這樣PLC讓電壓變化8次以后,變頻器就能收到和PLC發(fā)生的一樣的10110101這一組數(shù)據(jù)。
那么變頻器怎么知道它接收的這一組數(shù)據(jù),代表的是什么意思呢?請(qǐng)看下圖。本節(jié)的重點(diǎn)。
圖5,是數(shù)據(jù)通信的格式,這是外國(guó)人在發(fā)明通訊時(shí)就規(guī)定好的,我們必須按這個(gè)格式發(fā)送數(shù)據(jù)。這個(gè)格式就是“幀”,我們進(jìn)行通信時(shí)最少要發(fā)送一個(gè)“幀”。不能發(fā)送半“幀”,那樣通信就會(huì)失敗。
1“幀”等于12個(gè)0或1,也就是說PLC通信端口的高低電壓要變化12次,才能完成1“幀”。(注:也有11次或10次為1幀的,原理一樣,這里只講12次為1幀的)。下面我們看一下這一“幀”是怎么組成的。
A,如圖5幀的第一位叫起始位,顧名思義,就是告訴設(shè)備我要開始發(fā)送數(shù)據(jù)了,注意這一位必須是0,也就是通信端口要輸出低電壓。
B,幀的第二位至第九位叫數(shù)據(jù)位,這就我們要傳送的數(shù)據(jù),共8個(gè)位。也就是說通信端口的高低電壓要變化8次。也就是說可以傳送二進(jìn)制0000 0000--1111 1111之間的任何一個(gè)數(shù),用十進(jìn)制表示就是0--255之間的任何一個(gè)數(shù)。我們以前講過8個(gè)位等于1個(gè)字節(jié),也就是說1“幀”最多只能傳送1個(gè)字節(jié)數(shù)據(jù)。
C,幀的第十位叫奇偶校驗(yàn)位,這一位可以是0,也可以是1。這一位的作用是對(duì)前面的8個(gè)數(shù)據(jù)位中是1的位,做一個(gè)簡(jiǎn)單的奇偶數(shù)的校驗(yàn)。比如8個(gè)數(shù)據(jù)位要傳送的是01001101這個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)里面是1的位共有4個(gè),那么4就是一個(gè)偶數(shù),我們的奇偶校驗(yàn)位,這一位就是0,通訊端口就要輸出低電壓。如果8個(gè)數(shù)據(jù)位要傳送的是11001101這個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)里面是1的位共有5個(gè),那么5就是一個(gè)奇數(shù),我們的奇偶校驗(yàn)位,這一位就是1,通訊端口就要輸出高電壓。有了這個(gè)奇偶校驗(yàn)位,當(dāng)我們?cè)趥魉蛿?shù)據(jù)時(shí),如果因?yàn)楦鞣N原因的干擾而破壞了真正的數(shù)據(jù)時(shí),接收端的設(shè)備就可以通過查詢“幀”中的奇偶校驗(yàn)位,來判斷接收的數(shù)據(jù)正確與否。
D,幀的第十一位和十二位叫停止位,就是告訴設(shè)備數(shù)據(jù)發(fā)送完成了,注意這兩位必須是1,也就是通信端口要輸出兩次高電壓。
E, 空閑位,它不算在“幀”中,只要不發(fā)送數(shù)據(jù)了,也就是停止位以后都是空閑位,空閑位都是1,也就是通信端口一直輸出高電壓。直到有起始位。
這就是數(shù)據(jù)通信最小的基本單位“幀”的組成和作用。總結(jié)一下,當(dāng)PLC要發(fā)送數(shù)據(jù)時(shí),通訊端口首先輸出低電壓,也就是起始位為0。然后再根據(jù)要傳送的數(shù)據(jù)使端口輸出高低電壓共8次,也就是數(shù)據(jù)位。然后再計(jì)算出奇偶校驗(yàn)位,輸出相應(yīng)的電壓。接著就輸出停止位,這樣1“幀”的通訊就完成了。
圖6,是一個(gè)例子,它演示的是PLC把十進(jìn)制的181這個(gè)數(shù)傳送給另一個(gè)設(shè)備。我們知道十進(jìn)制的181轉(zhuǎn)換成二進(jìn)制就是1011 0101(怎么轉(zhuǎn)換看我以前的講解,這里不再重復(fù)),然后通過一個(gè)幀把它發(fā)送出去。這個(gè)例子如果你能看明白,說明這一節(jié)的內(nèi)容你已經(jīng)掌握了。
另:如果你覺得講的湊合還行的話,可以點(diǎn)擊下面的贊賞哈哈,當(dāng)點(diǎn)寫作的動(dòng)力吧,您隨意。不贊賞也無妨,有了好作品還是會(huì)和大家一起分享。我們下節(jié)再見。