Autor Thema: EC4P und MFD 5.7 verbinden  (Gelesen 4990 mal)

Offline Fast1337

  • Newbie
  • *
  • Beiträge: 5
EC4P und MFD 5.7 verbinden
« am: Oktober 22, 2010, 09:11:53 Vormittag »
Hallo,

ich habe mir jetzt das Forum sehr genau angeschaut und ich hoffe, dass ich dieses Problem nicht irgendwo übersehen habe...
Ich habe teilweise ziemlich ähnliche probleme gefunden, konnte aber mit den Lösungsvorschlägen nichts anfangen, weil ich ziemlich neu auf dem Gebiet hier bin. Also von daher würde ich um eine ausführliche Hilfe bitten  :)

Ich habe ein Programm mit Hilfe von CodeSys 3.9 geschrieben. In diesem Programm geht es um eine Programmierung für ein Förderband. Dieses Programm läuft auch soweit optimal. Jetzt habe ich den Auftrag erhalten die EC4P von Moeller mit einem MFD 5.7 Display (ebenfalls von Moeller) zu verknüpfen. Ich soll nun einmal auf dem Display anzeigen lassen können, was das Förderband gerade macht und zweitens sollte ich auch per Display das Förderband ansteuern können...

Ich bin bei dem Versuch kläglich gescheitert...

Ich müsste irgendwie dem Display sagen, dass wenn Ausgang 8 von der EC4P aktiv ist, in der Visualisierung die Farbe wechseln soll oder sowas... Ebenfalls aber wenn ich auf dem Touch-Display auf Eingang 1 drücke, das Band anfängt zu laufen...

Ich habe echt keine Ahnung und würde mich riesig auf Hilfe freuen...

Lieben Gruß

Offline ALU

  • Newbie
  • *
  • Beiträge: 8
Re: EC4P und MFD 5.7 verbinden
« Antwort #1 am: Oktober 22, 2010, 13:12:37 Nachmittag »
Hi Fast1337,

als Kommunikationsverbindung zwischen EC4P und MFD5.7 kannst Du z.B Netzwerkvariablen über CAN verwenden:

- In den Tartet Settings deiner Projekte gehst Du auf die Karteikarte 'Netzwerkfunktionen' und aktivierst die Checkbox 'Netzwerkvariablen unterstützen'. Im Feld für unterstützte Netzwerkinterfaces muss 'CAN' eingetragen sein.
- Anschließend fügst Du im Ordner 'Globale Variablen' jeweils zwei neue Objekte ein (rechte Maustaste),  Name z.B. NvCanSend/NvCanReceive, klickst auf Netzwerkvariablen hinzufügen und gibst jedem Objekt eine Senderichtung und die ERSTE zu verwendende Cob-ID vor z.B 1 und 20.
- Variablen, die in den so erzeugten Ordnern liegen werden über den CAN-Bus ausgetauscht.

( -> Was auf der einen Steuerung gesendet wird soll muss auf der anderen empfangen werden, deshalb sollten die Cob-IDs und die Variablen in den entsprechenden Ordnern übereinstimmen.)

Die ausgetauschten Daten kannst Du jetzt zum Aufbau Deiner Visualisierung nutzen.
- Unter Visualisierungen ein neues Objekt einfügen
- Ein Rechteck oder ähnliches zeichnen
- Doppelklick auf das gezeichnete Objekt
  Interressant sind hier die Kategorien 'Variablen' und 'Eingabe'.

Kleiner Tipp: Die Variablensuche innerhalb der Visualisierung wird durch die 'F2'-Taste erleichtert.

mfg
ALU

Offline Fast1337

  • Newbie
  • *
  • Beiträge: 5
Re: EC4P und MFD 5.7 verbinden
« Antwort #2 am: Oktober 25, 2010, 07:06:52 Vormittag »
Guten Morgen,

ich habe noch eine weitere Frage.
Wie muss denn die Variablenliste aussehen ( es handelt sich nur um bool-bausteine, die für die kommunikation eine rolle spielen...) ?
Kann ich einfach bei CanSend bei der ec4p reinschreiben:
VAR_GLOBAL
ARRAY test[0..0]OF BOOL
END_VAR

Und dann bei CanReceive bei dem Display:
VAR_GLOBAL
ARRAY test[0..0]OF BOOL
END_VAR

Also das gleiche? Oder wie muss die Variablenliste aussehen. Hierfür ein paar Zeilen wären für mich sehr praktisch. Danke für eure (besonders schon mal für deine, ALU) Hilfe!!

Offline ALU

  • Newbie
  • *
  • Beiträge: 8
Re: EC4P und MFD 5.7 verbinden
« Antwort #3 am: Oktober 25, 2010, 14:43:28 Nachmittag »
Hallo Fast1337,

Boolsche Variablen werden intern als Byte-Variablen verarbeitet, verbrauchen also entsprechend Speicher.
Die in den Netzwerkordnern liegenden Variablen werden auf der sendenen Steuerung in CAN-Telegramme (8Byte groß) gelegt. Ist ein Telegramm voll wird das nächste genommen.
Die COB-ID des ersten verwendeten Telegramms gibst Du in den Objekteigenschaften an.
Empfangsseite: Wird ein CAN-Telegramm mit einer verwendeten COB-ID empfangen wird der Inhalt in die entsprechenden Variablen der Variablenliste gelegt.
Die Variablen können auf beiden Seiten unterschiedliche Namen tragen (auch wenn das nicht unbedingt sinnig ist), die Struktur und Länge von Sende- und Empfangsliste sollte allerdings gleich sein.

Ok ist z.B:

... senden:
VAR_GLOBAL
ARRAY test[0..10]OF BOOL
END_VAR

empfangen:
VAR_GLOBAL
ARRAY test_teil1[0..5]OF BOOL 
ARRAY test_teil2[6..10]OF BOOL
END_VAR

Nicht iO. ist z.B:

... senden:
VAR_GLOBAL
 dwTest :DWORD;
 byTest : BYTE;
END_VAR

empfangen:
VAR_GLOBAL
 byTest : BYTE;
 dwTest :DWORD;
END_VAR
...weil Du hier die Reihenfolge der Variablen drehst werden diese auf der Empfangsseite falsch gefüllt.

Übrigens ist es auch möglich die Variablen aus Netzwerkvariablenordnern in einem Projekt zu exportieren und sich in einem anderen Projekt automatisch zu laden. Hierzu kannst Du im Eigenschaftendialog der Globalen Variablenliste eine "Dateiverknüpfung" erstellen.
Projekt A exportiert/Projekt B importiert und Du hast keinen Ärger mit einem unterschiedlichen Aufbau der Variablenliste.

mfg
ALU
 

Offline Fast1337

  • Newbie
  • *
  • Beiträge: 5
Re: EC4P und MFD 5.7 verbinden
« Antwort #4 am: Oktober 25, 2010, 21:56:16 Nachmittag »
Hallo :)

Vielen Dank für deine erneute Hilfe.
Ich habe da heute mal so ein bisschen rumexperimentiert und es klappt nun auch alles.
Ich habe nun aber Variablenlisten wie:

VAR_BLOBAL
Schritt1: BOOL;
Position3: BOOL;
VAR_END

Und dann halt die gleiche Liste bei CanSend und CanReceive...

Funktioniert auch^^ Also man muss gar nich mit ARRAY (wovon ich immer ausgegangen bin...) arbeiten :)

Aber trotzdem Danke für deine Hilfe!