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

Results 1 to 5 of 5

Thread: WAGO PFC 200 Controller zu MODBUS TCP SLAVE verbinden

  1. #1
    Join Date
    27.02.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Community,

    ich hoffe das ihr mir helfen könnt!
    Ich habe ein Problem damit die Werte meines Modbus TCP Slaves einzulesen. Dieser ist ein a-eberle PQI-DA-Smart, der über Modbus TCP SPannung,Strom usw.. ausgeben kann. Ich habe versucht dies über den WAGO Datalogger darzustellen, jedoch schreibt der in die .csv Datei nur die Uhrzeit und die Werte 0.00. Er bekommt also keinen Input. Ich bekomme es nach langen versuchen leider immer noch nicht hin die Werte darzustellen bzw. auszulesen!

    Code:
    PROGRAM PLC_PRG
    VAR
    
        Datalogger: WagoAppDatalogger.FbDatalogger;
        xActivate: BOOL := TRUE;
        aValues: ARRAY [1..MAX_CHANNELS] OF REAL;
        xEvent: BOOL := TRUE;
        typConfigParameters: typConfigDatalogger;
        leistung: ARRAY [1..MAX_CHANNELS] OF WORD;
        ChannelConfig : typAIChannel;
        oDatalogger : FbDatalogger;
    //modbus slave    
    modbus_slave: WagoAppPlcModbus.FbMbSimpleServerTcp;
        //xOpen: BOOL;
        //wPort: WORD;
        //bUnitID: BYTE;
        //utKeepAlive: BOOL;
        xEnable: BOOL := TRUE;
        //myInputRegisters: POINTER TO WORD;
        //myHoldingRegisters : WORD;
        //awHoldingRegisters: WORD;
        //Modbus Slave
    xOpen : BOOL := TRUE;
    wPort :WORD := 502;
    bUnitID : BYTE:= 1;
    //utKeepAlive : BOOL := TRUE;
    myInputRegisters    :   ARRAY[100..200] OF WORD;    // Modbus word address 100 .. 200
        myHoldingRegisters  :   ARRAY[0..20] OF WORD;       // Modbus word address   0 .. 20
        
        MB_DI0:BYTE;
        MB_DI1:BYTE;
        awInputRegisters: ARRAY [100..200] OF WORD;
        awHoldingRegisters: ARRAY [0..20] OF WORD;
    END_VAR
    Code:
            //Parametrierung der Speicherung
            typConfigParameters.bDatalogger_type:=3;
            typConfigParameters.atypChannelConfig[1].xChannelExists := TRUE;
            typConfigParameters.atypChannelConfig[1].sChannelName := 'Leistung';
            
            typConfigParameters.xCyclicLogging := TRUE;
            typConfigParameters.bInterval := 3;
            typConfigParameters.uiIntervalFactor := 2;
            
            
            typConfigParameters.bDateFormat := 9;
            typConfigParameters.bTimeFormat:=1;
            typConfigParameters.sFilename := 'test.csv';
        
    
    
        modbus_slave(
            awInputRegisters := myInputRegisters,
            awHoldingRegisters := myHoldingRegisters,
            awInputRegisters    := myInputRegisters,
            awHoldingRegisters  := myHoldingRegisters);
    
    
    
    
    Datalogger(
        xActivate:= xActivate, 
        aValues:= aValues, 
        xEvent:= xEvent, 
        typConfigParameters:= typConfigParameters, 
        oStatus=> , 
        sStatus=> , 
        xReady=> );
        
        modbus_slave(
        xOpen:= xOpen, 
        wPort:= wPort, 
        utKeepAlive:= , 
        xIsOpen=> , 
        xError=> , 
        oStatus=> , 
        udiConnectedClients=> , 
        bUnitId:= bUnitID, 
        axDiscreteInputs:= , 
        axCoils:= , 
        awInputRegisters:= , 
        awHoldingRegisters:= , 
        oMbAccessInfo=> );
    Reply With Quote Reply With Quote WAGO PFC 200 Controller zu MODBUS TCP SLAVE verbinden  

  2. #2
    Join Date
    09.05.2016
    Posts
    100
    Danke
    2
    Erhielt 30 Danke für 27 Beiträge

    Default

    Hallo,

    wenn das Gerät a-eberle PQI-DA-Smart ein Modbus TCP Slave ist brauchst Du einen Modbus TCP Master.
    Zwei Slaves können nicht miteinander reden.
    Du kannst z.B. den fbMbMasterTCP verwenden.

    Es fehlt aber generell das Beschreiben des Arrays aValues.
    Die Daten müssen ja vom Modbus Baustein an den Datalogger übergeben werden.

    Beim Server fehlt die Zuweisung der Arrays axDiscreteInputs und axCoils, dafür sind die Input und Holding Register doppelt zugewiesen.

    Viele Bausteine bieten den Ausgang oStatus. Hier kann der Status des Bausteins ausgelesen werden. Wobei sServerInfo vom Datentyp String ist:
    modbus_slave.oStatus.ShowResult(sDescription => sServerInfo );


    Grüße

  3. #3
    eva.len is offline Neuer Benutzer
    Themenstarter
    Join Date
    27.02.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Tobsucht,

    auf den Master habe ich ganz vergessen, aber hatte diese nur in der Übersicht Verbunden und die Kommunikation auf Master (PFC 200) zum Slave PQ-DA-Smart vergeben.
    Die Beschreibung der arrays habe ich leider nicht hinbekommen und würde dich fragen ob du mir helfen könntest dabei und bezüglich den Arrays axDiscreteInputs und axCoils, diese habe ich jetzt auch zugewiesen.

    Grüße
    Last edited by eva.len; 13.03.2019 at 16:27.

  4. #4
    Join Date
    09.05.2016
    Posts
    100
    Danke
    2
    Erhielt 30 Danke für 27 Beiträge

    Default

    Hallo,

    um die Sache noch mal zu verdeutlichen:
    wenn das Gerät a-eberle PQI-DA-Smart ein Modbus TCP Slave ist brauchst Du einen Modbus TCP Master im PFC200.
    Der Funktionsbaustein
    FbMbSimpleServerTcp ist ein Slave.

    Der in der Kachelansicht hinzugefügte Master gehört zum Modbus Konfigurator und ist unabhängig von der Bibliothek WagoAppPlcModbus.

    Grüße

  5. #5
    eva.len is offline Neuer Benutzer
    Themenstarter
    Join Date
    27.02.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo lieber Tobsucht,

    ich habe herausgefunden, dass dieses Gerät den Modbus TCP nicht unterstützt. Ich werde das ganze jetzt mit einem Smart Meter von Algodue machen. Nur leider habe ich noch immer Probleme mit dem einlesen meines Arrays da er das nicht erkennt bzw. er mir vorsagt das ein plötzliches Auftreten eines arrays fehlerhaft ist. Jedoch weiß ich nicht wie ich die arrays in Strukturierten Text einlese wenn du da einen Beispielcode wüsstest, würde mich das schon sehr viel weiterbringen. Es handelt sich um das aValues Array.

    Grüße

Similar Threads

  1. 2x Wago 750-880 über Modbus TCP verbinden und Datalogger
    By Renegade37 in forum CODESYS und IEC61131
    Replies: 3
    Last Post: 12.03.2019, 00:24
  2. Replies: 17
    Last Post: 21.02.2019, 21:56
  3. Replies: 9
    Last Post: 06.11.2018, 14:04
  4. Replies: 18
    Last Post: 01.09.2015, 22:36
  5. WAGO PFC 200 UDP Kommunikation
    By NHEN in forum WAGO
    Replies: 0
    Last Post: 28.08.2015, 12:42

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •