BC9191 im Master-/Slave-Modus
Voraussetzungen
- auf dem BC9191 (Slave) ist das Grundapplikationsprogramm installiert und die Defaultkonfiguration ist aktiv
- auf der übergeordneten Steuerung, hier im Beispiel ein CX5020 (Master) ist eine Applikation installiert, die im Master-Slave-Mode die Steuerungs- und Regelalgorithmen aller angeschlossenen BC9191 übernimmt. Auf der Mastersteuerung ist eine TwinCAT-Konfiguration aktiv.
Grundinformationen
Im Auslieferungszustand (Default Configuration) des BC9191 haben die OnBoard I/Os feste Adressen. Die Daten für die Ethernet-Kommunikation beginnen ab dem Adress-Offset 1000dez, dies ist ein Leistungsmerkmal vom BC9191. Dieses Leistungsmerkmal wird für die Master-Slave-Kommunikation genutzt.
Eingänge | Ausgänge |
---|---|
Busklemme %IB0 ... | Busklemmen %QB0 ... |
Ethernet DATEN (SPS- Variablen) %IB1000 ...(ModbusTCP/ADS-TCP/ADS-UDP) | Ethernet DATEN (SPS- Variablen) %QB1000 ...(ModbusTCP/ADS-TCP/ADS-UDP) |
... %IB2047 Maximal | ... %QB2047 Maximal |
Detaillierte Beschreibung der TwinCAT-Konfiguration der Mastersteuerung
- neues TSM file erzeugen und abspeichern unter MasterSlave_TcSM.tsm
- Gerät anfügen ==> Virtuelle Ethernet Schnittstelle
- Box Anfügen ==> BC9191 auswählen und mit OK bestätigen / ==> keine Vorlage öffnen, sondern mit dem Button Abrechen bestätigen
- SPS Projekt anfügen, damit die selbstdefinierten Variablentypen verfügbar sind.
- SPS Variablen (für die Ethernet-Kommunikation) einfügen ==> Eingänge und Ausgänge vom Typ ST_BC9191InData / ST_BC9191OutData unter der Box1 BC9191
- eindeutigen Namen editieren z. B. stInData_BC9191_10 und stOutData _BC9191_10 (Bezug auf den Namen der Struktur und auf den BC9191 (z. B. 172.16.21.10))
- Box 1 (BC9191) parametrieren
- eindeutige / zuordnungsbare Namen deklarieren z. B. BC9191_10
- Kommunikationseinstellungen im Karteireiter IP Adresse vornehmen ==> UDP einstellen und IP-Adresse setzen
- wenn die Box1 BC9191 fertig parametriert ist, kann diese je nach Bedarf markiert und kopiert werden.
- dann muss der jeweilige Name, die IP-Adresse und der Namen der zusätzlichen Eingänge und Ausgänge editiert werden.
- nachdem die zugefügten BC9191 fertig parametriert sind, werden die Eingänge und Ausgänge der SPS-Task mit den eingefügten SPS Variablen verknüpft
Detaillierte Beschreibung des TwinCAT PLC Programms der Mastersteuerung
(CX5020_BC9191_TcPLC.pro als ZIP-Datei) (Beispieldatei)
(MasterSlave_TcSM.tsm als ZIP-Datei) (Beispieldatei)
- Je nachdem wie viele BC9191 in der Master/Slave-Applikation integriert sind, ist es notwendig die stInData_BC9191 und die stOutData_BC9191 entsprechend mehrfach global als lokierte Variablen zu deklarieren
- für die Ethernet-Kommunikation, die bei der Master/Slave-Kommunikation verwendet wird, ist auf der Seite vom BC9191 die Deklaration der SPS-Variablen notwendig ab dem Adress-Offset 1000dez
- in dem Unterprogramm Monitoring(); wird die Master/Slave Kommunikation überwacht.
- wird die Verbindung zwischen Master und Slave unterbrochen, fällt der Wert der Strukturvariable .BC9191_uiMonitoring auf 0. In diesem Fall wird der Raum/Zone nicht mehr zentral gesteuert, sondern lokal von dem BC9191. Die Steuerungsfunktionen werden dann von der lokalen SPS vom BC9191 übernommen.
In der Masterapplikation ist eine Visualisierung enthalten. Anhand der VISU und der Kommunikation über Beckhoff ADS ist es möglich mit den angebundenen BC9191 Lese- und Schreibbefehle auszuführen
IndexGroup 16#4020 und 16#4021 ==> IndexOffset, siehe Bild
HINWEISE
- Der BC9191 (C165) und CX/PC (x86) haben unterschiedliche Speicherausrichtungen, dies muss bei Datenstrukturen, die zwischen den beiden Steuerungsplattformen ausgetauscht werden, berücksichtigt werden. ==> Siehe auch Art und Weise wie die ST_BC9191InData und ST_BC9191OutData aufgebaut sind.
BC (165) ==> Datenstrukturen haben eine WORD (2 Byte) Speicherausrichtung
PC / CX (x86) ==> Datenstrukturen haben eine BYTE (1 Byte) Speicherausrichtung
CX (ARM) ==> Datenstrukturen haben eine DWORD (4 Byte) Speicherausrichtung - Damit Variablen vom Datentyp REAL von einem PC über das Netzwerk per Beckhoff ADS auf einem BC9191 richtig dargestellt werden, müssen die Variablen vom Datentyp REAL in das richtige Format konvertiert werden. Das muss auch dann gemacht werden, wenn vom BC9191 auf den PC zugegriffen wird. Das Konvertieren, sprich das Tauschen von HI- und LOW-Word einer REAL Variable kann auf der BC9191 oder der PC Seite gemacht werden mit Hilfe der Funktion (F_SwapRealEx).
Der SPS-Code, der dezentral auf einem BC9191 im Fall einer Kommunikationsunterbrechung läuft, ist auf der Mastersteuerung je angebundenen BC9191 noch mal abgebildet und im Normalfall aktiv am regeln und steuern.
Blau und Orange markierte Programmteile gehören funktionell zusammen.
In den einzelnen Programmen, die sich auf einen expliziten BC9191 beziehen, muss die Zuordnung der physikalischen Eingänge und Ausgänge in der entsprechenden Strukturen und stInData_BC9191_xx stOutData_BC9191_xx erfolgen.
Beispiel für den BC9191_10
In dem Programmteil EL_SP_FS_BC9191_10(PRG) findet die Zuordnung zu den physikalischen Eingängen statt. (stInData_BC9191_10 : ST_BC9191InData;)
In dem Programmteil MAIN_BC9191_10(PRG) findet die Zuordnung zu den physikalischen Ausgänge statt. (stOutData_BC9191_10 : ST_BC9191OutData;)