+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Apr 2019
    Beiträge
    11

    Standard Wago (INT schreiben per Modbus)

    Hallo zusammen

    kann mir jemand von euch einen Denkanstoss geben.

    Ich schreibe/lese mit IPS erfolgreich Bool Variablen aus meiner Globalen Merkerliste in einer Wago 880.

    Da IPS keine reinen Taster hat habe ich es mit dem Toggle-Button Script versuchen wollen. Leider klappt das reine Scheiben auf die INT Variabeln schon nicht.

    Lesen kann ich die wunderbar. Anbei zwei Screens wie die Instanz eingestellt ist und was mir die WebFront für einen Fehler veruhrsacht.

    Danke für eure Tipps
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Fehler_im_IPS.JPG 
Hits:	36 
Größe:	54.0 KB 
ID:	48807   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Instanz_IPS.JPG 
Hits:	34 
Größe:	80.6 KB 
ID:	48808  

  2. #2
    Registriert seit
    Apr 2019
    Beiträge
    11

    So geschafft, manchmal ist es gut das alte Zeugs zu löschen und nochmal anzufangen.

    Hab jedoch noch eine weitere Frage.

    Kann man sich die Instanz ID der ModbusVariable in das Variablen Script holen ohne diese händisch einzutragen?

    Mit GetInstance oder ParentID geht das nicht, mit der händisch eingetragen ID funktionierts.

    Code:
    <?
    
     //Start writing your scripts between the brackets
    //$InstanzID = IPS_GetInstance;
    if($_IPS['SENDER'] == "WebFront")
    
    {
        switch($_IPS['VALUE'])
        {
            case 1:
            IPS_SetVariableProfileAssociation("TasterInt", 0, "Ein", "", 0x00FF00);
            IPS_SetVariableProfileAssociation("TasterInt", 1, "", "", -1);
            break;
            case 0:
            IPS_SetVariableProfileAssociation("TasterInt", 1, "Aus", "", 0xE0EEE0);
            IPS_SetVariableProfileAssociation("TasterInt", 0, "", "", -1);
            break;
        }
        if ($_IPS['VALUE'] == 1)
        {
            //An Befehl
            //ModBus_WriteRegisterInteger (59928, 1);
            ModBus_WriteRegisterInteger ($InstanzID, 1);
        
        }
        else 
        {
            //Aus Befehl
            //ModBus_WriteRegisterInteger (59928, 0);
            ModBus_WriteRegisterInteger ($InstanzID, 0);
     
        }
        
    
    } 
    ?>
    Danke für eure Ideen.

  3. #3
    Registriert seit
    Apr 2019
    Beiträge
    11

    So nun funktionierts,

    Taster Impulse:
    Code:
    $parentID = IPS_GetParent($_IPS['VARIABLE']);
    if($_IPS['SENDER'] == "WebFront")
    
    {
        switch($_IPS['VALUE'])
        {
            case 1:
            IPS_SetVariableProfileAssociation("TasterIntPulse", 0, "Aus", "", 0x00FF00); 
            IPS_SetVariableProfileAssociation("TasterIntPulse", 1, "", "", -1);
    
            ModBus_WriteRegisterInteger ($parentID, 1); //schreibt Modbus INT = 1
    
            IPS_Sleep(1000);  // pausiert 1000ms
    
            ModBus_WriteRegisterInteger ($parentID, 0); //schreibt Modbus INT = 0
            
            case 0:
            IPS_SetVariableProfileAssociation("TasterIntPulse", 1, "Aus", "", 0x00FF00);
            IPS_SetVariableProfileAssociation("TasterIntPulse", 0, "", "", -1);
            
        }
    
    
    }
    Taster:

    Code:
    $parentID = IPS_GetParent($_IPS['VARIABLE']);
    if($_IPS['SENDER'] == "WebFront")
    
    {
        switch($_IPS['VALUE'])
        {
            case 1:
            IPS_SetVariableProfileAssociation("TasterInt", 0, "Ein", "", 0x00FF00); 
            IPS_SetVariableProfileAssociation("TasterInt", 1, "", "", -1);
    
            ModBus_WriteRegisterInteger ($parentID, 1);
    
            break;
            case 0:
            IPS_SetVariableProfileAssociation("TasterInt", 1, "Aus", "", 0x00FF00); 
            IPS_SetVariableProfileAssociation("TasterInt", 0, "", "", -1);
    
            ModBus_WriteRegisterInteger ($parentID, 0);
    
            break;
        }
    
    
    }
    evtl kann ich damit ja jemandem weiterhelfen.

    Notiz: Wago hat bei INT 16Bit d.h. mann muss nach dem benutzten INT einen auslassen. Sprich den 1,3,5,7,..... benutzen.

    Gruss

  4. #4
    Registriert seit
    Sep 2008
    Ort
    Wetzlar(Hessen)/Wittenberg(Sachsen-Anhalt)
    Beiträge
    274

    16Bit für Lampe an/aus ?
    Warum nicht mit einem Bit?
    Gruß Jens

    https://www.symcon.de/forum/threads/...-wahre-Lösung!

  5. #5
    Registriert seit
    Mar 2013
    Ort
    Issum
    Beiträge
    652

    Wenn du alles fertig in einem Funktionsbaustein für die SPS haben möchtest, kurze Info.
    In Symcon muss du dann nur noch die Modbus Instanz für den Taster anlegen. Alles andere macht Symcon selber ohne das du dazu ein Script schreiben musst
    WAGO 750-880 / IPS unl. auf Tinkerboard S / IPSView / Amazon Echo und vieles mehr

  6. #6
    Registriert seit
    Apr 2019
    Beiträge
    11

    Zitat Zitat von Jensen Beitrag anzeigen
    16Bit für Lampe an/aus ?
    Warum nicht mit einem Bit?
    Gruß Jens

    https://www.symcon.de/forum/threads/...-wahre-Lösung!
    Hi Jens

    Ich wollte einen reinen Taster und nicht einen Schalter mit AN/AUS, leider geht das mit den Infos die ich bislang gefunden habe nur mit einem Integer und nicht mit einer Bool Variable in IPS.
    Ausser es gibt eine Möglichkeit den IPS_INT in BOOL zu wandeln bevor er über Modbus gesendet wird.

    Wär natürlich Klasse und mir persönlich auch lieber als, auf der SPS für einige Taster, alle Integer zu verbrauchen.


    Zitat Zitat von gogo20012002 Beitrag anzeigen
    Wenn du alles fertig in einem Funktionsbaustein für die SPS haben möchtest, kurze Info.
    In Symcon muss du dann nur noch die Modbus Instanz für den Taster anlegen. Alles andere macht Symcon selber ohne das du dazu ein Script schreiben musst
    Gerne, sowas kann man doch immer gebrauchen. Hast du auch Tasterlösungen oder redest du nur von den Schaltern AN/AUS?


    Gruss Remo

  7. #7
    Registriert seit
    Mar 2013
    Ort
    Issum
    Beiträge
    652

    Man nimmt Immer Taster dafür. In dem verlinkten Artikel wird auch nur von Taster gesprochen.
    Schick mir doch mal deine Mailadresse per PN dann sende ich dir den Funktionsbaustein
    WAGO 750-880 / IPS unl. auf Tinkerboard S / IPSView / Amazon Echo und vieles mehr

Ähnliche Themen

  1. Fehler bei Modbus Integer 32bit schreiben
    Von dast im Forum SPS Automatisierungstechnik
    Antworten: 6
    Letzter Beitrag: 05.11.18, 20:34
  2. String in Wago Merkeradresse schreiben
    Von wibo050447 im Forum SPS Automatisierungstechnik
    Antworten: 0
    Letzter Beitrag: 18.02.18, 19:22
  3. Modbus schreiben funktioniert nicht
    Von predi ger many im Forum Allgemeine Diskussion
    Antworten: 9
    Letzter Beitrag: 04.09.17, 06:53
  4. Modbus Hex-Variablen lesen und schreiben
    Von juergen852 im Forum SPS Automatisierungstechnik
    Antworten: 0
    Letzter Beitrag: 18.03.14, 15:40
  5. S7 Variable Real/Int von IPS in S7 schreiben
    Von Stefan W im Forum SPS Automatisierungstechnik
    Antworten: 1
    Letzter Beitrag: 15.03.14, 22:35