Autor Thema: Anwenderbaustein für Multiplexer MUP-U16 von Rinck  (Gelesen 1391 mal)

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« am: Januar 10, 2024, 21:38:42 Nachmittag »
Hallo
Ich wollte einen Anwenderbaustein für den Multiplexer MUP-U16 der Firma Rinck Electronic nach einem Programm von Knodelpa http://easy-forum.net/index.php?topic=2295.0 erstellen. Um die Anforderungen an Anwenderbausteine einzuhalten, habe ich die Merkerworte durch Merkerbytes ersetzt, damit ich die Werte als Merkerdoppelworte über 4 Analogausgänge als Schnittstelle dem Hauptprogramm übergeben kann. Mir ist bekannt, dass ich dadurch einen eingeschränkten Temperaturbereich von 0 … 255° zur Verfügung habe, das reicht zum Beispiel für Heizungssteuerungen aus.
Nun zu meinem Problem. Zum Testen habe ich das Programm erst einmal in einem separaten Projekt im Hauptprogramm geschrieben, da funktioniert es. Da ich nichts weiter in dem Programm habe, habe ich das Programm eins zu eins in den Anwenderbaustein übernommen, das funktioniert es jedoch nicht. Aufgrund des separaten Merkerbereichs sollte das eigentlich kein Problem sein. Ich denke das Problem ist beim Block-Transferbaustein die absolute Byte-Adresse und habe auch einiges ausprobiert, ohne Erfolg. Ich hoffe das mir jemand helfen kann und habe das Projekt und den Anwenderbaustein hochgeladen.

Gruß Thomas
« Letzte Änderung: Januar 10, 2024, 23:36:42 Nachmittag von rhoener »

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #1 am: Januar 11, 2024, 07:27:57 Vormittag »
Hallo rhoener,
mir ist aufgefallen:
1. Im UF, Netztwerk 1 ist das Zeitrelais T2 nicht beschaltet, es muß auch T1 sein.

Hast du den UF selber geschrieben oder wo hast du ihn her?
Ich finde gar keinen Analogeingang im Programm, beschreibe doch kurz deine Anwendung.


