TXT Uhrzeit zerlegen

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
GuruGuru
Beiträge: 12
Registriert: 19 Feb 2017, 15:21

TXT Uhrzeit zerlegen

Beitrag von GuruGuru » 09 Feb 2018, 18:16

Hallo FT-Freunde,

ich benötige für den Bau einer Elektromechanischen Uhr die Minuten bzw. Stunden zerlegt in jeweils 2 Variablen.

z.B. Uhrzeit = 14:56

Stunde zerlegt in Variable "S1" = 1, Variable "S2" = 4
Minute zerlegt in Variable "M1" = 5, Variable "M2" = 6

Kann mir jemand einen Tip geben, wie ich das in Robo Pro umsetzen kann? (TXT Controller)

Grüße Gerd

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: TXT Uhrzeit zerlegen

Beitrag von hamlet » 09 Feb 2018, 20:59

Hallo Gerd,
Du kannst die Werte mit einer Ganzzahldivision durch 10 und dem Rest (Modulo) in Zehner und Einer aufteilen. Hier ein kleines Beispielprogramm:
robo1.PNG
robo2.PNG
robo2.PNG (5.29 KiB) 3899 mal betrachtet
Beste Grüße,
Helmut
Zuletzt geändert von hamlet am 28 Okt 2018, 14:54, insgesamt 1-mal geändert.

GuruGuru
Beiträge: 12
Registriert: 19 Feb 2017, 15:21

Re: TXT Uhrzeit zerlegen

Beitrag von GuruGuru » 10 Feb 2018, 13:37

Halo Helmut,

vielen Dank, funktioniert ja super....leider verstehe ich noch nicht ganz genau wie, werde mich aber mal darin vertiefen. Sollte ich zu keinem Ergebnis kommen, wäre es möglich, dass ich dich noch um die eine oder andere Erklärung bitten würde.

Grüße aus dem Norden der Republik

Gerd

GuruGuru
Beiträge: 12
Registriert: 19 Feb 2017, 15:21

Re: TXT Uhrzeit zerlegen

Beitrag von GuruGuru » 20 Feb 2018, 18:03

Hallo Helmut,

