S7-> Verstellbarer Wechseltakt, möglich zu programmieren?

Nachbar

Level-1
Beiträge
157
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann man, und wenn wie, einen Wechseltakt programmieren, wo die Taktlänge über ein Poti verstellbar ist?

Gedanklich so:
Schalte Steuerung ein, schalte "Takt-Programm" ein, 2 Ventile schalten im Wechsel hin und her.
Durch ein Poti möchte ich die Taktlänge von hin und her einstellen können.

Klingt komisch, ist aber so.... :wink:

Wie könnte ich sowas mit S7 programmieren ? (ich bin sehr stark FUP-lastig, AWL is nicht so mein Ding :oops: )
 
Ich versuche mal eine sehr einfache Lösung, die nicht sehr gut, aber in FUP zu programmieren ist.

Du arbeitest mit einem Wert, der im festen Zeitraster verringert wird.
Wenn der WErt kleiner als null wird, dann führt Du die AKtion aus und setzt den Wert auf einen über das Poti berechneten Wert.


Über die Rechenfunktionen berechnest Du einen Integerwert.
Nach dem Motto Eingangswert * 10= Integer-Wert

Nun nutzt Du einen Zeitob in dem du einen anderen Wert verringerst.

Zum Schalten fragt Du im OB1 auf KLEINER GLEICH NULL ab. Sobald der Vergleich eine "1" liefert überträgst Du den berechneten Wert in den anderen Wert.

Ich hoffe es ist einigermaßen verständlich..

Es ist eine Lösung die in FUP zu realisieren ist, die auch Nachteile hat.

Eine andere Lösung ist die Berechnung der Zeitformate und diese dann zusammenbauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Takt

Hallo Nachbar,

müsste scho gehn. Analogwert vom Poti einlesen, skalieren (auf ein Wort wo max 12 Bits benutzt werden) und je nach erforderlicher Zeitspanne noch die Zeitbasis des Timers dazubasteln. Beim Timer als Zeit dieses Wort eintragen. Nur mal als Kurzform.

MfG
André Räppel
 
@ SPS-Concept

Ich nehme z.B. den Timer S_Impuls, lese den Poti aus z.B. MW100 und schreibe dann MW100 an den Timer an "TW" ?

Gut, das MW100 müßte ich noch begrenzen.... sprich, noch mit anderen Bausteinen weiter verarbeiten.

Aber, habe ich das so richtig verstanden ?

Heinz seine Lösung konnte ich leider nicht so ganz folgen..... sorry, arbeite leider auch zu wenig mit S7.
Firma fordet/fördert mich nicht richtig.
 
Takt

so ungefähr. Bau die doch erstmal so ne Taktschaltung. Ich würde 2 Timer nehmen. So wie bei der S5 die Blinktakte gemacht wurden. Beim Zeitwert trägst du bei beiden Timern das MW100 ein. Das kannste vorher mal mit

Code:
L S5T#5s
T MW100
beschreiben. Wenn das funktioniert biste im nächsten Level ;-)

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich versuche es mal etwas einfacher...

Der Zeitob wird alle z.B. 100ms durchlaufen.
Dort wird der Wert alle 100ms reduziert.
Wenn Du im OB1 feststellt, dass der Zählwert unter 0 kommt, dann ist die Zeit 10 für 1 s. abgelaufen.

Den Wert dem Du startet hängt vom Poti ab...
 
Das mit dem Zeit-OB ist einfacher (keine Konversion in Zeitformat). Statt vom Potiwert abwärts zu zählen, kan man auch einfach einen Wert hochzählen. Sobald er größer als der (skalierte) Potiwert ist, Impuls ausschalten. Sobald der Zählwert eine Grenze erreicht, z.B. 100 oder 1000, Zählerwert 0 setzen und Impuls wieder ein. Auf diese Weise kann der eine Zähler für mehrere PWM-Kanäle genutzt werden.
 
Oje... verstehen tu ich so die Hälfte.... :roll:

Hab jetzt mal so wie ich es bei SPS-Concept verstanden habe probiert.
Code:
Netzwerk 1

U(
U  E 0.0
S  M 0.0
U  E 0.1
R  M 0.0
U  M 0.0
)
L  MW 272
SI  T 1
NOP  0
NOP  0
NOP  0
U  T 1
=  L 0.0
U  L 0.0
BLD  102
=  A 0.0
UN  L 0.0
=  A 0.1
Habe es mit einem Timer gemacht, denke das wird auch gehen.... wenn A0.0 keine 1 hat, dann kommt A0.1 ....
SR ist die die "Start"-Funktion, MW272 ist das Poti.

