學(xué)習(xí)S7-200 SMART時(shí)了解到,基于RS485接口可實(shí)現(xiàn)一下幾種通信:
1)modbus RTU通信
2)PPI協(xié)議通信
3)USS協(xié)議通信
4)自由口通信
何為自由口通信呢?
前三種通信必須要PLC和與其通信的設(shè)備支持相同的通信協(xié)議,如果兩者之間沒(méi)有共同的通信協(xié)議則需要用到自由口通信。自由口通信也稱無(wú)協(xié)議通信,需要根據(jù)對(duì)方設(shè)備的通信數(shù)據(jù)格式編寫一個(gè)臨時(shí)協(xié)議,不僅需要編程人員學(xué)會(huì)如何編寫程序,還需要了解對(duì)方的通信數(shù)據(jù)格式,所以對(duì)編程人員要求較高,隨著標(biāo)準(zhǔn)協(xié)議(modbus,USS等)普及,自由口應(yīng)用越來(lái)越少,但是對(duì)于一下小的設(shè)備如掃碼槍等,并沒(méi)有集成標(biāo)準(zhǔn)通信協(xié)議,所以只能選用自由口通信,Moubus和USS其實(shí)是自由口的一個(gè)特例。很多人碰到自由口通信就手足無(wú)措了,其實(shí)只要掌握規(guī)律,自由口通信不一定很難。為此我總結(jié)了自由口通信的基本步驟:
1)讀懂對(duì)方的數(shù)據(jù)格式。
串行通信中,數(shù)據(jù)是一位一位的進(jìn)行發(fā)送,也就是0和1。為了能夠準(zhǔn)確的將數(shù)據(jù)發(fā)送過(guò)去,往往會(huì)加上1個(gè)起始位,1個(gè)校驗(yàn)位,1個(gè)停止位(無(wú)校驗(yàn)是為2個(gè)停止位)如圖1-1所示。
圖1-1
我們就以Modbus RTU為例詳細(xì)看一下串口通信中數(shù)據(jù)是如何發(fā)送和就收的。
ModbusRTU代碼系統(tǒng)如下:
·1個(gè)起始位。
·7或8個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送。
·1個(gè)奇偶校驗(yàn)位,設(shè)成無(wú)校驗(yàn)則沒(méi)有。
·1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)Bit(無(wú)校驗(yàn)時(shí))。
數(shù)據(jù)格式的描述如下表:
11-bit字符幀(BITl-BIT8為數(shù)據(jù)位):
起始位 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | Bit8 | 校驗(yàn)位 | 停止位 |
10-bit字符幀(BITl-BIT7為數(shù)據(jù)位):
起始位 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | 校驗(yàn)位 | 停止位 |
通信中要保證通信雙方要有相同的波特率,數(shù)據(jù)格式,奇偶校驗(yàn)位。
波特率:通信速度,每秒中發(fā)送的位的個(gè)數(shù),單位為Bit/S或bps。
奇偶檢驗(yàn):偶校驗(yàn)的含義:在數(shù)據(jù)傳輸前附加一位偶校驗(yàn)位,用來(lái)表示傳輸?shù)臄?shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù),為偶數(shù)時(shí),校驗(yàn)位置為“0”,否則置為“1”用以保持?jǐn)?shù)據(jù)的奇偶性不變。奇校驗(yàn)的含義:在數(shù)據(jù)傳輸前附加一位奇校驗(yàn)位,用來(lái)表示傳輸?shù)臄?shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù),為奇數(shù)時(shí),校驗(yàn)位置為“0”,否則置為“1”用以保持?jǐn)?shù)據(jù)的奇偶性不變。
一個(gè)字符幀中,真正起作用的是數(shù)據(jù)位。起始位、檢驗(yàn)位和停止位的加入只是為了將數(shù)據(jù)位正確地傳輸?shù)綄?duì)方設(shè)備。在實(shí)際應(yīng)用時(shí)一定要將主站和從站數(shù)據(jù)位、奇偶校驗(yàn)、停止位設(shè)為一致。
在通信過(guò)程中一個(gè)完整的通信報(bào)文包括多個(gè)數(shù)據(jù)幀,一般包含地址幀、功能碼幀、數(shù)據(jù)幀、檢驗(yàn)幀。在Modbus RTU中,一個(gè)報(bào)文發(fā)送完成之后會(huì)保持3.5個(gè)字節(jié)的靜默時(shí)間,再發(fā)送下一個(gè)報(bào)文,如圖1-2所示。
圖1-2
地址幀:指示從站的站號(hào),以十六進(jìn)制表示,如01H。
功能碼幀:指示操作是讀還是寫,03H為讀,06H為寫操作。
數(shù)據(jù)幀:包含要讀寫的從站參數(shù)起始地址、個(gè)數(shù)及數(shù)值,數(shù)據(jù)幀在發(fā)送的時(shí)候每個(gè)字包含兩個(gè)8位字符,先發(fā)高8位后發(fā)低8位。
校驗(yàn)幀:CRC校驗(yàn)值,也拆分成兩個(gè)字節(jié),先發(fā)低字節(jié)后發(fā)高字節(jié)。校驗(yàn)幀的原理是將將所有數(shù)據(jù)幀進(jìn)行CRC運(yùn)算,算出一個(gè)檢驗(yàn)值,加在數(shù)據(jù)幀后面一起發(fā)送過(guò)去,從站設(shè)備接收到數(shù)據(jù)后再進(jìn)行一次運(yùn)算,將運(yùn)算的檢驗(yàn)值和接收的值進(jìn)行比較,如果不一致則說(shuō)明數(shù)據(jù)發(fā)送出錯(cuò)。
例如:從01H號(hào)站變頻器,讀取從0004H地址開始的2個(gè)數(shù)據(jù)的值。
發(fā)送報(bào)文:01H(地址幀),03H(功能碼幀),00H(起始地址高位),04H(起始地址低位),00H(數(shù)據(jù)個(gè)數(shù)高位),02H(數(shù)據(jù)個(gè)數(shù)低位),85H(CRC低位),CAH(CRC高位)
例如:將5000(1388H)寫到從站地址02H變頻器的0004H地址中。
發(fā)送報(bào)文:02H,06H,00H,04H,13H,88H,C5H,6EH
了解了通信協(xié)議的數(shù)據(jù)格式,接下來(lái)就是編寫自由口通信程序:,下面就以通過(guò)自由口通信控制英威騰變頻器啟停為例講解程序的編寫。
歸納總結(jié)了一下分為以下幾步:
1)定義通信端口。
SMB30和SMB130分別為端口0和1的控制字節(jié),提供了波特率、奇偶校驗(yàn)、數(shù)據(jù)位和通信協(xié)議的選擇,如圖1-3所示。
圖1-3
利用字節(jié)傳送指令將分析所得的控制字節(jié)數(shù)據(jù)寫入到SMB30或SMB130中,如圖1-4所示。
圖1-4
往SMB30中寫入2#01001001,則定義端口0為自由協(xié)議,波特率9600,8位數(shù)據(jù)位,偶校驗(yàn)。
2)按照發(fā)送指令XMT的緩沖區(qū)格式定義發(fā)送數(shù)據(jù)報(bào)文。
圖1-5
圖1-5中TBL(VB0)為發(fā)送緩沖區(qū)起始地址,格式為:
VB0:發(fā)送字節(jié)總數(shù)。
VB1:報(bào)文第一幀,即地址幀,16#01
VB2:功能碼幀,寫16#06。
VB3:通信地址高位,控制啟停地址為16#2000,高位為16#20。
VB4:通信地址低位,16#00。
VB5:寫入數(shù)值高位,16#00(寫入16#0001正轉(zhuǎn),16#0002反轉(zhuǎn),16#0005停止)。
VB6:寫入數(shù)值低位,16#01。
VB7:CRC校驗(yàn)碼低位,16#43。
VB8:CRC校驗(yàn)碼高位,16#CA。(校驗(yàn)碼為16#CA43)
程序如圖1-6所示,此處用到一個(gè)CRC算法程序,
圖1-6
3)觸發(fā)發(fā)送指令XMT,如圖1-7所示。
圖1-7
3)接收數(shù)據(jù),接收有兩種方式,一是利用RCV指令接收,應(yīng)用較為復(fù)雜,此處不介紹;一是利用SMB2緩沖地址接收,因?yàn)槎丝?接收到一個(gè)字符會(huì)觸發(fā)8號(hào)中斷,并將其存放于SMB2中,通常利用8號(hào)事件觸發(fā)中斷,在中斷中將SMB2的數(shù)據(jù)轉(zhuǎn)存到其它地址,否則下一數(shù)據(jù)將覆蓋該數(shù)據(jù),直到接收完所有數(shù)據(jù)后置位一個(gè)完成標(biāo)志,延時(shí)一定事件再次觸發(fā)發(fā)送指令。接收中斷程序如圖1-8所示。
圖1-8
以上介紹了S7-200SMART的自由口通信,使用自由口通信時(shí)編寫程并不是難點(diǎn),關(guān)鍵在于讀懂對(duì)方通信數(shù)據(jù)格式,在以后編程過(guò)程中盡量選用支持標(biāo)準(zhǔn)協(xié)議的設(shè)備,確實(shí)需要選用自由口也不用害怕,只要按照上述步驟一步步來(lái)完成,相信肯定可以通信成功。
-
波特率
+關(guān)注
關(guān)注
2文章
308瀏覽量
34281 -
自由口通信
+關(guān)注
關(guān)注
0文章
4瀏覽量
6420
原文標(biāo)題:S7-200 SMART自由口通信其實(shí)也沒(méi)那么難(附實(shí)例)
文章出處:【微信號(hào):GKB1508,微信公眾號(hào):工控幫】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
IGT-DSER智能網(wǎng)關(guān)的網(wǎng)口2連接S7-200Smart
西門子PLC S7-200smart程序下載錯(cuò)誤分析
詳細(xì)介紹S7-200SMART的自由口通信
![詳細(xì)介紹<b class='flag-5'>S7-200SMART</b>的<b class='flag-5'>自由</b><b class='flag-5'>口</b><b class='flag-5'>通信</b>](https://file.elecfans.com/web1/M00/59/03/pIYBAFthUnqAY2ScAAAdjkCB2SI897.png)
西門子S7-200SMART接入BL102 PLC網(wǎng)關(guān)
![西門子<b class='flag-5'>S7-200SMART</b>接入BL102 PLC網(wǎng)關(guān)](https://file.elecfans.com/web2/M00/19/F8/poYBAGF4wpCALuqZAAr3TCk3ZuY302.png)
PLC網(wǎng)關(guān)采集西門子S7-200SMART數(shù)據(jù)配置流程
![PLC網(wǎng)關(guān)采集西門子<b class='flag-5'>S7-200SMART</b>數(shù)據(jù)配置流程](https://file.elecfans.com/web2/M00/1B/40/poYBAGGDUeWAViD_AAEoryIJC2Q525.png)
巨控GRM532Y 實(shí)現(xiàn)S7-200smart遠(yuǎn)程上下載程序
![巨控GRM532Y 實(shí)現(xiàn)<b class='flag-5'>S7-200smart</b>遠(yuǎn)程上下載程序](https://file.elecfans.com/web2/M00/3C/6C/pYYBAGJTsuuAQHGqAADoZcROYJo665.png)
組態(tài)王與S7-200SMART PLC以太網(wǎng)通信
工業(yè)智能物聯(lián)網(wǎng)網(wǎng)關(guān)鋇錸BL110網(wǎng)口LAN采集西門子PLC S7-200Smart
西門子s7-200smart與s7-1200PLC通信技術(shù)
如何實(shí)現(xiàn) S7-200smart系列PLC的本地?cái)?shù)采及云端數(shù)采?
![如何實(shí)現(xiàn) <b class='flag-5'>S7-200smart</b>系列PLC的本地?cái)?shù)采及云端數(shù)采?](https://file.elecfans.com/web2/M00/70/23/pYYBAGNGjiiAWfj5AABNBrxtSis549.png)
西門子S7-1200與S7-200SMART進(jìn)行PN通信!
![西門子<b class='flag-5'>S7</b>-1200與<b class='flag-5'>S7-200SMART</b>進(jìn)行PN<b class='flag-5'>通信</b>!](https://file1.elecfans.com/web2/M00/8C/64/wKgZomSrvCqARYh8AAAzcuIDDQw628.png)
評(píng)論