Eine Visualisierung mehrere SPSén

daniel1987

Level-1
Beiträge
37
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

Ich habe folgendes problem, und zwar habe ich 3 BC9050 Controller hier liegen und will die via Ethernet über eine einzige Visualisierung laufen lassen, will die Visualisierung mit TwinCat intern entwerfen.

Weiß einer ob das geht und wenn wie man das macht? weil ich kenne das nur das die Visu`s für das jeweilige Programm im PLC control geschrieben werden.

Wäre sehr dankbar wenn mir einer helfen könnte!!
 
Hallo Daniel,

wenn man die TwinCAT PLC Visu nutzen möchte, so muss man auch ein Zielsystem haben, was diese zur Anzeige bringen kann.
Ein BC/BX kann das nicht.

Hast Du allerdings einen CX/PC, der dies übernehmen kann, könntest du z.B. per ADSREAD/ADSWRITE die Daten der BCs einsammeln und auf dem VISU-CX/PC zur Anzeige bringen.
Diese Variante erfordert natürlich eine TwinCAT Vollversion, mindestens mit Level PLC sowie eine Lizenz für das

Supplement TwinCAT PLC Control HMI
Supplement TwinCAT PLC Control HMI CE

Gruß,
Mac203
 
Zuviel Werbung?
-> Hier kostenlos registrieren
AAhh das hört sich wieder schwer umständlich an! ich meine da ich die BC´s sowieso alle ins Intranet hängen würde und wir da auch nen "Beckhoff Server" am laufen haben über den alle Steuerungen ins Intranet eingespeist sind, da haben wir auch eine Twin Cat vollversion am laufen allerdings ohne hmi!

und über ads usw. ist erst wieder umständliche programmiererei mit C# etc. oder?
 
wenn ich die funktion ADSREAD bei PLC hinzufügen will kennt Twincat diese gar nicht muss ich da evtl. noch irgendetwas nachinstallieren oder zu bibliothek hinzufügen????? Weil habe jetzt den Versuch ne BC9050 zusammen mit ner CX9001 laufen zu lassen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Daniel,

ein grossteil aller Bedienpanel- Hersteller vertreiben Geräte, welche mit mehreren Steuerungen reden können. Das EXTER T40 von Beijer kann bis zu 5 SPS’en direkt ansprechen. Ich denke, dass du mit so was am schnellsten zum Ziel kommst. Sieh dir mal die Links an…

Bedienpanels
http://www.sps-forum.de/showthread.php?t=42095

Display von Beijer Electronics (EXTER T40)
http://www.sps-forum.de/showthread.php?t=26747

Welche HMI Software hattet ihr schon im Einsatz?
http://www.sps-forum.de/showthread.php?t=35014&highlight=HMI+Beckhoff+Beijer

Gruß
Chräshe
 
Ja möchte allerdings gerne ne datei etc. ins intranet stellen die man öffnet und dann den überbliick hat adsread and write hört sich gut an aber warum klappzt das nicht???
 
TcSystemBCxx50.lbx wäre vielleicht ne Hilfe :)

Wenn Du keinen BC aus der xx50er-Serie hast, musst Du natürlich eine andere Lib nutzen.
Schau mal hier.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe ja eine BC9050 will jetzt gerne austesten ob ich die Kommunikation mit einer CX9001 hinbekomme per ADSREAD aber bekomme nicht raus was ich bei IDXGRP und IDXOFFS eingeben muss weil nirgendwo die Indexgroup/Offset Adressen herauszufinden sind. und kann ich bei Destaddr einfach ADR eingeben?

Was ist der unterschied zwischen ADSREAD und ADSREADEX?


MFG
Daniel
 
Folgendes Beipspiel:
Code:
MeineVariable1 AT%MB20 :INT;
MeineVariable2 AT%MX10.1 :BOOL;

IDXGRP = Startadresse für MB-oder MX- Variablen
IDXOFFS = jeweilige Variablen-Adresse
MeineVariable1 = 20
MeineVariable2 = Byte*8+Bit = 10*8+1

MB MX IB IX QB QX
IDXGRP 0x4020 0x4021 0xF020 0xF021 0xF030 0xF031
IDXOFFS 20 81

Hast Du Dir mal die Beispiele angehesen für den ADSREAD/ADSWRITE?
Ex steht idR für eine Erweiterung. Im speziellen Fall für den Ausgang COUNT_R.
 
ADR ist ja der Adressoperator, dier die Anfangsadresse einer Variablen ermittelt.

So kanns nicht gehen.
ADR(MeineZielVariable) könntest Du machen.
 
Okay habe jetzt langsam alles komplett rau aber läuft trotzdem nicht dabei will ich doch nur einen einzigen digitalen eingang der BC9050 abfragen.

Habe jetzt an DESTADDR ADR(Save) als variable und die soll einfach dann nur ein RS Glied setzten.

In der BC9050 ist nur die Grundkonfig also eingänge Deklariert und ein Semikolon in Main.

bei IDXGRP habe ich 16#F021 stehn und bei IDXOFFS will ich eingang1 abfragen also 1

ich weiss nicht mehr weiter!!!!


Gruss Daniel:TOOL:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es wäre hilfreich, wenn Du mal von beiden Seiten(BC + PC/CX) Quellcode veröffentlichst.
Weiterhin:

  • Gibt es einen AdsReurnCode (ErrId)?
  • Ist die Route zum BC eingetragen?
  • Wie sieht die genaue Adressierung der Variable auf dem BC aus, die Du ansprechen möchtest?
 
Hallo!

Habe das ganze nach dem infosys in Fup gemacht, deshalt habe ich screenshots angefügt,

Als ErrId gibt er mir immer "7" zurück! Halt dieses "no Target found"
Im BC habe ich nicht wirklich viel reingeschrieben nur die verknüpfung der Ausgänge!

Mfg
 

Anhänge

  • 1.jpg
    1.jpg
    108,5 KB · Aufrufe: 14
  • 2.jpg
    2.jpg
    47,3 KB · Aufrufe: 12
Falls noch die Frage aufkommt was "SAve" ist, das ist die einfach eine BOOL variable, die mir eigentlich nur das RS Glied im Netzwerk darunter schalten sollte aber bekomme ja nichtmal die Abfrage hin.
 
Vieleicht auch mal die TimeOut Zeit am Baustein erhöhen. Zum Test einfach mal auf 5 Sekunden setzten.

Und wenn mehrere Eingänge/Daten zum PC übertragen werden sollen, diese in ein Array packen und mit einem Merker versehen.
Es sind glaub ich nur max 4 Verbindungen gleichzeitig erlaubt.

Könnte dann in ST so aussehen:
Code:
Für BC9050:
PROGRAM MAIN
VAR
Eingang1 AT %IX0.0 :BOOL;
Eingang2 AT %IX0.1 :BOOL;
Eingang3 AT %IX0.2 :BOOL;
Eingang4 AT %IX0.3 :BOOL;

ArrayEingänge AT %MB0 : ARRAY[1..4] OF BOOL;
END_VAR
---------
ArrayEingänge[1] := Eingang1;
ArrayEingänge[2] := Eingang2;
ArrayEingänge[3] := Eingang3;
ArrayEingänge[4] := Eingang4;
Code:
Für PC:
PROGRAM MAIN
ADSRead_BC9050 :ADSREAD;
ArrayEingaenge_BC9050 :ARRAY[1..4] OF BOOL;
Trigger :TON;
 ---------
ADSRead_BC9050 (NETID:='192.168.114.7.1.1',
                         Port:=800,
                         IDXGRP:=16#4020,
                         IDXOFFS:=0,
                         LEN:=SIZEOF (ArrayEingaenge_BC9050),
                         DESTADDR:=ADR (ArrayEingaenge_BC9050),
                         READ:=Trigger.Q AND NOT ADSRead_BC9050.BUSY,
                         TMOUT:=t#5s);
Trigger (IN:=NOT Trigger.Q, PT:=t#1s);
So würde jetzt der PC jede Sekunde, vorausgesetzt es liegt kein Fehler an, das Array vom BC9050 lesen.
Wichtig ist auch wie mac203 schon sagte, muss der BC9050 im AMS Router vom PC eingetragen ist.

MFG Christoph
 
Jaaa...
Ich Idiot! ich habe tatsächlich vergessen die route hinzuzufügen, darum keine Connection!

Jetzt läufts ja endlich alles!!!!!!!

Danke an alle für eure Hilfe!!!

Noch etwas: Weiss jemand ob man einen BK9050 auch einsetzen kann ohne ihn im Realtime Ethernet zu benutzen???

Grüsse
Daniel
 
Zurück
Oben