PID元件介紹

大部分收放應用會用到張力控制功能,擁有固定的處理周期與命令接收的即時性對於張力控制的效果具有關鍵因素。M-R的硬即時多工與內建類比命令接收剛好為這類應用提供最佳的執行環境。為了讓客戶可以容易開發這類應用,M-R提供了泛用PID物件的功能,透過類似高階物件的概念,可以讓使用者方便撰寫收放應用。

張力控制示意圖

張力擺;因收放速度差異造成擺角度進而產生類比伏壓該伏壓即PID物件的命令

目標伏壓

PID前置作業/需求

韌體版本: V3003 Sub3 版本以後()

軟體版本: ezASD 1.3003.1.2以後()

張力檢測器:一般常見的檢測器有擺後置一個可變電阻、Load Cell、或其他專業張力檢測模組,不論哪種檢測器最終供給M-R 的輸入為類比伏壓 0~10 Volt。需注意檢測器的伏壓變化與收放的速度差距需有較佳的比例性,另外伏壓範圍盡量大,擺最低點與最高點的伏壓最好可以依比例轉換為 0~10Volt 的範圍,如此會讓整個擺變化的伏壓精度更細更精

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

當前伏壓命令值。

PID範例

此範例以X軸實做PID放捲軸、Y軸做為主動收線軸。包含M-RHMI專案

 

M-R 專案概觀:

 

HMI 專案概觀

初始化POU說明

高速PLC說明

 

X_PID

 

out_X_PID_STATE

 

背景PLC說明