# Beckhoff BK9050 Anfängerfrage



## volker79 (11 Juli 2011)

Hallo,

ich versuche gerade über VB6 eine BK9050 anzusprechen, hatte bisher aber keinen Erfolg. Vielleicht hat das hier ja schonmal jemand gemacht und kann mir eine kurze Anleitung geben. 

Folgendes habe ich bisher gemacht:
TwinCat ist auf dem Rechner installiert und findet die Klemmen auch (1xKL1408 und 4xKL2408), im Konfig-Modus kann ich die Eingänge in TwinCat auch auslesen und die Ausgänge setzen.
Wie mache ich das jetzt in VB? Die Beispiele von der Beckhoff-Seite habe ich mir runtergeladen, aber bisher nicht zum Laufen bringen können.

Was ich will:
Ich will die Eingänge der Klemmen auslesen und die Ausgänge setzen können.

Bin für jeden Hinweis dankbar,
Volker


----------



## Voxe (11 Juli 2011)

Hallo,

ADS mit BK. Habe das bisher nur mit Delphi und BK9000 gemacht, sollte aber identisch sein.

Dies ist der Connect, auf die PLC mit IP 172.16.200.20.

AdsNetID := '172.16.200.20';
AdsOcx1.AdsAmsServerNetId := AdsNetID+'.1.1';
AdsOCx1.AdsAmsServerPort := 801;

Ein lesen, über Hardwareadresse für ein Integer:
adsResult := AdsOcx1.AdsSyncReadIntegerReq($4020,0,2,Wert);

genauso wie das schreiben :
adsResult := AdsOcx1.AdsSyncWriteIntegerReq($4020,6,2,wert);

In dem Beispiel ist Wert, eine integer-Variable (4Byte). Hoffe es hilft dir etwas.

Gruß, Voxe

PS: Die Soft PLC muss laufen.


----------



## volker79 (11 Juli 2011)

Hallo,

danke für die schnelle Antwort, klappt aber immer noch nicht. Was meinst Du damit, dass die Soft-PLC laufen muss?

Danke,
Volker


----------



## Voxe (11 Juli 2011)

Hallo,

du kannst nicht einfach einen Koppler auslesen oder beschreiben. Entweder, der hat eine Kommunikation mit der PLC-Runtime, heisst überTwinCAT. (Du hast beschrieben, er läuft am System-Manager, klar, im Konfig-Mode, mit Free-Run, hällt dieser ihn am Leben.) Oder dein VB-Programm hält ihn über ein ModBus-TCP-Protokoll am Leben.

Ein BK.... ist einfach nur ein Koppler. Der kann nix alleine.

Schreibe doch bitte mehr über deine Aufgabe.

Gruß


----------



## volker79 (11 Juli 2011)

Hallo,

ich muss die Ausgänge der Klemmen, die am Koppler hängen, zeitgesteuert setzen können (Bewässerungsanlage). D.h. das Programm fängt zu einem bestimmten Zeitpunkt an zu laufen und schaltet dann die Ausgänge der Reihe nach. Die Software, die diese Zeitpunkte berechnet ist in VB6 geschrieben und ist zur Zeit für die Zusammenarbeit mit einem OPC-Server ausgelegt. Sie soll jetzt so geändert werden, dass zusätzlich auch Beckhoff-Klemmen genutzt werden können.

Hier mal ein Beispiel:

21:00 Generator an (Ausgang G auf 1)
21:02 Ventil X öffnen (Ausgang X auf 1)
21:10 Ventil X schließen (Ausgang wieder auf 0)
21:10 Ventil Y öffnen ...
...
23:00 Generator aus (Ausgang G auf 0)

Also ich will eigentlich nur die Ausgänge programmieren...

Danke,
Volker


----------



## Voxe (11 Juli 2011)

Hehe,

nun wird es klar. Dein Visual-Basic-Programm muss es bringen. Du wirst also mittels ModBus den Koppler ansprechen müssen.

Da hilft dir der System-Manger von Beckhoff gar nichts. Hättest du das Wago-Äquivalent gewählt, könnte ich mittels einer DLL vielleicht helfen. Aber so, sorry.

Gruß.


----------



## cas (11 Juli 2011)

Hallo,

ich misch mich mit ein, bin mir aber nicht 100%ig sicher.

Der BK ist dumm. Der ist wie eine Klemme. Macht nicht von alleine.
Wenn du mittel ADS Ein/Ausgänge manipulieren möchtest, so muß, glaub ich, ein Programm laufen. Der BK kann aber kein Programm laufen lassen.
Aber:
Du hast ja deine Soft-PLC auf dem Rechner (Laptop?)
Du kannst diesen als "SPS" laufen lassen und den BK somit ansteuern.
Dazu unten rechts auf das blaue symbol klicken und System-Start betätigen.
Dann hast du eine Soft-SPS (Ohne Lizenz für 30 Tage, danch neu installieren und wieder 30 Tage).
Jetz mußt du im Systemmanager deine "Lokal" laufenden SPS mit dem Programm verbinden und den BK in s Projekt einflegen und deine I/O Variablen mit dem *BK* verbinden,

Dann greifst du mit VB auf das Lokale Programm um zu setzen und zu lesen. "Programm starten nicht vergessen.

Oder: Mittels MODBUS den BK direkt als IO-Gerät ansprechen. ist mit VB sicherlich auch möglich. Hat dann aber mit ADS nichts mehr zu tun.

So.. ich hab fertig.


MfG CAS


----------



## Voxe (12 Juli 2011)

Hallo, Volker79

hätte da noch einen Ansatz. Ersetze doch den BK.... gegen einen BC...

Die sind unwesentlich teurer, aber du kannst dort eine RunTime laufen lassen und hast dann Zugriff mittels ADS auf die Ein- und Ausgänge.

Gruß Voxe


----------



## GLT (12 Juli 2011)

Voxe schrieb:


> Ersetze doch den BK.... gegen einen BC...
> 
> Die sind unwesentlich teurer, aber du kannst dort eine RunTime laufen lassen und hast dann Zugriff mittels ADS auf die Ein- und Ausgänge.


Dann braucht er VB ja nicht mehr, da die "Applikation" gleich auf dem BC laufen könnte


----------



## Bjornf (12 Juli 2011)

Entschuldigen mein Deutsch.
Ich habe leider falsche information ,dass BC nicht mit HMI fungiert, im Forum gegeben.
Damals hat FX64 etwa ” Warum nicht es ist ADS” geantwortet , und naturlich hat es fungiert.. es ist ja ADS.
Daher dachte ich sofort, es muss hier das gleiche sein... aber sicherheitshalber zuerst testen.
Ich bin faul und habe nur VB Sample02 von http://infosys.beckhoff.com/content/1031/tcscriptdll/html/tcscriptdll_sample02.htm?id=10291
ein bisschen geändert.
Auf die LED's fungiert es , Ich kann Ausgänge schrieben und Eingänge lesen.
Ich glaube doch dass es kann probleme mit den WD in BK werden.

Den Vorschlag von Voxe mit BC9050 ist warscheinlich besser.


----------



## volker79 (13 Juli 2011)

Hallo,

danke erstmal für die ganzen Hinweise. Ich habe es jetzt geschafft, die BK9050 per Modbus anzusprechen, bin da aber noch auf Probleme gestossen. Dazu lege ich aber einen neuen Thread an.

Danke,
Volker


----------

