Safe: Bitweiser Zugriff auf unsigned16

Enif

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

seit einiger Zeit bin ich schon stiller Leser hier im Forum und habe schon sehr hilfreiche Tipps gefunden. Hierfür erstmal Danke! :)
Zu meinem aktuellen Problem konnte ich über die Suche leider keine Antwort bekommen.
Ich möchte einen Profinet/Safe-Geber an einer S7-300-F testen.
Im F-Programmbaustein (FC2) greife ich über ein Merker-Bit bitweise auf ein Datenwort (unsigned16) der Safe-Ausgangsdaten zu.

| M1.0 A257.1
|--||---( )---|
|

Anscheinend ist dies nicht zulässig, ich bekomme folgende Fehlermeldung: "Peripheriezugriff A 257.1 stimmt nicht mit der Kanalstruktur der F-Peripherie überein".
Bedeutet das, dass im Safe-Programm auf Datenwörter nur wortweise zugegriffen werden kann?
Mich verwundert allerdings, dass genau der selbe Zugriff mit einem Profibus/Safe-Gerät ohne Probleme funktioniert hat.
Gibt es vielleicht Unterschiede bei der Interpretation der Datentypen von GSD- und GSDML-Dateien ?
Freue mich auf Antwort.

Viele Grüße,
Manuel
 
Die Fehlermeldung deutet eher darauf hin das der Ausgang 257.1 kein F-Ausgang ist, eventuell ist der deaktiviert.

Generell ist aber noch zu sagen das man für Sicherheitsfunktionen keine Merker nutzen sollte. Dafür sind die F-DBs da.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

danke für die schnelle Antwort.
Ja, das mit den Merkern ist nicht so optimal. Allerdings programmiere ich kein Sicherheitsprogramm das irgendwo zum Einsatz kommt, sondern nur für interne Zwecke um die Funktionalität des Gebers zu testen.

Wenn der Ausgang deaktiviert wäre, dann sollte es aber doch generell nicht funktionieren. Beim Zugriff auf das komplette Datenwort (MW1 -- MOVE-- AW256) funktioniert es aber ohne Probleme.

Gruß, Manuel
 
Die Fehlermeldung deutet eher darauf hin das der Ausgang 257.1 kein F-Ausgang ist, eventuell ist der deaktiviert.
Genauer betrachtet sagt die Fehlermeldung, dass an dieser Adresse ein F-Ausgang vorhanden ist, dieser aber nicht als Bit angesprochen werden kann. Deaktivierung des Kanals ist eine Möglichkeit, es ist aber - wie schon vermutet - auf jeden Fall zu beachten um welche Baugruppe es sich handelt und wie diese aufgebaut ist (GSD / GSDML).

Für den Fall, dass es sich hier um eine Ausgangs-Baugruppe mit unsigned16 handelt, kannst Du den Baustein FC176 "F_BO_W" verwenden, um Zugriff auf einzelne Bits zu erhalten (Input: TEMP-Variablen / Merker / F-DB-Elemente / ..., Output: z.B. AW256).
 
Zuletzt bearbeitet:
Hallo,

in der GSDML-Datei ist der Datenbereich auf den ich bitweise zugreifen möchte als unsigned16 definiert.
Ist ein bitweiser Zugriff dann generell nicht möglich?

Danke für den Tipp mit dem Baustein FC176, damit funktioniert es bestens.

Gruß,
Manuel
 
Zurück
Oben