Deutsch - Software > XSoft-CoDeSys

Analogwert einlesen aus Scheibenmodul XN-322-4AI-PTNI

(1/1)

thilo.schmidt:
Hallo,

ich bin neu in der CoDeSys Entwicklung und komme an einer Stelle nicht weiter.
Mein System besteht aus einem XV-102 das über ein CAN-Gateway mehreren Scheibenmodule verarbeiten soll. Der CanBus ist in Ordnung, alles grün, die Scheibenmodule und der zu lesende Analogeingang sind ebenfalls grün. Es ist ein PT1000 angeschlossen und auch parametriert. Digitaleingänge und Digitalausgänge kann ich lesen und schreiben.
Ich habe aber ein Verständnisproblem wie ich einen Analogeingang einlesen soll.
In der Steuerungskonfiguration unter %IB0 Can-Input habe ich für den gewünschten Eingang ein AT %IW34 gefunden. Wenn ich mir diesen INT ausgebe erscheint -2. Vermutlich habe ich noch einen Parameterfehler. Wie kann ich jetzt auf die Diagnose, Kabelbruch und RangeError Bytes zugreifen um diese auszuwerten?

FG Thilo

radar17892:
Hallo Thilo,
das Modul ist im Handbuch ftp://ftp.moeller.net/DOCUMENTATION/AWB_MANUALS/MN050002_DE.pdf 
genau beschrieben. Verdrahtung, Diagnosen und Messbereiche findest du im Kapitel 20.
Die Parametrisierung kann über die Hardwareconfig im Codesys über die SDO`s gemacht werden, da wo du auch die Adressen findest.
 <<Die Darstellung der Werte erfolgt als Dezimalwert in °C mit einer oder zwei
Nachkommastellen in 1/10 °C oder 1/100 °C. Der jeweilige Messbereich
lässt sich über die SDOs 0x5070 bis 0x5073 einstellen. >>
Mit dem passenden USB-Kabel und dem Konfigurationstool XN300Assist kannst du auch direkt auf das Gateway gehen und sehen was am Analogmodul passiert.

Normalerweise kann man das über die EDS oder Konfiguration bereitgestellte Eingangswort (bei dir %IW34) den Analogwert direkt im Programm verarbeiten.

Gruß Thomas

thilo.schmidt:
Danke für die Antwort.
Das Handbuch kenne ich, habe ich schon hin und her geblättert. Kapitel 20.7 Speicheraufteilung sollte für mich interessant sein.
Ich möchte in meinem Programm die Modul-Diagnose, Kabelbruch-Diagnose und Messbereichs-Diagnose auswerten und ggfs einen Fehler melden.
Aber welches ATIW muss ich da lesen um an diese Diagnosen zu kommen? Im Handbuch steht für die Modul-Diagnose bei CanObjectIndex 0x3070. Wie kann ich denn darauf zugreifen, dass muss doch auch irgendwo gematched sein oder verstehe ich da was vollkommen falsch?
Ich denke wenn ich die Diagnosen habe, finde ich auch das Problem worum ich keinen Messwert bekomme.

Nachtrag:
Mit dem XN300Assist kann ich den Temperaturwert direkt ablesen, es ist auch kein Fehler auf dem Kanal, da mach ich wohl prinzipiell noch was falsch. Könnte es ein Fehler beim Mapping sein? Vielleicht hat jemand einen Beispielcode, der mir weiter helfen könnte.

Nachtrag 2:
Ich habe jetzt eine neue EDS-Datei erstellt mit XN300Assist und eingelesen, jetzt bekomme ich den Temperaturwert übermittelt, aber nur ein einziges Mal wenn meine PLC auf Start geht. Kann doch jetzt nicht mehr viel falsch sein ;-)

FG Thilo

radar17892:
Hallo Thilo,

es scheint so als würde was mit den PDO Eigenschaften nicht stimmen.
Auch würde ich die Temperaturwerte nicht bei jeder minimalen Änderung senden, sondern zB nur alle 100ms.
Hier sollte man an den PDO`s änderungen machen und am Master einen sync einrichten. Ich hab dir mal zwei Bilder einer Testconfig angehängt.
Du siehst hier auch, das ich die Diagnosen durch einfügen der PDO`s nun auf AT % Adressen habe.
Bitte noch die Hilfe zu CAN / PDO anschauen, da ist noch einiges erklärt.

Gruß Thomas

thilo.schmidt:
Sehr schön, jetzt funktioniert es.
Vielen Dank.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln