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/epp3504/Resources/
2152672011.zip
Programmbeschreibung/ Funktion
Übertragung von exemplarischen Filterkoeffizienten per CoE‑Zugriff in die Box.
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 EPP3504‑0023
Box eingetragen haben (z.B. 1007
Variablendeklaration Beispielprogramm 5
PROGRAM MAIN
// Variable declaration example program 5
VAR CONSTANT
NumOfFilterCoeff :BYTE:=40;
END_VAR
VAR
// Function block of library "Tc2_EtherCAT" for CoE Object access:
EPP3504-0023
)
dez
Version: 1.2
Inbetriebnahme
99