Funktion/Variable mit default wert

spswing

New member
Beiträge
2
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo SPSler,

ich bin neu hier und freue mich, dass es ein Forum rund um die SPS gibt. Ich selbst arbeite mit Phoenix Contact.

Ich würde gerne eine Variable/FB/Funktion mit einem integer Wert als default setzen, z.B. 4, solange ich dieser keinen anderen integer Wert, z.B. 7, zuweise. Habt ihr eine Idee wie ich das realisieren könnte?

Gruss
spswing
 
Zuletzt bearbeitet von einem Moderator:
OP
S

spswing

New member
Beiträge
2
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Ich habe ein Endlosschleife, welches nach jedem Beenden (bzw. wieder Sprung an den Anfang) ein Singal rausgibt. Ich möchte aber die Ausgabe, wann das Signal kommt, kontrollieren. Das heißt: Wenn ich den integer Wert 4 eingebe, möchte ich, dass das Signal nach jedem 4. loop kommt. Falls ich keinen Wert eingebe, dass das Signal nach jedem 7. loop kommt.
 

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.148
Punkte Reaktionen
2.745
Eine Endlosschleife halte ich (egal bei welcher SPS) für bedenklich.

Das, was du beschrieben hast, könntest du z.B. realisieren in dem du vor dem Aufruf deiner "Schleife" die IN-Variable in eine interne Variable überträgst und dort den Wert überprüfst. Ist er nicht so, wie es dir gefällt, dann schreibst du das da rein, was du drin haben willst. Mit dieser neuen Variablen arbeitest du dann in der Folge ... (also in der "Schleife")

Gruß
Larry
 

Phoenix Contact

Support
Beiträge
522
Punkte Reaktionen
92
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo spswing,

neben der Möglichkeit, die Larry Laffer beschrieben hat, geben es noch 2 weitere:

- Eingangsparameter mit Anfangswert ( kann in der Variablentabelle angegeben werden )
- Parameter als In/Out definieren ( In/Out Variablen können aus dem FB heraus beschrieben werden. Man kann damit bei Nichtbeschaltung einen Defaultwert schreiben )

Ich denke auch, dass es vielleicht hilfreich sein wird, wenn Du mal kurz Deine Anwendung beschreibst. Dann ergeben sich bestimmt noch andere Möglichkeiten.

Freundliche Grüße
Markus v. Schlichtkrull
 

W-Student

Member
Beiträge
6
Punkte Reaktionen
0
Hallo,

ich würde deine variable mit einem "Comparator/vergleicher" vergleichen und ist diese ungleich null dann soll er denn anderen wert nehmen.
In einer Schleife würde ich das in einer SPS Anwendung auch nicht machen denn diese läuft ja zyklisch, sondern einfach noch einen Counter neben bei laufen lassen mit einem nachgeschalteten Comperator .

Fals nicht ganz verständlich bitte nochmal schreiben.
 

Drutbluck

Well-known member
Beiträge
68
Punkte Reaktionen
6
Zuviel Werbung?
->Hier kostenlos registrieren
1. Möglichkeit: Vor der Endlosschleife (also bei Step7 im ob100) die Defaultwerte eintragen, in der Endlosschleife (bei Step7 im ob1) bei Bedarf den gültigen Wert zuweisen.

2. Möglichkeit: Einen Initialisierungsbefehl/-funktion/-variable anlegen, der für das Eintragen der Defaultwerte sorgt.

Hinweis: Nach meiner Erfahrung geht es beim Zählen von Zyklen meist um eine Zeit. In dem Fall ändere ich irgendwann den Code so, dass die Zeit gezählt wird (statt Zyklen).

Aber wahrscheinlich ist spswing schon längst auf eine passende Lösung gekommen.
 
Oben