# Fehlermeldung: Bitte CoDeSys mit -remote-Option starten



## Luk-11 (1 April 2019)

Hallo zusammen, 

ich mache gerade meine ersten Erfahrungen mit CoDeSys 2.3. Ich möchte gerne zwei Wago PFC 750-8212 Controller mit einem Notebook verbinden, auf dem CoDeSys installiert ist. Hierzu habe ich zunächst einen der beiden Controller über die X1-Schnittstelle mit einem Ethernet-Kabel mit einem Switch verbunden und den Switch dann mit meinem Notebook. Weiterhin habe ich dieses Kabel für die serielle Verbindung eingesteckt. 
Den beiden Controllern wurde bereits über das WBM eine IP-Adresse zugewiesen. Jetzt wollte ich die Controller zum ersten Mal an meinem Arbeitsplatz mit dem Notebook verbinden und einen der Controller als Modbus-Master konfigurieren. Ich habe dazu unter Ressourcen --> Steuerungskonfiguration --> Modbus-Master aufgerufen und erhalte die Fehlermeldung: "Es besteht keine Verbindung zu CoDeSys. Bitte CoDeSys mit -remote-Option starten."

Ich kann hiermit nichts anfangen. Wieso besteht keine Verbindung zu CoDeSys? Die Controller sollten richtig verbunden sein. 
Habt ihr Tipps fürs weitere Vorgehen? 

Vielen Dank!


Anhang anzeigen 45118


----------



## HausSPSler (2 April 2019)

Hi,
hm.. du hast drei Optionen deinen PFC zu verwenden
1. CODESYS V2.3
2. eCockpit
3. CODESYS V3
ich kenn diese remote Option in V2.3 leider nicht (könntest im Wago Forum hier mal fragen),
 alternativ wenn du CODESYS V3 verwendest ist das ein Kinderspiel.

*Wie?
*
a)CODESYS V3 aus dem CODESYS Store runterladen 
b) dann das PFC200 Packet installieren ->über das Einkaufwagen Symbol in CODESYS. ( Dann CODESYS neu starten damit das update Kommando  unter Tools erscheint)
c)->"Über Update PFC200" die SPS Runtime installieren auf dem PFC und dann neues Projekt mit PFC anlegen und deinen PFC scannen.

Hier noch ein kleines Video wie du den KBUS scannst.
https://www.youtube.com/watch?v=SzhHRlohb58
Wenn du dann noch eine Webvisu zum Projekt dazu machst, hast du innerhalb kurzer Zeit eine Bedienung deines PFC200 das du auf auf einem Handy aufrufen kannst.
z.B mit https://play.google.com/store/apps/details?id=com.codesys.webview
auf deinem Android oder eben im Browser bedienen kannst.




Grüße


----------



## Luk-11 (4 April 2019)

Hey, 

vielen Dank dir! 
Diese Fehlermeldung habe ich endlich  in den Griff bekommen: Rechtsklick auf das Desktop-Icon -->  Eigenschaften und dann so wie im angehängten Screenshot verfahren. 

Vielleicht  kannst du mir mit meinem eigentlichen Vorhaben weiterhelfen: Ich habe  zwei Wago PFC 750-8212 Controller, wobei ich einen davon als  Modbus-Master konfigurieren möchte. Ich kann hierzu leider nicht viel   Informationen finden. Hast du das schon einmal gemacht? - Ich dachte  eigentlich das wäre ein recht übliches Unterfangen und deshalb gut  dokumentiert. 

Gruß
Luk


----------



## Thruser (4 April 2019)

Hallo,


Luk-11 schrieb:


> Ich habe  zwei Wago PFC 750-8212 Controller, wobei ich einen davon als  Modbus-Master konfigurieren möchte. Ich kann hierzu leider nicht viel   Informationen finden. Hast du das schon einmal gemacht? - Ich dachte  eigentlich das wäre ein recht übliches Unterfangen und deshalb gut  dokumentiert.


das Dokument zum Modbuskonfigurator kennst Du schon?

https://www.wago.com/de/d/6500

Gruß


----------



## Luk-11 (4 April 2019)

Die kannte ich wirklich noch nicht, danke dir! 

Ich habe meine  SPSen gerade nicht zu Hand, aber das Programm müsste ich ja eigentlich  auch ohne angeschlossene SPS schreiben können, oder? 

