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

Ergebnis 1 bis 8 von 8

Thema: CAN-Messages aus dem TwinCAT Manager in PLC einlesen

  1. #1
    Registriert seit
    17.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forenmitglieder.
    Ich bin neu auf dem Gebiet Automatisierungstechnik und arbeite Gerade an einem Projekt an der Hochschule.

    Mein Problem ist folgendes:
    Ich Habe eine PCI Karte von Bekhoff TYP FC5101 im PC verbaut.
    Über diese Karte lese ich ein CAN-Node (Eigenentwicklung im Labor) aus.
    Im TwinCAT Manager habe ich die Karte, CAN-Node und die dazu benötigten Variablen Deklariert und Konfiguriert. Die Variable ist vom TYP "VARTYPE_CANMESSAGE" und ist ein Array vom Typ UINT.

    Das Can-Node ist eine Antenne, die ein ID-Tag ausliest. Die 8 Byte-Message kommt im Manager an und ich kann die Daten in der Variablen einsehen.

    Jetzt komme ich leider nicht mehr weiter. Ich würde Gerne in einem PLC-Programm auf diese Daten zugreifen und diese weiterverarbeiten, oder wenigstens ein Flag setzen und Die Variable vieder mit Nullen beschreiben.

    Wie kann ich dies erreichen? Leider habe ich keine aussagekräftige Beschreibung oder Anleitung gefunden.

    Vielen Dank im Voraus
    Zitieren Zitieren CAN-Messages aus dem TwinCAT Manager in PLC einlesen  

  2. #2
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Hallo!

    Ich gehe jetzt einfach mal davon aus, dass Du auch das Lizenzlevel PLC hast bzw. im 30-Tage-Demomode arbeitest.

    1.)
    Das weitere Vorgehen wäre nun, im PLC Control ein PLC Projekt zu erzeugen. Beim ersten Start des Programms öffnet sich Maschine.pro als Beispielprojekt.

    Zum Datenaustausch mit der E/A werden nun PLC-seitig Eingangs und Ausgangsvariablen benötigt, die z.B. in der Form

    Code:
    DataArrCANIn   AT%IB0  :ARRAY[0..7] UINT;
    DataArrCANOut AT%QB0 :ARRAY[0..7] UINT;
    2.)
    Wenn Du nun noch etwas Quellcode erzeugste und die Werte bearbeitets, alles fehlerfrei übersetzt (Wichtig: vorher speichern), erhälst Du eine Symboldatei MeinProjekt.tpy , die unter der SPS-Konfiguration im System Manager eingefügt werden kann. Durch Öffnen mit "+" navigierst Du bis zu den Eingängen/Ausgängen und findest dort die erzugten Variablen.
    Nun kannst Du per Rechtsklick auf diese Varibalen eine Verknüpfung zu den Nodes der FC5101 herstellen.

    3.)
    Anschließen das Projekt bzw. die Konfigruation unter Aktionen aktivieren und in den RUN-Modus schalten.

    4.)
    Danach kannst Du Dich mit dem PLC Control einloggen, und den Programmablauf beobachten.

    Noch Fragen? Fragen!

    Marco

  3. #3
    xruslan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Marco,
    vielen Dank für die schnelle Antwort.

    Mittlerweile bin ich auch schon soweit gekommen, dass ich die Variablen einlesen konnte. Ich musste nur eine zusätzliche Task erzeugen, die schneller als die anderen läuft, damit die Daten auch schneller erfasst werden.

    Aber vielleicht könntest du mir weiter helfen.
    Die Eingangsariable die ich im CAN-Node einlese behält die daten, bis ich diese manuel im Karteiraiter "ONLINE" mit klicken auf "Schreiben" zurücksetze.

    Dies möchte ich jetzt aus dem PLC-Programm machen. Leider Kann ich auf diese Variable nicht schreiben. Auch dann nicht, wenn ich diese Variable in meiner Task erzeuge (Variablensymbol wird dann blau) und die Variable dann im Karteiraiter "Export" des Projektes exportiere. Diese taucht dann als Globale Variable im Projekt auf, jedoch ohne Schreibzugriff.

    Gibts es da einen Trick?

    MfG

    Rus

  4. #4
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Hallo Rus,

    ich verstehe noch nicht so ganz das Problem?!

    Die zusätzliche Task hat Dir als Einstieg gedient? Okay, die vergessen wir jetzt und löschen diese.

    Alles, was Du nun an Variablen im PLC Programm angelegt und auf die Node/Karte verknüpft hast, wird nun durch die PLC bedient. Wertänderungen in der PLC sind also Wertänderungen für die Node.
    Auf E/A Ebene direkt kannst Du nicht schreiben, sondern nur forcen.

    Gruß....

  5. #5
    xruslan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Marc,
    ich habe die gleichen Schritte unternommen, die du beschrieben hast. Leider hat wurden die Werte der Variable aus dem Manager nicht übernommen, bis ich das Programm, wo die ich Can-Variablen deklariert habe, nicht einer schnelleren Task angefügt habe. Aber egal.

    Jetzt möchte ich den Wert der Variable, die ich eingelesen habe wieder auf Null setzen. Da dies ja nicht von alleine geschiet, habe ich versucht diese zurückzusetzen. Leider ohne Erfolg da ich auf die Variable nicht schreiben kann.

    Gruß
    ...

  6. #6
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Kannst Du Dein System Manager (*.tsm) - File und PLC-Projekt (*.pro) - File hochladen....dann schau ich mal drüber.
    Sonst per PN.

  7. #7
    xruslan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo ,
    nochmals vielen Dank für die Hilfe.
    Anbei mein Ordner mit dem Testprojekt.

    Hier Kurz die Erläuterung:
    Im Manager habe ich unter Gerät1-->Box1-->Eingänge
    Eine Variable CANmessage angelegt. Diese ist mit der Globalen Variable PlcCanMessage des Projets "test01" verknüpft.

    Das Einlesen funktioniert wunderbar und ich kann im PLC Projekt die einzelnen Bytes der Message auslesen. Jetzt habe ich einen Button erzeugt mit dem ich den Wert der Variablen "CANmessage" zurücksetzen möchte. Wie kann ich dies lösen?

    MfG
    Rus
    Angehängte Dateien Angehängte Dateien

  8. #8
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Jetzt habe ich einen Button erzeugt mit dem ich den Wert der Variablen "CANmessage" zurücksetzen möchte. Wie kann ich dies lösen?
    Gar nicht! CANmessage ist doch eine Eingangsvariable die aus der CAN Node kommt und dort Ihren Ursprung hat. Sie muss also von dort zurück gesetzt werden.

Ähnliche Themen

  1. twincat system manager
    Von slaud im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 25.10.2011, 16:15
  2. OPC-Daten in TwinCAT einlesen?
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 11.05.2011, 18:19
  3. ADS ohne TwinCat System Manager
    Von mikep im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 05.03.2010, 03:32
  4. TwinCat System Manager Fehlermeldung
    Von jojo-schneider im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 19.10.2009, 12:52
  5. Beckhoff TwinCat System Manager CP7901
    Von Anaconda55 im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 01.10.2008, 15:35

Lesezeichen

Berechtigungen

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