ich schon wieder....(-;

Also das mit der Ganzzahlendivision klappt sehr gut (verstehe ich auch...)

Jetzt stellt sich mir folgendes Problem: Die Uhr die ich konstruiere, hat eine Weltzeitfunktion.
- Ich habe die Controllerzeit in Stunden (z.B. 14 Uhr) - Zeitzone UTC+1 = MEZ
- Ich möchet die Uhrzeit z.B. in New York anzeigen lassen (UTC-5) - also 6 Stunden Differenz zu uns
- Also könnte ich von der aktuellen Zeit ( z.B. 14 Uhr) - 6 Stunden abziehen und hätte 8 Uhr - alles o.k.

Was mache ich, wenn es aber z.B. 3 Uhr ist und ich 6 Stunden abziehe dann ist es -3 Uhr (soll aber 21 Uhr sein....)

Hast du für dieses Problem auch so eine elegante mathematische Lösung ?

Grüße Gerd
Dateianhänge
20180220_175222.jpg

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: TXT Uhrzeit zerlegen

Beitrag von hamlet » 20 Feb 2018, 19:04

Hallo Gerd,
Ein sehr schönes Modell! Die Paternoster-Digital-Anzeige find ich große Klasse. Kann man mit dem Zeiger oben etwa die Zeitzone wählen?
Um die Stunden nach Addition des UTC-Offsets wieder ins Intervall 0..23 zu bringen kannst Du wieder die Modulofunktion (Divisionsrest) verwenden:
robo3.PNG
robo3.PNG (6 KiB) 3613 mal betrachtet
Zunächst werden aber noch 24h addiert um bei negativen UTC offsets evtl. aus dem negativen Bereich zu kommen. Läuft man oben aus dem 0..23 Intervall, bringt der Modulo einen wieder zurück, z.B 27 % 24 = 3.
Ich habe das Beispielprogramm angepasst.
Viele Grüße,
Helmut

GuruGuru
Beiträge: 12
Registriert: 19 Feb 2017, 15:21

Re: TXT Uhrzeit zerlegen

Beitrag von GuruGuru » 20 Feb 2018, 20:50

Hallo Helmut,

vielen Dank für "Vorschusslorbeeren"....bisher läuft die Maschine nur "hardwareseitig" rund, softwareseitig gibts noch einiges zu tun..., aber ich bin guter Dinge (-:

Ja, das oben ist ein Zeitzonenschieber (siehe angehängtes Bild). Der Plan ist,
1. User wählt Zeitzone aus
2. Maschine fährt auf den vier "Paternostern" die jeweilige Uhrzeit an (Positionsbestimmung über Fototransistoren)
3. Maschine fährt wieder auf "Ruheposition"

Trotz meiner beschränkten Erfahrungen mit RoboPro ist es mir schon mal gelungen die Grundfunktionen zu programmieren.https://1drv.ms/u/s!Ao8EeXiFlAfSqmk6FSouhJ-cKus-
Einzeln funktioniert das auch alles ganz gut, nur wenn ich das verbinde gibt´s Probleme...

Wie würdest du grundsätzlich ein solches Programm aufbauen?
Hier noch eine ausführlichere Funktionsbeschreibung https://1drv.ms/b/s!Ao8EeXiFlAfSqmo4Ew9NpsDfUQhK

Gruß Gerd
Dateianhänge
20180220_195928.jpg

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: TXT Uhrzeit zerlegen

Beitrag von hamlet » 22 Feb 2018, 19:45

Hallo Gerd,
Dein Programm sieht doch schon gar nicht so schlecht aus. Aber es ist ganz schön kompliziert geraten. Dein Programm hat zwölf parallele Prozesse, die teilweise konkurrierend von Eingängen getriggert werden, dieselben Motoren ansteuern und sich zusätzlich über globale Variablen gegenseitig beeinflussen. Das ist das beste Rezept, ganz schnell den Überblick zu verlieren. Meiner Meinung ist unser Verstand nicht so multitaskingfähig, wie das manche von sich behaupten. Die Synchronisierung paralleler Prozesse ist alles andere als trivial. Da gibt's immer wieder Überraschungen.
In Deiner Doku hast Du doch den gewünschten Ablauf Deines Programms sehr gut aufgeschrieben. Da ist aber gar nichts parallel, das läuft alles schön hintereinander ab. Da steht genau das, was Dein Hauptprozess nacheinander tun sollte. Das einzige was parallel laufen sollte ist die gleichzeitige Aktualisierung der vier Paternoster Ziffern. Das kannst Du ganz ähnlich realisieren wie in der Bibliotheksfunktion "Pos All" im Unterordner "Position".
robo4.PNG
Dort werden die die vier Motoren auf temporären parallelen Prozessen auf die angeforderten Positionen gefahren und erst, wenn alle angekommen sind, geht's im Hauptprozess weiter. Die darin gerufenen Unterprogramme müsstest Du durch Deine Versionen ersetzen. Dazu könntest Du Deine Routinen "Pos Mx" und "Mx auf Zeit" zu Routinen "Mx auf Position" auf einen Prozess zusammenführen. Diese erhalten dann aber nicht die "Zeit" über eine globale Variable sondern die Zielposition, also 0..9 für die Zeitziffern oder 10/11 für die Nachrichten, von Deinem Hauptprozess. Die Routinen "Mx auf 10" werden dann überflüssig. Vielleicht geht's so …
Viele Grüße,
Helmut

GuruGuru
Beiträge: 12
Registriert: 19 Feb 2017, 15:21

Re: TXT Uhrzeit zerlegen

Beitrag von GuruGuru » 24 Feb 2018, 12:33

Hallo Helmut,

habe es geschafft das Programm soweit "runterzudampfen" das es funktioniert. (https://1drv.ms/u/s!Ao8EeXiFlAfSqm-pnBlNHO4v-J4t)
Vielen Dank noch mal für die freundliche Unterstützung...

Wenn die Maschine vollständig fertig ist, stell ich noch mal ein Vidoe rein...

LG

Gerd

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: TXT Uhrzeit zerlegen

Beitrag von hamlet » 24 Feb 2018, 13:52

Hallo Gerd,
Klasse, das freut mich und Ich freu mich schon auf das Video.

Ein Hinweis noch:
Ich habe mal die verwendeten Ein- und Ausgänge abgezählt
IF1: M1, M2, M3, M4 (alle nur rechts herum) und I1, I2, I3, I4 (alle digital)
EM1: O3, M1 (Encoderbetrieb => C1) und I1, I2, I6, I7, I8 (alle digital)
Wenn Du IF1 Motoren M1-4 nur in einer Richtung betreibst, kannst Du sie auch auf O-Ausgänge legen.
und die verbleibenden drei C-Zähl-Eingänge kannst Du auch als normale digitale Eingänge verwenden.
=>
O1-O4 für die Paternoster-Motoren, M3+C3 für den Zeitzonenwähler, O7 für die Lampe und O8 bleibt frei
I1-I4 für die Paternoster-Lichtschranken, I5-I8+C1D für die restlichen Eingänge und C2 + C4 bleiben frei
Wenn ich mich nicht verzählt habe, müsste Deine Uhr mit einem Controller realisierbar sein. Dann kannst Du gleich noch ein schickes Modell bauen (-;
Viele Grüße,
Helmut

Antworten