freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

modbus協(xié)議論文(編輯修改稿)

2024-12-14 02:00 本頁面
 

【文章內(nèi)容簡介】 83。 42 力控軟件變量定義及相關(guān)參數(shù)設(shè)置 44 總結(jié) 47 參考文獻(xiàn) 48 致 謝 49 東北石油大學(xué)秦皇島分校 畢業(yè)論文 1 第 1 章 MODBUS 協(xié)議簡介 關(guān)于 Modbus 協(xié)議 Modbus 協(xié)議 是應(yīng)用于電子控制器上的一種通用語言。 通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信。它已經(jīng)成為一工業(yè)通用標(biāo)準(zhǔn)。有了它,不 同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。 此協(xié)議定義了一個控制器能認(rèn)識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了一控制器請求訪問其它設(shè)備的過程,如何回應(yīng)來自其他設(shè)備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。 當(dāng)在一 Modbus 網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個控制器需要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成反饋信息并用 Modbus 協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了 Modbus 協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上 使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯誤檢測的方法。 在 Modbus 網(wǎng)絡(luò)上傳輸 標(biāo)準(zhǔn)的 Modbus 口是使用 RS— 232C 兼容串行接口,它定義了連接口的針腳、電纜、信位號、傳輸波特率、奇偶校驗(yàn)。 控制器能直接或經(jīng)由 Modem 組網(wǎng)。 控制器通信使用主 — 從技術(shù),即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。 典型的主設(shè)備 :主機(jī)和可編程儀表。典型的從設(shè)備:可編程控制器。 主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從 設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。 Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、錯誤檢測域。 從設(shè)備回應(yīng)消息也由 Modbus 協(xié)議構(gòu)成,包括確認(rèn)要行動的域、任何要返回的數(shù)據(jù)和錯誤檢測域。如果在消息接收過程中發(fā)生錯誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯誤消息并把它作為回應(yīng)發(fā)送出去。 在其它類型網(wǎng)絡(luò)上傳輸 在其它網(wǎng)絡(luò)上,控制器使用對等技術(shù)通信,故任何控制都能初始和其它控制器的通信。這樣在單獨(dú)的通信 過程中,控制器既可作為主設(shè)備也可作為從設(shè)備。提供的多個內(nèi)部通道可允許同時(shí)發(fā)生的傳輸進(jìn)程。 在消息位, Modbus協(xié)議仍提供了主 — 從原則,盡管網(wǎng)絡(luò)通信方法是“對等”。如果以控制器發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到回應(yīng)。同樣,當(dāng)控制器接收到一消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器。 查詢 — 回應(yīng)周期 東北石油大學(xué)秦皇島分校 畢業(yè)論文 2 圖 11 主 — 從查詢回應(yīng)周期表 1 查詢 查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能,數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼 03 是要求從設(shè) 備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告知從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息的內(nèi)容是否正確的方法。 2 回應(yīng) 如果從設(shè)備產(chǎn)生一種正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù) :象寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的,同時(shí)數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。 接口方式 RS485 或 RS232 接口:異步, 半雙工。默認(rèn)數(shù)據(jù)格式: 8 位數(shù)據(jù)位、偶校驗(yàn)、一位停止位, 19200bps, RTU??稍O(shè)置為 38400bps、 19200bps、 9600bps、 4800bps、 1200bps;最高可設(shè)置波特率位 38400bps。 數(shù)據(jù)域:支持 2?255個字節(jié)( ASCII 模式)、 252字節(jié)( RTU 模式) GCM系列 PLC有兩個通信口,其通信口 0(也作為編程口)支持 MODBUS 從站,通信口 1 支持MODBUS 主站和從站(可有后臺軟件設(shè)置)。 東北石油大學(xué)秦皇島分校 畢業(yè)論文 3 第 2 章 MODBUS 通訊協(xié)議的格式 控制器 能設(shè)置為兩種傳輸模式( ASCII 或 RTU)中的 任何一種在標(biāo)準(zhǔn)的 Modbus網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗(yàn)方式等),在配置每個控制器的時(shí)候,在一個 Modbus 網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。 表 21 ModBus 的兩種傳輸模式 ASCII 模式 地址 功能代碼 數(shù)據(jù)數(shù)量 數(shù)據(jù) 1 ... 數(shù)據(jù) n LRC高 LRC低字節(jié) 回車 換行 RTU模式 地址 功能代碼 數(shù)據(jù)數(shù)量 數(shù)據(jù)1 … 數(shù)據(jù)n CRC高 CRC低字節(jié) 所選 的 ASCII 或 RTU 方式僅適用于標(biāo)準(zhǔn)的 Modbus 網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳 輸?shù)南⒍蔚拿恳晃?,以及怎樣將信息打包成消息域和如何解碼。 在其它網(wǎng)絡(luò)上(像 MAP 和 Modbus Plus) Modbus 消息被轉(zhuǎn)成與串行傳輸無關(guān)的幀。 RTU 模式 當(dāng)控制器設(shè)為在 Modbus 網(wǎng)絡(luò)上以 RTU(遠(yuǎn)程終端單元)模式通信,在消息中的每個 8Bit 字節(jié)包含兩個 4Bit 的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可比 ASCII 方式傳送更多的數(shù)據(jù)。 代碼系統(tǒng) ? 8 位二進(jìn)制,十六進(jìn)制數(shù) 0? 9, A? F ? 消息中的每個 8 位域都是一個兩個十六進(jìn)制字符組成 每個字節(jié)的位 ? 1 個起始位 ? 7 個數(shù)據(jù) 位,最小的有效位先發(fā)送 ? 1 個奇偶校驗(yàn)位,無校驗(yàn)則無 ? 1 個停止位(有校驗(yàn)時(shí)), 2 個 Bit(無校驗(yàn)時(shí)) 錯誤檢測域 ? CRC(循環(huán)冗長檢測) 使用 RTU模式,消息發(fā)送至少要以 。在網(wǎng)絡(luò)波特 東北石油大學(xué)秦皇島分校 畢業(yè)論文 4 率下多樣的字符時(shí)間,這是最容易實(shí)現(xiàn)的(如下圖的 T1T2T3T4所示)。傳輸?shù)牡谝粋€域是設(shè)備地址??梢允褂玫膫鬏斪址鞘M(jìn)制的 0? 9, A? F。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時(shí)間內(nèi)。當(dāng)?shù)谝粋€域(地址域)接收到,每個設(shè)備都進(jìn)行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一 個至少 個字符時(shí)間的停頓標(biāo)定了消息的結(jié)束。一個新的消息可在此停頓后開始。 整個消息幀必須作為一連續(xù)的流轉(zhuǎn)輸。如果在幀完成之前有超過 個字符時(shí)間的停頓時(shí)間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于 個字符時(shí)間內(nèi)接著前個消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。這將導(dǎo)致一個錯誤,因?yàn)樵谧詈蟮?CRC 域的值是不可能正確的。一典型的消息幀如下 表 22 所示: 表 22 典型的 RTU 消息幀 起始位 設(shè)備地址 功能代碼 數(shù)據(jù) CRC 校驗(yàn) 結(jié)束符 T1T2T3T4 8Bit 8Bit n 個 8Bit 16Bit T1T2T3T4 ASCII 模式 當(dāng)控制器設(shè)為在 Modbus 網(wǎng)絡(luò)上以 ASCII(美國標(biāo)準(zhǔn)信息交換碼)模式通信,在消息中的每個 8Bit 字節(jié)都作為兩個 ASCII字符發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到 1 秒而不產(chǎn)生錯誤。 代碼系統(tǒng) ? 十六進(jìn)制, ASCII 字符 0? 9, A? F ? 消息中的每個 ASCII 字符都是一個十六進(jìn)制字符組成 每個字節(jié)的位 ? 1 個起始位 ? 7 個數(shù)據(jù)位,最小的有效 位先發(fā)送 ? 1 個奇偶校驗(yàn)位,無校驗(yàn)則無 ? 1 個停止位(有校驗(yàn)時(shí)), 2 個 Bit(無校驗(yàn)時(shí)) 錯誤檢測域 ? LRC(縱向冗長檢測) 使用 ASCII 模式,消息以冒號(:)字符( ASCII 碼 3AH)開始,以回車換行符結(jié)束( ASCII 碼 0DH, 0AH)。 其它域可以使用的傳輸字符是十六進(jìn)制的 0? 9, A? F。網(wǎng)絡(luò)上的設(shè)備不斷偵測“:”字符,當(dāng)有一個冒號接收到時(shí),每個設(shè)備都解碼下個域(地址域)來判斷是否發(fā)給自己的。 東北石油大學(xué)秦皇島分校 畢業(yè)論文 5 消息中字符間發(fā)送的時(shí)間間隔最長不能超過 1 秒,否則接收的設(shè)備將認(rèn)為傳輸錯誤。一個典型消息幀如下 表 23 所示: 表 23 典型的 ASCII 消息幀 起始位 設(shè)備地址 功能代碼 數(shù)據(jù) LRC 校驗(yàn) 結(jié)束符 1 個字符 2 個字符 2 個字符 n 個字符 2 個字符 2 個字符 地址域 消息幀的 地址域包含兩個字符( ASCII)或 8Bit( RTU)。可能的從設(shè)備地址是0? 247(十進(jìn)制)。單個設(shè)備的地址范圍是 1? 247。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來選擇從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時(shí),它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個從設(shè)備做出的回應(yīng)。 地址 0 是用作廣播地址,以使所有的從 設(shè)備都能認(rèn)識。當(dāng) Modbus 協(xié)議用于更高水準(zhǔn)的網(wǎng)絡(luò),廣播可能不允許或以其它方式代替。 ASCII 協(xié)議和 RTU 協(xié)議的比較 表 24 ASCII 協(xié)議和 RTU 協(xié)議的比較 協(xié)議 開始標(biāo) 記 結(jié)束標(biāo) 記 校驗(yàn) 傳輸效率 程序處理 ASCII :(冒號) CR, LF LRC 低 直觀,簡單,易 調(diào)試 RTU 無 無 CRC 高 不直觀,稍復(fù)雜 通過比較可以看到, ASCII協(xié)議和 RTU協(xié)議相比擁有開始和結(jié)束標(biāo)記,因此在進(jìn)行程序處理時(shí)能更加方便,而且由于傳輸?shù)亩际强梢姷?ASCII 字符,所以進(jìn)行調(diào)試時(shí)就更加的直觀,另外它的 LRC 校驗(yàn)也比較容易。但是因?yàn)樗鼈鬏數(shù)亩际强梢姷?ASCII字符, RTU 傳輸?shù)臄?shù)據(jù)每一個字節(jié) ASCII 都要用兩個字節(jié)來傳輸,比如 RTU 傳輸一個十六進(jìn)制數(shù) 0xF9, ASCII 就需要傳輸“ F”“ 9”的 ASCII 碼 0x39 和 0x46 兩個字節(jié),這樣它的傳輸?shù)男示捅容^低。所以一般來說,如果所需要傳輸?shù)臄?shù)據(jù)量較小可以考慮使用 ASCII 協(xié)議,如果所需傳輸?shù)臄?shù)據(jù)量比較大,最好使用 RTU 協(xié)議 東北石油大學(xué)秦皇島分校 畢業(yè)論文 6 下面對兩種協(xié)議的校驗(yàn)進(jìn)行一下介紹 LRC 檢測 使用 ASCII 模式 ,消息包含了一基于 LRC 方法的錯誤檢測域。 LRC 域檢測了消息域中除開始的冒號及結(jié)束的回車換行號外的內(nèi)容。 LRC 域是一個包含一個 8位二進(jìn)制值得字節(jié)。 LRC值由傳輸設(shè)備來計(jì)算并放到消息幀中,接收設(shè)備在接收消息的過程中計(jì)算 LRC,并將它和接收到消息中 LRC 域中的值比較,如果兩值不等,說明有錯誤。 LRC 方法是將消息中的 8Bit 的字節(jié)連續(xù)累加,丟棄了進(jìn)位。 LRC 簡單函數(shù)如下: static unsigned char LRC(auchMsg,usDataLen) unsigned char *auchMsg。/*要進(jìn)行計(jì)算的消息 */ unsigned short usDataLen。/*LRC 要處理的字節(jié)的數(shù)量 */ { unsigned char uchLRC=0。/*LRC 字節(jié)初始化 */ while (usDataLen)/*傳送信息 */ uchLRC+=*auchMsg++。/*累加 */ return ((unsigned char )(((char_uchLRC))))。 } CRC 檢測 使用 RTU模式,消息包括了 一基于 CRC 方法的錯誤檢測域。 CRC 域檢測了整個消息的內(nèi)容。 CRC 域是兩 個字節(jié),包含一 16 位的二進(jìn)制值。它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收到消息的 CRC,并與接收到的 CRC 域中的值比較,如果兩值不同,則有誤。 CRC 是先調(diào)入一值是全“ 1”的 16 位寄存器,然后調(diào)用一過程將消息中連續(xù)的 8位字節(jié)各當(dāng)前寄存器中的值進(jìn)行處理。僅每個字符中的 8Bit 數(shù)據(jù)對 CRC 有效,起始位和停止位以及奇偶校驗(yàn)位均無效。 CRC 產(chǎn)生過程中,每個 8位字符都單獨(dú)和寄存器內(nèi)容相或( OR),結(jié)果向最低有效位方向移動,最高有效位以 0 填充。 LSB 被提取出來檢測,如果 LSB 為 1,寄存器單獨(dú)和預(yù)置的值或一下 ,如果 LSB 為 0,則不進(jìn)行。整個過程要重復(fù) 8 次。在最后一位(第 8位)完成后,下一個 8位字節(jié)又單獨(dú)和寄存器的當(dāng)前值相或。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行之后的 CRC 值。 CRC 添加到消息中時(shí),低字節(jié)先加入,然后高字節(jié)。 CRC 簡單函數(shù)如下: unsigned short CRC16(puchMsg, usDataLen) unsigned char *puchMsg 。 /* 要進(jìn)行 CRC 校驗(yàn)的消息 */ unsigned short usDataLen 。 /* 消息中字節(jié)數(shù) */ 東北石油大學(xué)秦皇島分校 畢業(yè)論文 7 { unsigned char uchCRCHi=0xFF 。 /* 高 CRC 字節(jié)初始化 */ unsigned char uchCRCLo=0xFF 。 /* 低 CRC 字節(jié)初始化 */ unsigned uIndex。 /* CRC 循環(huán)中的索引 */ while (usDataLen) /* 傳輸消息緩沖區(qū) */ { uIndex = uchCRCHi ^ *puchMsgg++ 。 /* 計(jì)算 CRC */ uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] 。 uchCRCLo = auchCRCLo[uIndex] 。 } return (uchCRCHi 8 | uchCRCLo) 。 } /* CRC 高位字節(jié)值表 */ static unsigned char auchCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0XC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0Xc1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0XC0, 0x
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1