Zählerauslesen - Datenmüll?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Pluto25 schrieb:

      Ein viertel Flash für eine ungenaue Berechnung.
      Schon wieder so eine pauschale Behauptung. Ein Viertel von was? Und wie ungenau?
      Zeige doch mal deinen Code der das ungenaue Ergebnis liefert.

      Wenn ich sowas mache:

      BASCOM-Quellcode

      1. Dim Dw As Dword
      2. Dim Dd , Dtemp As Double
      3. Dw = &H00000078
      4. Dtemp = Dw
      5. Dd = Dtemp * &H100000000
      6. Dw = &H53095E4C
      7. Dtemp = Dw
      8. Dd = Dd + Dtemp
      Kommt da der exakt richtige Wert für DD raus 516789198412.
      Die beiden Werte dür DW können dann per Overlay oder auch direkt beim Einlesen in die variable abgelegt werden. Und ja, beim erstmaligen Verwenden von Double wird die Lib mit reingeladen, was Flash verbraucht. Und ja, die Berechnung dauert schon einige 100 Takte. Na und, Hauptsache korrekt.

      Mitch64 schrieb:

      Wie kommst du denn auf diesen Umrechnungsfaktor 0,65536?
      Die Umrechnung ist im Prinzip schon ok, wobei dabei dann auch wieder Double benutzt wird, mit den gleichen Nebenwirkungen, also kann man auch richtig rechnen. Hierbei werden ja die letzten Stellen &H5E4C abgeschnitten, sodass das Ergebnis natürlich nicht mehr ganz genau stimmt.
      Man könnte es ganz in Integer auch so machen:
      &H7853095E / 3906 = 516822, ein Fehler von weit unter 1 Promille.

      Mitch64 schrieb:

      Und warum soll das mit dem Overlay nicht gehen?

      Ein Double wird in 8 Byte (ein Single in 4 Byte) gespeichert. Will man ein Double übertragen, würden also 8 Hexwerte übertragen. Fügt man die im Empfänger wieder zusammen, hat man seinen Double wieder.
      Du kannst nicht &H0000007853095E4C als Bytes per Overlay in eine Double Variable schreiben und dann erwarten, dass dort der Wert 516789198412. Dabei wird doch, anders als bei der stumpfen Übertragung der Bytes, der Inhalt in einer bestimmten Weise (Exponent und Mantisse) interpretiert.
    • Franz schrieb:

      Kommt da der exakt richtige Wert für DD raus
      Es ging darum einen brauchbaren Wert in 4 Byte zu speichern. Würde er 8 Byte speichern wollen kann er gleich den Orginalwert nehmen, der stimmt dann immer nicht nur zufällig manchmal.
      Das Promille kann zum Problem werden wenn ein Zählerstand gespeichert wird. Da sollten schon die angezeigten Ziffern stimmen. Wird er hoch genug ist das Promille der Wochenverbrauch.
    • Also es funktioniert einwandfrei. Ich hatte nur einen Denkfehler. die arrayVariable "bytestand" in der die einzelnen ankommmenden Byte gespeichert werden, war auch auf byte deklariert. Ich shifte die dann ja nach links und pack sie in eine double. Mein Denkfehler war allerdings, dass ich dachte er schiebt zuerst und shiftet dann. Er shiftet aber zuerst in der Variablen bytestand und da hat er mir die natürlich alle rausgeschoben.
    • Hallo,
      habt ihr auch ein Codeschnipsel?
      Ich habe mich mal an meinen Zähler (Landis+Gyr E320) angesteckt.
      Der sendet auch gleich los.Ich dacht man muss das erst Anstoßen.

      Ich hatte die Hoffnung auf
      Aktuelle Bezugs Leistung
      und
      Einspeise Leistung

      Quellcode

      1. Terminal log file
      2. Date: 02.08.2022 - 21:03:16
      3. -----------------------------------------------
      4. 1B 1B 1B 1B 01 01 01 01 76 05 00 F3 5A 61 62 00
      5. 62 00 72 63 01 01 76 01 07 FF FF FF FF FF FF 05
      6. 00 51 1E 20 0B 0A 01 4C 47 5A 00 03 92 E0 24 72
      7. 62 01 65 00 51 27 00 01 63 DE DD 00 76 05 00 F3
      8. 5A 62 62 00 62 00 72 63 07 01 77 07 FF FF FF FF
      9. FF FF 0B 0A 01 4C 47 5A 00 03 92 E0 24 07 01 00
      10. 62 0A FF FF 72 62 01 65 00 51 27 00 74 77 07 01
      11. 00 60 32 01 01 01 01 01 01 04 4C 47 5A 01 77 07
      12. 01 00 60 01 00 FF 01 01 01 01 0B 0A 01 4C 47 5A
      13. 00 03 92 E0 24 01 77 07 01 00 01 08 00 FF 65 00
      14. 1C 05 04 72 62 01 65 00 51 27 00 62 1E 52 03 69
      15. 00 00 00 00 00 00 02 80 01 77 07 01 00 02 08 00
      16. FF 01 72 62 01 65 00 51 27 00 62 1E 52 03 69 00
      17. 00 00 00 00 00 02 A8 01 01 01 63 60 C3 00 76 05
      18. 00 F3 5A 63 62 00 62 00 72 63 02 01 71 01 63 BC
      19. C7 00 00 00 1B 1B 1B 1B 1A 02 A2 EC
      20. 1B 1B 1B 1B
      21. 01 01 01 01 76 05 00 F3 5A 64 62 00 62 00 72 63
      Alles anzeigen
      Tipp ? Link?
      Danke

      Edit:
      Infos :
      5.5.2 Optische Schnittstelle: INFO DSS
      Datenschübe
      Die optische INFO‐Schnittstelle arbeitet in zwei Modi:
      Standard und Erweitert.
      Die folgenden Daten werden periodisch jede Sekunde von der INFO‐Schnittstelle gepusht.
      - Herstellerkennung
      - Gerätekennung
      - Zählerstand für +A (falls vorhanden)
      - Zählerstand für ‐A (falls vorhanden)
      - Momentanleistung (falls aktiviert)
      Kommunikationsparameter
      Der Kommunikationskanal hat folgende Parameter:
      - Bitrate 9600 Baud
      - Code 8‐N‐1

      Edit;
      Den erforderlichen Code Pin habe ichbeantragt ….
      Das ist ja eine tolle Lösung mit dem Taschenlampe „geblinke“
      Dafür müsst man ja auch schon was „Programmieren“

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von HansHans ()

    • Quellcode

      1. Terminal log file
      2. Date: 02.08.2022 - 21:03:16
      3. umgeschichtet
      4. -----------------------------------------------
      5. 1B 1B 1B 1B
      6. 01 01 01 01
      7. 76
      8. 05 00 F3 5A 61 62
      9. 00
      10. 62
      11. 00 72 63 01
      12. 01
      13. 76
      14. 01
      15. 07 FF FF FF FF FF FF
      16. 05 00 51 1E 20 0B
      17. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      18. 72 62
      19. 01
      20. 65 00 51 27 00 01 63 DE DD 00
      21. 76
      22. 05
      23. 00 F3 5A 62 62 00 62 00 72 63 07
      24. 01
      25. 77
      26. 07 FF FF FF FF FF FF
      27. 0B
      28. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      29. 07 01 00 62 0A FF FF 72 62 01 65 00 51 27 00 74
      30. 77
      31. 07 01 00 60 32 01 01
      32. 01 01 01 01 04 4C 47 5A
      33. 01
      34. 77
      35. 07 01 00 60 01 00 FF
      36. 01 01 01 01 0B
      37. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      38. 01
      39. 77
      40. 07 01 00 01 08 00 FF
      41. 65 00 1C 05 04 72 62 01 65 00 51 27 00 62 1E 52 03 69 00 00 00 00 00 00 02 80
      42. 01
      43. 77
      44. 07 01 00 02 08 00 FF
      45. 01 72 62 01 65 00 51 27 00 62 1E 52 03 69 00 00 00 00 00 00 02 A8 01 01 01 63 60 C3 00
      46. 76
      47. 05
      48. 00 F3 5A 63 62 00 62 00 72 63 02 01 71 01 63 BC C7 00 00 00
      49. 1B 1B 1B 1B
      50. 1A 02 A2 EC
      51. --ENDE_
      52. **NEU**
      53. 1B 1B 1B 1B
      54. 01 01 01 01
      55. 76 05 00 F3 5A 64 62 00 62 00
      56. 72 63 01 01 76 01 07 FF FF FF FF FF FF 05 00 51 1E 21
      57. 0B 0A 01 4C 47 5A 00 03 92 E0 24 72 62 01 65 00
      58. 51 27 01 01 63 AF 2B 00 76 05 00 F3 5A 65 62 00
      59. 62 00 72 63 07 01
      60. 77 07 FF FF FF FF FF FF 0B 0A 01 4C 47 5A 00 03 92 E0 24 07 01 00 62 0A FF FF 72 62 01 65 00 51 27 01 74
      61. 77 07 01 00 60 32 01 01 01 01 01 01 04 4C 47 5A 01
      62. 77 07 01 00 60 01 00 FF 01 01 01 01 0B 0A 01 4C 47 5A 00 03 92 E0 24 01
      63. 77 07 01 00 01 08 00
      64. -----------------------------------------------
      65. Date: 02.08.2022 - 21:03:39
      66. End log file
      Alles anzeigen
      Ergibt meine Umschichtung so Sinn ?
    • Kann ich nicht ausschließen ....
      aber passen tut da doch schon was
      Das ist halt ein kompletter Block der alle Sekunde ankommt
      Ich log dann nochmal neu ... Habe auch die Pin heute bekommen

      Quellcode

      1. Terminal log file
      2. Date: 02.08.2022 - 21:03:16
      3. umgeschichtet V2
      4. -----------------------------------------------
      5. 1B 1B 1B 1B :// Escape-Sequenz
      6. 01 01 01 01 :// Beginn einer Nachricht‘
      7. 76
      8. 05
      9. 00 F3 5A 61 :// ID
      10. 62 00
      11. 62 00
      12. 72
      13. 63 01 01
      14. 76
      15. 01
      16. 07 FF FF FF FF FF FF
      17. 05 00 51 1E 20
      18. 0B
      19. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      20. 72 62
      21. 01
      22. 65 00 51 27 00 01
      23. 63 DE DD ://Prüfsumme ?
      24. 00 ://END SML
      25. 76
      26. 05
      27. 00 F3 5A 62
      28. 62 00
      29. 62 00
      30. 72
      31. 63 07 01
      32. 77
      33. 07 FF FF FF FF FF FF
      34. 0B
      35. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      36. 07 01 00 62 0A FF FF
      37. 72
      38. 62 01
      39. 65 00 51 27 00 74 :// UpTime ?
      40. 77
      41. 07 01 00 60 32 01 01
      42. 01
      43. 01
      44. 01
      45. 01
      46. 04 4C 47 5A
      47. 01
      48. 77
      49. 07 01 00 60 01 00 FF
      50. 01
      51. 01
      52. 01
      53. 01
      54. 0B
      55. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      56. 01
      57. 77
      58. 07 01 00 01 08 00 FF
      59. 65 00 1C 05 04 72 62
      60. 01
      61. 65 00 51 27 00 62 1E 52 03
      62. 69
      63. 00 00 00 00 00 00 02 80 :// Stand
      64. 01
      65. 77
      66. 07 01 00 02 08 00 FF
      67. 01
      68. 72 62 01 65 00 51 27 00 62 1E 52 03
      69. 69
      70. 00 00 00 00 00 00 02 A8 :// Stand
      71. 01
      72. 01
      73. 01
      74. 63 60 C3 //Prüfsumme ?
      75. 00
      76. 76
      77. 05 00 F3 5A 63
      78. 62 00
      79. 62 00
      80. 72
      81. 63 02 01
      82. 71
      83. 01
      84. 63 BC C7 00 00 00
      85. 1B 1B 1B 1B
      86. 1A
      87. 02 A2 EC //Prüfsumme ?
      88. --ENDE_
      89. **NEU**
      90. 1B 1B 1B 1B
      91. 01 01 01 01
      92. 76
      93. 05 00 F3 5A 64
      94. 62 00
      95. 62 00
      96. 72 63 01 01 76 01 07 FF FF FF FF FF FF 05 00 51 1E 21
      97. 0B 0A 01 4C 47 5A 00 03 92 E0 24 72 62 01 65 00
      98. 51 27 01 01 63 AF 2B 00 76 05 00 F3 5A 65 62 00
      99. 62 00 72 63 07 01
      100. 77 07 FF FF FF FF FF FF 0B 0A 01 4C 47 5A 00 03 92 E0 24 07 01 00 62 0A FF FF 72 62 01 65 00 51 27 01 74
      101. 77 07 01 00 60 32 01 01 01 01 01 01 04 4C 47 5A 01
      102. 77 07 01 00 60 01 00 FF 01 01 01 01 0B 0A 01 4C 47 5A 00 03 92 E0 24 01
      103. 77 07 01 00 01 08 00
      104. -----------------------------------------------
      105. Date: 02.08.2022 - 21:03:39
      106. End log file
      Alles anzeigen
    • Pluto25 schrieb:

      Ist es möglich das da Übertragungsfehler/Störungen drin sind?

      Fehler im Log kann ich jetzt ausschlissen

      In meinem „zurechtschieben“ der Hex Daten nicht, das geht bestimmt noch besser :)

      Gerne her mit Anmerkungen und Ergänzungen

      Neues Log:
      Schon zurechtgerückt
      Und mit der Pin Eingabe auf Erweiterten Datensatz umgestellt

      Quellcode

      1. Terminal log file
      2. Date: 03.08.2022 - 16:06:54
      3. Mit Pin und Erweitertem Datensatz
      4. -----------------------------------------------
      5. 1B 1B 1B 1B
      6. 01 01 01 01
      7. 76
      8. 05
      9. 00 F6 7E 61
      10. 62 00
      11. 62 00
      12. 72
      13. 63 01 01
      14. 76
      15. 01
      16. 07 FF FF FF FF FF FF
      17. 05 00 52 2A 20
      18. 0B
      19. 0A 01 4C 47 5A 00 03 92 E0 24
      20. 72 62
      21. 01
      22. 65 00 52 33 00 01
      23. 63 7D 08
      24. 00 ://END SML
      25. 76
      26. 05
      27. 00 F6 7E 62
      28. 62 00
      29. 62 00
      30. 72
      31. 63 07 01
      32. 77
      33. 07
      34. FF FF FF FF FF FF
      35. 0B
      36. 0A 01 4C 47 5A 00 03 92 E0 24
      37. 07 01 00 62 0A FF FF
      38. 72
      39. 62 01
      40. 65 00 52 33 00 75 :// UpTime ?
      41. 77
      42. 07 01 00 60 32 01 01
      43. 01
      44. 01
      45. 01
      46. 01
      47. 04 4C 47 5A
      48. 01
      49. 77
      50. 07
      51. 01 00 60 01 00 FF
      52. 01
      53. 01
      54. 01
      55. 01
      56. 0B
      57. 0A 01 4C 47 5A 00 03 92 E0 24 :// Server ID des Zählers
      58. 01
      59. 77
      60. 07 01 00 01 08 00 FF
      61. 65 00 1C 3D 04 72 62
      62. 01
      63. 65 00 52 33 00 62 1E 52 FF
      64. 69
      65. 00 00 00 00 00 62 AE 07 :// Stand 6467079 = 646,7079 kWh Past !
      66. 01
      67. 77
      68. 07 01 00 02 08 00 FF
      69. 01
      70. 72 62 01 65 00 52 33 00 62 1E 52 FF
      71. 69
      72. 00 00 00 00 00 6A 12 E3 :// Stand 6951651 = 695,1651kWh Passt !
      73. 01
      74. 77
      75. 07 01 00 10 07 00 FF
      76. 01
      77. 01
      78. 62 1B 52 00
      79. 59
      80. FF FF FF FF FF FF F7 F9 :// Leistung ? -2055 W Passt Invertiert Da zur zeit einspeisung ?
      81. 01
      82. 01
      83. 01
      84. 63 96 BB //Prüfsumme ?
      85. 00
      86. 76
      87. 05 00 F6 7E 63
      88. 62 00
      89. 62 00
      90. 72
      91. 63 02 01
      92. 71
      93. 01
      94. 63 63 FA 00 00 00
      95. 1B 1B 1B 1B
      96. 1A
      97. 02 F0 06 //Prüfsumme ?
      98. --ENDE_
      99. **NEU**
      100. 1B 1B 1B 1B 01 01 01 01
      101. 76 05 00 F6 7E 64 62 00 62 00 72 63 01 01 76 01
      102. 07 FF FF FF FF FF FF 05 00 52 2A 21 0B 0A 01 4C
      103. 47 5A 00 03 92 E0 24 72 62 01
      104. -----------------------------------------------
      105. Date: 03.08.2022 - 16:07:06
      106. End log file
      Alles anzeigen


      Frage:
      1. Muss ich da noch aufpassen dass die Einheiten sich ändern können?


      Das ist jetzt das was der Zähler ohne ein Zutun alle Sekunde von sich gibt

      2.Komm ich mit gezielten Abfragen an weitere Daten? wie Strom pro Phase?
    • darasol schrieb:

      Danke

      Also doch? Muss ich mal testen. War mein erster Verdacht aber ich dann hab ich den falschen Ausschnitt verglichen.
      hallo darasol,

      was hast du zwischen dem 2.2. und dem 13.2. verändert das du auf einmal die richtige Startsequenz erhältst? Siehe Deine Beiträge an diesem Datum.

      Ich bekommen auch immer die Folge von 727272727F7F7F7F anstatt die 1B1B1B1B01010101 !!? Ich nutze 9600,8,1 mit dem ALLNET Optischer D0-Lesekopf (ALL3688) an einem MT681 ohne PIN. Es gibt keine PIN laut Westnetz, aber ich empfange trotzdem Daten.

      Hast Du das Programmiertechnisch gelöst? Oder war etwas mit der Hardware?

      Freue mich über eine Antwort. Danke!