




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1頁TTwinCAT3溫度控制庫使用說明與例程作者:余洋職務:助理技術工程師日期:2022-08-15摘要:PID溫度控制在工業化生產中十分的常見。可以通過BeckhoffTF4110溫度控制庫對系統實現精準、方便的溫度控制。此文檔介紹了TF4110溫度控制庫中功能塊的功能與參數,并以電阻為被控對象演示功能塊的實際使用方法與效果。附件:序號文件名備注1Temperature_Controller例程歷史版本:2003-11-04溫度控制器軟件庫使用說明.pdf史匯源溫度控制庫使用說明與演示.docx免責聲明:我們已對本文檔描述的內容做測試。但是差錯在所難免,無法保證絕對正確并完全滿足您的使用需求。本文檔的內容可能隨時更新,如有改動,恕不事先通知,也歡迎您提出改進建議。參考信息:目錄1. 軟硬件版本 31.1. 倍福Beckhoff 31.1.1. 控制器硬件 31.1.2. 控制軟件 32. 準備工作 32.1. PID算法 32.2. 硬件作用詳解和接線 32.2.1. 模塊接線設置 32.2.2. 電腦接線設置 53. 操作步驟 53.1. 掃描IO模塊 53.2. 申明功能塊引腳變量 63.3. 更改功能塊引腳變量 83.4. 申明sControllerParameter結構體變量中的元素 83.5. 更改sControllerParameter結構體變量中的元素值 103.6. 編寫PLC程序 113.6.關聯變量 133.7.編寫PLCHMI 153.8.編寫PLCScopeview 163.9.注意事項 174. PID溫度曲線調試 174.1. 軟啟動調整 174.2. PID內部參數調整 185. 結束語 21
軟硬件版本倍福Beckhoff控制器硬件CX5020-0115EL2004、EL3204、PT100溫度傳感器、大功率電阻控制軟件調試電腦為TwinCAT3.14024.32版本控制器為TwinCAT3.14024.29版本TF4110溫度控制庫為版本準備工作PID算法設想一下,如果讓普通人設計一個溫度控制的系統,會怎么做呢?一般人的想法都是設一個變量為設定值,當溫度到達設定值就斷電停止加熱。但一般這樣會發生一個什么現象?那就是當你停止加熱后,系統溫度仍然會升高一段時間。此外,如果要求將溫度保持在設定值呢?在工業生產中,很多產品對于工作環境溫度的要求是非常高的。上述的做法自然是無法達到這樣的要求。我們可以想象一下,如果你開著一輛賽車,想要把速度提高到200km/h,按照人的邏輯,在接近180km/h的時候,我們會覺得加速太快了。因此,可能會收一點油門。當速度接近195km/h時,再收一點油門。以此類推,最終達到我們想要達到的時速。那人可以做到,怎么讓沒有思維的機器做到類似的效果呢?這就要多虧了我們偉大而又聰明的前輩科學家們,他們想到了一個算法來解決這個問題:PID算法。這個算法已經有107年的歷史了,我們現實中有許多以它為核心的實際應用。它包含了KP(比例),KI(積分)、KD(微分)三部分,這里就不對它們進行詳細的講解了。總而言之,通過這三者構成的PID算法,我們就能夠將溫度無限接近并維持在設定溫度了。硬件作用詳解和接線模塊接線設置模塊接線原理圖如下圖所示:經過這樣的一個接線和設計,當我想提高PT100溫度傳感器所處的環境溫度時,在TwinCAT3中設定一個溫度值,電腦通過具備PID算法的溫度控制功能塊,使電阻迅速升溫。同時,為了方便采集數據,我將PT100和電阻捆綁。由于兩者是捆綁的,因此PT100采集到的數據即為電阻的溫度。當EL2004其中一個輸出端口為1時,通道打開電阻就會工作。電腦接線設置電腦接線設置如下圖所示:操作步驟掃描IO模塊連接控制器按照圖中標出的順序依次選擇:(注:如果在第四步驟BroadcastSearch中搜索不到控制器的話,也可以在左側EnterHostName/IP中輸入目標控制器的IP地址手動進入)添加設備按照圖中的順序掃描并添加設備:(注:右鍵Devices選擇Scan,此項動作需要在Config模式下才能使用)按照以上步驟操作后,就可以看到模塊顯示在左側資源管理器當中了申明功能塊引腳變量TF4110溫度控制庫中的核心功能塊為FB_CTRL_TempController。它的引腳如下:輸入信號:eControlMode:控制模式0:idle;1:passive;2:active;3:reset;4:manual;5:tune;6:selftestbSelSetpoint:選擇兩個設定值中的一個。FALSE為主設定值(加熱值),true為輔助設定值(保溫值)fW1:主設定值;fW2:輔助設定值,通常小于fW1,fSelSetpoint:用于選擇切換fW1和fW2。;fX:實際值,必須轉化為LREAL格式;fYManual:手動控制;sParaControllerExternal:外部控制器參數輸入;sControllerParameter:參數設置。bOpenThermocouple:如果為TRUE,表示熱電偶開路。必須由硬件指示(例如:ELxxxx);bReverseThermocouple:TRUE表示熱電偶的連接極性錯誤,必須由硬件指示;bBackVoltage:TRUE表示熱電偶的輸入電壓太高,必須由硬件指示;bLeakage:TRUE表示加熱元件檢測到峰值電流,必須由硬件指示;bShortCircuit:TRUE表示加熱元件檢測到短路信號,必須由硬件指示;bOpenCircuit:TRUE表示加熱元件檢測到開路信號,必須由硬件指示;輸出信號:fYAnalog:模擬量控制;bYPWMPos:PWM波輸出,加熱,Bool量;bYPWMNeg:PWM波輸出,冷卻,Bool量;bYDigPos:三點式輸出,bool量,值為1時,控制值100%;bYDigNeg:三點式輸出,bool量,值為1時,控制值-100%;dwAlarm:報警值;fMaxOverShoot:超調值;tStartUpTime:上升時間;eCtrlState:控制器實際的狀態;sParaControllerInternal:內部自整定參數;bError:報警輸出,有報警時,值置為1;iErrorId:報警代碼(注:本功能塊中,必須填寫的輸入引腳已在圖中用紅線劃出,下面會對其進行詳細介紹)ECtrlMode指的是系統模式,由于此例程的目的是自動控制,所以選擇系統默認的被動即可,不需要修改。fW1為設置值,即想要電阻達到的溫度。在這個項目中,本例程又設置了一個保溫溫度fW2。它的作用是為了在程序運行時節約系統能源,將設定溫度值臨時切換為保溫值。而切換的操作則由bSelSetpoint完成,當它為FALSE時,目標溫度為設定值,當它為TRUE時,目標溫度為保溫值。fX則為實際溫度值,即溫度傳感器PT100接收到的電阻溫度。因此需要將它和EL3204模塊的接收通道關聯。(注:本例程中,更改過或關聯過的數據已在圖中用綠圈圈出,下面會對其進行詳細介紹)除了上述提到輸入引腳的關聯,我還將功能塊中的輸出引腳bYPWMPos、bError、iErrorld進行了關聯。(bError、iErrorld的關聯將會在后文制作組態的界面進行詳細介紹,對于功能塊的使用,兩者不構成影響)而對輸出引腳bYPWMPos進行關聯時,需要了解功能塊的輸出模式。根據輸出類型的不同,有以下兩種連接方式:1.模擬量輸出:模擬量輸出能夠通過調節供電電壓大小的方式來控制加熱。2.PWM輸出:PWM輸出只有0和1,因此PWM輸出可以通過調節0和1的占空比來對加熱進行調節。因為在本項目中采用的供電模塊為EL2004模塊,它是一個channeldigitaloutputterminal,輸出只有0和1,因此采用PWM輸出。其對應的功能塊輸出引腳為bYPWMPos,需要將它和EL2004模塊的輸出通道作關聯。最后一個sControllerParameter指的是功能塊算法的內部參數。這個內部參數引腳其實是一個結構體變量,在下一小節會詳細介紹:更改功能塊引腳變量上述功能塊引腳在本例程中的賦值如下:申明sControllerParameter結構體變量中的元素iMode:E_CTRL_ControlMode;(*1=加熱,2=冷卻,3=加熱及冷卻*)
iReactionOnFailure:E_CTRL_ReactionOnFailure;(*0=控制器關閉,1=手動操作,2=yMin,3=yMax*)
bSelCtrlParameterSet:BOOL;(*FALSE=內部pid參數設定,TRUE=外部pid參數設定*)dwAlarmSupp:DWORD;(*
報警限制值*)
tCtrlCycleTime:TIME;(*控制器周期時間*)
tTaskCycleTime:TIME;(*PLC任務周期時間*)(*tuningparameter整定參數*)
iTuningMode:E_CTRL_TuneMode;(*只加熱,只冷卻,先加熱后冷卻,先冷卻后加熱*)
tTuneStabilisation:TIME:=t#20s;(*等待系統穩定時間*)
fEndTunePercentHeating:FLOAT:=80.0;(*大于80%時,切換成閉環控制*)
fYTuneHeating:FLOAT;(*
stepchangewhiletuningoperation*)fYStableHeating:FLOAT;(*加熱調整操作*)
fEndTunePercentCooling:FLOAT:=20.0;(*小于20%時,切換成閉環控制*)
fYTuneCooling:FLOAT;(*
stepchangewhiletuningoperation*)
fYStableCooling:FLOAT;(*冷卻調整操作*)
fScalingFactor:FLOAT:=1.0;(*加熱和冷卻KP比例系數*)
fWMin:FLOAT;(*下限值*)
fWMax:FLOAT;(*上限值*)(*startup啟動*)
bEnableSoftStart:BOOL;(*FALSE=無軟啟動,TRUE=軟啟動*)
bEnableRamping:BOOL;(*FALSE=無斜波,TRUE=有斜波*)
fWStartUp:LREAL;(*軟啟動預設定值*)tStartUp:TIME;(*軟啟動等待時間*)bStartUpRamping:BOOL;(*啟動過程時允許斜波功能*)fWStartUpVeloPos:LREAL;(*啟動過程時增加給定的最大梯度值*)fWStartUpVeloNeg:LREAL;(*啟動過程時減小給定的最大梯度值*)fWVeloPos:LREAL;(*增加給定的最大梯度值*)fWVeloNeg:LREAL;(*減小給定的最大梯度值*)(*actualvalueparameters實際值參數*)bFilter:BOOL;tFilter:TIME;(*deadbandparameters
死區參數*)
bDeadband:BOOL;
fEDeadband:FLOAT;(*
死區*)(*controlvalueparameters
控制值參數
*)
fYMin:FLOAT;(*下限值*)
fYMax:FLOAT;(*上限值*)
fYManual:FLOAT;
(*手動操作值*)
fYOnFailure:FLOAT;(*故障時的控制值*)
tPWMCycleTime:TIME;(*PWM:周期*)
tPWMMinOffTime:TIME;(*PWM:minofftime*)
tPWMMinOnTime:TIME;(*PWM:minontime*)
tPWMWaitingTime:TIME;(*PWM:minwaitingtime*)(*notyetimplemented!!!!*)fYThresholdOff:FLOAT;(*3-Point:關斷極限*)
fYThresholdOn:FLOAT;(*3-Point:開始極限*)
nCyclesForSwitchOver:INT:=100;(*controllersettings控制器設置*)bEnablePreController:BOOL;(*允許預控制器*)bEnableZones:BOOL;(*允許開環調節時的設定調節帶*)bEnableCVFilter:BOOL;(*允許CV濾波(類型參見FilterType)*)iFilterType:E_FilterType;(*CV濾波器類型*)iControllerType:E_ControllerType;(*使用的控制器一般為PID類型*)(*minmaxtemperatures最小最大溫度*)TempLow:LREAL;第一報警帶下限TempLowLow:LREAL;第二報警帶下限TempHigh:LREAL;第一報警帶上限TempHighHigh:LREAL;第一報警帶上限TempAbsoluteHigh:LREAL;報警上限TempAbsoluteLow:LREAL;報警下限(*internaltuningparameters內部整定參數*)
fTuneKp:FLOAT
:=1.2;比例
fTuneTn:FLOAT
:=2.0;積分時間常數
fTuneTv:FLOAT
:=0.42;微分時間常數
fTuneTd:FLOAT
:=0.25;阻尼時間常數(注:該結構體的最新版本中有一些新參數,尚未完善,在此不做展示,默認值都為0,無需更改)更改sControllerParameter結構體變量中的元素值上文介紹了功能塊中所有設計到的引腳和內部結構體參數元素,而這些元素在本例程中默認的賦值如下:編寫PLC程序聲明完一切變量后,需要編寫一點程序來調用并輔助功能塊,代碼如下:3.6.關聯變量在運行這個功能塊之前,需要將上述提到的變量關聯,輸出引腳可以直接與加熱通道關聯;但是接收回溫度數據的通道值為int類型,功能塊的輸入引腳是LREAL類型,因此需要手動創建一個中間變量,將其先和接收回的溫度數據關聯,對其處理之后再賦值給輸入引腳。具體操作如下:輸出引腳關聯操作:輸入引腳處理以及關聯:3.7.編寫PLCHMI考慮到人性化使用,本例程制作了一個HMI界面,來調試溫度變化。新建HMI的方式非常簡單,在POUS下的VISUs右鍵add新建一個Visualization即可。(注:需在Open前勾選ActiveVisuSymbols)具體的制作過程這里就不詳細介紹了,HMI的詳細制作課程可以在倍福的虛擬學院上找到。HMI元素變量關聯對應如下:激活系統:MAIN.bStart(自己編寫的啟動信號)指示燈:MAIN.bStart加熱模式:Controller_v2.bSelSetpoint保溫模式:Controller_v2.bSelSetpoint實際溫度數值(℃):Controller_v2.ftemp設定溫度(℃):Controller_v2.fW1保溫模式溫度(℃):Controller_v2.fW2PWM脈沖信號:Controller_v2.bYPWMPos系統是否存在錯誤:Controller_v2.bError錯誤代碼:Controller_v2.iErrorld手動復位:Controller_v2.eCTRL_Mode開啟(禁用)軟啟動:Controller_v2.stControllerParameter.bEnableSoftStart軟啟動溫度(℃):Controller_v2.stControllerParameter.fWStartUp軟啟動時間(ms):Controller_v2.stControllerParameter.tStartUpKp:Controller_v2.stControllerParameter.fTuneKpTn:Controller_v2.stControllerParameter.fTuneTnTv:Controller_v2.stControllerParameter.fTuneTvTd:Controller_v2.stControllerParameter.fTuneTd這里提到的bError以及iErrorld是功能塊為了讓使用者在使用遇到問題時方便查找原因,設計的兩個引腳。前者是顯示系統是否存在錯誤,而后者顯示錯誤代碼。當溫度控制功能塊運行正常時,兩者的顯示如上圖HMI演示中所示。錯誤代碼的詳解如下:3.8.編寫PLCScopeview為了能讓溫度改變的過程更加直觀和明顯,本例程又添加了一個YTScopeProject來監控系統的溫度變化。在左側的資源管理器中找到“solution”鼠標右擊,選擇add,再點擊NewProject,在左側的類目中找到TwinCATMeasurement,選中YTScopeProject,點擊添加。添加之后右擊AxisGroup,點擊targetbrowser進行添加。同理,我們還可以編寫一個PLCScopeview來觀察PWM輸出的占空比。第一次使用時,由于pid控制器參數為空,此時即時將功能塊輸入引腳eControlMode:切換到eCTRL_Mode_Active模式下,系統也無法進行正常工作。此時,需要對控制器的參數進行自整定。3.9.注意事項自整定模式需要將控制器的模式切換至eCTRL_MODE_Tune,如果采用系統默認參數,需等待20秒,在此期間需要維持傳感器的溫度波動不超過正負1度,如果覺得等待時間過長,可以將功能塊引腳ST_ControllerParameter結構體變量中的tTuneStabilisation改為合適的時間,在本例程中,系統穩定的時間設定為5秒。(注:切勿重復整定參數,否則系統可能出錯)(注:切勿在整定參數中切換為模式,否則系統可能會出錯)當功能塊被啟動后如果發生報錯,可將功能塊的引腳運轉模式eControlMode切換到eCTRl_MODE_RESET來進行復位,復位完重新整定參數啟動即可。PID溫度曲線調試軟啟動調整在本例程中,采用的是軟啟動的升溫方式,如果覺得正常升溫方式不夠穩定,可以采用軟啟動的升溫控制方式:即系統會進行兩段式加溫,即先加熱到一個溫度并保溫一段時間然后再加熱到設定溫度。此功能可通過ST_ControllerParameter結構體中的bEnableSoftStart置為TRUE實現。同時,也需設定軟啟動時間tStartUp和軟啟動預設值fWStartUp 。如需控制溫度上升速率,可以通過fWStartUoVeloPos,fWStartUoVeloNeg,fWVeloPos,fWVeloNeg設置斜率。軟啟動原理圖如下:軟啟動對應的實際PWM輸出如下所示:(tStartUp=30s,fWStartUp=55攝氏度)可以看到,在軟啟動觸發的前后,輸出都一致,且輸出1的占空比都為100%,在軟啟動期間,輸出0的占空比為100%。需要注意的是,軟啟動的設定值不能太高或者太低,太低的話,對于整個升溫過程來說顯得多余,太高的話(如接近設定溫度)會造成超調過大,穩定時間過長。對于本例程,設定溫度為65攝氏度的條件下,軟啟動設定值推薦在55攝氏度左右。軟啟動時間可以根據自己的需求修改。如果只是希望減緩升溫的速度防止超調過高,可以將軟啟動時間設置為30-40S。如果希望穩定在軟啟動設定值,然后再緩慢上升至設定值可以將軟啟動時間設置為5min左右,但會導致整個PID溫度控制的時間大幅延長。PID內部參數調整自整定的參數會產生大概10%左右的超調,如果希望超調較小,可以通過修改sControllerParameter下列參數后再進行自整定:調節PID曲線的主要方式就是通過sControllerParameter中的Kp、Tn、Tv、Td四個參數來進行優化。其中Kp就是比例控制,當Kp的值越大時,控制作用更強,能夠較快地克服周圍環境擾動對被控制量的影響,直觀表現在升溫的速度更快,但是Kp太大容易造成波動太大。Tn代表積分控制,Tn積分時間越小,表示控制作用越強,達到無靜態誤差的時間越短。但是容易引起波動,穩定性較差。Tn中蘊含著消除靜態誤差的快慢和穩定性之間的矛盾。Tv和Td兩者則共同代表微分控制環節。Td不用修改,所以只需修改Tv即可調整微分控制。微分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 私家車租賃合同模板
- 酒店花卉裝飾租賃合同
- 慶國慶迎中秋雙節58
- 1集體生活成就我 公開課一等獎創新教案 道德與法治七年級上冊
- 2025年度高級維修電工資格考試理論知識復習題庫及答案(共230題)
- 商務合作保密契約
- 美術第1課 聚聚散散教案
- 新媒體節目拍攝與剪輯技術服務合同2025
- 產品銷售與安裝合同范本
- 2025石油買賣合同 標準版模板大全
- 省際聯盟骨科創傷類醫用耗材集中帶量采購中選結果
- 社會救助項目購買服務策劃方案
- 《起重機械安全技術規程》(TSG51-2023)知識培訓
- 凝血與抗凝系統
- 中職英語高二期中考試試卷(含答案)
- 道路深層病害探地雷達無損檢測技術規范DB41-T 2525-2023
- 高壓電工作業培訓課件2024
- 2024年長春市初中語文學業水平考試網上閱卷模擬練習卷附答案
- 2024年事業單位考試題庫及答案(共200題)
- 勘查地球化學全冊配套完整課件
- 部門級安全培訓考試題及參考答案【完整版】
評論
0/150
提交評論