Beckhoff BK mit BC verbinden mit ADS-Befehlen

DiX

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

versuche gerade die Eingänge von einem BK9000 mit einem BC9000 auszulesen.
Habe jetzt Programm geschrieben, in dem ich den FB ADSREADEX aufrufe.
Bekomme aber immer nur 0en.
Der Baustein zeigt keine Fehler an, daher gehe ich mal davon aus das ich auf dem
richtigen Weg bin.

Gibt es vielleicht noch irgrendwas zu beschten was ich übersehen habe ??

Freue mich auf Eure Antworten

Gruß
DiX
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Bernd,

habe bis jetzt lediglich versucht Zyklisch die Eingänge des BK einzulesen.
Habe den Aufruf des Read Baustein in einen FB gepackt, welcher dann im Main Programm aufgerufen wird.
Bis jetzt beschränkt sich das ganze auf die folgenden paar Zeilen.
Die Index Parameter habe ich auf dieser Tabelle im Info-Sys. Hoffe das der Port des BK richtig ist.
Angestosen wird der Lesebefehl durch ein Takt-Signal.
Man kann dann Online sehen, das ich das Busy Signal und auch der Count_R Ausgang sich ändern wenn der
Befehl gestartet wird. Der Fehler bleibt stets 0 wie auch leider und das ist ja mein Problem die "Eingangsdaten".

FUNCTION_BLOCK FB_AdsCom
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
LeseBaustein: ADSREADEX;
VerbindungSchliessenBaustein: ADSCLOSE;
Eingangsdaten: ARRAY [0 .. 10] OF BYTE;
Start: BOOL;
InArbeit: BOOL;
Fehler: BOOL; (*Fehler bei der Kommunikation*)
FehlerID: UDINT; (*Fehler Nummer*)
Anzahl: UDINT; (*Anzahl der gelesenen Daten*)
index: UDINT :=0;
END_VAR

LeseBaustein(
NETID:= '192.168.177.34.1.1',
PORT:= 300,
IDXGRP:= 16#F020,
IDXOFFS:= 0,
LEN:= 10,
DESTADDR:= Eingangsdaten[index],
READ:= Systemsignale.Takt1s,
TMOUT:= t#2s,
BUSY=> InArbeit,
ERR=> Fehler,
ERRID=> FehlerID,
COUNT_R=> Anzahl);

Hoffe die Infos sind ausreichend fürs erste.

Gruß DiX
 
Probier mal deinen Aufruf so

LeseBaustein(
NETID:= '192.168.177.34.1.1',
PORT:= 300,
IDXGRP:= 16#F020,
IDXOFFS:= 0,
LEN:= SIZEOF(Eingangsdaten),
DESTADDR:= ADR(Eingangsdaten),
READ:= Systemsignale.Takt1s,
TMOUT:= t#2s,
BUSY=> InArbeit,
ERR=> Fehler,
ERRID=> FehlerID,
COUNT_R=> Anzahl);

Probier mal das und meld dich nochmal...

Gruß Bernd
 
Hallo Bernd,

danke erstmal für die schnelle Antwort.

Habe Deinen Vorschlag mal übernommen und bekomme jetzt auch ein Ergebnis zurück.
Jedoch scheint dies der Zustand der Eingänge beim Einschalten bzw. Reset des BK zu sein.

Hab jetzt nochmal nachgeschaut und festgestellt, das die IO run LED gar nicht leuchtet.
Im Moment habe ich eine KL1408 und eine KL2408 und Endklemme dran hängen.

Hat jemand vielleicht eine wie ich das hin bekomme das das läuft :confused:
Rote LED´s sind keine an und es blinken auch keine.

Gruß DiX
 
Zurück
Oben