Timer zeiten über Poti einstellen??

wankeldriver

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo
ich habe folgendes problem.
ich möchte über ein poti die zeiten an einem timer vorgeben. zb.1-10 s.
was für hardware brauche ich und wie sieht die programmierung aus?
evt. hat schon jemand ein fertiges programm für sowas.

ps: über suchen habe ich leider keine lösungen meines prob. gefunden.
 
Hallo wankeldriver,
wenn es unbedingt ein Poti sein muss, dann kommst du um Analogwertverarbeitung nicht herum. Die Programmierung sähe dann so aus:
1. Analogwert lesen
2. In das gültige Zeitformat umwandeln und im Akku1 bereitstellen
3. Timer-Startanweisung (z.B. SE T 12)

Einfacher und billiger ist die Verwendung einer (einstelligen) BCD-Eingabe, denn diese kostet dich nur 4 binäre Eingänge. Ablauf hier:
1. Eingansbyte laden (z.B. L EB 0) und zum Gelesenen 1s addieren (weil du ja 1-10s haben willst)
2. Das Ganze in ein gültiges Zeitformat wandeln und im Akku1 bereitstellen
3. Timer-Startanweisung (z.B. SE T 12)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
thx für die antwort.
ich bekomme aber den analogwert nicht in das zeitformat.cpu geht auf stop.ab einem bestimmten analogen eingangswert.
hast du evt. ein beispielprogr. wie du die umwandlung meinst??
 
Hallo,

wenn du deine Zeiten im S5-Timerformat brauchst, könnte dir das da helfen:

FUNCTION "REAL[%]->S5TIME" : VOID
TITLE =Wandler REAL [%]-> S5TIME
AUTHOR : Micha
VERSION : 1.0

VAR_INPUT
Y : REAL ; //Reglerausgang [%]
T_MAX : REAL ; //Zeit 100% (max. 9990)
T_MIN : REAL ; //Zeit 0%
END_VAR
VAR_OUTPUT
Q : WORD ; //Zeit im S5-Format
END_VAR
BEGIN
NETWORK
TITLE =Logik
//
//
L #T_MAX;
L #T_MIN;
ABS ;
-R ;
L 0;
<R ;
SPBN OK;
T #Q;
BEA ;
OK: L #T_MAX;
L 9.990000e+003;
>R ;
SPB ERR1;
TAK ;
ERR1: L #T_MIN;
ABS ;
-R ;
L #Y;
*R ;
L 1.000000e+002;
/R ;
L #T_MIN;
ABS ;
+R ;
L 9.990000e+003;
>R ;
SPB ERR2;
TAK ;
ERR2: L 9.990000e+002;
>R ;
TAK ;
SPB _1;
L 9.900000e+001;
>R ;
TAK ;
SPB _2;
L 9.900000e+000;
>R ;
TAK ;
SPB _3;
L 1.000000e+002;
*R ;
RND ;
ITB ;
SPA _4;
_1: L 1.000000e+001;
/R ;
RND ;
ITB ;
OW W#16#3000;
SPA _4;
_2: RND ;
ITB ;
OW W#16#2000;
SPA _4;
_3: L 1.000000e+001;
*R ;
RND ;
ITB ;
OW W#16#1000;
_4: T #Q;
END_FUNCTION

Den Baustein hab ich mal eingesetzt um über einen Reglerausgang (0-100%) S5-Zeiten zu bilden.

Für deine Zwecke sollten folgende Schritte ausreichen:
-Analogwert auf 0-100% skalieren und an den Eingang Y verschalten.
-Zeit für 0% in s angeben
-Zeit für 100% in s angeben

Den Ausgang Q kannst an die S5 Timer verschalten
sieht im AWl etwa so aus:

u m
l mw (Ausgang Q)
se t
u t
= m

Viel Spaß
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo wankeldriver,
sieht ganz so aus, als würdest du dich für die Poti-Variante entscheiden. Nun gut!
Um dir hierbei zu helfen, werden allerdings noch ein paar Informationen benötigt:
- S5 oder S7 (die eingelesenen Formate unterscheiden sich deutlich voneinander)
- eingelesenen Originalwert bei Potianschlag links (Hex-Darstellung reicht)
- eingelesenen Originalwert bei Potianschlag rechts (in Hex)
- Adresse des Analog-Einganges
- zu beeinflussende Timernummer

Ein fertiges Programm habe ich nicht, könnte dir aber bei der Entwicklung helfen.

Interessiert mich mal, weshalb keine BCD-Eingabe. Mit 2-stellig könnte man sogar in 10tel Sekunden arbeiten. Außerdem ist digital auch für den Bediener besser (denke ich jedenfalls)
 
Interessiert mich mal, weshalb keine BCD-Eingabe. Mit 2-stellig könnte man sogar in 10tel Sekunden arbeiten. Außerdem ist digital auch für den Bediener besser (denke ich jedenfalls)

Es ist halt Wankelfahrer...

Aber im Ernst: die BCD - Schalter sind recht teuer und auch schwieriger in einer Frontplatte unterzubringen.

Für ein Poti genügt ein kleines Löchlein.

Hier trifft halt Theorie und Praxis zusammen...

Die Praxis kann man nicht an der Schulbank erfahren...
 
@UG
Für einen Möller BCD Schalter brauch ich auch nur ein 22,5er Loch,
was soll daran für einen Schaltschrankbauer schwierig sein ?
 