Was meint ihr dazu ?

Habe im FUP programmiert und es mir in AWL anzeigen lassen.
Danke schon mal für Tipps und evtl. weiter Hilfe.
 
Takt

Hallo,

mit einem Timer wird das glaube ich nix. Versuchs mal so:

Code:
NW1
      L     S5T#2S
      T     MW   272
      NOP   0


NW2
      U(    
      U     E      0.0
      S     M      0.0
      U     E      0.1
      R     M      0.0
      U     M      0.0
      )     
      UN    T     12
      L     MW   272
      SE    T     11


NW3
      U     T     11
      L     MW   272
      SE    T     12


NW4
      U     T     11
      =     L     20.0
      U     L     20.0
      BLD   102
      =     A      0.0
      U     L     20.0
      NOT   
      =     A      0.1

evtl musste schaun ob du beide Ausgänge nur mit M0.0 rausgibst

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Läßt sich irgendwie nicht übertragen...
Irgend ne Fehlermeldung mit "Compiler" .... FC1 Baustein 4

Was kann das jetzt sein ?

MW272 ist eigentlich das Poti, also ein Eingang.
Da kann ich doch nichts hin-transferieren ?
 
Poti

ja später nicht mehr, aber erstmal kannste doch so mit ner festen Zeit testen. Wie hast dus denn gemacht? 4 Netzwerke angelegt und einzeln die Inhalte reinkopiert? Mach mal im NW4 aus L20.0 -> L0.0 In dem Baustein wie ichs reingetippelt hab gabs Lokaldaten.

MfG
André Räppel
 
So, versucht -> erfolglos.
SF-LED geht an.
Kann es daran liegen das es nur ne CPU 314 ist ?

Hatte da schon mal sowas.
 
Jupp, is mir auch eingefallen...
Geht soweit schonmal, allerdings bleibt A0.1 auch gesetzt wenn ich die Geschichte rücksetze.

Habe auch mal S5T#2s gegen PEW272 ersetzt, leider geht dann die S7 in Störung wenn ich am Poti drehe.

Woran kann das liegen ?


Danke erstmal für die Geduld die man bisher mit mir hatte.
 
Das ist der Level 2 von André :D

Das ZEitformat muss angepasst werden. Siehe Handbuch /OH unter Zahlenformate.

Aus dem Kopf:
die ersten 12 BIT sind der Zeitwert BCD Codiert und die letzten 4 stellen das Zeitraster dar.

Ich hoffe das ist richtig.....

DAher geht das
Code:
l PEW xxx
T MW 200
nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aso, heißt jetzt: das PEW272 (mit diesen 5stelligen Zahlenwert) muß ich in Minuten und Sekunden umwandeln, richtig?

Glaube ich bin zu blöde für sowas..... Habe nur die Hilfe bei Step7 und paar Bücher (dickes Ref-Handbuch-> System- und Standradfunktion und welche über FUP, KOP, AWL und HMI) von 08/2000

Naja, werd daheim noch bissl knobeln (gleich Feierabend)
Bin dann morgen ab 6h wieder da.
 
hallo,
versuchs mal so.....
Netzwerk 1
L PEW 256
L 28
/I
T MW 10
NOP 0
Netzwerk 2
L MW 10
ITB
T MW 2
NOP 0
Netzwerk 3
L 1000
L MW 10
-I
T MW 12
NOP 0
Netzwerk 4
L MW 12
ITB
T MW 0
NOP 0
Netzwerk 5
UN T 1
L MW 0
SE T 0
Netzwerk 6
U T 0
L MW 2
SE T 1
Netzwerk 7
U T 0
= A 0.0
Netzwerk 8
UN T 0
= A 0.1

Das war's... im ersten Netzwerk wird die Gesamttaktzeit eingestellt, 27648 / 28 =987 entspricht 9,87 sec.
mfg
dietmar
 
Klappt so schon mal recht gut.
Habe nur im NW6 das MW2 gegen MW0 mal getauscht, so sind die Zeiten bei beiden Ausgängen gleich.
Mit dem Poti muß ich noch bissl ändern.... Zeiteinteilung könnte grober sein (brauch keine 1000stl, etc -Sekunden)

Naja, probieren, probieren..... experimentieren

Thx an alle

Evtl. hat ja jemand noch andere Lösungen........ ?

Sinnvoll Poti mit 10V zu versorgen bzw. AI über 10V zu steueren?

Zur Zeit habe ich ein 10KOhm-Poti dran.
Anderes Poti besser ?
 
Zurück
Oben