Kommunikation Xc 201 mit MFD 4-5

berti74

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich (Anfänger) bräuchte einmal Hilfe bei der Kommunikation zwischen meiner Möller XC CPU 201 und einem Möller MFD 4-5. Als Software habe ich die Easy Soft 2.3.9. Ich wollte einfach einen Digitalen Ausgang über das Panel anzeigen lassen. Das Problem ist, das ich nicht so genau über den Datenaustausch bescheid weis.
Ich habe als erstes einmal ein neues Projekt über die Easy Soft erstellt.
Datei/Neu/Konfiguration XC CPU 201 gewählt.
In der Steuerungskonfiguration die 3 Digitalen Aus bzw. Eingänge zugewiesen und ein mini Programm geschrieben.
If eingang1 then ausgang1:=true;
End_if
If eingang2 then ausgang1:=false;
End_if

Dann über Ethernet (end Ip 240) eingeloggt und alles gut war auf der XC.

Dann noch mal Datei/neu das MFD ausgewählt.
Dann das selbe kleine Programm wieder geschrieben.

If eingang1 then ausgang1:=true;
End_if
If eingang2 then ausgang1:=false;
End_if
Als Visu nur einen Kreis gewählt und die normal und Alarmfarbe gewählt.
Als Farbwechsel die Variable (ausgang1)ausgewählt und wieder über Ethernet (endIP241)eingeloggt.

Wenn ich jetzt über die Simulation den ausgang 1 schalten lasse, funktioniert das auch mit dem Farbwechsel im Panel. Die Frage ist jetzt nur, wie ich die Xc und das MFD miteinander Kommunizieren lassen kann. Noch funktionieren beide Programme noch autark. Wahrscheinlich habe ich da wieder ein Anfänger Denkfehler drin.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Mik,
das wäre super. Ich brauche mal wieder ein Erfolgserlebniss. Einfach mal so eine Farbwechsel auf dem MFD beim Ändern des SPS Ausgangs würe schon super.
Gruß
Berti
 
Hallo Berti,
mit den 2 Programmen für XC und MFD bist Du schon auf dem richtigen Weg.

Wenn Du die kleine Datei im Anhang entpackst und in Dein XC Programm importierst ("Projekt" -> "Importieren") bekommst Du im Reiter "Ressourcen" unter "Globale Variablen" zwei weitere Objekte, nämlich "read_PH1" und "send_PH1". Der Name ist variabel, allerdings bietet sich "read_MFD" und "send_MFD" an, damit Du weisst, welche Daten gesendet und welche empfangen werden.
In "send" deklarierst Du die Variablen, die die Steuerung an das MFD senden soll, in "read" deklarierst Du die Signale, die vom MFD kommen (Taster u.ä).

Nach der Deklaration exportierst Du die beiden Objekte ("Projekt" -> "Exportieren" -> nur die beiden Objekte auswählen).
Nun öffne die CodeSys ein zweitesmal parallel mit dem MFD-Programm. Hier jetzt die beiden Objekte importieren und ganz wichtig umbenennen. Aus "read_MFD" machst Du "send_XC" und aus "send_MFD" wird "read_XC". Diese 2 Objekte MÜSSEN in beiden Programmen die gleichen Variablen bzw. die gleiche Zeilenzahl haben, da die Datenübertragung zeilenorientiert ist. Also immer schön abgleichen.

Jetzt noch etwas Hintergrund: Mit einem Rechtsklick auf irgendeinen "send"-Baustein und "Objekteigenschaften" wählen.
Bei "Netzwerktyp" muss "UDP" stehen, die "Variablenlistenerkennung (COB-ID)" muss entweder 1 oder 2 haben, entscheidend ist, dass diese Zahl im XC-Programm bei "send" und im MFD-Programm bei "read" GLEICH ist.
Die Haken bei "Lesen" oder "Schreiben" erklären sich von selbst denke ich. ;) Allerdings musst Du nach dem Importieren in das MFD Programm diese Haken bei "read_XC" und "send_XC" noch tauschen, also "Lesen" anhaken bei "read_XC" und "Schreiben" bei "send_XC".

