23.12.2020 16:01 | |
Beigetreten: 11.06.2019 Letzter Bes: 22.08.2024 Beiträge: 2219 Bewertung:
|
Wer für sein Programm die genaue aktuelle Uhrzeit oder Datum benötigt, kann das bei einer Logo, bekanntlicher Weise, nur mit einer „Hilfsuhr“ umsetzen. Dieses ist allerdings mit Problemen behaftet. Geraden nach einem Stromausfall läuft eine solche Uhr solange daneben, bis sie sich wieder mit der internen Logo-Uhr synchronisiert hat (sofern man diese programmiert hat !). Wer stolzer Besitzer von mehr als einer Logo ist und diese auch noch zusammen in einem Netzwerk betreibt, kann sich die Uhrzeit von einer der anderen Logos „klauen“. Voraussetzung: Für die Durchführung benötigt man zwei Logos, die am besten noch NTP unterstützen. Dieses ist von Vorteil, da Programmblöcke, wie Jahres- und Wochenschaltuhr, sowie die astronomische Uhr nur auf die Logo-Uhr zugreifen, auf dem das Programm läuft. Weiterhin ist es wichtig das die aktuelle Firmware installiert ist. Bei Tests mit älter FW wurden die Daten nach Spannungswiederkehr nicht mehr bearbeitet. Vorab: Für die Übersichtlichkeit der folgende Beschreibung mit zwei Logos, benenne ich diese „Zeitserver“ und „Zeitempfänger“. Der „Zeitserver“ ist die Logo, von der die Uhrzeit abgefragt wird. Zusätzlich ist er der NTP-Server. Der „Zeitempfänger“ ruft beim „Zeitserver“ die bereitgestellten Uhrendaten ab und verarbeitet diese in seinem Programm. Auf die NTP-Verbindung NTP-Server mit NTP-Clint gehe ich hier nicht gesondert ein. Dieses ist bitte dem Handbuch zu entnehmen. Durchführung: Schritt 1: Beim „Zeitserver“ muß nur eine S7-Server-Verbindung zu einem Fremdgerät eingerichtet werden. Bis auf die Auswahl „Alle Verbind.anfragen Serverseite annehmen“ wird dort nichts weiteres aktiviert, bzw eingetragen. Schritt 2: Beim „Zeitempfänger“ muß eine S7-Clint-Verbindung zu einem Fremdgerät eingerichtet werden. Dort muß beim Eintrag des Fremdgerätes die IP-Adresse und der richtige TASP des „Zeitservers“ eingetragen werden! Nun kann man in der Tabelle „Datenübertragung" die nicht zugänglichen VB-Adressen des „Zeitservers“ abfragen und sie einer zugänglichen VB-Adressen des „Zeitempfängers“ zuordnen. Die dafür benötigten, normal nicht zugänglichen, VB-Adressen können im LSC-Handbuch oder im Netz nachgeschlagen werden. Schritt 3: Über die analogen Netzwerk-Eingänge können die zugeordneten VB´s verarbeitet werde. Um aber brauchbare Werte zu bekommen, müssen diese Eingangswerte zuvor noch mit Hilfe der arithmetischen Funktion durch 256 geteilt werden. Bei der Abfrage des Jahres empfiehlt es sich zu diesem Ergebnis noch die Zahl 2000 zu addieren. Somit hat man dann eine vollständige Jahreszahl.
Gruß Ella_68 DateianhangUhrentest mit 2 Logos.zip (277 Downloads) |
Für diesen Beitrag bedanken sich
3 Benutzer |
28.12.2020 15:17 | |
Beigetreten: 22.02.2008 Letzter Bes: 06.08.2024 Beiträge: 2698 Bewertung:
|
Habe dein Programm mal so geändert, wie ich es mir vorgestellt hatte, kann es zur Zeit aber nicht testen. Hast du es genauso ausprobiert ? Von meiner Logik her sollte es eigentlich gehen, durch 256 dividieren ist hier gleichbedeutend mit einem Byte Versatz. Bei dem Beispiel mit den VB101,103,105,107,109,111,113 ist es natürlich zwingend erforderlich, dass die Bytes VB100,102,104,106,108,110,112 gleich Null sind, also nicht anderweitig überschrieben werden. Und natürlich ist deine Variante schon mehr als gut, da sie ja den entscheidenden Hinweis für den Trick gibt. Hier ging es ja nur noch um Einsparung von Resourcen. Irgend jemand hat mir in meiner Kindheit beigebracht, sorgsam mit Resourcen umzugehen. Das hat sich bis heute so gehalten. M.f.G. Scorp DateianhangUhrentest mit 2 Logos V2.zip (221 Downloads) |
Für diesen Beitrag bedanken sich
1 Benutzer |
Folgen Sie uns auf