Übertragen von Daten von PLC-Lab zu Codesys
Übertragen von Daten von PLC-Lab zu Codesys
Hallo zusammen,
ich versuche aus meinem PLC-Lab-Modell Variablen in INT8 übertragen. Mit Datentype "bool" funktioniert das hervorragend, aber wie soll ich Veriablen in Codesys definieren, damit es auf INT oder REAL Variablen funktioniert?
Hier Beispiel meines Codes aus Codesys. Veriablen mit %IX0.0 das funktioniert, aber bei WORD oder REAL Compiler meldet Fehler. Kann jemand helfen?
PROGRAM MeinBA
VAR
// Input
ConvOn AT %IX0.0: BOOL;
ConvVelShell AT %IX0: WORD;
// process output (actuators)
LampOn AT %QX0.0: BOOL;
ConvVelActual AT %QB1: REAL;
END_VAR
ich versuche aus meinem PLC-Lab-Modell Variablen in INT8 übertragen. Mit Datentype "bool" funktioniert das hervorragend, aber wie soll ich Veriablen in Codesys definieren, damit es auf INT oder REAL Variablen funktioniert?
Hier Beispiel meines Codes aus Codesys. Veriablen mit %IX0.0 das funktioniert, aber bei WORD oder REAL Compiler meldet Fehler. Kann jemand helfen?
PROGRAM MeinBA
VAR
// Input
ConvOn AT %IX0.0: BOOL;
ConvVelShell AT %IX0: WORD;
// process output (actuators)
LampOn AT %QX0.0: BOOL;
ConvVelActual AT %QB1: REAL;
END_VAR
Re: Übertragen von Daten von PLC-Lab zu Codesys
Hallo,
für die Übertragung von `INT` und `REAL` Variablen in CODESYS, stellen Sie sicher, dass Sie die richtige Adressierung verwenden:
`%IW...` für `INT` und `%ID...` oder `%QD...` für `REAL`.
für die Übertragung von `INT` und `REAL` Variablen in CODESYS, stellen Sie sicher, dass Sie die richtige Adressierung verwenden:
`%IW...` für `INT` und `%ID...` oder `%QD...` für `REAL`.
Re: Übertragen von Daten von PLC-Lab zu Codesys
danke! das habe ich jetzt angepasst, das funktioniert aber leider immer noch nicht, Fehler beim kompilieren: C0066: Cannot compare type 'BOOL' with type 'INT'
so variablen in Codesys definiert
ConvVelShell AT %IW0: INT;
ConvVelActual AT %QW0: INT;
in PLC-Lab heißen sie gleich und Adresse als: IW0 und QW0 eingegeben.
Sollte vielleicht diesen Datentyp irgendwie in PlcLabConnector auch definieren?
Hat jemand vielleicht ein Projekt mit PLC-Lab und Codesys als Muster, wo Variablenaustausch stattfindet?
so variablen in Codesys definiert
ConvVelShell AT %IW0: INT;
ConvVelActual AT %QW0: INT;
in PLC-Lab heißen sie gleich und Adresse als: IW0 und QW0 eingegeben.
Sollte vielleicht diesen Datentyp irgendwie in PlcLabConnector auch definieren?
Hat jemand vielleicht ein Projekt mit PLC-Lab und Codesys als Muster, wo Variablenaustausch stattfindet?
Re: Übertragen von Daten von PLC-Lab zu Codesys
Hallo,
das Mapping der Variablen auf die Absolutadressen scheint jetzt zu funktionieren.
Die Fehlermeldung deutet darauf hin, dass Sie versuchen, eine Bool-Variable mit einer INT Variable vergleichen und das ist nicht erlaubt.
Welche SCL Zeile erzeugt die genannte Fehlermeldung?
das Mapping der Variablen auf die Absolutadressen scheint jetzt zu funktionieren.
Die Fehlermeldung deutet darauf hin, dass Sie versuchen, eine Bool-Variable mit einer INT Variable vergleichen und das ist nicht erlaubt.
Welche SCL Zeile erzeugt die genannte Fehlermeldung?
Re: Übertragen von Daten von PLC-Lab zu Codesys
Vorschlag:
Erzeugen Sie eine globale Variablentabelle mit dem Namen "I" und eine globale Variablentabelle mit dem Namen "Q". Hier tragen Sie jeweils das Mapping für die Ein- und Ausgänge ein.
Beispiel für die globale Variablentabelle "I":
Beispiel für die globale Variablentabelle "Q":
Jetzt können Sie global auf die Variablen zugreifen.
Eingangsvariablen über "I." und Ausgangsvariablen über "Q."
Beispiel:
Erzeugen Sie eine globale Variablentabelle mit dem Namen "I" und eine globale Variablentabelle mit dem Namen "Q". Hier tragen Sie jeweils das Mapping für die Ein- und Ausgänge ein.
Beispiel für die globale Variablentabelle "I":
Code: Alles auswählen
VAR_GLOBAL
S0 AT %IX0.0: BOOL; //S0 ist mit E0.0 verknüpft
S1 AT %IX0.1: BOOL; //S1 ist mit E0.1 verknüpft
Sensorwert1 AT %IW10: INT; //Sensorwert ist mit QW10 verknüpft
END_VAR
Code: Alles auswählen
VAR_GLOBAL
Q0 AT %QX0.0: BOOL; //Q0 ist mit A0.0 verknüpft
Q1 AT %QX0.1: BOOL; //Q1 ist mit A0.1 verknüpft
END_VAR
Jetzt können Sie global auf die Variablen zugreifen.
Eingangsvariablen über "I." und Ausgangsvariablen über "Q."
Beispiel:
Code: Alles auswählen
IF I.S0 THEN
Q.Q0:=1;
END_IF
IF I.S1 THEN
Q.Q0:=0;
END_IF
Re: Übertragen von Daten von PLC-Lab zu Codesys
hallo mhj,
danke schön für den Code.
Ich bekomme wieder Schwierigkeiten. Wenn ich z.B. " Sensorwert1 AT %IW10: INT; " in Programm direkt deklariere, dann funktioniert das auch, aber wenn ich diese unter VAR_GLOBAL in GVL deklariere, dann sagt mir Debugger, dass Sensorwert1 nicht definiert ist.
Ich versteh nicht, warum werden Globale Variable in PLC_PRG nicht sichtbar
Eingaben in PLC_PRG:
//Sync the PLC-Lab data with the inputs and outputs
PlcLabSync(Inputs:=TRUE, Outputs:=TRUE);
test01 := Sensorwert1;
danke schön für den Code.
Ich bekomme wieder Schwierigkeiten. Wenn ich z.B. " Sensorwert1 AT %IW10: INT; " in Programm direkt deklariere, dann funktioniert das auch, aber wenn ich diese unter VAR_GLOBAL in GVL deklariere, dann sagt mir Debugger, dass Sensorwert1 nicht definiert ist.
Ich versteh nicht, warum werden Globale Variable in PLC_PRG nicht sichtbar
Eingaben in PLC_PRG:
//Sync the PLC-Lab data with the inputs and outputs
PlcLabSync(Inputs:=TRUE, Outputs:=TRUE);
test01 := Sensorwert1;
Re: Übertragen von Daten von PLC-Lab zu Codesys
Wenn Sensorwert1 in der globalen Variablentabelle "GVL" definiert ist, dann müssen Sie "GVL." davor schreiben:
(Wie im obigen Beispiel mit "I.S0" auch schon beschrieben)
(Wie im obigen Beispiel mit "I.S0" auch schon beschrieben)
Code: Alles auswählen
test01 := GVL.Sensorwert1;
Re: Übertragen von Daten von PLC-Lab zu Codesys
Guten Tag,
Sie sollten sich in einigen Tutorials einlesen, damit Sie die theoretischen Voraussetzungen für die Programmierung haben.
Hier z.B. ein Link bzgl. der Variablen:
https://www.codesys-blog.com/programmie ... variablen/
Gruß
Sie sollten sich in einigen Tutorials einlesen, damit Sie die theoretischen Voraussetzungen für die Programmierung haben.
Hier z.B. ein Link bzgl. der Variablen:
https://www.codesys-blog.com/programmie ... variablen/
Gruß
Re: Übertragen von Daten von PLC-Lab zu Codesys
danke schön für die Erklärung und für den Link zum Tutorials. Mit "GVL davor schreiben" wusste ich nicht. Ich muss wirklich in das Thema tiefer einsteigen.