Im ersten  Schritt möchte ich ja den Modbus-Master und -Slave konfigurieren. Dazu  bin ich nun wie beschrieben unter Ressourcen -->  Steuerungskonfiguration --> PLC Configuration -->  Modbus-Master[Fix] gegangen, habe im Modbus-Master-Konfigurator die  Netzwerkansicht geöffnet eine Ethernet-Schnittstelle und einen  Modbus-Slave hinzugefügt (siehe Bild). Soweit so gut. Unter  Kommunikation --> bearbeiten, lässt sich die IP-Adresse des  Modbus-Slaves einstellen. Beim Modbus-Master funktioniert das so leider  nicht, die IP-Adresse dürfte hier aber bereits stimmen (das habe ich ja  vorab über das WBM eingestellt). 

Ich kenne mich ja nun wie schon  gesagt leider gar nicht aus. Aber ich habe als nächstes auf "Code  generieren" geklickt, um zu schauen ob irgendwo Variablen angelegt  werden, oder etwas ins PLC_PRG geschrieben wird. Leider ist scheinbar  gar nichts geschehen, statt dessen erhalte ich die Meldung, die im  dritten Bild zu sehen ist. 
In der Spalte "Zugriff" sollte sich  eigentlich über Rechtsklick -->  bearbeiten, die Art des Variablen-Zugriffs (lesend oder schreibend)  einstellen lassen. Das ist leider nicht möglich. Vermutlich, weil ich  bisher überhaupt keine Variablen angelegt habe. Aber da ist auch schon  das nächste Problem, wie genau mache ich das? Gehe ich dazu auf "Modbus  variables[Fix]" (siehe Bild 4). Oder muss ich die Variablen im PLC_PRG  anlegen? 

Ich versuche ja nun ein einfaches Mapping zu schreiben. Also etwas in der Art: 
IEC-Adresse := Reglerdaten_via_Modbus

Wobei  Reglerdaten_via_Modbus die Daten sind, die mein Modbus-Master aus dem  Modbus-Slave liest. Deshalb muss ich also erstmal im Modbus-Slave ein  paar Daten anlegen, die in bestimmten Modbus-Adressen liegen. Diese  Daten soll dann mein Modbus-Master anfragen und einer IEC-Adresse  zuweisen. 

Das kann ja eigentlich nicht so schwer sein. Aber mir fehlt gerade der Ansatz: Wie gehe ich hier weiter vor? 
Eines der wenigen Tutorials hierzu, das ich gefunden habe, ist folgendes: 

https://www.bing.com/videos/search?...44FF6962DF65910A64C544FF6962DF65910&FORM=VIRE

Das  scheint mir nicht ganz das zu sein, was ich machen will, aber ist  zumindest ein erster Ansatz. Wenn ich nun aber unter Ressourcen -->  Bibliotheksverwaltung klicke, habe ich nur "Objekt Eigenschaften" und  "Projektdatenbanken" zur Auswahl. Ich kann überhaupt keine Bibliothek -  also auch nicht die ModbusEthernet_04 library - hinzufügen. Und somit  kann ich dieses Tutorial auch nicht weiter nutzen. 

Ihr seht, ich bin etwas verloren. Habt ihr ein paar Tipps für mich ?


----------



## Thruser (5 April 2019)

Hallo,

hier mal kurz in Bildern.

PFC Slave



PFC Master







Man darf nicht vergessen PLC_PRG als Task einzuhängen. Ich habe es jetzt hier als freilaufenden Task gemacht.

Habe es jetzt nicht weiter ausprobiert, so sollte es aber laufen. Hoffe Du kommst damit weiter.

Gruß


----------



## Luk-11 (9 April 2019)

hey, 

vielen, vielen Dank dir! 
Ich bin leider noch nicht dazu gekommen es auszuprobieren, werde mich aber heute Abend (spätestens morgen früh) daran begeben und dann hoffentlich auch weiter kommen. Meine Ergebnisse werde ich dann hochladen ;-)


----------



## Luk-11 (10 April 2019)

Hallo Thruser, 

ich versuche mal etwas Struktur in meinen Post zu bringen: 

mein Vorhaben: 
Ich  habe zwei PFC 750-8212 über einen Switch mit meinem Notebook verbunden.  Mithilfe von CoDeSys 2.3 möchte ich jetzt einen der Controller als  Modbus-Master, und den anderen als Modbus-Slave konfigurieren. Neben der  Konfiguration möchte ich natürlich auch schon ein erstes Programm  schreiben: Der Master soll ein paar Register des Slaves auslesen. 

