Sonstiges DWORD von Peripherie einlesen

Cartman_123

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte ein Leistungsmessgerät per Profibus in eine S7-400 einbinden (PCS 7). Nachdem ich das Leistungsmessgerät in die Hardwarekonfig eingebunden habe, stehen mir die Werte (Wirkleistung Gesamt und Zähler Bezug Wirkleistung) auf jeweils einem DWORD als Adresse zur Verfügung:

Wirkleistung gesamt [kW] E-Adresse: 264...267
Zähler Bezug L1...L3 [kWh] E-Adresse: 268...271

Laut Hersteller werden diese Werte als Fließkommazahl zur Verfügung gestellt. Meine Frage ist nun, wie ich ein DWORD als Eingangswert einlesen kann?

Könnt ihr mir da helfen?

Vielen Dank

Cartman_123
 
Laut Hersteller werden diese Werte als Fließkommazahl zur Verfügung gestellt. Meine Frage ist nun, wie ich ein DWORD als Eingangswert einlesen kann?
In der Symboltabelle solltest Du die DWORDs als REAL deklarieren, dann kannst Du sie überall verschalten/verwenden, wo man einen REAL verschalten/verwenden kann.
Umwandeln mußt Du nichts, da der 32-Bit-Wert schon im REAL-Format vorliegt.

Wenn direkt auf PED... zugegriffen wird, dann empfiehlt es sich, am Anfang des Zyklus die PED auf DB-Variablen umzukopieren, damit im Zyklus nur einmal auf die PED zugegriffen wird (eigenes Prozessabbild des PED erstellen).

Wie ist die Konsistenz der E-Bereiche des Profibus-Slaves eingestellt? Falls da mehr als 4 Byte zusammenhängend als gesamter Bereich eingestellt ist und die E-Adressen außerhalb des Prozessabbildes liegen, dann müssten die Werte mit SFC14 DPRD_DAT konsistent eingelesen und (am besten auf DB) umkopiert werden. Eventuell gibt es in PCS7 da eine besondere Herangehensweise?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Umwandeln mußt Du nichts, da der 32-Bit-Wert schon im REAL-Format vorliegt.

Ich vergess immerwieder das man ja in Classic auch schon einfache Datentypen in der Symboltabelle einstellen konnte und in TIA nur UDTs in der Symboltabelle dazugekommen sind ^^

Frage am Rande. Macht das bei der 400er überhaupt sinn das Prozessabbild kleiner zu machen und dann per PED auf die Daten zuzugreifen und erst auf DBs umzukopieren?
Denn bei der 400er habe ich schon seit Ewigkeiten das Prozessabbild immer gleich auf 2000 Bytes aufgezogen.
Denn
 
Es gibt eine Menge S7-400, die wurden von Programmierern konfiguriert und programmiert, die nicht wirklich Ahnung von S7-400 hatten... Man sollte nicht davon ausgehen, daß in fremden Projekten alle Einstellungen sinnvoll sind.
Und da der TE nicht angegeben hat, welche CPU genau er hat und wie das PAE eingestellt ist, kann man vorsorglich hinweisen.

PS: Ich glaube, es gibt Baugruppen, die dürfen nicht im Prozessabbild liegen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Umwandeln mußt Du nichts, da der 32-Bit-Wert schon im REAL-Format vorliegt.
Ich vergess immerwieder das man ja in Classic auch schon einfache Datentypen in der Symboltabelle einstellen konnte und in TIA nur UDTs in der Symboltabelle dazugekommen sind ^^
Ihr beide enttäuscht mich jetzt aber ein wenig.

@Harald: "mußt nicht" klingt irreführenderweise wie "kann man machen, muss man aber nicht". Nein, man darf und kann in diesem Fall nicht in REAL umwandeln - wie Du selbst anschliessend sagst.

@vollmi: was hat das mit einfachen DatenTypen in Classic einerseits und mit in TIA dazugekommenen UDTs andererseits zu tun? Ich buche das mal unter "faule Ausrede" ab. ;)

Gruss, Heinileini
 
@vollmi: was hat das mit einfachen DatenTypen in Classic einerseits und mit in TIA dazugekommenen UDTs andererseits zu tun? Ich buche das mal unter "faule Ausrede" ab. ;)

man entwickelt sich halt weiter. Ist noch nicht so lange her, da hab ich in Klassik absolute Doppelworte von Peripherie geladen und in symbolische Datentypen eines DBs transferiert ggf noch gewandelt oder skaliert. Das ist eher ne unbedachte Formulierung das man von word nach real wandelt. Ich hätt sagen müssen vom Peripherieword laden und in realdatentyp transferieren.

ich werde mich bessern. Faul werd ich aber bleiben 😝
 
Zurück
Oben