Ein-/Ausgänge über DeviceNet

  • Guten Abend


    Ich werde in ein paar Wochen vor einem kleinen Problem stehen, mit dem ich mich jetzt gerne schonmal befassen würde. Es ist ähnlich, wie es hier schonmal behandelt wurde: http://www.roboterforum.de/rob…rehzahlbestimmung-messen/


    Ich habe eine KRC2. Dort verwende ich DeviceNet und Beckhoff- Buskoppler für die digitalen Ein- und Ausgänge. Das habe ich mittlerweile schon zig Mal gemacht, funktioniert ohne Probleme. Ein- und Ausgänge, digital und analog, kein Problem. Wie aber frage ich die Werte einer Beckhoff- Karte (z.B. KL5101) ab? Die DeviceNet Doku gibt dazu nichts her. Momentan habe ich noch nicht mal einen Ansatz, wie ich da weiter vorgehen könnte.


    Dazu kommt dann noch was: Ich muss mit einer anderen Steuerung Daten (nur digitale Ein-/ Ausgänge) austauschen. Eine Beckhoff SPS (CX) sendet mir via DeviceNet die Daten an den Buskoppler, den ich mit der KRC2 bediene.
    Ich habe gerade leider nichts zum testen hier. Ich vermute mal, dass ich die Ein- und Ausgänge einfach "normal" nach den harware- Ein-/Ausgängen deklariere. Sie werden doch vermutlich dann nach den anderen Karten in den Bus "gelegt", oder? Ist das richtig so?


    Wie gesagt, ich kann erst in ein paar Wochen die Sachen testen. Ich möchte mich aber jetzt schonmal damit befassen.


    Schönen Abend noch!


    Matthias

  • Schritt für Schritt zum Roboterprofi!
  • Hallo MHW,


    welche Doku suchst du genau?


    Gruss Christian

    Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.<br /><br />Ich kann micht nicht erinnern, dass ich mal was vergessen hätte .<br /><br />Wenn der Liter Sprit 5 Euro kostet und die letzte Tankstelle geschlossen ist,<br />dann werdet Ihr merken das man bei Greenpeace nachts kein Bier kaufen kann.

  • Hallo mhw,


    Was die Integration einer Karte wie bspw. der KL5101 angeht, schau nochmal den Thread zur Drehzahlmessung auf welchen du dich oben selbst beziehst ganz unten an, dort steht was zu tun ist. Die Funktion oder Parametrierung eines KL-Kärtchens hat mit DeviceNet nichts zu tun, daher kann nicht gut was darüber in irgend einer DeviceNet Doku stehen, egal ob von Beckhoff, KUKA, oder Rockwell. Es geht ja nur darum wie sich die KLxyz im Buskoppler mappt, und das steht in der Doku der jeweiligen Karte.


    Zitat

    Dazu kommt dann noch was: Ich muss mit einer anderen Steuerung Daten (nur digitale Ein-/ Ausgänge) austauschen. Eine Beckhoff SPS (CX) sendet mir via DeviceNet die Daten an den Buskoppler, den ich mit der KRC2 bediene.
    Ich habe gerade leider nichts zum testen hier. Ich vermute mal, dass ich die Ein- und Ausgänge einfach "normal" nach den harware- Ein-/Ausgängen deklariere. Sie werden doch vermutlich dann nach den anderen Karten in den Bus "gelegt", oder? Ist das richtig so?


    Dieser Absatz ist inhaltlich ein bisschen wirr :kopfkratz: . Ein DeviceNet Buskoppler hängt an 1 Steuerung, entweder der KRC2 oder der CX. Was du brauchst ist entweder ein Gateway von Firmen wie Hilscher, esd, etc., oder am einfachsten du steckst dir irgend wo im E-Bus deiner CX-Steuerung eine DeviceNet-Slave Karte EL6752-0010. Letztere habe ich öfters für die KRC2 im Einsatz, funktioniert einwandfrei, und unterstützt alle DeviceNet-Modi. Tipp: Im TwinCAT Manager nicht einzelne Variablen anlegen & verknüpfen, sondern einen beliebigen Arraydatentyp in ausreichender Grösse festlegen, diesen im Zweig "Polling" bei den Ein- und Ausgangsdaten eintragen, und in der PLC deine Variablen in die beiden Arrays mappen, so musst du nicht immer im TwinCAT Manager Änderungen machen wenn mal noch eine Variable dazu kommt.


    Grüsse, APT

  • Hallo APT


    Entschuldigt meine späte Antwort.


    Um die Sache zu entwirren: Wie APT schon geschrieben hatte, ist es hier am Besten, eine DeviceNet- Slave- Karte an den CX zu hängen. Meine Frage war jetzt: Wie deklariere ich die Ein- und Ausgänge in der KRC? Nehmen wir mal an, ich hätte 8 Eingänge und 8 Ausgänge, die über das DeviceNet von der Beckhoff CX kommen. Werden diese Ein- und Ausgänge genauso deklariert als hätte ich einen kleinen Buskoppler an dem hardwaremäßig 8 Ein- und Ausgänge hängen würden? Die Doku der Beckhoff- DeviceNet- Karte hilft mir hier nicht weiter (oder ich sehe den Wald vor lauter Bäumen nicht).


    Wie gesagt, ich habe gerade kein System zum Testen hier, ich will mich nur schonmal vorbereiten.


    Danke Christian, aber ich weiß leider nicht, in welcher Doku ich suchen soll.


    Schönen Sonntag noch!


    Matthias

  • Hallo Matthias,


    Zunächst: Ich bin der gleiche "APT" wie oben, habe aber heute im Forum meine Email-Adresse auf GMAIL geändert, was dazu führte fass mein Account instantan blockiert wurde. :wallbash:
    Einer der Mod's ist verständigt, ich hoffe ich kann ab Morgen wieder meinen offiziellen Account nutzen. :hilfe:


    Im Fall der EL6752-0010 legst du bei der TwinCAT Konfiguration selbst fest, wie viele Bytes E/A Daten dieser Teilnehmer als DeviceNET Slave hat, dort gibst du auch die anderen Parameter wie DeviceNet Mac-ID & Baudrate an.


    In der KRC kannst du diesen Slave in der IOSYS.INI konfigurieren als wäre es ein Buskoppler, mit der entsprechenden Anzahl E/A Bytes wie im TwinCAT Manager eingestellt.


    Wenn du ein Beispielprojekt brauchst, kann ich dir gerne eines zumailen.


    Grüsse, APT

  • Hallo APT.


    Danke für die Hilfe.
    Es funktioniert also so, wie ich es schon vermutet (bzw. erhofft) hatte.


    Dann werde ich es auch alleine hinbekommen, Ein- und Ausgänge in der IOSYS.INI deklarieren habe ich schon öfter gemacht, ich war mir nur unsicher, wenn es sich um einen DeviceNet Master an einer CX handelt.


    Danke nochmal, ich melde melde mich mal, wenn es erfolgreich war. Dauert aber noch einige Tage, bis ich alles hier habe.


    Matthias

  • Da ich mehr oder weniger das gleiche setup habe klinke ich mich mal hier ein.


    In der io.sys habe ich folgendes stehen.

    Code
    [DEVNET]
    INB2=10,0,x24
    OUTB2=10,0,x24


    Wie kann ich jetzt in meinem Programm auf diesen Bereich zugreifen. Wenn ich eine Variable erzeuge muss ich die irgendwie zu diesem DeviceNet bereich verlinken? :hilfe:


    Ich habe auf einem anderen Roboter von uns ein Programm gefunden das enthält eine Variable. Diese Variable muss global sein, weil sie nicht in dem Programm selber definiert wurde.
    Wo kann ich diese noch Suchen?


    Die Hilfe und Google hat mich leider nicht weiter gebracht.


    Vielen Dank im Voraus!

  • Hallo Onikos,


    Gemäss Deklaration hängt an der MFC ein Devicenet-Teilnehmer mit je 24 Byte Ein- und Ausgangsdaten und der MAC-Adresse 10.


    Gemappt ist das ganze auf die Ein-/Ausgänge ab $IN[17] bzw. $OUT[17] (INB2, OUTB2).


    In der Regel werden die E/A Global in der Datei $CONFIG.DAT im Folder
    SYSTEM deklariert. Öffne diese Datei auf, und schau nach Deklarationen
    wie z. B.:


    SIGNAL diEingang17 $IN[17]
    oder
    SIGNAL diAusgang17 $OUT[17]
    oder
    SIGNAL diZahlenwert $IN[17] TO $IN[24]
    etc.


    Meist sind diese in einem FOLD versteckt.


    Gruss, APT

    APT Techniques GmbH<br />Software-Entwicklung für Roboter &amp; SPS.


  • Vielen Dank! Das habe ich gefunden und der beste Tip war auch noch das ich den Text ausklappen kann. Ich konnte bereits die Verbindung über DeviceNet aufbauen und Daten austauschen.
    Der einfachheit halber möchte ich das Programm im Büro schreiben und dann nur auf die Steuerung laden. Das funktioniert soweit und ich habe auch gelesen das ich es aus dem Kuka Navigator raus in R1 kopieren muss. Das funktioniert, jedoch wird keine .Dat Datei also die Datalist erstellt. Muss ich das irgendwo im Menü manuell machen? Kann es sein das ich ohne die Datalist keine Punkte erstellen oder anfahren kann?


    Vielen Dank nochmal,
    Grüß Niko

  • Stichwort "Filter"


    Dat wird unter Umständen nur nicht angezeigt. (Anzeigefilter)

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.


  • Stichwort "Filter"


    Dat wird unter Umständen nur nicht angezeigt. (Anzeigefilter)


    Doch die anderen .DATs werden angezeigt.
    Also sollten die DAT Datei generiert werden?
    Ich kann das Programm vom Office auch nicht, in ein am Roboter Controller erstelltes Programm kopieren.

  • Wenn "extern" ein SRC File erstellt und nach R1 kopiert wird, erstellt die KRC nicht automatisch ein DAT File dazu (nicht jede .SRC Datei benötigt ein .DAT -Pendant).
    -> Am besten ein anderes DAT-File kopieren & umbenennen. Achtung, wenn du das Kopieren des DAT-Files auch auf dem externen PC machst: der Dateiname steht auch nochmal im Header des DAT-Files, dort also auch anpassen.
    Gruss, APT

    APT Techniques GmbH<br />Software-Entwicklung für Roboter &amp; SPS.


  • Wenn "extern" ein SRC File erstellt und nach R1 kopiert wird, erstellt die KRC nicht automatisch ein DAT File dazu (nicht jede .SRC Datei benötigt ein .DAT -Pendant).
    -> Am besten ein anderes DAT-File kopieren & umbenennen. Achtung, wenn du das Kopieren des DAT-Files auch auf dem externen PC machst: der Dateiname steht auch nochmal im Header des DAT-Files, dort also auch anpassen.
    Gruss, APT


    Das hat geholfen! Danke
    Sorry für die ganzen Offtopic Fragen aber eine hätte ich da noch. :)


    Wenn ich einen Eingang in der Config.dat deklariere wie:


    SIGNAL di_Var $IN[17] TO $IN[32]


    und ich dann im Programm temp_di_Var = di_Var programmieren möchte.


    Welcher Datentyp muss temp_di_Var sein?
    Es gibt doch nur Real, Int, Char, und Bool in dieser Programmiersprache zur Auswahl.


    Real und Int funktioniert nicht und die anderen sind es nicht.


    Da stehe ich gerade voll auf dem Schlauch..
    Danke im Voraus :danke:

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden