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
Roboterschulung Online
Robot Support Forum
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Fehlermeldung an SPS

  • Robotman
  • March 14, 2020 at 1:58 PM
  • Thread is Resolved
  • Robotman
    Points
    270
    Trophies
    1
    Posts
    42
    • March 14, 2020 at 1:58 PM
    • #1

    Hallo,

    Ist es möglich wenn eine Meldung ansteht einen Ausgang an dies SPS zu senden?

    Wie kann ermittelt werden ob eine bestimmte Meldung ansteht?

    Grüße

  • Schritt für Schritt zum Roboterprofi!
  • ottosieben
    Reactions Received
    29
    Points
    2,984
    Posts
    575
    Occupation
    Servicetechniker im Ruhestand
    • March 14, 2020 at 2:30 PM
    • #2

    Moin,

    für etliche relevante Zustände (welche auch Meldungen absetzen können) gibt es Systemsignale. Diese können auch auf dem Bus in Richtung SPS abgebildet werden.

    Die Frage Deinerseits ist etwas ungenau. Was genau möchtest Du der SPS senden?

    never touch a running system

  • Robotman
    Points
    270
    Trophies
    1
    Posts
    42
    • March 14, 2020 at 2:42 PM
    • #3

    Die Meldungen sind ja über eine Nummer codiert. KSSxyz. Wenn nun genau eine bestimmte Meldung ansteht soll ein Ausgang gesetzt werden

  • SJX
    Reactions Received
    239
    Points
    11,434
    Trophies
    64
    Posts
    2,068
    • March 14, 2020 at 3:59 PM
    • #4

    So als Bsp.:

    Code
    DEF READMSGBUFFER ( )
    
    DECL MSGBUF_T BUFFER[150]
    INT N, MESSAGE_COUNT
    
    MESSAGE_COUNT = GET_MSGBUFFER (BUFFER[])
    FOR N=1 TO MESSAGE_COUNT
        IF (BUFFER[N].NR==1131) THEN
            $OUT[27]= TRUE
        ENDIF
    ENDFOR
    END
    Display More

    Muss halt noch richtig eingepflegt werden

    Gruss SJX

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

  • panic mode
    Reactions Received
    91
    Points
    3,536
    Trophies
    1
    Posts
    688
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • March 14, 2020 at 6:20 PM
    • #5

    oder in SPS etwa:

    Code
    $OUT[1] = ISMESSAGESET(666) ; KSS00666
  • K(A)RL
    Points
    1,360
    Posts
    268
    • March 23, 2020 at 11:34 AM
    • #6

    Hallo Robotman,

    schau mal in die Doku hier:

    https://kuka.sharefile.eu/d-sc4e8890ecb44f9e8

    Dort suchst Du nach "Automatik Extern".

    Gruß K(A)RL

    Im Real Life sind wir Mitarbeiter im Customer Support der KUKA Deutschland GmbH, haben also viel Erfahrung mit den hier besprochenen Produkten. Wir posten hier i.d.R. während unserer Arbeitszeit (wenn es die sonstige Arbeitsbelastung zulässt) und auch im Wissen von KUKA. Unsere hier getroffenen Aussagen sind Hilfestellungen für euch, allerdings keine offiziellen KUKA Stellungnahmen. Für tiefergehende und umfangreiche Problemstellungen, gibt der KUKA Support offizielle Aussagen.

  • Mammut
    Points
    15
    Posts
    3
    • March 23, 2020 at 2:59 PM
    • #7

    Hallo Robotman,

    mit der ERR_TO_PLC über die P00() kannst Du Ausgänge auf Fehlermeldungen setzen:

    hier die Beschreibung zur ERR_TO_PLC.


    Mittels des P00 Paketes kann eine Fehlernummer an eine überlagerte SPS ausgegeben werden, 

    hierfür muss die Datenliste P00.dat angepasst werden. 


    Diese Funktion stellt nur das Gerüst für eine Fehlerausgabe dar und muss vom Kunden komplett

    ausgefüllt und parametriert werden. 


    Für die Ausgabe der Applikationsfehler des P00 Paketes (Fehler beim Programmnummer Handshake) ist das Feld P[] bereits bis zur Nummer 28 vordefiniert. 

    Ebenso ist die Nummer 128 vordefiniert, als Ausgabe der Nummer 1 bei einem NOT-AUS, 

    da die Funktion im IR_STOPM.SRC bei einem Standardinterrupt aufgerufen wird. 


    Sollen weitere Steuerungsfehler ausgegeben werden, müssen diese manuell ergänzt werden. 


    Vorgehen zum Nutzen der Funktion: 

    1) Schritt: aktivieren der Funktion mit der Variable

    BOOL PLC_ENABLE=TRUE ; Enable error-code transmission to plc


    2) Schritt: Definieren des Ausgabebereiches (Fehler wird als Binärwert übertragen) 

    SIGNAL ERR $OUT[33] TO $OUT[40] 


    3) Schritt: Einstellen der maximalen Fehlernummer die später deklariert wird für die eine

    Feldvariable existiert. 

    INT MAXERR_C=234 ; maximum messages for $STOPMESS

    => Systemmeldungen werden von 128 - 255 deklariert (Aufruf über IR_STOPM.SRC) 


    INT MAXERR_A=20 ; maximum messages for APPLICATION

    => Applikationsmeldungen können bis 127 deklariert werden. 


    4) Definieren der Meldungsnummern, die ausgegeben werden sollen. 

    Es werden vom System nicht automatisch die Fehlernummer die im Display steht ausgegeben, dies muss über das Feld P[] alles manuell eingestellt werden. 


    Es besteht die Möglichkeit sich eigene Fehler zu generieren, hierfür ist das Feld

    DECL PRESET P[255] mit max. 255 einträgen deklariert. (= max. 8Bit Ausgabe auf Ausgänge) 


    Beispiel: 

    P[1]={OUT 14,PKG[] "XYZ",ERR 88} 

    hierbei gilt: 


    P[1] = fortlaufende Zahl des Feldes

    OUT 14 = Wert auf den die Ausgangssignal gesetzt wird SPS bekommt eine 1 als Anzeige

    PKG[] "YXZ" = Name des Programms der im Meldungsfenster angezeigt wird, das die Meldung

    sendet. ( muss beim Meldungs senden im Wert MSG_T: MODUL[] = "YXZ" 

    angegeben sein) 

    ERR 88 = Meldungnummer die vom Programm gesendet wurde bzw. aus dem Meldungsfenster ausgelesen wurde. 


    Beispiel 1: 

    Der Fehler "Stellgrösse soll mit der Nummer 153 angezeigt werden

    ; CTL:126

    ; STELLGROESSE XXXX

    P[129]={OUT 153,PKG[] "CTL",ERR 126} 


    Beispiel 2: 

    Eine Applikationsfehler 5 im Programm TEST soll mit 18 angezeigt werden

    P[5]={OUT 18,PKG[] "MEL",ERR 5} 


    Der Aufruf der Funktion aus einem anderen Applikationsprogramm dann: 

    Im Deklarationsteil muss folgendes deklariert sein: 

    DECL CHAR ID[3] 


    Setzen der Fehlerausgänge auf den Wert 18 für die Meldung 5 

    ID[]="MEL" 

    P00 (#EXT_ERR,#PGNO_GET,ID[], 5 ) 

    HALT 


    Zum Löschen der Ausgänge nach Restart: 

    P00 (#EXT_ERR,#PGNO_GET,ID[],0 ) 


    Grüße Mammut

  • der_max89
    Reactions Received
    4
    Points
    164
    Posts
    27
    • November 23, 2021 at 4:01 PM
    • #8

    Hallo zusammen,

    unsere Anlage wird später mit nur 4 Smartpads ausgeliefert. Wir haben allerdings 12 Roboter verbaut.

    Besteht die Möglichkeit alle Systemfehler, welche am Smartpad angezeigt werden 1 zu 1 an die SPS weiterzuschleifen??? Damit man eben kein Smartpad anstecken muss um zu sehen welcher Fehler anliegt....

    Vielen Dank euch schon mal :)

  • panic mode
    Reactions Received
    91
    Points
    3,536
    Trophies
    1
    Posts
    688
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 25, 2021 at 3:27 PM
    • #9

    es gibt KRmsgNet option oder wie beschrieben, Meldungpuffer auslesen oder mir ISMESSAGESET() auswerten...

  • der_max89
    Reactions Received
    4
    Points
    164
    Posts
    27
    • November 25, 2021 at 9:17 PM
    • #10
    Quote from K(A)RL

    Hallo Robotman,

    schau mal in die Doku hier:

    https://kuka.sharefile.eu/d-sc4e8890ecb44f9e8

    Dort suchst Du nach "Automatik Extern".

    Gruß K(A)RL

    Hey K(A)RL,

    die Seite sagt mir, dass der Link nicht vorhanden ist (ungültiger Aufruf).

    Hast du zufällig noch ein aktuelles Dokument mit funktionierenden Link?

    Gruß Max

  • panic mode
    Reactions Received
    91
    Points
    3,536
    Trophies
    1
    Posts
    688
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 25, 2021 at 10:07 PM
    • #11

    KUKA hat Xpert portal fuer so was.

  • der_max89
    Reactions Received
    4
    Points
    164
    Posts
    27
    • November 25, 2021 at 10:22 PM
    • #12
    Quote from panic mode

    KUKA hat Xpert portal fuer so was.

    Ja habe da jetzt auch nen Beispielprogramm für GET_MSGBUFFER gefunden.

    Werde ich mir morgen mal genauer anschauen.

    Vielen Dank schonmal

    Gruß Max

  • panic mode
    Reactions Received
    91
    Points
    3,536
    Trophies
    1
    Posts
    688
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 25, 2021 at 10:44 PM
    • #13

    oder so was...

    Beachte... KUKA hat Speicher fuer 100 Meldungen reserviert.

    100x32bit = 3200bit ist viel.... da meiste Fehler Meldungen unter 30000 liegen

    habe ich jede NR auf 16-bit beschraenkt (0-32767 soll ganz schoen reichen)

    1600bits ist immernoch 200 bytes.

    Andere Option ist zB nur 20 Meldungen uebertragen. Naja...

    MELDERZ.SRC

    Code
    DEF melderz( )
    decl int i, j,k,count, anfang
    decl msgbuf_t meld[100]
    
    anfang = 2000 ; first output of 1600 used (100*16)
    count= get_msgbuffer(meld[])
    for i= 1 to 100 ; jede Meldung
     for j=0 to 15  ; auf 16 Ausgange uebetragen
      if i<=count then
        $OUT[anfang+(i-1)*16+j]=(meld[i].nr B_AND mask(j))<>0
      else
        $OUT[anfang+(i-1)*16+j]=FALSE ; alt wird geloescht
      endif
     endfor
    endfor
    END
    
    DEFFCT int Mask(bit:in)
    DECL INT bit
      Switch bit
      Case 0
        return 1
      Case 1
        return 2
      Case 2
        return 4
      Case 3
        return 8
      Case 4
        return 16
      Case 5
        return 32
      Case 6
        return 64
      Case 7
        return 128
      Case 8
        return 256
      Case 9
        return 512
      Case 10
        return 1024
      Case 11
        return 2048
      Case 12
        return 4096
      Case 13
        return 8192
      Case 14
        return 16384
      Case 15
        return 32768
      Default
        return 0
      endswitch 
    ENDFCT
    Display More

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 autonome mobile Roboter von 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

Similar Threads

  • Linear-KS und Roboter-KS stimmen nicht überein

    • irProgrammierer
    • February 21, 2020 at 11:56 AM
    • ABB Roboter
  • Verbogene Schnüffelspitze über aktuelle Robipos und Lichttaster auslesen

    • Robonator
    • March 4, 2020 at 11:44 AM
    • KUKA Roboter
  • Linearachse einrichten

    • niklas
    • February 19, 2020 at 10:21 AM
    • KUKA Roboter
  • Smart HMI Fehler

    • padostms
    • January 16, 2020 at 9:22 AM
    • KUKA Roboter
  • Fehlermeldung: KSS22678 Abwahl nur bei aktiver Spline-Interpolation möglich

    • lomker
    • August 29, 2017 at 8:34 PM
    • KUKA Roboter

Tags

  • Meldung
  • KSSxyz an SPS
  • PGNO_GET
  • EXT_ERR

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