Der häufigste Fehler ist, dass man die Cycle-Time vergisst zu setzen.
In meinem Beispiel sind nur die Grundbedingungen gesetzt.
Die P, I und D Parameter werden mittels PID-Control (Siemens Zusatzprogramm) live gesetzt und erst, wenn alles perfekt läuft übertragen. Mit diesem Tool lassen sich auch die Grössen aufzeichnen wie SOLL-, IST-, Regeldifferenzen, Störgrösse, etz.
Nun ma hier das Beispiel:
Und nicht erschrecken, war ma KOP
Code:
UN "m_Freigabe_PID"
= L 136.1
BLD 103
UN "m_aktiv" // m_aktiv = Merker, der immer eins ist
= L 136.2
BLD 103
U "m_aktiv"
= L 136.3
BLD 103
U "m_aktiv"
= L 136.4
BLD 103
UN "m_aktiv"
= L 136.7
BLD 103
CALL "CONT_C" , "db131_PID"
COM_RST :=
MAN_ON :=L136.1
PVPER_ON:=L136.2
P_SEL :=L136.3
I_SEL :=L136.4
INT_HOLD:=
I_ITL_ON:=
D_SEL :=L136.7
CYCLE :=T#20MS
SP_INT :="md_SOLL"
PV_IN :="md_IST"
PV_PER :=
MAN :=2.000000e+001
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :="aw_OUT"
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
NOP 0
Hier geht's um einen Applikator, der Etiketten auf ein Paket klebt
Soll und Ist-Wert kommen als mm-Grösse (Gleitpunkt) rein, werden verglichen, mit dem GAIN entsprechend auf die richtige Grösse gestreckt und anschliessend mit den PID-Faktoren verarbeitet (die man hier nicht sieht, da nur im DB gespeichert). Anschliessend wird das Resultat nochmal begrenzt und mit einem Offset versehen.
Btw. mit F1 auf den Block kommt nen hübsches Funktions-Diagramm des Reglers.
Gruss und nen frohes neues Jahr
Reto