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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: CoDeSYS Unterprogramme VAR übernehme?

  1. #1
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    CoDeSYS und WAGO 750

    Habe das Hautprogramm in Unterprogramme zerlegt und nehem die Signalausgänge mit in die anderen Unterprogramme ... Jetzt kommen Fehlermeldungen ...

    Wie übernehme ich die Signalausgänge in die anderen Unterprogramme?!

    Beispiel: Aufgang Blinker_1.Q gibt einen Melderimpuls und befindet sich im Unterprogramm BLINKER(PRG)

    Soll auch im PLC_PRG(PRG) verfügbar sein .... wie geht?
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac
    Zitieren Zitieren CoDeSYS Unterprogramme VAR übernehme?  

  2. #2
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard

    Hallo,

    sollte eigentlich Funktionieren wenn du den Aufruf im PLC_PRG mit BLINKER.Blinker_1.Q machst.

    Gruß

  3. #3
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    ne ist nicht so, jedes Unterprogramm hat seine eigene VAR Deklaration.

    Fehler 4001: Tech_Tast (6): Variable 'BLINKER_1' nicht deklariert

    Da die Variablen Deklaration nur im Program 'Blinker' vorhanden ist.
    Kann es aber nirgend umtellen und die VAR steht auf Globale_Variable.

    Wenn ich die per Hand auch in die anderen Unterprogramme Eintrage?!
    Kann aber nicht normal sein oder?

    PROGRAM Blinker
    VAR
    Blinker_1: TP;
    Blinker_2: TP;

    Hilfe!
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.311
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Zitat Zitat von Michael68 Beitrag anzeigen
    Fehler 4001: Tech_Tast (6): Variable 'BLINKER_1' nicht deklariert

    Da die Variablen Deklaration nur im Program 'Blinker' vorhanden ist.
    Kann es aber nirgend umtellen und die VAR steht auf Globale_Variable.

    Wenn ich die per Hand auch in die anderen Unterprogramme Eintrage?!
    Kann aber nicht normal sein oder?
    Wenn Du die Variablen in den Ressourcen "Globale Variablen" einträgst, dann sind sie allen Unterprogrammen bekannt.
    Wenn Du sie im Unterprogramm als VAR_GLOBAL einträgst, dann sind sie nur allen Instanzen dieses Unterprogramms bekannt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard

    Hallo,

    hab hier mal ein kleines Beispiel, falls ich dein Problem richtig Verstanden habe.

    Code:
    PROGRAM BLINKER
    VAR_INPUT
       Blink_Start:BOOL;
    END_VAR
    VAR
       BLINKER_1:TP;
    END_VAR
     
    BLINKER_1( IN:=  Blink_Start,
        PT := t#2s);
    
     
    PROGRAM PLC_PRG
    VAR
     test:BOOL;
    END_VAR
     
    IF BLINKER.BLINKER_1.Q THEN     (*Abfrage BLINKER_1.Q*) 
     test := TRUE;     
    ELSE
     test := FALSE;    
    END_IF
     
    BLINKER();
    Der Timer BLINKER_1 ist im PRG BLINKER deklariert. Wird dort durch irgend eine Variable gesetzt. Bei mir ""Blink_Start". Im PLC_PRG wird Abgefragt ob der Ausgang von BLINKER_1 = true ist ober nicht. Wenn Ausgang true denn Test auch true. Sonst Test = false.

    Vielleicht hilft dir das ja weiter.

    Gruß

  6. #6
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    nee irgendwie nicht ... Unterprogramme sind zu sehen auf dem Bild Blinker(PRG) etc.
    Der FB Trigger_Neustart: R_TRIG kommt aus dem Programteil Tech_Tast(PRG) und ich brauche den Ausgang Q im PLC_PRG(PRG).
    Egal ob ich die Deklaration im Unterprogram setzte, wie CoDeSYS es auch macht oder Global ins PLC_PRG(PRG) es geht nicht.
    Das Programm startet zwar aber die Unterprogramme sind grau und laufen nicht ....





    Nachdem das Programm übertragen wurde und Läuft:

    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

  7. Folgender Benutzer sagt Danke zu Michael68 für den nützlichen Beitrag:

    Kira2000 (18.01.2011)

  8. #7
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Die Programme muss man auch aufrufen!

    Einfach einen Kasten in PLC_PRG malen und den Namen reinschreiben.
    If you open your Mind too much, your Brain will fall out.

  9. #8
    Registriert seit
    17.08.2010
    Ort
    Blaichach
    Beiträge
    84
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    Die Programme muss man auch aufrufen!

    Einfach einen Kasten in PLC_PRG malen und den Namen reinschreiben.

    könnte Helfen - lol...

    Zitat Zitat von zotos Beitrag anzeigen
    Kasten in PLC_PRG malen und den Namen reinschreiben.
    " ich schmeiß mich weg... aber es trifft den Nagel auf den kopf.

    Erinnert mich an Labview - "Programmieren mit Binfaden" *g*


    lg Bernd
    Real programmers don’t comment their code. It was hard to write, it should be hard to understand.

  10. #9
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Um mich selbst noch etwas zu korrigieren: Man kann die Programme über PLC_PRG aufrufen, es gibt aber auch noch andere Wege dies zu tun.

    Die meisten (oder alle?) Plattformen sind Multitasking fähig und man kann über die Taskkonfiguration die Programme auch anstoßen.

    Im vorliegenden Fall würde ich aber die Programme wie bereits erwähnt aus dem PLC_PRG heraus aufrufen.

    Wobei mir die Struktur im den kreuz und quer verlaufenden Zugriffen nicht besonders gefällt. Aber für Projekte in der Größenordnung ist es schon ok.
    If you open your Mind too much, your Brain will fall out.

  11. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    Michael68 (18.01.2011)

  12. #10
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja ist eigentlich schon besser wenn man auch das komplette Programm abarbeitet . Mit dem hab ich natürlich nicht gerechnet.

    Der Aufruf von BLINKER ist in meinem Beispiel eigentlich ja auch zu sehen .

    Aber wenns jetzt Funktioniert ist ja gut.

    Gruß

Ähnliche Themen

  1. Unterprogramme aufrufen
    Von Glüh im Forum CODESYS und IEC61131
    Antworten: 12
    Letzter Beitrag: 25.03.2011, 14:01
  2. S7-200 Unterprogramme und Bits setzen/auslesen
    Von D0m1n1k im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 02.06.2010, 19:47
  3. Antworten: 8
    Letzter Beitrag: 19.10.2007, 06:22
  4. S7 200 Unterprogramme mit Timern mehrfach Aufrufen?
    Von plc_tippser im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 24.09.2004, 21:14
  5. Unterprogramme S7 200
    Von hubert im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 19.09.2003, 21:23

Lesezeichen

Berechtigungen

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