Kontrollzeit zylinder ohne timer allgemein gehalten (projekt meisterschule)

Benedikt

Level-1
Beiträge
55
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen,

bin am rumbasteln, und möche einen zylinder ausfahren lassen, (mit zwei endlagen)
Jedoch mit einer Kontrollzeit.
Möchte keine TIMER verwenden.
Sollte so zusammen gestellt werden das ich diesen baustein eventuell für beliebig viele zylinder nutzen kann also ziemlich allgemein,
bsp mit einem FB den ich immer wieder für solche Anwedungen nutzen kann. UND DAS OHNE TIMER.

stelle grade ein projekt für die Meisterschule zusammen, hat irgendeiner eine gute detailierte IDEE?
 
Du nimmst einen FB.

Dort verwendest Du entweder einen IEC-Timer oder Du machst Dir eine INT-Variable, die Du mit einem festen Takt herunterzählst.

Wenn der Baustein bibliotheksfähig bleiben soll, darfst Du nur lokale Variablen verwenden. Der "Kontakt" zur Aussenwelt geht über die Schnittstellenvariablen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Eventuell einen Takt (z.B. 10ms) bilden (oder aus der CPU abholen, Taktmerkerbyte) und mit diesem deine Zeit erstellen.
Die OB1 Lokalvariablen hinzuziehen.
Weckalarm benutzen (OB35)
 
WIE könnte dann sowas mit einer INT-Variblen denn aussehn? Und was ist ein IEC - timer? würde es gern so einfach wie möglich und verständlich machen
 
WIE könnte dann sowas mit einer INT-Variblen denn aussehn? Und was ist ein IEC - timer? würde es gern so einfach wie möglich und verständlich machen

Hier mal ein kleines Beispiel aus einem meiner Bausteine. Ich verwende allerdings FC, die als IN_OUT eine Variable bekommen, in welcher sie sich den Zeitwert "merken" können. Ein FB ginge auch, man mu0 dann aber immer mit IDB arbeiten.

Code:
UN    #LAUFZEIT_RESET
      SPB   M001


      CLR   
      =     #STOERMELDUNG
      L     0
      T     #AKKU_LAUFZEIT
      SET   
      R     #STOERMELDUNG


M001: NOP   0


//??Einschaltzeit überschritten
      L     #AKKU_LAUFZEIT                 //IN_OUT zum "merken" der gelaufenen Zeit 
      L     #WERT_LAUFZEIT_100ms     //max. erlaubte Zeit, danach Fehler generieren
      >=I   
      S     #STOERMELDUNG
      SPB   ENDE


      U     #ERROR_ENDLAGE
      S     #STOERMELDUNG
      SPB   ENDE


//??Zeitimpuls
      ON    #ZEIT_IMPULS_100ms
      ON    #LAUFZEIT_EIN             //Laufzeitüberwachung ein (z.nsp. wenn beide Endlagen False)
      SPB   ENDE


      L     #AKKU_LAUFZEIT
      L     1
      +I    
      T     #AKKU_LAUFZEIT
      SPA   ENDE


ENDE: NOP   0
 
Zuletzt bearbeitet:
Zurück
Oben