Außerdem kann man mit einem einstelligen-BCD Schalter keine Zwischenwerte(z.b. 4,5sek) einstellen.....vielleicht ist das ja gewünscht ;-) ?

Bezüglich Analogeingang: Ist das ein 0-10V oder 0-20ma Eingang ?

Weil wenn du bei einem 0-20ma Eingang ein Poti verwendest könnte ich mir vorstellen das die CPU wegen einer Überschreitung des oberen Grenzwertes auf Stop geht !

Kann man glaub ich in der Hardwareconfig deaktivieren.....

Trotzdem mit Poti und 0-20ma wird das denk ich nix....oder lieg ich falsch ?
 
Zuletzt bearbeitet:
thx für die antwort.
ich bekomme aber den analogwert nicht in das zeitformat.cpu geht auf stop.ab einem bestimmten analogen eingangswert.
hast du evt. ein beispielprogr. wie du die umwandlung meinst??
logisch. falsches datenformat für eine zeit.

einstellbar von 0 - 10 mit einer nachkommastelle
Code:
      L     PEW  256
      DTR   
      L     2.764800e+002
      /R                                //sekunden in zehntel
      TRUNC                             //in ganzzahl runden
      ITB   
      L     W#16#1000                   //zeitbasis 0.1 sek
      +I    
      T     MW    10                    //deine zeit
mehr ist das nicht ;)
 
so ganz einfach wird das einstellen nicht, wenn man z.b. genau 5 sek haben will.

man kann natürlich auch 10 fenster mit vergleichern programmieren. dann würden man vermutlich den gewünschten wert treffen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
logisch. falsches datenformat für eine zeit.

einstellbar von 0 - 10 mit einer nachkommastelle
Code:
      L     PEW  256
      DTR   
      L     2.764800e+002
      /R                                //sekunden in zehntel
      TRUNC                             //in ganzzahl runden
      ITB   
      L     W#16#1000                   //zeitbasis 0.1 sek
      +I    
      T     MW    10                    //deine zeit
mehr ist das nicht ;)


juhu das klappt .
dachte es währe viel mehr programmierung nötig.
thx an alle

hier noch die änderung von 0 - 10 sekunden falls es noch wer braucht
L PEW 20
DTR
L 6.500000e+002
/R
TRUNC
ITB
L W#16#1000
+I
T MW 10
 
Zuletzt bearbeitet:
Hallo,eine Alternative wäre da vielleicht so wie wir das machen. Ein Relais einschaltverzögert, bei dem die Zeit über einen Drehschalter eingestellt wird (RS-Components). Ein Ausgang schaltet das Relais, wenn dann die Zeit abgelaufen ist kommt ein Eingang in die SPS.Grußmectron
 
Hallo,

haben wir auch schon gemacht an Maschinen, die keine Visualisierung haben, die Zeit aber trotzdem für den Benutzer einstellbar sein muß.


Obwohl,
gibt´s sowas noch? :confused:


MfG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,eine Alternative wäre da vielleicht so wie wir das machen. Ein Relais einschaltverzögert, bei dem die Zeit über einen Drehschalter eingestellt wird (RS-Components). Ein Ausgang schaltet das Relais, wenn dann die Zeit abgelaufen ist kommt ein Eingang in die SPS.Grußmectron

daran hatte ich auch schon gedacht, aber ich will so wenig wie möglich zusätliche bauteile die nicht unbedingt sein müssen.
die anlage soll später klein und leicht sein da sie für wechselnde einsatzgebiete bestimmt ist.
 
Hallo,

ich halte die Lösung für bedenklich. Meiner Meinung nach kannst mit dem Programmcode

L PEW 20
DTR
L 6.500000e+002
/R
TRUNC
ITB
L W#16#1000
+I
T MW 10​

niemals auf eine Anlage losgehen. Probleme sind vorprogrammiert...
Was machst denn bei nem Drahtbruch?
Das Beispiel funktioniert auch nur sauber, wenn sich deine eingestellte Zeit immer innerhalb einer Zeitbasis befindet. Bei 0-20s z.B. hast schon n Problem.
Wenn du dann immer die Zeitbasis für deine "20mA" Zeit schreibst werden kleine Einstellungen sehr ungenau... Bei 0-1000s z.B. wird das Problem noch viel größer.

dachte es währe viel mehr programmierung nötig.

-> Es ist mehr Programmierung nötig, ansonsten hast meiner Meinung nach nur ne billige Bastellösung.

Ich persönlich würde die Analogwerte getrennt einlesen mit korrekter Fehlerauswertung, ggfs. Ersatzwertaufschaltung usw.
und dann anhand des eingelesenen Wertes die optimale Zeitbasis in einem separaten Fc berechnen und von dort die Zeit ausgeben (siehe Seite 1) ;)

Schöne Grüße
 
Ich persönlich würde die Analogwerte getrennt einlesen mit korrekter Fehlerauswertung, ggfs. Ersatzwertaufschaltung usw.
und dann anhand des eingelesenen Wertes die optimale Zeitbasis in einem separaten Fc berechnen und von dort die Zeit ausgeben
ich kann einen spatz mit einem luftgewehr oder einer atombombe töten.

die lösung mit dem poti entspricht einer zeiteinstellung wie bei einem konventionellem zeitrelais. da hab ich idr auch nur ein poti.

und wenns nicht sooo genau sein muss reicht das aus.
 
Zurück
Oben