Deutsch - Applikationen > Allgemein

Beregnungsprogramm Tennisplätze

(1/1)

schreatza:
Hallo zusammen!

Ich bin Neueinsteiger in ST-Programmierung. Das Programm soll die Steuerung der Beregnung von 6 Tennisplätzen übernehmen. Programmiert ist bisher nur die "Handauslösung" der Öffnung der Magnetventile über den Eingang I17 (hier bisher natürlich nur die Öffnung EINES Magnetventils für einen Platz... I17...). Die Beregnung läuft für 10 Sekunden. Die Eingänge I23 und I31 sind Stopp-Taster (Öffner), um das Programm (eventuell) vorzeitig zu stoppen.
Die Beregnungsdauer wurde über den selbsterstellten Timer-Funktionsbaustein "Erfolg3" realisiert. Hier nun mein Problem: Der Start des Timerbausteins wird vom Hauptprogramm richtig an den Funktionsbaustein übergeben. Dieser läuft auch die 10 Sekunden durch. Er lässt sich auch (vorzeitig) mit den Stopp-Tastern (Öffner) beenden. Danach bleibt der Funktionsbaustein "stehen".
Mir ist es bisher nicht gelungen, entweder die Merker des Funktionsbausteines wieder zurückzusetzen und/oder die Bearbeitung vom Funktionsbaustein wieder an das Hauptprogramm zuruckzugeben, damit der Timerbaustein danach wieder "scharf" ist und auf die nächste "Auslösung" warten kann...
Hat da jemand eine Idee?
Programm ist als ZIP dabei.

FW: 1.30, easySoft: 7.30

Eulhofer:
Hallo schreatza,

ich bin zwar auch nicht so fit in ST, aber mir ist was aufgefallen - und hoffe, es hat was mit Deinem Problem zu tun:

Du übergibst Deinem UF vier digitale Informationen (I1-4) und erwartest eine digitale Information zurück (Q1).
Im UF schreibst Du hinter Deinem Returnbefehl als Kommentar, dass Du die Werte von M2 und M3 zurückgibst.
Wohin gibst Du sie denn? Meines Wissens sind alle M, MB, MW, die in einem UF genutzt werden lokale Variablen und für das den UF aufrufende Programm nicht sichtbar. Die globalen M2 und M3 können also völlig andere Zustände haben.
Meines Erachtens musst Du Deinem UF noch so viele digitale Ausgänge spendieren, wie Du Informationen von ihm haben möchtest. Ggf. könnte man die Zustände von einigen der lokalen Merkern als Bitfolge in ein MB oder MW bündeln und entsprechend aus dem UF ins aufrufende Programm geben (und dann wieder extrahieren). Aber wenn es nur ein paar Zustände sind, dann geht das sicher einfacher mit eigenen UF-Ausgängen.

Wie gesagt - ich kenne mich in ST nicht aus, aber wenn ich die Abarbeitung in anderen Darstellungsarten (FUP, KOP) vergleiche, dann könnte das vielleicht die Ursache für Deine Fragestellung sein...

Viele Grüße,
Wolfgang

Juergen__R:
.... ich habe da mal ein vor Jahren angefertigtes Programm angehängt.

Vielleicht ist es für den Zweck brauchbar oder kann entsprechend abgeändert werden!

Schöne Grüße, Jürgen

schreatza:
Hallo Jürgen, und Eulhofer für Eure Bemühungen!

Ich komme erst morgen Abend wieder dazu, an der Programmierung weiter zu machen. Dann schau ich mir auch das Programm von Jürgen an...

Nochmals: Vielen Dank Euch beiden!!!


Grüße schreatza

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln