資源簡介
西門子PID塊FB58源程序,PID自整定

代碼片段和文件信息
//VAR_INPUT
#ifndef?TRUE
??#define?TRUE?0x01
#endif?
#ifndef?FALSE
??#define?FALSE?0x00
#endif?
float????PV_IN?=?0.0?;???//過程變量輸入
//可以在“過程變量輸入”輸入端設置初始值,或者也可以連接到浮點數格式的外部過程變量上。
int??????PV_PER??=?0?;??????//外圍設備過程變量?外圍設備I/O?格式的過程變量連接到控制器的“外圍設備過程變量”輸入端。
float????DISV?=?0.0?;???//干擾變量?對于前饋控制,干擾變量連接到“干擾變量”輸入端。
unsigned?char????INT_HPOS?=?FALSE?;?//積分作用保持在正方向 積分作用的輸出可以鎖定在正方向。為此,INT_HPOS?輸入端必須設置成TRUE。在級聯控制中,主控制器的INT_HPOS?互連到次級控制器的QLMN_HLM。
unsigned?char????INT_HNEG?=?FALSE?;?//積分作用保持在負方向?積分作用的輸出可以鎖定在負方向。為此,INT_HNEG?輸入端必須設置成TRUE。在級聯控制中,主控制器的INT_HNEG?互連到次級控制器的QLMN_LLM。
int????SELECT?=?0?;??????//調用PID?和脈沖發生器的選項
//如果激活了脈沖發生器,則有幾種方法可用于調用PID?算法和脈沖發生//器:
//.?SELECT?=0:在一個快速周期性中斷級中調用控制器,并處理PID算法和脈沖發生器。
//.?SELECT?=1:在OB1?中調用控制器,并且只處理PID?算法。
//.?SELECT?=2:在一個快速周期性中斷級中調用控制器,并只處理脈沖發生器。
//.?SELECT?=3:在一個慢速周期性中斷級中調用控制器,并只處理PID?算法。
//END_VAR
//VAR_OUTPUT
float????PV?=?0.0?;???//過程變量???有效的過程變量在“過程變量”輸出端輸出。
float????LMN?=?0.0?;???//可調節變量 可調節變量的有效值以浮點數格式,?在“可調節變量”輸出端輸出。
int????LMN_PER?=?0?;??????//外圍設備操作可調節變量?外圍設備格式的可調節變量值連接到控制器的“外圍設備操作可調節變量”輸出端。
unsigned?char????QPULSE?=?FALSE?;?//輸出脈沖信號?可調節變量的值是在QPULSE?輸出端調制的輸出脈沖寬度。
unsigned?char????QLMN_HLM?=?FALSE?;?//達到可調節變量的上限?可調節變量的值始終限制在上限和下限范圍之內。當超過了上限時,通過QLMN_HLM?輸出端進行指示。
unsigned?char????QLMN_LLM?=?FALSE?;?//達到可調節變量的下限?可調節變量的值始終限制在上限和下限范圍之內。當超過了下限時,通過QLMN_LLM?輸出端進行指示。
unsigned?char????QC_ACT?=?TRUE?;??//下一個循環周期,連續控制器繼續工作,該參數指示在下一個塊調用時是否執行連續控制器環節(只有當SELECT?具有數值0?或1?時才相關)。
//END_VAR
//VAR_IN_OUT
float????CYCLE?=?0.1?;???//連續控制器的采樣時間[秒]
//在此設置PID?算法的采樣時間。調諧器在階段1?中計算采樣時間,然后將其輸入到CYCLE?中。
float????CYCLE_P?=?0.02?;??//脈沖發生器的采樣時間[秒]
//在該輸入端,輸入脈沖發生器環節的采樣時間。FB?58“TCONT_CP”在階段1?中計算采樣時間,然后將其輸入到CYCLE_P。
float????SP_INT?=?0.0?;???//內部設定值?“內部設定值”輸入端用于指定一個設定值。
float????MAN?=?0.0?;???//手動值 “手動值”輸入端用于指定一個手動值。在自動模式中,它被改成可調節變量。
unsigned?char????COM_RST?=?FALSE?;?//完全重啟動 該塊有一個初始化例行程序,當COM_RST?輸入端被置位時執行該例行程序。
unsigned?char????MAN_ON?=?TRUE;???//手動操作打開?如果“手動操作打開”輸入被置位,則中斷控制回路。MAN?手動值被設置為可調節變量的值。
//END_VAR
//VAR
float????DEADB_W?=?0.0?;???//死區寬度?偏差通過死區。“死區寬度”輸入決定死區大小。
float????I_ITLVAL?=?0.0?;???//積分作用的初始化值
//積分作用的輸出可以在I_ITL_ON?輸入端上設置。該初始化值用于“積分作用的初始化值”輸入。在重啟動期間,
//COM_RST?=?TRUE,積分作用被設置成初始值。
float????LMN_HLM?=?100.0;??//可調節變量上限
//可調節變量的值始終限制在上限和下限范圍之內。“可調節變量上限”輸入指定了上限。
float????LMN_LLM?=?0.0?;???//可調節變量下限
//可調節變量的值始終限制在上限和下限范圍之內。“可調節變量下限”輸入指定了下限。
float????PV_FAC?=?1.0?;???//過程變量因子
//“過程變量因子”輸入和“外圍設備過程值”相乘。該輸入用于調整過程變量的范圍。
float????PV_OFFS?=?0.0?;???//過程變量偏移量
//“過程變量偏移量”輸入被加到“外圍設備過程變量”上。該輸入用于調整過程變量的范圍。
float????LMN_FAC?=?1.0?;???//可調節變量因子
//“可調節變量因子”輸入和可調節變量相乘。該輸入用于調整可調節變量的范圍。
float????LMN_OFFS?=?0.0?;???//可調節變量偏移量
//“可調節變量偏移量”輸入加到可調節變量的數值上。該輸入用于調整可調節變量的范圍。
float????PER_TM?=?1.0?;???//周期[秒]
//脈寬調制的脈沖重復周期在PER_TM?參數上輸入。脈沖發生器的脈沖重復周期和采樣時間之間的關系決定脈寬調制的精度。
float????P_B_TM?=?0.0?;???//最小脈沖/斷開時間[秒]
//最小脈沖或最小斷開時間可以在“最小脈沖/斷開時間”參數上設置。P_B_TM?在內部被限制為大于CYCLE_P。
float????TUN_DLMN?=?20.0?;??//用于過程激勵的可調節變量增量
//用于控制器整定的過程激勵來自于TUN_DLMN?上的設定值階躍變化。
int????PER_MODE?=?0?;??????//外圍設備模式可以在這個開關上輸入I/O?模塊的類型。輸
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????38658??2016-07-27?13:13??fb58pid\fb58pid.c
?????文件????1315165??2016-07-26?16:18??fb58pid\STEP?7-PID溫度控制.PDF
?????文件????????513??2016-07-27?09:07??fb58pid\補充說明.txt
?????目錄??????????0??2016-10-10?12:49??fb58pid
-----------?---------??----------?-----??----
??????????????1354336????????????????????4
評論
共有 條評論