PROFIBUS DPV1
Der Master unterstützt auf einer C1-Verbindung die Dienste Read und Write sowie auf einer C2-Verbindung die Dienste Read, Write, Data_Transport, Initiate und Abort.
C1-Verbindung (MSAC-C1)
Die C1-Verbindung ist für den Master reserviert, die mit dem Slave zyklischen Datenaustausch durchführt (C1-Master). Um die C1-Verbindung bei einem Slave nutzen zu können, muss der Slave DPV1 unterstützen (in der GSD-Datei müssen dafür die Zeile "DPV1_Slave = 1" und das Schlüsselwort "C1_Max_Data_Len" mit einer entsprechenden Länge eingetragen sein). Weiterhin ist in der Regel die C1-Funktionalität durch Setzen des Bit 7 von PrmData-Byte 0 (s. Karteireiter Profibus des Slaves) bei dem entsprechenden Slave zu aktivieren (bei Beckhoff-Geräten, die DPV1 unterstützen, passiert das automatisch).
MSAC-C1-Read ist auf ADS-Read, MSAC-C1-Write auf ADS-Write abgebildet:
MSAC-C1 Read
ADS-Read-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | Slot-Number (DPV1-Parameter) |
IndexOffset | Index (DPV1-Parameter) |
Length | Länge der auszulesenden Daten |
Data | bei Response: ausgelesene Daten |
MSAC-C1 Write
ADS-Write-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | Slot-Number (DPV1-Parameter) |
IndexOffset | Index (DPV1-Parameter) |
Length | Länge der zu schreibenden Daten |
Data | bei Request: zu schreibende Daten |
C2-Verbindung (MSAC-C2)
Die C2-Verbindung ist in der Regel für einen zweiten Master (C2-Master) gedacht, der nicht zyklisch mit dem Slave kommuniziert, aber auch der C1-Master kann die C2-Verbindung nutzen. Um die C2-Verbindung bei einem Slave nutzen zu können, muss der Slave DPV1 unterstützen (in der GSD-Datei müssen dafür die Zeile "DPV1_Slave = 1" und das Schlüsselwort "C2_Max_Data_Len" mit einer entsprechenden Länge eingetragen sein).
Die Verbindung wird von dem Master automatisch aufgebaut, sobald ein Read, Write oder Data_Transport-Zugriff gefordert wird, sie kann aber auch explizit per Initiate aufgebaut werden. Beim automatischen Aufbau sendet der Master die zuletzt übergebenen Initiate-Parameter (s. Beschreibung Initiate), wobei er die Initiate-Parameter nach einem TwinCAT Start (Restart) mit 0 initialisiert (Ausnahme ist die Verbindung-Überwachung, die entsprechend des im System Manager eingestellten Wertes (Watchdog unter DPV1-Class 2 auf dem Karteireiter Profibus des Slaves) initialisiert wird).
Weiterhin muss die C2-Funktionalität durch Anwählen der Enable-Check-Box unter DPV1-Class 2 (s. Karteireiter Profibus des Slaves) bei jedem Slave, der mit C2-Diensten angesprochen werden soll, aktiviert werden.
Wenn ein anderer Master mit dem Slave zyklischen Datenaustausch macht, muss unter DP-Class 2 die Einstellung "No cyclic connection" angewählt werden (s. Karteireiter Profibus des Slaves). Das ist z. B. sinnvoll, um einen BC3100/IL23xx-C310 per PROFIBUS debuggen zu können, obwohl er an einer Fremd-Steuerung hängt.
MSAC-C2-Read ist auf ADS-Read, MSAC-C2-Write auf ADS-Write, MSAC-C2-Data_Transport auf ADS-ReadWrite, MSAC-C2-Initiate auf ADS-ReadWrite und MSAC-C2-Abort auf ADS-Write abgebildet:
MSAC-C2 Read
ADS-Read-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | 0x100 + Slot-Number (DPV1-Parameter) |
IndexOffset | Index (DPV1-Parameter) |
Length | Länge der auszulesenden Daten |
Data | bei Response: ausgelesene Daten |
MSAC-C2 Write
ADS-Write-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | 0x100 + Slot-Number (DPV1-Parameter) |
IndexOffset | Index (DPV1-Parameter) |
Length | Länge der zu schreibenden Daten |
Data | bei Request: zu schreibende Daten |
MSAC-C2 Data_Transport
ADS-ReadWrite-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | 0x100 + Slot-Number (DPV1-Parameter) |
IndexOffset | Index (DPV1-Parameter) |
Write-Length | Länge der zu schreibenden Daten |
Read-Length | Länge der auszulesenden Daten |
Data | bei Request: zu schreibende Daten, bei Response: ausgelesene Daten |
MSAC-C2 Initiate
Mit dem MSAC-C2-Initiate-Dienst kann die C2-Verbindung zu dem Slave aufgebaut bzw. neue Initiate-Parameter übergeben werden, falls diese schon aufgebaut ist.
ADS-ReadWrite-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | 0x200 + Slot-Number (DPV1-Parameter) |
IndexOffset | 0 |
Read-Length | Länge der Initiate-Response-Parameter (6) |
Write-Length | Länge der Initiate-Request-Parameter (10 - 42) |
Data | Initiate-Request-Parameter bzw. Initiate-Response-Parameter |
Initiate-Request-Parameter
0x00 - 0x01 | Feature_Supported |
0x02 - 0x03 | Profile_Feature_Supported |
0x04 - 0x05 | Profile_Ident_number |
0x06 | sType |
0x07 | sLen: Länge von sAddr (0 - 16) |
0x08 | dType |
0x09 | dLen: Länge von dAddr (0 - 16) |
0x0A - 0x19 | sAddr |
0x1A - 0x29 | dAddr |
Initiate-Response-Parameter
0x00 - 0x01 | Feature_Supported (von Slave empfangener Wert) |
0x02 - 0x03 | Profile_Feature_Supported (von Slave empfangener Wert) |
0x04 - 0x05 | Profile_Ident_number (von Slave empfangener Wert) |
MSAC-C2 Abort
Mit dem MSAC-C2-Abort-Dienst kann die C2-Verbindung zu dem Slave wieder abgebaut werden.
ADS-Write-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 0x1000 + Stationsadresse des Slaves |
IndexGroup | 0x400 + Slot-Number (DPV1-Parameter) |
IndexOffset | 0 |
Length | Länge der Abort-Parameter (3) |
Data | bei Request: Abort-Parameter |
Abort-Parameter
0x00 | Reason_Code |
0x01 - 0x02 | Additional_Detail |