Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Temperaturauswertung mit Wago I/O und PT 100/1000

Elektromax
2006-11-25
2006-11-30
  • Elektromax - 2006-11-25

    Hallo, ich habe vor ca. 60 Temp- Sensoren PT 1000 über eine Relaiskaskade auf die 4 Eingänge der Klemme 750-460 zu führen und

    der Reihe nach auszulesen.( 1 Min. Takt.)

    Habe jetzt aber das Prob. die Datenwörter der Klemme in einen Speicher ( Merker ) zu schreiben, da ich ja jeweils die Freigabe des entsprechen Kanals (Relais) bräuchte. Sprich :

    Eingang 1 PT 1000 und Ausgang Relais 1=MW.xx.

    Das geht aber nicht, da ein "and" ja keine Bool und Word Daten "versteht".

    Ist ja auch nicht wirklich die eleganteste Lösung, denke ich.

    Ich brauche also eine Möglichkeit die 60 Temperaturen in Merkern zu speichern úm sie dann weiter verarbeiten zu können.

    Wer hat denn da eine Idee ?

    Danke im voraus, der elektromax

     
  • gravieren - 2006-11-25

    Hi

    Falls ich dich richtig verstanden habe willt du

    60 Messwerte einlesen.

    Mach doch eine FOR-Schleife von 1-60 ,

    die eingelesenen Daten sicherst du

    in ein Array mit 60 WORDs.

    Ansteuern der Relais über ein Schiebregister über 2 DWORDs

    P.S. Die Relais sollten Goldkontakte haben ! ?

    Karl

     
  • Oberchefe - 2006-11-25

    Welche Sprache soll verwendet werden? Sollte je nach Sprache mit einem Move mit Enable funktionieren.

     
  • Elektromax - 2006-11-26

    Die Werte in ein Array zu schreiben ist eine gute Idee,

    aber wie genau ( Syntax!!!! ) gehe ich das an ?

    Mir fehlt die zündende Idee zur Programmierung !!

    Für konkrete Hinweise wäre ich dankbar !

    PS: ich arbeite am liebsten in AWL !

    Dank im voraus, der elektromax !

     
  • Denkes - 2006-11-26

    Hallo Elektromax,

    ein ehemaliger Lehrer für Automatisierungstechnik dankt dir für diese schöne Aufgabe, die ich mit meinen früheren Schülern vermutlich in einer Unterrichtseinheit (90 Minuten) gelöst hätte. Anbei als Dank das "Musterprogramm", zu dem folgende Erklärungen notwendig sind:

    1. Merken muss man sich nichts in Merkern sondern besser in Variablen, also vereinbaren wir ein Variablen-ARRAY, bestehend aus 64 Datenworten. Diese werden global vereinbart und können projektweit schreibend, aber vor allem lesend angesprochen werden z.B. Messwerte[12].

    2. Die Zahl 60 ist hier ungünstig, besser geeignet ist 64. Man programmiert einen Zähler, der ständig von 0 bis 63 zählt. Hat er 64 erreicht, setzt er sich selbst auf 0 zurück. Wir brauchen deshalb auch ein ARRAY-Feld 64, weil für einen Zyklus dieser Zählwert ansteht.

    3. Ein Taktgeber sorgt dafür, dass jeder der 64 Messwerte ein mal pro Minute erfasst wird. Für jede Messung stehen also 938ms zur Vefügung.

    4. Relais prellen, also erfassen wir den aktuellen Messwert nicht ständig sondern einmalig in Taktmitte. Diese erkennen wir über eine Flanke.

    5. Es gibt 6 Relais, jedes benötigt einen potentialfreien Wechsler. Die Zuordnung ist nun:

    000000 = Messstelle 0

    000001 = Messstelle 1

    000010 = Messstelle 2 usw. bis Messstelle 63. Es können beliebige Messstellen weggelassen werden (z.B. 61 bis 63)

    1. Erfahrung: PT100 per Relaisumschaltung erfassen hat bereits mit einem Relais ungenaue Ergebnisse geliefert. Bei 6 Relais ???, aber probieren kann man es ja mal!

    Viel Erfolg

    Norbert

    Forum1.pro [18.46 KiB]

     
  • gravieren - 2006-11-26

    Hi

    Ich denke, da Bedarf es auch noch eines "2tes Array".

    Die Sensoren sollten eine Möglichkeit zum Abgleich haben ! ?

    (Skarierung/Offset)

    Sind alle Leitungen exakt lang ?

    Zeigen alle Sensoren die Identischen Werte an ?

    Karl

    w www.magnia.de w (Quellcode für HLKs --> Anfangshomepage / Foren)

     
  • Elektromax - 2006-11-26

    Ich wollte die Erfassung nicht als Kaskade aufbauen, ich habe pro Messstelle 1 Relaiskontakt und 1 Ausgang an der Wago zur Verfügung.

    Sprich: Ich kann per Counter und Schieberegister jeweils 1 Relais ansprechen. Jeweils 16 Messstellen werden über 16 Relais und über 1 Messeingang der Klemme erfasst.

    Soweit auch kein Problem. Aber wie ( SYNTAX wäre gut, bekomme ich das hin das wenn der Ausgang z.B. 20 aktiv ist auch der Wert gelesen und in einem Arrey gespeichert wird ?

    Weiterhin habe ich das Prob, wenn ich die Oscat.lib lade und die Ethernet.lib und die Modbus.lib installiert habe kommt es zu Fehlermeldungen, das einige Zuordnungen in der Oscat.lib nicht vorhanden sind. Alleine funzt die Oscat einwandfrei ! Hat das Prob schon mal jemand gehabt ?

    LG

     
  • Oberchefe - 2006-11-26

    Zitat:
    wenn ich die Oscat.lib lade und die Ethernet.lib und die Modbus.lib installiert habe

    welche Versionen jeweils?

    Im Zweifelsfall die Libraries hier mal anhängen.

     
  • Denkes - 2006-11-27

    Hallo Elektromax,

    in deiner ersten Anfrage hast du zwar gesagt, dass du eine Relaiskaskade verwenden willst, nun aber plötzlich nicht mehr. Das ist gut, denn meine Aussage, 6 Relais mit je einem Wechsler ziehe ich nach nochmaliger Überlegung der "äußeren" Verdrahtung wegen "geht nicht" zurück.

    Anbei das überarbeitete Programm, diesmal ausgelegt für 64 Messstellen, je Messstelle ein aktives Relais. Diese Lösung (Messwert wird nur über einen Kontakt geführt) dürfte funktionieren.

    Sofern keine extremen Anforderungen an die Genauigkeit gestellt werden, kann der Messwert SPS-intern noch abgeglichen werden (Offset wegen des konstanten Leitungswiderstandes)

    Norbert

    Forum1.pro [44.8 KiB]

     
  • hugo - 2006-11-28

    in der oscat lib sind alle bausteine fuer dein unterfangen enthalten,

    aber vorsicht beim umschalten der relais, diese werden beim schalten prellen, so das du maximal einmal pro programmzyklus einen sensor abfragen darfst, ca 2-10 ms entprellzeit sind je nach verwendetem relais unbediungt einzuhalten.

     
  • Denkes - 2006-11-29

    Hallo Elektromax,

    hier die neueste Version nach unserer Absprache

    Gruß Norbert

    UV3_7_Ethernet.pro [343.45 KiB]

     
  • Christoph - 2006-11-30

    Hallo Elektromax,

    habe auch vor kurzem begonnen einen PT100 Multiplexer 16_zu_1 mit Meder Reedrelais entwickelt, da in SolidState nichts brauchbares am Markt ist. Ich habe mal den FB angehängt, mit dem ich die Messwerte in ein Array schreibe. Ist noch Betastadium, da ich bei dem MUX Labormuster auch noch am Löten bin. Wenn alles rund läuft gebe ich den Schaltplan und das passende Programm raus.

    Grüße,

    Christoph

    PT100_MUXER_AWL.EXP.zip [643 Bytes]

     

Log in to post a comment.