# Poll Multi Modbus RTU Slave e!Cockpit 750-8202



## Maziar (30 November 2021)

Hallo,
Entschuldigung, Ich kann nicht spreche deutsch sehr gut.

I am going to poll multiple Modbus slaves from my PFC200 750-8202 Controller using my function block (*MbSlave*). unfortunately when the program runs, The Controller polls the first slave and leaves the others. could you please take a look at my codes?


> FUNCTION_BLOCK MbSlave
> VAR_INPUT
> //--Define Com Port and Slave ID as Input Variables--//
> ComPort : WagoTypesCom.I_WagoSysComBase ;
> ...





> //--- delay between two requests ----------------------
> FB_F_Trig (clk:=xTxTrigger);
> IF FB_F_Trig.Q THEN
> xTxTrigger :=TRUE;
> ...





Vielen Dank für eure Unterstützung!


----------



## Tobsucht (30 November 2021)

Hallo,

eine serielle Schnittstelle kann nur von einem Funktionsbaustein verwendet werden.
Daher sollten die restlichen Instanzen des FbMbMasterSerial auch einen Fehler ausgeben.

Es müssen alle Slaves von einem Funktionsbaustein abgefragt werden.

Grüße


----------



## Maziar (1 Dezember 2021)

Danke,
Haben Sie einmal FbMbMasterMultiQuerySerial im e!Cockpit testen?
Ich kann kein passendes Beispiel dafür finden.


----------



## Tobsucht (1 Dezember 2021)

Hallo,

FbMbMasterMultiQuerySerial ist im PDF aus der Bibliothek WagoAppPlcModbus gut erklärt.
Aus den einzelnen Codeschnipseln kann man sich das Beispiel zusammenkopieren.

Ich persönlich sehe keinen direkten Vorteil im FbMbMasterMultiQuerySerial.
Würde daher den FbMbMasterSerial weiter verwenden.

Ich habe einen Funktionsbaustein der den FbMbMasterSerial kapselt und die Query, Response und einen Status nach außen reicht.
Für jeden Slave kann dann ein eigener Funktionsbaustein angelegt werden, der über die Query, Response und den Status auf den Master zugreifen kann.
Über den Status kann der Zugriff gesteuert werden, so dass nicht mehrere Slaves gleichzeitig auf den Master zugreifen.
Der Status hat die Werte Init, Free, Occupied, Done.

Meiner Meinung nach erhalte ich die gleiche Funktionialität wie beim FbMbMasterMultiQuerySerial ohne die objektorientierte Programmierung.

Grüße


----------



## Inelplan-SPS (2 Dezember 2021)

Hallo Tobsucht

Hätten sie evtl. ein Beispiel wie man diesen Funktionsbaustein konfiguriert?

Ich versuche gerade eine alte Schneider SPS Quantum (unterstützt Modbus TCP/IP) via Modubs diverse Register auszulesen.
Mit folgender Video Anleitung von Wago habe ich es bereits probiert aber ohne Erfolg: 




Der Wago Support hat mit gesagt das wir dies auch mit Funktionsblöcken aus der Libary WagoAppPlcModbus machen könnten.
Ich habe aber dies Libary noch nie genutzt.

Wir verwendne folgenden WAGO Controller:
Controller PFC100; 2 x ETHERNET; ECO​Art.-Nr. 750-8100

Gruss Inel


----------



## holgermaik (2 Dezember 2021)

Schneider beginnt bei Adresse 1. 
Wenn die Quantum als Server arbeitet müssen die Variablen auf Adressen gelegt werden. 
Erfolgt die Kommunikation über eine NOE muss das Ethernetprotokoll auf dieser richtig eingestellt sein.
Sonst ist in der Quantum nichts zu programmieren.
Läuft hingegen die Wago als Server muss in der Quantum die Kommunikation programmiert werden.

Am besten du benutzt den Configurator für die Einstellungen und nicht die Lib.


----------



## Inelplan-SPS (2 Dezember 2021)

Hallo Holgermaik


holgermaik schrieb:


> Schneider beginnt bei Adresse 1.
> Wenn die Quantum als Server arbeitet müssen die Variablen auf Adressen gelegt werden.
> Erfolgt die Kommunikation über eine NOE muss das Ethernetprotokoll auf dieser richtig eingestellt sein.
> Sonst ist in der Quantum nichts zu programmieren.
> ...


Danke, werde dies mal berücksichtigen und mich dan nochmals melden :=)


----------



## Maziar (29 Dezember 2021)

Tobsucht schrieb:


> Hallo,
> 
> FbMbMasterMultiQuerySerial ist im PDF aus der Bibliothek WagoAppPlcModbus gut erklärt.
> Aus den einzelnen Codeschnipseln kann man sich das Beispiel zusammenkopieren.
> ...


Hallo Tobsucht,
Ich erstelle einen Funktionsblock für mehrere Abfragen, aber manchmal gibt er nicht die richtigen Daten zurück. 
Könnten Sie mich bitte mit einem Beispiel-Multi-Query-Funktionsblock anleiten?
Grüße


----------

