Roboter -> "Real" Koordinaten -> SPS (via CP5614)

  • Hallo Leutz,


    ich habe ein problem und weiß nicht was ich falsch mache.
    Problem: kontunuierliches senden einer Real Zahl zur SPS :nocheck: :wallbash:


    -----------------------------------------------------------
    iosys.ini :


    [PBMASL]
    indw10=127,0x1 ;$in[81-112]
    indw14=127,0x1 ;$in[113-144]


    outdw10=127,0x1 ;$out[81-112]
    outdw14=127,0x1 ;$out[113-144]
    ----------------------------------------------------------
    ----------------------------------------------------------
    sps.sub :


    Declarations
    INI


    Loop


    ....
    ....
    sps_tool()


    ENDLOOP
    ------------------------------------------------------------------
    ------------------------------------------------------------------
    sps_tool.dat :


    DEFDAT sps_tool PUBLIC
    DECL GLOBAL REAL AX_X = 0
    DECL GLOBAL REAL AX_Y = 0


    DECL GLOBAL REAL outAX_X = 0
    DECL GLOBAL REAL outAX_Y = 0
    ENDDAT
    --------------------------------------------------------------------
    -------------------------------------------------------------------
    sps_tool.src :


    SIGNAL outAX_X $out[81] to $out[112]


    outAX_X = 35
    -------------------------------------------------------------------




    Die Wert Zuweisung sollte natürlich nicht im Roboter Ablauf gemachtwerden, daher die SPS.sub .
    die 35 habe ich auch in der SPS jetzt stehen, aber wenn ich den Wert ändere passiert nichts. :denk: :huh:


    was mache ich falsch bzw was habe ich übersehen....? :denk:


    würde mich über eure hilfe freuen....

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


    der Grund warum du sich der Wert nicht ändert ist das mit jedem SPS.SUB-Zyklus

    Code
    outAX_X = 35

    gesetzt wird. Also jede Änderung des Wertes outAX_X wird sofort mit 35 überschrieben.


    Gruß
    notime

    Kontrolle ist eine Illusion, denn niemand weiss was als nächstes passiert.

  • hallo notime ,


    ich schreibe den wert 35 zum testen.
    wenn ich aber in den editor von "sps_tool.src" wechsel und dort zb 10 rein schreibe und speicher,
    kommt der werd nicht mehr in der SPS an. Das er die 35 geschrieben hat war irgend wie nur eine einmalige sache. :denk:

  • Schreib mal


    Config.dat


    SIGNAL outAX_X $out[81] to $out[112]
    Decl Int outAX_X = 35


    Dies hier


    sps_tool.dat :


    DEFDAT sps_tool PUBLIC
    DECL GLOBAL REAL AX_X = 0
    DECL GLOBAL REAL AX_Y = 0


    DECL GLOBAL REAL outAX_X = 0
    DECL GLOBAL REAL outAX_Y = 0
    ENDDAT
    --------------------------------------------------------------------
    -------------------------------------------------------------------
    sps_tool.src :


    SIGNAL outAX_X $out[81] to $out[112]


    outAX_X = 35


    lass mal weg.


    Wenn du jetzt über Anzeige--Variable--Einzeln--outAX_X änderst, muss an der SPS ein anderer Wert ankommen. In der Config.dat steht dann dein geänderter Wert drin.


    Wenn das klappt, kannst du in der Sps.sub deinen outAX_X beschreiben.


    MfG

  • Stethi:


    wenn ich den wert jetzt in der Variablen anzeige ändere kommt er in der SPS richtig an. :danke:


    aber dafür ist jetzt das sps_tool.src und *.dat rot makiert.
    Fehler: "DEFDAT" sps_tool PUBLIC -> ist nicht erlaubt.


    oh ich habe glaub ich den 2.teil von die Falsch verstanden. so wie du sagst geht es.


    ist eigendlich die Variable outAX_X jetzt global? wenn ja warum das denn?

    Einmal editiert, zuletzt von Tommy ()

  • Ja. Alles in der Config.Dat ist global deklariert.


    SIGNAL outAX_X $out[81] to $out[112] --> Sobald sich outAX_X ändert, werden die Ausgänge automatisch beschrieben.Du musst das nicht noch irgendwo im Programm machen.
    Decl Int outAX_X = 35 ist jetzt global durch die config.dat. durch =35 wird der Wert gespeichert.


    Dein sps_tool.src und *.dat brauchst du nicht.



    :ylsuper:

  • In der Sps.Sub oder irgendwo im Programm kannst du



    outAX_X==A+B oder irgendwas machen.


    Wenn in der SPS.Sub, dann wird es zyklisch gemacht,wenn im Programm, dann nur, wenn du diesen Befehl ausführst.



    :beerchug:

  • :grinser043: :danke:


    jetzt muß ich das nur noch rumdrehen bzw. von der SPS koordinaten an den Roboter schicken.
    das sollte ich aber in der SPS.sub machen, da es zyklisch bzw mit einem Handshake machen sollte ( Koordinaten anfordern....übergabe......Übergabe bestätigen.... )


    :uglyhammer_2: ein Lehrgang währe nicht schlecht!!!! :kopfkratz:


    danke trotzdem allen erstmal an dieser stelle :blumen:



  • Schau mal ]http://www.kuka-robotics.com/germany/de/college/cs/certified/]


    http://www.kuka-robotics.com/g…/de/college/cs/certified/

    Einmal editiert, zuletzt von Stethi ()

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