Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 11 von 11

Thema: e!Cockpit Modbus-TCP

  1. #11
    Registriert seit
    20.01.2012
    Beiträge
    171
    Danke
    0
    Erhielt 60 Danke für 57 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    Du könntest zwar mal folgendes versuchen:
    Code:
    (* JOB 0 *)
    xTrigger := true;
    FB_ModbusMasterTCP    ( xConnect    := TRUE,
                            sHost        := '192.168.1.6',    // IP of the remote server
                            wPort        := 502,                // port at the remote server
    
    
                            utKeepAlive    := ( xEnable      := TRUE, // use keep alive
                                                tMaxIdleTime := T#5S, //  Maximum time of inactivity
                                                tInterval    := T#2S, //  Interval between two successive KA-Packets
                                                udiProbes    := 5     //  Number of KA retry before giving up
                                             ),
                                        
                            eFrameType  := eMbFrameType.ETHERNET,
                            tTimeOut    := T#30MS,
                            utQuery:=Jobliste[0], 
                            xTrigger:=xTrigger, 
                            utResponse:=Responseliste[0]);
                         );
    WHILE xTrigger DO
    FB_ModbusMasterTCP();
    END_WHILE;
    
    (* JOB 1 *)
    xTrigger := true;
    FB_ModbusMasterTCP    ( xConnect    := TRUE,
                            sHost        := '192.168.1.6',    // IP of the remote server
                            wPort        := 502,                // port at the remote server
    
    
                            utKeepAlive    := ( xEnable      := TRUE, // use keep alive
                                                tMaxIdleTime := T#5S, //  Maximum time of inactivity
                                                tInterval    := T#2S, //  Interval between two successive KA-Packets
                                                udiProbes    := 5     //  Number of KA retry before giving up
                                             ),
                                        
                            eFrameType  := eMbFrameType.ETHERNET,
                            tTimeOut    := T#30MS,
                            utQuery:=Jobliste[1], 
                            xTrigger:=xTrigger, 
                            utResponse:=Responseliste[1);
                         );
    WHILE xTrigger DO
    FB_ModbusMasterTCP();
    END_WHILE;
    
    (* JOB 2 *)
    xTrigger := true;
    FB_ModbusMasterTCP    ( xConnect    := TRUE,
                            sHost        := '192.168.1.6',    // IP of the remote server
                            wPort        := 502,                // port at the remote server
    
    
                            utKeepAlive    := ( xEnable      := TRUE, // use keep alive
                                                tMaxIdleTime := T#5S, //  Maximum time of inactivity
                                                tInterval    := T#2S, //  Interval between two successive KA-Packets
                                                udiProbes    := 5     //  Number of KA retry before giving up
                                             ),
                                        
                            eFrameType  := eMbFrameType.ETHERNET,
                            tTimeOut    := T#30MS,
                            utQuery:=Jobliste[2], 
                            xTrigger:=xTrigger, 
                            utResponse:=Responseliste[2]);
                         );
    WHILE xTrigger DO
    FB_ModbusMasterTCP();
    END_WHILE;
    
    (* JOB 3 *)
    xTrigger := true;
    FB_ModbusMasterTCP    ( xConnect    := TRUE,
                            sHost        := '192.168.1.6',    // IP of the remote server
                            wPort        := 502,                // port at the remote server
    
    
                            utKeepAlive    := ( xEnable      := TRUE, // use keep alive
                                                tMaxIdleTime := T#5S, //  Maximum time of inactivity
                                                tInterval    := T#2S, //  Interval between two successive KA-Packets
                                                udiProbes    := 5     //  Number of KA retry before giving up
                                             ),
                                        
                            eFrameType  := eMbFrameType.ETHERNET,
                            tTimeOut    := T#30MS,
                            utQuery:=Jobliste[3], 
                            xTrigger:=xTrigger, 
                            utResponse:=Responseliste[3]);
                         );
    WHILE xTrigger DO
    FB_ModbusMasterTCP();
    END_WHILE;
    Da müßtest Du aber in eine Zykluszeitüberschreitung laufen.

    Es hat schon seinen Grund, daß einige Dinge zyklisch aufgerufen werden müssen bzw. über mehrere Zyklen verteilt werden.

    Du wirst Dir Bedingungen überlegen müssen wann Du welche Modbuskommunikation verwenden willst und diese dann entsprechend bedingt, z.B. mit If Abfrage, aufrufen müssen.

    Bei dem Beispiel mit der Jobliste mußt Du dann die Zeile mit dem MOD rausnehmen, so das diese nur einmal abgearbeitet wird. Dafür dann eine Abfrage machen wenn alle Jobs abgearbeitet sind die Bedingung, die zur Abarbeitung der Jobliste geführt hat, zurücksetzen.

    Gruß

  2. Folgender Benutzer sagt Danke zu Thruser für den nützlichen Beitrag:

    Pari (15.09.2018)

Ähnliche Themen

  1. Antworten: 14
    Letzter Beitrag: 11.07.2018, 21:19
  2. Antworten: 16
    Letzter Beitrag: 17.05.2018, 11:22
  3. Antworten: 2
    Letzter Beitrag: 19.01.2018, 10:37
  4. Antworten: 1
    Letzter Beitrag: 03.11.2016, 16:28
  5. Antworten: 3
    Letzter Beitrag: 18.09.2015, 07:28

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •