Sfc 14/15

Kunstblume01

Level-1
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich bekomme die Kommunikation über die Bausteine SFC 14/15 nicht hin,
vielleicht kann mir jemand die wichtigsten Aspekte zusammen fassen oder mich auf nen Fehler hinweisen.
Für SFC14:
Am Eingang EN muss eine positive Flanke anliegen.
Laddr die Peripherieadresse des Slaves, in meinem Fall 256 --> w#16#100
Was an ret_val hin muss weiß ich nicht. An record hab ich bei mir DB2 genommen, Zustandswort.

Für SFC15:
EN pos. Flanke
Laddr wieder w#16#100
record DB1 bei mir Steuerwort
und was bei ret_val hin muss weiß ich nicht.

Ich hab die beiden Bausteine in eine Funktion geschrieben und sie im OB aufgerufen.
Warum funktioniert das nicht?

Mit freundlichen Grüßen
Gunnar
 
aus der Siemens-Hilfe

Zweck der SFC 14

Sie benötigen die SFC 14 "DPRD_DAT", weil Sie mit den Ladebefehlen, die auf die Peripherie bzw. auf das Prozeßabbild der Eingänge zugreifen, maximal vier Bytes zusammenhängend auslesen können.

HinweisSie können konsistente Daten ggf. auch über das Prozeßabbild der Eingänge einlesen.
Ob Ihre S7-300-CPU diese Funktionalität beherrscht, können sie dem Handbuch Automatisierungssystem S7-300: Aufbauen entnehmen.
Alle S7-400-CPUs beherrschen diese Funktionalität.
VorsichtVermeiden Sie bei Verwendung der SFC 14 "DPRD_DAT" Zugriffe auf Peripheriebereiche, denen Teilprozeßabbilder mit OB6x-Anbindung (Taktsynchronalarme) zugeordnet sind.
Beschreibung

Mit der SFC 14 "DPRD_DAT" (read consistent data of a DP-normslave) lesen Sie konsistente Daten eines DP-Normslaves/PROFINET IO-Devices aus, wobei für die Maximallänge folgendes gilt: Die Maximallänge entnehmen Sie für die S7-300-CPUs den Handbüchern Automatisierungssystem S7-300: Aufbauen, ET 200S Interfacemodul IM151-7 CPU oder Basismodul BM147CPU. Bei den S7-400-CPUs entnehmen Sie die Maximallänge dem Handbuch Automatisierungssystem S7-400 CPU-Daten. Falls bei der Datenübertragung kein Fehler auftrat, werden die gelesenen Daten in den durch RECORD aufgespannten Zielbereich eingetragen.

Der Zielbereich muß dieselbe Länge aufweisen, die Sie für die selektierte Baugruppe mit STEP 7 projektiert haben.

Bei einem DP-Normslave mit modularem Aufbau bzw. mit mehreren DP-Kennungen können Sie mit einem SFC 14-Aufruf jeweils nur auf die Daten einer Baugruppe/ DP-Kennung unter der projektierten Anfangsadresse zugreifen.


HinweisEin Zugriff mit der SFC 14 "DPRD_DAT" ist nur auf drei oder mehr als 4 Byte lange Datenbereiche möglich. Andernfalls wird ein Zugriff mit dem Fehlercode W#16#8090 abgewiesen.
Parameter Dekla-
ration Daten-
typ Speicherbereich Beschreibung
LADDR INPUT WORD E, A, M, D, L, Konst. Projektierte Anfangsadresse aus dem E-Bereich der Baugruppe, aus der gelesen werden soll.Hinweis:
Adresse muß hexadezimal angegeben werden. Z.B. Anfangsadresse 100 bedeutet: LADDR:=W#16#64.
RET_VAL OUTPUT INT E, A, M, D, L Tritt während der Bearbeitung der Funktion ein Fehler auf, enthält der Rückgabewert einen Fehlercode.
RECORD OUTPUT ANY E, A, M, D, L Zielbereich für die gelesenen Nutzdaten. Er muß genauso lang sein, wie Sie für die selektierte Baugruppe mit STEP 7 projektiert haben. Es ist nur der Datentyp BYTE zulässig.
Fehlerinformationen

