人妻第一次尝试黑人,久久久无码国产精品无码三区三区,亚洲日本一区二区一本一道,人妻丰满熟妇av无码久久奶水

流量計 RS485 接口通訊程序的設(shè)計與實現(xiàn)

在工業(yè)現(xiàn)場,流量計是工業(yè)測量中***重要的儀表之一,用于測量流體的流量,隨著工業(yè)的發(fā)展,尤其工廠對于智能制造的需求,市場對流量計在通訊方面的要求與日俱增,RS485 接口是***適合各種流量計的通訊接口,設(shè)計和實現(xiàn)此通訊程序,可以實時快速地將流量數(shù)據(jù)、診斷信息、狀態(tài)檢測等傳輸?shù)缴衔豢刂葡到y(tǒng)中,實現(xiàn)信息交互,提高工廠的自動化水平。

0 引言

 

流量計量是計量科學(xué)技術(shù)的組成部分之一,它與國民經(jīng)濟、國防建設(shè)、科學(xué)研究有密切的關(guān)系,做好這一工作,對保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、促進科學(xué)技術(shù)的發(fā)展都具有重要的作用。目前制造業(yè)都在向智能化轉(zhuǎn)型,工業(yè)生產(chǎn)自動化程度愈來愈高,使得流量計都需要有信息通訊功能,***初是數(shù)據(jù)模擬信號輸出簡單過程量,后來采用 RS232 接口,這種接口可以實現(xiàn)點對點的通信方式,但這種方式不能實現(xiàn)聯(lián)網(wǎng)功能,隨后出現(xiàn)的 RS485 接口徹底解決了這個問題,RS485 接口使用通訊指令進行串行通訊,傳輸流量計的流量數(shù)據(jù)、診斷信息、狀態(tài)檢測等信息。

 

1 .串行接口

 

工業(yè)生產(chǎn)對于信息化的需求是不可或缺的,使得企業(yè)在流量計選型時其中的一個必要條件就是要具有聯(lián)網(wǎng)通信接口 ,串行接口的出現(xiàn)正好解決了這個問題,串行接口是指數(shù)據(jù)一位一位地順序傳送,其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)雙向通信,從而大大降低了成本,特別適用于遠距離通信,具有串行接口的流量計采用串行通訊的方式將信息逐位按順序的傳送,傳送距離可以從幾米到幾千米。

串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來分包括 RS-232、RS-422、RS-485。RS-232 是為點對點通訊而設(shè)計的,傳送距離***大為約 15 米,***高速率為 20kb/s,適合本地設(shè)備之間的通信。

RS-422 定義了接口電路的特性,總線上***多可接 10 個節(jié)點,***大傳輸距離為 1219 米,***大傳輸速率為 10Mb/s。RS-485是從 RS-422 基礎(chǔ)上發(fā)展而來的升級版,RS-485 總線上***多可接到 32 個設(shè)備,共模輸出電壓提高到- 7V 至+12V 之說,提供了很大的便利與節(jié)省了大量的人力物力。傳統(tǒng)方法上,對于數(shù)據(jù)的統(tǒng)計,特別是對于很多數(shù)據(jù)的***大傳輸速率為 10Mb/s。

2 .RS485 通訊程序的設(shè)計與實現(xiàn)

RS485 總線是基于物理接口和屏蔽雙絞線傳輸介質(zhì),只是物理介質(zhì)層,由于其電路特性專門針對一主多從協(xié)議的,上面可以運行很多通訊協(xié)議,如何根據(jù)流量計內(nèi)部 RS485 接口的通訊協(xié)議編寫通訊程序,讀寫流量計的各種信息,就是關(guān)鍵所在了。本文的研究對象是采用 Kojima 公司的 DF 系列氣體質(zhì)量流量計作為 RS485 總線的從站,Schneider 公司的 Proface 觸摸屏作為 RS485 總線主站,在主站中采用腳本語言編寫通訊程序,讀寫從站流量計的各種信息。本文的研究和程序設(shè)計思路對于其余品牌的流量計和上位控制系統(tǒng)同樣適用。

