1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos autonome mobile Roboter von KUKA
besuche unseren Hauptsponsor
Roboterprogrammierer
Robot Support Forum
Werbung schalten Roboter
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Mehrere Ausgaben mit SWRITE

  • BobRob
  • January 31, 2014 at 3:54 PM
  • Thread is Resolved
  • BobRob
    Points
    110
    Posts
    18
    • January 31, 2014 at 3:54 PM
    • #1

    Hallo ich habe leider folgendes Problem.

    Ich möchte mehrere Textausgaben ins Meldungsfenster des KCP senden.
    Hierzu haben ich mehrere SWRITE benutzt.
    Leider wird immer nur die letzte SWRITE Anwendung auch Angezeit.
    Ich möchte diese nachher aus den LogDatein auslesen. Mir ist also bewusst, dass die Meldungen nicht lange zu lesen sind.

    Der Code sieht wie folgt aus:
    (Ist nur einer von mehreren Interrupts, die aber alle ähnlich ablaufen)

    Code
    GLOBAL DEF ARBEITSZEIT_OFF ()
    INTERRUPT OFF 2
    
    
    
    
    ;-Timer stoppen-
    $TIMER_STOP[I_TIMER_AZ]=TRUE
    
    
    $TIMER_STOP[I_TIMER_SS]=TRUE
    
    
    $TIMER_STOP[I_TIMER_WZ]=TRUE
    
    
    $TIMER_STOP[I_TIMER_TKZ]=TRUE
    
    
    ;-Wert sichern-
    R_ARBEITSZEIT=($TIMER[I_TIMER_AZ]/60000.0)
    
    
    ;-Arbeitszeit ausgeben-
    IF B_AUSGABE_AZ THEN
      $LOOP_MSG[]="                                                                             "
      OFFSET=0
      SWRITE ($LOOP_MSG[],STATE,OFFSET, "Arbeitszeit = %#5.2f Minuten", R_ARBEITSZEIT)
    
    
    ENDIF
    
    
    ;-Taktzeitkonto ausgeben-
    IF B_AUSGABE_AZ THEN
      $LOOP_MSG[]="                                                                             "
      OFFSET=0
      SWRITE ($LOOP_MSG[],STATE,OFFSET, "Taktzeitkonto = %#5.2f Sekunden", RTZ_KONTO)
    
    
    ENDIF
    
    
    INTERRUPT ON 1
    END
    Display More

    Die Variablen sind global. Ich habe das Programm erweitert, also nicht komplett selber geschrieben.
    Hängt das ganze etwa mit dem $LOOP_MSG[] zusammen? :denk:
    Vielen Dank schon mal für eure Hilfe

  • Schritt für Schritt zum Roboterprofi!
  • Hermann
    Reactions Received
    164
    Points
    12,629
    Trophies
    8
    Posts
    2,371
    Location
    Baden-Württemberg
    • January 31, 2014 at 4:14 PM
    • #2

    1. Am Anfang interrupt off 2, am Ende Interrupt on 1. Ist das Absicht? Dürfte aber nicht das Problem sein.

    2. Vermute mal, dass das System etwas Zeit braucht um den Inhalt von $Loop_msg[] auszuwerten und zum Windows zu übertragen, wenn man den Inhalt zu schnell ändert, dann geht das verloren. Also testweise mal eine kurze Wartezeit zwischen den beiden Zuweisungen reinbauen.

  • SJX
    Reactions Received
    238
    Points
    11,403
    Trophies
    64
    Posts
    2,062
    • January 31, 2014 at 5:15 PM
    • #3

    Hallo BobRob,

    $LOOP_MSG[]=" "

    dies löscht die letzte Ausgabe mit $LOOP_MSG[].
    Und zwar soviel Zeichen wie Leerschläge. Rest bleibt stehen.

    SWRITE ($LOOP_MSG[],STATE,OFFSET, "Taktzeitkonto = %#5.2f Sekunden", RTZ_KONTO)
    Aber auch ohne überschreibt Dir die Zweite die erste Ausgabe.
    Wäre die erste länger als die zweite, würdest Du den Rest noch sehen.

    Es wird alles in der gleichen Zeile gehandhabt.
    Zweite Message gibt nicht neue Zeile.

    Grus SJX

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

  • BobRob
    Points
    110
    Posts
    18
    • February 3, 2014 at 3:58 PM
    • #4

    Also schon mal vielen Dank für die Antworten.

    Quote from Hermann


    1. Am Anfang interrupt off 2, am Ende Interrupt on 1. Ist das Absicht? Dürfte aber nicht das Problem sein.

    Ja das ist wirklich mit Absicht das sind 2 verschachtelte Interrupts

    Quote from Hermann


    2. Vermute mal, dass das System etwas Zeit braucht um den Inhalt von $Loop_msg[] auszuwerten und zum Windows zu übertragen, wenn man den Inhalt zu schnell ändert, dann geht das verloren. Also testweise mal eine kurze Wartezeit zwischen den beiden Zuweisungen reinbauen.

    Das mit den Wartezeiten hat funktioniert! Das ist ja schon mal ein Anfang. Allerdings musste ich Wartezeiten von 0,2 sek einbauen. Die beeinflussen natürlich erheblich den Takt.

    Gibt es eine Möglichkeit das vlt anders zu regeln? Ein anderes Array als $Loop_msg zu nehmen wird nicht funnktionieren denke ich mal oder?

    Ich habe auch schon überlegt den Text einfach anzuhängen, quasi beide Meldungen als eine auszugeben. Das müsste ja gehen, wenn ich den Offset einfach nicht zurück setze. Aber das würde auch nicht klappen, da ich die Log Datein nachher mit Matlab auswerte und sich pro Zeile nur eine Zahl befinden darf.

    Quote from SJX


    Zweite Message gibt nicht neue Zeile.

    Gibt es denn die Möglichkeit diese zu erzeugen? dann hätte ich auch mein Matlab Problem nicht mehr

  • Hermann
    Reactions Received
    164
    Points
    12,629
    Trophies
    8
    Posts
    2,371
    Location
    Baden-Württemberg
    • February 3, 2014 at 4:13 PM
    • #5
    Quote from BobRob


    ..
    Ich habe auch schon überlegt den Text einfach anzuhängen, quasi beide Meldungen als eine auszugeben. Das müsste ja gehen, wenn ich den Offset einfach nicht zurück setze. Aber das würde auch nicht klappen, da ich die Log Datein nachher mit Matlab auswerte und sich pro Zeile nur eine Zahl befinden darf.
    ..


    Kenne Matlab jetzt nicht so genau, kann mir aber überhaupt nicht vorstellen, daß das soo unflexibel sein soll, daß man da nicht mehrere Zahlen aus einer Zeile einlesen können soll. :denk:

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • EXT
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
AD
Your browser does not support videos Automatisierung im Handwerk - ich schaffs mit KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • 5

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download