PID元件

PID物件,為一種虛擬軸,提供工業常見的比例積分微分運動控制。

PID 狀態機

STOP

WAIT

ACTIVE

ERROR

On=0

On=0

On=1

伏壓進入啟動伏壓範圍

伏壓超出上下極限

On=0

PID 狀態機

狀態種類:

名稱

說明

STOP

上電的初始狀態為 STOP;或On開關=0 時會進入 STOP狀態。此時PID輸出0

WAIT

On=1時會先進入WAIT狀態;PID 機制已經開始運作,此時放會先回轉將擺上拉到目標伏壓

ACTIVE

WAIT狀態時若擺上拉到進入啟動伏壓範圍則進入ACTIVE狀態,此時的才讓收開始運作。此時PID機制也是運作中,且對於伏壓命令的反應也較為靈敏。

ERROR

ACTIVE 狀態運作時伏壓超過或低於保護的伏壓上下極限時進入 ERROR狀態,此時PID輸出也會0,避免PID發散時張力過大拉斷收放品。進入 ERROR 狀態需將 On開關關閉後進入 STOP狀態,再重新使用 PID

 

PID Attribute(資料屬性)介紹

屬性名稱

型態

屬性

預設值

說明

TargetVolt

DINT

R/W

500

目標伏壓(單位 0.01 Volt)

ActiveVoltRange

DINT

R/W

15

目標伏壓差距於此範圍內為啟動伏壓

LimitVoltH

DINT

R/W

950

上限伏壓

LimitVoltL

DINT

R/W

50

下線伏壓

On

INT

R/W

0

啟動開關

Polarity

INT

R/W

1

誤差極性

P_Gain

REAL48

R/W

0

比例增益

I_Gain

REAL48

R/W

0

積分增益

D_Gain

REAL48

R/W

0

微分增益

ErrLpGain_WAIT

REAL48

R/W

1

WAIT狀態時伏壓誤差的濾波強度

ErrLpGain_ACT

REAL48

R/W

0.001

ACTIVE狀態時伏壓誤差的濾波強度

CurE

DINT

R

NA

當前誤差伏壓

dwLpE

DINT

R

NA

濾波後的誤差伏壓(整數型態)

ReturnVal

DINT

R

NA

PID最終運算結果

IntgAll

DINT

R

NA

積分項值

State

INT

R

NA

當前狀態(STOP/WAIT/ACTIVE/ERROR)

fLpE

REAL48

R

NA

濾波後的誤差伏壓(浮點數型態)

fLpE_Old

REAL48

R

NA

上一次濾波後的誤差伏壓(浮點數型態)

fIntegral

REAL48

R

NA

誤差積分值

 

PID Fuction(函式)介紹

PID 物件共提供6個函式: initConfigAdvConfigSetGainTurnOnProcess,除了init 為系統呼叫函式外,其餘函式下面會分別介紹。

Config 函式

功能: 設定PID 物件運作的參數,包括: 目標伏壓啟動伏壓範圍上限伏壓下限伏壓、極性。

參數列表:

屬性名稱

型態

說明

TargetVolt

DINT

目標伏壓(單位 0.01 Volt)

ActiveVoltRange

DINT

目標伏壓差距於此範圍內為啟動伏壓ex: 目標伏壓 500, 範圍10則伏壓490~510 (0.01Volt)就會進ACT狀態。

LimitVolt_H

DINT

上限伏壓

LimitVolt_L

DINT

下線伏壓

Polarity

INT

誤差極性,檢測器方向裝反時可進行反向。

 

AdvConfig函式

 

 

功能說明: 設定狀態 WAIT與狀態Active 對於伏壓命令的靈敏度,採用的是低通濾波的方式設定其低通濾波增益,值越小則可以避免過大的擺、但越不靈敏。值越接近 1 則表示更靈敏反應當下的伏壓命令

參數列表:

屬性名稱

型態

說明

ErrorLowPassGian_ST_WAIT

REAL48

狀態WAIT伏壓命令濾波增益

ErrorLowPassGian_ST_ACT

REAL48

狀態ACTIVE伏壓命令濾波增益

 

SetGain 函式

功能說明: 設定PID 運行時期各項增益,可以根據不同的狀態與實際加工情形動態調整各項增益,例如WAIT 狀態可以讓P Gain 較小讓擺緩和上升。

參數列表:

屬性名稱

型態

說明

P_Gain

REAL48

比例增益

I_Gain

REAL48

積分增益

D_Gain

REAL48

微分增益

 

TurnOn 函式

功能說明: PID啟動開關。

參數列表:

屬性名稱

型態

說明

OnOff

INT

0: 關閉;非0值都會開啟。

 

Process函式

功能說明: 當前伏壓值計算PID 輸出,計算結束後的值將記錄在 ReturnVal 屬性,使用者可以再以此數據驅動作用馬達的迴路(速度、扭力、位置環…)

參數列表:

屬性名稱

型態

說明

CurrentVolt

DINT

當前伏壓命令值。