Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Adressierungsarten Hexadezimal

  1. #1
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi
    Entschuldigt bitte, habe aber eine wahrscheinlich ganz einfache Frage, stolpere aber immer wieder über dieses Thema.

    Ich möchte eine Uhrzeit aus der Echtzeituhr mit einer bestimmten Uhrzeit (Sonnenaufgang/Untergang) vergleichen, sodass ich erkennen kann ob jetzt Tag oder Nacht ist.

    Da aber die dzt. Uhrzeit in Hex ist und der Sonnenaufgang in Word ist geht sich das nie aus.
    Ich mache es dzt so:

    LDB>= #SonnenaufgangBYTE:LB2, Stunde:SMB103
    UB<= #SonnenuntergangBYTE:LB5, Stunde:SMB103
    = Tageslicht:V1747.0

    In der SMB103 ist die aktuelle Stunde, In der LB2 - LB5 ist der Sonnenaufgang/Sonnenuntergang in diesem Monat.
    Hier kommt wenn aktuell 12:00 ist eine 18
    Zitieren Zitieren Adressierungsarten Hexadezimal  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Hi,

    wie es aussieht benutzt Du eine S7-200 - richtig?

    Um das Format der Uhrzeiten zu kennen und dann zu sehen, was man besser machen kann, bräuchte man mehr Informationen:
    Woher bekommst Du die aktuelle Uhrzeit? Wie kommt die in den SMB103???
    Woher bekommst Du die Sonnenaufgang/Sonnenuntergangszeiten? Wie ist das Format im Speicher?
    Benutzt Du eine spezielle Bibliothek?
    Kannst Du uns vielleicht am Besten das Format Deiner Uhrzeitpuffer zitieren? In der normalen S7-200-Dokumentation finde ich nichts, was zu Deinen Angaben passt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    breiti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi,

    Die aktuelle Uhrzeit bekomme ich mittels

    Ja es ist eine S7 226 Rel 2.01
    LD Immer_ein:SM0.0
    TODR Jahr:SMB100

    Die Uhrzeit (vergangene Minuten) wird mittels Datenbaustein in Variablen VW1700 (und folgend) geschrieben.
    Dann ermittle ich aufgrund des Monats den ca. Sonnenaufgang/Untergang des Monats. Dann DIV ich die Minuten durch 60, sodass ich die Stunde bekomme. Diese Stunde ist dann INT

    LD Immer_ein:SM0.0
    MOVW #SonnenaufgangMINUTEN:LW6, #SonnenaufgangSTUNDE:LW0
    UENO
    /I +60, #SonnenaufgangSTUNDE:LW0
    UENO
    MOVW #SonnenuntergangMINUTEN:LW8, #SonnenuntergangSTUNDE:LW3
    /I +60, #SonnenuntergangSTUNDE:LW3

    Ich habe keine Bibiliothek

    Das Format in der SMB103 ist Byte (kommt aus der Uhr) im Hex Format. Wenn ich einen Vergleich mache funktioniert es:
    LDB= Stunde:SMB103, 16#07 - da ich dezitiert auf den Hex verweise. Dies funktioniert aber oben nicht.

    LG Robert

  4. #4
    breiti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi,
    wenn ich eine Umwandlung von Hex in Int (oder Umgekehrt) hätte wäre das Thema sicherlich erledigt.

    Die Umwandlung
    LD Immer_ein:SM0.0
    BTI Stunde:SMB103, AC1

    bringt jetzt 14:00 nicht 14 sondern 20. Dies stimmt ja, aber hier kann ich es nicht brauchen.

    LG Robert

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Aha, was nicht alles geht... ich habe noch nie in SMB geschrieben. Würde ich auch nur im äußersten Notfall tun.

    Wenn ich Dich richtig verstehe, dann hast Du
    - in LW6 die Sonnenaufgangszeit in 0..1439 Minuten seit 0:00 Uhr
    - in LW8 die Sonnenuntergangszeit in 0..1439 Minuten seit 0:00 Uhr
    - in SMB103 die Uhrzeit_Stunde in BCD 0..23
    - in SMB104 die Uhrzeit_Minute in BCD 0..59

    Dann wandele einfach die aktuelle Uhrzeit ebenfalls in 0..1439 Minuten seit 0:00 Uhr um und vergleiche dann.
    Probiere mal dieses:
    Code:
    //Network: Uhrzeit lesen und in 0..1439 Minuten seit 0:00 Uhr wandeln
    LD     Immer_ein:SM0.0
    TODR   VB100
    MOVW   VW103, VW110       // Stunde(BCD) und Minute(BCD) z.B. 2359 hex
    BCDI   VW110              // --> 100*Stunde + Minute DEZ z.B. 2359 dez
    DIV    100, VD108         // VW110/100-->VW110(Stunde) + Div.Rest-->VW108(Minute)
    *I     +60, VW110         // Stunde * 60
    +I     VW110, VW108       // --> VW108: 0..1439 Minuten seit 0:00 Uhr
    
    //Network: liegt die aktuelle Uhrzeit zwischen Sonnenaufgang und Sonnenuntergang?
    LDW>=  VW108, #Sonnenaufgang:LW6
    UW<=   VW108, #Sonnenuntergang:LW8
    =      Tageslicht:V1747.0
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    breiti (11.05.2013)

  7. #6
    breiti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi,
    echt a Wahnsinn!

    Mit BCDI hatte ich es auch probiert, jedoch als IN hatte ich das Byte genommen
    Der Kernpunkt war nun diese Zeile
    BCDI VW110

    DANKE DANKE


  8. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Hallo breiti,

    warum nutzt Du eigentlich nicht die fertige Astro-Bibliothek von Siemens?
    Entsprach sie nicht Deinen Vorstellungen, dass Du Dich da selbst rangesetzt hast? Und würdest Du Deine komplette Lösung hier zur Verfügung stellen?

  9. #8
    breiti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi hucki,
    warum ich die Bibliothek nicht verwendete? Weil ich noch keine Erfahrung damit habe ;-(
    Da ich jetzt mehr Zeit habe und damit verbringen möchte, werde ich mich da reinsaugen. Hast du bezüglich Bücher usw. Vorschläge welche ich mir zulegen sollte?
    Dzt. mache ich alles laut den Handbüchern von Siemens und der online Hilfe. Stehe da natürlich schnell an.
    Dzt. läuft schon einiges bei meiner Haustechnik.
    Heizungsregelung (ohne PID), Lichtsteuerung, Alarmanlage, Bewässerungsanlage, TD200er Tableau
    Jetzt kommt noch eine Zusammenschaltung von 2Stück 226er, da ich mit den Ein-und Ausgängen nicht mehr auskomme und die Anzahl der Verbindungskabel zu Ende geht. Weiters werde ich demnächst einen LOG einsetzen um Auswertungen in Excel zu machen.
    Was ich dzt. "verbrochen" habe kann ich dir gerne schicken - aber lache nicht zuviel darüber. Wie soll ich es senden?
    LG Robert

  10. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von breiti Beitrag anzeigen
    Was ich dzt. "verbrochen" habe kann ich dir gerne schicken - aber lache nicht zuviel darüber.
    Ich hab' nicht nach Deiner Lösung gefragt, um darüber zu lachen, sondern um mir andere Wege anzusehen und zu schauen, in wie weit es meine Art zu programmieren vlt. verbessern kann.


    Ich hab' in meinem "Programmiererleben" erst ein reales Projekt (für meinen Arbeitgeber) vorliegen gehabt. Alles andere, was von mir z.B. hier im Forum so rumschwirrt, ist für mich nur virtuell und diente eben dem Nichtvergessen und Weiterentwickeln. Das ist auch das Einzige, was ich Dir empfehlen kann - immer wieder an irgendwelchen Beispielen mal eigene Programme zu schreiben, auch wenn Du's real nicht unbedingt benötigst.

    Irgendwelche Bücher hatte ich nicht. Meine größte Hilfe nach der Einführung durch einen dreimonatigen S7-Kurs war und ist dieses Forum. Ich möchte da neben vielen, vielen anderen vor allem mal PN/DP hervorheben, der einen oft mit viel Geduld an seinem Wissen teilhaben läßt. Ist nicht umsonst (und m.W.n. auch nicht das erste Mal) "User des Jahres".


    In diesem Thread hatte ich mich so dann auch an 'ner Rollladensteuerung mit 'ner S7-200 versucht und wie man weiter unten dann sieht, mit mehr gesammeltem Wissen auch noch mal mit anderer Herangehensweise neu gestaltet. Meine eigenen Rollläden werden aber noch konventionell und in Zukunft über EIB/KNX gesteuert.


    Hab' vor ca 11 Jahren einen AutoCAD-Kurs gemacht und seitdem fast nichts mehr gezeichnet. Ich denke, ich hatte das in dem halben Jahr wirklich gut drauf und jetzt steh ich im Prinzip wieder da, wo ich vor dem Kurs war, nur weil ich nicht dran geblieben bin. Das soll mir mit dem SPS-Programmieren nicht passieren. Deshalb bin ich hier im Forum oft mit dabei.
    Geändert von hucki (12.05.2013 um 11:51 Uhr)

  11. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    PN/DP (12.05.2013)

  12. #10
    breiti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2013
    Ort
    Linz Österreich
    Beiträge
    21
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    war auch mit einem Zwinkern gemeint - wie soll ich dir mein Projekt senden?

    Sitze eben über der Rolladensteuerung und versuche mich reinzudenken.
    LG Robert

Ähnliche Themen

  1. Hexadezimal im FUP
    Von Boris7 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 02.10.2010, 09:16
  2. Doppelinteger in Hexadezimal wandeln ohne DTB
    Von sailor im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 17.01.2010, 17:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •