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

正文內(nèi)容

畢業(yè)論文modbus通信協(xié)議實現(xiàn)范文回復(fù)版(編輯修改稿)

2025-06-12 20:32 本頁面
 

【文章內(nèi)容簡介】 務(wù)器之間,只有在發(fā)生特殊事件而有必要傳送參數(shù)和診斷報文時,連接才 能在每一次數(shù)據(jù)傳送后被關(guān)閉,需要時再次建立。這也是 MODBUS /TCP 在工業(yè)以太網(wǎng)中采用 TCP 作為 為傳輸層協(xié)議而不采用速度更快的 UDP 協(xié)議的原因所在。 雖然 MODBUS /TCP 由于在傳輸層采用 TCP 協(xié)議,而使其不得不在傳輸層協(xié)議以下的諸層采取更有效的實時性策略。但與 IDA 方案相比, MODBUS /TCP在其開放性、簡單和穩(wěn)定的性能上具有優(yōu)勢,是一個具有較高的性能價格比的工業(yè)以太網(wǎng)方案。 本文的工作 本文主要告訴讀者該課題的實現(xiàn)過程。在看到一個用軟件編程實現(xiàn)的課題時,應(yīng)該有的一些思路,需要 掌握的一些知識。在拿到一個課題時,首先需要為課題的實現(xiàn)構(gòu)建一個模型,對于該課題而言,應(yīng)想到怎樣在一臺設(shè)備上實現(xiàn)MODBUS 協(xié)議,同時,該課題是實現(xiàn)通信,那么就必然不只一臺設(shè)備,繼而想到兩臺設(shè)備間的通信模型,最后到多臺設(shè)備的通信結(jié)構(gòu)。建構(gòu)好模型后,就應(yīng)該查找相關(guān)的理論知識。本文涉及到的理論知識主要包括 MODBUS 協(xié)議結(jié)構(gòu)以及套接字的原理。掌握原理后,接下來就應(yīng)該設(shè)計實現(xiàn)流程。對于軟件開發(fā)而言,編程環(huán)境和編程語言很重要,這會對工作的復(fù)雜程度帶來很大的影響。選擇好編程工具后,就要想著怎樣實現(xiàn)課題,應(yīng)構(gòu)思一個流程。 本文首先需要將 TCP/IP應(yīng)用層以下作為一個整體,而這個整體和上層的接口即是套接字接口。再將套接字接口與應(yīng)用層 MODBUS 協(xié)議聯(lián)系,即可實現(xiàn)該課題的要求。摘取程序中最重要的部分進行分析。能夠讓讀者清楚的認(rèn)識到整個編程實例的精髓。最后對整個課題的實現(xiàn)進行一個總結(jié),帶給讀者一個實現(xiàn)該課題的基本框架,以及在實現(xiàn)該課題過程中自己的一些見解以、疑問及學(xué)到的知識和技術(shù)。提出自己對該項技術(shù)的展望,以及這項技術(shù)的發(fā)展前景。 論文的結(jié)構(gòu)安排 本論文共分五章,各章主要內(nèi)容如下: 第一章 : 介紹本論文所研究的背景,即該課 題的實際應(yīng)用價值。 第二章 : 構(gòu)建了實現(xiàn)課題的模型,從一臺設(shè)備上實現(xiàn) MODBUS協(xié)議,到兩臺設(shè)備通信,最后構(gòu)建多臺設(shè)備的整體通信結(jié)構(gòu)。 第三章 :為該課題建立理論基礎(chǔ)。該課題涉及到的理論主要包括 MODBUS協(xié)議結(jié)構(gòu)及套接字,分析它們之間的關(guān)系所在。 第四章 : 提出實現(xiàn)該課題的主要流程,分為幾個步驟,每個步驟應(yīng)做的工作,以及用到的編程環(huán)境和編程語言。 第五章:程序?qū)嶒灲Y(jié)果演示,并對 MODBUS TCP/IP報文進行分析,通過分析體現(xiàn) MODBUS協(xié)議的數(shù)據(jù)交換過程。 第六章 : 總結(jié)與展望。 第二章 基于 TCP/IP 模型的 MODBUS 通信協(xié)議 一臺設(shè)備上的 MODBUS 模型構(gòu)建 用戶應(yīng)用層 它和設(shè)備應(yīng)用相對應(yīng),與設(shè)備完全無關(guān)。 通信應(yīng)用層 一個 MODBUS 設(shè)備可提供一個客戶機或服務(wù)器的 MODBUS 接口。可提供一個 MODBUS 后端接口,間接地允許對用戶應(yīng)用對象的訪問。此接口由四個區(qū)域組成:離散量輸入、離散量輸出(線圈)、輸入寄存器和輸出寄存器。必須進行這個接口與用戶應(yīng)用數(shù)據(jù)直接的映射??蓪?MODBUS 通信應(yīng)用層分為四個小模塊 ,如下: MODBUS 客戶機 MODBUS 客戶機允許用戶應(yīng)用顯式控制與遠(yuǎn)程設(shè)備的信息交換。 MODBUS 客戶機根據(jù)用戶應(yīng)用向 MODBUS 客戶機接口發(fā)送的要求中所包含的參數(shù)來建立一個MODBUS 請求。 MODBUS 客戶機接口 MODBUS 客戶機接口提供一個接口,使得用戶應(yīng)用能夠生成各類 MODBUS服務(wù)的請求,該服務(wù)包括對 MODBUS 應(yīng)用對象的訪問。 MODBUS 服務(wù)器 收到一個 MODBUS 請求以后,模塊激活一個本地操作進行讀、寫、或完成其他操作。這些操作的處理對應(yīng)用程序開發(fā)員來說都是透明的。 MODBUS 服務(wù)器的主要功能是等待來自 TCP502 口的 MODBUS 請求,處理這一請求,根據(jù)設(shè)備的現(xiàn)狀生成 MODBUS 應(yīng)答。 MODBUS 后端接口 MODBUS 后端接口是一個從 MODBUS 服務(wù)器到定義應(yīng)用對象的用戶應(yīng)用之間的接口。 TCP 管理層 報文傳輸服務(wù)的主要功能之一是管理通信的建立和結(jié)束,及管理在所建立的TCP 連接上的數(shù)據(jù)流。 TCP 管理層進行兩方面的管理: 連接管理 在客戶機和服務(wù)器的 MODBUS 模塊之間的通信需要 TCP 管理模塊。它負(fù)責(zé)全面管理報文傳輸 TCP 連接。 TCP502 端口的監(jiān)聽是為 MODBUS 通信保留的??蛻魴C和服務(wù)器均應(yīng)向用戶提供對 TCP 端口號進行 MODBUS 參數(shù)配置的可能性。 訪問控制模塊管理 在某些至關(guān)重要的場合,必須禁止無關(guān)的主機對設(shè)備內(nèi)部數(shù)據(jù)的訪問。這既是需要的安全模式,也是在需要時實現(xiàn)安全處理的原因。 TCP/IP 棧層 TCP/IP 棧提供了一個接口,用來管理連接、發(fā)送和接收某些參數(shù)配置。 TCP連接管理模塊采用棧接口,即 BSD 套接字接口來與 TCP/IP 棧進行通信??梢詫CP/IP 棧進行參數(shù)配置,以適用對不同產(chǎn)品或系統(tǒng)的不同特定約束進行數(shù)據(jù)流控制、地址管理和 連接管理。 兩臺設(shè)備間的通信模型構(gòu)建 在 TCP/ IP網(wǎng)絡(luò)應(yīng)用中,通信的兩個進程相互作用的主要模式是客戶機/服務(wù)器模式,即客戶端向服務(wù)器發(fā)出請求,服務(wù)器接收到請求后提供相應(yīng)的服務(wù)??蛻魴C /服務(wù)器模式在操作過程中采取的是主動請求方式。 服務(wù)器方:首先服務(wù)器方要啟動,偵聽客戶方是否有連接請求,并根據(jù)請求提供相應(yīng)服務(wù): a.打開一通信通道并告知本地主機,它愿意在某一公認(rèn)地址端口上接受客戶請求,或者由開發(fā)人員自己指定端的地址,此時端口地址應(yīng)大于 1 024B,一般不超過 5 000B; b.等待客戶請求到達(dá)該 端口; c.接收到重復(fù)服務(wù)請求時,處理該請求并發(fā)送應(yīng)答信號。接收并發(fā)服務(wù)請求,需要激活一個新進程來處理這個客戶請求,并不需要對其他請求作出應(yīng)答。服務(wù)完成后,關(guān)閉此新進程與客戶的通信鏈路,并終止; d.返回第二步,等待另外的客戶請求; e.關(guān)閉服務(wù)器。 客戶方: a.打開一通信通道,并連接到服務(wù)器所在的主機的特定端口; b.向服務(wù)器發(fā)出服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)提出請求; C,請求結(jié)束后關(guān)閉通信通道并終止。 從以上描述過程可以看出:客戶機與服務(wù)器進程的作用是非對稱的,因此編碼不同,而且服務(wù)進程要先于客戶請求啟 動。 這個客戶機 /服務(wù)器模型基于 4種報文類型: MODBUS 請求: MODBUS 請求是客戶機在網(wǎng)絡(luò)上發(fā)送用來啟動事務(wù)處理的報文。 MODBUS 證實: MODBUS 證實是在客戶機側(cè)接收的響應(yīng)報文。 MODBUS 指示: MODBUS 指示是服務(wù)器側(cè)接受的請求報文。 MODBUS 響應(yīng): MODBUS 響應(yīng)時服務(wù)器發(fā)送的響應(yīng)報文。 具體模型如下圖所示: M O D B U S 服 務(wù) 器請 求指 示證 實 響 應(yīng)M O D B U S 客 戶 機 總體通信模型構(gòu)建 如下圖 3 所示, MODBUS TCP/IP 的通信系統(tǒng)可以包括不同類型的設(shè)備: 連接至 TCP/IP 網(wǎng)絡(luò)的 MODBUS TCP/IP 客戶機和服務(wù)器設(shè)備。 互聯(lián)設(shè)備。 M O D B U S服 務(wù) 器T C P / I PM O D B U S服 務(wù) 器T C P / I PM O D B U S客 戶 機T C P / I PM O D B U S客 戶 機T C P / I PM O D B U S 客 戶機 串 行 連 接客 戶 機T C P / I P 網(wǎng) 關(guān)服 務(wù) 器T C P / I P 網(wǎng) 關(guān)M O D B U S服 務(wù) 器 串 機連 接M O D B U S服 務(wù) 器 串 機連 接M O D B U S T C P / I PM O D B U S 串 行連 接 第三章 MODBUS 在 TCP/IP 上的實現(xiàn)與分析 應(yīng)用層 MODBUS 協(xié)議描述 TCP/IP 上的 MODBUS 數(shù)據(jù)應(yīng)用單元 MODBUS TCP/IP 是在 TCP/IP 網(wǎng)絡(luò)協(xié)議加上 MODBUS 應(yīng)用層協(xié)議 , 形成五層開放式體系結(jié)構(gòu) , 其中 MODBUS TCP 數(shù)據(jù)幀包括報文頭、功能代碼和數(shù)據(jù)三個部分 , 其結(jié)構(gòu)如圖 1 所示。 F u n c t i o n c o d e d a t aM O D B U S T C P / I P A D UM B A P H e a d e rP D UM O D B U S T C P 數(shù) 據(jù) 幀 格 式 MBAP 報文頭描述 MBAP Header 由 7 個字節(jié)組成 , 是 MODBUS TCP 協(xié)議的頭部 。 四個域如圖 2 所示 , Transaction Identifier 為傳輸標(biāo)志 , Protocol Identifier 為協(xié)議標(biāo)志 ,Length 是長度域 , Unit Identifier 是單元標(biāo)志。 MBAP 報文結(jié)構(gòu)如下所示: T r a n s a c t i o n I d e n t i f i e r P r o t o c o l I d e n t i f i e r L e n g t h U n i t I d e n t i f i e r2 b y t e 2 b y t e 2 b y t e1 b y t eM B A P 報 文 頭 結(jié) 構(gòu) MBAP 報文頭包括的各個域的功能描述如下表: 域 長度 描述 客戶機 服務(wù)器 事務(wù)處理標(biāo)識符 2 byte MODBUS 請求 /響應(yīng)事務(wù)處理的識別碼 客戶機啟動 服務(wù)器從接受的請求中重新復(fù)制 協(xié)議標(biāo)識符 2 byte 0=MODBUS協(xié)議 客戶機啟動 服務(wù)器從接受的請求中重新復(fù)制 長度 2 byte 隨后字節(jié)的數(shù)量 客戶機啟動 服務(wù)器啟動(響應(yīng)) 單元標(biāo)識符 1 byte 串行鏈路或其他總線上連接的遠(yuǎn)程從站的識別 客戶機啟動 服務(wù)器從接受的請求中重新復(fù)制 套接字簡介 套接字的概念與文件句柄類似,一個套接字就是一個通信標(biāo)識,由一 個短整數(shù)表示,實際上就是一個句柄,代表網(wǎng)絡(luò)協(xié)議中的一組數(shù)據(jù),該數(shù)據(jù)包含了通信雙方的 IP 地址和當(dāng)前的連接狀態(tài)等信息。我們知道,如果一個文件被打開,可以通過文件句柄對文件進行讀寫操作,套接字也一樣,只不過套接字提供的函數(shù)更多一些。 套接字存在于通信區(qū)域中,由協(xié)議、地址、端口來描述并惟一確定,根據(jù)傳輸協(xié)議的不同,套接字可分為 3 種類型:流式套接字、數(shù)據(jù)報套接字和原始套接字。流式套接字提供了一個面向連接的、可靠的、數(shù)據(jù)無錯且按順序接收的服務(wù),這種套接字對應(yīng)的是面向連接的傳輸協(xié)議,如 TCP/IP 協(xié)議簇中的 TCP。數(shù)據(jù)報套接字提供了一個無連接服務(wù),不提供無錯保證,數(shù)據(jù)可能丟失或重復(fù),且接受順序混亂,該套接字所對應(yīng)的是無連接傳輸協(xié)議,如 TCP/IP 協(xié)議簇中的 UDP。原始套接字允許直接訪問低層的協(xié)議,如 IP、 ICMP 協(xié)議,該套接字常用于訪問服務(wù)器中配置的新設(shè)備。 WinSock 提供了許多套接字函數(shù),它們并不代表協(xié)議的某一個層次,其實質(zhì)就是一組編程接口,用戶利用這些函數(shù)可以很容易地進行編程。 該程序設(shè)計中用到的套接字如下所示: ( 1) socket() 函數(shù) Socket() 函數(shù)用于創(chuàng)建一個套接字。 返回的一個套接字號被創(chuàng)建者用來訪問該 套接字。套接字創(chuàng)建時沒有地址( IP 地址和端口號)。直到一個端口被綁定到該套接字時,方可接受數(shù)據(jù)。 socket 函數(shù)用于創(chuàng)建一個套接字。 語法: SOCKET socket ( Int af , Int type, Int protocol )。 af: 標(biāo)識一個地址家族,通常為 AF_INET。 type:標(biāo)識套接字類型,如果為 SOCK_STREAM,表示流式套接字;如果為SOCK_DGRAM,表示數(shù)據(jù)報套接字。 protocol:標(biāo)識一個特殊的協(xié)議被用于這個套接字,通常為 0,表示采用默認(rèn)的TCP/IP 協(xié)議。 ( 2) bind() 函數(shù) Bind()函數(shù)用于將套接字綁定到一個已知的地址上。 bind() 函數(shù) 在套接字與所指定的端口間建立連接。 語法: int bind ( SOCKET s, const struct sockaddr FAR* name, int namelen )。 s:是一個套接字。 name:是一個 sockaddr 結(jié)構(gòu)指針,該結(jié)構(gòu)中包含了要綁定的地 址和端口號。 namelen:確定 name 緩沖區(qū)的長度。 在定義一個套接字后,需要調(diào)用 bin
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1