KEB FU an CP343-1 Wie komm ich an die Daten?

DarkLykan

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

ich sitze vor nem kleinen Profinet Problem und hoffe das mir hier einer helfen kann.

Ich will einen KEB FU an einer CPU 313C mit einem CP 343-1 betreiben.
Jetzt versuche ich verzweifelt an die Daten (Steuerwort, Statuswort, IST-/Solldrehzahl und IST-/Solldrehmoment zu kommen.

Der FU ist mithilfe eines Mitarbeiters soweit eingestellt und in meiner Hardwarekonfig eingebunden.

Meine Hardwarekonfig der Profinet Komponenten:
CP343-1: Gerätename: CP343-1; Betriebsart: IO-Controler IP:192.168.10.1; Vernetzt: ja; Adressen: Eingänge 256 Ausgänge: 256

KEB-FU: Gerätename: kebf5-1 ;Gerätenummer: 1 IP:192.168.10.2 Adressen: Eingänge 50-65 Ausgänge 50-65

Nach einspielen der Hardwarekonfig erhält der FU seine IP.

Jetzt mein eigentliches Problem:
Wie komm ich an die PEWs/PAWs des FUs ich habe bis jetzt noch keine Erfahrungen mit nem CP sammeln können und stehe wie der Ochs vorm Berg.
Habe es schon mit dem "PNIO_Send" und "PNIO_Recv" probiert.

CALL "PNIO_RECV"
CPLADDR :=W#16#100
MODE :=B#16#80
LEN :=10
IOPS :=DB300.DBW30
NDR :=DB300.DBX29.0
ERROR :=DB300.DBX29.1
STATUS :=DB300.DBW32
CHECK_IOPS:=DB300.DBX29.2
ADD_INFO :=DB300.DBW34
RECV :=P#DB300.DBX0.0 BYTE 10

CALL "PNIO_SEND"
CPLADDR :=W#16#100
MODE :=B#16#80
LEN :=10
IOCS :=DB300.DBW37
DONE :=DB300.DBX36.0
ERROR :=DB300.DBX36.1
STATUS :=DB300.DBW39
CHECK_IOCS:=DB300.DBX29.2
SEND :=P#DB300.DBX10.0 BYTE 10

Bei Status gibt der mir aber immer 8184h raus.

Weis vielleicht einer wo das Problem liegen könnte? Oder gibt es eine Möglichkeit direkt auf die PEWs/PAWs des FUs zuzugreifen? Habe versuchsweise mal eine CPU315-2PN/DP genommen, da kann ich direkt auf die PEWs zugreifen und dann bekomme ich auch meine Daten die ich haben will. Wieso klappt das mit einem CP nicht auch so schön einfach. ^^
(Ich würde am liebsten die 315-2PN/DP nehmen aber das will leider mein Chef nicht *menno*)

MfG

DarkLykan
 
Das Einzige, was mit auffällt:

IOCS OUTPUT ANY (als VAR-TYPE ist nur BYTE zugelassen) Die Adresse des Datenbereiches verweist alternativ auf:· Merkerbereich· DatenbausteinbereichLänge:Den Maximalwert entnehmen Sie bitte dem gerätespezifischen Teil B dieses Handbuches unter Kapitel "Leistungsdaten". Sie kann für Controller- bzw. Device-Betrieb unterschiedlich sein. IO Consumer StatusPro Byte Nutzdaten wird ein Status-Bit übertragen.Voraussetzung: Die Übertragung ist im Parameter MODE angefordert (MODE=0 oder MODE=1). Nur in dieser Betriebsart ist der Parameter relevant.Die Längenangabe hängt von der Länge im Parameter LEN ab (pro Byte ein Bit)= (Länge LEN + 7/8)Controller-Betrieb:
Entsprechend dem Parameter SEND werden Adresslücken mit übertragen.Adresslücken werden mit Status GOOD übertragen.Device-Betrieb:
Adresslücken werden nicht mit übertragen.Der Baustein beginnt die Übertragung des Status für Adresse 0.Hinweis:
Die Mindestlänge des ANY-Pointer ist (Länge LEN + 7/8)

Hast du mal einen Any da hingeschrieben, du hast ein Word dort vergeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ralle du bist spitze!!!
Ich habe die Variable für IOPS und IOCS geänder und sieh da ich habe meine Werte.



CALL "PNIO_RECV"
CPLADDR :=W#16#100
MODE :=B#16#0
LEN :=10
IOPS :=P#DB300.DBX20.0 BYTE 3
NDR :=DB300.DBX28.0
ERROR :=DB300.DBX28.1
STATUS :=DB300.DBW24
CHECK_IOPS:=DB300.DBX28.2
ADD_INFO :=DB300.DBW26
RECV :=P#DB300.DBX0.0 BYTE 10


CALL "PNIO_SEND"
CPLADDR :=W#16#100
MODE :=B#16#0
LEN :=10
IOCS :=P#DB300.DBX30.0 BYTE 3
DONE :=DB300.DBX36.0
ERROR :=DB300.DBX36.1
STATUS :=DB300.DBW34
CHECK_IOCS:=DB300.DBX36.2
SEND :=P#DB300.DBX10.0 BYTE 10
 
Zurück
Oben