Array über Profibus von KRC1 an SPS (S7 1200) senden

  • Guten Morgen,


    meine Roboter (Master) spricht derzeit über Profibus mit einem Siemens DP-Modul (ET 200 SC; Slave).
    Da ich für meine sonstige Peripherie bereits eine S7 1200 im Einsatz habe, möchte ich diese anstelle der ET 200 SC für Ein/Ausgangsbelegung des Roboters benutzen. Hierfür habe ich das Kommunikationsmodul CM 1242-5 für die SPS bestellt. Ich denke die Einbindung dieses Moduls anstelle des ET 200 SC sollte ich auch als Maschinenbauer hinbekommen aber ich hätte eine etwas speziellere Frage zum Profibus. Auf dem Gebiet bin ich echter Einsteiger.


    Für den oben beschriebenen Fall werden ja einzelne Ein- und Ausgangsbits zwischen Roboter und SPS gesendet. Dafür kapier‘ ich auch die Belegung in der PBMASL.ini.


    Nun zur Frage: Ich möchte über Profibus ein Array welches in meinem .dat-file liegt an die SPS senden, dort ggf. verändern und zurücksenden zum Roboter. Wie löst man so etwas über den Profibus? DIe Daten sind ja nun keine einzeln Bits mehr sondern ganze Werte, Zeilen, Spalten.....
    Was ich bräuchte sind ein paar Denkanstöße z.B. welche Zuweisungen ich in der PBMASL.ini treffen muss, oder wie dann das senden der Daten im Roboterprogramm aussehen könnte.
    Vielen Dank.


    Gruß
    Tom

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Robo_Tom,
    könntest Du bitte ein aktuelles Archiv deiner Steuerung posten mit Angabe der Softwareversion.
    Weiter den Typ der Profibuskarte (Hast Du tatsächlich noch eine IM180 drin wenn Du redest von PBMASL.ini)
    Wenn Typ nicht sichtbar, mindestens ein Photo der Blende und von PC-Rückseite.
    Bei alten KRC1 Steuerungen, die keine 5614 Profibuskarte schon am laufen haben ziehe ich persönlich eine Lösung via Gateway DeviceNet / Profibus vor. KRC1 wie PLC als Master , Gateway beidseits als Slave.
    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Guten Abend. Ich habe heute den ganzen Nachmittag versucht den KUKA mit oben genannter SPS reden zu lassen. Leider vergeblich. Für meine S7 1200 hab ich mir das CM 1242-5 Modul (Profibus Slave) besorgt, aber es will einfach keine Verbindung zustande kommen. Muss ich ggf noch irgendwelche Werte (Übertragungsrate etc) abgleichen? Wer hat einen Tipp?


    Die oben verlangten Bilder habe ich angehängt.


    Gruß Tom

  • Hallo Robo_tom,
    Hast Du ein Projekt mit ComProfibus oder den Siemens Hardwaremanager erstellt? Wenn eine IM180 verbaut, download ausgeführt?
    Profibus.ini oder pfbms.ini bearbeitet? was eingetragen?
    iosys.ini Treiber aktiviert und mapping erstellt? Keine Überschneidungen?
    E/A Rekonfiguration durchgeführt?
    Hast Du eine Anleitung?
    Gruss SJX
    Ps: Mit dem Edge Browser kann ich aktuell auch nichts attachen. Mit dem Internet Explorer geht's über "add Attachment" links unter Feld "Drop files here"

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • [size=2]Guten Morgen SJX,[/size]
    [size=2]InternetExplorer geht leider auch nicht :-([/size]
    [size=2]Ich hatte ja zuvor schon eine Verbindung mit dem E/A Modul ET 200 SC über die Profibusschnittstelle. Diese Hatte die Adresse 5. Um so wenig wie möglich verstellen zu müssen habe ich dem CM-1242-5 (Profibusmodul SPS , Slave) auch die 5 über TIA Portal gegeben. Natürlich das andere Modul dann abgesteckt, ist klar ?[/size]


    [size=2]Iosys.ini habe ich dahingehend angepasst, dass ich in der SPS erst ab Byte 70 adressieren will
    So etwa:
    INB0=5,70x2
    OUTB0=5,70x2[/size]


    [size=2]Treiber ist aktiviert ( Strichpunkt entfernt) und hatte zuvor ja schon mit dem anderen Modul gearbeitet.
    Muss ich sonst irgendwelche Parameter oder Daten außer die IOSYS.ini ändern?[/size]
    [size=2]Im TIA Portal habe ich dann noch meine Bereiche (ab Byte70, Länge 2Byte) eingegeben.
    Aber die Error-Leuchte geht nicht aus.
    [/size]


    [size=2]Ich glaube ich hatte in einem anderen Forum gelesen, dass es evtl. unmöglich sein könnte eine CPU als Slave am Roboter-Master über Profibus anzumelden? Weiß da jemand näheres?[/size]


    [size=2]Da meine SPS auch ein ASI-Master ist, hätte ich noch die Möglichkeit ein ASI/Profibus-gateway einzusetzen.
    Gruß
    Tom
    [/size]

  • So einfach geht das nicht. Hast Du irgendwelche Erfahrungen mit Profibus?
    Jedes Gerät bei Profibus hat eine eigene Gerätebeschreibungsdatei (*.gsd).
    Mit dieser erstellst Du eine Hardwarekonfiguration wie Dein Busaufbau aussieht, mit welcher Baudrate Du fährst, den Adressen der Teilnehmer wie auch den Adressbereich. Diese wird dann auf den Master geladen.
    Einfach ein anderes Modul anzustecken ohne Änderung dieser Konfiguration und Implementierung der *.gsd des neuen Moduls wird nicht funktionieren.
    Zur iosys.ini:
    Du liest / schreibst topologisch das Modul von vorne an, sprich, Dein Offset müsste ab 0 losgehen. Wie es die SPS danach betrachtet, sollte auf unserer Seite egal sein.
    Je nach Softwarestand der KRC musst Du das Mapping aber noch nach alten Richtlinien machen. Bitte poste mindestens diese!!!


    Rate Dir wenn schon zu Gateway DeviceNet / ASI, da der DeviceNet Master der KRC einfacher ist in Betrieb zu nehmen. Hast Du mit ASI Erfahrung?


    Wenn Du keine Daten direkt ins Forum stellen kannst, lade das ganze hoch auf irgendeine Share-Plattform und poste den Link hier.


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • ah jetzt gehts mit den Bildern.....
    Also mit ASI hab ich schon viel Erfahrung, ist bei mir schon 2 Jahre an der SPS im Einsatz.
    Profibus ist für mich neu. Von einer GSD-Datei habe ich bisher nichts gehört. Wo finde ich den diese?
    Wenn ich spatter am Roboter bin, kann ich die Systemdaten noch genauer posten....
    Kannst du auf den Bildern irgendwas erkennen, was weiterhilft? Auf einem Bild hab ich das Buskabel abgesteckt.
    Vielen Dank schonmal
    TOM

  • Da ich meine S7 jetzt auch mit in dem Schaltschrank habe wo das bisherige E/A Modul des Roboteres hängt, könnte ich auch direkt verdrahten für die einfachen Sachen zB. Greifer, Automatik Extern etc...(SPS----->E/AModul------>Robotersteuerung). Allerdings war mein anfängliches Anliegen ja auch, dass ich Daten (ein Array mit Koordinaten) zum Roboter senden möchte. Sowas geht ja nur über den Bus oder?
    Gruß
    TOM

  • Du hast eine Siemens CP5614 drin.
    Für Zellaufbauten in Deinem Umfang wäre das Beste, wenn Du wirklich Profibus verwenden willst, den Slave-Teil des Roboters zu verwenden (2. Anschluss unter Winkelstecker) und die SPS als Master zu nehmen und die Projektierung da zu machen. Ist der Standard.Deine SPS müsste dann aber Profibus-Master tauglich sein und du müsstest da auch eine Hardwareprojektierung kennen und machen mit der S0100008.gsd Datei der cp5614. Zu finden müsste die auf der Steuerung zu sein.
    Beispiel mit V2.3.24sp08 16Byte I/O ab i/o 1
    Hiesse, pfbms.ini
    [SLAVE]
    MODUL_USED=0 ; mit 1 aktivieren
    MODUL_ADDRESS= ; hier Adresse vergeben
    ;START_TIME=20
    ERROR_ACTION=1
    CHECK_CONFIGURATION_DATA=0
    ACCEPTABLE_INPUT_LENGTH=244
    ACCEPTABLE_OUTPUT_LENGTH=244
    IO_DATA_BASE=0
    CONSISTENCE=0
    iosys.ini:
    [DRIVERS]
    PBMASL=11,pbmsInit,pfbmsdrv.o
    [PBMASL]


    INB0=127,0,x16 ;slave modul Profibus mit fixer interner Adresse 127, Eingang 1-128
    OUTB0=127,0,x16 ;slave modul Profibus mit fixer interner Adresse 127, Ausgang 1-128
    E/A Rekonfigurieren


    damit lassen sich einzelne Signale austauschen.
    Signalgruppen, zum Bsp. mit länge 16 (1 Word), müssen zuerst deklariert werden.
    Globale Signalvereinbarungen deklariert man in der config.dat.
    SIGNAL iX_Value $IN[1] TO $IN[16]
    SIGNAL iY_Value $IN[17] TO $IN[32]
    SIGNAL iZ_Value $IN[33] TO $IN[48]
    SIGNAL i $IN[97] TO $IN[104]


    Arrays in .dat Listen direkt beschreiben kannst Du nicht.
    Du musst sie über Zuweisungen in die Arrays im Programmablauf reinschreiben.
    in .prg
    myarray[i].x = iX_Value
    myarray[i].y = iY_Value
    ....
    ....



    Natürlich kannst Du verdrahten von Deiner SPS auf bestehendes Modul.
    Kannst mit deinen wenigen I/O alles Byte für Byte rüberschreiben mit neuer Anforderung. Bei wenigen Werten kein Problem.
    Ist natürlich viel effektiver, wenn man x,y,z,a,b,c auf einmal anstellen kann und dies gleich für 10 Positionen (bei 16Byte 960 Eingänge bei Bus kein Problem.)
    - Handling und Nachkommastellen gehen nicht direkt. Vielmals sps seite x100 - senden KRC seite geteilt durch 100. +- handeln über das MSB der 16 Byte.
    Zu einzelnen Problematiken findest Du auch Infos schon im Forum.


    Also, überlege Dir gut, wie Du diesbezüglich weiterfahren willst. Dein Kauf des Slave-Moduls SPS Seitig war meiner Meinung nach nicht klar durchstudiert. Beorge dir Dokus, wo du angaben findest über die Konfigurierung oder organisiere eine Person, die Dir die wichtigsten Dinger einrichtet.


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Guten Morgen,


    So ich habe nun.


    1. SPS mit dem Profibus-Master ausgestattet


    2. Den Roboter als Slave angestöpselt


    3. Die .gsd aus dem Internet besorgt und im TIA Portal importiert


    4. pfbms.ini : [SLAVE] mit MODUL_USED=1 aktiviert (und Master deaktiviert)


    5. iosys.ini: zunächst mal für ein Byte konfiguriert.


    INB0=127,0,x1


    OUTB0=127,0,x1


    6. Im TIA-Portal meinem KUKA die Adresse 0 zugeordnet (siehe Bild)




    RESULTAT: Es funktioniert noch nicht so wirklich.


    So wie es aussieht sind Master und Slave einwandfrei verbunden. Keines der Geräte zeigt einen Busfehler an.


    So wie ich das projektiert habe müsste doch jetzt mein Bit 0.0 in der SPS den Eingang 1 in der Roboteranzeige aufleuchten lassen oder? Tut es nämlich nicht.


    Muss ich noch etwas beachten? Übertragungsgeschwindigkeiten oder ähnliches festlegen?


    Gruß


    Thomas

  • Den Eintrag
    MODUL_ADDRESS= xx ; hier Adresse vergeben z.Bsp. xx=3
    und
    iosys.ini:
    [DRIVERS]
    PBMASL=11,pbmsInit,pfbmsdrv.o ; Strichpunkt vorne wegmachen !!
    auch gemacht? Fehlt in der Kurzbeschreibung was Du alles gemacht hast.
    Dann könnte evtl. noch das Ändern der E/A-Baugruppe von "1Byte Eingang" + "1 Byte Ausgang" auf
    "Universalmodul" funktionieren, die alten Dinger waren da manchmal etwas komisch.

  • Es funktioniert!!!
    Der entscheidende Tipp kam aus dem SPS Forum:
    Man muss in SPS und Roboter Eingänge und Ausgänge verdreht projektierten.
    Ist ja auch logisch die Ausgänge der SPS sind die Eingänge des Roboters.

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