B&R Umschalten zwischen zwei FileDevices

Kiddl94

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin neu hier.
Aufgrund meiner Technikerarbeit, die beinhaltet einen Roboter als Schulungsobjekt zu programmieren, stehe ich vor folgendem Problem.
Da zur Zeit nur ein Roboter zur Verfügung steht möchte ich gerne das Programm so entwerfen das der selbe Roboter auch in der Simulation für die Schüler verfügbar ist.

Hier zu meinem Problem.
Da ich die .cnc-Programme auch in der Simulation abfahren möchte muss ich der Steuerung ein anderes File Device vorgeben sobald sich die Steuerung in der Simulation befindet.
Die Partition wird auch erzeugt und die .cnc-Programme werden auch richtig abgelegt.

Mein erster Ansatz das über den den Funktionsbaustein "DevLink" der Bibliothek "FileIO" zu lösen hat nicht funktioniert.

Mein zweiter Ansatz ist nun das ich in der Konfiguration der CPU zwei File Devices angebe (eins auf die Reale Partition "F:\" der realen CPU und eines auf die USER-Partition der Simulation.

Gibt es eine Funktion die beim starten der CPU einen der beiden Ablageorte auswählt ?

Vielen Dank im voraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau diese Funktion verwende ich.
Wie kann ich das dann bewerkstelligen das die Simulation aus das andere Device zugreift ?
Der FB DevLink erzeugt mir ja ein neues Verzeichnis, das möchte ich ja nicht.
Und wenn ich den FB DirOpen verwende kann mein Baustein die .cnc-Programme nicht lesen.


IF DiagCpuIsSimulated() THEN
InitSimuPositions;
Mcu.Fb.FbDevLink.pParam := ADR('/DEVICE=USER_PATH\');
ELSE
// Laden der gespeicherten Variablen für den Realbetrieb
//Action Schreiben zum Laden der Positionen
Mcu.Fb.FbDevLink.pParam := ADR('/DEVICE=F:\');
END_IF;

Mcu.Fb.FbDevLink.pDevice := ADR ('CNC_PrgDir');
Mcu.Fb.FbDevLink.enable := TRUE;

REPEAT
Mcu.Fb.FbDevLink();
UNTIL Mcu.Fb.FbDevLink.handle <> 0
END_REPEAT;
Mcu.Fb.FbDevLink.enable := FALSE;
 
Sorry, bin nicht am Rechner weil Wochenende. Aber sowit ich mich erinnern kann, gibst du dem FB DevLink doch per String vor, auf welches Device er seinen Link Anlegen soll, oder?
 
So war auch mein Gedanke.
Aber der Roboterbaustein bekommt die Programme trotzdem nicht geladen.

Hat ja auch noch Zeit, wenn dir nächste Woche eine Lösung einfällt oder ein Ansatz kannst ja gerne mal die Gedanken mit mir teilen :)

Ich versuch mal ob ich das heute noch hin bekomme.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe das Problem lösen können, zumindest wird sich das nächste Woche Dienstag am Roboter herausstellen.

Und zwar hab ich es folgender Maßen gelöst:
1. In der CPU Konfiguration zwei FileDevices angelegt
2. In dem AxesGroupFeatures unter dem Punkt Locations beide FileDevices angegeben.

Der Gedanke hierbei war, das eh nur maximal ein FileDevice verfügbar ist und er sich somit das passende raussuchen kann.
 
Ich würde lieber selber selektieren, ob die CPU Real ist, oder Simulation:

Code:
IF DiagCpuIsARsim() THEN
  (* Hier das Device für simulierten Betrieb Linken *)
ELSE
  (* Hier das Device für reellen Betrieb Linken *)
END_IF

Dann hast du immer die Sicherheit, das dein Filedevice gültig ist.
 
Zurück
Oben