Profibuszugriff in FB

thiborg

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

für eine Regleranwendung möchte ich die zugehörigen Daten in einem iDB speichern.
Um an die Daten herranzukommen muß ich erstmal

CALL "DPRD_DAT"
LADDR :=W#16#100 -> Eingangsbereich
RET_VAL:=MW104
RECORD :=P#DB110.DBX 0.0 BYTE 12 -> Ersten Bytes des Instanz DBs

aufrufen.
Leider gelingt es mir nicht LADDR und RECORD an den FB zu übergeben, sodass keine Syntx Fehler auftreten.

Wer kann mir dort weiterhelfen?

Gruß
Thorsten
 
Hallo!

Also wenn mich nicht alles täuscht, dann müßtest du den FB wie folgt aufrufen:

CALL "DPRD_DAT" , DB110

soll heißen mit dem FB auch den dazugehörigen DB aufrufen...

dann würde ich das vielleicht so lösen

LADDR :=DB110.DBW10 // Eingangsbereich
RET_VAL:=DB110.DBW14
RECORD :=DB110.DBX 0.0 BYTE 12 -> Ersten Bytes des Instanz DBs
...

soll heißen alles was mit dem FB zu tun hat in den Instanz-DB zu schribbeln... so würde ich das lösen..

Viele Grüße, Tobias
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Profibus

Hallo,

ich würde für die einzulesenden und zu schreibenden Daten eine Struktur in den statischen Variablen anlegen. LADDR müsste ohne Probleme gehen wenn das Datenformat stimmt.

MfG
André Räppel
 
Danke für die vielen Antowrten, allerdings hilft das für mein Problem nicht weiter.

mit gruß
Thorsten
 
Hallo Thorsten,

hast Du unter Einstellungen/Allgemein etwa "Querzugriffe als Fehler melden" aktiviert?
Wenn du von außen auf IDBs zugreifen willst, muß diese Option deaktiviert sein.

Gruß
raika
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thorsten,

Syntax-Fehler dürften eigentlich nicht auftreten. Selbst wenn der angegebene DB oder die angegebene Adresse nicht stimmen würde, müsste es der Editor, so wie du es geschrieben hast, erst einmal annehmen. Vielleicht mal Standardprozeduren wie "Bausteinkonsistenz prüfen", Referenzdaten erzeugen, oder "Speichern unter mit Reorganisieren"? Du kannst mir auch gerne das Projekt zusenden, heute hätte ich noch etwas Zeit, dann erst wieder am WE.


Gruss, Onkel
 
Hallo!

Ich habe bei meinem letzten Beitrag einen Denkfehler - soweit ich das sehen kann...

Die von Dir angeführten Daten

CALL "DPRD_DAT"
LADDR :=W#16#100 -> Eingangsbereich
RET_VAL:=MW104
RECORD :=P#DB110.DBX 0.0 BYTE 12 -> Ersten Bytes des Instanz DBs

sind, wenn ich das nun richtig interpretiere, in einem FB geschrieben und rufen den SFC14 auf.

In einem Programm von uns steht zum Beispiel folgendes:

L #Adresse_PKW
T #P_Adresse
CALL "DPRD_DAT" // PKW einlesen
LADDR :=#P_Adresse
RET_VAL:=#Fehler_DP_SFC14_15
RECORD :=#PKW_Empfangen

Wie gesagt, alles in dem FB!

Der FB wird aus einem FC wie folgt aufgerufen:

CALL "Positionierung Hubantrie" , "DB-Instanz Posmo 1"
Adresse_PKW :=256
...

Die weiteren Daten wie RET_VAL und RECORD werden dann in dem FB weiter verarbeitet...

Ist denn der SFC14 in der CPU vorhanden? Das ist eine Systemfunktion - bei uns wenn man sie öffnet ohne Inhalt...

Vielleicht konnte ich dieses Mal ein wenig mehr helfen... ;)

Viele Grüße, Tobias
 
Zurück
Oben