Autor Thema: BT- Blocktransfer  (Gelesen 3543 mal)

Offline Jrlohni

  • Jr. Member
  • **
  • Beiträge: 62
BT- Blocktransfer
« am: Juli 02, 2021, 10:36:09 Vormittag »
Moin,

ich habe ein kleines (hoffe ich zumindest) Problem mit dem BT - Baustein.

Ich möchte 27 Temperaturwerte in Merkern speichern. Diese Werte kommen von unterschiedlichen Sensoren. Diese Adresse des Sensors wird binär berechnet. Diese Berechnung soll für den BT Baustein ebenfalls verwendet werden um immer den nächsten Merkerbereich zu verwenden. Leider gibt der Baustein den Fehler E1 und E3 aus... ich kann die Fehler aber nicht interpretieren... Hat jemand eine Idee?

LG Johannes
Stay friendly and healthy!

Offline Konni66

  • Global Moderator
  • Full Member
  • *****
  • Beiträge: 230
  • Keine Panik!
    • Eaton Trainingscenter Bonn
Antw:BT- Blocktransfer
« Antwort #1 am: Juli 02, 2021, 11:25:22 Vormittag »
Hallo Johannes,

ich vermute, du bekommst 32 (27) Temperaturen aus einem Multiplexer?
Es sieht so aus, dass bei der Wertskalierung etwas nicht stimmt.
Die Werte (Adressen) von 0-33 (34 Adressen) werden in Werte von 96-162 umgerechnet (67 Adressen).
Für mich kommen dabei schräge Zieladressen heraus.

Und die Temperatur steht in MW48 an I1. Wenn da also 150 °C drin steht, wird der Bereich ab MB151 kopiert.
I1 und I2 sind ganzzahlige Offsets auf MB1.

Grüße,
Konni
« Letzte Änderung: Juli 02, 2021, 11:45:18 Vormittag von Konni66 »
Die Programmierbeispiele sind zu Schulungszwecken gedacht. Trotz sorgfältiger Erstellung und Funktionsprüfung können Fehler nicht ausgeschlossen werden. Daher erfolgt die Verwendung der Programmteile in eigener Verantwortung.

Offline Jrlohni

  • Jr. Member
  • **
  • Beiträge: 62
Antw:BT- Blocktransfer
« Antwort #2 am: Juli 02, 2021, 11:54:33 Vormittag »
Moin Konni,

also am Ausgang von LS02 treten die Werte von 96 bis 158 in zweierschritten auf. Also immer gerade Zieladressen.
Ich überlege ob es ein Problem damit gibt das MW in die Adresse zu schreiben, eventuell ist die Adresse kein MW?

Ja die Zählung geht bis zu 32 Werten. Ich habe aber nur 27 Sensoren. Die übrigen Sensoren wären eventuell irgendwann mal Optional.

Ich hab das Programm mal angehangen... Vielleicht hilft das ja etwas. Fängt erst ungefähr in der Mitte an mit der Temperaturmessung... Vorher sind andere Steuerungsaufgaben.

LG Johannes
Stay friendly and healthy!

Offline Konni66

  • Global Moderator
  • Full Member
  • *****
  • Beiträge: 230
  • Keine Panik!
    • Eaton Trainingscenter Bonn
Antw:BT- Blocktransfer
« Antwort #3 am: Juli 02, 2021, 13:21:19 Nachmittag »
Hallo Johannes,

die 96 ist die Adresse eines MB, dass zu MW48 gehört, aber auch nicht die Startadresse. Die ist nämlich MB95.

Du gibst als Ziel der zwei zu kopierenden Bytes (ist ja ein Wort) einen falschen Offset an.

Zweitens: Ich denke du gehst davon aus, dass die Temperatur aus dem MW48 in den Zielbereich kopiert wird?
Nein, die Temperatur wird als Offset für den zu kopierenden Bereich verwendet. Also bekommst du vermutlich ab und zu Fehlermeldungen an den Bausteinausgängen E1 bis E3. Nämlich dann, wenn die Temperatur einen ungültigen Offset ergibt.
Wenn du also immer MW48 in den Zielbereich kopieren willst, musst du für I1 am BT immer 94 (94+MB1=95) angeben.
Denn MW48 besteht aus MB95 und MB96; MB95 ist die Basisadresse von MW48.