HinweisFalls Sie auf DPV1-Slaves zugreifen, können Fehlerinformationen dieser Slaves vom DP-Master an die SFC weitergereicht werden. Zur Beschreibung dieser Fehlerinformationen siehe Alarm von einem DP-Slave empfangen mit dem SFB 54 "RALRM" STATUS[3].
Fehlercode
(W#16#...) Erläuterung
0000 Es ist kein Fehler aufgetreten.
8090 · Für die angegebene logische Basisadresse haben sie keine Baugruppe projektiert, oder · Sie haben die Einschränkung über die Länge der konsistenten Daten nicht beachtet, oder· Sie haben die Anfangsadresse im Parameter LADDR nicht hexadezimal angegeben.
8092 In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.
8093 Für die unter LADDR angegebene logische Adresse existiert keine DP-Baugruppe/kein PROFINET IO-Device, von der/dem Sie konsistente Daten lesen können.
80A0 Beim Zugriff auf die Peripherie wurde ein Zugriffsfehler erkannt
80B0 Slaveausfall an externer DP-Anschaltung
80B1 Die Länge des angegebenen Zielbereichs ist ungleich der mit STEP 7 projektierten Nutzdatenlänge.
80B2 Systemfehler bei externer DP-Anschaltung
80B3 Systemfehler bei externer DP-Anschaltung
80C0 Die Daten wurden noch nicht von der Bauguppe gelesen
80C2 Systemfehler bei externer DP-Anschaltung
80Fx Systemfehler bei externer DP-Anschaltung
87xy Systemfehler bei externer DP-Anschaltung
808x Systemfehler bei externer DP-Anschaltung
8xyy allgemeine Fehlerinformation, siehe Fehlerauswertung mit dem Ausgangsparameter RET_VAL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

die Bedeutung der Parameter erfährst du in der Online-Hilfe (SFC mit der Maus anklicken und F1 drücken. Ob es dann funzt hängt u.a. auch von der Hardware ab.
CPU-interne Schnittstelle --> geht
Schnittstelle über CP --> geht nicht.

Vielleicht stellst du mal hier deinen Code rein und ein paar Infos über den Kommunikationsweg wären auch nicht schlecht.
 
Danke erstmal die Siemenshilfe zu den Bausteinen hab ich allerdings schon gelesen. Hilft mir jetzt nicht unbedingt weiter, weil ich es im Detail nicht verstehe.
Die Kommunikation zu meinen Slave hat schon hingehauen indem ich das Steuerwort mittels move-Baustein direkt an den Slave übertragen hab, wenn ich aber mehr als 2 Worte übertragen möchte geht das ja irgendwie nicht mehr.
Also noch mal, kann mir irgend jemand ein paar nützliche Hinweise geben wie das von statten geht, jetzt kommt bei meinem Slave nichts an.
Hab mal ein Bild von der Funktion dran gehängt die ich geschrieben hab.
MFG Gunnar
 

Anhänge

  • Clipboard01.jpg
    Clipboard01.jpg
    24,5 KB · Aufrufe: 261
Ich versuche eine Verbindung zw. CPU 314-2dp und Simoreg über Profibus herzustellen.

Was bedeutet:"CPU-interne Schnittstelle --> geht
Schnittstelle über CP --> geht nicht" ?

Außerdem ist mein Problem das ich aus der Hilfe zu den Parametern nicht schlau werd, wie zum Beispiel bei ret_val.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der Hilfe zum SFC 15 steht zum beispiel

RET_VAL OUTPUT INT E, A, M, D, L Tritt während der Bearbeitung der Funktion ein Fehler auf, enthält der Rückgabewert einen Fehlercode.

Ret_val ist vom Datentyp Int.

Hab ich möglicherweise den record Parameter falsch bezeichnet, (datentyp any)?
mfg gunnar
 
weiß ich nicht, keiner, weiß ja nicht was da hin muss.

Sorry, hab das mit dem Baustein noch gemacht und kann mir auch keinen Reim drauf machen.
 
noch mal. Du hast doch hier schöne Screenshots veröffentlicht.
Du weisst, dass es nicht funktioniert. Deshalb nehme ich an, dass du eine Onlineverbindung zu Steuerung hast.

Der RET_VAL beschreibt dein MW256. In der Online Ansicht, oder einer Variablentabelle siehst du doch, was in MW256 für ein Wert steht.

Teile diesen bitte mal mit.

Gruß Micha
 
Da gibts kein Wert! MW 256 wird nirgens beschrieben, hab ich an der Stelle "frei" gewählt, weil mir der Zusammenhang an der Stelle überhaupt fehlt!!! Weiß nicht mal ob da MW 256 rein muss, hab das nur in Analogie zu einem Beispielprojekt gewählt.
Die online-Verbindung zur CPU steht allerdings.
Gruß Gunnar
 
Es steht
Mw256 Symbol:"mw256" Anzeigeformat:"Hex"

das wars,

Sorry wenn der Eindruck entsteht das die Fragen ein bisschen hol sind nur leider geht hier nichts und ich kotz maximal ab!!!!!!!!!!!!!!!!!!!!!!!!!!Gruss

Bei Statuswert steht noch der Operand kann nicht beobachtet werden.
 
Zurück
Oben