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

Ergebnis 1 bis 5 von 5

Thema: Zählfunktion + rechnen

  1. #1
    Registriert seit
    11.12.2013
    Beiträge
    33
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend,

    ich habe folgende Situation:

    Ich habe ein umlaufenes Seil, dass an einer Umlaufrolle angetrieben wird.
    An der Umlaufrolle habe ich einen Sensor, der die Umdrehungen aufnimmt.

    An der Seilklemme befindet sich ein Magnet, der von einem zweiten Sensor erkannt wird.
    Jetzt würde ich gerne
    1. Den Zähler mit jeder Umdrehung raufzählen lassen und beim Signal der Seilklemme wieder auf 0 setzen.
    Das bekomm ich auch hin.

    2. Nun würde ich gerne Signale erzeugen bei bestimmten Seilpositionen

    Heißt ich müsste eine Funktion schaffen die folgende Parameter ausrechnet und als Merker oder ähnliches speichert

    Seillänge : 1000 Impulse
    Anzahl Teilungen :10
    Offset: 0
    Signallänge: 5 Impulse
    Speicher Array MW 10

    (Seilänge / Anzahl_Teilungen ) + Offset = Abstand

    Teilung 0 = 0x Abstand =0 Impulse
    Teilung 1 = 1x Abstand = 100 Impulse
    Teilung 2 = 2x Abstand = 200 Impulse
    ...
    Teilung 9= 9x Abstand = 900 Impulse


    Wenn das Seil also bei 200 Impulsen steht wäre Teilung 2 Aktiv, es soll also das entsprechende MB gesetzt werde.
    z.B. MB 10.2, jedoch soll es nur für z.B. 5 Impulse high stehen. Also bei 200-205 High.


    Diese Berechnung würde ich gerne mit verschiedenen Offsets ausführen und so jede Position am Seil ohne Extra Sensoren erkennen können.

    z.B. die gleiche Funktion nur ein Offset von -40 und ein anderer Speicherbereich

    ~Seillänge : 1000 Impulse
    Anzahl Teilungen :10
    Offset: -50
    Signallänge: 5 Impulse
    Speicher Array M10W

    (Seilänge / Anzahl_Teilungen ) + Offset = Abstand

    Teilung 0 = 0x Abstand =0 Impulse
    Teilung 1 = 1x Abstand = 50 Impulse
    Teilung 2 = 2x Abstand = 150Impulse
    ...
    Teilung 9= 9x Abstand = 850Impulse

    Wenn das Seil also bei 150 Impulsen steht wäre Teilung 2 Aktiv, es soll also das entsprechende MB gesetzt werde.
    z.B. MB 12.2, jedoch soll es nur für z.B. 5 Impulse high stehen. Also bei 150-155 High.


    Damit könnte ich dann später im Programm arbeiten.
    MB12.2 kommt, Anlage fährt langsamer. damit sie bei MB 10.2 genau anhält. usw.



    Hat vll jmd einen Ansatz für mich?

    Schönen Abend
    Michi
    Zitieren Zitieren Zählfunktion + rechnen  

  2. Folgender Benutzer sagt Danke zu michi* für den nützlichen Beitrag:

    Bobbybau91 (05.06.2016)

  3. #2
    Registriert seit
    21.11.2014
    Beiträge
    228
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Was ist denn das generelle Problem? Programmiersprache (was hast du zur Verfügung?), Syntax, Mathematik, haltbarkeit der Variablen?

    Warum verwendest du ein MW statt eines "richtigen" Arrays? Nach meinem Verständnis beschreibst du ein Bit in einem MW, welches du im nachhinein wieder ausmaskierst um Parameter für einen Antrieb zu setzen(?).
    Schreib deine Parameter doch direkt in dein Array und berechne den Index.

  4. #3
    michi* ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2013
    Beiträge
    33
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich habe zu einem ein Verstädniss Problem mit einem 300er programm in Step7
    kann das programm jedoch nicht in tia migrieren um es auf eine 1200er zu laden, dann gibts jedemal ein fehler:
    auf der 300 läuft es aber soweit.

    ich habe einen FC in scl, der genau dies macht.
    nur kann ich max. 8 teilungen vornehmen, weil sonst mein array nicht mehr passt.
    Geändert von michi* (13.06.2016 um 21:22 Uhr)

  5. #4
    Registriert seit
    21.11.2014
    Beiträge
    228
    Danke
    7
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Die einzige Beschränkung, die ich beim Überfliegen sehe ist die größe deines Arrays. Wenn du mehr daten speichern möchtest, musst du dein Array vergrößern.

    Code:
    VAR_OUTPUT
        Nocken: ARRAY[1 .. 16] OF BOOL;
    END_VAR
    Da es sich um einen FC handelt, gibts auch keine Probleme mit Speicherverschiebung o.Ä..

  6. Folgender Benutzer sagt Danke zu Christmaspoo für den nützlichen Beitrag:

    michi* (07.06.2016)

  7. #5
    michi* ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2013
    Beiträge
    33
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank Christmaspoo,

    dann muss ich das ganze jedoch ein MW schreiben oder?
    ich werde es erstmal so weiter versuchen.

Ähnliche Themen

  1. NOP0 bei Zählfunktion
    Von matgau im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 24.11.2012, 20:00
  2. rechnen
    Von waldy im Forum Stammtisch
    Antworten: 12
    Letzter Beitrag: 12.06.2011, 10:17
  3. Zählfunktion CPU31xC
    Von Farinin im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.01.2010, 21:17
  4. Rechnen
    Von Mr. Smoth im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 22.04.2007, 09:19
  5. Zählfunktion S7
    Von 1schilcher im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 26.04.2006, 20:51

Stichworte

Lesezeichen

Berechtigungen

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