Analogeingang als Zeitvorgabe nutzten

Airpower

Level-2
Beiträge
33
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich bin ein blutender Anfänger und sitze nun vor meiner S7-315 Steuerung
und versuche ein Poti, dass am AI Eingang angeschlossen ist als Zeitvorgabe eines SI Timers zu nutzen.
Ich kann die Potistellung soweit auswerten bzw. wandeln um damit Ausgänge zu steuern.
Ich bringe es jedoch nicht zu stande das ich damit die Zeitvorgabe eines Timers einstelle.

Kann mir evtl. einer einen kleinen Denkanstoß geben
 
Zuerst mal musst du dir bewusst werden, welchen Zeitwert du einstellen willst.

zb. Logarithmisch - von 0 bis quasi unendlich
oder Linear 0 - 500sec
oder ...

Dann musst du deinen Analogen Eingang dementsprechend skalieren. Ein Analog eingang bringt einen Wert um die 27000 bei voller aussteuerung (weiss das nicht genau auswendig... kann man aber nachlesen). Dann musst du diesen Wert so umskalieren, dass er deinem gewünschten Bereich entspricht (Datentypen beachten!!).

Konkretes Beispiel:

Annahme: Der Eingang bringt 0..27000 - du möchtest linear 0..500sec

dann ergibt das

Code:
Zeitwert := AnalogEingang * 500 /27000;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zuerst einmal Danke für die Antwort

Ich habe die Skalierung nun mit der SFC 105 vorgenommen.
Diese gibt aber als Rückgabewert den Typ Real vor. Kann dies als BCD umwandeln. Ist aber nicht der sinn und zweck, da ich sodann nur ganze
Sec. (Ganzzahl) zur verfügung habe.
 
Ich habe die Skalierung nun mit der SFC 105 vorgenommen.
Diese gibt aber als Rückgabewert den Typ Real vor. Kann dies als BCD umwandeln. Ist aber nicht der sinn und zweck, da ich sodann nur ganze
Sec. (Ganzzahl) zur verfügung habe.

Du musst den Wert dann noch in das S5Time Format umwandeln, das wurde hier schön öfter behandelt, einfach mal Suchen

Beitrag aus der FAQ

oder hier

http://www.sps-forum.de/showthread.php?t=14535&highlight=s5time+Format
 
Hallo Airpower,

nur mal so als Idee. Warum nutzt Du nicht die SFB 3, 4 und 5 aus der Standard-Bib?
Da übergibst Du den Zeitwert als DINT.
Etwa so:
Code:
L EW 128   // Wert vom AE (0 - 27648)
ITD        // Int => DINT
T MD 100   // Merken

CALL  SFB 3 , DB3 // Impulsbildung
  IN:=M 0.0
  PT:=MD 100
  Q :=M 0.1
  ET:=MD104
Grüße
Gebs
 
Zurück
Oben