Commissioning
// Initialization, go on:
nMaxValCnt :=CMMcnt;
nMinValCnt :=CMMcnt;
nMaxVal :=CMAXinit;
nMinVal :=CMINinit;
bInit := FALSE;
END_IF
// Assertions: new min/max values exists:
bValidMaxVal := TRUE;
bValidMinVal := TRUE;
// Filter min/max values
IF (nMaxVal < nInputValue) THEN
bValidMaxVal := FALSE;
nMaxVal := nInputValue; // Max value was found
END_IF
IF (nMinVal > nInputValue) THEN
bValidMinVal := FALSE;
nMinVal := nInputValue; // Min value was found
END_IF
// Count down, if no new value come in:
IF (bValidMaxVal AND (nMaxValCnt > 0)) THEN
nMaxValCnt := nMaxValCnt - 1;
END_IF
// Count down, if no new value come in:
IF (bValidMinVal AND (nMinValCnt > 0)) THEN
nMinValCnt := nMinValCnt - 1;
END_IF
IF ((nMaxValCnt = 0) AND (nMinValCnt = 0)) THEN
// Consequence: min/max determined
bInit := TRUE; // Prepare next call
bRESULT := NOT (nMaxVal = nMinVal); // Sign valid results
ELSE
bRESULT := FALSE; // Sign still invalid results
END_IF
4.3.2
Sample program 3 (write LookUp table)
Download TwinCAT 3 project: https://infosys.beckhoff.com/content/1033/epp3504/Resources/
2152669707/.zip
Program description
3
Transmission of LookUp table interpolation values for mapping of an equation f(x) = x
via CoE into the box
module.
Variable declaration sample program 3
PROGRAM MAIN
VAR
//LookUp-Table (LUT) generated by: MBE * x³
aLUT:ARRAY[0..99] OF DINT :=
[
-7812500,-7812500,-7493593,-6894382,
-7174765,-6051169,-6855859,-5279674,-6536953,-4576709,
-6218125,-3939087,-5899218,-3363620,-5580390,-2847120,
-5261484,-2386402,-4942578,-1978275,-4623750,-1619555,
EPP3504-0023
Version: 1.2
91