• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種Modbus通訊協(xié)議轉(zhuǎn)換方法研究與實踐

      2023-10-24 10:03:06王攀
      石化技術(shù) 2023年10期
      關(guān)鍵詞:校驗碼串口通訊

      王攀

      中海油深圳分公司 廣東 深圳 518000

      1 背景

      采油樹井下數(shù)據(jù)通過動力電纜信號擬合傳輸?shù)絾尉儔浩?,?jīng)過CHOCK箱引出,經(jīng)過信息解碼處理后進(jìn)入ISP(InterfaceSurfacePanel)監(jiān)視屏供地面人員觀察讀取。數(shù)據(jù)信號轉(zhuǎn)換為Modbus通訊協(xié)議485信號傳輸?shù)轿鏖T子PLC300。數(shù)據(jù)在PLC300中經(jīng)過數(shù)據(jù)整合,工程量轉(zhuǎn)換,在本地上位機(jī)顯示,并通訊傳送到中控供值班人員實時監(jiān)視。油藏相關(guān)人員通過分析井下數(shù)據(jù)來了解油藏地層的變化情況,為油井措施提供重要決策依據(jù)。生產(chǎn)人員也要時刻監(jiān)測油井電泵狀態(tài),保障設(shè)備安全運行。

      不同電潛泵廠家配套的ISP的Modbus通訊參數(shù)不同,導(dǎo)致上位機(jī)必須根據(jù)ISP的類型編寫對應(yīng)的數(shù)據(jù)處理程序。隨著油田開發(fā)深入,修井作業(yè)更換電泵廠家等原因造成ISP類型與PLC原始通訊程序不匹配,無法讀取和顯示數(shù)據(jù)。想要解決此類問題,需要修改PLC程序以適配新的ISP。

      修改PLC程序下載過程中會造成CPU重啟,會影響到使用PLC控制的設(shè)備正常運行。在特殊行業(yè)必須連續(xù)運行是不允許臨時停機(jī)的。研究外加一個通訊協(xié)議轉(zhuǎn)換器,實現(xiàn)ISP設(shè)備更改后,通訊參數(shù)發(fā)生了變化,通過該通訊協(xié)議轉(zhuǎn)換器,PLC仍然能夠采集到數(shù)據(jù),而不需要進(jìn)行程序修改。

      2 通訊協(xié)議

      2.1 Modbus 通訊協(xié)議

      Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言也是一種通用的工業(yè)標(biāo)準(zhǔn)。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其它設(shè)備之間可以通信。它描述了一控制器請求訪問其它設(shè)備、回應(yīng)來自其它設(shè)備的請求以及怎樣偵測錯誤并記錄的過程,制定了消息域格局和內(nèi)容的公共格式[1]。

      通訊命令發(fā)送至儀器時,符合相應(yīng)地址碼的設(shè)備接通訊命令,并除去地址碼,讀取信息,如果沒有出錯,則執(zhí)行相應(yīng)的任務(wù);然后把執(zhí)行結(jié)果返送給發(fā)送者。返送的信息中包括地址碼、執(zhí)行動作的功能碼、執(zhí)行動作后結(jié)果的數(shù)據(jù)以及錯誤校驗碼。如果出錯就不發(fā)送任何信息[2]。

      地址碼是信息幀的第一字節(jié)。這個字節(jié)表明由用戶設(shè)置地址的從機(jī)將接收由主機(jī)發(fā)送來的信息。主機(jī)發(fā)送的功能碼告訴從機(jī)執(zhí)行什么任務(wù),從01到255有不同的定義。這里主要介紹功能碼03。在主機(jī)發(fā)送讀取指令后,從機(jī)儀表響應(yīng)的命令格式是從機(jī)地址、功能碼、數(shù)據(jù)區(qū)及CRC碼。其他功能碼在本設(shè)計中不需要,不再敘述。數(shù)據(jù)區(qū)包含需要從機(jī)執(zhí)行什么動作或由從機(jī)采集的返送信息。例如,功能碼告訴從機(jī)讀取寄存器的值,則數(shù)據(jù)區(qū)必需包含要讀取寄存器的起始地址及讀取長度。對于不同的從機(jī),地址和數(shù)據(jù)信息都不相同。由于電子噪聲或其它一些干擾,信息在傳輸過程中會發(fā)生細(xì)微的變化,錯誤校驗碼保證了主機(jī)或從機(jī)對在傳送過程中出錯的信息不起作用。這樣增加了系統(tǒng)的安全和效率。校驗采用CRC-16校驗方法。

      2.2 協(xié)議轉(zhuǎn)換流程設(shè)計

      以A設(shè)備原通訊參數(shù)站號2,起始地址40169,數(shù)據(jù)6個位,更換為B設(shè)備通訊參數(shù)站號2,起始地址0,數(shù)據(jù)6個位進(jìn)行舉例說明。將該轉(zhuǎn)換裝置安裝在更換后的設(shè)備前端,按照原設(shè)備通訊方式接線。與主站通訊的口稱為上口,與從站通訊的口稱為下口。

      使用通訊協(xié)議轉(zhuǎn)換器作為中間媒介,轉(zhuǎn)換器上口對PLC模擬原ISP設(shè)備,接收PLC主機(jī)發(fā)送來的詢問信息,主機(jī)向2號從站讀取40169(十六進(jìn)制9CE9)地址開始的6個數(shù)據(jù),命令如下:

      ?

      更換設(shè)備品牌后,由于新設(shè)備數(shù)據(jù)起始地址是0,命令經(jīng)過通訊協(xié)議轉(zhuǎn)換器后,實際轉(zhuǎn)發(fā)給下口新ISP設(shè)備命令如下:

      ?

      新ISP設(shè)備收到命令后,會返回6個數(shù)據(jù),格式如下:

      轉(zhuǎn)換器下口接收到新ISP設(shè)備返回信息后,根據(jù)新舊設(shè)備數(shù)據(jù)存儲位置不同進(jìn)行數(shù)據(jù)位調(diào)整重算,通過轉(zhuǎn)換器上口轉(zhuǎn)發(fā)給主機(jī)。示例如下:

      ?

      對于主機(jī)來說,其面向的對象沒有發(fā)生變化,發(fā)出的詢問指令和接收的返回信息均能正確讀取,而實際上,現(xiàn)場設(shè)備的起始地址和數(shù)據(jù)存儲的位置都發(fā)生了變化。

      3 技術(shù)實現(xiàn)

      使用STM32單片機(jī),型號:(STM32F103C8T6)作為硬件開發(fā),程序使用Keil5嵌入式編程軟件。

      3.1 建立主函數(shù)

      主函數(shù)包括:系統(tǒng)時鐘,定時器,串口配置及中斷、Modbus信號處理等。

      由于STM32單片機(jī)固件庫中對時鐘頻率進(jìn)行了簡化,這里只需要調(diào)用即可,設(shè)定系統(tǒng)晶振頻率為72MHZ。設(shè)置定時器時間為1ms,即每1ms產(chǎn)生一次中斷,中斷事件發(fā)生后,程序?qū)⑾葧和U趫?zhí)行的函數(shù),優(yōu)先執(zhí)行中斷函數(shù)。將STM32單片機(jī)串口用到的引腳使能,設(shè)置波特率、數(shù)據(jù)位、停止位、奇偶校驗等,當(dāng)串口接收到數(shù)據(jù)信號時,觸發(fā)相應(yīng)的串口中斷函數(shù)[3]。

      3.2 接收數(shù)據(jù)

      單片機(jī)接收數(shù)據(jù)主要依靠SP485EEN模塊,實現(xiàn)485信號與TTL信號轉(zhuǎn)換。由于單片機(jī)只識別TTL電平信號,而485信號屬于半雙工高低壓電平信號,所以需要通過設(shè)置串口參數(shù),將485信號轉(zhuǎn)換為TTL信號,從而實現(xiàn)兩者之間數(shù)據(jù)交互。

      通過STM32單片機(jī)使能RE、DE管腳,實現(xiàn)上口、下口數(shù)據(jù)的接收與發(fā)送。引腳PB1、PB0負(fù)責(zé)上口,PLC與STM32單片機(jī)之間的通訊。引腳PA7,PA6負(fù)責(zé)下口、STM32單片機(jī)與ISP之間的通訊。RE與DE為高電平時,發(fā)送數(shù)據(jù),RE與DE為低電平時,接收數(shù)據(jù)。RO與DI管腳實現(xiàn)數(shù)據(jù)交互,為單片機(jī)提供可識別的TTL信號。一旦接收到數(shù)據(jù),串口接收中斷標(biāo)志位會被置1,觸發(fā)中斷函數(shù),程序?qū)?yōu)先執(zhí)行中斷函數(shù)的內(nèi)容。

      3.3 數(shù)據(jù)處理

      數(shù)據(jù)處理主要是對接收到的數(shù)據(jù)進(jìn)行判斷、分析與執(zhí)行。

      STM32單片機(jī)上口接收到PLC傳輸?shù)腗odbus數(shù)據(jù)后,首先將數(shù)據(jù)寄存在”Modbus.rcbuf[]”數(shù)組中,然后通過數(shù)值傳遞告知Modbus_Event函數(shù),接收到一組數(shù)據(jù),需要分析處理。下口接收到ISP傳遞的Modbus數(shù)據(jù)寄存在”Modbus.sub[]”數(shù)組中。

      一幀Modbus數(shù)據(jù),前面為有效數(shù)據(jù),最后兩位為校驗碼,有效數(shù)據(jù)第一位為站地址,第二位功能碼。在分析處理之前,第一步需校驗接收到的數(shù)據(jù)是否正確。首先通過前面的有效數(shù)據(jù)計算CRC校驗碼,然后直接讀取數(shù)組中的后兩位進(jìn)行比較,如果兩者之間的值相等,則認(rèn)為這個數(shù)據(jù)是有效的,否則判斷為在數(shù)據(jù)傳輸過程中,出現(xiàn)了干擾,數(shù)據(jù)失效,退出執(zhí)行。

      在Modbus_Event數(shù)據(jù)處理函數(shù)中,若數(shù)據(jù)有效,將讀取數(shù)組中第一位的值,判斷是否發(fā)送給本設(shè)備。本設(shè)備的站地址在”Modbus_Init()“中設(shè)置,如圖,站地址為2。若是,繼續(xù)執(zhí)行。若不是,判斷是否為廣播地址,廣播地址首位為0,其不需要做出回應(yīng),直接退出。

      如果轉(zhuǎn)換器上口接收到數(shù)據(jù),并且第二位數(shù)據(jù)為03,則執(zhí)行“Modbus_fun3()”函數(shù),否則將不會對數(shù)據(jù)做任何處理?!癕odbus_fun3()”函數(shù)是在轉(zhuǎn)換器上口接收到PLC的命令數(shù)據(jù)后,將數(shù)組“Reg[]”中預(yù)設(shè)定的讀命令通過轉(zhuǎn)換器下口發(fā)送至新ISP,進(jìn)行井下數(shù)據(jù)讀取。

      轉(zhuǎn)換器下口接收到的數(shù)據(jù)第二位為03,則執(zhí)行“Modbus_fun6()”函數(shù)?!癕odbus_fun6()”函數(shù)實現(xiàn)將轉(zhuǎn)換器下口新ISP返回的數(shù)據(jù),經(jīng)過調(diào)位處理,重新計算校驗碼等操作,再將數(shù)據(jù)通過轉(zhuǎn)換器上口發(fā)送至主機(jī)PLC。在“Modbus_fun6()”函數(shù)中,“Modbus.cop[]”數(shù)組通過列序?qū)⒓拇嬖凇盡odbus.sub[]”數(shù)組中新ISP返回的值重組,以獲取目的數(shù)據(jù)。重組后的值再通過校驗函數(shù)重新計算校驗碼,最后將目的數(shù)據(jù)及校驗碼構(gòu)成的Modbus數(shù)據(jù)發(fā)送至主機(jī)PLC。

      3.4 發(fā)送數(shù)據(jù)

      數(shù)據(jù)的發(fā)送通過使能相應(yīng)串口的RE、DE管腳,使其為高電平,即可發(fā)送數(shù)據(jù)。由STM32單片機(jī)發(fā)送至ISP設(shè)備,使能引腳PA7、PA6,則RE、DE為高電平,SP485EEN模塊處于激發(fā)狀態(tài),預(yù)設(shè)定的讀命令將通過轉(zhuǎn)換器下口發(fā)送出去。由STM23單片機(jī)發(fā)送至主機(jī)PLC,使能引腳PB1、PB0即可。當(dāng)數(shù)據(jù)發(fā)送完畢后,延時2秒,再將RE、DE管腳變?yōu)榈碗娖?,等待下次?shù)據(jù)接收[4]。

      4 結(jié)束語

      在中海油某平臺使用該通訊協(xié)議轉(zhuǎn)換器,2#井ISP信號由斯倫貝謝廠家更改為貝克休斯廠家,通訊協(xié)議發(fā)生了變化后,原PLC上位機(jī)程序不做任何修改仍能夠讀取到現(xiàn)場數(shù)據(jù),能夠?qū)崟r顯示井下數(shù)據(jù)。

      在程序中寫入新品牌ISP設(shè)備需要的協(xié)議轉(zhuǎn)換代碼,包括站號和讀數(shù)據(jù)指令。這部分工作可由專業(yè)人員前期寫入,將轉(zhuǎn)換裝置寄送到設(shè)備現(xiàn)場。

      接線簡單,使用方便,將協(xié)議轉(zhuǎn)換器串接在原鏈路中即可,不改變原有通訊鏈路結(jié)構(gòu),不影響其他單井的數(shù)據(jù)采集。不需要具有PLC編程能力,可避免直接修改PLC程序下載引起的設(shè)備停機(jī)風(fēng)險,應(yīng)用性強。

      猜你喜歡
      校驗碼串口通訊
      《茶葉通訊》簡介
      茶葉通訊(2022年2期)2022-11-15 08:53:56
      《茶葉通訊》簡介
      茶葉通訊(2022年3期)2022-11-11 08:43:50
      通訊報道
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      通訊簡史
      基于Excel實現(xiàn)書號校驗碼的驗證
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      基于FPGA的循環(huán)冗余校驗碼設(shè)計
      電子世界(2015年14期)2015-11-07 05:32:29
      身份證號碼中的數(shù)學(xué)
      青田县| 阳高县| 常宁市| 南宁市| 页游| 张家港市| 荥阳市| 曲靖市| 刚察县| 都兰县| 安平县| 吉林省| 江山市| 明溪县| 商城县| 阳东县| 蓬溪县| 康乐县| 精河县| 通渭县| 易门县| 新疆| 肥乡县| 镇坪县| 绥中县| 清徐县| 石狮市| 巴塘县| 南部县| 洛宁县| 沙河市| 习水县| 昭通市| 台南市| 德格县| 昭觉县| 郸城县| 得荣县| 北碚区| 太康县| 来凤县|