Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: B&R: Zugriff auf Globale Variablen innerhalb einer Funktion

  1. #1
    Registriert seit
    14.07.2011
    Beiträge
    26
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich wollte gerade folgendes Ausprobieren: Einen Ringpuffer in den ich bequem per Funktionsaufruf eine Nachricht reinschreibe. Parallel dazu wollte ich in einem Task zyklisch nachschauen sind Nachrichten da, wenn ja schick die an einen Syslog-Server. Also z.B. so

    Code:
    if ( foo <= 0) then
        logmsg("Help, we're all out of foo's")
    endif
    Ich hab mir dann unter Datentypen eine Struktur erstellt:

    Code:
    typedef struct logmsg_s {
        unsigned short idx;
        plcstring message[20][256]
    } logmsg_s;
    Ich hab das jetzt per Automation Basic und mit C probiert, aber beim kompilieren sagt der mir immer das er die Struktur nicht kennt. An der B&R Hotline sagte man mir das ich logischerweise noch eine globale Variable definieren muss. Also eine globale Variable deklariert, kein Erfolg. Im Library-Manager die Variable als VAR_DYNAMIC hinzugefügt, auch kein Erfolg. Im Handbuch wird das auch nirgens gescheit erklärt oder ich bin zu doof dazu. Vielleicht ist mein Ansatz für die Lösung auch falsch, keine Ahnung. Ich hoffe jemand von euch kann mir den Schubs in die richtige Richtung geben.

    Gruß,
    Marco
    Zitieren Zitieren B&R: Zugriff auf Globale Variablen innerhalb einer Funktion  

  2. #2
    Leuchtkeks ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2011
    Beiträge
    26
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Per Library-Manager hab ich das jetzt ungefähr so hinbekommen, nur muss ich der Funktion einen Pointer für meine Struktur übergeben. Ich bin aber faul, also hab ich das ganze nochmal direkt im Task gemacht und dort die Funktion reingeschrieben und den Funktions-Prototyp in eine .h-Datei gepackt. Wenn ich jetzt aber in einem anderen Task die Funktion aufrufen möchte sagt der mir immer "undefined reference", obwohl der include richtig ist.

  3. #3
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    hi, funktionen von einem task in anderen tasks aufrufen geht net. da muss eine library her....bgbb

  4. #4
    Leuchtkeks ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2011
    Beiträge
    26
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    muh, das hab ich mir doch fast gedacht, auch wenn das im Handbuch so nicht direkt beschrieben ist

  5. #5
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das Problem ist, dass der Linker nicht weiß wo sich deine Funktion befindet.
    Der einfachste Weg ist eine Library, alternativ kannst du es auch mit einem Funktionspointer lösen.

Ähnliche Themen

  1. externer Zugriff auf globale Variablen
    Von patti_9000 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 28.02.2013, 07:54
  2. Zugriff auf OPC Variablen
    Von mariobc im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 10.10.2011, 19:33
  3. B&R AS 2.7 Globale Variablen & Watch Fenster
    Von Lemiras im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 28.06.2010, 18:36
  4. Zugriff auf Temporäre Variablen eines FC
    Von Fluffi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.05.2009, 07:52
  5. Antworten: 2
    Letzter Beitrag: 03.04.2006, 07:05

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •