Micro830中文modbus教程_第1頁
Micro830中文modbus教程_第2頁
Micro830中文modbus教程_第3頁
Micro830中文modbus教程_第4頁
Micro830中文modbus教程_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Copyright 2010 Rockwell Automation, Inc. All rights reserved.(Confidential For Internal Use Only)Allen-Bradley Micro800TM 可編程控制器可編程控制器Micro830/830 Modbus 技術(shù)培訓(xùn)技術(shù)培訓(xùn)Jan-23,2013(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 協(xié)議概述協(xié)議概述 Modbus是Modico

2、n公司在上世紀70年代為Modicon PLC開發(fā)的一款通信協(xié)議。 該協(xié)議使用簡單,多年來被很多第三方設(shè)備供應(yīng)商采用。 屬于半雙工的主/從協(xié)議。 由主站啟動通信(稱為的“查詢”),從站根據(jù)主站的要求作出響應(yīng)。 從站地址范圍:1 247 “0”地址用于廣播 主站沒有地址 不使用ACK或NAK應(yīng)答機制 數(shù)據(jù)傳送只是由主站發(fā)起查詢,從站響應(yīng)來完成 Modbus 接收者根據(jù)“靜音”時間間隔來判斷數(shù)據(jù)包是否傳送完畢。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserv

3、ed.Modbus 串行傳輸模式串行傳輸模式 Modbus ASCII 編碼系統(tǒng): 十六進制的ASCII碼09、AF (每個ASCII碼只包含一個十六進制字符) 每個字包括: 1 個開始位、7個數(shù)據(jù)位、可選的校驗位、12個停止位 錯誤校驗: 縱向冗余校驗 (LRC) 間隔:半個字符 容易實現(xiàn) (LRC vs. CRC) ,間隔較短 Modbus RTU 編碼系統(tǒng): 8位二進制碼表示的十六進制09、AF (8位數(shù)據(jù)中包含二個十六進制數(shù)) 每個字包括: 1 個開始位、8個數(shù)據(jù)位、可選的校驗位、12個停止位 錯誤校驗: 循環(huán)冗余校驗 (CRC-16) 間隔:3.5個字符 更高效 (包含的數(shù)據(jù)位較多)

4、,容錯能力強 (CRC 校驗)(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.間隔時間很重要間隔時間很重要 一個Modbus RTU 的信息幀期望在一個連續(xù)的數(shù)據(jù)流中被傳輸。如果在數(shù)據(jù)傳輸完成前出現(xiàn)一個時間大于預(yù)設(shè)的間隔時間的“靜音”,那么接收者將丟棄不完整的數(shù)據(jù),并且預(yù)期下一個字是下一個數(shù)據(jù)的地址信息,這將導(dǎo)致信息傳輸失敗。 同理,如果下一個信息與上一個信息間隔小于預(yù)設(shè)的間隔,那么接收者會認為該信息是上一個信息的延續(xù),這將導(dǎo)致校驗出錯。(Conf

5、idential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.間隔時間很重要間隔時間很重要 因此,Modbus的健壯性并不比過去的會出現(xiàn)虛假字符的無線電網(wǎng)絡(luò)強,也不比延時不確定的多通道的衛(wèi)星網(wǎng)絡(luò)強。 許多使用 Modbus 的人 (包括我們在內(nèi)) ,都會遇到因為間隔時間設(shè)置不當(dāng)而帶來的麻煩。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights res

6、erved.Modbus 信息幀信息幀 ASCII 數(shù)據(jù)幀:開頭 地址 功能碼 數(shù)據(jù) LRC校驗 結(jié)尾:(3A) 2個字符 2個字符 n個字符 2個字符 CRLF(0D0A) RTU數(shù)據(jù)幀:開頭 地址 功能碼 數(shù)據(jù) CRC校驗 結(jié)尾T1-T2-T3-T4 8位 8位 n x 8位 16位 T1-T2-T3-T4(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 信息幀信息幀 (從站) 地址 一個byte,有效值1247,0用于廣播 功能代

7、碼 一個byte,有效值1255 告訴從站需要干什么 數(shù)據(jù) 包含從站與功能碼相應(yīng)的動作所必須使用的附加信息,如:起始地址、數(shù)據(jù)長度等 某些功能碼不需要附加數(shù)據(jù) (因此,Modbus RTU包最小長度是4個byte)(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 信息幀信息幀 響應(yīng) 從站響應(yīng)時,在地址區(qū)發(fā)回自己的地址 從站響應(yīng)時,發(fā)回原先的功能碼,作為接收正確的響應(yīng) 如果有錯誤,則從站響應(yīng)時,會將原功能碼的最高位置位 如果有錯誤,則從站

8、響應(yīng)時,會將錯誤代碼放在數(shù)據(jù)區(qū) 典型的錯誤響應(yīng) 01 非法功能: 出現(xiàn)從站不支持的功能碼 02 非法數(shù)據(jù)地址:出現(xiàn)無效的數(shù)據(jù)地址 03 非法數(shù)據(jù)數(shù)值: 出現(xiàn)無效的數(shù)據(jù)數(shù)值(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 功能格式功能格式 Modicon 處理器有4個主要數(shù)據(jù)存儲區(qū) (數(shù)據(jù)表) :線圈 (輸出位 讀/寫): 00001-09999, 010000-065536輸入 (輸入位 只讀): 10001-19999, 100000

9、-165536輸入寄存器 (16位字 -只讀): 30001-39999, 310000-365536保存寄存器 (16位字 - 讀/寫): 40001-49999, 410000-465536 注意:每組的數(shù)據(jù)范圍都從“1”開始 然而,所有的Modbus信息幀中的數(shù)據(jù)地址偏移量是“0”! 第一個出現(xiàn)的數(shù)據(jù),其地址是“0”。例如: 線圈1 在Modbus的地址是“0000” 線圈127 在Modbus的地址是十六進制“007E” (十進制126) 保存寄存器40001在Modbus的地址是“0000”, ( 4XXXX 或 4XXXXX 隱性地與功能碼相對應(yīng))(Confidential For

10、 Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 功能格式功能格式 這給文檔描述帶來混淆。你會發(fā)現(xiàn)如下針對保持寄存器的描述,例如: 保持寄存器0 (從0開始的編址方式) 保持寄存器1 (從1開始的編址方式) 保持寄存器40001 (5位地址格式) ,或 400001 (6位地址格式) 數(shù)據(jù)長度 當(dāng)讀寫多個數(shù)據(jù)時,表示數(shù)據(jù)長度的字會出現(xiàn)在數(shù)據(jù)和校驗區(qū)之間。(Confidential For Internal Use Only) Copyright 2010 Rockwel

11、l Automation, Inc. All rights reserved.Modbus 功能代碼功能代碼功能代碼 名稱地址范圍 (5 位 6 位)01讀線圈狀態(tài)00001-09999, 000001-06553602讀輸入狀態(tài)10001-19999, 100001-16553603讀保持寄存器40001-49999, 400001-46553604讀輸入寄存器30001-39999, 300001-36553605強制(寫) 單個線圈00001-09999, 000001-06553606預(yù)置(寫) 單個寄存器40001-49999, 400001-46553615強制(寫) 多個線圈00

12、001-09999, 000001-06553616預(yù)置(寫) 多個寄存器40001-49999, 400001-465536(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Micro830/850 串口設(shè)置串口設(shè)置 內(nèi)置的串口設(shè)置方法與Plug-in 串口模塊(2080-SERIALISOL) 的設(shè)置方法相同 (注意:高級設(shè)置時,窗口需要展開):(Confidential For Internal Use Only) Copyright 2010

13、 Rockwell Automation, Inc. All rights reserved.Micro830/850 串口設(shè)置串口設(shè)置 CCW Release 2的通信驅(qū)動有4個可選:ASCII、CIP Serial (缺省值)、Modbus RTU、Shutdown: 可選比特率:1200, 2400, 9600, 19200, 38400(缺省值) , 校驗類型可選:None (缺省值)、Odd、Even.(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights res

14、erved.串口串口Modbus RTU 的設(shè)定的設(shè)定 Unit Address: 0 (缺省值), 1247 ,是Modbus RTU 從站地址。 注意:“0”地址用于廣播,不用于Modbus RTU 從站地址。Modbus RTU 主站沒有地址,可以設(shè)為“0”。 Modbus Role有三種可選: Modbus RTU Master (缺省值)、 Modbus RTU Slave、 Modbus RTU Auto (既可作主站,也可作從站)(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc

15、. All rights reserved.串口串口Modbus RTU 高級設(shè)定高級設(shè)定 Media: RS232 (缺省值) 無握手 RS232 RTS/CTS 使用 RTS/CTS 握手 RS485 內(nèi)置串口,需要1763-NC01 電纜連接 RTS Pre-Delay/Post-Delay: 0ms (缺省值), 0-999,999,999ms 在傳輸前和傳輸后,RTS被置位的最短提前和滯后時間 (只有當(dāng)介質(zhì)設(shè)為 RS232 RTS/CTS 時). Data Bits: 固定8位 Stop Bits: 1 (缺省)或 2(Confidential For Internal Use On

16、ly) Copyright 2010 Rockwell Automation, Inc. All rights reserved.串口串口Modbus RTU 高級設(shè)置高級設(shè)置 Response Timer: 200ms (缺省值), 0-999,999,999ms Modbus RTU 主站等待從站響應(yīng)的最長時間,該時間對所有的 MSG_MODBUS 指令有效。如果在此時間內(nèi)沒有響應(yīng),則指令出現(xiàn)超時故障 (故障代碼是55) 。 注意:對于一個硬接線的Modbus 網(wǎng)絡(luò),該時間可以減少到 200ms(對應(yīng)9600波特率),100ms(對應(yīng)19,200波特率),50ms(對應(yīng)38,400波特率)

17、,以減少無響應(yīng)節(jié)點的等待時間。 Broadcast Pause:200ms (缺省值), 0-999,999,999ms Modbus RTU 主站發(fā)完前一個廣播后到下一個廣播前的最短時間間隔(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.串口串口Modbus RTU 高級設(shè)置高級設(shè)置 Inter-Char Timeout:0ms (缺省值), 0-999,999,999ms Modbus RTU 協(xié)議根據(jù)傳輸過程中“靜音”時間是否超過“Inter

18、-Char Timeout”的值來判斷一個數(shù)據(jù)包是否已完全被接收。數(shù)字0意味著Modbus的該值為3.5個字符的時間間隔。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.串口診斷串口診斷 在Release 2,CCW 仍不能顯示串口診斷計數(shù)。 當(dāng)任何一個串口無論是發(fā)送數(shù)據(jù)還是接收數(shù)據(jù),控制器的通信指示燈COMM都會閃爍 (因此,在多串口情況下,無法判斷哪個串口正在收發(fā)數(shù)據(jù))。COMM LED指示燈閃爍最短時間是 250 毫秒。(Confidenti

19、al For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 從站從站 Mapping 設(shè)置設(shè)置 為了響應(yīng)Modbus 主站的讀寫命令,PLC的變量必須映射到 Modbus 地址中 雙擊Variable Name下方的單元格,打開變量選擇窗口:(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 從站從站 Mappi

20、ng 設(shè)置設(shè)置 選擇變量,點擊 OK,然后輸入合適的Modbus地址,(從1開始,有5位的和6位的二種格式) : 0 xxxx 或 0 xxxxx,輸出/線圈 (最高到 09999 或 065536) 1xxxx 或 1xxxxx,輸入/觸點 (最高到 19999 或 165536) 3xxxx 或 3xxxxx,輸入/只讀寄存器 (最高到 39999 或 365536) 4xxxx 或 4xxxxx,保持/讀寫寄存器 (最高到 49999 或 465536)(Confidential For Internal Use Only) Copyright 2010 Rockwell Automat

21、ion, Inc. All rights reserved.Modbus 從站從站 Mapping 設(shè)置設(shè)置 CCW 會根據(jù)數(shù)據(jù)類型,自動填寫已經(jīng)Mapping的地址數(shù)量(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 從站從站 Mapping 設(shè)置設(shè)置 重要提示!強烈推薦:連續(xù)使用Modbus地址,中間不要留無用的地址。因為大多數(shù)Modbus 主站設(shè)備(如PVC屏)為了提高效率,會對連續(xù)的數(shù)據(jù)塊進行讀寫。例如,如果你只讓PVC顯示Mo

22、dbus 寄存器40001 和40009的值,那么,PVC會使用一條讀指令將4000140009的值一次性全部讀入,而不會分二次讀。如果40002-40008 的值沒有被Map,則指令會出現(xiàn)02錯誤代碼(非法數(shù)據(jù)地址)。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 從站從站 Mapping 設(shè)置設(shè)置 重要提示! (接上頁)你可以在Modbus主站里設(shè)置塊讀寫的長度。對PVC來說,在控制器設(shè)置欄里,可以設(shè)置該參數(shù),缺省值是32。 (C

23、onfidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 從站從站 Mapping 設(shè)置設(shè)置 限制:Modbus mapping 表中,最多只能有200條有些數(shù)據(jù)類型:TIME、DATE、STRING,不能map任何數(shù)據(jù)類型的數(shù)組都不能map(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus

24、主站主站 Message 指令指令 為了使用Modbus message 指令, 先將一個block拖放到梯形圖中,然后選擇 MSG_MODBUS(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 黃色三角形警告,提示必須為指令塊的輸入端指定所需數(shù)據(jù)類型的常數(shù)或變量。輸出端則不是必須的。(Confidential For Internal Use Only) Copyright 2010 Rockwel

25、l Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 IN MSG_MODBUS 指令由IN的上升沿觸發(fā),一旦觸發(fā),指令將一直執(zhí)行,不管IN后來是否為真,直到執(zhí)行完成。 Cancel 將Cancel置為真是唯一終止MSG_MODBUS執(zhí)行的方法。通常你可以讓該引腳常 FALSE,以確保指令正常執(zhí)行。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Mes

26、sage 指令指令 LocalCfg 用于設(shè)置本地(主站),其數(shù)據(jù)類型是MODBUSLOCPARA,結(jié)構(gòu)如下: LocalCfg.Channel LocalCfg.TriggerType LocalCfg.Cmd LocalCfg.ElementCnt(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 創(chuàng)建一個類型為MODBUSLOCPARA的本地變量,并將其指定給MSG指令的LocalCfg 輸入。你

27、可以為其設(shè)置初始值(如下圖),也可以通過變量和邏輯程序來賦值。 MyLocalCfg.Channel=5 (通道號:左起第一個插槽) MyLocalCfg.TriggerType=0 (觸發(fā)類型:非連續(xù)型) MyLocalCfg.Cmd=3 (命令:讀保持寄存器) MyLocalCfg.ElementCnt=4 (數(shù)據(jù)長度:4 個字)(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 TargetCfg

28、 用于設(shè)置遠端(從站),其數(shù)據(jù)類型是 MODBUSTARPARA,數(shù)據(jù)結(jié)構(gòu)如下: TargetCfg.Addr TargetCfg.Node(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 創(chuàng)建一個類型為MODBUSTARPARA的本地變量,并將其指定給MSG指令的TargetCfg 輸入。你可以為其設(shè)置初始值(如下圖),也可以通過變量來賦值。 MyTargetCfg.Addr=8449 MyTarg

29、etCfg.Node=100(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 LocalAddr 用于數(shù)據(jù)緩存,其數(shù)據(jù)類型是MODBUSLOCADDR,該類型是一個由125個WORD組成的數(shù)組。對讀命令而言,LocalAddr 用來儲存從從站讀來的數(shù)據(jù)(最多125個WORD)。對寫命令而言,LocalAddr 存放需要寫入從站的數(shù)據(jù)(最多123個WORD)。創(chuàng)建一個類型為MODBUSLOCADDR的本

30、地變量,并將其指定給MSG指令的LocalAddr 輸入。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 現(xiàn)在,MSG_MODBUS 指令已經(jīng)設(shè)置成功:通過插在左邊第一個插槽的2080-SERIALISOL plug-in 串口模塊,用非連續(xù)觸發(fā)的方式,讀取從站的48449-48452保持寄存器,數(shù)據(jù)存放在MyReadData1MyData4,從站地址為100。 當(dāng)MSG指令成功執(zhí)行完成后,輸出Q

31、將置為TRUE (MSG_MODBUS_1.Q=1). 如果MSG指令執(zhí)行不成功,則輸出Q 保持FALSE,輸出 Error 置為TRUE (MSG_MODBUS_1.Error=1),同時輸出 ErrorID 給出十進制的錯誤代碼。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 在連續(xù)型觸發(fā)模式下(MyLocalCfg.TriggerType=1), 輸出Q 和ERROR 保持false,ERRO

32、RID 為 0 每個串口(48 點的控制器可支持5個plug-in串口模塊,以及一個內(nèi)置的串口) 擁有自己獨立的數(shù)據(jù)收發(fā)緩沖區(qū)。(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Modbus 主站主站 Message 指令指令 MSG_MODBUS 成功執(zhí)行完畢: MSG_MODBUS 執(zhí)行出錯:(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc.

33、All rights reserved.Modbus 主站主站 Message 指令指令 故障碼及說明(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Message 指令編程示例指令編程示例基本的 MSG 梯形圖邏輯:1. 非連續(xù)型 每個IN的上升沿觸發(fā)一次 當(dāng)MSG指令被觸發(fā)時,其輸出端 Q 和 Error 將被復(fù)位(Confidential For Internal Use Only) Copyright 2010 Rockwell Automation, Inc. All rights reserved.Message 指令編程示例指令編程示例基本的 MSG 梯形圖邏輯:2. 連續(xù)型 MSG 盡可能快 只要輸入IN為TRUE,Message 指令一旦執(zhí)行完成后,無論是否成功,都會立即再一次觸發(fā),而且不會輸出 Q 和Error(Confidential For Internal Use Only) Copyright 2010 Rockwell Automa

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論