国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Modbus RTU協(xié)議的數(shù)據(jù)采集平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2021-12-02 01:26許向陽賈月明
電子工業(yè)專用設(shè)備 2021年5期
關(guān)鍵詞:校驗(yàn)碼機(jī)軟件電流值

艾 博,許向陽,賈月明

(中國(guó)電子科技集團(tuán)公司第四十五研究所,北京100176)

在數(shù)據(jù)采集和監(jiān)視控制系統(tǒng)(SCADA)中,Modbus通常用來連接監(jiān)控計(jì)算機(jī)和遠(yuǎn)程終端控制系統(tǒng),因其開放、集成方便等特點(diǎn),如今成為工業(yè)領(lǐng)域全球最流行的通信協(xié)議[1-3]。為實(shí)現(xiàn)液氮補(bǔ)給裝置自動(dòng)控制,需實(shí)時(shí)采集和監(jiān)視液氮杜瓦罐內(nèi)的溫度、液位及周邊氧氣濃度數(shù)據(jù),并將采集結(jié)果發(fā)送給上位機(jī)。

本設(shè)計(jì)的數(shù)據(jù)采集平臺(tái)是基于RS-485總線和Modbus RTU協(xié)議,通過ADAM4117獲取各傳感器的模擬量電流值,實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)液氮杜瓦罐內(nèi)的溫度值、液氮液位值及裝置周邊的氧氣濃度值。同時(shí),該平臺(tái)除具有完成數(shù)據(jù)采集、數(shù)據(jù)分析和處理功能外,還需具有提供數(shù)據(jù)采集接口和人機(jī)交互接口的功能。

1 系統(tǒng)設(shè)計(jì)

圖1為液氮補(bǔ)給裝置數(shù)據(jù)采集平臺(tái)的設(shè)計(jì)示意圖。在本系統(tǒng)設(shè)計(jì)中ADAM4117作為系統(tǒng)核心,由ADAM4117的通道0、通道1和通道2獲取溫度傳感器、液位傳感器和氧氣傳感器實(shí)時(shí)反饋的數(shù)據(jù),并通過串口Modbus RTU協(xié)議與上位機(jī)通信,在上位機(jī)軟件實(shí)現(xiàn)3個(gè)通道的數(shù)據(jù)采集、分析和處理。

圖1 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)示意圖

其中,ADAM4117是16位A/D、8通道的模擬量輸入模塊,可以采集電壓、電流等模擬量輸入信號(hào),并且為所有通道提供了獨(dú)立的可編程的輸入范圍。在工業(yè)測(cè)量和監(jiān)控的應(yīng)用中,ADAM4117具有良好的性價(jià)比。它不僅能夠用于惡劣的環(huán)境中,而且還具有更加堅(jiān)固型的設(shè)計(jì)。本系統(tǒng)中ADAM4117設(shè)置為采集4~20 mA電流量程,將電流信號(hào)轉(zhuǎn)換為RS-485信號(hào),傳輸?shù)缴衔粰C(jī),Modbus協(xié)議讀到的數(shù)值為16進(jìn)制的整數(shù),數(shù)值從0~65 535,分別對(duì)應(yīng)量程的上下限。例如,當(dāng)量程為4~20 mA時(shí),輸入的電流值為12 mA,則讀取到的Modbus數(shù)值為32 767。

2 Modbus RTU協(xié)議及通信模式

Modbus是一種串行通訊協(xié)議,是由Modicon公司于1979年提出,允許多個(gè)設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通信。本文使用的RTU格式傳輸效率高,在相同速率下具有更大的數(shù)據(jù)流量,得到了廣泛認(rèn)可與使用。Modbus通信是主從通信機(jī)制,主機(jī)將消息幀發(fā)送給從機(jī),從機(jī)在接收到消息后,返回相應(yīng)的應(yīng)答幀,其主從關(guān)系如圖2所示[4]。

圖2 Modbus主從關(guān)系

Modbus RTU消息幀結(jié)構(gòu)如表1所示[5]。本文中讀取ADAM4117輸入寄存器的電流值,使用0x04功能碼控制。

表1 Modbus RTU消息結(jié)構(gòu)

3 上位機(jī)軟件的設(shè)計(jì)與實(shí)現(xiàn)

上位機(jī)程序在VS2010環(huán)境中編寫,軟件實(shí)現(xiàn)流程如圖3所示。

圖3 上位機(jī)軟件實(shí)現(xiàn)流程圖

3.1 初始化串口

//串口控制塊

DCB dcb;/

/串口超時(shí)控制參數(shù)

COMMTIMEOUTS timeouts={100,1,500,1,100};

//串口名稱或設(shè)備路徑

m_hComm=CreateFile(szPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPE

N_EXISTING,0,NULL);

