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

Ergebnis 1 bis 3 von 3

Thema: CoDeSys mit HBM Messverstärker

  1. #1
    Registriert seit
    21.09.2015
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    vorab: ich erwarte nicht, dass hier mein Code von jemand anderem geschrieben wird. Ich stelle hier nur das Problem und meinen Code für das Verständnis meines Problems hier ein.

    ich arbeite jetzt seit einer Woche mit CoDeSys und habe noch ein paar Probleme.
    Ich arbeite mit folgender Installation:
    An dem Messverstärker HMB PMX ist eine Waage angeschlossen die kontinuierlich den aktuellen Wert bereitstellt.

    Folgendes möchte ich in CoDeSys realisieren:
    Die Waage ist so eingestellt, dass wenn eine spezielle Box auf die Waage gestellt wird, ungefähr der Wert 0 angezeigt wird. Nacheinander sollen nun 4 Werkstücke eingelegt werden. Bei den Werkstücken handelt es sich um zwei Größen von Quadern. Wird ein Werkstück eingelegt, wird überprüft, ob es im Toleranzbereich für einen kleinen oder großen Quader liegt. Ist dies der Fall soll eine grüne Lampe angehen. Der aktuelle Wert wird manuell tariert und es kann das nächste Werkstück eingelegt werden.
    Liegt ein Werkstück nicht im Toleranzbereich geht eine rote Lampe an. Werden große und kleine Quader gemischt, geht eine rote Lampe an.

    Ich habe nur wie folgt begonnen für die Überprüfung eines kleines Quaders:
    Code:
    PROGRAM PLC_PRG
    VAR
        MeasVal : REAL; (*Messwert*)
        Weight_KB : REAL := 0.598;  (*Gewicht der Kanbanbox*)
        //Maße der Böden
        D25Side : REAL := 0.0394;
        D25Depth : REAL := 0.0207;
        D40Side : REAL := 0.0592;
        D40Depth : REAL := 0.0207;
        Dens : REAL := 2850; (*[kg/m^3]*)
        //Gewichtsgrenzwerte der Böden
        D25Max : REAL;
        D25Min : REAL;
        D25Tol : REAL := 0.05;
        D40Max : REAL;
        D40Min : REAL;
        D40Tol : REAL := 0.05;
        LampGreen : BOOL := FALSE;
        LampRed : BOOL := FALSE;
        LampYellow : BOOL := FALSE;
        PartCount : DINT;  (*Zähler der Teile [1..4]*)
        TableCount : DINT; (*Zähler in der Tabelle*)
        Counter : DINT := 0; (*Zähler für alle Teile*)
        Reject : DINT := 0; (*Ausschusszähler*)
        Table : ARRAY[1..50] OF REAL;  (*Tabelle*)
        TarHandle : DINT;
        TarSwitch : BOOL; (*Fußtaster*)
        Alarm : BOOL;
        Info : BOOL;    
    END_VAR
    
    //Kalkulation der Grenzwerte
    D25Max := WeightCal(D25Side, D25Side, D25Depth, Dens) + D25Tol;
    D25Min := WeightCal(D25Side, D25Side, D25Depth, Dens) - D25Tol;
    D40Max := WeightCal(D40Side, D40Side, D40Depth, Dens) + D40Tol;
    D40Min := WeightCal(D40Side, D40Side, D40Depth, Dens) - D40Tol;
    
    IF (MeasVal <= -0.5) THEN
        LampGreen := FALSE;
        LampRed := FALSE;
        LampYellow := FALSE;
        TarSwitch := FALSE;
    END_IF
    // Wird die Kanban-Box erkannt, geht die gelbe Lampe an
    IF (MeasVal >= -0.03) THEN
        LampYellow := TRUE;
        PartCount := 0;
        IF (MeasVal >= D25Min AND MeasVal <= D25Max) THEN
            FOR PartCount := 1 TO 4 BY 1 DO
                IF (MeasVal >= D25Min AND MeasVal <= D25Max) THEN 
                    Counter := Counter + 1;
                    // Grüne Lampe an
                    LampGreen := TRUE;
                    // Zähler um eins erhöhen
                    PartCount := PartCount + 1;
                    // Nächste freie Zeile in der Tabelle ermitteln bestimmen
                    IF (TableCount >= 50) THEN
                        TableCount := 1;
                    END_IF;
                    // Wert in Tabelle schreiben
                    Table[TableCount] := MeasVal;
                    TableCount := TableCount + 1;
                     // Messwert tarieren (für Kanal 2.1), Grüne Lampe aus (aus  Beispielprogramm von HBM, Waage hängt aber an Kanal 2.1)
                    IF (HBM_PMX_LIBRARY.isFinished(TarHandle)) THEN
                        IF(TarSwitch = TRUE) THEN
                            TarHandle := HBM_PMX_LIBRARY.setToZero(2,1);
                            TarSwitch := FALSE;
                            LampGreen := FALSE;
                        END_IF;
                    END_IF;
                ELSE
                    LampRed := TRUE;
                    LampGreen := FALSE;
                    Info := 1;
                    Counter := Counter + 1;
                    Reject := Reject + 1;
                END_IF;
            END_FOR;
         ELSE
            LampRed := TRUE;
            LampGreen := FALSE;
            Alarm := 1;
            Counter := Counter + 1;
            Reject := Reject + 1;
        END_IF;
    END_IF;
    Dabei habe ich noch folgende Fragen/Probleme:

    • Das Programm läuft endlos und der Zähler wird kontinuierlich erhöht. Was muss ich ändern, damit das Programm beim tarieren unterbrochen wird?


    Vielen Dank schonmal.
    Zitieren Zitieren CoDeSys mit HBM Messverstärker  

  2. #2
    Registriert seit
    13.12.2011
    Beiträge
    1.505
    Danke
    163
    Erhielt 181 Danke für 164 Beiträge

    Standard

    Hallo rKtiC,
    ich vermute mal das Du, was das Programmieren angeht, aus der PC-Schiene kommst, denn Deine Fragen hören sich verdächtig nach meinen Problemen beim ersten Versuch ein SPS-Programm zu schreiben an. Ich würde aus dem Ganzen eine Schrittkette machen und im letzten Schritt warten, bis der Tariervorgang erledigt ist. Das Ganze mit If-Abfragen zu machen geht zwar auch, wird aber schnell unübersichtlich und schwer wartbar, außerdem bekommt man bei den vielen Möglichkeiten und Verriegelungen irgendwann Logikknoten im Gehirn und die können wehtun.

    Gruß

    Oliver

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

    rKtiC (22.09.2015)

  4. #3
    rKtiC ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.09.2015
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @oliver.tonn: Du hast recht. Bisher habe ich am PC programmiert und vielen Dank für den Hinweis mit der Schrittkette.

    Nach kurzer Suche habe ich hier im Forum den folgenden Ansatz für Schrittketten in ST gefunden:
    Zitat Zitat von trinitaucher Beitrag anzeigen
    Schrittketten in ST gehen gut mit CASE-Anweisungen:
    Code:
    (* Bedingung für Start der Schrittkette*)
    IF Startbdingung AND NOT Abbruchbedingung THEN
      Schrittzahler := 1;
    END_IF
    
    CASE Schrittzahler OF
    1: (*....*)
        Schrittzahler := 2;
    2: (*....*)
        Schrittzahler := 3;
    3: (*....*)
        Schrittzahler := 4;
    4: (*....*)
        Schrittzahler := 0;
    END_CASE
    
    (* Abbruch der Schrittkette *)
    IF Abbruchbedingung THEN
       Schrittzahler := 0;
    END_IF
    Meintest du so etwas?

    Dazu hätte ich noch Fragen:
    1. Ist das dann so gemeint:
    Code:
    CASE Schrittzahler OF
    1: (*....*)
        Schrittzahler := 2;
    Solange der Schrittzähler=1 ist mache (*....*) und dann setze den Schrittzähler auf 2?

    2. Ich stehe noch etwas auf dem Schlauch: Meine Abbruchbedingung ist ja wenn 4 Teile in der Kiste liegen also
    Code:
    PartCount = 4
    Was aber ist meine Startbedingung?
    3. Wie kann ich bei den kontinuierlichen Werten die Unterscheidung treffen ob das Teil was drin liegt ein kleiner Quader, ein großer Quader oder keines von beiden ist?

Ähnliche Themen

  1. Messverstärker der Marke HBM, Modell DMC 9012 A
    Von onefortheo im Forum Suche - Biete
    Antworten: 1
    Letzter Beitrag: 14.12.2011, 21:44
  2. Hbm dmc 9012
    Von GS-Harri im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 14.12.2011, 13:33
  3. Kommunikation S7 - MGCplus von HBM
    Von foxy64 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.07.2011, 08:36
  4. Sucher alternative zur Waage HBM Fit4
    Von maxi im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 27.03.2008, 23:12
  5. Antworten: 8
    Letzter Beitrag: 20.02.2008, 11:42

Stichworte

Lesezeichen

Berechtigungen

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