Zur zyklischen Übertragungszeit schreibe ich später noch was,
hoffe erstmal geholfen zu haben.

Gruß
Mik
 

Anhänge

  • READ_SEND.zip
    565 Bytes · Aufrufe: 4
Zuletzt bearbeitet:
Hallo Mik, besten Dank erst mal für die ausführliche Erklärung. Leider funktioniert das ganze bei mir noch nicht so richtig. Ich hatte es so erst einmal so gemacht, wie Du es geschrieben hast. Ich hatte die Variablen aus deiner Read und Send Datei stehen lassen, und dann noch eine Individuelle aus meinem Programm eingefügt. Dann exportiert, Importiert und nach deiner Anleitung umbenannt. Die COB Einstellungen habe ich auch nochmals kontrolliert. Die Lesen und Schreiben Haken habe ich auch geändert. Wenn ich jetzt beide Programme (MFD und XC) gleichzeitig nebeneinander öffne, und dann in der XC Steuerung(send) aus einem False ein True mache, ändert sich auf der MFD Seite bei read nichts. Die Steuerungen sind beide gestartet. Muss denn unter Projekteigenschaften noch was in das Feld Dateiverknüpfung? Muss denn ein richtiges Programm auf den Steuerungen sein, oder lagt ein ; als Programm zum Testen der Kommunikation?
Besten Dank auf jeden Fall nochmal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Berti,
es muss ein Programm auf der Steuerung sein. Nur über die Simulation funktioniert die Übertragung nicht. Du solltest also schon etwas in die PLC_PRG geschrieben haben und diese als Task aufrufen.
Bei "Dateiverknüpfung" braucht nichts stehen.

Wie ist Dein Aufbau der Hardware ? XC201, MFD, Rechner und alles über einen Switch verbunden ?

Vor dem Übertragen der Programme solltest Du diese mal "säubern", ich weiss nicht warum, aber dadurch haben sich schon viele Ungereimtheiten gelöst. ("Projekt" -> "Alles bereinigen" und danach "Alles übersetzen")

Checkliste:

Programm XC:
- kleines Testprogramm in "Bausteine" -> "PLC_PRG" ?
- Taskkonfiguration PLC_PRG eingebunden ?
- "send_MFD" Netzwerktyp "UDP", COB-ID "2", Haken bei "Schreiben" und zyklische Übertragung ?
- "read_MFD" Netzwerktyp "UDP", COB-ID "1", Haken bei "Lesen" ?
- Programm bereinigt, übersetzt und übertragen ?

Programm MFD:
- kleines Testprogramm in "Bausteine" -> "PLC_PRG" ?
- Taskkonfiguration PLC_PRG eingebunden ?
- "send_XC" Netzwerktyp "UDP", COB-ID "1", Haken bei "Schreiben" und zyklische Übertragung ?
- "read_XC" Netzwerktyp "UDP", COB-ID "2", Haken bei "Lesen" ?
- Programm bereinigt, übersetzt und übertragen ?

Gruß
Mik
 
Hallo Mik,
ich bin mir noch nicht so wirklich sicher wo der Fehler liegt. Ich habe eine XC CPU 201 mit Mfd 4-5 über Switch an meinem PC angebunden.

Vielleicht habe ich da was bei der Taskkonfiguration vergessen. Evtl. kannst Du mir da ja nochmal mit einer kurzen Anleitung helfen.
Jetzt versuche ich aber erst nochmal zu beschreiben, was ich gemacht habe. Vielleicht siehst Du den Fehler ja dann schon:
Als erstes habe ich bei der Easy Soft ein neues Programm angelegt. Also Datei, neu, Konfiguration meine Steuerung XC gewählt.
Dann habe ich deine Read_Send.EXP Importiert, wodurch die beiden beiden Globalen Variablen (read_PH1 und Send_PH1) entstanden sind. Diese habe ich dann in read und send_mfd umbenannt.
Dann die Steuerungskonfiguration für einen SPS Ausgang (a1) festgelegt.
Danach das mini Programm geschrieben:


