ä»ç»è¥¿é¨åPLCå®ç°PIDæ§å¶çæ¹æ³ã
1 å¼è¨
å¨å·¥ä¸ç产ä¸ï¼å¸¸éè¦ç¨éç¯æ§å¶æ¹å¼æ¥å®ç°æ¸©åº¦ãååãæµéçè¿ç»ååç模æéæ§å¶ãæ 论使ç¨æ¨¡ææ§å¶å¨ç模ææ§å¶ç³»ç»ï¼è¿æ¯ä½¿ç¨è®¡ç®æº(å
æ¬PLC)çæ°åæ§å¶ç³»ç»ï¼PIDæ§å¶é½å¾å°äºå¹¿æ³çåºç¨ã
PIDæ§å¶å¨æ¯æ¯ä¾ï¼ç§¯åï¼å¾®åæ§å¶çç®ç§°ï¼å
·æ
(1) ä¸éè¦ç²¾ç¡®çæ§å¶ç³»ç»æ°å¦æ¨¡å;
(2) æè¾å¼ºççµæ´»æ§åéåºæ§;
(3) ç»æå
¸åãç¨åºè®¾è®¡ç®åï¼å·¥ç¨ä¸æäºå®ç°ï¼åæ°è°æ´æ¹ä¾¿çä¼ç¹ã积åæ§å¶å¯ä»¥æ¶é¤ç³»ç»çéå·®ï¼å¾®åæ§å¶å¯ä»¥æ¹åç³»ç»çå¨æç¸åºé度ï¼æ¯ä¾ã积åãå¾®åä¸è
ææå°ç»åå¯ä»¥æ»¡è¶³ä¸åçæ§å¶è¦æ±ã
2 PLCå®ç°PIDçæ§å¶æ¹å¼
2.1 PIDè¿ç¨æ§å¶æ¨¡å
è¿ç§æ¨¡åçPIDæ§å¶ç¨åºæ¯PLCç产å家设计çï¼å¹¶åæ¾å¨æ¨¡åä¸ï¼ç¨æ·ä½¿ç¨æ¶åºè¦è®¾ç½®ä¸äºåæ°ï¼ä½¿ç¨èµ·æ¥é常æ¹ä¾¿ï¼ä¸ä¸ªæ¨¡åå¯ä»¥æ§å¶å è·¯çè³å åè·¯éç¯åè·¯ã
2.2 PIDåè½æ令
ç°å¨å¾å¤PLCé½æä¾PIDæ§å¶ç¨çåè½æ令ï¼å¦S7-200çPIDæ令ãå®ä»¬å®é
ä¸æ¯ç¨äºPIDæ§å¶çåç¨åºï¼ä¸æ¨¡æéè¾å
¥/è¾åºæ¨¡åä¸èµ·ä½¿ç¨ï¼å¯ä»¥å¾å°ç±»ä¼¼äºä½¿ç¨PIDè¿ç¨æ§å¶æ¨¡åçææã
2.3 ç¨èªç¼çç¨åºå®ç°PIDéç¯æ§å¶
æçPLC没æPIDè¿ç¨æ§å¶æ¨¡ååPIDæ§å¶ç¨çåè½æ令ï¼ææ¶è½ç¶å¯ä»¥ä½¿ç¨PIDæ§å¶æ令ï¼ä½æ¯å¸æéç¨æç§æ¹è¿çPIDæ§å¶ç®æ³ãå¨ä¸è¿°æ
åµä¸é½éè¦ç¨æ·èªå·±ç¼å¶PIDæ§å¶ç¨åºã
3 PLC-PIDæ§å¶å¨çå®ç°
æ¬æ以西é¨åS7-200PLC为ä¾ï¼è¯´æPIDæ§å¶çåçåPLCçPIDåè½æ令ç使ç¨åæ§å¶åè½çå®ç°ã
3.1 PIDæ§å¶å¨çæ°åå
PLCçPIDæ§å¶å¨ç设计æ¯ä»¥è¿ç»ç³»ç»çPIDæ§å¶è§å¾ä¸ºåºç¡ï¼å°å
¶æ°åååæ离æ£å½¢å¼çPIDæ§å¶æ¹ç¨ï¼åè·æ®ç¦»æ£æ¹ç¨è¿è¡æ§å¶ç¨åºè®¾è®¡ã
å¨è¿ç»ç³»ç»ä¸ï¼å
¸åçPIDéç¯æ§å¶ç³»ç»å¦å¾1æ示ãå¾1ä¸sp(t)æ¯ç»å®å¼ï¼pv(t)æ¯åé¦éï¼c(t)æ¯ç³»ç»çè¾åºéï¼PIDæ§å¶çè¾å
¥è¾åºå
³ç³»å¼ä¸º:
å¼ä¸:
M(t)âæ§å¶å¨çè¾åºéï¼M0为è¾åºçåå§å¼;
e(t)=sp(t)-pv(t)ï¼è¯¯å·®ä¿¡å·;
KCæ¯ä¾ç³»æ°;
TIï¼ç§¯åæ¶é´å¸¸æ°;
TDï¼å¾®åæ¶é´å¸¸æ°ã
å¾1 è¿ç»éç¯æ§å¶ç³»ç»æ¹æ¡å¾
å¼(1)çå³è¾¹å3项åå«æ¯æ¯ä¾ã积åãå¾®åé¨åï¼å®ä»¬åå«ä¸è¯¯å·®ï¼è¯¯å·®ç积ååå¾®åææ£æ¯ãå¦æåå
¶ä¸çä¸é¡¹æ两项ï¼å¯ä»¥ç»æPãPDæPIæ§å¶å¨ã
å设éæ ·å¨æ为TSï¼ç³»ç»å¼å§è¿è¡çæ¶å»ä¸ºtï¼0ï¼ç¨ç©å½¢ç§¯åæ¥è¿ä¼¼ç²¾ç¡®ç§¯åï¼ç¨å·®åè¿ä¼¼ç²¾ç¡®å¾®åï¼å°å
¬å¼1离æ£åï¼ç¬¬n次éæ ·æ¶æ§å¶å¨çè¾åºä¸º: (2)
å¼ä¸:
en-1ï¼ç¬¬n-1次éæ ·æ¶ç误差å¼;
KIï¼ç§¯åç³»æ°;
KDï¼å¾®åç³»æ°ã
åºäºPLCçéç¯æ§å¶ç³»ç»å¦å¾2æ示ãå¾ä¸çè线é¨åå¨PLCå
ãå
¶ä¸spnãpvnãenãMnåå«ä¸ºæ¨¡æéå¨sp(t)ãpv(t)ãe(t)ãM(t)å¨ç¬¬n次éæ ·æ¶çæ°åéã
å¾2 PLCéç¯æ§å¶ç³»ç»æ¹æ¡å¾
å¨è®¸å¤æ§å¶ç³»ç»å
ï¼å¯è½åªéè¦PãIãDä¸çä¸ç§æ两ç§æ§å¶ç±»åãå¦å¯è½åªè¦æ±æ¯ä¾æ§å¶ææ¯ä¾ä¸ç§¯åæ§å¶ï¼éè¿è®¾ç½®åæ°å¯å¯¹åè·¯è¿è¡æ§å¶ç±»åè¿è¡éæ©ã
3.2 è¾å
¥è¾åºåéç转æ¢
PIDæ§å¶æ两个è¾å
¥é:ç»å®å¼(sp)åè¿ç¨åé(pv)ãå¤æ°å·¥èºè¦æ±ç»å®å¼æ¯åºå®çå¼ï¼å¦å çç温度çç»å®å¼ãè¿ç¨åéæ¯ç»A/D转æ¢å计ç®åå¾å°ç被æ§éçå®æµå¼ï¼å¦å çç温度çæµéå¼ãç»å®å¼ä¸è¿ç¨åéé½æ¯ä¸è¢«æ§å¯¹è±¡æå
³çå¼ï¼å¯¹äºä¸åçç³»ç»ï¼å®ä»¬ç大å°ãèå´ä¸å·¥ç¨åä½æå¾å¤§çåºå«ãåºç¨PLCçPIDæ令对è¿äºéè¿è¡è¿ç®ä¹åï¼å¿
é¡»å°å
¶è½¬æ¢ææ ååçæµ®ç¹æ°(å®æ°)ã
åæ ·ï¼å¯¹äºPIDæ令çè¾åºï¼å¨å°å
¶éç»D/A转åå¨ä¹åï¼ä¹éè¿è¡è½¬æ¢ã
3.3 åè·¯è¾å
¥ç转æ¢
转æ¢ç第ä¸æ¥æ¯å°ç»å®å¼æA/D转æ¢åå¾å°çæ´æ°å¼ç±16ä½æ´æ°è½¬æ¢ææµ®ç¹æ°ï¼å¯ç¨ä¸é¢çç¨åºå®ç°è¿ç§è½¬æ¢:
XORD AC0, ACO
//æ¸
é¤ç´¯å å¨
MOVW AIWO, AC0
//å°å¾
转åç模æéåå
¥ç´¯å å¨
LDWï¼ï¼ AC0, 0
//å¦æ模æéæ°å¼ä¸ºæ£
JMP 0
//ç´æ¥è½¬æ¢æå®æ°
ORD 16#FFFF0000, ACO
//å°AC0å
çæ°å¼è¿è¡ç¬¦å·æ©å±ï¼æ©å±ä¸º32ä½è´æ°
LBL 0
DTR AC0, AC0
//å°32ä½æ´æ°è½¬æ¢æå®æ°
转æ¢çä¸ä¸æ¥æ¯å°å®æ°è¿ä¸æ¥è½¬æ¢æ0.0~1.0ä¹é´çæ ååå®æ°ï¼å¯ç¨ä¸é¢çå¼(3)对ç»å®å¼åè¿ç¨åéè¿è¡æ åå:
RNorm=(RRaw/Span)+Offset (3)
å¼ä¸:
RNormï¼æ ååå®æ°å¼;
RRawï¼æ åååçå¼;
Offsetï¼å移éï¼å¯¹åææ§åé为0.0ï¼å¯¹åææ§åé为0.5;
Spanï¼åå¼èå´ï¼çäºåéçæ大å¼åå»æå°å¼ï¼åææ§åéçå
¸åå¼ä¸º32000ï¼åææ§åéçå
¸åå¼ä¸º64000ã
ä¸é¢çç¨åºå°ä¸è¿°è½¬æ¢åå¾å°çAC0ä¸çåææ§å®æ°(å
¶Span=64000)转æ¢æ0.0~1.0ä¹é´çå®æ°:
/R 64000.0ï¼ AC0
//ç´¯å å¨ä¸çå®æ°æ åå
ï¼R 0.5ï¼ AC0
//å ä¸å移å¼ï¼ä½¿å
¶å¨0.0~1.0ä¹é´
MOVR ACOï¼ VD100
//å æ åååçå¼åå
¥å路表å
3.4 åè·¯è¾åºç转æ¢
åè·¯è¾åºå³PIDæ§å¶å¨è¾åºï¼å®æ¯æ ååç0.0~1.0ä¹é´çå®æ°ãå°åè·¯è¾åºéç»D/A转æ¢å¨ä¹åï¼å¿
须转æ¢æ16ä½äºè¿å¶æ´æ°ãè¿ä¸è¿ç¨æ¯å°pvä¸sp转æ¢ææ ååæ°å¼çéè¿ç¨ãç¨ä¸é¢çå
¬å¼å°åè·¯è¾åºè½¬æ¢æå®æ°:
RScal=(Mnï¼Offset)ÃSpan (4)
å¼ä¸ï¼RScalæ¯åè·¯è¾åºå¯¹åºçå®æ°å¼ï¼Mnæ¯åè·¯è¾åºæ ååçå®æ°å¼ã
ä¸é¢çç¨åºç¨æ¥å°åè·¯è¾åºè½¬æ¢ä¸ºå¯¹åºçå®æ°:
MOVR VD108, AC0
//å°åè·¯è¾åºéå
¥ç´¯å å¨
-R 0.5, AC0
//ä»
åææ§æ°æææ¤è¯å¥
*R 64000.0, AC0
//åææ§åéä¹ä»¥32000.0
ç¨ä¸é¢çæ令å°ä»£è¡¨åè·¯è¾åºçå®æ°è½¬æ¢æ16ä½æ´æ°:
ROUND AC0, AC0
//å°å®æ°è½¬æ¢ä¸º32ä½æ´æ°
MOVW AC0, AQW0
//å°16ä½æ´æ°åå
¥æ¨¡æè¾åº(D/A)å¯åå¨
3.5 PIDæ令åå路表
S7-200çPIDæ令å¦å¾3æ示:
å¾3 PIDæ令
æ令ä¸TBLæ¯å路表çèµ·å§å°åï¼LOOPæ¯åè·¯çç¼å·ãç¼è¯æ¶å¦ææ令æå®çå路表起å§å°åæåè·¯å·è¶
åºèå´ï¼CPUå°çæç¼è¯é误(
http://www.oyesplc.com/èå´é误)仪å¨ç¼è¯å¤±è´¥ãPIDæ令对å路表ä¸çæäºè¾å
¥å¼ä¸è¿è¡èå´æ£æ¥ï¼åºä¿è¯è¿ç¨åéãç»å®å¼çä¸è¶
éãå路表åè§é表ã
é表 PIDæ令çå路表
å¦æPIDæ令ä¸çç®æ¯è¿ç®åçé误ï¼ç¹æ®åå¨å¨SMI.1(溢åºæéæ³æ°å¼)被置1ï¼å¹¶å°ç»æ¢PIDæ令çæ§è¡ãè¦æ³æ¶é¤é误ï¼å¨ä¸æ¬¡æ§è¡PIDè¿ç®ä¹åï¼åºæ¹åå¼èµ·è¿ç®é误çè¾å
¥å¼ï¼èä¸æ¯æ´æ°è¾åºå¼
www.plcs.cnã4 PIDæ令ç¼ç¨ä¸¾ä¾
æä¸æ°´ç®±éç水以ååé度æµåºï¼ä¸å°åé¢å¨é©±å¨çæ°´æ³µç»æ°´ç®±ææ°´ï¼ä»¥ä¿ææ°´ç®±çæ°´ä½ç»´æå¨æ»¡æ°´ä½ç75ï¼
ãè¿ç¨åéç±æµ®å¨æ°´é¢ä¸çæ°´ä½æµé仪æä¾ï¼PIDæ§å¶å¨çè¾åºå¼ä½ä¸ºåé¢å¨çé度ç»å®å¼ãè¿ç¨åéä¸åè·¯è¾åºå为åææ§æ¨¡æéï¼åå¼èå´ä¸º0.0~1.0ã
æ¬ä¾éç¨PIæ§å¶å¨ï¼ç»å®å¼ä¸º0.75ï¼éåæ§å¶å¨åæ°çåå§å¼ä¸º:KCï¼0.25ï¼TSï¼0.1sï¼TIï¼30minãç¼ç¨å¦ä¸:
//主ç¨åº(OBI)
LD SM0.1 //é¦æ¬¡æ«ææ¶
CALL 0 //è°ç¨åå§ååç¨åº
//åç¨åº
LD SM0.0
MOVR 0.75, VD104 //è£
å
¥ç»å®å¼75ï¼
MOVR 0.25, VD112 //è£
å
¥åè·¯å¢ç0.25
MOVR 0.10, VD116 //è£
å
¥éæ ·æ¶é´0.1s
MOVR 30.0 VD120 //è£
å
¥ç§¯åæ¶é´30min
MOVR 0.0, VD124 //å
³éå¾®åä½ç¨
MOVB 100, SMB34
//设置å®æ¶ä¸æ0çæ¶é´é´é为100ms
ATCH 0, 10
//设å®å®æ¶ä¸æ以æ§è¡PIDæ令
ENI
//å
许ä¸æï¼åç¨åº0ç»æ
//ä¸æç¨åº0
LD SM0.0
LTD AIW0, AC0
//åææ§æ¨¡æéç»A/D转æ¢ååå
¥ç´¯å å¨
DTR AC0, AC0
//32ä½æ´æ°è½¬æ¢ä¸ºå®æ°
/R 32000.0, AC0
//æ ååç´¯å å¨ä¸çå®æ°
MOVR AC0, VD100 //åå
¥å路表
LD 10.0
//å¨èªå¨æ¹å¼ä¸ï¼æ§è¡PIDæ令
PID VB100, 0
//å路表çèµ·å§å°å为VB100ï¼åè·¯å·ä¸º0
LD SM0.0
MOVB VD108, AC0
//PIDæ§å¶å¨çè¾åºå¼éå
¥ç´¯å å¨
*R 32000.0 AC0
//å°ç´¯å å¨ä¸çæ°å¼æ åå
ROUND AC0, AC0
//å®æ°è½¬æ¢ä¸º32ä½æ´æ°
DTI AC0, AQW0
//å°16ä½æ´æ°åå
¥å°æ¨¡æéè¾åº(D/A)å¯åå¨
5 ç»æè¯
PLCå®ç°PIDæ§å¶çæ¹æ³å¤ç§ï¼ç´æ¥åºç¨PIDæ令æ¥å®ç°åºäºPLCçPIDæ§å¶ï¼æ¯ä¸ç§æäºå®ç°ä¸ç»æµå®ç¨çæ¹æ³ã