Grüße,
Konni


Die Programmierbeispiele sind zu Schulungszwecken gedacht. Trotz sorgfältiger Erstellung und Funktionsprüfung können Fehler nicht ausgeschlossen werden. Daher erfolgt die Verwendung der Programmteile in eigener Verantwortung.

Offline Jrlohni

  • Jr. Member
  • **
  • Beiträge: 62
Antw:BT- Blocktransfer
« Antwort #4 am: Juli 02, 2021, 15:17:52 Nachmittag »
Moin Konni,

also der BT Baustein funktioniert jetzt wie er soll! Dankeschön! War genau richtig.

Allerdings kopiert er noch etwas komische Werte... Ich habe nur Sensor 19, 20 und 21 angeschlossen. (MW 68, 69 und 70). Der Sensorwert steht in MW 48...

Normal, wenn kein Sensor angeschlossen ist, zeigt der Eingang und auch das MW 48 "1970". Diesen Wert übernimmt er aber leider nicht in die Speicher (MW49 - MW64), sondern "45575". Das ist etwas mehr als das 23 fache... Gibt es dazu eine Idee? Der Ausgang gibt mir ja auch lediglich die Differenz zum Widerstand 1000 Ohm an, oder? Sonst wüsste ich nicht warum bei den angeschlossenen Sensoren ein Wert von ca. 200 steht.

Edit: Ich habe noch etwas mit der Mittelwertbildung gespielt. Die Temperaturen auf 1 °C anstatt 1/10 Grad gestellt. Jetzt sind die Werte zwar passender geworden. Übertragen werden aber immer noch falsche Werte... Ich hab schon überlegt ob das an einem falschen Speicherbereich liegt?...

LG Johannes
« Letzte Änderung: Juli 03, 2021, 10:33:40 Vormittag von Jrlohni »
Stay friendly and healthy!

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 594
  • it has to be easy, it's a easy!
Antw:BT- Blocktransfer
« Antwort #5 am: Juli 03, 2021, 11:23:59 Vormittag »
Hi Jrlohni,
hat zwar nichts mit deinem Problem zu tun, denn deine Sensor Ausleseproblematik schreit nach einer Lösung in "ST" aber trotzdem ein kleiner Programmiertipp am Rande  ;)
Wenn du deine Übertemperaturmeldungen z.B. auf die Merker 65-96 legst, könnte deine Alarmauswertung etwas kürzer ausfallen, siehe Anhang 8)
Ich wäre generell der Meinung dass man mehrere "Sinngleiche" Signale je nach Anzahl immer auf Byte, Word oder DWord Grenzen legen sollte, macht vieles etwas einfacher.

Gruß
« Letzte Änderung: Juli 03, 2021, 11:27:36 Vormittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline Jrlohni

  • Jr. Member
  • **
  • Beiträge: 62
Antw:BT- Blocktransfer
« Antwort #6 am: Juli 04, 2021, 09:41:48 Vormittag »
Moin,

ahh bei "ST" stellen sich mir die Nackenhaare auf... :D Kommt vielleicht davon das ich C und C++ usw. im Studium gehasst hab... Auslesen tut der Sensor ja, allerdings schmeißt er durch den BT Baustein komische Werte raus...

Zur Alarmmeldung sieht deine Lösung super aus! Hab ich gar nicht drüber nachgedacht! Allerdings muss ich das sowieso noch einmal etwas umbauen und ist noch nicht Final :) Aber danke schon mal für den Hinweis!

Edit: Sooo.... ich Depp... auch wenn der BT die Werte in MW schreibt werden die Werte in MB gespeichert. Da stehen dann auch die richtigen Werte drin, welche vom Sensor ausgelesen wurden...
Allerdings pendeln meine Sensoren sehr weit hin und her... Also von -50 bis +40 bei einer Temperatur von eigentlich 24,4 °C... Das hab ich schon versucht durch die Mittelwertbildung etwas zu beeinflussen, klappt aber noch nicht... zumindest nicht richtig. Hat jemand eine Idee dazu?

LG Johannes
« Letzte Änderung: Juli 04, 2021, 12:14:26 Nachmittag von Jrlohni »
Stay friendly and healthy!

Offline Konni66

  • Global Moderator
  • Full Member
  • *****
  • Beiträge: 230
  • Keine Panik!
    • Eaton Trainingscenter Bonn
