Beckhoff Analogeingang

  • Hallo alle!


    Ich versuche gerade ne Beckhoff-Klemme in das System zu integrieren, nur leider reagiert das alles nicht so, wie ich das erwarte. Es handelt sich um
    ftp://ftp.beckhoff.com/Documen…ermi/BusTermi/KL3064d.pdf
    Und ich sehe mich mittlerweile recht chancenlos die korrekten Parameter zu finden. Es geht nur um die Einstellung für die Skalierung, die Daten selbst kann ich lesen.


    Mich irritiert, das die Klemme in 12bit, also in 4095 Schritten misst, eine Tabelle in dem PDF (Seite 4) aber so aussieht:
    Meßwert | Ausgabe-Dezimal | Ausgabe-Hexadezimal
    -------------------------------------------------------------------------
    0V |0 | 0x0000
    5V |16383 |0x3FFF
    10V |32767 |0x7FFF


    Was ja alles Werte>4095 sind. Der Wert für 10V entspricht 15bit.


    Wenn irgendwer irgendnen Tip hat: :danke:


    Kai

    If you and DEAD people can read Hex, how many people can read Hex?

  • Schritt für Schritt zum Roboterprofi!
  • welchen bus hast du denn? das pdf redet von 12bit auflösung(?), aber von 4 datenbytes im 2er komplement (alles mit 1 im MSB ist negativ). dann wäre der bereich wie angegeben 0V: 0 (0x0000) bis 10V: 32767 (0x7FFF). (alles grösser 0x8000 ist eben negativ und fällt weg. 0xFFFF ist -1 und 0x8000 ist -32768. negativ geht's eins weiter weil die null beim zweierkomplement vom positiven bereich dargestellt wird, und verkehrt 'rum isses auch noch :wallbash:).


    ich vermute die 12bit auflösung sind nur intern und werden in eine 31bit (0x0000 - 0x7FFF) darstellung hochgerechnet (die positive "hälfte" der 32 datenbits).

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

    Einmal editiert, zuletzt von rob ()

  • Danke schon mal. Wir verfügen über einen Profibus.
    Nun ist es so: Wikipedia (http://de.wikipedia.org/wiki/Zweierkomplement) schreibt:

    Zitat

    Positive Zahlen werden im Zweierkomplement mit einer führenden 0 (Vorzeichenbit) versehen und ansonsten nicht verändert.


    Also hab ich mir mal die 0x7FFF angesehen, binär ist dass 1111111111111110, das heisst die höchte mit zwei Byte im zweierkomplement darstellbare positive zahl.
    Daraus würde ich schliessen, das ich in der iosys ans Ende der Zeile CAL 0x7FFF schreiben müsste, was aber nicht zum gewünschten Ergebnis führt, meine Testspannung von 5V wird nicht angezeigt.
    Abeitet das Kuka-System ebenfalls im zweierkomplement? Hoffentlich! Allerdings sollte das ja bei ausschliesslich positiven Spannungen nicht stören oder?

    If you and DEAD people can read Hex, how many people can read Hex?

  • Hallo Kai,


    die 5V werden garnicht angezeigt, oder falscher Wert oder was? :nocheck:


    Hast Du den Analogeingang mit 12- oder mit 16 Bit konfiguriert? 16 sollte richtig sein, trotz 12 Bit Auflösung!


    bei 0x7FFF kannst Du den CAL - Teil weglassen (Default), nur bei Siemens erforderlich


    Ist die Klemme im Originalzustand, oder hast Du sie konfiguriert?


    :kopfkratz: Fragen über Fragen :kopfkratz:


    Vielleicht gibts Du uns Einblick in Deine iosys.ini :gutidee:

  • Hallole,


    die Konfiguration der analogen Eingänge bei Kuka war mir schon immer supsekt. Daher konfiguriere ich die immer als Integer-Eingang und mache die Umrechnung im .SRC selber.


    also

    Code
    Signal Analogwert $in[1] to $in[15]
    decl real wert
    decl real faktor = 0.1 ; oder jeder andere sinnvolle wert
    decl offset = 0           ; oder jeder andere sinnvolle wert
    
    
    wert = analogwert * faktor - offset


    Wenn tatsächlich negative Werte auftreten, dann sieht die Sache etwas 'komplizierter' aus (Fallunterscheidung und Subtraktion).


    Tschau,
    Hermann

  • So nun:
    Die Klemme ist im Originalzustand, da wurde nix geändert.
    Die iosys:

    Zitat

    ANIN9=5,16,12,2,CAL 0x7FFF


    Mit dieser Einstellung messe ich anstatt der tatsächlich anliegenden 5V nur 1,453V, kleinere Werte für CAL sorgen für grössere gemessene Spannungen. Ich hatte auch mal versucht den Eingang mit 16bit zu betreiben, bekam dann aber nicht wirklich sinnvollere Daten.


    Hermann: Wie erhälst Du denn die 15 $INs? Was trägst Du dann in die IOSYS ein?

    If you and DEAD people can read Hex, how many people can read Hex?

  • Hallole,
    da trägt man ganz einfach 16 Dig. Eingänge ein, genau so, als ob es normale dig. Eingänge wären. Also so was wie:


    INW10=5,16,X1


    Ach ja, müsste natürlich $in[1] to $in[16] heissen. Oder eben $in[12], je nach dem was man da genau angeschlossen hat.


    Tschau,
    Hermann

  • :???: ich muss peinlich berührt zugeben, das der Fehler in der Verkabelung lag, ich hatte blauäugig angenommen, das die analog zu einer anderen Eingangsklemme des gleichen Herstellers wäre, was aber nicht stimmte. Der Vorteil ist allerdings ein immens gewachsenes Verständnis, danke allen Antwortenden dafür. Ich werd das in den nächsten Tagen mal in der Wiki zusammenfassen und dann noch mal hier bescheid sagen, vielleicht (oder sicherlich) gibts da ja noch ergänzungen.


    :danke:

    If you and DEAD people can read Hex, how many people can read Hex?

  • Eine Frage habe ich allerdings noch: Der Wert für CAL war in diesem Fall 2048, was ja Sinn macht, denn wenn man 12 Bit im zweierkomplement zur verfügung hat, braucht man eins fürs Vorzeichen, da bleiben also 11:
    2^11=2048
    also passt das. Nun aber die Frage: Innerhalb der Programme wird diese Zahl jetzt auf nen Wert zwischen 0 und 1 abgebildet, unter "Anzeige/analoge ea" zeigt er aber die Korrekten Spannungswerte von 0-10V. Woher weiss der jetzt, dass ich in dem Bereich messe? Es könnte doch auch nen AD-Wandler von 0-100V oder 0-1V oder was weiss ich was dran hängen.
    Schon mal Danke für alle Antworten!

    If you and DEAD people can read Hex, how many people can read Hex?

  • Hallo,


    also das funktionert so: die $ANIN sind system-intern immer ein 16-Bit WORD, mit den Angaben in der IOSYS.INI informierst du das System, welche Bits vom Feldbus wie in den dig. Eingangswert des $ANIN sortiert werden sollen.


    Wichtig ist dabei der Typ: mit oder ohne Vorzeichen. Damit erklärst du dem Parser der IOSYS.INI folgendes:


    ohne Vorzeichen: 0000-FFFF => 0.0 .... 1.0
    mit Vorzeichen: 0000-FFFF => -1.0 .... 1.0


    d.h. alle Analog-Signale werden intern auf +/- 1.0 normiert.


    Dass die BOF daraus 0-10V macht ist eigentlich völliger Blödsinn - es gibt nämlich auch 4-20mA Signale, oder ?


    marvin

  • Die BOF weiss natürlich nicht welches Analogmodul angeschlossen ist. Die -10V - 10V beziehen sich auf die am meisten verwendeten Analogmodule auf dem Markt. Leider lässt die BOF (noch) keine Skalierung zu.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo,


    ich muss das Thema wieder aus der Versenkung holen.


    Ich habe an einer BK3000, Analoge Ein/Ausgänge und Digitale Ein/Ausgänge.


    Die Digitalen Funktionieren, d.h. ich kann Sie mit MultiProg / ProconOS abfragen und setzen.
    Dia Analogen bekomme ich nicht zum laufen. :(



    Wie Mappe ich jetzt Analoge Eingänge in der iosys.ini ? Die Eingänge Sollen später mit ProconOS/Multiprog benutzt werden.


    Habe die Analogen Ein/Ausgänge z.B. als


    INW10=12,0,x1 gemappt. und die Digitalen


    INB12=12,2,x1 gemappt.


    Wie gesagt mit den Digitalen funzt nur die verda... Analogen nicht.

  • Um dir bei der Lösung deines Problems helfen zu können, müssten wir deinen Busaufbau kennen.


    Bitte daran denken, dass bei den Beckhoff-Kopplern die Daten im Prozessabbild nicht in der Reihenfolge auftauchen, wie die Module gesteckt sind ! sondern zuerst nach Byte- und Bit-orientierten Modulen gruppiert wird. Evt. ist dein Offset in der IOSYS.INI falsch.



    marvin42


  • das ist der Eintrag in der IOSYS.INI


    die BK3000 (Profibusadr. 12) ist über CP6514 (Master) angeschlossen


    an der BK Stecken KL3408 (8xAI) KL4438 (8xAO) 2x KM1002(2x16 DI) 2x KM2002(2x16DO)


    in der Reihenfolge.

  • winny-plc


    schau mal ob du nicht ausversehen in deinen 2 wörtern ein systemausgang hast das würde so eine fehlermeldung erzeugen



    gruß roboprog

    Die dümmsten Programmierer haben die dicksten Programme

  • winny-plc


    zu finden sind die 2 in der automatik extern



    musst natürlich schauhen wo du sie noch verwendest und was du damit machst


    gruß roboprog

    Die dümmsten Programmierer haben die dicksten Programme

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden