999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于串口Modbus協議的遠程張力無線傳輸設計與實現

2019-10-21 06:52:08謝文桃
現代信息科技 2019年20期

摘? 要:石油勘探開發測井過程中,要實時監控電纜承受的張力,測井施工中通常在井口天滑輪上掛接張力計,利用通訊電纜連接張力計和測井工程車上的采集系統對電纜張力進行測量和監控。通訊電纜在施工過程中,不論井口還是地面會經常受到鉆具等鉆探工具設施的碰撞擠壓而損壞,為了避免施工中發生此類問題而耽誤工時,施工人員提出無線傳輸張力的方案。張力的采集和無線傳輸采用模塊化設計,利用Modbus傳輸協議根據實際情況設置采集速度。工程車上配置控制用的工控機,把張力信號恢復成兼容原來絞車面板的模擬量,工控機內安裝的控制軟件能根據實際靈活配置串口及電池電壓監控。

關鍵詞:井口張力;無線傳輸;Modbus RTU串口協議;絞車面板

中圖分類號:TN915.6? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)20-0064-03

Abstract:During the oil exploration and development logging process,the tension of the cable should be monitored in real time. In the logging construction,the tension meter is usually attached to the wellhead pulley,and the communication cable is used to connect the tension meter and the collection system on the logging truck. Tension is measured and monitored. During the construction process,the communication cable is often damaged by the collision of drilling tools such as drilling tools at the wellhead or the ground. In order to avoid such problems during construction,the construction workers propose a wireless transmission tension scheme. The tension collection and wireless transmission adopt modular design,and the acquisition speed is set according to the actual situation by using the Modbus transmission protocol. The industrial computer equipped with control on the engineering vehicle restores the tension signal to the analog quantity compatible with the original winch panel. The control software installed in the industrial computer can flexibly configure the serial port and battery voltage monitoring according to the actual situation.

Keywords:wellhead tension;wireless transmission;Modbus RTU serial port protocol;winch panel

0? 引? 言

測井工程中的井口張力計是用來測量測井電纜承受的拉力的重要工具,電纜張力的大小對于判斷井下儀器和電纜是否遇阻和遇卡有極其重要的作用,是處理工程事故必不可少的參考指標。

本文提供的方法是將連接井口張力計和測井工程車的電纜用無線通信方式代替。利用串口Modbus RTU協議,通過安裝在測井工程車的工控機進行遠程張力信號的實時采集,然后在原有絞車面板上恢復出來便于監控。工控機運行的軟件基于Win32平臺,能對串口進行配置和讀寫操作,根據需要調整采集速率。

無線傳輸的最大好處是免去了電纜的布線,方便了施工,降低了工作量,提高了工作時效。

1? 原理與設計

硬件系統主要包括模擬量采集模塊,無線數據傳輸模塊,工控機控制端,模擬量恢復模塊。軟件系統依托32位Windows系統開發,根據Modbus協議對串口進行配置和讀寫操作并把收到的數據發送給模擬量恢復模塊,圖1所示是整個系統結構。

采集模塊對張力計的模擬信號以及電源電壓等模擬量進行高精度模數轉換,然后利用RS-485總線按照Modbus協議標準向控制端傳輸數據。無線模塊負責信號采集端和控制端的連接。模擬恢復模塊將控制端分離出的數字信號數模轉換出模擬信號進入絞車面板處理和顯示。按照由遠至近順序依次配置各個模塊的設備ID,采集模塊地址為01,連接采集的無線發送模塊配置為02,連接工控機的無線模塊為03,數字轉模擬模塊為04。串口的配置使用波特率9600,起始位1,數據位8,無校驗位,停止位1。

1.1? Modbus協議概述

Modbus協議(如圖2所示)是運行在RS-485物理接口上的半雙工的主從協議,在協議中,主從機通過報文即數據幀進行請求——應答通信,一個數據幀包含了地址域,功能碼,數據,差錯校驗。傳輸分兩種模式,ASCII模式和RTU模式,本文所涉及功能用的是RTU模式。

地址域(信息地址)在幀的開始部分,由8位組成,有效的從機設備地址范圍為0~247(十進制),單個設備的地址范圍是1~247。主設備通過將要聯絡的從設備的地址放入消息中的地址域來選擇從設備。當從設備發送回應消息時,它把自己的地址放入回應的地址域中,以便主設備知道是哪一個設備作出回應。

功能碼告訴了被尋址到的終端執行何種功能。有效碼范圍1~225(十進制),有些代碼適用于所有控制器,有些適用于某種控制器,還有些保留以備后用。

數據域包含了終端執行特定功能所需要的數據或者終端響應查詢時采集到的數據。這些數據的內容可能是數值、參考地址或者極限值。數據區有2個16進制的數據位(2的8次方256),數據范圍為00~FF(16進制)。例如:功能域碼告訴終端讀取一個寄存器,數據域則需要指明從哪個寄存器開始及讀取多少個數據,內嵌的地址和數據依照類型和從機之間的不同能力而有所不同。若無錯誤出現,從機向主機的響應信息中包含了請求數據,若有錯誤出現,則數據中有一個不正常代碼,使主機能判斷并作出下一步的動作。數據區的長度可為“零”以表示某類信息。

允許主機和終端檢查傳輸過程中的錯誤。有時,由于電噪聲和其他干擾,一組數據在從一個設備傳輸到另一個設備時在線路上可能會發生一些改變,出錯校驗能夠保證主機或者終端不去響應那些傳輸過程中發生了改變的數據,這就提高了系統的安全性和效率,出錯校驗使用了16位循環冗余的方法,即CRC校驗。循環冗余校驗(CRC)域占用兩個字節,包含了一個16位的二進制值。CRC值由傳送設備計算出來,然后附加到數據幀上,接收設備在接收數據時重新計算CRC值,再與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發生了錯誤,接收端將放棄此幀數據。

1.2? 控制端軟件

控制軟件功能包括選擇串口、打開和配置串口、讀寫串口等。軟件默認使用COM1和COM2,

char*? A ="COM1"? ;

char*? B ="COM2"? ;

默認設置適用于大多數工控機,但是也可以在程序開始運行一段時間內由鍵盤輸入選擇串口的功能,如不選擇則使用默認串口。

串口選擇在提示后根據實際配置輸入相應的數字,代碼如下:

void InputCom(void)

{

int num ;

printf("請輸入串口A的號\n");

scanf("%d",&num);

switch(num)

{

case 1:

A ="COM1";

printf("%s\n",A);

break;

case 2:

A ="COM2";

printf("%s\n",A);

break;

case 3:

A ="COM3";

printf("%s\n",A);

break;

case 4:

A ="COM4";

printf("%s\n",A);

break;

}

第二個串口選擇的代碼同上。

打開和配置端口代碼:

void? OpenConfigCom(TCHAR* A,TCHAR* B)

{

hComA =CreateFile(A, GENERIC_READ |GENERIC_WRITE,

0, NULL, OPEN_EXISTING,

0, NULL);

if(hComA==INVALID_HANDLE_VALUE)

{

printf("打開串口A失敗");

}

BOOL? error=SetupComm(hComA,1024, 1024);

if(!error)

printf("設置串口A失敗");? ? ? ?error= GetCommState(hComA, &dcb);

if(!error)

printf("獲取串口A狀態失敗");? ?dcb.BaudRate=9600;

dcb. ByteSize=8;

dcb.Parity=NOPARITY;

dcb.StopBits=ONESTOPBIT;

error =SetCommState(hComA,&dcb);

if(!error)

printf("設置串口A狀態失敗");

下面設置第二個串口B,代碼相似此處省略。

}

定義發送給采集端的固定協議幀:

unsigned char sendA[8]={0x01, 0x03, 0x00, 0x05, 0x00, 0x02, 0xD4, 0x0A};

發送給數模轉換的協議幀:

unsigned char? sendB[9]={0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00};

采集端返回的內容預置:

unsigned char? recvA[9]={NULL};

下面是利用循環進行張力的采集和恢復:

while(ch!=27)? ? ?//按下ESC鍵退出程序

{

BOOL? bRet= WriteFile(hComA, sendA, 8, &comnum,? NULL);

if(!bRet)

printf("向COMA發送數據失敗");

bRet=ReadFile(hComA, recvA, 9, &comnum, NULL);

if (!bRet)

printf("讀取串口A失敗");

此處是數據位提取:

sendB[4]=recvA[3];? ? ? ? ? ? ?// sendB[5]=recvA[4];

發送給模擬信號恢復端的CRC16校驗碼的計算:

unsigned char a[8]={NULL};

unsigned int b;

unsigned char crc_H,crc_L;

for (int i=0;i<6;i++)

{

a[i]=sendB[i];

}

b = getCRC16(a,6);

crc_H = ((b>>8) & 0x00ff); crc_L = (((b<<8)>>8) & 0x00ff);? ? sendB[6]=crc_H;

sendB[7]=crc_L;

getCRC16(a,6)函數是調用相關計算CRC的函數。

bRet=WriteFile(hComB, sendB, 8, &comnum,? NULL);

if(!bRet)

printf("向COMB發送數據失敗");

Sleep(500);

休眠時間可調節數據傳輸頻度。

if(_kbhit())

ch=_getch();

}

2? 實驗和結論

(1)在實驗室單獨給采集模塊提供標準的電壓信號,實驗室主機上運行串口調試助手軟件,通過無線傳輸,獲得采集端的數據。由于是通過數字化傳輸,數據完整,不存在模擬量受電纜長度衰減和干擾的影響,然后把得到的數據通過另一個串口發送到模擬量恢復模塊,測量到和采集模塊輸入相同的電壓值,精度完全滿足工程要求。

(2)硬件模塊化的好處是可以按照設計的要求靈活配置,在這種傳輸數據量較小的場合尤其可以體現出串口的Modbus協議的優越性,協議的總線結構正好配合硬件模塊化的設計,為將來進一步升級提供了廣闊的空間。

(3)無線功能的實用化很大程度上依賴電池容量的大小,電池的容量要滿足測井開始到結束的時間要求,同時安全性也是很重要的一環,系統除了要監測電池電壓及工作溫度,保持電壓的穩定也很重要,因此實際使用中采集端加入了穩壓模塊。

參考文獻:

[1] 譚浩強.C/C++程序設計 [M].北京:清華大學出版社,2004.

[2] 張錚.Windows程序設計 [M].北京:人民郵電出版社,2015.

[3] 楊更更.Modbus軟件開發實戰指南 [M].北京:清華大學出版社,2017.

作者簡介:謝文桃(1969.03-),男,漢族,江蘇南京人,高級工程師,本科,研究方向:測井相關儀器設備研究。

主站蜘蛛池模板: 欧美A级V片在线观看| 内射人妻无码色AV天堂| 综合社区亚洲熟妇p| 婷婷五月在线视频| 成年网址网站在线观看| 丁香六月激情综合| 欧美日韩国产综合视频在线观看| 久久国产拍爱| 58av国产精品| 日韩欧美一区在线观看| 免费观看三级毛片| V一区无码内射国产| 国产成人啪视频一区二区三区| 中国毛片网| 国产免费a级片| 国产微拍一区二区三区四区| 国产小视频a在线观看| 无码精油按摩潮喷在线播放| 国产午夜福利片在线观看| 无码'专区第一页| 永久免费av网站可以直接看的| 成人免费午夜视频| 亚洲人成网站18禁动漫无码| 亚洲天堂网视频| 久久久久无码国产精品不卡| 国产永久在线视频| 久草中文网| 91无码视频在线观看| 不卡色老大久久综合网| 亚洲黄色成人| 亚洲人成网站日本片| 久久网欧美| 亚洲视屏在线观看| 人妻精品久久无码区| 国产精品密蕾丝视频| 久久中文无码精品| 日韩精品欧美国产在线| 呦女亚洲一区精品| 亚洲区第一页| 国产精品观看视频免费完整版| 无码专区国产精品一区| 青草视频久久| 亚洲天堂啪啪| 日本国产在线| 在线免费无码视频| 久久婷婷综合色一区二区| 欧美A级V片在线观看| 国产呦精品一区二区三区下载| 成人福利在线看| 久久美女精品| 久久中文字幕2021精品| 色综合婷婷| 91精品aⅴ无码中文字字幕蜜桃 | 日韩精品专区免费无码aⅴ| 5555国产在线观看| 国产中文在线亚洲精品官网| 色九九视频| 秋霞午夜国产精品成人片| 欧美国产日韩在线| vvvv98国产成人综合青青| 久久亚洲精少妇毛片午夜无码 | 亚洲成网777777国产精品| 美女无遮挡免费网站| 在线观看免费人成视频色快速| 国产三级a| 在线99视频| 久久久久国产一级毛片高清板| 中文字幕日韩丝袜一区| 国产在线无码av完整版在线观看| 任我操在线视频| 狠狠久久综合伊人不卡| 亚洲午夜福利在线| 国产亚洲精品97在线观看| 欧美亚洲另类在线观看| 色综合婷婷| 99久久精品国产综合婷婷| 欧美精品v欧洲精品| 欧美日本在线| 久草视频精品| 岛国精品一区免费视频在线观看| 婷婷亚洲最大| 国产精品99久久久久久董美香|