TwinCAT3溫度控制庫使用說明_第1頁
TwinCAT3溫度控制庫使用說明_第2頁
TwinCAT3溫度控制庫使用說明_第3頁
TwinCAT3溫度控制庫使用說明_第4頁
TwinCAT3溫度控制庫使用說明_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第1頁TTwinCAT3溫度控制庫使用說明與例程作者:余洋職務(wù):助理技術(shù)工程師日期:2022-08-15摘要:PID溫度控制在工業(yè)化生產(chǎn)中十分的常見??梢酝ㄟ^BeckhoffTF4110溫度控制庫對系統(tǒng)實現(xiàn)精準、方便的溫度控制。此文檔介紹了TF4110溫度控制庫中功能塊的功能與參數(shù),并以電阻為被控對象演示功能塊的實際使用方法與效果。附件:序號文件名備注1Temperature_Controller例程歷史版本:2003-11-04溫度控制器軟件庫使用說明.pdf史匯源溫度控制庫使用說明與演示.docx免責(zé)聲明:我們已對本文檔描述的內(nèi)容做測試。但是差錯在所難免,無法保證絕對正確并完全滿足您的使用需求。本文檔的內(nèi)容可能隨時更新,如有改動,恕不事先通知,也歡迎您提出改進建議。參考信息:目錄1. 軟硬件版本 31.1. 倍福Beckhoff 31.1.1. 控制器硬件 31.1.2. 控制軟件 32. 準備工作 32.1. PID算法 32.2. 硬件作用詳解和接線 32.2.1. 模塊接線設(shè)置 32.2.2. 電腦接線設(shè)置 53. 操作步驟 53.1. 掃描IO模塊 53.2. 申明功能塊引腳變量 63.3. 更改功能塊引腳變量 83.4. 申明sControllerParameter結(jié)構(gòu)體變量中的元素 83.5. 更改sControllerParameter結(jié)構(gòu)體變量中的元素值 103.6. 編寫PLC程序 113.6.關(guān)聯(lián)變量 133.7.編寫PLCHMI 153.8.編寫PLCScopeview 163.9.注意事項 174. PID溫度曲線調(diào)試 174.1. 軟啟動調(diào)整 174.2. PID內(nèi)部參數(shù)調(diào)整 185. 結(jié)束語 21

