Befehl 3-5 mal pro Sekunde senden

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 24.01.2010, 13:39

Hallo!

Ich möchte gerne einen Befehl ca. 3-5 mal pro Sekunde senden.

Empfänger einschalten
warte("00:00:01")
...

So ist es ab nur möglich das ganze einmal pro Sekunde zu machen.

Über ein Makro möchte ich den Empfänger starten.

starte(Empfänger)

Gruß
Maik

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von buempi » 24.01.2010, 14:46

Hallo Maik

Du kannst mit einer Zahlenvariable auch kürzere "WARTE" machen:

Code: Alles auswählen

** Variable Fuenftelsekunde, Typ Zahl, Startwert 0,0
** Der Tag hat 86'400 Sekunden; 1/5 Sekunde also 1/432000 Tag

Fuenftelsekunde := 1/432000
warte(Fuenftelsekunde)
Viele Grüsse
Bümpi

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 24.01.2010, 14:59

Hallo Bümpi,

Du schreibst ja bald in Echtzeit ;)

Danke, werde ich so machen!

Schönen Sonntag noch!

Gruß
Maik

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 28.01.2010, 21:51

Hallo Bümpi,

habe es so gemacht, es geht aber darf ich das so machen oder ist das nicht richtig/gut?

Code: Alles auswählen

warte(1/432000)
Gruß
Maik

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von buempi » 29.01.2010, 06:33

Hallo Mike

Bei mir funktioniert es nicht so. Ich kann keine Rechenoperation als Parameter für das WARTE() verwenden. Dann wird es übersprungen. Also auch bei WARTE(1/2) wird nicht ein halber Tag lang gewartet. Geht das bei dir?

Viele Grüsse
Bümpi

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 29.01.2010, 14:09

Hallo Bümpi,

ja hast recht, es wird übersprungen.

Durch das warte(1/2) wird aber dennoch eine kurze Verzögerung erzielt, das sah dann so wie eine 1/5sek aus :oops:

Gut das ich nochmal doof gefragt habe.

Danke!

MfG
Maik

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 01.02.2010, 22:52

Hallo,
nochmal gefragt ;)

In der INI Textdatei:
BeleuchtungWarteZeit1 = "1/2160" (wird gelesen und zugewiesen)

In der INI Datei
BeleuchtungWarteZeit = Zeichen

Im Empfänger:
EM_DI_AQ_Licht_3111.WarteZeit = Zahl (0,0)

In der INI Datei:
EM_DI_AQ_Licht_3111.WarteZeit := BeleuchtungWarteZeit

Jetzt wird der Wert nicht zugewiesen. Wie muss ich das machen, das er den gelesenen Wert als Zahl interpretiert wird?

Gruß
Maik

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von tsa » 02.02.2010, 03:31

Mann bist Du gut im Informationen zurückhalten!
Eigentlich verstehe ich nur Bahnhof.

Ich versuche es trotzdem mal:
In einer INI-Datei kannst Du keine Rechenoperationen ausführen!!!
Das ganze könnte zwar als Zeichenkette eingelesen werden, aber niemand kann das weiterverarbeiten (es sei denn, Du programmierst einen Parser, der der die Zeichenkette auseinandernimmt und interpretiert...)
Also: einige Dich in der Inidatei auf eine feste EINHEIT (z.B. Millisekunden) und gib den Wert in dieser Einheit an.
Dann liest Du den Wert wie gehabt ein. Wenn er letztendlich in der Zahlenvariable steht, kannst Du ihn mit einer Rechenoperation in den Bruchteil eines Tages umrechnen, so wie es die WARTE-Funktion dann versteht.

Gruss
Thomas

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von mfreye » 05.02.2010, 20:14

Hallo!
Mann bist Du gut im Informationen zurückhalten!
Sorry, wollte ich garnicht :(
Eigentlich verstehe ich nur Bahnhof.


Ich versuche es trotzdem mal:
Danke! Hast schon alles richtig verstanden.

Übergebe jetzt nur den Wert!

Aber ich verstehe es dennoch nicht mit den Zeiten :oops:

1/5 sek. = 1/432000
1 sek. = 1/86400
40 sek. = 1/2160

soweit passt das.

60 sek. = 1/1440

ab da geht das nicht.

Wenn Bümpi jetzt auch sagt das 1/2 ein Tag ist :roll:

Wäre es nicht so:

1/2 ist genau ein halber Tag oder 12 Stunden
1/24 ist genau eine Stunde
1/1440 ist genau eine Minute
1/86400 ist genau eine Sekunde

Wenn ich Warte mit einer Zahl übergebe, was gebe ich da dann an?

Schönen Abend
Maik

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl 3-5 mal pro Sekunde senden

Beitrag von buempi » 05.02.2010, 21:27

Hallo Maik
mfreye hat geschrieben:Wäre es nicht so:
1/2 ist genau ein halber Tag oder 12 Stunden
1/24 ist genau eine Stunde
1/1440 ist genau eine Minute
1/86400 ist genau eine Sekunde
Doch, genau so ist es. Ich habe doch nicht gesagt, das 1/2 ein Tag sei, sondern von einem halben Tag gesprochen.
mfreye hat geschrieben:60 sek. = 1/1440
ab da geht das nicht
Was geht da bei dir nicht? Hab's eben ausprobiert - bei mir wartet er eine Minute; wie es sein soll.
mfreye hat geschrieben:Wenn ich Warte mit einer Zahl übergebe, was gebe ich da dann an
Eben: Eine Dezimalzahl, welche dem zu wartenden Bruchteil eines Tages entspricht. Also für eine Minute z.B. 0,0006944444. Bequemer: Eine Variable, der du vorher über 1/1440 diesen Wert zugewiesen hast.

Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“