Seite 1 von 1

Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 30 Nov 2023, 16:49
von vtreg
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

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 30 Nov 2023, 17:05
von mhj
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`.

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 30 Nov 2023, 17:24
von vtreg
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?

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 01 Dez 2023, 07:32
von mhj
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?

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 01 Dez 2023, 08:10
von mhj
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":

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
Beispiel für die globale Variablentabelle "Q":

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

Verfasst: 05 Dez 2023, 18:31
von vtreg
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;

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 06 Dez 2023, 07:46
von mhj
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)

Code: Alles auswählen

test01 := GVL.Sensorwert1;

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 06 Dez 2023, 07:47
von Weiss_MHJ
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ß

Re: Übertragen von Daten von PLC-Lab zu Codesys

Verfasst: 06 Dez 2023, 10:09
von vtreg
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.