軟硬件版本倍福Beckhoff控制器硬件CX5020-0115EL2004、EL3204、PT100溫度傳感器、大功率電阻控制軟件調(diào)試電腦為TwinCAT3.14024.32版本控制器為TwinCAT3.14024.29版本TF4110溫度控制庫為版本準備工作PID算法設(shè)想一下,如果讓普通人設(shè)計一個溫度控制的系統(tǒng),會怎么做呢?一般人的想法都是設(shè)一個變量為設(shè)定值,當(dāng)溫度到達設(shè)定值就斷電停止加熱。但一般這樣會發(fā)生一個什么現(xiàn)象?那就是當(dāng)你停止加熱后,系統(tǒng)溫度仍然會升高一段時間。此外,如果要求將溫度保持在設(shè)定值呢?在工業(yè)生產(chǎn)中,很多產(chǎn)品對于工作環(huán)境溫度的要求是非常高的。上述的做法自然是無法達到這樣的要求。我們可以想象一下,如果你開著一輛賽車,想要把速度提高到200km/h,按照人的邏輯,在接近180km/h的時候,我們會覺得加速太快了。因此,可能會收一點油門。當(dāng)速度接近195km/h時,再收一點油門。以此類推,最終達到我們想要達到的時速。那人可以做到,怎么讓沒有思維的機器做到類似的效果呢?這就要多虧了我們偉大而又聰明的前輩科學(xué)家們,他們想到了一個算法來解決這個問題:PID算法。這個算法已經(jīng)有107年的歷史了,我們現(xiàn)實中有許多以它為核心的實際應(yīng)用。它包含了KP(比例),KI(積分)、KD(微分)三部分,這里就不對它們進行詳細的講解了??偠灾?,通過這三者構(gòu)成的PID算法,我們就能夠?qū)囟葻o限接近并維持在設(shè)定溫度了。硬件作用詳解和接線模塊接線設(shè)置模塊接線原理圖如下圖所示:經(jīng)過這樣的一個接線和設(shè)計,當(dāng)我想提高PT100溫度傳感器所處的環(huán)境溫度時,在TwinCAT3中設(shè)定一個溫度值,電腦通過具備PID算法的溫度控制功能塊,使電阻迅速升溫。同時,為了方便采集數(shù)據(jù),我將PT100和電阻捆綁。由于兩者是捆綁的,因此PT100采集到的數(shù)據(jù)即為電阻的溫度。當(dāng)EL2004其中一個輸出端口為1時,通道打開電阻就會工作。電腦接線設(shè)置電腦接線設(shè)置如下圖所示:操作步驟掃描IO模塊連接控制器按照圖中標出的順序依次選擇:(注:如果在第四步驟BroadcastSearch中搜索不到控制器的話,也可以在左側(cè)EnterHostName/IP中輸入目標控制器的IP地址手動進入)添加設(shè)備按照圖中的順序掃描并添加設(shè)備:(注:右鍵Devices選擇Scan,此項動作需要在Config模式下才能使用)按照以上步驟操作后,就可以看到模塊顯示在左側(cè)資源管理器當(dāng)中了申明功能塊引腳變量TF4110溫度控制庫中的核心功能塊為FB_CTRL_TempController。它的引腳如下:輸入信號:eControlMode:控制模式0:idle;1:passive;2:active;3:reset;4:manual;5:tune;6:selftestbSelSetpoint:選擇兩個設(shè)定值中的一個。FALSE為主設(shè)定值(加熱值),true為輔助設(shè)定值(保溫值)fW1:主設(shè)定值;fW2:輔助設(shè)定值,通常小于fW1,fSelSetpoint:用于選擇切換fW1和fW2。;fX:實際值,必須轉(zhuǎn)化為LREAL格式;fYManual:手動控制;sParaControllerExternal:外部控制器參數(shù)輸入;sControllerParameter:參數(shù)設(shè)置。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:超調(diào)值;tStartUpTime:上升時間;eCtrlState:控制器實際的狀態(tài);sParaControllerInternal:內(nèi)部自整定參數(shù);bError:報警輸出,有報警時,值置為1;iErrorId:報警代碼(注:本功能塊中,必須填寫的輸入引腳已在圖中用紅線劃出,下面會對其進行詳細介紹)ECtrlMode指的是系統(tǒng)模式,由于此例程的目的是自動控制,所以選擇系統(tǒng)默認的被動即可,不需要修改。fW1為設(shè)置值,即想要電阻達到的溫度。在這個項目中,本例程又設(shè)置了一個保溫溫度fW2。它的作用是為了在程序運行時節(jié)約系統(tǒng)能源,將設(shè)定溫度值臨時切換為保溫值。而切換的操作則由bSelSetpoint完成,當(dāng)它為FALSE時,目標溫度為設(shè)定值,當(dāng)它為TRUE時,目標溫度為保溫值。fX則為實際溫度值,即溫度傳感器PT100接收到的電阻溫度。因此需要將它和EL3204模塊的接收通道關(guān)聯(lián)。(注:本例程中,更改過或關(guān)聯(lián)過的數(shù)據(jù)已在圖中用綠圈圈出,下面會對其進行詳細介紹)除了上述提到輸入引腳的關(guān)聯(lián),我還將功能塊中的輸出引腳bYPWMPos、bError、iErrorld進行了關(guān)聯(lián)。(bError、iErrorld的關(guān)聯(lián)將會在后文制作組態(tài)的界面進行詳細介紹,對于功能塊的使用,兩者不構(gòu)成影響)而對輸出引腳bYPWMPos進行關(guān)聯(lián)時,需要了解功能塊的輸出模式。根據(jù)輸出類型的不同,有以下兩種連接方式:1.模擬量輸出:模擬量輸出能夠通過調(diào)節(jié)供電電壓大小的方式來控制加熱。2.PWM輸出:PWM輸出只有0和1,因此PWM輸出可以通過調(diào)節(jié)0和1的占空比來對加熱進行調(diào)節(jié)。因為在本項目中采用的供電模塊為EL2004模塊,它是一個channeldigitaloutputterminal,輸出只有0和1,因此采用PWM輸出。其對應(yīng)的功能塊輸出引腳為bYPWMPos,需要將它和EL2004模塊的輸出通道作關(guān)聯(lián)。最后一個sControllerParameter指的是功能塊算法的內(nèi)部參數(shù)。這個內(nèi)部參數(shù)引腳其實是一個結(jié)構(gòu)體變量,在下一小節(jié)會詳細介紹:更改功能塊引腳變量上述功能塊引腳在本例程中的賦值如下:申明sControllerParameter結(jié)構(gòu)體變量中的元素iMode:E_CTRL_ControlMode;(*1=加熱,2=冷卻,3=加熱及冷卻*)

iReactionOnFailure:E_CTRL_ReactionOnFailure;(*0=控制器關(guān)閉,1=手動操作,2=yMin,3=yMax*)

bSelCtrlParameterSet:BOOL;(*FALSE=內(nèi)部pid參數(shù)設(shè)定,TRUE=外部pid參數(shù)設(shè)定*)dwAlarmSupp:DWORD;(*

報警限制值*)

tCtrlCycleTime:TIME;(*控制器周期時間*)

tTaskCycleTime:TIME;(*PLC任務(wù)周期時間*)(*tuningparameter整定參數(shù)*)

iTuningMode:E_CTRL_TuneMode;(*只加熱,只冷卻,先加熱后冷卻,先冷卻后加熱*)

tTuneStabilisation:TIME:=t#20s;(*等待系統(tǒng)穩(wěn)定時間*)

fEndTunePercentHeating:FLOAT:=80.0;(*大于80%時,切換成閉環(huán)控制*)

fYTuneHeating:FLOAT;(*

stepchangewhiletuningoperation*)fYStableHeating:FLOAT;(*加熱調(diào)整操作*)

fEndTunePercentCooling:FLOAT:=20.0;(*小于20%時,切換成閉環(huán)控制*)

fYTuneCooling:FLOAT;(*

stepchangewhiletuningoperation*)

fYStableCooling:FLOAT;(*冷卻調(diào)整操作*)

fScalingFactor:FLOAT:=1.0;(*加熱和冷卻KP比例系數(shù)*)

fWMin:FLOAT;(*下限值*)

fWMax:FLOAT;(*上限值*)(*startup啟動*)

bEnableSoftStart:BOOL;(*FALSE=無軟啟動,TRUE=軟啟動*)

bEnableRamping:BOOL;(*FALSE=無斜波,TRUE=有斜波*)

fWStartUp:LREAL;(*軟啟動預(yù)設(shè)定值*)tStartUp:TIME;(*軟啟動等待時間*)bStartUpRamping:BOOL;(*啟動過程時允許斜波功能*)fWStartUpVeloPos:LREAL;(*啟動過程時增加給定的最大梯度值*)fWStartUpVeloNeg:LREAL;(*啟動過程時減小給定的最大梯度值*)fWVeloPos:LREAL;(*增加給定的最大梯度值*)fWVeloNeg:LREAL;(*減小給定的最大梯度值*)(*actualvalueparameters實際值參數(shù)*)bFilter:BOOL;tFilter:TIME;(*deadbandparameters

死區(qū)參數(shù)*)

bDeadband:BOOL;

fEDeadband:FLOAT;(*

死區(qū)*)(*controlvalueparameters

控制值參數(shù)

*)

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:關(guān)斷極限*)

fYThresholdOn:FLOAT;(*3-Point:開始極限*)