Gruß Wilhelm
« Letzte Änderung: Januar 11, 2024, 08:04:17 Vormittag von w.sprungmann »

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #2 am: Januar 11, 2024, 16:17:39 Nachmittag »
Hallo Wilhelm
Das mit dem T2 in Netzwerk vom UF kann ich nicht nachvollziehen. In dem Orginalprogramm, das ich hochgeladen habe, ist der T1 verwendet und auch nach dem Download aus dem EASY- Forum bleibt es beim beschalteten T1. Es wäre interessant zu wissen wie es bei anderen aussieht, die diese Datei runtergeladen haben.
Den UF habe ich nach der Vorlage von Knodelpa (allerdings noch in .e60 erstellt) etwas abgeändert und selber geschrieben.
Mit dem beschreiben ist es etwas schwierig, da ich kein Programmierer bin. Aber ich kann es ja mal probieren.
NW1 = dürfte selbsterklärend sein
NW2 = mit Hilfe eines Zählers wird das Adressierungsbyte für die Adressierung des Multiplexers geschrieben
NW3 ... NW6 = hier werden die einzelnen Bit des Adressierungsbytes auf die Ausgänge des Anwenderbausteins als Schnittstelle zum Hauptprogramm kopiert und müssen dann da auf die Transitorausgänge der Easy zur Adressierung des Multiplexers gelegt werden. Bis hierhin funktioniert der Baustein.
NW7 = dürfte wieder selbsterklärend sein
NW8 = hier wird die Adresse des Merkerbytes berechnet auf dem der BT-Baustein in Netzwerk 8 den entsprechenden Fühlerwert schreibt (0-->x1, 15-->x2 = 16 Bytes; 8-->y1, 23-->y2 = absolute Adresse MB09 ... MB23 für den BT-Baustein
NW9 = kopieren des Wertes von MB08 auf die entsprechende Merkerbyteadresse (7 -->  absolute Byteadresse von MB08)
NW10 ... NW13 = Werte der MB09 ... MB23 als Merkerdoppelworte zur Weiterverarbeitung an das Hauptprogramm übergeben

Ich hoffe das es einigermaßen verständlich ist.

Gruß Thomas

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #3 am: Januar 11, 2024, 23:37:49 Nachmittag »
Hallo,

Wilhelm hat recht mit dem Timer in dem UF, der ist unbeschaltet.

Hab mal meine Codesysversion von dem Demultiplexer für die E4 umgeschrieben, angelehnt an deine Vorlage mit den 4 Ausgängen und je 4 Werten pro Ausgang.
https://easy-forum.net/index.php?topic=1883.0
Über ST ist es einfacher und effizienter zu schreiben.
Dabei werden im UF die Werte auf MB5-MB21 geschrieben, die dann auf QA1-4 kopiert werden.
Die Lesetaktung wird über einen Zyklenzähler gemacht, bei dem man über IA01 den Einlesezeitpunkt in Zyklen einstellen kann und mit IA03 die Sensoranzahl.
Probier es mal aus.

Gruß Thomas

Weil Einfach einfach Einfach ist!

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #4 am: Januar 12, 2024, 01:21:36 Vormittag »
Hallo Thomas
Ich versteh das nicht mit dem unbeschalteten Timer, bei mir ist es wie auf dem Screenshot beschaltet auch bei der wieder runtergeladenen Datei.
Leider kann ich den von ihnen hochgeladenen Anwenderbaustein nicht testen, weil er mit meinem konfigurierten Gerät nicht kompatibel ist. Für welches Gerät ist er geschrieben?  Dann kann ich ein Testprojekt mit diesem Gerät erstellen, um ihn mir erstmal anzusehen.

Gruß Thomas

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #5 am: Januar 12, 2024, 11:36:59 Vormittag »
Der UF wurde mit V8.01 erstellt für Geräte ab FW2.0

Hier noch mal der Quellcode des UF:

MW2:= MW2 + 1; //Zykluszähler

IF MW2 = 1 THEN
   (*Adressleitungen Mux ansteuern*)
    Q1:=M01;
   Q2:=M02;
   Q3:=M03;
   Q4:=M04;
ELSIF MW2 = (IA01 +3) THEN //Einlesezeitpunkt erreicht, dann Wert übergeben
      //scalierung des Analogeingangs von 10 auf 8Bit
   LS01 (
      EN := ,
      I1 := IA02,
      X1 := 0,
      Y1 := 0,
      X2 := 4095,
      Y2 := 255,
      QV => );
   MB[(5 + MB1)] := LS01QV;
ELSIF MW2 >= (IA01 +4) THEN //nach einlesen: Adressen nachführen,
   MB01:= MB01 + 1;
   IF (MB01 >= IA03) OR (MB01 >= 16) THEN //Max Sensorzahl erreicht
      MB01:= 0; //Adressbyte resetten
   END_IF;
   MW2:= 0;   //Zykluszähler löschen
   QA1:= MD2;   //Sensor1-4
   QA2:= MD3;   //Sensor5-8
   QA3:= MD4;   //Sensor9-12
   QA4:= MD5;   //Sensor13-16    
ELSE
   ;
END_IF;



Man könnte auch 8 Ausgänge benutzen mit je 2 Wortwerten, dann wäre kein Verlust der Auflösung.
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #6 am: Januar 13, 2024, 15:06:55 Nachmittag »
Wie versuchst du den Baustein zu öffnen? Es hat nichts mit dem ausgewählten Gerät zu tun. Du musst den UF über die Importfunktion in die easysoft holen, dann kannst du ihn auch öffnen und auch ins Programm einfügen.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #7 am: Januar 14, 2024, 16:27:29 Nachmittag »
Hallo Thomas
Ich hatte es über die Importfunktion versucht. Aber um den UF zu importieren, muss man erstmal ein Projekt öffnen, da ich ihn erstmal nicht ins Archiv importieren wollte, habe ich sie versucht ins Projekt zu importieren. Das Problem hätte ich dann spätestens beim Ausprobieren. Ich habe nur Projekte mit der FW 1.4 und die sind nicht kompatibel zu FW 2.0.
Aber erstmal vielen Dank für die Mühe. Ich hatte dann den Quellcode in einen neuen UF kopiert und gleich über die Simulation getestet. Da hatte ich das gleiche Problem wie bei meinen UF. Die digitalen haben funktioniert und die analogen standen auf 0. Die Plausibilitätskontrolle hat dann angezeigt, dass der EN vom LS Baustein nicht beschaltet ist, und das bei meinen ST Kenntnissen. Ich habe ihn auf TRUE gesetzt, dann hat es funktioniert, weiß aber nicht, ob es so richtig ist, aber jetzt komme ich erstmal weiter. Nochmal vielen Dank.

Gruß Thomas

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #8 am: Januar 15, 2024, 09:43:02 Vormittag »
Da du das Projekt in V8.01 erstellt hattest, bin ich davon ausgegangen das du eine E4 ab FW2.0 benutzt.
Wenn du den Quellcode kopierst, werden nicht die Einstellungen der Bausteine mit übernommen. Bei dem LS hatte ich die Bausteinfreigabe durch EN ausgestellt. Du musst zB bei Timern auch immer die Einstellungen und Zeitbereiche kontrollieren.

Hab dein Programm nochmal geöffnet, aber im NW1 ist nur der unbeschaltete Timer zu sehen.
« Letzte Änderung: Januar 15, 2024, 09:51:34 Vormittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline w.sprungmann

  • Full Member
  • ***
  • Beiträge: 208
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #9 am: Januar 15, 2024, 10:03:54 Vormittag »
Noch einmal zur Info der Hardware und Firmware!!!
siehe
https://easy-forum.net/index.php?topic=8633.msg37319#msg37319
Gruß Wilhelm

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #10 am: Januar 21, 2024, 15:03:41 Nachmittag »
Von ST verstehe ich nicht viel. Ich verwende ein Temperaturmodul und habe die Eingänge auf PT1000 gestellt, dadurch habe ich am Eingang des UF den richtigen Fühlerwert. Die Analogausgänge von den UF bringen aber andere Werte. Ich denke das ich in dem Fall den LS-Baustein nicht benötige. Was muss ich alles ändern, wenn ich den LS lösche, falls das so ist.

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #11 am: Januar 22, 2024, 00:49:38 Vormittag »
Hallo Thomas,
mit dem LS wird der 12Bit Eingangswert auf die 8Bit Ausgang scaliert. Sonst würde ein Eingangsignal über 0,625V vom Multiplexer kommend schon zu einem Überlauf des Ausgangsbytes am UF führen.
Weil Einfach einfach Einfach ist!

Offline rhoener

  • Newbie
  • *
  • Beiträge: 13
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #12 am: Januar 26, 2024, 21:17:33 Nachmittag »
Hallo Thomas
heute hatte ich wieder mal Zeit, mich mit dem Programm zu beschäftigen. Wenn ich am Eingang vom LS einen passenden Wert habe und den dann skaliere, kann eigentlich am Ausgang kein passender Wert herauskommen.
25° --> 1°
50° --> 3°
100° --> 6°
200° --> 12°
Als ich den Y2 vom LS ebenfalls auf 4095 gesetzt habe, haben die Ausgänge gepasst. Wenn X1 und Y1 sowie X2 und Y2 jeweils gleich sind, kann Mann meiner Meinung nach die Skalierung sparen. Wird der Eingang nicht gleich passen skaliert, wenn ich ihn in den EASY-E4-DC-4PE1 auf PT1000 stelle.

Gruß Thomas

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 712
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein für Multiplexer MUP-U16 von Rinck
« Antwort #13 am: Januar 29, 2024, 08:46:07 Vormittag »
Ich glaube hier gibt es ein Verständnisproblem.
Der Aufbau der Messschaltung ist erst mal wie folgt: bis zu 16 PT1000 sind am MUX-U16 angeschlossen, das Ausgangssignal des MUX geht auf einen PT1000 Messwandler. Dieser Messwandler hat laut dir einen Messbereich von 0-255°C, der ein 0-10V Signal an die SPS weiter gibt. (Wobei es einige auf dem Markt gibt die 0-200; 0-250 etc fest eingestellt haben.)
Diese 0-10V entsprechen am Analogeingang der E4, 0-4095 digital. Dieser Digitalwert wird durch den LS-Baustein auf den Messbereich des Messwandlers scaliert, um in der E4 den Temperaturwert in °C zu erhalten.

Die Anschaltung ist Bei Rinck unter dem Blatt AN B391.2 ersichtlich  www.rinck-electronic.de/rinck2001/pdf/AN_B391_2_D_Anschluss_MUX_PT1000.PDF

Gruß Thomas
« Letzte Änderung: Januar 29, 2024, 08:54:04 Vormittag von radar17892 »
Weil Einfach einfach Einfach ist!