Antw:BT- Blocktransfer
« Antwort #7 am: Juli 06, 2021, 08:25:57 Vormittag »
Hallo Johannes,

der Wert 200: Ich würde behaupten, dass du den betreffenden Eingang des PE-Moduls auf eine Auflösung von 1/10 °C gestellt hast. Da das easy nur mit ganzzahligen Werten arbeitet, würde das einer gemessenen Temperatur von 20,0°C entsprechen. Das kannst du auf einer Textanzeige auch darstellen, wenn du die Nachkommastelle auf 1 stellst.
Kann es also sein, dass die Temperatur gerade 20 ° betrug, als du getestet hast.

Hast du die nicht verwendeten Eingänge des Temperaturmoduls deaktiviert und kurzgeschlossen?
Schau bitte mal hier hinein:
Im easy-Handbuch wird darauf eingegangen: https://www.eaton.com/content/dam/eaton/technicaldocumentation/mn/MN050009_DE.pdf
Interessant sind die Seiten 67ff und die Seite 39.

Guck auch mal auf die Angaben zur Abschirmung und der Leitungslängen.

Komische Werte hinter einem Multiplexer: Vom Wählen eines Kanals mittels Bitkombination bis das Signal am Ausgang stabil steht, vergeht eine gewisse Zeit. Schau mal, ob zwischen der Kanalwahl und dem Übernehmen des Wertes eine ausreichende Zeit vergeht.

Ich hoffe, das hilft dir weiter.
Grüße,
Konni

Die Programmierbeispiele sind zu Schulungszwecken gedacht. Trotz sorgfältiger Erstellung und Funktionsprüfung können Fehler nicht ausgeschlossen werden. Daher erfolgt die Verwendung der Programmteile in eigener Verantwortung.

Offline Jrlohni

  • Jr. Member
  • **
  • Beiträge: 62
Antw:BT- Blocktransfer
« Antwort #8 am: Juli 10, 2021, 21:41:32 Nachmittag »
Moin Konni,

ja genau. Ein Fehler lag an der Formatierung (1/10°). Kurzgeschlossen habe ich die anderen Eingänge nicht, aber deaktivert. Ersteres werde ich wohl noch einmal durchführen.
Zur Zeit vergehen ca. 10-15 Sekunden bis der Wert ausgelesen wird. Ich werde eventuell einmal deutlich längere Zeiten (10 Minuten) testen... Es verhält sich so, dass die Werte in beide Richtungen schwanken und zwischendurch auch den richtigen Wert erreichen, Ihn dann aber irgendwann auch wieder verlassen...
Die Leitungslänge ist sicherlich zu lang und geschirmt ist auch nichts. Kommt auch nicht auf 2 Grad an... Aber einigermaßen stimmen sollten die Werte schon!
Eventuell werde ich noch Korrekturen vornehmen durch den Multiplexer Baustein, so dass ich je nach Sensor unterschiedliche Korrekturen anwenden kann. Aber das macht ja erst Sinn wenn der Rest immerhin stabile Werte liefert.

Ich habe ebenfalls schon überlegt ob ich nicht häufiger Werte nehme, alle über z.B. 50 Grad lösche bzw. nicht betrachte und davon 2 mal am Tag (oder auch wie bisher, 2 mal am Tag) einen Mittelwert bilde... So als Notlösung.

Vielleicht hat dazu ja noch jemand eine Idee?
Ansonsten halte ich euch auf dem Laufenden...

LG Johannes
Stay friendly and healthy!

Offline Konni66

  • Global Moderator
  • Full Member
  • *****
  • Beiträge: 230
  • Keine Panik!
    • Eaton Trainingscenter Bonn
Antw:BT- Blocktransfer
« Antwort #9 am: September 22, 2021, 15:42:12 Nachmittag »
Hallo Johannes,

was ist aus deiner Temperaturmessung geworden? Wo hat es gehakt?
Ich finde deine Anwendung interessant?

Grüße,
Konni
Die Programmierbeispiele sind zu Schulungszwecken gedacht. Trotz sorgfältiger Erstellung und Funktionsprüfung können Fehler nicht ausgeschlossen werden. Daher erfolgt die Verwendung der Programmteile in eigener Verantwortung.