Werte auslesen aus Modbus Spezial Register gelingt nicht

Peter_6677

Level-2
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich suche hier nach Hilfe.
Ich möchte ein Beispiel wie man zB. das Register 64013 wPlcState auslesen kann und in einer Variable zur verfügung steht.
Da ich für meine Haussteuerung nur KOP programmiere ist mir das etwas zu kompliziert.

1754231251029.png

Ich bitte um eine Darstellung in einem ST Programmtask.
eCockpit PFC100_2ETH_ECO

Vielen Dank im Voraus
Peter
 
Zuletzt bearbeitet:
Hallo, ich suche hier nach Hilfe.
Ich möchte ein Beispiel wie man zB. das Register 64013 wPlcState auslesen kann und in einer Variable zur verfügung steht.
Da ich für meine Haussteuerung nur KOP programmiere ist mir das etwas zu kompliziert.

Anhang anzeigen 89689

Ich bitte um eine Darstellung in einem ST Programmtask.
eCockpit PFC100_2ETH_ECO

Vielen Dank im Voraus
Peter
Kann es sein dass du das hier mit dem ChatGPT-Prompt verwechselt hast?

Wenn man scheitert und Hilfe sucht ist das die eine Sache. Es nicht mal zu versuchen ist dreist. So dringend ist die Funktion offenbar nicht.
 
Zuletzt bearbeitet:
Danke für die Tipps!

Im Modbus Konfigurator sollte man den Zugriff einstellen können. Nur wie?
1754331959154.png

Habe mir eine andere Möglichkeit angesehen. Komme damit aber auch nicht ganz klar.
1754332275629.png

Ich habe im KOP eine ganze Haussteuerung gemacht. Pool + Solarheizung, 2x Brunnensteuerungen, Bewässerung, Rollladen inkl. Visu usw..
Die Programmsprache ST kann ich nicht. Darum habe ich hier um Hilfe gefragt. LG Peter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

von wo bzw. welchem Gerät willst Du diese Adresse auslesen. Könntest Du auch mal die Netzansicht zeigen. Ist da ein 750-352 oder 750-362 und ein 750-880 vorhanden?

Wenn Du mit dem PFC100 das eigene Register 64013 lesen willst, kannst Du das zwar machen bringt aber nicht wirklich etwas, denn wenn der Controller nicht im Run ist wird das Register nicht gelesen

Bei dem zweiten Bild ist der Fehler, das die Zeilen von FUNCTION BLOCK bis END_VAR in der oberen Hälfte des Fensters sein muß. Da wo bereits PLCState ist. Du scheinst da die Tabellenansicht zu haben.
 
Hallo,
Ja, die Abfrage von dem Wert ist nicht so wichtig. Mir geht es da um es zu verstehen.
Mit der Deklaration gibts noch ein Problem.
1754420880324.png

GVL sollte passen.
1754420967800.png

Wie wird der Baustein beschaltet?
EN - zum Start Abfrage
PLCState - ??
ReadDone - Bool = 1 wenn abfrage fertig
ModbusRead - ??
1754421388941.png
 

Anhänge

  • 1754421354816.png
    1754421354816.png
    6,7 KB · Aufrufe: 4
Hi,

dein Var_Output ist nich falsch. Hier hast du den POU als Ausgang deklariert. Der ist aber bereits unter gleichen Namen in den GVLs angelegt. Deswegen der Fehler.

Ist der EN Eingang auf FALSE wird der Baustein nicht abgearbeitet. Deswegen muss der auf TRUE

PLCState ist da m.E. nicht Richtig als Eingang sonder sollte als VAR_OUTPUT deklariert werden.

Wenn ich es noch richtig im Kopf habe musst du den Execute Befehl dann auch mehr als einmal Aufrufen um den Status auch aktuell abzufragen. Hier müsstest du dir noch eine Mimik bauen, welche den Aufruf Zyklisch startet.

[EDIT] Du musst den Baustein entweder mit Namensraum aufrufen oder die Zeile {attribute 'qualified_only' } auskommentieren/löschen.[/EDIT]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

keine Ahnung wo Du den Baustein MB_ReadInputRegs her hast, aber schau Dir sonst mal die WagoAppPlcModbus Bibliothek an. Da bietet Wago diverse Funktionen zu Modbus an, wenn der Konfigurator nicht genutzt wird.

Unter 20 Simple Modbus Master findest Du den Baustein FbMbMasterTcp. Der sollte für Deine Zwecke erst einmal ausreichen. Zu dem Baustein findest auch ein dokumentiertest Beispiel in ST
1754499801012.png

Schau Dir das mal an.

Oder schau Dir in der Hilfe noch einmal den Modbuskonfigurator an. Besonders die Variante 'Controller (Master) mit Fremdgerät (Slave) verbinden', das ist die allgemeine Variante.

Gruß
 
Zurück
Oben