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

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Newbie Ein- und Ausgänge 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Newbie Ein- und Ausgänge  (Gelesen 1370 mal)
Thomas Schneider
Stammgast
**
Offline Offline

Beiträge: 34


« am: 17. Januar 2008, 09:05:04 »

Hallo zusammen.

Ich muss mich gerade kurzfristig mit der ABB-Syntax beschäftigen. Leider habe ich bis jetzt noch kein System wo ich auch wirklich mal rumspielen kann.
Deshalb wohl auch diese Frage. Ich hoffe ihr erschlagt mich nicht gleich. Bin jetzt leider nur Kuka gewohnt.
 hilfe

Was ich an der RAPID-Programmierung nicht ganz verstehe ist der Umganmg mit Ein-und Ausgängen.
Wie ich auch der Doku gelesen habe werden diese in den Systemparametern auf Namen gemappt?!
z.B. digitale Eingänge dixxx
       digitale Gruppen dgxxx

Fangen diese Namen immer mit di, dg an?
Muss ich dann im Programm nochmal irgendwelche Deklarationen machen oder arbeite ich dann direkt mit diesen Name wo ich den Systemparametern angelegt habe?

Über so ein kleines How-To von E/A´s wäre extrem dankbar!

Vielen Vielen Dank!!!


 merci

Gruß Thomas
Gespeichert
addi
Stammgast
**
Offline Offline

Beiträge: 47


« Antworten #1 am: 17. Januar 2008, 10:04:00 »

Hallo Thomas,

Wie ich auch der Doku gelesen habe werden diese in den Systemparametern auf Namen gemappt?!

Ja, genau.
Die Namen der EAs müssen nicht mit "di","do","dg", etc. anfangen, sondern sind (fast) beliebig.
Sie müssen nur den Konventionen für Bezeichner in RAPID entsprechen, d.h. max. 16 Zeichen lang sein,
mit einem Buchstaben anfangen, eindeutig sein usw. Steht in der Doku...

Die Signale sind nach der Deklaration in den Systemparametern (und Neustart) global verfügbar
und können wie Datenobjekte mit dem enstprechenden Datentypen (signaldi, signaldo, ...)
im Programm verwendet werden.

Hoffe das hilft erstmal weiter.  Ansonsten: Doku lesen, ist da ganz gut erklärt
addi
Gespeichert
Thomas Schneider
Stammgast
**
Offline Offline

Beiträge: 34


« Antworten #2 am: 17. Januar 2008, 10:15:11 »

Hey Addi.

Vielen Dank für deine Antwort.

Doku habe ich eigentlich schon gelesen........  Embarassed

Muss ich die Signale ( dixx, doxxx usw...) nochmal im Programm auf die entsprechende Datentypen (signaldi, signaldo, ...) setzten?! Sprich:

VAR signaldi test1;

test1:= di1;

oder kann ich Namen direkt Verwenden? Sprich:

if di1 > 5 then
.........


Danke!!!!!

Gruß Thomas


Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 912



WWW
« Antworten #3 am: 17. Januar 2008, 10:15:21 »

Hi Thomas,
Super Fragestellung konkret und zeilgenau. So haben wir das gern. Wir wissen dann wo Dein Problem liegt und können fix weiterhelfen.  supi
Fei gemacht. somit wirste auch nicht erschlagen!  pfeif

Nun zum Thema:
der Namen eines Signals is frei wählbar und darf 16 Zeichen nicht überschreiten. Wegen der Erkennbarkeit im Programm zwischen Variablen und Signalen hat es sich so bei dem einen und anderm eingebürgert Eingänge mit di.., Ausgänge mit do.., Gruppenein- bzw. ausgänge gi../go.. und anloge Signale mit ao..bzw. ai. kann aber grundsätzlich jeder halten wie ein Dachdecker. Very Happy
Ich mach das auch mit variablen so. z.B.: b... für boolsche Variablen (Flags), n.. für numerische Variablen, beim ABB gibt es keine Unterscheidung zwischen Integer oder Real, Timer haben bei mir ein t.. usw.
Somit habe ich im Programm eine kleinbischen schnellere Übersicht. Hab mich halt so daran gewöhnt.
Bei Ein- und Ausgängen benutze ich im Programm auch gern das high und das low. Somit hab ich auch noch einmal eine Differenzierung zwischen Variablen und Signalen.

Da fällt mir noch ein Beispiel ein:
IF Produkttyp=XX THEN

So nun ist es schwierig zu erkennen ist dies ein Gruppeneingang oder eine Variable. Wird dieser Wert im Roboterprogramm gebildet oder ist es eine Information von einer externen Quelle.
aber so:
IF giProdukttyp=XX THEN
oder
IF nProdukttyp=XX THEN
weiß mann eigentlich schnell bescheid.
Zu diesem Thema wird es jedemenge unterschiedlicher Meinungen geben weil man halt in der E/A Deklaration eigentlich tun und lassen kann was man will, bis auf die Länge von 16 Zeichen pro Signal.

Aber Du wirst das schon machen.

Akso im Programm brauchst Du nix mehr alles auf diesen Namen bezogen. Kannst global von allen Subroutinen etc. ansprechen.

Hoffe Dir geholfen zu haben.

Sven
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
Thomas Schneider
Stammgast
**
Offline Offline

Beiträge: 34


« Antworten #4 am: 17. Januar 2008, 10:18:33 »

Hey Sven.

Das ist doch mnal ein klasse Erklärung.

Nun nochmal kurz eine Bestätigung.

Wenn ich also in den Systemparametern eine digitalen Eingangsgruppe  mit dem Namen "giTestforForum" genannt habe.

So kann ich diese Variable direkt in allen Programmen abfragen:
if giTestforForum > 3 then
............


 danke

Gruß Thomas
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 912



WWW
« Antworten #5 am: 17. Januar 2008, 10:22:09 »

Na klaro. So geht das mit allen Signalen.

Sven
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
Thomas Schneider
Stammgast
**
Offline Offline

Beiträge: 34


« Antworten #6 am: 17. Januar 2008, 10:23:27 »

 danke merci

Das ist die Antwort die ich gebraucht habe!

Vielen Dank

Gruß Thomas
Gespeichert
addi
Stammgast
**
Offline Offline

Beiträge: 47


« Antworten #7 am: 17. Januar 2008, 10:24:51 »

Thomas,

ja, du kannst die Namen direkt verwenden.

Bei der Abfrage von gesetzten dig. Signalen würde ich dir die Funktion "TestDI()"
empfehlen, also z.B.:

IF TestDI(diEingang) THEN ...

hth
addi
Gespeichert
stromer
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 272


Denken hilft


« Antworten #8 am: 17. Januar 2008, 16:30:31 »

Zu dem TestDI würd ich gern noch folgendes anmerken:
Es handelt sich um eine Funktion, die ein Boolsches Ergebnis zurück gibt. Die Syntax ist dann wie addi das beschrieben hat. Ich persönlich finde es einfacher direkt IF diEingang=1 oder 0 zu schreiben. Falls Du Ausgänge abfragen willst musst Du allerdings folgendes schreiben: IF DOutput(doAusgang)=1 oder 0
Bei Gruppensignalen (2-16 Bit) ist das Prinzip das gleiche, IF giEingangsgruppe=Wert / IF GOutpu(goAusgangsgruppe)=Wert THEN...
Wobei Wert natürlich auch eine num-Variable sein kann.

Gruß
Stromer
Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Newbie Ein- und Ausgänge « 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