Step 7 HMI E/A-Feld-Eingabe in Step7 zur S5-time wandeln?

Hangasilly

Level-1
Beiträge
61
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallihallo Freunde des fröhlichen scriptens :D

Folgende Problematik:
Ich würde gerne ne Warterzeit variable im HMI asngeben, und das dann via S5Timer abschaltverzögert ablaufen lassen.
Soweit ich das nun gelesen habe, soll es da nen FC40 geben, der die Int-Angabe in S5Time wandelt... nur der erscheint nicht, wenn ich den FC40 hinzufüge... da bekommw ich nen leeren FC :(

Also hab ich weiter gesucht und den hübschen Baustein hier gefunden:
http://www.sps-forum.de/faq/2942-wie-kann-ich-zeitwerte-fuer-timer-variabel-eingeben.html

leider komme ich damit nicht ganz klar, weil ich nix als IN-Variable eintragen kann, wenn ich den benutzen will :(

nun bin ich lleider grade etwas überfordert mit dem Ganzen und hoffe auf Hilfe...

Ich bin gekommen bis:

Code:
L  "Zeit_Füllstand_Max"    //MD258
ITD
L  L#60000                   // Min zu MS
*D                              // multiplizieren
T  #Abschalttime

danach würd ich nun gerne oben verlinken FC aufrufen und die >> #Abschalttime << in ne S5-Zeit wandeln...
hier kriege ich nun allerdings
Code:
Einheit:=
S5_Time:=
IN:=

S5_Time hab ich ne temp-Variable >> #Abschalttime_S5 << und bei IN komtm die >> #Abschalttime << rein, wenn ich mich nicht täusche... allerdings wird hier nen INT erwartet und kein DINT (aber gut, da kann man ja die Umwandlung oben rausnehmen) ... nur was zum Kuckuck kommt bei Einheit hin?!?!?
 
Zuletzt bearbeitet:
Du musst den FC40 nicht "anlegen", sondern aus der Standard-Lib kopieren, da muss es in einer Abteilung einen "TIM-S5TI" geben.
Hab im Moment kein Step7 zur Hand, da ich das "vergnügen" habe mich mit TIA rumzuärgern.

An IN wird ein einfaches Integer erwartet, P.S. MD258 und ITD erscheint jetzt reichlich sinnfrei.
Jetzt mal mit festen Werte:
Einheit:= 2 //Sekunden
S5_Time:= MW100 //S5-Time Wert
IN:= 100

Ergebnis: S5-Time wird mit 100X 1Sekunde vorbelegt.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja, das MD258 is quatsch - KP was mich da geritten hat...

habs nun mit dem FC40 - Allerdings als FC200 gelöst...
Idee kam hierher:
http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW

^da gabs den FC200 und den FC82, die dat ganze umrechnen...
Nun hab ich das ganze also so aufgebaut:
Code:
...
NW2: Schwimmerschalter Füllstand Max

A I 15.0 // Schwimmerschalter Öffner
= M254.4  // Merker Schwimmerschalter

NW3: Wiedereinschaltzeit Umwandeln

L DB2.DBW12  //Mintueneingabe imm HMI ( DEZ 99 )
L L#60 // 1Min = 60Sec
*D    // Multiplikation
T #Abschalttime  //Temp_var  'INT' der Angegebenen Minutenzeit in Sec


NW4: IN S5_Zeit

Call FC200  //o.g. Int_To_S5t
 Input_Time_in_sec:=#Abschalttime //oben umgerechnete Sekunden
 Out_S5_Time:=#Abschalttime_S5 //Temp-Variable 'S5Time'
 Out_Fault:= M254.6 //Eingabezeit ausserhalb der Begrenzung Merker


NW5: Timer
AN I15.0 //Schwimmerschalter
L #Abschattime_S5 //Zeit für S5T
SF T50 //Timer Abschaltverzögert
A Q22.0 //Geschalteter Ausgang, der verzögert wird
R T50


NW6: Ausgangsschaltung

A(
A M254.0 //Funktion im Automodus
A I 15.0 //Schwimmerschalter Öffner
AN T50 //Blockadetimer
A(
L MD250 //Aktuelle Temperatur des Produkts
L DB2.DBD4 // Temp, ber der die Kühlung einschalten soll
>=R
)
O
AN M254.0 //Funktion im Automodus
A M245.2 //Kühlung Ein HAND
A I15.0 //Schwimmerschalter Öffner
)
S M254.1 //Merker Ausgang Kühlung AN
A(
A M254.0 //Funktion im Automodus
A(
L MD250 //Aktuelle Temperatur des Produkts
L DB2.DBD8 //Temperatur, bei der Kühlung ausgehen soll
<=R
)
O 
AN M254.0 //Funktion im Automodus
AN M245.2 // Kühlung Ein HAND
)
ON I15.0 //Schwimmerschalter Öffner
R M254.1 //Merker Ausgang Kühlung AN


NW7: Auto/Hand

A M245.3 //HMI - Autobutton
= M245.0 //Funktion im Automodus


NW8: Out

A M254.1 //Merker Ausgang Kühlung AN
= Q22.0 //Ausgand: Kühlung EIN
 
Zuletzt bearbeitet:
Zurück
Oben