nCyclesForSwitchOver:INT:=100;(*controllersettings控制器設(shè)置*)bEnablePreController:BOOL;(*允許預(yù)控制器*)bEnableZones:BOOL;(*允許開環(huán)調(diào)節(jié)時的設(shè)定調(diào)節(jié)帶*)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內(nèi)部整定參數(shù)*)

fTuneKp:FLOAT

:=1.2;比例

fTuneTn:FLOAT

:=2.0;積分時間常數(shù)

fTuneTv:FLOAT

:=0.42;微分時間常數(shù)

fTuneTd:FLOAT

:=0.25;阻尼時間常數(shù)(注:該結(jié)構(gòu)體的最新版本中有一些新參數(shù),尚未完善,在此不做展示,默認值都為0,無需更改)更改sControllerParameter結(jié)構(gòu)體變量中的元素值上文介紹了功能塊中所有設(shè)計到的引腳和內(nèi)部結(jié)構(gòu)體參數(shù)元素,而這些元素在本例程中默認的賦值如下:編寫PLC程序聲明完一切變量后,需要編寫一點程序來調(diào)用并輔助功能塊,代碼如下:3.6.關(guān)聯(lián)變量在運行這個功能塊之前,需要將上述提到的變量關(guān)聯(lián),輸出引腳可以直接與加熱通道關(guān)聯(lián);但是接收回溫度數(shù)據(jù)的通道值為int類型,功能塊的輸入引腳是LREAL類型,因此需要手動創(chuàng)建一個中間變量,將其先和接收回的溫度數(shù)據(jù)關(guān)聯(lián),對其處理之后再賦值給輸入引腳。具體操作如下:輸出引腳關(guān)聯(lián)操作:輸入引腳處理以及關(guān)聯(lián):3.7.編寫PLCHMI考慮到人性化使用,本例程制作了一個HMI界面,來調(diào)試溫度變化。新建HMI的方式非常簡單,在POUS下的VISUs右鍵add新建一個Visualization即可。(注:需在Open前勾選ActiveVisuSymbols)具體的制作過程這里就不詳細介紹了,HMI的詳細制作課程可以在倍福的虛擬學(xué)院上找到。HMI元素變量關(guān)聯(lián)對應(yīng)如下:激活系統(tǒng):MAIN.bStart(自己編寫的啟動信號)指示燈:MAIN.bStart加熱模式:Controller_v2.bSelSetpoint保溫模式:Controller_v2.bSelSetpoint實際溫度數(shù)值(℃):Controller_v2.ftemp設(shè)定溫度(℃):Controller_v2.fW1保溫模式溫度(℃):Controller_v2.fW2PWM脈沖信號:Controller_v2.bYPWMPos系統(tǒng)是否存在錯誤:Controller_v2.bError錯誤代碼:Controller_v2.iErrorld手動復(fù)位: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是功能塊為了讓使用者在使用遇到問題時方便查找原因,設(shè)計的兩個引腳。前者是顯示系統(tǒng)是否存在錯誤,而后者顯示錯誤代碼。當(dāng)溫度控制功能塊運行正常時,兩者的顯示如上圖HMI演示中所示。錯誤代碼的詳解如下:3.8.編寫PLCScopeview為了能讓溫度改變的過程更加直觀和明顯,本例程又添加了一個YTScopeProject來監(jiān)控系統(tǒng)的溫度變化。在左側(cè)的資源管理器中找到“solution”鼠標右擊,選擇add,再點擊NewProject,在左側(cè)的類目中找到TwinCATMeasurement,選中YTScopeProject,點擊添加。添加之后右擊AxisGroup,點擊targetbrowser進行添加。同理,我們還可以編寫一個PLCScopeview來觀察PWM輸出的占空比。第一次使用時,由于pid控制器參數(shù)為空,此時即時將功能塊輸入引腳eControlMode:切換到eCTRL_Mode_Active模式下,系統(tǒng)也無法進行正常工作。此時,需要對控制器的參數(shù)進行自整定。3.9.注意事項自整定模式需要將控制器的模式切換至eCTRL_MODE_Tune,如果采用系統(tǒng)默認參數(shù),需等待20秒,在此期間需要維持傳感器的溫度波動不超過正負1度,如果覺得等待時間過長,可以將功能塊引腳ST_ControllerParameter結(jié)構(gòu)體變量中的tTuneStabilisation改為合適的時間,在本例程中,系統(tǒng)穩(wěn)定的時間設(shè)定為5秒。(注:切勿重復(fù)整定參數(shù),否則系統(tǒng)可能出錯)(注:切勿在整定參數(shù)中切換為模式,否則系統(tǒng)可能會出錯)當(dāng)功能塊被啟動后如果發(fā)生報錯,可將功能塊的引腳運轉(zhuǎn)模式eControlMode切換到eCTRl_MODE_RESET來進行復(fù)位,復(fù)位完重新整定參數(shù)啟動即可。PID溫度曲線調(diào)試軟啟動調(diào)整在本例程中,采用的是軟啟動的升溫方式,如果覺得正常升溫方式不夠穩(wěn)定,可以采用軟啟動的升溫控制方式:即系統(tǒng)會進行兩段式加溫,即先加熱到一個溫度并保溫一段時間然后再加熱到設(shè)定溫度。此功能可通過ST_ControllerParameter結(jié)構(gòu)體中的bEnableSoftStart置為TRUE實現(xiàn)。同時,也需設(shè)定軟啟動時間tStartUp和軟啟動預(yù)設(shè)值fWStartUp 。如需控制溫度上升速率,可以通過fWStartUoVeloPos,fWStartUoVeloNeg,fWVeloPos,fWVeloNeg設(shè)置斜率。軟啟動原理圖如下:軟啟動對應(yīng)的實際PWM輸出如下所示:(tStartUp=30s,fWStartUp=55攝氏度)可以看到,在軟啟動觸發(fā)的前后,輸出都一致,且輸出1的占空比都為100%,在軟啟動期間,輸出0的占空比為100%。需要注意的是,軟啟動的設(shè)定值不能太高或者太低,太低的話,對于整個升溫過程來說顯得多余,太高的話(如接近設(shè)定溫度)會造成超調(diào)過大,穩(wěn)定時間過長。對于本例程,設(shè)定溫度為65攝氏度的條件下,軟啟動設(shè)定值推薦在55攝氏度左右。軟啟動時間可以根據(jù)自己的需求修改。如果只是希望減緩升溫的速度防止超調(diào)過高,可以將軟啟動時間設(shè)置為30-40S。如果希望穩(wěn)定在軟啟動設(shè)定值,然后再緩慢上升至設(shè)定值可以將軟啟動時間設(shè)置為5min左右,但會導(dǎo)致整個PID溫度控制的時間大幅延長。PID內(nèi)部參數(shù)調(diào)整自整定的參數(shù)會產(chǎn)生大概10%左右的超調(diào),如果希望超調(diào)較小,可以通過修改sControllerParameter下列參數(shù)后再進行自整定:調(diào)節(jié)PID曲線的主要方式就是通過sControllerParameter中的Kp、Tn、Tv、Td四個參數(shù)來進行優(yōu)化。其中Kp就是比例控制,當(dāng)Kp的值越大時,控制作用更強,能夠較快地克服周圍環(huán)境擾動對被控制量的影響,直觀表現(xiàn)在升溫的速度更快,但是Kp太大容易造成波動太大。Tn代表積分控制,Tn積分時間越小,表示控制作用越強,達到無靜態(tài)誤差的時間越短。但是容易引起波動,穩(wěn)定性較差。Tn中蘊含著消除靜態(tài)誤差的快慢和穩(wěn)定性之間的矛盾。Tv和Td兩者則共同代表微分控制環(huán)節(jié)。Td不用修改,所以只需修改Tv即可調(diào)整微分控制。微分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論