2.1 從站流量計通訊規(guī)范設(shè)計

Kojima 公司的 DF 系列氣體質(zhì)量流量計的 RS485 通訊規(guī)格是傳輸速度 9600 bps、1 位開始位、數(shù)據(jù)長度 8 位、1 位停止位、無奇偶校驗位、采用 3 線半雙工傳輸?shù)膫鬏斚到y(tǒng),支持 32 種指令格式,本文主要編寫的是 32 種指令中的 RCFR(獲取瞬時流量指令)和 WSFD(設(shè)定流量設(shè)定值指令)兩種指令的通訊程序。

 

2.1.1  WSFD 設(shè)定流量設(shè)定值指令

 

WSFD 設(shè)定流量設(shè)定值指令的報文格式,如表 1 所示。

格式1.jpg

STX:設(shè)定流量計通訊指令起始碼,固定為“@”,對應(yīng) AS-CII 碼 40H,占 1 個字節(jié)。

Communication ID:流量計從站地址,占用 3 個字節(jié),范圍是 001 ~ 099。

Command:指定通訊指令為 WSFD(設(shè)定流量設(shè)定值指令),占 4 個字節(jié)。

 

Data:4 位十進制數(shù)的流量設(shè)定值,范圍 0000 ~***大流量,占 4 個字節(jié)。

 

Check sum:校驗碼,計算方法是“STX + Communication ID + Command + Data”的低兩位 16 進制數(shù),占 2 個字節(jié)。

 

ETX:通訊指令結(jié)束碼,固定為“CR”,對應(yīng) ASCII 碼 0DH,占 1 個字節(jié)。

發(fā)出 WSFD 指令后,返回的報文格式,如表 2 所示。STX:返回報文起始碼,固定為“%”,對應(yīng) ASCII 碼 25H,占 1 個字節(jié)。

 格式2.jpg

Communication ID:流量計從站地址,占用 3 個字節(jié),范圍是 001 ~ 099。

 

Command:指定通訊指令為 WSFD(設(shè)定流量設(shè)定值指令),占用 4 個字節(jié)。

 

Exit code:返回數(shù)據(jù)成功,顯示 OK 的 ASCII 碼;返回數(shù)據(jù)失敗,顯示 NG 的 ASCII 碼,占用 2 個字節(jié)。

 

Check sum:校驗碼,計算方法是“STX + Communication ID + Command + Exit code”的低兩位 16 進制數(shù),占 2 個字節(jié)。

 

ETX:通訊指令結(jié)束碼,固定為“CR”,對應(yīng) ASCII 碼 0DH,

占 1 個字節(jié)。

2.1.2  RCFR 獲取瞬時流量指令

RCFR 獲取瞬時流量指令的報文格式,如表 3 所示:

格式3.jpg

STX:設(shè)定流量計通訊指令起始碼,固定為“@”,對應(yīng) AS-CII 碼 40H,占 1 個字節(jié)。

Communication ID:流量計從站地址,占用 3 個字節(jié),范圍是 001 ~ 099。

Command:指定通訊指令為 RCFR(獲取瞬時流量指令),占用 4 個字節(jié)。

 

Check sum:校驗碼,計算方法是“STX + Communication ID + Command”的低兩位 16 進制數(shù),占 2 個字節(jié)。

 

ETX:通訊指令結(jié)束碼,固定為“CR”,對應(yīng) ASCII 碼 0DH,占 1 個字節(jié)。

 格式4.jpg

發(fā)出 RCFR 指令后,返回的瞬時流量值的報文格式,如表 4 所示。

STX:返回報文起始碼,固定為“%”,對應(yīng) ASCII 碼 25H,

 

占 1 個字節(jié)。

 

