Wago I/O über Modbus TCP ansprechen

Sorry wenn ich mich zu doof anstelle aber ich hab keine Erfahrungen mit IPS.

Nein, das ist überhaupt kein Problem. Wir sind alle mal so angefangen.

Also in deinem Screenshot steht „call to undefined function“. Das bedeutet dass der Interpreter den Ausdruck „MBT_WriteCoil“ nicht kennt. Der Befehl kommt erst mit der „Wago I/O Modbus“ Instanz „ins IPS rein“. Erst wenn die Instanz angelegt wurde kennt IPS also auch die zugehörenden Befehle.

Drück im Scripteditor doch mal Strg+Leertaste. Dort müsstest du den Befehl MBT_WriteCoil in der Auswahl wiederfinden. Fehlt er, ist generell etwas faul. Oft klärt sich das aber nach einem Neustart. Daher mein Vorschlag von eben.

Wenn du Auf diese Modbus Instanz doppelt klickst kommst du zu den Einstellungen. Dort hast du auch schon die Variablen deiner Taster zugeordnet. Hier kontrollierst du bitte nochmal die IP-Adresse und klickst unten nochmal auf „Apply“. Nur um sicherzugehen.

Toni

Guten Morgen,

hab nochmal alles geprüft und auch IPS neu gestartet. Aber es ist alles wie ´beschrieben und wenn ich ctrl+shift drücke erscheint auch MBT write coil im Kontexmenü. Die IP passt auch und der Port auch!
Ich wüsste net was noch falsch wäre. Hier nochmal das Script:
$wago_id = 23504;
MBT_WriteCoil($wago_id,0, true);
MBT_WriteCoil($wago_id,1, true);
MBT_WriteCoil($wago_id,512, true);
MBT_WriteCoil($wago_id,513, true);<?
/*

PS.: muss ich IPS immer neu installieren beim starten hab da irgendwie keine exe die ich direkt ausführen kann…

Bei dir ist grundlegend was faul. Dein Code ist okay. Ich behaupte zwar immernoch, dass du nicht auf deine Eingänge schreiben kannst aber dass ist eine andere Sache.

Wenn du die IPS.exe nicht einmal hast würde ich wirklich alles löschen und ersteinmal für eine vernünftige Installation sorgen. Sonst hat das alles keinen Zweck.

Gruß,

Toni

Das ist so nicht richtig. Auf dem Controller kann ein Programm laufen und IPS kann direkt die Klemmen ansprechen/auslesen.

Gruss
TK6

Hi Leute,

ich hab jetzt alles nochmal neu installiert und von neuem eine Programmierung gemacht. zuerst eine Instanz ins Leben gerufen die Wago IO ist dann Variablen erstellt und zwar diesmal 4x Ausgänge von Adresse 512-515.
Als Poltime hab ich 1000ms gesetzt.
Im event script hab ich nun die Adresse #***** des Wago IO System gewählt und die Ausgänge auf true gesetzt.
Der Instanz hab ich die IP der Wago IO Steuerung zugewiesen und TCP 502 ausgewählt.
Die Variablen hab ich der Instanz auch bekannt gemacht…

Aber immernoch kein Erfolg.

Ps.: Nach Neuinstallation erstellt mir IPS keinen Button wo ich direkt anklicken kann ich habs aber immer an.Ob nun die IPS exe funzt müsste ich heute abend nochmal testen.
Was ist eigentlich mit der Modbus DLL wird diese von Wago irgendwie benötigt oder ist die im IPS schon implementiert???

Danke

http://www.ip-symcon.de/forum/showthread.php?t=4260

Hi
ich hab jetzt nochmal ales gecheckt und neu programmiert…
leider ohne Erfolg… Nun hab ich parallel zum IPS mal getastet. Und siehe da ich bekomme im ips angezeigt das der Ausgang auf true ist…
Also steht die Verbindung zum Wago IO und die Ausgänge sind auch ok… Die Eingänge seh ich übrigens auch…
Ich muss also doch irgend ne Kleinigkeit verkehrt gemacht haben aber ich komm nicht drauf…

Moin zusammen,

ich hab das Problem soweit gelöst. Ich kann sobald ein Programm auf den Controller installiert ist mit Modbus keine direkten adressen ansprechen…
Nun hab ich mein Programm in codesys umgeschrieben und zwar hab ich am Fb_Stromstoss am EIngang des Tasters ein OR Glied eingebaut welches sowohl den Taster als eingang hat als auch ein Triggerglied das auf positive Flanke reagiert.Nun hab ich als Eingang des Triggergliedes die Adresse %IX256.0 genommen, Diese hat als Modbusadresse die Nummer 4096.
Sobald ich diese nun mit einem Modbus programm anspreche verändert sich der Ausgangszustand !! Jipiiieee

An IPS bin ich noch dran damit hab ich die Adresse noch nicht ansprechen können keine Ahnung warum… Aber mit anderen Modbus Programmen hab ich schonmal Erfolg!!! Und Step by Step komm ich langsam auch ans Ziel!!!

Hallo
Ich habe das selbe Problem .Möchte die Wago interne SPS nutzen aber mit IPS eingänge lesen und auch schreiben.Habe es gerade mal mit deiner Lösung getestet tut super ,aber wie bist du auf diese Adressen gekommen (%IX256.0) und wo ist der zusammenhang von %IX256.0 zu Modbusadresse 4096 steht das irgendwo??? Weißt du wie viele Modbusadressen man nutzen kann (256?)???

moin moin !! sorry war auf Montage und hab jetzt erst wieder reingeschaut…
Also die Adressen stehen im Handbuch vom 750-841 dort stehen auch die MODBUS Adressen… Es sind die Adressen von 256-512 und zwar 256.0-256.15 dann 257.0-257.15 usw. …
Du musst natürlich Dein Programm a bissel umschreiben welches sich auf der SPS befiondet…
ich habe das wie gesagt mittels OR Glied und Triggerglied. Das ganze muss deshalb sein, weil ich wenn ein Programm auf dem Controller ist ich die direkten Ausgänge und Eingänge nicht ansprechen kann…Ich mache das also mit dem Modbus Adressen 4096-…
Und spreche damit den Eingang an welchen ich am Triggerglied ausgewählt habe.

Hoffe Dir geholfen zu haben

Hallo Mickey29,

greifst Du nun mittels IPS auf die Konfigvariablen zu? Bei mir funktioniert das nicht mittels IPS, mit einem eigenen Programm schon. Über welche Variablentypen hast Du die Kommunikation realisiert. Wofür ist das Triggerglied gut?

Grüße
Cali

Hi Calli, sorry das ich erst jetzt antworte war lange nicht hier…
Ich greife über die Modbus Variablen zu 4096-… diese sind die Merker %IX256.0-… damit geht das mittels IPS die Merkeradressen stehen im Wago tutorial und das Triggerglied R_Trig reagiert nur auf positive Flanken somit habe ich kein Dauer ein und die Steuerung fängt nicht das spinnen an weil meine IPS dauereinsignal gibt. Falls noch fragen hast ich schau immermal rein…

Gruß miickey

ich kann Dir gerne mal mei Programm schicken das ich in codesys hab ist einfach das R_Trig danach n or glied danach der ausgang