Probleme mit Beckhoff (R3IO)

Beta6

Level-1
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe ein Problem mit dem Debugging in Visual Studio. Und zwar versuche ich meine Beckhoff-klemmen per R3IO anzusprechen und es scheitert schon bei der Umsetzung des in der Dokumentation angegebenen Beispielprogramms.
Mir ist aufgefallen dass für die Erstellung der Beckhoff-Dokumentation eine ältere Version von Visual Studio benutzt worden sein muss ... Dennoch habe ich fast alle Fehlermeldungen beseitigt, doch mit der lezten komme ich nicht zurecht:

C:\TwinCAT\IO Api\TCatIoApi.h : fatal error LNK1107: invalid or corrupt file: cannot read at 0x36B

Was kann ich dagegen tun? komischerweise kann ich die Datei aber mit visual Studio manuell öffnen. Doch der Linker kann sie nicht verwenden um das Programm zu debuggen ...
 
Okay, dieses Problem entstand durch eine Fehlerhafte Einbindung der .h und .lib dateien und ist inzwischen behoben.
Ich habe nun mit R3IO ein einfaches Programm geschrieben, welches die CPU-Zeit liest und somit fähig ist in einem bestimmten Zyklus Werte vom AD-Wandler einzulesen und sie wieder mit dem DA-Wandler auszugeben. Mich interessiert in diesem Fall der Latenz-unterschied zur "normalen" SPS(ST)-Programmierung und das bei möglichst kleinen Zyklenzeiten.

Im allgemeinen kann ich sagen dass es mit 50µs Zykluszeit bei mir nicht funktioniert. Woran das liegt weiss ich nicht, es äussert sich aber dadurch, dass alle Klemmen vom INT in den OP Status wechseln und ich sie nicht wieder zurücksetzen kann, außer durch einen Systemstart. Bei 70µs funktioniert das Programm anfänglich, jedoch nach einer Weile (spätestens nach ~2min) habe ich das selbe Problem wie bei 50µs. Bei 100µs scheint es halbwegs zu funktionieren.

Mich interessiert einerseits, warum dieses Problem entsteht und sich auf die oben beschriebene Art und Weise äußert. Andererseits möchte ich auch gerne Wissen, warum dieses unstetige Verhalten (z.B. bei 70µs) auftaucht und natürlich auch wie ich dieses Problem beheben kann.

Ich wäre für mitgeteiltes Wissen, Anregungen und auch Theorien offen :D

Vielen Dank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe zwar keine Ahnung von R3IO, aber dein Problem sieht mir danach aus, als dass es einen Timeout gibt. Wenn du das Statusregister des Buskopplers nach einem Fehler ausliesst, dann sollte da ein Fehlercode drinstehen.

Da dein Programm nicht als Realtime-Programm läuft, denke ich, dass es damit ein Problem gibt. Evtl. musst du die Watchdogzeiten verlängern.
 
Versuche auch gerade C Code zu implementieren, unter VS 2005 hab ich keine Probleme. Das SDK von Beckhoff installiert und es lief... aber unter VS 2008 scheinen die ganzen Bibliotheken zu fehlen, er meckert gleich rum, das eine ceconfig.h fehlst... könnte mir wer sagen wo ich diese Libs bekommen, bzw wie ich sie nachinstalliere?
 
Entweder hast du die Pfade zu den Libs und den Include-Dateien nicht richtig konfiguriert oder in VS2008 hat sich eine API geändert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die librarys sind in dem api unterordner deines beckhoff ordners. die librarys bindest du in den linker einstellungen ein, während du die header (*.h) dateien einfach oben mit #include einbindest, wobei du da den kompletten pfad eingeben solltest
 
Die gleiche Konfiguration lief unter VS2005... habe nix geändert... Fehlermeldung:

Code:
Fehler    1    fatal error C1083: Datei (Include) kann nicht geöffnet werden: "ceconfig.h": No such file or directory    c:\daten\beckhoff\r3io\r3io vs2008\stdafx.h    14    TcR3IoSample

Die Pfade zu den Libs sind relativ zum Projektpfad:
Lib\TcTimerWrap.lib Lib\TCatIoDrvW32.lib

Als Header sind drin:
stdafx.h
Task10ms.h
Task1ms.h
TCatIoW32API.h
TcTimerAPI.h
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Diese ceconfig.h wird die mit

#include <ceconfig.h>

oder mit

#include "ceconfig.h"

eingebunden?

Es könnte sein, dass das Bsp. für ein WinCE-System gebaut wurde. Das sollte auf jeden Fall der Fall sein, wenn die Include-Datei mit #include<> eingebunden wird.
 
Wurde mit <> eingebunden, jedoch auch wenn ich es auf " " ändere, bleibt der gleiche Fehler...

Edit:
Habt ihr das denn unter VS2008 am laufen? Hab die Pro Version... vlcht fehlt ja irgendein SDK oder so...
 
Zuletzt bearbeitet:
Ich benuzte noch VS2005. So, dein Fehler hängt damit zusammen, dass ein SDK fehlt. Ich vermute einmal, dass das Projekt für Windows CE zusammengebastelt wurde. Du musst in diesem Fall Beckhoff konsultieren.
 
Zurück
Oben