-> Hier kostenlos registrieren
Hallo zusammen
Ich komme eigentlich eher aus der Siemens Welt und habe daher recht wenig Erfahrungen mit Beckhoff.
Hier ist mir aufgefallen, dass ein BOOL immer ein BYTE Platz brauch.
Ich habe eine Schnittstelle zur Safety und bekomme von dort ein WORD mit Informationen zu den Schutztüren.
Es funktioniert zwar so wie ich das jetzt gemacht habe finde es aber nicht gut gelöst.
Aktueller stand:
Ich Hätte es mir aber eher so vorgestellt:
Wie könnte man dass denn in der Beckhoff Welt elegant lösen?
Danke für die Hilfe
Ich komme eigentlich eher aus der Siemens Welt und habe daher recht wenig Erfahrungen mit Beckhoff.
Hier ist mir aufgefallen, dass ein BOOL immer ein BYTE Platz brauch.
Ich habe eine Schnittstelle zur Safety und bekomme von dort ein WORD mit Informationen zu den Schutztüren.
Es funktioniert zwar so wie ich das jetzt gemacht habe finde es aber nicht gut gelöst.
Aktueller stand:
Code:
// Read Safety Inputs
MEMCPY(destAddr := ADR(SafetyToPLC), srcAddr := ADR(SafetyIN), n := SIZEOF(SafetyToPLC));
// Map Inputs Door
Doors[1].closed:=SafetyToPLC.DoorClosed.0;
Doors[2].closed:=SafetyToPLC.DoorClosed.1;
Doors[3].closed:=SafetyToPLC.DoorClosed.2;
Doors[4].closed:=SafetyToPLC.DoorClosed.3;
Doors[5].closed:=SafetyToPLC.DoorClosed.4;
Doors[6].closed:=SafetyToPLC.DoorClosed.5;
Doors[7].closed:=SafetyToPLC.DoorClosed.6;
Doors[8].closed:=SafetyToPLC.DoorClosed.7;
Doors[9].closed:=SafetyToPLC.DoorClosed.8;
Doors[10].closed:=SafetyToPLC.DoorClosed.9;
Doors[1].locked:=SafetyToPLC.DoorLocked.0;
Doors[2].locked:=SafetyToPLC.DoorLocked.1;
Doors[3].locked:=SafetyToPLC.DoorLocked.2;
Doors[4].locked:=SafetyToPLC.DoorLocked.3;
Doors[5].locked:=SafetyToPLC.DoorLocked.4;
Doors[6].locked:=SafetyToPLC.DoorLocked.5;
Doors[7].locked:=SafetyToPLC.DoorLocked.6;
Doors[8].locked:=SafetyToPLC.DoorLocked.7;
Doors[9].locked:=SafetyToPLC.DoorLocked.8;
Doors[10].locked:=SafetyToPLC.DoorLocked.9;
Ich Hätte es mir aber eher so vorgestellt:
Code:
FOR I := 1 TO 16 DO
Doors[i].closed:=SafetyToPLC.DoorClosed.I-1;;
Doors[i].locked:=SafetyToPLC.DoorLocked.I-1;;
END_FOR
Wie könnte man dass denn in der Beckhoff Welt elegant lösen?
Danke für die Hilfe