TW Zeit speichern

dada

Level-2
Beiträge
35
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin ja sehr neu in der S7 Welt, daher habe ich natürlich auch viele Fragen :)

Ich habe einen Zeitbaustein S_VIMP. Am Eingang TW kommt eine Zeitangabe rein. Da ich diese nicht manuell ändern möchte, würde ich mir gerne eine Art Datenbank mit Zeit anlegen.

Was ich möchte ist, dass ich ein programm schreibe und die Zeitangabe aus einer anderen "Datenbank" genommen wird. Der TW Wert soll sozusagen verlinkt sein :)

Wie könnte ich diese Werte hinterlegen und wo? Am Ende soll zb per Wahlschalter zwischen 3 Werten umgeschaltet werden können. Dh ich brauche eine Verbindung von einem Wahlschalter auf festgelegte Werte und dem Eingang TW.

Hoffe das kann irgendwer verstehen, was ich hier von mir gebe :)

Ich mache das ganze in FUP

Grüße

Daniel
 
Zuletzt bearbeitet:
das ist recht einfach:

1. die Wertvorgabe, eine S5-Time, hat die Größe eines Wortes (beim TIME-Format wäre es ein Doppelwort)

2. erstelle drei MOVE-Bausteine (KOP / FUP), an den ersten linken Anschluss kommt Dein Anwahlbit (Stufen-Schalter), der zweite linke Anschluss bekommt Deine jeweils gewünsche S5-Time und am Ausgang (Anschluss rechte Seite) trägst Du einen Wortvariable (Format S5-Time) an.

3. anschließend trägst Du die gleiche Variable anstelle der festen Zeit, an Dein Zeitglied an.

4. der Rest bleibt beim Alten, fertig
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ganz einfach...

du legst 4 Merkerwörter vom Typ S5Time an.

Das 1. schreibst du an den S_VImp- Baustein.

In den "Übersichten" des Bausteineditors findest du unter Verschieben den Move-Baustein.
Damit kopierst du wahlweise das 2, 3, oder 4. MW auf das erste.

Statt in Merkern kannst du die Zeiten genau so in einem Datenbaustein speichern.

Viel Erfolg
Gruß
Holger
 
Nabend, das hat super geklappt.

Ich musste die Variable nur als EW10 bezeichnen. Bei EW1 hat es Probleme gegeben. Warum das so war, muss ich noch herausfinden :) Aber durch Probleme lernt man ja...

Ich danke euch. Weiter Probleme werden folgen :ROFLMAO:

Gn8

Daniel
 
Zwei Punkte:
- Worte sollten immer auf geraden Adressen liegen, daher Deine Probleme mit EW1
- Das EW (Eingangswort) ist keine so gute Wahl; wenn Du mal Hardware steckst und automatische Adressierung benutzt, kann es Dir passieren, dass Dein Eingangswort vom Betriebssystem überschrieben wird. Benutze besser ein Merkerwort (MW) oder Datenwort(DBW), immer gerade Adresse natürlich.
Gruß
Erich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo dada,

du bist dir hoffentlich auch bewusst, dass sich
Merker -Bits, -Bytes, -Worte und -Doppelworte,
Eingangs -Bits, -Bytes, -Worte und -Doppelworte,
Ausgangs -Bits, -Bytes, -Worte und -Doppelworte,
überlappen.

Wenn sich z.B. E1.0 ändert, ändert sich auch EB1, EW1, ED1 (alt und falsch:MB1, MW1 und MD1)
 
Zuletzt bearbeitet:
Nur zur Ergänzung:

Das MW10 besteht aus 16 Bit, also zwei Byte - dem MB10 und MB11. d.h. das nächste "freie" MW wäre dann das MW12. (daher immer gerade, bzw. einfach jedes zweite MW verwenden) Bei einem Doppelwort (MD) wäre es dann jedes vierte.
 
Ahhh, na das erklärt einiges :) Ich werde mich als nächstes mal mit den ganzen Speicherarten, Zuweisungen etc mal beschäftigen. Denke das wird einiges erklären. Bin da noch sehr unwissend.

Grüße

Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn sich z.B. E1.0 ändert, ändert sich auch EB1, MB1, MW1 und MD1 ;)
Wie kommst Du denn auf den Unsinn?
Außer EB1 ändert sich da nichts in Deiner Aufzählung.
Und MW1 und MD1 sollte man schon garnicht benutzen

@DADA: Glaub nicht alles, was Du im Forum liest.
 
Zuletzt bearbeitet:
Oh Sorry,

da habe ich ja die totale Verwirrung gestiftet.
Es sollte heißen:

Wenn sich z.B. E1.0 ändert, ändert sich auch EB1, EW1 und ED1

:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
 
Vielen Dank LargoD - für den Hinweis auf den Fehler.

Übrigens:
Und MW1 und MD1 sollte man schon garnicht benutzen
aber es geht.

und wenn ich z.B. ab Adr.50 Doppelworte anlege, dann mache ich das einfach, und beginne nicht erst mit MD52. MD50 gefällt mir u.U. besser :cool:

Gruß Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Holger,

wenn man die Konsequenzen kennt, kann man so was machen, da stimme ich Dir zu. Das ist aber nichts für Anfänger, und der TE hat noch nicht die erforderliche Erfahrung, deshalb sage ich ihm lieber: keine ungeraden Wortadressen usw.
Die unangenehmen Folgen solcher Aktionen fallen dann auf, wenn Du z. B. einen E/A-Bereich oder Merkerbereich in einen DB umkopierest und dann versuchst, im DB die gleiche Struktur anzulegen, dann hast Du die Aufgabe im DB ein Word an einer ungeraden Adresse anzulegen. Ich habe das noch nicht geschafft. Ich spreche nicht vom Programm, sondern von der Datenstruktur.
Aber das kann ja jeder halten wie er will.
Viele Grüße
Erich
 
Zurück
Oben