Konfiguration: 
1. Einstellen der IP-Adressen der beiden Controller. Dies habe ich mithilfe des Web Based Managements getan. 
2. Steuerungskonfiguration --> PLC-Configuration --> Modbus variables
Hier  habe ich deiner Anleitung folgend ein paar Variablen hinzugefügt. Es  sind insgesamt 4 Variablen vom Typ Word. Als EA-Typ ist Flag  eingestellt, wodurch die Variablen als Merker gekennzeichnet werden. 
3. Steuerungskonfiguration --> PLC-Configuration --> Modbus-Master
Hier  habe ich dem Modbus-Master eine Ethernet-Schnittstelle und einen Slave  hinzugefügt. Außerdem habe ich die Variablen ergänzt. Auch diese  Einträge entsprechen jetzt deiner Anleitung. Einzige Außnahme: Ich habe  die letzte Variable (%MW3) als schreibend deklariert, weil ich glaube,  dass sich das Programm so einfacher schreiben lässt.


4. Durch  Klicken von "Code generieren" im Modbus-Master-Konfigurator ist unter  Taskkonfiguration eine neue Task erschienen: MB_ETH_MASTER_TASK und der  Unterpunkt MBCFG_ModbusSlave()
Diese Task habe ich nicht angerührt. Die Priorität ist bisher auf 31 eingestellt, Typ = Zyklisch, Intervall = 5ms
Ich  habe die Taskkonfiguration außerdem um mein main-Programm ergänzt.  Dieses habe ich ganz nach deiner Anleitung als freilaufend deklariert. 


Ich denke, dass die Konfiguration damit abgeschlossen ist. 

Programm: 
Beim  Schreiben des Programms bin ich dem Video gefolgt, das ich in Beitrag  #5 verlinkt habe. Ich habe also zunächst einmal unter  Bibliotheksverwalter --> Weitere Bibliothek --> Application die  ModbusEthernet_04.lib hinzugefügt. Dann bin ich zu meinem PLC_PRG und  habe im ersten "Rung" einen ETHERNET_MODBUSMASTER_TCP hinzugefügt. In  dem Video wird statt dessen ein UDP-Baustein verwendet. 
Die meisten  Parameter kann ich eigentlich verstehen. Etwas unsicher bin ich bzgl.  InData und OutData - warum wird hier ein Array definiert? Hat ein WORD  genau 128 bit? Das heißt, wenn ein Word ausgelesen wird, wird hierüber  festgelegt, dass jedes Bit davon auch gelesen wird? 
Dann, eine  vermutlich etwas dumme Frage: Ich glaube ich habe den Funktionsbaustein  nicht richtig eingefügt: Müsste ich ihn nicht eigentlich mit dieser  Linie verbinden, die oberhalb von 0001 steht? 






Was vlt noch interessant ist: Unter Bausteine --> Configuration habe ich ein MODBUS_CONFIGURATION(PRG) stehen. Dieses Programm ist aber leer: 


Sollte ich hier noch etwas rein schreiben? 

Tut mir leid wegen der ganzen Fragen


----------



## Thruser (10 April 2019)

Hallo,

die ersten beiden Anhänjge können nicht geöffnet werden.

Du mußt zwei Programme erstellen. Eines für den Slave und eines für den Master.

Slave:
Da stellst Du die IP 192.168.1.18 ein.
Dann nimmst Du die Konfiguration wie in meinem ersten Bild oben vor. Zusätzlich trägst DU die Zeilen unten links im Bild in PLC_PRG ein. Dann verbindest Du Dich mit der Steuerung, lädst das Programm hoch und startest es.

Master:
Da stellst Du die IP 192.168.1.19, oder eine andere ungleich 18, ein.
Dann nimmst Die Konfiguration aus den Bildern für den Master oben.

Wenn Du dann dann auf Code generieren drückst wird der entsprechned Code erzeugt. Zusätzlich werden die benötigten Bibliotheken eingebunden. Die ModbusEthernet_04.lib mußt Du nicht extra einbinden. Auch mußt Du den FB1 nicht so einbinden. Der Baustein ETHERNET_MODBUSMASTER_TCP wird automatisch durch den Konfigurator eingebunden und aufgerufen.

Dann mit der zweiten Steuerung (dem Master) verbinden, Programm hochladen und starten.

In der 'leeren' Datei ist die Konfiguration die durch den Modbus Konfigurator erzeugt wird. Der gehört nicht zum CoDeSys Standard sondern ist eine Wago Erweiterung. Ohne die Datei müßtest Du die Konfiguration jedesmal neu erstellen.

Gruß


----------



## Luk-11 (10 April 2019)

ah ok. Jetzt verstehe ich es. Ich hab dein drittes Bild übersehen! Durch die Einstellungen im Modbus-Master-Konfigurator umgehe ich quasi die Notwendigkeit, diese Kommunikation selbst zu programmieren. Das wird mir über "Code generieren" abgenommen. Und jetzt muss ich nur noch das Programm - wie in deinem Beispiel - auf den Slave, und ein anderes Programm auf den Master spielen. Das probiere ich morgen mal aus. 

Ich würde dir gerne noch eine abschließende Frage stellen: Unter Steuerungskonfiguration --> Modbus variables habe ich alle Variablen als EA-Typ "Flag" und somit als Merker deklariert. Für diese Variablen sind in der PFC allerdings nur ganz bestimmte Register vorgesehen. Angenommen ich möchte meine Variablen in anderen Registern speichern, müsste ich diese dann als Output deklarieren? 
Ich meine damit: Ich deklariere diese vier Variablen im Modbus Slave als Output. Und im Modbus-Master-Konfigurator füge ich sie dem Slave auch als Output hinzu. Für den Modbus-Master sind diese Variablen natürlich Inputs, deswegen bin ich mir etwas unsicher, welche Deklaration richtig wäre.
Hier in Bildern: 









..
ich habe jetzt gerade versucht das Programm auf die SPSen zu spielen. Das Slave-Programm läuft einwandfrei. Das Master-Programm wirft allerdings Fehler: 



Es stimmt, dass sich mb_var0, mb_var1 und mb_var2 nicht in MBCFG_ModbusSlave(); befindet: 



Allerdings trifft dies ja auch auf das Slave-Programm zu und hier erhalte ich keine Fehlermeldung.

.. und auch das Problem ist gelöst: ich habe mb_var0 etc. durch xNewVar ersetzt


----------



## Luk-11 (11 April 2019)

hey, 

kann ich auch eine andere SPS als Modbus-Master verwenden, und die SPS des Modbus-Slave aber beibehalten? 
Ich habe meine Modbus-Master SPS jetzt gegen eine PFC 750-8202/025-002 getauscht. Und der Slave ist immer noch eine PFC 750-8212. Das Modbus-Master Programm habe ich neu erstellt (ich musste ja die Zielsystem-Einstellungen anpassen). Aber die Zielsystem-Einstellungen des Slaves bleiben ja eigentlich gleich. Im Modbus-Master-Konfigurator des Slave Programms ist als Master aber immer noch eine PFC 750-8212 angegeben. Das lässt sich nur ändern, indem ich die Zielsystem-Einstellungen ändere. .. erkennst du mein Dilemma?


----------



## Thruser (11 April 2019)

So, erst einmal zu den ersten Fragen, natürlich kannst Du auch mit Input und Output definieren. Hatte der einfachheit halber mit Flags/Merkern gearbeitet.

Bei Deinem Fenster vom Modbus Konfigurator werden die Namen in der ersten Spalte (Netzwerk) nicht angezeigt, mach die mal breiter. Dann siehst Du auch die Bezeichnung xNewVar.

Beim dem Controller den Du als Slave einsetzen willst benötigst Du den Modbuskonfigurator nicht. Der Controller bringt die Slave Funktionalität schon ohne weiteres zutun mit. Du mußt nur die Varablen unter Modbus Variables festlegen.

Nur wenn Du mit dem Controller über Modbus Daten von anderen Geräten lesen/schreiben willst benötigst Du den Konfigurator und/oder die ganzen Bibliotheken. Habe gerade gesehen, daß die ModbusEthernet_04.lib gar nicht verwendet wird sondern WagoLibModbus_IP_01.lib und die MBCFG_ libs.

Ich hatte jetzt keine Zeit meinen zweiten Controller rauszusuchen und zu konfigurieren, daher die beiden Programm im Anhang ungetestet.

Gruß

Anhang anzeigen 8202_MB_Master.zip
Anhang anzeigen 8212_MB_Slave.zip


----------



## Luk-11 (13 April 2019)

perfekt! 

Vielen, vielen Dank nochmals! Du hast mir enorm weitergeholfen!


----------