Communication ID:流量計從站地址,占用 3 個字節(jié),范圍

 

是 001 ~ 099。

 

Command:指定通訊指令為 RCFR(獲取瞬時流量指令),占用 4 個字節(jié)。

 

Exit code:返回數(shù)據(jù)成功,顯示 OK 的 ASCII 碼;返回數(shù)據(jù)失敗,顯示 NG 的 ASCII 碼,占用 2 個字節(jié)。

 

Data:返回 4 位十進制數(shù)的瞬時流量值,范圍 0001 ~9999,占用 4 個字節(jié)。

 

Check sum:校驗碼,計算方法是“STX + Communication ID + Command + Exit code + Data”的低兩位 16 進制數(shù),占 2 個字節(jié)。

 

ETX:通訊指令結(jié)束碼,固定為“CR”,對應(yīng) ASCII 碼 0DH,占 1 個字節(jié)。

 

2.2 主站通訊程序?qū)崿F(xiàn)

 

主站采用 Schneider 公司的 Proface 觸摸屏,在主站中采用腳本語言編寫通訊程序,實現(xiàn) RCFR(獲取瞬時流量指令)和WSFD(設(shè)定流量設(shè)定值指令),從而可以讀寫從站流量計的流量信息。

 

2.2.1  主站通訊參數(shù)設(shè)定

在主站(Schneider 公司的 Proface 觸摸屏)中對應(yīng)設(shè)定 Ko-jima 公司的 DF 系列氣體質(zhì)量流量計的 RS485 通訊規(guī)格傳輸速度 9600 bps、1 位開始位、數(shù)據(jù)長度 8 位、1 位停止位、無奇偶校驗位,如圖 1 所示。

格式5.jpg

2.2.2 主站串口操作指令

主站 Schneider 公司的 Proface 觸摸屏支持類 C 語言格式的腳本編程語言,具有完整的串口操作指令,引用 IO_WRITE和 IO_READ 兩個串口操作指令函數(shù)[5],編寫通訊程序,完成對從站流量計流量信息的讀寫。

IO_WRITE 發(fā)送指令,功能是將數(shù)據(jù)寫至流量計串口,格式如下。

IO_WRITE ([p:EXT_SIO],數(shù)據(jù)存儲地址,發(fā)送字節(jié)數(shù))IO_READ 接收指令,功能是從流量計串口中讀取已接收的數(shù)據(jù),格式如下。

IO_READ ([p:EXT_SIO],數(shù)據(jù)存儲地址,接收字節(jié)數(shù))

2.2.3 主站通訊程序編寫

本文給出如下編寫的 RCFR 和 WSFD 指令的通訊程序腳本,實現(xiàn)在主站觸摸屏上設(shè)定從站流量計的設(shè)定值,并實時讀取從站流量計的瞬時流量值的功能。