IF e1 THEN a1 :=TRUE;
visu1:=a1;
END_IF
IF e2 THEN a1:=FALSE;
END_IF


Und jetzt bin ich mir nicht sicher, wie es so richtig weitergeht. Ich habe auf jeden Fall Die Globale Variable Visu1 aus dem Deklarationsteil kopiert, und in die Send_mfd Variable eingefügt.
Das Programm habe ich dann in die Steuerung übertragen und über Werte

Schreiben den e1 auf True gesetzt.



:confused:Dadurch wird dann der Ausgang an meiner SPS gesetzt und die Visu1 wird auch True. Leider bleibt sie in dem Bereich ( Send_MFD )flase.



Da wird wohl schon der Fehler liegen.


Dann habe ich die Die beiden Dateien Send_mfd und Read_mfd über Expotieren in einen Orden gespeichert.
Weiter mit dem MFd:
Neues Easy Soft Fenster geöffnet und neues Programm angelegt. Also Datei, neu, Konfiguration MFD 4-5 gewählt.
Die Dateien Send_mfd und Read_mfd über Importieren eingefügt und In Read_XC und Send-Xc umbenannt. Die Häckchen für Schreiben und lesen habe ich kontrolliert.
Das Programm eingefügt:


IF e1 THEN a1 :=TRUE;
visu1:=a1;
END_IF
IF e2 THEN a1:=FALSE;
END_IF




Danach habe ich noch die Variable Visu1 in die Globale Variable Read XC eingefügt.
Das Programm habe ich dann ins Panel geschoben. Leider ändert sich am Panel nichts, wenn ich den a1 (visu1) Schalten lasse. Kannst Du mir da evtl noch mal einen Tip geben?

Gruß
Berti
 
:confused:Dadurch wird dann der Ausgang an meiner SPS gesetzt und die Visu1 wird auch True. Leider bleibt sie in dem Bereich ( Send_MFD )flase.

Da wird wohl schon der Fehler liegen.

Hallo Berti,
es scheint, als wäre die CPU nicht auf die UDP-Verbindung eingestellt.
Schau mal bei "Ressourcen", Doppelklick auf "Zielsystem Einstellungen", Reiter "Netzfunktionen". Da muss ein Haken bei "Netzvariablen unterstützen" sein und darunter in die Zeile trägst Du "UDP" ein.

Dann sollte es funktionieren,

Gruß
Mik
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Mik,
irgendwie funktioniert die Kommunikation nicht. Vielleicht kannst Du oder sonst jemand aus dem Forum mal über die beiden Programme schauen. Das Visu_gexc ist für die XC, das Visu_gemf ist für das Panel. Beide Programme funktionieren einzeln, nur unterhalten tun sie sich nicht.
 

Anhänge

  • visu_gemf.zip
    12,7 KB · Aufrufe: 17
  • visu_gexc.zip
    9,8 KB · Aufrufe: 3
Hallo Berti,
ich schaue mir morgen mal die Programme an. Bin heute den ganzen Tag unterwegs,

gruß
Mik
 
Hallo Mik,
das ist nett von dir. Ich werde heute mal versuchen, unseren Ingenieur zu fragen. Wenn er da eine Lösung für aus dem Stehgreif hat, sage ich auf jeden Fall noch bescheid. Wir können das in der Firma leider nicht mehr ausprobieren, da wir auf Bachmann umgestiegen sind. Und da ist das mit der Visu etwas anders. Von Möller haben wir nur noch die PS4 en, und die werden bei uns noch mit dem blauen Programm S30 in AWL programmiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Berti,
es fehlte die Zuordnung der physikalischen XC-Adressen, ich habe das mal eingefügt und die beiden Taster in der Visu auf den Ausgang a1 gelegt.
AWL ist für mich ein wenig einfacher... ;)

Ich hoffe, so wird es klar.

Gruß
Mik
 

Anhänge

  • visu_gexc_1.zip
    48,3 KB · Aufrufe: 1
  • visu_gemf_1.zip
    55,8 KB · Aufrufe: 1
Zurück
Oben