




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 一種基于Delphi歐陸3504溫控儀表通訊設計 李紅飛馬俊陳章龍Summary:該文介紹了歐陸3504溫控儀表基于Delphi平臺的串口通訊設計,詳細地介紹了歐陸3504的命令格式和基于Delphi的16位循環(huán)冗余算法。軟件設計以Delphi 2010為開發(fā)平臺,通過Mscomm控件實現(xiàn)了計算機對歐陸3504串口通信。功能包括讀取雙色紅外線溫度計測量的溫度、歐陸3504的Auto和Man功能之間相互轉換、預設的溫度值和功率百分比輸入。Key:歐陸3504溫控儀;Delphi;Mscomm;CRC:TP311 :A :1009-3044(2017)02-0226-04Communicatio
2、n Programming Based on Delphi for Eurotherm 3504 Temperature ControllerLI Hong-fei, MA Jun, CHEN Zhang-long(Qinghai Normal University,College of Computer Science, Xining 810000, China)Abstract: The paper introduces Eurotherm 3504 temperature control instrumentals serial port communication programmin
3、g based on the Delphi platform ,and detail introduces that the Eurotherm 3504 typical command form and the 16 bit cyclic redundancy algorithm(CRC) based on Delphi 2010 .The software design using Delphi 2010 as the development platform ,through the Mscomm control to achieve the computer on the Euroth
4、erm 3504 serial communication . The function mainly includes read temperature that the double color infrared thermometer measure、the function transformation between Auto and Man of the Eurotherm 3504 and the input value of the preset temperature and the percentage of power.Key words: Eurotherm 3504;
5、 Delphi; Mscomm; CRC1 背景歐陸3504溫控儀表是歐陸公司最新推出的高性能過程溫度控制器,它融合了液晶顯示及微處理器科技之優(yōu)點,其以較高的控制精度和良好的適應能力,被廣泛應用于各種溫度控制過程1。溫度計采用雙色紅外測溫計,雙色紅外測溫是利用鄰近通道兩個波段紅外輻射能量的比值來決定溫度的大小,能夠消除水汽、灰塵、檢測目標大小變化、部分被遮擋、發(fā)射率變化等的影響,即使檢測信號衰減95%,也不會對測溫結果有任何影響。獨特的軟件算法,可以克服氧化層的影響。軟硬件設計,適用于幾十萬倍信號的處理,可以滿足對儀器精度、重復性、等各方面的要求2。本文詳細介紹了計算機與歐陸3504溫控儀的通
6、信過程,并開發(fā)了基于Delphi 2010的平臺的通信測試軟件。軟件實現(xiàn)了實時溫度采集、溫度顯示、歐陸3504溫控儀的Auto模式和Man模式轉換、以及溫度或者功率百分比輸入。為歐陸表3504溫控儀開發(fā)過程提供了良好的方法。2 通訊協(xié)議和通信控件歐陸3504采用Modbus 通訊協(xié)議,在Modbus系統(tǒng)中有2種傳輸模式可選擇,一種模式是ASCII(美國信息交換碼),另一種模式是RTU(遠程終端設備)。在同樣的波特率下,RTU方式可比ASCII方式傳送更多的數(shù)據(jù)3。歐陸3504溫控儀采用的是RTU傳輸方式。使用RTU模式,消息發(fā)送至少要以3.5個字符時間為停頓間隔開始。如果一個新消息在小于3.5
7、個字符時間內開始,接收設備將認為是前一消息的延續(xù),這將導致錯誤產(chǎn)生。RTU典型的消息幀如表1所示。本軟件在Delphi 2010開發(fā)平臺中采用了Windows通信控件(Mscomm)實現(xiàn)與RS232的串口通信。Mscomm控件是與RS232兼容串行接口控件,歐陸3504溫控儀采用485通訊接口,需要由485轉232接口與計算機連接,在系統(tǒng)中選用了UPort 1610-8。UPort 1600系列產(chǎn)品可以讓計算機可以通過USB ( 通用串行總線) 與8 個串口RS-232 或RS-232/422/ 485 的外設進行通信。在工控中作為擴展口非常實用。Mscomm控件的主要屬性為4:1) Comm
8、Port:設置和返回串行端口號,缺省為1。MSComm1.CommPort:=1;2) Setting:設置或者返回串行的波特率、奇偶校驗位、數(shù)據(jù)位數(shù)、停止位。MSComm1.Settings:=19200,n,8,1; 歐陸3504波特率采用的是19200而不是常用的9600。3) InputMode:設置從接受緩沖區(qū)讀取數(shù)據(jù)格式,有文本格式和二進制格式。MSComm1.InputMode:=comInputModeBinary;/二進制模式4) RThreshold:該屬性為產(chǎn)生代碼為ComEvReceive的OnComm事件的閾值。 MSComm1.RThreshold:=7;歐陸350
9、4返回數(shù)據(jù)的主要用在對于溫度的查詢,所以就用溫度最小返回的數(shù)據(jù)個數(shù)為閾值。5) PortOpen:打開或關閉串行端口。MSComm1.PortOpen:=True;對于Mscomm控件的其他屬性在軟件中采用了默認值,沒有另行設置。3 循環(huán)冗余校驗(CRC)循環(huán)冗余校驗碼(CRC)的基本原理是:在K位信息碼后再拼接R位的校驗碼,整個編碼長度為N位,因此,這種編碼也叫(N,K)碼。對于一個給定的(N,K)碼,可以證明存在一個最高次冪為N-K=R的多項式G(x)。根據(jù)G(x)可以生成K位信息的校驗碼,而G(x)叫做這個CRC碼的生成多項式5。由表2可知歐陸3504發(fā)送數(shù)據(jù)總長度為64位(N),數(shù)據(jù)校
10、驗位為16位(R). 需要對48(K)位信息碼進行校驗function QhCRC16(AData:array of Byte):Word;本程序選用多項式G(x) =X16+X15+X2+1即const GENP=$A001;如發(fā)送數(shù)據(jù)定義為sbuf:array1.8 of byte;對于數(shù)組前6位按照發(fā)送數(shù)據(jù)格式和要求填寫,然后調用校驗函數(shù)進行校驗。因為函數(shù)返回數(shù)據(jù)類型為Word,應對返回數(shù)據(jù)進行數(shù)據(jù)分割校驗高低位并轉換為16進制。分別對sbuf6, sbuf7賦值,然后調用MSComm1的Output函數(shù)進行發(fā)送。CRC校驗函數(shù)如下。function QhCRC16(AData:arra
11、y of Byte;AStart,AEnd:Integer):Word;constGENP=$A001; /多項式公式X16+X15+X2+1(1100 0000 0000 0101)varcrc:Word;i:Integer;tmp:Byte;procedure CalOneByte(AByte:Byte); /計算1個字節(jié)的校驗碼varj:Integer;begincrc:=crc xor AByte; /將數(shù)據(jù)與CRC寄存器的低8位進行異或for j:=0 to 7 do /對每一位進行校驗begintmp:=crc and 1; /取出最低位crc:=crc shr 1; /寄存器向右
12、移一位crc:=crc and $7FFF; /將最高位置0if tmp=1 then /檢測移出的位,如果為1,那么與多項式異或crc:=crc xor GENP;crc:=crc and $FFFF;end;end;begincrc:=$FFFF; /將余數(shù)設定為FFFFfor i:=AStart to AEnd do /對每一個字節(jié)進行校驗CalOneByte(ADatai); Result:=crc;end;4 功能碼和寄存器地址使用Modbus通訊協(xié)議,需要對Modbus功能碼進行一定的了解。在本程序中主要用到功能碼兩個$03、$06。$03讀取保持寄存器主要用于讀取由雙色紅外線溫度
13、計傳給歐陸3504溫控儀的溫度。$06預置單寄存器,主要用于對Auto(0)、Man(1)相互轉換和溫度或者功率百分比輸入。寄存器地址,對歐陸3504溫控儀進行操作需要預先知道其各個寄存器的地址,比如要讀取溫度,需要知道存放溫度的寄存器地址($01);對于查詢寄存器地址可以用歐陸3504配套軟件iTools Engineering Studio連接之后可以查詢各個寄存器地址。再結合本軟件的對于寄存器的操作方法,就可以實現(xiàn)對于歐陸3504的全部操作。5 軟件整體設計在工業(yè)控制設備中串口一般是統(tǒng)一分配的,以便安裝操作方便。所以在工業(yè)控制軟件可以直接給Mscomm控件進行串口號賦值,但是需要先檢測串
14、口號是否存在。利用注冊表(Registry),檢測所有串口號,再用Pos函數(shù)檢查是否有所需串口。避免串口不存在時發(fā)生的錯誤警告。也可以用ComboBox控件、Button控件和注冊表組合使用。用注冊表檢測所有串口,賦值給ComboBox控件的Items屬性。Button按鈕作為連接按鈕,同時也是設備開始按鈕。本程序選用第二種方法,另加了一個刷新按鈕,當串口改變時需重新刷新,對ComboBox重新賦值。軟件流程圖如圖1。在軟件流程圖中,設定的為檢測到溫度大于預定上限值時,由手動轉換為自動模式。在手動模式中輸出為功率百分比,在自動模式中輸出的是預設溫度。歐陸3504在自動模式下預設溫度可以根據(jù)反饋
15、信號自動調節(jié)輸出功率百分比,這樣使得對于溫度的控制更加精確。本軟件為測試軟件事先添加了自動和手動按鈕,以便模式的轉換。由于溫度是由雙色紅外線溫度計傳給歐陸3504,雙色紅外線溫度計檢測范圍為1000-3200,所以之前的升溫階段只能輸入功率百分比。設立溫度上限,來保證當溫度達到上限值時的自動轉換。轉換程序在Mscomm空間Oncomm事件中,將歐陸3504返回的溫度數(shù)據(jù)轉換十進制數(shù)后進行判斷。為避免每次都進行同一種模式寫入,可以加入兩個標志位來保證在不同模式下才進行模式轉換。測試軟件工作流程為先設置串口號,將ComboBox.Text刪除COM之后的數(shù)字賦值給Mscomm控件作為串口號。因為歐
16、陸3504波特率為19200,所以波特率在不選擇的條件下將默認為19200,也可以對波特率改動進行驗證,檢測是否有數(shù)據(jù)返回。添加了兩個Memo控件,一個是顯示發(fā)送的數(shù)據(jù),一個顯示歐陸3504返回的數(shù)據(jù)。在面板中添加了Timer控件,Timer控件在檢測到串口打開后,就會啟動發(fā)送查詢溫度程序。Timer默認為1000ms發(fā)送一次。 if MSComm1.PortOpen thenbeginsbuf1:=byte($01); /幀頭sbuf2:=byte($03); /命令號查詢sbuf3:=byte($00);sbuf4:=byte($01);sbuf5:=byte($00);sbuf6:=by
17、te($01);sbuf7:=byte($D5); /數(shù)據(jù)校驗位sbuf8:=byte($CA); /數(shù)據(jù)校驗位sendcommend; /發(fā)送數(shù)據(jù)給歐陸3504ReadTsign:=True;/查詢溫度的標志當為真時對歐陸3504返回數(shù)據(jù)進行處理轉換為溫度end;在本程序中CRC算法程序的調用主要用于對功率百分比和預設溫度值輸入。對于Timer控件下的讀取溫度、手動和自動模式轉換,因為要發(fā)送的數(shù)據(jù)固定不變或者頻率較大,所以直接先算出該查詢數(shù)據(jù)的CRC校驗位進行賦值。避免每次發(fā)送都需要進行校驗,減小程序的運行負擔。設置MSComm1.RThreshold:=7; 當接收緩沖區(qū)內的字節(jié)個數(shù)大于等
18、于7個后就產(chǎn)生代碼為ComEvReceive的OnComm事件。只有查詢溫度的時歐陸3504返回的數(shù)據(jù)需要進行,處理得出溫度值。其他數(shù)據(jù)只是為判斷歐陸3504是否得到數(shù)據(jù)。所以在查詢溫度時增加了一個標志符號(ReadTsign)。標志符號初始化為假,在查詢溫度時將其賦值為真。在OnComm事件中檢測ReadTsign,如果為真,將返回數(shù)據(jù)的rbuf3和rbuf4進行處理得到設備溫度的值,其他返回數(shù)據(jù)不做處理。對于歐陸3504溫控儀返回的溫度是由雙色紅外測溫儀檢測出來返回給歐陸表的。雙色紅外測溫儀為高溫計,檢測范圍為1000-3200。所以當雙色紅外測溫儀檢測的溫度不在這個范圍時歐陸3504溫控
19、儀返回的溫度始終為3314.0,恒定不變。procedure TForm1.MSComm1Comm(Sender: TObject);vari: Integer;beginrbuf := MSComm1.Input;sendstr:=;if ReadTsign thenbeginReadTsign:=False;/標志賦值為假,等待下一次查詢T:=(rbuf3*256+rbuf4)/10;/輸出溫度為小點后一位T為Real類型sendstr:=FloatToStr(T) ;Label1.Caption:= sendstr+;/程序窗口顯示溫度sendstr:=;end;end;預設溫度值或者功
20、率百分比輸入,需要先將要輸入的值擴大10倍,因為輸入的數(shù)據(jù)在歐陸3504中會自動將最后一位設為小數(shù),所以要將要輸入的值增加10倍。而且需要判斷歐陸3504工作在Men模式還是Auto模式。因為不但兩個要操作的地址不同,而且兩個模式下輸入值得范圍也不同。在Men模式下要輸入的值范圍為0-40,Auto模式下要輸入的值范圍為1000-2500,有效數(shù)字均為小數(shù)點后一位。在范圍外的值輸入時,設備對于輸入的值是不予識別的。要發(fā)送的數(shù)據(jù)選用了Edit控件的OnKeyDown事件,當Enter按鍵按下時進行數(shù)據(jù)傳送。varData:array0.255 of Byte;i,j:Integer;Res:Wo
21、rd;TsData,szData:string;beginif Key=13 then /當Enter按鍵按下時beginszData:=IntToHex(round(StrToFloat(Form1.SendData.Text)*10),4);/將Edit的內容擴大10倍四舍五入后/轉換為4位16進制,來保證輸入框的數(shù)字與歐陸3504表要顯示的數(shù)字相同。i:=1;j:=0;for j:=0 to 1 dobeginif (i mod 2)=0 then /每2個字符放入一個字節(jié)中i:=i+1;if i=Length(szData) thenexit;Dataj:=StrToInt($+cop
22、y(szData,i,2); /取出字符并轉換為16進制數(shù)i:=i+1;end;sbuf1:=byte($01); /幀頭sbuf2:=byte($06); /命令號 預置單寄存器功能碼sbuf3:=byte($00);if commflg=true then/在Auto模式下beginsbuf4:=byte($02);endelse/在Man模式下beginsbuf4:=byte($03);end;sbuf5:=Data0;sbuf6:=Data1; /數(shù)據(jù)校驗位 Res:= QhCRC16(sbuf,0,5);/CRC檢驗szData:=IntToHex(Res,4) ;i:=1;j:=0;for j:=0 to 1 dobeginif (i mod 2)=0 then /每2個字符放入一個字節(jié)中i:=i+1;if i=Length(szData) thenexit;Dataj:=StrToInt($+copy(szData,i,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新質生產(chǎn)力政策
- 人教高中物理必修三第九章靜電場及其應用第一節(jié)電荷教學設計教案2份
- 2025屆湖南省長沙市大附中博才實驗中學數(shù)學七下期末綜合測試模擬試題含解析
- 肌纖維瘤的臨床護理
- 北師大版六年級數(shù)學下冊反比例的意義教學設計
- 服裝銷售總結模版
- 醫(yī)院護士面試試題及答案
- 一級消防試題及答案案例
- 2025年蘇教版數(shù)學五年級下冊期末檢測題及答案(一)
- 美妝品牌購物中心美妝專區(qū)綜合委托經(jīng)營合作協(xié)議
- 中國藝術歌曲賞析及實踐知到課后答案智慧樹章節(jié)測試答案2025年春四川音樂學院
- 2025年社區(qū)工作者必考試題庫及答案
- GB/T 44625-2024動態(tài)響應同步調相機技術要求
- 硅酸鈣板、含鋯型硅酸鋁纖維棉、高鋁型硅酸鋁纖維棉技術規(guī)格
- 小學二年級下冊道德與法治《小水滴的訴說》教學教案
- 2018年可行性研究報告投資估算及財務分析全套計算表格共14個附表excle帶公式只更改標紅部分即可帶說明
- 企業(yè)落實安全生產(chǎn)主體責任重點事項清單(20項要點)
- 護士分層級培訓與管理課件
- 《人機工程學》第5章人的作業(yè)能力與疲勞課件
- 彩鋼產(chǎn)品合格證
- 人臉識別外文文獻(共9頁)
評論
0/150
提交評論