版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三章 Modbus總線變頻器控制第一節(jié) Modbus協(xié)議Modbus協(xié)議是由第一臺PLC的發(fā)明者Modicon公司(現(xiàn)在是施耐德電氣公司的一部分)于1978年開發(fā)的,最早的設(shè)想是在RS232端口上實現(xiàn)控制器和智能型傳感器之間控制數(shù)據(jù)的傳輸。1979年,Modicon公司將Modbus協(xié)議推廣到市場上,為眾多設(shè)備制造商在其不同的設(shè)備中所采用,成為智能型設(shè)備之間建立主從式或客戶機-服務(wù)器通訊的“事實上”的標準。Modbus是一個應(yīng)用層通信協(xié)議(即OSI模型第7層),目前基于Modbus協(xié)議的網(wǎng)絡(luò)主要有三種:1、異步串行傳輸(RS232、RS422/485)2、Modbus Plus高速令牌網(wǎng)3、
2、TCP/IP以太網(wǎng)本章主要介紹Modbus異步串行傳輸網(wǎng)絡(luò)。一、Modbus協(xié)議簡介Modbus協(xié)議定義了一個獨立于基本通訊層的簡單的協(xié)議數(shù)據(jù)單元(PDU,Protocol Data Unit),由功能代碼區(qū)和數(shù)據(jù)區(qū)組成;在特定總線或網(wǎng)絡(luò)上,可以通過引入一些輔助區(qū)形成應(yīng)用數(shù)據(jù)單元(ADU,Application Data Unit),如圖31所示。圖31 Modbus結(jié)構(gòu)圖ADUPDU數(shù)據(jù)錯誤校驗功能代碼服務(wù)器地址Modbus協(xié)議數(shù)據(jù)單元(PDU)定義了客戶機向服務(wù)器發(fā)出請求的格式,其中功能是指服務(wù)器所執(zhí)行的動作。例如,客戶機可以向服務(wù)器請求讀一組離散量輸入或輸出的“開/關(guān)”狀態(tài),或讀/寫一組
3、寄存器的數(shù)值,如圖32所示。功能代碼區(qū)由1個字節(jié)組成,有效的范圍是1255,其中128255保留作為異常響應(yīng)功能代碼。當一個消息從客戶機發(fā)送到服務(wù)器時,功能代碼區(qū)將告訴服務(wù)器執(zhí)行何種動作;一些功能代碼還有子代碼,以定義多重動作。數(shù)據(jù)區(qū)包含服務(wù)器執(zhí)行功能代碼所定義動作的必要信息,如離散量和寄存器地址、數(shù)量、以及實際數(shù)據(jù)字節(jié)的計數(shù)值等。在某些特定的請求中,可能沒有數(shù)據(jù)區(qū)(0長度),在這種情況下,服務(wù)器動作由功能碼直接指定,無需輔助信息。服務(wù)器一旦接收到客戶機的請求,將作出相應(yīng)的響應(yīng)。如果沒有與Modbus功能請求相關(guān)的錯誤發(fā)生,客戶機將接收到服務(wù)器根據(jù)功能代碼請求所返回的正確的數(shù)據(jù);如果發(fā)生了錯誤
4、,客戶機將接收到一個異常代碼,可以根據(jù)這個異常代碼決定下一步動作。當服務(wù)器回應(yīng)客戶機時,回應(yīng)的功能代碼區(qū)既可表示一個正常的響應(yīng),也可表示發(fā)生了錯誤(稱異常響應(yīng))。對一個正常的響應(yīng),服務(wù)器簡單地返回原功能代碼;對異常響應(yīng),服務(wù)器將返回一個將原功能代碼最高位置“1”(原功能代碼+80H)的異常功能代碼。圖32 Modbus交換異常功能代碼異常代碼有錯誤響應(yīng)接收回應(yīng)錯誤檢測發(fā)出錯誤請求數(shù)據(jù)功能代碼發(fā)出請求客戶機服務(wù)器服務(wù)器客戶機發(fā)出請求功能代碼請求數(shù)據(jù)執(zhí)行動作發(fā)出回應(yīng)功能代碼響應(yīng)數(shù)據(jù)接收回應(yīng)無錯誤響應(yīng)對異步串行傳輸,Modbus協(xié)議定義的應(yīng)用數(shù)據(jù)單元(ADU)的長度最大為256個字節(jié),包括服務(wù)器地址
5、的1個字節(jié)和錯誤校驗(CRC)的2個字節(jié),則協(xié)議數(shù)據(jù)單元()PDU的最大長度為253字節(jié)。同時,對于數(shù)據(jù)區(qū)內(nèi)的地址和數(shù)據(jù),當數(shù)值大于1個字節(jié)時,數(shù)據(jù)的傳輸是高位字節(jié)先發(fā)送,如數(shù)值“1234H”,先發(fā)送“12H”,再發(fā)送“34H”。二、功能代碼及異常響應(yīng)圖33 Modbus交換狀態(tài)圖接收MB指令等待一個MB指令異常代碼_1有效的功能代碼有效的數(shù)據(jù)地址異常代碼_2有效的數(shù)據(jù)值異常代碼_3執(zhí)行MB功能異常代碼_4/5/6發(fā)送MB響應(yīng)發(fā)送MB異常響應(yīng)YYYYNNNNModbus協(xié)議被廣泛應(yīng)用于設(shè)備的監(jiān)控和編程、智能設(shè)備與傳感器和儀器的通訊、以及采用計算機和人機界面對現(xiàn)場設(shè)備的監(jiān)控等場合;Modbus協(xié)
6、議還是一個理想的RTU(Remote Terminal Unit,遠程終端測控單元)應(yīng)用協(xié)議,廣泛應(yīng)用于石油、天然氣及其子站等需要無線通訊的場合;Modbus協(xié)議不僅應(yīng)用于工業(yè)領(lǐng)域,在建筑、市政工程、交通和能源等領(lǐng)域也得到了廣泛的應(yīng)用。第二節(jié)MODBUS協(xié)議的實現(xiàn)MODBUS協(xié)議定義了一個控制器能認識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。它描述了一個控制器請求訪問其它設(shè)備的過程,如何回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。當在MODBUS網(wǎng)絡(luò)上通信時,此協(xié)議決定了每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動
7、。如果需要回應(yīng),控制器將生成反饋信息并用MODBUS協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了MODBUS協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯誤檢測的方法(如:MODBUS TCP/IP)。MODBUS 協(xié)議有 ASCII 和 RTU (遠程終端單元)兩種傳輸方式,在ASCII 方式中,消息中的每個8Bit字節(jié)需2個ASCII字符,其優(yōu)點是允許字符的傳輸間隔達到1秒而不產(chǎn)生錯誤;在RTU方式,每個8Bit字節(jié)包含兩個4Bit的十六進制字符,其優(yōu)點是,在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù),但每個消息必須以連續(xù)的流傳輸,約95%的Mo
8、dbus總線采用RTU方式。MODBUS的RTU方式采用CRC-16的冗余校驗方式,規(guī)定通信字符串的最后兩個字節(jié)用于傳遞循環(huán)冗余校驗數(shù)據(jù),其方法是將整個字符串(不包括最后兩個字節(jié))的所有字節(jié)按規(guī)定的方式進行位移并進行XOR(異或)計算,接收方在收到該字符串時按同樣的方式進行計算,并將結(jié)果同收到的循環(huán)冗余校驗的兩個字節(jié)進行比較,如果一致則認為通信正確,如果不一致,則認為通信有誤,從站將發(fā)送CRC錯誤應(yīng)答。MODBUS的RTU方式的幀格式:1個起始位8個數(shù)據(jù)位,最小的有效位先發(fā)送1個奇偶校驗位,無校驗則無1個停止位或 2個停止位(無校驗時)兩種傳輸模式中(ASCII或RTU),傳輸設(shè)備以將MODB
9、US消息轉(zhuǎn)為有起點和終點的幀,這就允許接收的設(shè)備在消息起始處開始工作,讀地址分配信息,判斷哪一個設(shè)備被選中(廣播方式則傳給所有設(shè)備),判知何時信息已完成。使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始(如下圖的T1-T2-T3-T4所示)。在網(wǎng)絡(luò)波特率多樣的情況下,字符時間是最容易實現(xiàn)的。傳輸?shù)牡谝粋€域是設(shè)備地址,可以使用的傳輸字符是十六進制的0.9,A.F。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時間內(nèi)。當?shù)谝粋€域(地址域)接收到,每個設(shè)備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結(jié)束。一個新的消息可在此停頓后開始。整個消
10、息幀必須作為一連續(xù)的流傳輸。如果在幀完成之前有超過3.5個字符時間的停頓時間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設(shè)備將認為它是前一消息的延續(xù)。這兩種情形都將導(dǎo)致錯誤,因為在最后的CRC域的值不可能是正確的。一個典型的消息幀如下所示:起始位設(shè)備地址功能代碼數(shù)據(jù)CRC校驗結(jié)束符T1-T2-T3-T48Bit8Bitn個8Bit16BitT1-T2-T3-T4消息幀的地址域包含兩個字符(8Bits),可能的從設(shè)備地址是十進制的0.247 。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來選通從設(shè)備。
11、當從設(shè)備發(fā)送回應(yīng)消息時,它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個設(shè)備作出回應(yīng)。地址0是用作廣播地址,以使所有的從設(shè)備都能認識。當MODBUS協(xié)議用于更高水準的網(wǎng)絡(luò),廣播可能不允許或以其它方式代替。消息幀中的功能代碼域包含了兩個字符(8Bits),可能的代碼范圍是十進制的1.255。有些控制器適用所有的代碼,有些控制器僅適用部分代碼,取決于控制器采用的代碼完整與否。當消息從主設(shè)備發(fā)往從設(shè)備時,功能代碼域?qū)⒏嬷畯脑O(shè)備需要執(zhí)行哪些行為。例如去讀取輸入的開關(guān)狀態(tài),讀一組寄存器的數(shù)據(jù)內(nèi)容,讀從設(shè)備的診斷狀態(tài),允許調(diào)入、記錄、校驗在從設(shè)備中的程序等。當從設(shè)備回應(yīng)時,它使用功能代碼域來指示是
12、正?;貞?yīng)(無誤)還是有某種錯誤發(fā)生(稱作異議回應(yīng))。對正?;貞?yīng),從設(shè)備僅回應(yīng)相應(yīng)的功能代碼。對異議回應(yīng),從設(shè)備返回一等同于正常代碼的代碼,但最高位為邏輯1(+80H)。數(shù)據(jù)域是由兩個十六進制數(shù)集合構(gòu)成的,范圍00.FF。根據(jù)網(wǎng)絡(luò)傳輸模式,這可以是由一對ASCII字符組成或由RTU字符組成。主設(shè)備發(fā)給從設(shè)備消息的數(shù)據(jù)域包含了附加的信息:如寄存器地址,要處理項的數(shù)目,域中實際數(shù)據(jù)字節(jié)等。從設(shè)備必須執(zhí)行由功能代碼所定義的請求。如果沒有錯誤發(fā)生,從設(shè)備返回的數(shù)據(jù)域包含請求的數(shù)據(jù)。如果有錯誤發(fā)生,此域包含一異議代碼,主設(shè)備應(yīng)用程序可以用來判斷采取下一步行動。標準的MODBUS網(wǎng)絡(luò)有兩種錯誤檢測方法。錯誤
13、檢測域的內(nèi)容視所選的檢測方法而定。當選用RTU模式作字符幀,錯誤檢測域包含一16Bits值(用兩個8位的字符來實現(xiàn))。錯誤檢測域的內(nèi)容是通過對消息內(nèi)容進行循環(huán)冗長檢測方法得出的。CRC域附加在消息的最后,添加時先是低字節(jié)然后是高字節(jié)。故CRC的高位字節(jié)是發(fā)送消息的最后一個字節(jié)。當消息在標準的MODBUS系列網(wǎng)絡(luò)傳輸時,每個字符或字節(jié)以如下方式發(fā)送(從左到右):最低有效位.最高有效位??刂破髋cPLC之間通信的內(nèi)容包括主站對從站的讀取和寫入,MODBUS規(guī)定,只有主站具有主動權(quán),從站只能被動的響應(yīng),包括回答出錯信息。數(shù)據(jù)通信的一般如下: (1) 查詢查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種
14、功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀或?qū)懠耙x的寄存器數(shù)量或?qū)懙臄?shù)值。錯誤檢測域為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。例如:功能代碼03(十進制)是要求讀從設(shè)備保持寄存器并返回它們的內(nèi)容,功能代碼16(十進制)是對從設(shè)備輸出寄存器寫值 (允許采用廣播方式)。(2) 回應(yīng)如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):如寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的(功能代碼80H),同時數(shù)據(jù)段包含了描述此錯誤信息的代碼(1-從站不能
15、識別主站的請求,2-請求幀中的從站地址不存在,3-主站的請求不允許,4從站不能完成請求)。錯誤檢測域允許主設(shè)備確認消息內(nèi)容是否正確。例如:主站讀取從站N個寄存器(MODBUS 功能03):主站命令:從站地址 命令字 欲讀寄存器首地址 欲讀字個數(shù) CRC16 1 byte 1 byte 2 bytes 2 bytes 2 bytes 01 03 00 04 00 02 85 CA從站回送:從站地址 命令字 讀到的字長度 寄存器內(nèi)容 CRC16 1 byte 1 byte 1 byte n bytes 2 bytes 01 03 04 42 C8 00 00 6F B5標準的 MODBUS物理層采
16、用了RS-232串行通信標準,遠距離或多點通訊時可以考慮用RS-422或者RS-485來代替。Modbus通信的網(wǎng)絡(luò)結(jié)構(gòu)為主從模式,因此在工業(yè)領(lǐng)域采用半雙工的RS-485較多。在PC機上可以通過使用RS-485插卡或者RS-232/ RS-485轉(zhuǎn)換模塊,可實現(xiàn)多點通信。采用帶有120W特性阻抗的屏蔽雙絞線,確認在通訊電纜的兩邊都有終端匹配電阻(120W),并將屏蔽小心接地。從站數(shù)限制為32個以下。實現(xiàn)通信的過程中要對從站地址、寄存器地址、及數(shù)據(jù)量等進行判定。若是與PLC或者其它標準的通信設(shè)備進行連接時,需要考慮實際的結(jié)構(gòu),即寄存器地址圍,如0x 表示輸出線圈、1x 表示離散量輸入、3x 表示
17、輸入寄存器、4x 表示保持寄存器。注意,寄存器地址是從1開始的,如40001代表0號保持寄存器地址。Modbus協(xié)議規(guī)定每個消息不超過256個字節(jié),在Windows下MODBUS通信可采用MSCOMM控件來實現(xiàn)。以從站為例,左面是實現(xiàn)通信的流程圖。在PC機上實現(xiàn)Modbus協(xié)議的關(guān)鍵是CRC校驗值的算法,有兩種方法:根據(jù)CRC校驗的定義公式進行計算,或在程序中建立CRC校驗值表查找。因為對于固定字節(jié)CRC校驗計算的多項式因子,其CRC值是固定的,因而,采用查表法可以簡化了計算過程、節(jié)省應(yīng)答時間、提高通信效率。查表法計算CRC校驗值程序參見附錄二。第三節(jié)ATV58變頻器通訊控制PLC編程舉例一、
18、硬件連接ATV58變頻器內(nèi)置的Modbus接口物理層為RS485,采用Modbus RTU方式(8個數(shù)據(jù)位、1個停止位、無校驗位),波特率必須為19.2Kbit/s,連接介質(zhì)可采用屏蔽雙絞線,傳輸距離可達1000 米。注意:單總線上連接ATV58變頻器最多為18臺(物理層限制)。取下ATV58變頻器的操作面板,可以看到本機上的Modbus 9針D型接口,該接口RS485管腳定義如下:¨ 管腳 3: D(A)¨ 管腳 7: D(B)控制器與變頻器RS485連接參見圖一。圖一 PLC與變頻器RS485連接示意圖ATV58ATV58控制器ABABBA1nF120W屏蔽雙絞線3、A
19、TV58 變頻器的Modbus通訊設(shè)置ATV58 變頻器的Modbus 通訊參數(shù)需要通過操作面板預(yù)先予以設(shè)置如下:控制菜單 (CTL: 4-CONTROL):面板控制 (LCC: Keypad Comm.) No (取消面板操作)變頻器地址 (Add: DriveAddress) - 1,2, 18 (Modbus從站地址)ATV58變頻器采用通訊功能時,其外部端子控制功能是無效的,通過對邏輯輸入口(如LI4)進行編程設(shè)置為強制本地控制方式,可實現(xiàn)變頻器的遠程/本地切換控制。注意,最好將變頻器在本地控制方式下調(diào)試完畢后,再進行通訊控制,一方面可以避免因為變頻器參數(shù)設(shè)置的原因?qū)е伦冾l器工作不正常
20、;同時,可以簡化通訊的內(nèi)容和交換數(shù)據(jù)的數(shù)量。二、PLC編程舉例施耐德電氣公司的Modicon TSX Micro PLC是一種面向機器和設(shè)備的中小型PLC,本機最大可達256 I/O點,具備強大的內(nèi)存擴展和通訊擴展功能;其編程軟件PL7 PRO與中型PLC Premium兼容,不僅編程簡單方便,同時具有中型PLC的強大功能(如豐富的庫函數(shù)和算術(shù)表達式編程等)。在Micro PLC上實現(xiàn)Modbus主站有兩種方式:1、通過編程軟件直接將編程端口(Channel 0)設(shè)置為Modbus Master方式。2、在通訊擴展插槽(Channel 1)內(nèi)插入TSXSCP114 - RS485 PCMCIA多協(xié)議通訊卡,通過編程軟件將該通訊卡設(shè)置為Modbus Master方式。注意,采用第一種方式時,通訊口為非隔離的,當傳輸距離大于10米時應(yīng)采用總線隔離器(如:TSXPACC01)。此外,Modbus通訊參數(shù)必須與變頻器一致。在PLC的軟件編程中,通過庫函數(shù)中的通訊指令即可簡單地實現(xiàn)對ATV58變頻器的內(nèi)部通訊變量的訪問:READ_VAR(ADR#m.v.i,%MW,450,10,%MW100:10,%MW150:4)%MW150:X
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第1單元 古代亞非文明(高頻選擇題50題)(解析版)
- 第22課 抗日戰(zhàn)爭的勝利(解析版)
- 影像處理算法改進-洞察分析
- 藥店移動支付技術(shù)應(yīng)用-洞察分析
- 線上教學(xué)效果提升路徑-洞察分析
- 遺傳與環(huán)境互作研究-洞察分析
- 塑料絲回收利用-洞察分析
- 小吃食品安全與質(zhì)量控制-洞察分析
- 衛(wèi)生陶瓷品牌形象塑造與傳播-洞察分析
- 云計算安全監(jiān)管策略-洞察分析
- 2024秋期國家開放大學(xué)??啤陡叩葦?shù)學(xué)基礎(chǔ)》一平臺在線形考(形考任務(wù)一至四)試題及答案
- 九年級上冊部編版歷史-1-4單元(1-12課)復(fù)習(xí)
- 消防改造期間消防應(yīng)急預(yù)案
- 酒精依賴綜合征的護理
- DL-T 380-2010接地降阻材料技術(shù)條件
- 安防設(shè)備更新改造項目可行性研究報告-超長期國債
- 2024過敏性休克搶救指南(2024)課件干貨分享
- 2024年紀委監(jiān)委招聘筆試必背試題庫500題(含答案)
- 【發(fā)動機曲軸數(shù)控加工工藝過程卡片的設(shè)計7800字(論文)】
- 中藥破壁飲片文稿專家講座
- 2025年高考語文備考之名著閱讀《鄉(xiāng)土中國》重要概念解釋一覽表
評論
0/150
提交評論