Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 6 von 6

Thema: Analogeingangsklemme über ADS

  1. #1
    Registriert seit
    22.07.2007
    Beiträge
    64
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem. Ich habe einige Digitalein- und ausgangsklemmen an einem EK1100 hängen. Auf diese Digitalein- und ausgänge kann ich auch unter VisualStudio mittles ADS lesend bzw. schreibend zugreifen. Dies funktioniert allerdings nur dann wenn ich in PLC Control in der Variablenkonfiguration das erste Byte verwende, also z.B.
    Digitaleingang0 AT %IX0.0; Wenn ich nun allerdings ein anderes Byte verwende, z.B. Digitaleingang0 AT %IX20.0 und gleichzeitig in VisualStudio bei der Funktion ADSSyncReadReq die Parameter entsprechen ändere funktioniert das nicht mehr. Ähnlich ist das Problem auch bei Analogein- und Ausgangsklemmen. Hier kann ich die Klemmen allerdings unter keiner Adresse erreichen. Meine Frage ist nun: Wie (also nach welcher Logik, bzw. in welcher Reihenfolge) werden die Adressen der Klemmen festgelegt, damit man sie über ADS erreichen kann. Denn offensichtlich richtet sich das Ganze nicht nach der Variablenkonfiguration unter PLC.
    Vielen Dank schon mal im Vorraus.
    Zitieren Zitieren Analogeingangsklemme über ADS  

  2. #2
    Registriert seit
    04.04.2010
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht

    Hallo,

    das Variablenhandling, also Daten hin und her schieben hat ja schonmal funktioniert.
    Ich hoffe ich kann dir weiterhelfen. Ich habe mir damals innerhalb von 2 Wochen das alles für ne kleinere Sache aneignen müssen. Dabei blieb es bis jetzt.

    Die Adressen der Klemmen kannst du im System Manager nachschauen.

    Den richtigen Operandenbereich herausfinden. Dazu im Beckhoff Information System folgendes eingeben: "Index-Group/Offset" Spezifikation für TwinCAT ADS-Systemdienste"

    Parameter
    &4020& - Operandenbereich Merkerbyte
    &4021& - Operandenbereich Merkerbit
    &F020& - " Eingänge %I


    Bei der Adressierung eines Byte musst du ein Byteoffset, für ein Bit ein Byte- und Bitoffset benutzen.

    Das sieht z.B. bei dem Einlesen eines Eingangsbytes 20 bei VB.NET so aus:

    Code:
    Dim Variable As SHORT
    Variable=tcclient.ReadAny(&F020&, 20,GetType(SHORT))

    Ich hoffe ich kann dir damit eine Hilfestellung geben.

    Gruß und gute Nacht
    skks
    Zitieren Zitieren Schon mit einem Byteoffset probiert?  

  3. #3
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Greifst du in Visual Studio über die Adressen auf die Variablen zu oder über deren Namen (mittels Handle)? Beckhoff empfiehlt letzteres, damit man eben nicht bei Änderung der Adressen den Zugriff von aussen auch nochmal ändern muss.

    Hast du nach der Änderung der Deklaration die Zuordnung im Systemmanager neu erstellt und auf die SPS geladen? Sprich werden dir im PLC Programm online die richtigen Werte angezeigt?

  4. #4
    Diesla ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2007
    Beiträge
    64
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @Skks

    Hallo Skks, danke für deine schnelle Antwort.
    Ja, ich habe es sowohl mit Byteoffset F020 als auch mit Bit- und Byteoffset F021 probiert. Bei den Analogeingängen funktioniert beides nicht. Allerdings verstehe ich nicht, wo ich die Adressen der Klemmen im System-Manager nachschauen soll. Ich kann zwar unter dem jeweiligen Eingangskanal auf dem Register "Variable" ein Feld mit Adresse sehen, die aber bei mir z.B. mit 84.0 anfängt. Die funktioniert aber leider nicht. Oder schaue ich an der falschen Stelle?


    @MasterOhh

    Hallo MasterOhh, danke für deine schnelle Antwort.
    Nein, ich habe für die Variablen keine Handles. Ich greife also über die Adresse zu. Die Zuordnung habe ich neu geldaden. Denn ich konnte, wie du ja sagst, die Analogwerte in PLC beobachten.

  5. #5
    Registriert seit
    04.04.2010
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Diesla Beitrag anzeigen
    @Skks

    Hallo Skks, danke für deine schnelle Antwort.
    Ja, ich habe es sowohl mit Byteoffset F020 als auch mit Bit- und Byteoffset F021 probiert. ...
    Wenn du ein Byte adressieren willst, brauchst du nur die Byteadresse. Die ist in dem Fall nicht F021 (=> frisst der Compiler das?) sondern einfach "20" für Byte 20 der Eingänge. Für die Adressierung des Byte 22 gibst du dann "22" ein.

    Wie jetzt eine Bitadresse adressiert wird, kann ich nicht genau sagen.

  6. #6
    Diesla ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2007
    Beiträge
    64
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich kann Entwarnung geben. Der Fehler war, dass ich mich bei der Umrechnung des Indexoffset von dezimal in hexadezimal verrechnet hatte.
    Jetzt funktioniert alles.

    Danke für Eure Hilfe.
    Zitieren Zitieren Indexoffset falsch umgerechnet  

Ähnliche Themen

  1. Steuerung über LAN, Internet über WLAN?
    Von Pittie im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.10.2011, 18:37
  2. Antworten: 0
    Letzter Beitrag: 08.01.2010, 16:34
  3. Antworten: 3
    Letzter Beitrag: 17.08.2009, 20:22
  4. Antworten: 33
    Letzter Beitrag: 10.02.2009, 21:14
  5. Antworten: 2
    Letzter Beitrag: 25.09.2008, 10:34

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •