Tag 0 mit IP-Symcon (ein erster, kleiner Erfahrungsbericht)

Hier ein script wie ich die anlege


<?php

    $id_Kategorie = 56825 /*[Wago\Digitale Ausgänge\750-0508-POS-34_ADR_13186_2fach_230V_Relaiseklemme]*/;
    $adresse_1    = 13186;
    $anzahl       = 2;              // Anzahl der zu erstellenden Instanzen
    $datenTyp     = 0;              // 0=Bit, 1=Byte, 2=Word, 3=DWord, 4=ShortInt, 5=SmallInt, 6=Integer, 7=Real
    $modulName1   = "ADR_";         // 1.Bezeichnung der Variable
    $modulName2   = "_DO_A";        // 2. Bezeichnung der Variable
    $adresse_2    = 1;              // Ein / Aus Nr.
    $time         = 200;            // Aktualisierungzeit in ms
    $nurLesen     = true;          // true oder false
    $id_Gateway   = 51977 /*[ModBus Gateway - TCP Wago]*/;
    
    for($i=0; $i<$anzahl; $i++) {
        $num1adresse  = zerofill($adresse_1);
        $num2adresse  = zerofill($adresse_2);
        $neueInstanz  = IPS_CreateInstance("{CB197E50-273D-4535-8C91-BB35273E3CA5}");
        IPS_SetName($neueInstanz, $modulName1.$num1adresse.$modulName2.$num2adresse."_");
//        IPS_SetName($neueInstanz, $modulName1.$num1adresse.$modulName2."_");
        ModBus_SetType($neueInstanz, $datenTyp);
        ModBus_SetWriteAddress($neueInstanz, $adresse_1);
        ModBus_SetReadAddress($neueInstanz,  $adresse_1);
        ModBus_SetPoller($neueInstanz, $time);
//        ModBus_SetReadOnly($neueInstanz, $nurLesen);
        IPS_ApplyChanges($neueInstanz);
         IPS_SetParent($neueInstanz, $id_Kategorie);
        IPS_DisconnectInstance($neueInstanz);
         IPS_ConnectInstance($neueInstanz, $id_Gateway);
         IPS_SetPosition($neueInstanz, floatval($adresse_1) );
         $adresse_1++;
         $adresse_2++;
         IPS_Sleep(1500);
    }
//     ============================================================================
    function zerofill ($num, $zerofill = 2) {
        return str_pad($num, $zerofill, '0', STR_PAD_LEFT);
    }

?>

ist hier aus dem Forum

Vielleicht hättest Du schreiben sollen: „Hier ein Script, mit dem ich 2010 Instanzen angelegt habe“.

Ich weiß nicht, welche IPS Version Du hast. Wenn dieses Script bei Dir noch funktioniert, dann hast Du eine ganz alte Version. Dem Threadersteller ist damir auf jeden Fall nicht geholfen, da davon auszugehen ist, dass er eine aktuelle IPS Version hat.

Grüße,
Christoph

also ich bin mit der 4.3 auf Windows unterwegs und
letzte Woche hats noch gefunkt.

Ich nehme an bei mir ist noch die Kombi Funktion angeklickt

Das hättest Du vielleicht dazusagen sollen :slight_smile:

Im Prinzip richtig, aber:
Bei Wago sind die Modbus-Adressen entsprechenden Ein-, Ausgängen oder Merkern zugeordnet.
Es wäre schon hilfreich, wenn man hier einen Assistent / Wizard hätte um direkt die Adressen einzugeben und auch zum sagen: Lege mir 10 Variablen vom Typ SmallInt ab MW100 an.
Die Variablennamen könnten dann automatisch den entsprechenden PLC-Adressen entsprechen. Umbenennen kann man sie dann immer noch.

So wie sich der Markt momentan darstellt, gewinnt Wago / Codesys im Bereich Smarthome immer mehr Anteile. IPS als Universal-Gateway passt - meines Erachtens - ideal dazu.
Also von daher wäre es vielleicht schon eine gute Idee hier etwas Entwicklungszeit zu investieren.

Noch eine weitere Idee:
Die neuen Wago-Controller (PFC100 / PFC200) laufen unter Linux.
IPS direkt auf einem dieser Controller wäre quasi ein Traum …
Vielleicht könnt ihr ja mal bei Wago anklopfen?

Gruß
Dieter

Das war auch eine meiner Ideen und sicherlich simpel umzusetzen.

Ich glaube, ich habe jetzt meinen Denkfehler erkannt, nachdem Rene mir gesagt hat, das es nur eine Variable unter einer Instanz geben kann. Als erstes habe ich mich eigentlich nur gefragt, warum ist dann das anlegen einer zweiten überhaupt möglich???

Aber egal, mein Denkfehler rührte von dem ursprünglich von IPS vergebenen Namen, der meines erachtens auch falsch ist.
Die neue Instanz heißt nämlich „Modbus Device“, was aber eigentlich keines ist.

Ich habe es nun so verstanden:
(siehe Bild auf der 2. Seite)
Namen alt: Modbus Device_real -> rtest1
Namen neu: Raumtemperatur -> Wert

Habe ich das nun richtig verstanden?

Ich hatte mich beim Script zum schreiben schon gewundert, warum ich nicht auf rtest1 referenzieren kann, sondern nur auf das „Modbus Device“.

Nun ist es mir wie gesagt einigermaßen klar geworden.
Bitte sagt mir, ob ich damit nun auch wirklich richtig liege.

Das bringt mich immer wieder zu der Frage, warum es keine Beispiele gibt!!!
Dann hätte ich mir vermutlich 2 Tage Rätselraten ersparen können.

Hi,

hier ein Screenshot (als Beispiel)

Gruß

Hi,

mit meinem Script von oben funkt das genauso

Habe ich gesehen.
Allerdings wäre eine „integrierte“ Lösung sicherlich die bessere Wahl.
Vorallem in Hinblick auf Einsteiger

@sewo

1000 Dank, damit hast du meine Theorie bestätigt.

@paresy
ich weiß nicht, ob ich bei dir damit an der richtigen stelle bin,
aber ich finde es als zwingend erforderlich den Namen von „Modbus Device“ in z.b. „Modbus Variable“ zu ändern.
Device ist an dieser stelle nicht einfach nur falsch, sondern auch extrem irreführend.

strgalt

Du musst hier etwas zwischen normaler SPS-Sicht und IPS-Sicht unterscheiden.
Im IPS-Umfeld passt die Bezeichnung Device schon. Einfach gesagt ist bei IPS ein Sensor oder Aktor.
IPS beherrscht sehr viele Systeme mit den unterschiedlichsten Kommunikationswegen. Daher ist es schwierig hier eine einheitliche Bezeichnung zu finden.
Das grundlegende Problem ist - meiner Meinung nach - einfach die nicht ausreichende Doku für die Ankopplung von Wago-SPSen.

Gruß
Dieter

Hallo zusammen,

wäre es nicht sinnvoll, dieses Thema unter „SPS Automatiserungsforum“ zu diskutieren. Eventuell werden hier Anfängerfragen mit Wago-spezifischen Anliegen vermischt.

Meine Bedenken gehen nur in die Richtung, dass aktuell viel allgemeinere wichtige v4.2 - > v4.3 Themen damit untergehen.

Gruss
Bernd

@Dieter
den Einwand an dieser Stelle kann ich verstehen, aber im Bezug auf Modbus ist es halt einfach nur falsch und irreführend.
Mit der Doku hast du vollkommen recht, das ist aus meiner Sicht irgendwie ein Armutszeugnis.
Weiß nicht, wie es in anderen Bereichen aussieht, aber im Bereich Modbus ist die vorhandene Doku einfach nur eine Katastrophe und damit unbrauchbar. Sorry, das ich das gleich so hart sagen muß, aber die vielen Forenbeiträge zu diesem Thema scheinen das ja vollends zu bestätigen.

strgalt

