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

Ergebnis 1 bis 2 von 2

Thema: Programmierung TwinCat PLC

  1. #1
    Registriert seit
    18.07.2006
    Beiträge
    115
    Danke
    36
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe bisher eher mit Step7 zu tun, kleinere Sachen mit Beckhoff.
    Nun soll aber unser komplettes S7-Programm auf Beckhoff umgestellt werden.
    Ich bin schon mal damit angefangen einzelne Bausteine umzustellen und hätte nun gerne gewusst was ich in nachfolgendem Programmm besser / anders machen könnte/sollte.
    Wäre für jede Anregung dankbar!

    Es handelt sich hier um insgesamt 5 Stückzähler, 4 werden über 1 Signal gezählt und können einzeln zurück gesetzt werden. Zähler 5 wird immer nur um 1 hochgezählt.

    Code:
    FUNCTION_BLOCK FB46_Stueckzaehler
    VAR_INPUT
        Impuls:BOOL;
        Presse_UT:BOOL;
        Freigabe_Zaehler_Kiste:BOOL;
        Freigabe_Zaehler_Auftrag:BOOL;
        Freigabe_Zaehler_Schicht:BOOL;
        Freigabe_Zaehler_Gesamt:BOOL;
    END_VAR
    VAR_OUTPUT
        Stueckzahl_erreicht:BOOL;
    END_VAR
    VAR
        FLK_1:R_TRIG;
        FLK_2:R_TRIG;
        Zaehler: INT;
    END_VAR
    
    FLK_1(CLK:=Impuls, Q=> );
    FLK_2(CLK:=Presse_UT, Q=> );
    
    IF FLK_1.Q=TRUE THEN
        (*Stückzähler Kiste*)
        IF Freigabe_Zaehler_Kiste THEN
            FB46_Stueckzaehler_Ist[1]:=FB46_Stueckzaehler_Ist[1]+FB46_Stueckzaehler_Teile_pro_Hub;
        END_IF
        (*Stückzähler Auftrag*)
        IF Freigabe_Zaehler_Auftrag THEN
            FB46_Stueckzaehler_Ist[2]:=FB46_Stueckzaehler_Ist[2]+FB46_Stueckzaehler_Teile_pro_Hub;
        END_IF
        (*Stückzähler Schicht*)
        IF Freigabe_Zaehler_Schicht THEN
            FB46_Stueckzaehler_Ist[3]:=FB46_Stueckzaehler_Ist[3]+FB46_Stueckzaehler_Teile_pro_Hub;
        END_IF
        (*Stückzähler Gesamt*)
        IF Freigabe_Zaehler_Gesamt THEN
            FB46_Stueckzaehler_Ist[4]:=FB46_Stueckzaehler_Ist[4]+FB46_Stueckzaehler_Teile_pro_Hub;
        END_IF
    END_IF
    
    (*Stückzähler Gesamthubzahl*)
    IF FLK_2.Q=TRUE THEN
        FB46_Stueckzaehler_Ist[5]:=FB46_Stueckzaehler_Ist[5]+1;
    END_IF
    
    (*Stückzahl erreicht*)
    IF (FB46_Stueckzaehler_Ist[1]>=FB46_Stueckzaehler_Soll[1]) OR
         (FB46_Stueckzaehler_Ist[2]>=FB46_Stueckzaehler_Soll[2]) THEN
        Stueckzahl_erreicht:=TRUE;
    END_IF
    
    (*Stückzähler zurücksetzen*)
    FOR Zaehler:=1 TO 4 DO
        IF FB46_Stueckzaehler_null[Zaehler]=TRUE THEN
            FB46_Stueckzaehler_Ist[Zaehler]:=0;
        END_IF
    END_FOR;
    Zitieren Zitieren Programmierung TwinCat PLC  

  2. #2
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi dirknico

    das wird so wahrscheinlich funktionieren, aber du hast um Meckerei gebeten, also will ich etwas anmeckern. Mir persönlich gefällt es an deiner Projektstruktur nicht, dass du einen Funktionsblock verwendest, der auf globale Zählvariablen zugreift. Wenn du von dem FB mehrere Instanzen verwendest, wie das mit einem FB vorgesehen ist, dann zählen alle FB's die selben Variablen hoch. Ich würde entweder
    1. das Array mit Zählvariablen FB46_Stueckzaehler_Ist lokal in VAR_OUTPUT deklarieren
    oder
    2. wenn es FB46_Stueckzaehler nur einmal im Projekt gibt, würde ich den Baustein als Programm und nicht als Functionblock definieren (einfach im Deklarationsteil FUNCTION_BLOCK mit PROGRAM überschreiben). Der Vorteil ist dann - du brauchst keine Instanzen und damit ist die Inbetriebnahme etwas einfacher.

    Gruß,
    witkatz
    Geändert von witkatz (06.09.2010 um 10:17 Uhr)

  3. Folgender Benutzer sagt Danke zu witkatz für den nützlichen Beitrag:

    dirknico (08.09.2010)

Ähnliche Themen

  1. KL6301 EIB - TwinCat programmierung
    Von madmag im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 09.03.2012, 22:21
  2. TwinCAT stürzt ab sobald TwinCAT System gestartet wird
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 23.09.2010, 10:02
  3. Antworten: 4
    Letzter Beitrag: 03.11.2009, 14:05
  4. Antworten: 15
    Letzter Beitrag: 08.04.2009, 17:19
  5. CFC Programmierung
    Von tarzipan7 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 18.04.2008, 16:38

Lesezeichen

Berechtigungen

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