Frohnius
Level-1
- Beiträge
- 435
- Reaktionspunkte
- 142
-> Hier kostenlos registrieren
hallo forum,
ich versuche eine recht einfache funktion zu realisieren .. und erhalte seltsame fehlermeldungen ...
FUNCTION summe : INT
VAR_IN_OUT
A : ARRAY
[*] OF INT;
END_VAR
VAR
i, sum2: DINT;
END_VAR
sum2:= 0;
FOR i:= LOWER_BOUND(A,1) TO UPPER_BOUND(A,1) DO
sum2:= sum2 + A;
END_FOR;
summe:= sum2;
beim aufruf mit
a:= summe(b);
Funktion 'SUMME' benötigt genau '0' Eingänge
sollte aber nicht sein ... der code ist ein codesys beispiel .. und VAR_IN_OUT ist nötig wegen dem array mit variabler länge...
(Zeile 3 (Dekl)): C0006: '..' an Stelle von ']' erwartet
^^ das array ohne feste länge wird aber was ich so gelesen habe so definiert ... [..] oder [0..0] funktionieren ebenfalls nicht
(Dekl)): C0006: 'OF' an Stelle von 'i' erwartet
(Zeile 8 (Dekl)): C0031: Typdefinition an Stelle von 'END_VAR' erwartet
(Zeile 2 (Dekl)): C0006: 'END_VAR' an Stelle von '' erwartet
(Zeile 3 (Dekl)): C0006: ';, := oder (' an Stelle von '' erwartet
(Zeile 1, Spalte 1 (Impl)): C0046: Bezeichner 'sum2' nicht definiert
(Zeile 1, Spalte 1 (Impl)): C0018: 'sum2' ist kein gültiges Zuweisungsziel
(Zeile 2, Spalte 1 (Impl)): C0046: Bezeichner 'i' nicht definiert
(Zeile 2, Spalte 1 (Impl)): C0018: 'i' ist kein gültiges Zuweisungsziel
(Zeile 2, Spalte 1 (Impl)): C0046: Bezeichner 'LOWER_BOUND' nicht definiert
(Zeile 2, Spalte 1 (Impl)): C0035: Programmname oder Funktionsblockinstanz an Stelle von 'LOWER_BOUND' erwartet
ich verwende Somachine 4.1 Sp2 und die eingestellte sps ist eine m251
laut dem schneider programmierhandbuch sollte das so möglich sein.
eigentlich möchte ich messwerte in einem array "aufzeichnen" und hätte meine funktionen gerne variabler um aufzeichnungsgeschwindigkeit und dauer verändern zu können,
mit arrays mit fester länge funktioniert alles wunderbar .
der code hier ist sozusagen nur ein "fallback" bei dem ich gleichen fehlermeldungen erhalte.
ich gehe davon aus, dass ich nur eine dumme kleinigkeit übersehe und hoffe, dass mir jemand helfen kann.
vielen dank für eure mühe
ich versuche eine recht einfache funktion zu realisieren .. und erhalte seltsame fehlermeldungen ...
FUNCTION summe : INT
VAR_IN_OUT
A : ARRAY
[*] OF INT;
END_VAR
VAR
i, sum2: DINT;
END_VAR
sum2:= 0;
FOR i:= LOWER_BOUND(A,1) TO UPPER_BOUND(A,1) DO
sum2:= sum2 + A;
END_FOR;
summe:= sum2;
beim aufruf mit
a:= summe(b);
Funktion 'SUMME' benötigt genau '0' Eingänge
sollte aber nicht sein ... der code ist ein codesys beispiel .. und VAR_IN_OUT ist nötig wegen dem array mit variabler länge...
(Zeile 3 (Dekl)): C0006: '..' an Stelle von ']' erwartet
^^ das array ohne feste länge wird aber was ich so gelesen habe so definiert ... [..] oder [0..0] funktionieren ebenfalls nicht
(Dekl)): C0006: 'OF' an Stelle von 'i' erwartet
(Zeile 8 (Dekl)): C0031: Typdefinition an Stelle von 'END_VAR' erwartet
(Zeile 2 (Dekl)): C0006: 'END_VAR' an Stelle von '' erwartet
(Zeile 3 (Dekl)): C0006: ';, := oder (' an Stelle von '' erwartet
(Zeile 1, Spalte 1 (Impl)): C0046: Bezeichner 'sum2' nicht definiert
(Zeile 1, Spalte 1 (Impl)): C0018: 'sum2' ist kein gültiges Zuweisungsziel
(Zeile 2, Spalte 1 (Impl)): C0046: Bezeichner 'i' nicht definiert
(Zeile 2, Spalte 1 (Impl)): C0018: 'i' ist kein gültiges Zuweisungsziel
(Zeile 2, Spalte 1 (Impl)): C0046: Bezeichner 'LOWER_BOUND' nicht definiert
(Zeile 2, Spalte 1 (Impl)): C0035: Programmname oder Funktionsblockinstanz an Stelle von 'LOWER_BOUND' erwartet
ich verwende Somachine 4.1 Sp2 und die eingestellte sps ist eine m251
laut dem schneider programmierhandbuch sollte das so möglich sein.
eigentlich möchte ich messwerte in einem array "aufzeichnen" und hätte meine funktionen gerne variabler um aufzeichnungsgeschwindigkeit und dauer verändern zu können,
mit arrays mit fester länge funktioniert alles wunderbar .
der code hier ist sozusagen nur ein "fallback" bei dem ich gleichen fehlermeldungen erhalte.
ich gehe davon aus, dass ich nur eine dumme kleinigkeit übersehe und hoffe, dass mir jemand helfen kann.
vielen dank für eure mühe