Genauso falsch, weil eine Variable enthält ja den Wert, und du redest von einer Instanz.
Die ‚sinnvollste‘ Bezeichnung steht in der Spalte Typ ‚ModBus Address‘ => Weil eine Instanz genau einer Adresse entspricht.

Ich finde es toll, wenn die ersten Eindrücke von IPS von Einsteigern im Forum kommuniziert werden.
Leider habe ich dabei einen faden Beigeschmack.
Es erweckt leider den Anschein, ohne wenigstens die Grundlagen in der Doku zu lesen (Grundlagen — IP-Symcon :: Automatisierungssoftware), muss es sofort funktionieren und alles selbsterklärend sein.

Dann gleich noch falsche Forderungen mit ’ zwingend erforderlich’ zu stellen, macht den Beigeschmack nicht besser.

Michael

Ich schätze mich zwar als IPSler als absolutes Greenhorn ein, aber nicht im Bezug auf das ganze Thema Visu, Kommunikation und erst recht nicht im Bezug auf Modbus.
Und ich gebe zu, das ich deswegen auch überzeugt war, sowas eigentlich simples relativ schnell hinzubekommen.
Und ja, was spricht gegen Software, die auch bedienerfreundlich, sprich in Großteilen selbsterklärend ist?

sorry, war vielleicht etwas drastisch formuliert, aber diese in meinen Augen „falsche“ Bezeichnung hat mich eben mal 2 Tage Zeit gekostet.
Ich werde mich bessern in Bezug auf meine Formulierung.

Achso, und die Doku habe ich mir natürlich angeschaut, aber das Ergebnis kennst du ja :wink:
Hat nicht ganz soviel gebracht :slight_smile:
Ob das jetzt nur an der Doku, oder auch an meiner Wenigkeit liegt, sei mal dahin gestellt.

Danke dir trotzdem für deine ehrlichen Worte…

strgalt

Ich lese diese Tag 0 Geschichte mit und empfinde einfach nur Scham, „fremdschämen“ ist besser.

Es gibt wohl kaum einen besseren Support als hier bei den Michael’s. Und wenn Die nicht helfen ist es das Forum…

Sich anzumaßen alles schlecht zu reden nur weil es „angeblich“ schlecht erklärt ist, ist schon recht dreist.

Für mich klingt es einfach nach " ääääää ich check es nicht und ich habe ja den Durchblick, es muß also an allen anderem liegen".

Mußte ich mal los werden, strgexit

Selber Schuld … Wenn Du denkst, dass Du die Weisheit mit Löffeln gefressen hast und 2 Tage probierst, dann ist das doch Dein Problem? :confused:

Es gibt hier eine Liste von Integratoren. Gegen Einwurf kleiner Münzen hätte Dir bestimmt einer geholfen. Alternativ siehst Du ja, das man im Forum auch Hilfe bekommt - vorausgesetzt man benimmt sich vernünftig. Ich kann Helmut nur zustimmen…

Grüße

ich habe nicht alles schlecht geredet, ich habe genauso die positiven dinge hervorgehoben.
sorry, das war halt mein erster eindruck, ich wollte damit niemanden auf den schlips treten.
Und über meine etwas unglückliche Formulierung hatte ich mich ebenfalls bereits geäußert und dafür entschuldigt.

@derstandart
ich denke nicht, das ich hier irgendjemanden beleidigt habe, so wie du es tust…

wenn ich geahnt hätte, was ich damit anrichte, hätte ich meinen beitrag nicht verfasst…
mein ursprünglicher gedanke dabei war, neben selber hilfe zu bekommen, auch anderen mit meinem kleinen bericht etwas wiederzugeben und vielleicht auch dem ein oder anderen helfen zu können.
sorry nochmal, sollte nicht so rüberkommen, wie es bei einigen scheinbar der fall war…

strgalt

Ich habe nicht behauptet, dass du jemanden beleidigt hast und ich selbst habe auch niemanden beleidigt. Ich habe lediglich dargestellt, wie Dein Verhalten bei mir angekommen ist.

Bei Gelegenheit solltest Du die Shift Taste nutzen. Das würde die Lesbarkeit Deiner Beiträge erhöhen.