Pointer richtig einsetzen

der_NooB

Level-2
Beiträge
256
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander, Guten Morgen,

Also, ich würde gerne Pointer verwenden, um die Schrittzahl der Schrittkette aus einem anderen Programm abzufragen und damit etwas zu beeinflussen. Anscheinend habe ich jedoch etwas falsch verstanden,
Der Timer schaltet, obwohl bei Sieb 2 nicht der richtige Wert steht.
. Anbei findet ihr, was ich gemacht habe.

danke



 

Anhänge

  • w.png
    w.png
    91,5 KB · Aufrufe: 53
eigentlich solltest du es mittlerweile wissen :
- vollständigen Code posten !!! (und keine Screenshots)
Aus dem Snippet ersehe ich rein gar nichts ...

Warum willst du mit Pointern arbeiten ? Der Sinn dessen in Verbindung mit deiner Fragestellung erschließt sich mir nicht ...
 
Und beachte, dass CoDeSys beim beobachten nicht den Zustand der Zeile anzeigt sondern den Zustand am Zyklusende.

Ich kann auch anhand deiner Beschreibung nicht erkennen, was jetzt dein Problem ist
 
Ich frage mich auch, was das Problem mit Pointer zu tun hat. Und was überhaupt das Problem ist ...
Und beachte, dass CoDeSys beim beobachten nicht den Zustand der Zeile anzeigt sondern den Zustand am Zyklusende.

Ich kann auch anhand deiner Beschreibung nicht erkennen, was jetzt dein Problem ist
Ich habe herausgefunden, dass meine Abfrage im Programm falsch war, aber der Pointer tut genau das, was ich von ihm erwartet habe. Ich war nur verzweifelt, weil ich noch nie mit einem Pointer gearbeitet hatte. Ich habe den Beitrag verfasst, weil ich ihn mit dem Wert 30 verglichen habe, und vorher, obwohl er den Wert 20 hatte, hat er dennoch True gemeldet. Nachdem ich Klammern gesetzt habe, hat es dann funktioniert.
eigentlich solltest du es mittlerweile wissen :
- vollständigen Code posten !!! (und keine Screenshots)
ah Sorry, hab vergessen
Code:
fbM3_Sieb1 ( PT:= DWORD_TO_TIME (dwM3_Sibe1_Nachlauf *1000), Q=> xM3_Sieb1);
fbM3_Sieb2 ( PT:= DWORD_TO_TIME (dwM3_Sibe2_Nachlauf *1000), Q=> xM3_Sieb2);
fbM3_Sieb3 ( PT:= DWORD_TO_TIME (dwM3_Sibe3_Nachlauf *1000), Q=> xM3_Sieb3);
fbM3_Sieb4 ( PT:= DWORD_TO_TIME (dwM3_Sibe4_Nachlauf *1000), Q=> xM3_Sieb4);
fbM3_Sieb5 ( PT:= DWORD_TO_TIME (dwM3_Sibe5_Nachlauf *1000), Q=> xM3_Sieb5);

pint_Sieb1 := Aufruf_Siebe_Fehlern.FB_fb_Sieb1.Automatik_iNachvortrag;
fbM3_Sieb1.IN :=  (pint_Sieb1=30)  AND xSammelmeldung;

pint_Sieb2 := Aufruf_Siebe_Fehlern.FB_fb_Sieb2.Automatik_iNachvortrag;
fbM3_Sieb2.IN :=  (pint_Sieb1=30)  AND xSammelmeldung;

pint_Sieb3 := Aufruf_Siebe_Fehlern.FB_fb_Sieb3.Automatik_iNachvortrag;
fbM3_Sieb3.IN :=  (pint_Sieb1=30)  AND xSammelmeldung;
Aus dem Snippet ersehe ich rein gar nichts ...

Warum willst du mit Pointern arbeiten ? Der Sinn dessen in Verbindung mit deiner Fragestellung erschließt sich mir nicht ...
Ich brauche den Wert der Schrittkette von jedem Baustein. Deswegen habe ich mir gedacht, dass ich anstatt einer GVL auch einen Pointer verwenden kann, weil es etwas professioneller aussieht, und ich spare mir dadurch auch bisschen umprogrammieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
schau dir die Hilfe zu dem Thema Pointern an.
Du solltest Pointer wirklich nur einsetzen wenn du den Sinn dahinter verstanden hast.
Fehler lassen sich meistens schwer lokalisieren und haben teilweise fatale Auswirkungen.


Gruß Rob
 
Zuletzt bearbeitet:
Zurück
Oben