Modbus Instanz ständige Fehlermeldungen und automatische Variablen Generierung

Hallo zusammen,

nach reger Einarbeitung in IPS sind zumindest schon kleine Erfolgserlebnisse da;).
Ich habe jedoch ein Problem.
Wenn ich jetzt z.B. eine Schaltfläche (Einfach) möchte, dann füge ich eine Modbusinstanz ein (Format BIT), vergebe meine Adressen usw.
Jetzt erhalte ich darunter eine Variable mit dem Namen WERT, diese kann ich aber nicht gebrauchen weil hier als Typ BOOL vorgegeben wird. Jetzt lösche ich diese (Warnung kommt) und erstelle eine neue Variable.

Hier kann ich jetzt Integer auswählen und dieses Aktionsskript einfügen

if(($_IPS['SENDER'] == "WebFront") or ($_IPS['SENDER'] == "Variable")) 
{
    switch($_IPS['VALUE'])
    {
        case 1:
        IPS_SetVariableProfileAssociation("Taster_1", 0, "Ein", "", 0x00FF00);
        IPS_SetVariableProfileAssociation("Taster_1", 1, "", "", 1);
        ModBus_WriteCoil(29050 /*[Tests\ModBus Device]*/, true);
        break;
        case 0:
        IPS_SetVariableProfileAssociation("Taster_1", 1, "Aus", "", 0xE0EEE0);
        IPS_SetVariableProfileAssociation("Taster_1", 0, "", "", 1);
        ModBus_WriteCoil(29050 /*[Tests\ModBus Device]*/, false);
        break;

Visu öffnen und es funktioniert, jedoch wenn IPS als Dienst neu gestartet ist, wird unter der Modbus Instanz die Standardvariable automatisch eingefügt, diese erscheint dann auch in der Visu (WERT) steht dann dort.

Was mache ich da falsch, könnte mir da bitte jemand auf die Sprünge helfen?

Danke

Ich hänge hier nochmal ein paar Shots an, um mein Problem vielleicht besser erkären zu können.

Meine Absicht nochmals erklärt:

Also ich lege eine Modbusinstanz an, mit Lese und Schreibadresse als Bit (Boolean), IPS generiert dann eine Standardvariable im Objektbaum unter die Modbusinstanz Name = (WERT). Bei dieser Variable kann ich aber nur Profile als Boolean auswählen.
Ich habe mir aber eine Benutzerdefinierte Schaltfläche als Integer gebastelt mit Aktionskript, nach meinen Wünschen halt. Dazu erstelle ich eine neue Variable (Integer) und wähle meine Benutzerdefinierte Schaltfläche aus. Das funktioniert auch soweit.

Mein Problem ist jetzt, dass ich immer die Standardvariable im Objektbaum habe Name = (WERT), wenn ich diese lösche kommt in der Visu beim betätigen der Benutzdefinierten Schaltfläche eine Fehlermeldung. Starte ich IPS als Dienst neu, wird die gelöschte Variable wieder automatsich generiert und die Fehlermeldung kommt nicht mehr. Aber ich habe immer diese 2te. Variable im Webfront, die will ich nicht :slight_smile:

Wie macht ihr das? Ich bin doch nicht der einzige der unter Modbus eine Benutzerdefinierte Schaltfläche verwendet?
Ich würde mich um Unterstützung sehr freuen, Danke. Angehängt sind die relevanten Shots.

Viele Grüße

Hast du die Warnmeldung gelesen? Bestimmt nicht :smiley: Dort steht nämlich, dass die Variable immer neu erstellt wird. Somit einfach Objekt bearbeiten und auf nicht sichtbar stellen.

paresy

Wenn in Deinem Webfront alleine Variablen auftauchen, dann hast Du grundlegende Fehler bei der Erstellung gemacht bzw Dich nicht an die Empfehlung des Herstellers gehalten, mit Kategorien, Links und Dummy Modulen zu arbeiten.

Hallo,

besten Dank für die Hinweise.

Hast du die Warnmeldung gelesen? Bestimmt nicht Dort steht nämlich, dass die Variable immer neu erstellt wird. Somit einfach Objekt bearbeiten und auf nicht sichtbar stellen.

Selbstverständlich habe ich diese Warnmeldung gelesen, dachte mir aber das es einen anderen Weg geben muss, aber anscheinend ist es der richtige. Also die Original Modbusinstanz nicht löschen und verstecken. Das verstecken habe ich auch gestern entdeckt.

Wenn in Deinem Webfront alleine Variablen auftauchen, dann hast Du grundlegende Fehler bei der Erstellung gemacht bzw Dich nicht an die Empfehlung des Herstellers gehalten, mit Kategorien, Links und Dummy Modulen zu arbeiten.

Mit Links habe ich auch schon gearbeitet, Dummys sind mir neu. Hab den Sinn verstanden, danke für den Hinweis, lansam nimmt das Handling form an. Nur PHP und die Befehlsreferenz sind harte Brocken für mich.

Was mir aber ganz und gar nicht in den Kopf geht: Mehrere Schaltflächen in einer Reihe. OK Integer Variable Aktionsskript usw, habe ich alles schon zum Schalten gebracht, nur leider wird meine Variable nicht gelesen, also die Rückmeldung kommt nicht an, der Button soll erst grün werden wenn die entsprechende Modbusdaresse true ist.

@paresy

Warum gibt es nicht die Möglichkeit mehrere Schaltflächen nebeneinander zu platzieren, was hat das für einen Grund?
Das man auf die Modbsmerker nicht tasten sollte, lasse ich mir ja noch eingehen. Dafür habe ich mir nach Herstellerempfehlung (IPS) einen FB für die SPS gebaut, der das berühmte XOR Glied enthält, somit kann eine Adresse lesen und Schreiben.
Wenn ich schon einen Integer für mehr als eine Schaltfläche anlegen muss dann sollte ich auch über Integer lesen und schreiben, das ist sehr Fehlerbehaftet (zugegeben, ich wüsste nicht mal wie ich das anstellen sollte)
Bitweise wäre zwar nicht elegant aber dafür leichter zu verstehen. Normalerweise schiebt man die Daten Wordweise hin und her.

Ich hoffe du kannst meine Begründungen nachvollziehen, ich bin doch besteimmt nicht der einzige.
IP Symcon ist genial, ich möchte auch die Hürden nehmen, aber ich denke gewisse Hürden lassen so manchen Einsteiger wieder abspringen.

Viele Grüße