tp_timer(IN:=bGetMinMax, PT:=T#2.51S); // Periodendauer der Rampe (+Reserve)
IF tp_timer.Q THEN
nMinValue := MIN(nPAISampleIn, nMinValue);
nMaxValue := MAX(nPAISampleIn, nMaxValue);
END_IF
// b) Aufnahme der Werte: Start
r_trigStartRecord(CLK:=bStartRecord);
IF r_trigStartRecord.Q THEN
nX := 0;
memset(ADR(aLUT), 0 , 100);
bRecordLUT := TRUE;
END_IF
ton_timer();
IF bRecordLUT OR ton_timer.Q THEN
bRecordLUT := FALSE;
ton_timer(IN:=FALSE);
IF(nX < nEndX) THEN
// b.1) Aufnahme der Werte:
aValues[nX] := nPAISampleIn;
nX := nX + 1;
ton_timer(IN:=TRUE, PT:=tRepeatTimerValue); // T=2,5s/49 = 51ms
ELSE
// b.2) Speicherung abgeschlossen:
// Erzeuge Linearisierte Werte:
nYstepValue := (nMaxValue - nMinValue) / nEndX; // Y-Schritte
nYvalue := aValues[0]; // Gemeinsamer Startwert der LUT
FOR nX:=0 TO nEndX DO
// Erstelle LUT (X = IST-Werte, Y = SOLL-Werte):
aLUT[nX*2] := aValues[nX]; // X-Wert
aLUT[nX*2+1] := nYvalue; // Y-Wert
// Nächster Y-Wert der LUT (erzeuge "Gerade"):
nYvalue := nYvalue + nYstepValue; // f(x) = b+x
END_FOR
END_IF
END_IF
4.3.4
Beispielprogramm 5 (Filterkoeffizienten schreiben)
Download TwinCAT 3 Projekt: https://infosys.beckhoff.com/content/1031/elm3xxx/
Resources/2152672011.zip
Programmbeschreibung/ Funktion
Übertragung von exemplarischen Filterkoeffizienten per CoE‑Zugriff in die Klemme.
Allgemeine Einstellungen
• Der Funktionsblock „FB_EcCoESdoWrite" benötigt die „Tc2_EtherCAT" Bibliothek
• <AmsNetId> muss die Lokale Device – EtherCAT NetId in Hochkomma eingetragen haben (z.B.
'168.57.1.1.5.1')
• <DeviceEtherCATAddress> muss die Lokale Device – EtherCAT Adresse der EL3751/ ELM3xxx
Klemme eingetragen haben (z.B. 1007
Variablendeklaration Beispielprogramm 5
PROGRAM MAIN
ELM3xxx
)
dez
Version: 2.11
Inbetriebnahme
695