if([b:[#INTERNAL]USR0000000])

{  //檢測位開關(guān)發(fā)送設(shè)定值指令是否為 ON;如果為 ON,清除位開關(guān)發(fā)送設(shè)定值,使其為 OFFclear([b:[#INTERNAL]USR0000000])// 發(fā)送流量設(shè)定值,發(fā)送指令: @ 0 0 1 W S F D 設(shè)定值校驗碼 CR

// (對應(yīng) ASCII 碼) 40H 30H 30H 31H 57H 53H 46H 44H 設(shè)定值 校驗碼 ODH

//校驗碼計算 校驗和 & 0x00ff 得到低 8 位

[t:0010]=0x40+0x30+0x30+0x31+0x57+0x53+0x46+0x44+[w:[#INTERNAL]USR00002]

[t:0011]=[t:0010]&0x00ff

[w:[#INTERNAL]USR00003]=0x40

[w:[#INTERNAL]USR00004]=0x30

[w:[#INTERNAL]USR00005]=0x30

[w:[#INTERNAL]USR00006]=0x31

[w:[#INTERNAL]USR00007]=0x57

[w:[#INTERNAL]USR00008]=0x53

[w:[#INTERNAL]USR00009]=0x46

[w:[#INTERNAL]USR00010]=0x44

[w:[#INTERNAL]USR00011]=[w:[#INTERNAL]USR00002]//畫面輸入的設(shè)定值

[w:[#INTERNAL]USR00012]=[t:0011]

[w:[#INTERNAL]USR00013]=0x0D

//從數(shù)據(jù)緩沖器到內(nèi)部寄存器函數(shù)

//_dlcopy ([復(fù)制目標(biāo)地址]、復(fù)制源數(shù)據(jù)緩沖器、復(fù)制源偏移值、復(fù)制字符數(shù))

_ldcopy(databuf0, [w:[#INTERNAL]USR00003], 11)

//將數(shù)據(jù)寫至流量計串口時,采用發(fā)送指令

IO_WRITE_EX([p:EXT_SIO], databuf0, 11)}

Endif

//接收流量瞬時值

//(1)發(fā)出讀瞬時流量指令 @ 0 0 1 R C F R 校驗碼 CR// (對應(yīng) ASCII 碼) 40H 30H 30H 31H 52H 43H 46H 52H 校驗碼 0DH

//校驗碼計算,校驗和 & 0x00ff 得到低 8 位

[t:0012]=0x40+0x30+0x30+0x31+0x52+0x43+0x46+0x52

[t:0013]=[t:0010]&0x00ff

[w:[#INTERNAL]USR00014]=0x40

[w:[#INTERNAL]USR00015]=0x30

[w:[#INTERNAL]USR00016]=0x30

[w:[#INTERNAL]USR00017]=0x31

[w:[#INTERNAL]USR00018]=0x52

[w:[#INTERNAL]USR00019]=0x43

[w:[#INTERNAL]USR00020]=0x46

[w:[#INTERNAL]USR00021]=0x52

[w:[#INTERNAL]USR00022]=[t:0013]

[w:[#INTERNAL]USR00023]=0x0D

_ldcopy(databuf1, [w:[#INTERNAL]USR00014], 10)IO_WRITE_EX([p:EXT_SIO], databuf1, 10)

//(2)接收返回的瞬時流量值

// 指令:% 0 0 1 R C F R O K 瞬時流量值 校驗碼 CR

// (對應(yīng) ASCII 碼): 25H 30H 30H 31H 52H 43H 46H 52H

4FH 4BH 瞬時流量值 校驗碼 ODH

//當(dāng)從流量計串口中讀取已接收數(shù)據(jù)時,采用接收指令I(lǐng)O_READ_EX([p:EXT_SIO], databuf2, 13)

_dlcopy([w:[#INTERNAL]USR00024], databuf2, 0, 13)// [w:[#INTERNAL]USR00034] 里面 存儲的是 返回的瞬時流量值。

Kojima 公司的 DF 系列氣體質(zhì)量流量計一共支持 32 種通訊指令,每種指令的報文格式不同,根據(jù)它們的報文格式,參照如上 RCFR 和 WSFD 指令的通訊程序,可以在主站中實現(xiàn)全部 32 中通訊指令,從而可以讀寫流量計中各種各樣的數(shù)據(jù)信息。

3.結(jié)論

RS485 是工業(yè)數(shù)據(jù)總線的一種,是自動化領(lǐng)域中底層數(shù)據(jù)通信網(wǎng)絡(luò),流量計具有 RS485 串口通訊使得上位系統(tǒng)可以方便的編寫通訊程序,用數(shù)字通信替代了傳統(tǒng)的模擬信號及普通開關(guān)量信號的傳輸,高效便捷的連接了智能現(xiàn)場設(shè)備和自動化系統(tǒng),將流量計量和智能制造緊密的連接了起來。

 

 

相關(guān)新聞

返回頂部
0517-8699 6066 歡迎來電咨詢
Hello. Add your message here.