Einstiegsprobleme mit Beckhoff (PC-basiert)

Beta6

Level-1
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmals,

ich sitze gerade vorm Monitor und kriege eine Krise, da ich net mehr weiter weiß :confused:

Ich habe einen EK1100 als Koppler und habe ansonsten noch eine EL4732(D/A-Wandler)- und eine EL3702(A/D-Wandler)-Klemme damit verbunden. Ich versuche nun ganz einfach (ohne die Einbindung der distributed clocks) Werte mit der EL4732 zu senden, natürlich über eine Steuerung (in PLC-Control). (Am schönsten wäre es natürlich auch wenn ich sie mit dem EL3702 empfangen könnte ;)) ...

Naja und da habe ich mich ein bissel durch das Informationssystem von Beckhoff gewühlt um nach der passenden Funktion zu suchen. Wenn ich es richtig verstanden habe brauche ich den Funktionsblock "FB_EcCoESdoWrite" um einen Wert zu senden.... (Falls es doch eine andere Funktion sein sollte, bitte auch einen Hinweis schreiben ^^)

Nun bin ich aber auf das Problem gestoßen dass beim Klicken auf den Reiter "CoE-Online" bei beiden Klemmen nur ein leeres Kästchen gezeigt wird, wo doch aber (zumindest meines Wissens nach) eine ganze Liste von Objekten aufgeführt werden müsste ...

Hat irgendwer eine Idee was ich machen kann?

Vielen Dank
 
Wo ist das Problem? Die Klemmen haben doch als Prozessdaten die Ein-, bzw. Ausgänge "ChX Value" unter "ChX Sample X". Da müssen deine SPS-Verknüpfungen ran.

Generell (kann sein, dass du das schon weist):
Du musst bei EtherCAT und TwinCAT immer eine Task haben (z.B. laufendes SPS-Programm), welches den Bus triggert. Also I/Os müssen mit der SPS/NC verknüpft sein und das Programm muss laufen (PLC => run).

Wenn bei CoE-Online nichts drin steht, ist TwinCAT entweder nicht im RUN-Modus oder das SPS-Programm läuft nicht. Steht da was, wenn du TwinCAT in Config-Modus + Freerun schaltest?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die schnelle Antwort,!
Leider bin ich erst heute dazu gekommen, das auszubprobieren...
Leider funktioniert das mit dem Freerun-Modus nicht, also bei CoE-Online steht immer noch nichts weiter...
Ich habe jetzt ein einfaches Programm geschrieben (das mir nur die zeit der Distributed Clocks anzeigen soll), welches funktioniert, allerdings steht da immern noch nichts ...
Wenn ich dich richtig verstanden habe muss es aber eh ein Programm sein, welches direkt den ausgang triggert ... Dazu erstmal die grundlegende Frage:
Welche Funktion nehme ich hierfür? welche Funktion sendet und mit welcher kann ich mit dem A/D-Wandler die Daten auslesen die ankommen?!
Ich denke mal diese Frage ist die Grundlage für alles weitere, jedoch hat mir das Beckhoff information system nicht viel weiter helfen können, da ich durch diese ganzen FUnktionen in den verschiedenen Librarys keinen durchbnlick habe ... Wäre schön wenn mir das jemand nochmal schreiben (vielleicht auch mit kurzer erklärung ^^) könnte.
 
Dafür brauchst du keine Funktionen aus Bibliotheken. In deinem Programm legst du einfach Globale Variablen mit Adressen fest (z.B: AD_Channel1 AT %IW10 : INT; ). Dann übersetzt du das Programm und speicherst es. Im System Manager fügst du dein Programm und die Hardware ein und verknüpftst das miteineander. System starten, PLC starten, fertig.
So geht es bei normalen Klemmen, XFC sollte eigentlich nicht anders sein. Kommt nur noch drauf an wie du deine Klemme konfigurierst.

Denk daran, ein SPS-Programm kommuniziert normalerweise einfach per adressierten Variablen mit der Außenwelt.

Grüße
Michael
 
Die Analogklemme hat doch Prozessdaten (z.B: ein INT) als EIn/Ausgänge. Diese Prozessdaten (oder nur eines davon) verknüpftst du mit einer als %I* bzw. %Q* in deinem SPS-Programm deklarierten, typgleichen Variable.
Programm übersetzen, speichern, im System Manager die SPS-Konfig einlesen, verknüpfen, Konfiguration aktivieren, SPS-Programm laden und starten... fertig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay das Prinzip habe ich jetzt verstanden! Wie mache ich das jetzt aber mit dem verknüpfen genau? also bei dem D/A Wandler steht bei Ch1 Value z.b. "Adresse: 28 (0x1C)". die brauche ich doch bestimmt zum verknüpfen?! Oder läut die addressierung anders ab (von dem A/D Wandler heißt ja die eine Variable auch Ch1 Value)?
 
Ja schon einigermaßen richtig. Allerdings brauchst du dich nicht mit der 28 (0x1C) beschäftigen, sondern mit dem Feld darunter. Da steht auch eine Schaltfläche "Verknüpft m.". Wenn du diese drückst, werden dir freie Variablen z.B. aus dem SPS-Programm angezeigt. Aber nur, wenn du welche angelegt und das Programm eingebunden hast (siehe vorige Beiträge). Da wählst du eine aus und klickst auf OK. Dann ist der Eingang mit deinem Programm verknüpft.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe es geschafft :D:D:D

Vielen Dank für die Hilfe euch allen, habt mir wirklich sehr weitergeholfen...

noch eine letzte bitte (^^): vielleicht könnt ihr mir einen ansatz geben wie man es hinbekommen kann werte mit einem zeitstempel(vom verwendeten slave) zu empfangen und senden .... also dass man später nachvollziehen kann dass der A/D-Wandler zum Zeitpunkt t=... den wert x=... gemessen hat.
Das wäre super
 
Wie das genau geht, sollte in den jeweiligen Dokus zu den Klemmen und zu den "Distributed Clocks" stehen. Auf der Beckhoff-Homepage ist letztere zu finden.
Es geht auf jeden Fall, Werte mit Zeitvorgabe zu setzen und zu lesen. Das Stichwort ist hier "SYNC"-Event.
 
Soderle,

habe das mit den sync-settings herausgefunden und jetzt die neue variable StartTimeNextLatch bekommen, nach der ich ja die zeitliche reihenfolge der eingelesenen variablen herstellen kann.
Irgendwo in der Dokumentation auf der Website wurde etwas über ein spezielles Format gesagt, womit man einen Wert mit dem Zeitstempel in einer Variablen darstellen kann. Weiß da jemand was darüber? sonst habe ich ja immer 2 variablen ... wenn nicht, vielleicht hat jemand eine idee wie ich am sinnvollsten diese werte speichern kann, sodass sie im nachhinein gut nachvollziehbar sind.
 
Zurück
Oben