Controller Programmierung mit ARRAY

April

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin Anfänger mit Codesys und bitte euch daher um Hilfe. Also, ich bin dabei ein Programm zu schreiben (s. Anhang) und die Netzwerken 6,7,8 und 9 sind relevant.
Also, wie ihr sehen könnt, wird JobNr immer hochgezählt also von 0 bis 4(in diesem Fall), d.h es wird also die Werte in Response[JobNr] ausgelesen und diese will ich nach der Bitweise Linksschiebung wieder in einem Array speichern, hier t1[JobNr], geht das? Danach soll er die werte die in t1[JobNr] sind mit Hilfe von "ADR" umwandlen und in Resultat[JobNr] speichern können? Resultat ist ein Pointer to Real, wie ihr bei der Variable Deklaration sehen könnt. Ist es auch möglich? Danach sollen die Werte dann in Real umgewandelt werden, auch hier in einem ARRAY, also Real_Word[JobNr]. Kann es funktionieren?

Und wie soll ich denn die Array t1, Resultat und Real_Word definiert, denn wie ich es gemacht habe(s. Variablendeklaration) geht nicht, ich bekomme die Fehler die ihr unten sehen könnt.

Danke sehr für eure Hilfe

April
 

Anhänge

  • Modbus_Master.doc
    90,5 KB · Aufrufe: 40
Wenn ichs richtig gelesen habe, ist Resultat_1 vom Typ POINTER TO REAL. Du sprichst den im Code aber mit Resultat_1[Job_Nr] an, obwohl das doch gar kein Array ist. Das machst Du zwei mal, was auch die zwei Fehlermeldungen erklären würde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ja stimmt, deshalb frage ich, wie ich es am besten schreiben soll, oder deklarieren soll, damit es funktioniert, denn ich will ja die werte von einem Array lesen, und wenn möglich in einem array speichern, also in Resultat_1[...]

Danke für eure Vorschläge
 
Hallo,
ja stimmt, deshalb frage ich, wie ich es am besten schreiben soll, oder deklarieren soll, damit es funktioniert, denn ich will ja die werte von einem Array lesen, und wenn möglich in einem array speichern, also in Resultat_1[...]

Wie wärs mit:
Code:
Resultat_1 : ARRAY [n..m] OF POINTER TO REAL;
 
Hi, das habe ich schon probiert, ist zwar nicht in der angehängten Datei zu sehen, aber wenn ich die Variablen so deklariere:

t1: Array[0...4] OF DWORD;
Real_Word_1 : ARRAY[0...4] OF REAL;
Resultat_1: ARRAY[0...4] OF POINTER TO REAL;

bekomme ich die gleiche Fehlermeldungen, jetzt 3 mal die gleiche Fehlermeldung.

Deshalb verstehe ich nicht selber woran das liegen könnte, und vor allem, warum die Fehlermeldung sagt, dass Ganez Zahl deklariert werden soll, obwohl, ich Array will.

Danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab nochmal Dein Bild angesehen. Die Fehlermeldung bezieht sich nicht auf den ausgedruckten Teil.

-> Fehlermeldung ModbusMaster(20) heisst in Netzwerk 20
-> Fehlermeldung ModbusMaster(54) heisst in Netzwerk 54

(Zumindest bei mir.....)

Dein Bild zeigt aber Netzwerk 6-9.
 
Hi, so viel ich von Codesys weiß, wenn man normalerweise auf die Fehlermedlung drauf klickt, zeigt er wo der Fehler liegt oder? Und wenn ich auf diese Fehlermeldung (Von Netzwerk 20) klickt, zeigt er mir die Zeile von t1: Array [0..4] OF DWORD in der Variablendeklaration.

I,ch weiß wirklich nicht wo der Haken hier ist. Es sollte eigentlich doch so ,funktionieren sollen oder? wie in den Netzwerken 6,7,8,9 zu sehen ist. Verstehe aber nicht, warum die Variablen deklaration falsch sind. Darf ARRAY [..] OF DWORD oder ARRAY[...] OF POINTER TO REAL schreiben?

Danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, und Danke für Ihre Hilfe und Vorschläge, jetzt habe ich das Problem gelöst, es gab nur ein kleines , wirklich nur ein kleines Problem und zwar, bei der Array zwischen [0...4] habe immer 3 punkte hinzugefügt, anstatt 2,aslo [0..4] und das war der Fehler, bin auf erster Blick nicht drauf gekommen.

Danke nochmal für Ihre Bemühungen.
 
Zurück
Oben