//獲取串口DCB設(shè)置參數(shù)

GetCommState(m_hComm,&dcb);

//設(shè)置波特率、位、停止位、校驗(yàn)方式

dcb.BaudRate=9600;dcb.ByteSize=8;

dcb.StopBits=ONESTOPBIT;dcb.Parity=NOPARITY;

//設(shè)置DCB參數(shù)

SetCommState(m_hComm,&dcb);

//設(shè)置超時(shí)參數(shù)

SetCommTimeouts(m_hComm,&timeouts)。

3.2 功能碼(0x04)

ADAM4117的設(shè)備地址為0x01,通過04功能碼讀取輸入寄存器電流數(shù)據(jù)。8通道的模擬量輸入采集電流模擬量輸入信號(hào),通過Modbus寄存器地址40001~40008來讀取CH0~CH7的數(shù)值。以讀取CH0為例,其請(qǐng)求指令如表2所示,返回幀如表3所示。

表2 讀取CH0請(qǐng)求指令

部分代碼如下:

3.3 CRC校驗(yàn)

主機(jī)向從機(jī)發(fā)送信息幀時(shí),將CRC(Cyclic Redundancy Check)校驗(yàn)碼一并發(fā)送。CRC校驗(yàn)碼包含2個(gè)字節(jié),即16位二進(jìn)制。CRC校驗(yàn)碼由主機(jī)計(jì)算,放置于發(fā)送信息的尾部。從機(jī)再重新計(jì)算接收到信息的CRC校驗(yàn)碼,比較計(jì)算得到的CRC校驗(yàn)碼是否與接收到的相符,如果兩者不相符,則表明出錯(cuò)[6]。計(jì)算CRC16校驗(yàn)碼的函數(shù)如下:

3.4 測(cè)試數(shù)據(jù)

通過RS-485總線將ADAM4117連接到工控機(jī)的COM2口,讀取溫度傳感器、液位傳感器和氧氣濃度傳感器數(shù)值,上位機(jī)軟件界面如圖4所示。

圖4 軟件界面

打開上位機(jī)調(diào)試程序,對(duì)ADAM4117通訊進(jìn)行測(cè)試,可以正確讀取ADAM4117返回的電流值,經(jīng)過數(shù)據(jù)處理轉(zhuǎn)換為相對(duì)應(yīng)的數(shù)值,如表4所示。

表4 采集的數(shù)據(jù)

4 結(jié)束語

本文針對(duì)芯片測(cè)試設(shè)備的液氮補(bǔ)給自動(dòng)控制系統(tǒng)的數(shù)據(jù)采集需求,在VS2010環(huán)境下設(shè)計(jì)開發(fā)了基于Modbus RTU協(xié)議的數(shù)據(jù)采集平臺(tái),實(shí)現(xiàn)上位機(jī)與ADAM4117數(shù)據(jù)采集模塊的Modbus協(xié)議通信,采集各傳感器的電流數(shù)據(jù)。經(jīng)過對(duì)數(shù)據(jù)采集平臺(tái)的測(cè)試,軟件運(yùn)行穩(wěn)定、可靠,能夠?qū)崟r(shí)采集讀取各傳感器反饋的數(shù)據(jù)。

猜你喜歡
校驗(yàn)碼機(jī)軟件電流值
制冷劑與潤(rùn)滑油混合物對(duì)空調(diào)器泄漏電流影響分析及研究
放療中CT管電流值對(duì)放療胸部患者勾畫靶區(qū)的影響
變壓器差動(dòng)斜率保護(hù)計(jì)算方法
基于Excel實(shí)現(xiàn)書號(hào)校驗(yàn)碼的驗(yàn)證
光伏發(fā)電系統(tǒng)諧波監(jiān)測(cè)與評(píng)估研究
道岔監(jiān)測(cè)系統(tǒng)上位機(jī)軟件設(shè)計(jì)
基于正交試驗(yàn)法的北斗用戶機(jī)軟件測(cè)試用例設(shè)計(jì)
PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計(jì)
身份證號(hào)碼中的數(shù)學(xué)
行唐县| 噶尔县| 疏勒县| 麦盖提县| 云阳县| 嘉兴市| 措勤县| 海兴县| 桂东县| 当涂县| 樟树市| 灌阳县| 会东县| 兴义市| 苍梧县| 凯里市| 清镇市| 娄底市| 大余县| 徐水县| 阿图什市| 宜川县| 贞丰县| 广丰县| 和顺县| 崇仁县| 车险| 星子县| 崇信县| 寻乌县| 洛浦县| 绥宁县| 台北县| 西丰县| 通化市| 鄱阳县| 黄石市| 民县| 邹城市| 巴彦县| 五台县|