Hallo,
ich vermute, daß die folgenden Floatberechnungen den ModBus stören.
Insoweit, daß die "lange" Rechenzeit irgendwie unverträglich ist.
Auswirkungen sind, manche Daten werden nicht mehr übertragen.
Mega644, 14,7456MHz, Baudr.: . 38400, Compiler Rev: 4.99.00
Testprogramm: ModBus Poll.
Die Berechnungen brauchen jeweils ca. 1,2ms.
Ohne die Formeln läuft alles prima.
{$IDATA}
Var
fX : Float;
fX:= 50;
fX:= SQRT(((fX+0.0202)/0.002)+41310.5625)-203.272;
fX:= 100;
fX:= SQRT(fX);
fX:= 100;
fX:= (SQRT(-((fX+21.7)/0.001498)+207390)-455.18)*(-1);
fX:= 100;
fX:= (SQRT(((fX+0.0742)/(-0.0014))+165846.7447)-407.2428571)*(-1);
fX:= 100;
fX:= SQRT(((fX+0.1204)/0.0019)+45819)-213.87;
fX:= 100;
fX:= SQRT(((fX-0.09)/0.0014)+94007.94005)-306.6071429;
fX:= 100;
fX:= SQRT(((fX+0.2306)/0.0013)+114686)-337.9;
fX:= 100;
fX:= SQRT(((fX-0.99)/0.00007)+49995000)-7070.03;
Könnte ein Forums ModBus-Benutzer den Code in sein Programm übertragen und berichten wie es gelaufen ist?
Wäre nett.
Danke
Gruß
Mathias
ich vermute, daß die folgenden Floatberechnungen den ModBus stören.
Insoweit, daß die "lange" Rechenzeit irgendwie unverträglich ist.
Auswirkungen sind, manche Daten werden nicht mehr übertragen.
Mega644, 14,7456MHz, Baudr.: . 38400, Compiler Rev: 4.99.00
Testprogramm: ModBus Poll.
Die Berechnungen brauchen jeweils ca. 1,2ms.
Ohne die Formeln läuft alles prima.
Code
{$IDATA}
Var
fX : Float;
fX:= 50;
fX:= SQRT(((fX+0.0202)/0.002)+41310.5625)-203.272;
fX:= 100;
fX:= SQRT(fX);
fX:= 100;
fX:= (SQRT(-((fX+21.7)/0.001498)+207390)-455.18)*(-1);
fX:= 100;
fX:= (SQRT(((fX+0.0742)/(-0.0014))+165846.7447)-407.2428571)*(-1);
fX:= 100;
fX:= SQRT(((fX+0.1204)/0.0019)+45819)-213.87;
fX:= 100;
fX:= SQRT(((fX-0.09)/0.0014)+94007.94005)-306.6071429;
fX:= 100;
fX:= SQRT(((fX+0.2306)/0.0013)+114686)-337.9;
fX:= 100;
fX:= SQRT(((fX-0.99)/0.00007)+49995000)-7070.03;
Könnte ein Forums ModBus-Benutzer den Code in sein Programm übertragen und berichten wie es gelaufen ist?
Wäre nett.
Danke
Gruß
Mathias