Access Control (RSbySCHAEFER-2009)
Integration der Zutrittskontrolle in die CiA-417
Beitrag von RSbySCHÄFER
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:
- Lesegerät sendet Upload Request (PDO)
- Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)
- Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)
- Auswerteeinheit sendet Upload Acknowledgement (PDO)
- Sonstige Funktionen (PDO)
1. Upload Request Telegramm
Lesegerät erkennt Karte und sendet:
Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Basic function | Sub function | Lift | Panel | Door | Data |
0x0F | Type of Reader | Value of Lift | Value of Panel | Value of Door | Value of Data |
In der Subfunktion steht entweder der Wert des Lesertyps oder der entsprechenden Wert des niederwertigerem Byte des Objektes „Card Tag ID“ aus dem die Auswerteeinheit die Zugangsdaten auslesen kann.
Wertedefinition von Data (Byte 5)
Value (Bit 0) of Data | Description |
0 | Karte nicht mehr im Lesebereich oder Upload Timeout |
1 | Lesegerät hat gültige Daten von der Karte gelesen |
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.
Type: | |
Bit7 Bit5
|
Bit4 Bit0
|
Definition des Basic Type:
Value | Description |
000b | reserved |
001b | RFID |
010b | Tastatur |
011b | Fingerabdruck |
100b | Stimmerkennung |
101b | Magnet-Karte |
... | reserved |
Wenn Basic Type = 001b (RFID)
Sub Type:
Value | Description |
0x00 | Keine/ unbekannte Karte |
0x01 | EM4001/4002/4101 |
0x02 | EM V4050 |
... | Fingerabdruck |
2. Objekte für die Zugangsdaten
Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden,
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den
Lestertyp identifiziert.
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.
Wenn die Daten (Zugangscode) im Subindex 01h hinterlegt werden, ist es möglich in den weiteren
Subindizes noch weitere Information zu hinterlegen.
Index | 3000h |
Name | Objekt Card Tag ID |
Objekt Code | Array |
Data Type of entry | Domain |
Category | Optional |
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)
Die Länge der Daten wird beim Dowload Request vom Server festgelegt. Beim Leser Type 21h sind dies bei einer Kodierung in Hexdump eine Objektlänge von 6 Byte (1 Byte Leser Typ und 5 Byte Nutzdatenlänge).
Vorschlag 2 Ein Objekt für jeden Lesertyp
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes
des Index die Nummer des Lesertyps.
Hierbei wären die Objekte z.Bsp.
Index | 3000h |
Name | Objekt reserviert |
Objekt Code | Array |
Data Type of entry | Domain |
Category | Optional |
Index | 3021h |
Name | Objekt Card Tag RFID |
Objekt Code | Array |
Data Type | Undsigned 40 |
Category | Optional |
Index | 3041h |
Name | Objekt Card Tag Tastatur |
Objekt Code | Array |
Data Type of entry | n.d. |
Category | Optional |
Index | 30FFh |
Name | Objekt reserviert |
Objekt Code | Array |
Data Type of entry | n.d. |
Category | Optional |
erforderlich.
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.
2.1 Weitere Objekte
Der Lesezugriff ist der Auswerteeinheit nur während eines parametrierbaren Zeitfensters gewährt und beginnt bei Eintreffen des Telegramms (PDO) Upload Request mit Data 0.
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.
2.1.1 (ACC Protocol Control) Dieses Objekt steuert die Protokolllaufzeiten.
1. Eintrag für Request Timeout
- Dieser Eintrag definiert die Zeit zwischen den PDOs Upload Request mit Data 1 und Upload Request mit Data 0. Die Werte sind in ms Schritten festgelegt. Definition in ms.
2. Eintrag für Confirm Timeout
- Dieser Eintrag definiert die maximale Wartezeit auf ein Upload Acnowledge PDO. Trifft dieses während dieser Zeit nicht ein, so wird der Lesezugriff auf die Daten (Zugangscode) und der Schreibzugriff auf das Freigabe Objekt gesperrt. Alle vorhanden Daten der Leseeinheit werden gelöscht. Definition in ms.
3. Eintrag für Protocol Cycle Timeout
- Dieser Eintrag definiert die maximale Zeit für den Einlesevorgang einer Leseeinheit. Ist der Einlesevorgang nach dieser Zeit nicht fertiggestellt, so wird der Einlesevorgang unterbrochen und die vorhandenen Daten der Leseeinheit gelöscht. Definition in ms.
4. Eintrag für Data Send Max Time
- Dieser Eintrag definiert intern die maximale Zeit für die Übertragung des Upload Requests. Diese verhindert die Freischaltung der Zugangsdaten beim Auftreten eines internen Fehlers. Definition in ms.
2.1.2 (ACC Function Control) Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge
1. Eintrag für Release IN Time
- Dieser Eintrag definiert die maximale Dauer der Freischaltung virtueller Eingänge. Dieses Zeitfenster startet unmittelbar nach eintreffen eines Upload Acknowledge mit Data 80h und endet nach der parametrierten Zeit. Definition in ms.
2. Eintrag für Release OUT Time
- Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.
- Dauer der Quittierung
- Verhalten der Quittierung
- Dauer der Quittierung
3. Inputs frei schalten
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Es besteht die Möglichkeit alle die der Freischaltung zugelassenen Virtuellen Eingänge mittel einem schreibenden SDO Zugriffs auf das Objekt „Input release control (XX00h – XX1Fh)“ für eine definierbare Zeit frei zuschalten. Diese Freischaltung erfolgt über eine Bitmaske bis max. 32 Virtuelle Eingänge. Sind mehr als 32 Virtuelle Eingänge vorhanden, so sind mehre Einträge in diesem Objekt vorzunehmen.
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.
Die Auswahl, welche Eingänge gesperrt und freigeschaltet werden dürfen sind über weitere Objekte und zwar „Input acceptance mask“ (Siehe 3.2) und „Input evacuate mask“ gesteuert (Siehe 3.3).
Hierzu zwei Möglichkeiten
3.1 Freischaltung der Virtuellen Eingänge:
3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:
Im Objekt Input Parameter 1 (6120h – 613F) ist bereits ein Bit (Enable) definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.
Byte 3 | Byte 2 | Byte 1 | Byte 0 |
reserved(FFFFh) | Error code | Enable |
Wertebedefinition
Bit7 Bit1
|
Bit0 |
reserved | enable |
3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:
Neues Objekt: (XX00h bis XX21h Input release control
Dieses Objekt enthält die Bitmasken über die Freischaltung der Virtuellen Eingänge. Ist ein bestimmtes Bit in der Maske gesetzt so kann der betreffende Virtuelle Input für ein bestimmtes Zeitfenster freigeschaltet werden.
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.
Dieses Objekt ist ortogonal zu den Virtuellen Eingangsgruppen 1 – 32 vorhanden. Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen.
Objekt Beschreibung
Index | XX00h to XX21h |
Name | Objekt Input release control |
Objekt Code | Array |
Data Type of entry | Unsigned 32 |
Category | Mandatory |
Subindex | 00h |
Description | Objekt Number of entries |
Data Type | Array |
Value Range | 01h to 08h |
Default value | 01h |
Subindes | 01h |
Description | Objekt Release mask of virtual input 1 to 32 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Subindes | 02h |
Description | Objekt Release mask of virtual input 33 to 65 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
.
.
.
Subindes | 08h |
Description | Objekt Release mask of virtual input 225 to 256 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Wertedefinition von Subindex 1 bis 8
Release mask 01h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 32 | Virtueller Eingang 31 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 3 | Virtueller Eingang 2 | Virtueller Eingang 1 |
.
.
.
Release mask 08h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 256 | Virtueller Eingang 255 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 227 | Virtueller Eingang 226 | Virtueller Eingang 225 |
3.2 Neues Objekt: (XX00h bis XX21h Input acceptance mask
Parallel zum Objekt "Input release control" soll das Objekt "Input acceptance mask" geführt werden. Darin soll definiert werden, welche Virtuellen Eingänge freigeschaltet werden dürfen.
- Dieses Objekt enthält die Bitmasken über die Freischaltung der Virtuellen Eingänge. Ist ein betreffendes Bit in der Maske gesetzt so kann der betreffende Virtuelle Input für ein bestimmtes Zeitfenster freigeschaltet werden.
Diese Virtuellen Eingänge werden nach einem Power on reset oder nach einem CAN Kommando Reset node gesperrt. Ausgenommen sind die virtuellen Eingänge die einer Evakuierungsebene zugeordnet sind oder bei denen die Funktion „Zuganskontrolle“ konfiguriert ist.
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen.
Objekt Beschreibung
Index | XX00h to XX21h |
Name | Objekt Input Acceptance mask |
Objekt Code | Array |
Data Type of entry | Unsigned 32 |
Category | Mandatory |
Subindex | 00h |
Description | Objekt Number of entries |
Data Type | Array |
Value Range | 01h to 08h |
Default value | 01h |
Subindes | 01h |
Description | Objekt Acceptance mask of virtual input 1 to 32 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Subindes | 02h |
Description | Objekt Acceptance mask of virtual input 33 to 65 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
.
.
.
Subindes | 08h |
Description | Objekt Acceptance mask of virtual input 225 to 256 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Wertedefinition von Subindex 1 bis 8
Acceptance mask 01h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 32 | Virtueller Eingang 31 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 3 | Virtueller Eingang 2 | Virtueller Eingang 1 |
.
.
.
Acceptance mask 08h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 256 | Virtueller Eingang 255 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 227 | Virtueller Eingang 226 | Virtueller Eingang 225 |
3.3 Neues Objekt: (XX00h bis XX21h Input evacuate mask
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.
In diesem Objekt wird parametriert welche Virtuellen Eingänge einer Evakuierungsebene zugeordnet sind. Diese Virtuellen Eingänge können nach einem Power on reset oder Reset Kommando nicht gesperrt werden.
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.
Objekt Beschreibung
Index | XX00h to XX21h |
Name | Objekt Input evacuate mask |
Objekt Code | Array |
Data Type of entry | Unsigned 32 |
Category | Mandatory |
Subindex | 00h |
Description | Objekt Number of entries |
Data Type | Array |
Value Range | 01h to 08h |
Default value | 01h |
Subindes | 01h |
Description | Objekt Evacuate mask of virtual input 1 to 32 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Subindes | 02h |
Description | Objekt Evacuate mask of virtual input 33 to 65 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
.
.
.
Subindes | 08h |
Description | Objekt Evacuate mask of virtual input 225 to 256 |
Data Type | Unsigned 32 |
Value Range | 0000h to FFFFh |
Default value | 0000h |
Wertedefinition von Subindex 1 bis 8
Evacuate mask 01h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 32 | Virtueller Eingang 31 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 3 | Virtueller Eingang 2 | Virtueller Eingang 1 |
.
.
.
Evacuate mask 08h | ||||||
MSB | Bit 30 | Bit n | Bit n | Bit 2 | Bit 1 | LSB |
Virtueller Eingang 256 | Virtueller Eingang 255 | Virtueller Eingang n | Virtueller Eingang n | Virtueller Eingang 227 | Virtueller Eingang 226 | Virtueller Eingang 225 |
4. Upload Acknowledgement
4.1 Auswerteeinheit sendet positive Bestätigung
Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Basic function | Sub function | Lift | Panel | Door | Data |
0x0F | Type of Reader | Value of Lift | Value of Panel | Value of Door | Bit7 = 1 |
In der Subfunktion steht entweder der Wert des Lesertyps oder der entsprechenden Wert des niederwertigerem Byte des Objektes „Card Tag ID“ aus dem die Auswerteeinheit die Zugangsdaten ausgelesen hat.
Hiermit werden die virtuellen Eingäng freigeschaltet. Diese geschieht durch Setzten der Bits „Enable“ im Objekt 6120h – 613Fh „Parameter 1. Nach Ablauf einer definierten Zeit werden die Enable Bits wieder gelöscht. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.
4.2 Auswerteeinheit sendet negative Bestätigung
Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Basic function | Sub function | Lift | Panel | Door | Data |
0x0F | Type of Reader | Value of Lift | Value of Panel | Value of Door | Bit7 = 0 |
Hiermit wird der Abbruch eines Übertragungsvorganges signalisiert. D.h. die Übertragung der Zugangsdaten war fehlerhaft oder die Zugangsdaten sind nicht gültig. Die Wartzeit die im Objekt „ACC Protocol Control / Upload confirm timeout wird bei Empfang dieses Telegramms beendet. Das Schreiben auf das Objekt "Input release control" wird gesperrt.
5. Sonstige Funktionen
5.1 Steuerung des Lesegerätes
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.
Value (Bit 0) | Description |
0 | Leser EIN |
1 | Leser AUS |
5.2 Neues Virtuelles Gerät
5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.
Ein vollständiges Prozessabbild gegenüber Funktionalitäten aus dem Virtuellen Gerät "Input Panel Unit" und "Output Panel Unit" ist nicht mehr möglich. Dies wäre aber wünschenswert, wenn ein Visualisierung des Prozessabbildes gebraucht würde.
5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit
Da ein Zutrittkontrollsystem höchstwahrscheinlich an einem Panel im/am Aufzug installiert ist, stellt es keinen Nachteil dar, das Zutrittkontrollsystem dem Viruellen Gerät "Input Panel Unit" und "Output Panel Unit" zuzuordnen.
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120h bis 613Fh).