Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
18. Mai 2012, 12:00:24
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: >> Roboterprogrammierer gesucht !? <<

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Num Daten aus mehrern Task zugreifen- möglich? Anleitung Record funktion? 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Num Daten aus mehrern Task zugreifen- möglich? Anleitung Record funktion?  (Gelesen 767 mal)
Snoopy01
Neuling
*
Offline Offline

Beiträge: 14


« am: 14. November 2008, 20:08:42 »

Hallo,
habe eine kleines Problem. Habe zwei IRB4400 mit Multi-Move System. Nun zu meiner Frage. In der Task des Roboter 1 gibt es  eine Routine die mir Parameter von der SPS in eine Tabelle schreibt. Nun kann ich die Werte aus der Tabelle entnehmen und Sie in  eine Variable des Typs Num z.B. nDaten schreiben. Da es umständlich wäre jedes mal aus der Tabelle zu lesen....
Ist es irgendwie möglich die Num Daten so anzulegen das ich von Beiden Task (Rob1 und Rob2) drauf zugreifen kann?
Bis jetzt sind sie in einer Sysdata deklaration die jeweils jede Task hat als Variable gespeichert.
Vielleicht könnt ihr mir helfen!? Sollte es vielleicht der Typ PERS sein!?
Dann noch eine andere kurze Frage…
Gibt es irgend wo eine Anleitung über die RECORD Instruktion? Habe in dem Rapid Handbuch nichts gefunden.  Damit sollte es  möglich sein Parameter oder ähnliches zu erstellen. 
Danke schon einmal für eure Antworten
Gespeichert
Robcheck01_MJ
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 269



« Antworten #1 am: 14. November 2008, 22:47:52 »

Hallo Snoopy01,

wie Du schon vermutest hast brauchts Du die Variable nur in beiden Tasks als Persistent deklarieren und schon kann man taskübergreifend auf diese Variablen zugreifen.

Zu der Recordgeschicht muss ich mal nachschauen. Melde mich dann nochmal.

Gruss Robcheck..
Gespeichert

„Herr, lass mich ein guter Mensch sein. Aber bitte nicht sofort.“
dust2
Junior Member
****
Offline Offline

Beiträge: 105


« Antworten #2 am: 17. November 2008, 15:44:27 »

Hier mal ein Beispiel zu Anwenderdatentypen::


RECORD mytype
  string messagetext;
  num errornum;
  loaddata myload;
ENDRECORD

Damit kannst du einen (Deinen) Daten-Typ definieren. Danach folgt die Deklaration der Variablen Deines Typs:

VAR mytype Variable1;

Du kannst sogar Felder Deines Types deklarieren:

VAR mytype Feld{10};

Zugiff auf die Unterelemente dann mit Punkt-Operator:

Variable1.messagetext:="Aha";
Feld{2}.errornum:=10;

dust2
Gespeichert
Paulaner
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 116



WWW
« Antworten #3 am: 17. November 2008, 22:08:24 »

Hallo Snoopy01,
ich möchte auch noch was zu dem Thema "Records" beisteuern. Bei den meisten Sprachen nennt man das eine Struktur! Wie schon Dust2 geschrieben hat du kannst damit eigene Datentypen erstellen. Als erstes muss dieses Record deklariert werden. Wichtig: Diese Definition muss am Anfang im Modul beschrieben werden.

Record KistenDaten
  num X
  num Y
  num Z
  string Kistentext
ENDRECORD

erst jetzt kommt alles andere. Variablen usw. Andernfalls gibt es Ladefehler.
Ein Beispiel:
Du hast 2 Kisten von denen du die Größe benötigst. Zum Palettieren oder so.
Du kannst jetzt diese Daten einzeln Beschreiben.
num Kiste1x=
num Kiste1y=
num Kiste1z=
string Kiste1Text=
num Kiste2x=
num Kiste2y=
num Kiste2z=
string Kiste2Text=
Und das kann viel Arbeit sein und es wird schwer zu lesen sein. Eine bessere Schreibweise wäre:

VAR KistenDaten meineKisten[2]:=[[10,10,10,"Kiste1"],[20,20,20,"Kiste2"]];

Im Programm kannst du jetzt diese Records ansprechen.

Offs:=meineKisten[zähler].x;
Offs:=meineKisten[zähler].y;

meineKisten[1]:=meineKisten[2]

Bei Übergabeparameter in Routinen und Funktionen kann man direkt diesen Typ übergeben.

PROC Rechen(KistenDaten AktuelleKiste)....
ohne Records
PROC Rechnen(num DatenX,num Dateny, num DatenZ)....
Das ganze geht natürlich auch mit einem Rückgabewert.
...return KistenDaten
Also damit kannst du Programme schreiben die Übersichtlicher werden. Und damit auch einfacher um neue Änderungen einzubauen oder auch zu entfernen.
In der Doku ist über diese Thema leider wenig zu finden.  Denken
Gruß Paule
Gespeichert

Erfahrung kann man nicht kaufen,
aber man kann dafür bezahlen.
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Num Daten aus mehrern Task zugreifen- möglich? Anleitung Record funktion? « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS