https://de.canopen-lift.org/api.php?action=feedcontributions&user=RSbySCH%C3%84FER&feedformat=atom
CANopen-Lift - Benutzerbeiträge [de]
2024-03-29T10:37:47Z
Benutzerbeiträge
MediaWiki 1.41.0
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4799
Access Control (RSbySCHAEFER-2009)
2009-04-06T13:24:08Z
<p>RSbySCHÄFER: /* Integration der Zutrittskontrolle in die CiA-417 */</p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Beitrag von RSbySCHÄFER<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindex 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br /><br />
'''5.2 Neues Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.<br /><br />
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.<br /><br />
<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
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.<br /><br />
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120<small>h</small> bis 613F<small>h</small>).<br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Definition_G%C3%A4stetableau&diff=4797
Definition Gästetableau
2009-04-06T07:42:52Z
<p>RSbySCHÄFER: </p>
<hr />
<div>Dies eine Definition des Gästetablaus.<br />
Die Basic function "Gästeruf" (0x20) im DSP417-4 existiert bereits.<br />
<br />
=Zum Dokument=<br />
[[media:Definition_Gästesteuerung_V0.3.pdf|Definition Gästesteuerung]]<br /></div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Datei:Definition_G%C3%A4stesteuerung_V0.3.pdf&diff=4796
Datei:Definition Gästesteuerung V0.3.pdf
2009-04-06T07:36:52Z
<p>RSbySCHÄFER: </p>
<hr />
<div></div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Erweiterungen_des_Profils&diff=4795
Erweiterungen des Profils
2009-04-06T07:28:11Z
<p>RSbySCHÄFER: /* Beschreibungen */</p>
<hr />
<div>== Allgemeines ==<br />
<br />
Das Profil CiA-417 sollte um folgende Funktionen erweitert werden:<br />
<br />
* Unterscheidung zwischen logischer und physikalischer Etage des Aufzuges zur besseren Steuerung der Etagenanzeigen und des Gruppenalgorithmus<br />
* Signal >>Ruf abgearbeitet<< für die Gruppenkommunikation<br />
* Signal >>Gruppenmodus aktiv/nicht aktiv<< um einzelne Teilnehmer aus der Gruppe nehmen zu können<br />
<br />
== Beschreibungen ==<br />
* [[Access Control]]<br />
* [[Bestätigte Signale]]<br />
* [[CAN-Bus-Qualität]]<br />
* [[Ergänzungen und Änderungen Türsteuergerät]]<br />
* [[Ergänzungen zur Umrichteransteuerung]]<br />
* [[Ergänzung zum Umrichterobjektkatalog]]<br />
* [[Gateway zu anderen Gewerken]]<br />
* [[I/O-Gruppenfunktionalität]]<br />
* [[Neue I/O-Signale]]<br />
* [[Power Monitor]]<br />
* [[Prioritäten der statischen Sondertexte]]<br />
* [[Virtuelle Etagenanzeige]]<br />
* [[Virtuelles Gerät Anzeige]]<br />
* [[Virtuelle Konsole]]<br />
* [[Definition Gästetableau]]<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Definition_G%C3%A4stetableau&diff=4794
Definition Gästetableau
2009-04-06T07:25:46Z
<p>RSbySCHÄFER: Die Seite wurde neu angelegt: Dies eine Definition des Gästetablaus. Die Basic function "Gästeruf" (0x20) im DSP417-4 existiert bereits.</p>
<hr />
<div>Dies eine Definition des Gästetablaus.<br />
Die Basic function "Gästeruf" (0x20) im DSP417-4 existiert bereits.</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4696
CAN Netzwerk CANnet
2008-10-21T13:27:31Z
<p>RSbySCHÄFER: /* Beschreibung */</p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Kompatibilität zu allen SCHAEFER CANopen Produkten<br />
*Geringe Montagezeiten<br />
*Enorme Zeit- und Kosteneinparung<br />
*Hohe Kontaktsicherheit<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfach und sichere Planung<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
===Anschlusskabel ASK10000===<br />
Beschreibung folgt!<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
Beschreibung folgt!<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
Beschreibung folgt!<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
Beschreibung folgt!<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
Beschreibung folgt!<br />
<br /><br /><br /><br /><br /><br /><br /><br />
<br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4695
CAN Netzwerk CANnet
2008-10-21T13:11:57Z
<p>RSbySCHÄFER: /* Beschreibung */</p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Kompatibilität zu allen SCHAEFER CANopen Produkten<br />
*Geringe Montagezeiten<br />
*Enorme Zeit- und Kosteneinparung<br />
*Hohe Kontaktsicherheit<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfach Planung<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
===Anschlusskabel ASK10000===<br />
Beschreibung folgt!<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
Beschreibung folgt!<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
Beschreibung folgt!<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
Beschreibung folgt!<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
Beschreibung folgt!<br />
<br /><br /><br /><br /><br /><br /><br /><br />
<br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4694
CAN Netzwerk CANnet
2008-10-21T12:58:52Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
===Anschlusskabel ASK10000===<br />
Beschreibung folgt!<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
Beschreibung folgt!<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
Beschreibung folgt!<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
Beschreibung folgt!<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
Beschreibung folgt!<br />
<br /><br /><br /><br /><br /><br /><br /><br />
<br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4693
CAN Netzwerk CANnet
2008-10-21T12:45:19Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
===Anschlusskabel ASK10000===<br />
Beschreibung folgt!<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
Beschreibung folgt!<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
Beschreibung folgt!<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
Beschreibung folgt!<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
Beschreibung folgt!<br />
<br /><br /><br /><br /><br /><br /><br /><br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4692
CAN Netzwerk CANnet
2008-10-21T12:44:03Z
<p>RSbySCHÄFER: /* Anschlusskabel ASK5000 */</p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
Beschreibung folgt!<br />
<br />
===Anschlusskabel ASK10000===<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
<br /><br /><br /><br /><br /><br /><br /><br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4691
CAN Netzwerk CANnet
2008-10-21T12:42:35Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
Folgende Kabelsegmente sind verfügar<br /><br />
<br /><br />
<br />
=Elemente=<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
===Anschlusskabel ASK5000===<br />
===Anschlusskabel ASK10000===<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
===Schnittstellenkabel SSK500===<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
===Knotenverbindungdkabel KVK4000===<br />
===Knotenverbindungdkabel KVK500===<br />
===Knotenverbindungdkabel KVK200===<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
===Überbrückungskabel UEB100===<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
===Netzabschluss NT120===<br />
<br /><br /><br /><br /><br /><br /><br /><br />
=Links=<br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4690
CAN Netzwerk CANnet
2008-10-21T12:29:40Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
=Status=<br />
<br />
Folgende Kabelsegmente sind verfügar<br />
*Anschlusskabel ASK5000<br />
*Schnittstellenkabel SSK500<br />
*Knotenverbindungdkabel KVK4000<br />
*Knotenverbindungdkabel KVK500<br />
*Knotenverbindungdkabel KVK200<br />
*Überbrückungskabel UEB100<br />
*Netzabschluss NT120 <br /><br />
<br /><br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CAN_Netzwerk_CANnet&diff=4689
CAN Netzwerk CANnet
2008-10-21T12:22:57Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Die Systemkabel bestehen aus 4 Adern 0,75 mm². Zwei Adern (sw/rt) zu Spannungsversorgung und zwei Adern (ws/bl) als Bus Leitung. Die Spannungsversorgung und Bus Leitung sind jeweils miteinander paarverseilt.<br />
<br /><br />
Um eine einfache und sichere Installation der einzelnen CANopen Komponenten durchzuführen, bietet der Einsatz von vorkonfektionierten Kabelsegmenten deutliche Vorteile.<br />
<br />
[[Bild:ASK5000.jpg|thumb|Anschlusskabel 10m / 5m]]<br />
[[Bild:SSK500.jpg|thumb|Schnittstellenkabel 50cm]]<br />
[[Bild:KVK4000.jpg|thumb|Knotenverbindungskabel 4m / 50cm / 20cm]]<br />
[[Bild:KK100.jpg|thumb|Überbrückungskabel 10cm]]<br />
[[Bild:NT120.jpg|thumb|Netzabschluss]]<br />
<br />
*Keine Zuschnitt von Kabelsegmenten<br />
*Keine Schraubklemme<br />
*Kein Anschlussplan erforderlich<br />
*Falsche Klemmenbelegung ausgeschlossen<br />
*Einfachste Erweiterung des CAN Netzwerks<br />
*Kein Werkzeug zum Errichten eines CAN Netzwerks erforderlich<br />
*Kein spezifisches Wissen über CANopen erforderlich<br /><br />
<br /><br />
<br />
Folgende Kabelsegmente sind verfügar<br />
*Anschlusskabel ASK5000<br />
*Schnittstellenkabel SSK500<br />
*Knotenverbindungdkabel KVK4000<br />
*Knotenverbindungdkabel KVK500<br />
*Knotenverbindungdkabel KVK200<br />
*Überbrückungskabel UEB100<br />
*Netzabschluss NT120 <br /><br />
<br /><br />
Verkabelungsbeispiel: [[media:CANnet_Topologie.pdf|CANnet Topologie]]<br /><br />
Verbindungsstecker: [[Mini-Fit Jr.]]<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CANwizard_CS08&diff=4688
CANwizard CS08
2008-10-21T12:21:38Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
<br />
Das ActiveX-Steuerelement CANwizard_CS08 ist die visualisierte Benutzeroberfläche die auf der Plattform vom CANwizard der [[Böhnke & Partner GmbH |Böhnke + Partner GmbH]] basiert. Diese ermöglicht es, auch ohne CANopen spezifische Kenntnisse die Konfiguration für den [[Ruftableauknoten CANsmall CS08]] der [[SCHAEFER GmbH]] vorzunehmen.<br /><br />
<br />
Das ActiveX-Steruerelement CANwizard_CS08 ist integriert im CANwizard. Wird über den CANwizard das CAN Netzwerk eingescannt oder ein einzelner CAN Knoten eingelesen, so ermittelt CANwizard über die Vendor-ID und den Poduct-Code welches ActiveX-Steuerelemt zu starten ist.<br /><br />
<br />
Das ActiveX-Steuerelemt CANwizard_CS08 wiederum erkennt über die Objekteinträge um welche Version des CANsmall es sich handelt. Diese Version des CANsmall erscheint darauf hin auf der visualisierten Benutzeroberfläche. Über diese Benutzeroberfläche ist es möglich die geräte- und herstellerspezifischen Parameter einzugeben.<br />
<br />
[[Bild:CANwizard_CS08_VST_01.jpg|thumb|Konfiguration v. CS08_VST]]<br />
[[Bild:CANwizard_CS08_VPM_01.jpg|thumb|Konfiguration v. CS08_VPM]]<br />
[[Bild:CANwizard_CS08_HST_01.jpg|thumb|Konfiguration v. CS08_HST]]<br />
[[Bild:CANwizard_CS08_HPM_01.jpg|thumb|Konfiguration v. CS08_HPM]]<br />
[[Image:CANwizard_CS08_HPM_02.jpg|thumb|Dialog Grundeinstellungen]]<br />
<br />
<br />
Ferner stehen über der Benutzeroberfläche noch die Informationen zur Verfügung:<br />
*Gerätename<br />
*Harewareversion<br />
*Softwareversion<br />
*Bezeichnung der EDS-Datei <br />
<br /><br />
<br />
Über verschiedene Schaltflächen ist es möglich:<br />
*Konfiguration senden<br />
*Gerät neu einlesen<br />
*Grundeinstellungen bearbeiten<br />
*Konfiguration löschen<br />
*Funktionstest starten<br />
*Druckoption f. Klemmenplan (in Vorbereitung)<br /><br />
<br /><br />
<br />
Die Konfiguration erfolgt über verschiedene Eingabedialoge:<br />
*Klemmentyp<br />
*Klemmenbeschreibung<br />
*(1)Kodierung<br />
*(1)Leitungsnummer (Adresse)<br />
(1)Nur bei Funktionen die mehr als eine Leitung in Anspruch nehmen<br /><br />
<br /><br />
Jede Klemme wird einzeln konfiguriert<br />
<br />
Des weiteren ist bei der Konfiguration der Versionen CANsmall CS08_VPM und CS08_HPM <br />
die Option einer Standardkonfiguration für Anzeigemodule vorhanden.<br />
Dies spart Zeit und minimiert eventuelle Eingabefehler bei der Konfiguration.<br /><br />
<br /><br />
Über den Dialog Grundeinstellungen ist der Zugriff auf die herstellerspezifischen Objekte möglich.<br />
Folgende Parameter können nur einmalig und unwiederruflich auf dem CAN Knoten abgelegt werden.<br />
*Auftragsdaten<br />
**Auftragsnummer<br />
**Blattnummer<br />
**Gerätenummer<br />
**Konfigurationsdatum<br />
*Gerätidentität<br />
**Hardwareversion<br />
**Artikelnummer<br />
**Softwareversion<br />
**Seriennummer<br />
*Netzwerkeinstellungen<br />
**Knotennummer<br />
**Baudrate<br />
**Bauderate Filter<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=CANwizard_CN16&diff=4687
CANwizard CN16
2008-10-21T12:19:57Z
<p>RSbySCHÄFER: </p>
<hr />
<div>=Hersteller=<br />
[[Schaefer GmbH|SCHAEFER GmbH]]<br />
<br />
<br />
<br />
=Profil=<br />
CiA-417<br />
<br />
=Beschreibung=<br />
Das ActiveX-Steuerelement CANwizard_CN16 ist die visualisierte Benutzeroberfläche die auf der Plattform vom CANwizard der [[Böhnke & Partner GmbH |Böhnke + Partner GmbH]] basiert. Diese ermöglicht es, auch ohne CANopen spezifische Kenntnisse die Konfiguration für den [[Tableauknoten CANnode CN16]] der [[SCHAEFER GmbH]] vorzunehmen.<br /> <br />
<br />
Das ActiveX-Steruerelement CANwizard_CN16 ist integriert im CANwizard. Wird über den CANwizard das CAN Netzwerk eingescannt oder ein einzelner CAN Knoten eingelesen, so ermittelt CANwizard über die Vendor-ID und den Poduct-Code welches ActiveX-Steuerelemt zu starten ist.<br /><br />
<br />
Das ActiveX-Steuerelemt CANwizard_CN16 wiederum erkennt über die Objekteinträge um welche Version des CANnode es sich handelt. Diese Version des CANnode erscheint darauf hin auf der visualisierten Benutzeroberfläche. Über diese Benutzeroberfläche ist es möglich die geräte- und herstellerspezifischen Parameter einzugeben.<br />
<br /><br />
<br />
[[Bild:CANwizard_CN16_VST_01.jpg|thumb|Konfiguration v. CN16_VST]]<br />
[[Bild:CANwizard_CN16_VPM_01.jpg|thumb|Konfiguration v. CN16_VPM]]<br />
[[Bild:CANwizard_CN16_HST_01.jpg|thumb|Cofiguration of CN16_HST]]<br />
[[Bild:CANwizard_CN16_HPM_01.jpg|thumb|Cofiguration of CN16_HPM]]<br />
[[Bild:CANwizard_CN16_HPM_02.jpg|thumb|Dialog Grundeinstellungen]]<br />
<br />
Ferner stehen über der Benutzeroberfläche noch die Informationen zur Verfügung:<br />
*Gerätename<br />
*Hardwareversion<br />
*Softwareversion<br />
*Bezeichnung der EDS-Datei <br />
<br /><br />
<br />
Über verschiedene Schaltflächen ist es möglich:<br />
*Konfiguration senden<br />
*Gerät neu einlesen<br />
*Grundeinstellungen bearbeiten<br />
*Konfiguration löschen<br />
*Funktionstest starten<br />
*Druckoption f. Klemmenplan (in Vorbereitung)<br />
<br /><br />
<br />
<br />
Die Konfiguration erfolgt über verschiedene Eingabedialoge:<br />
*Klemmentyp<br />
*Klemmenbeschreibung<br />
*(1)Kodierung<br />
*(1)Leitungsnummer (Adresse)<br />
(1)Nur bei Funktionen die mehr als eine Leitung in Anspruch nehmen<br /><br />
<br /><br />
Jede Klemme wird einzeln konfiguriert<br />
<br />
Des weiteren ist bei der Konfiguration der Versionen CANnode CN16_VPM und CN16_HPM <br />
die Option einer Standardkonfiguration für Anzeigemodule vorhanden.<br />
Dies spart Zeit und minimiert eventuelle Eingabefehler bei der Konfiguration.<br /><br />
<br /><br />
Über den Dialog Grundeinstellungen ist der Zugriff auf die herstellerspezifischen Objekte möglich.<br />
Folgende Parameter können nur einmalig und unwiederruflich auf dem CAN Knoten abgelegt werden.<br />
*Auftragsdaten<br />
**Auftragsnummer<br />
**Blattnummer<br />
**Gerätenummer<br />
**Konfigurationsdatum<br />
*Gerätindentität<br />
**Hardwareversion<br />
**Artikelnummer<br />
**Softwareversion<br />
**Seriennummer<br />
*Netzwerkeinstellungen<br />
**Baudrate Filter<br />
<br />
<br />
[[Kategorie: Produkte CiA-417]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4686
Access Control (RSbySCHAEFER-2009)
2008-10-21T12:04:03Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Beitrag von RSbySCHÄFER<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br /><br />
'''5.2 Neues Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.<br /><br />
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.<br /><br />
<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
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.<br /><br />
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120<small>h</small> bis 613F<small>h</small>).<br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4685
Access Control (RSbySCHAEFER-2009)
2008-10-21T12:02:55Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br /><br />
'''5.2 Neues Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.<br /><br />
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.<br /><br />
<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
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.<br /><br />
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120<small>h</small> bis 613F<small>h</small>).<br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4684
Access Control (RSbySCHAEFER-2009)
2008-10-21T12:02:06Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br /><br />
'''5.2 Neues Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.<br /><br />
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.<br /><br />
<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
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.<br /><br />
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120<small>h</small> bis 613F<small>h</small>).<br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4679
Access Control (RSbySCHAEFER-2009)
2008-10-21T11:56:09Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br /><br />
'''5.2 Neues Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät für Zutrittkontrollsystem<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist eine Definition der Kommunikationsobjekte erforderlich.<br /><br />
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.<br /><br />
<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
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.<br /><br />
Zudem wir unmittelbar auf die Parametergruppen des Virtuellen Gerätes "Input Panel Unit" und "Output Panel Unit" zugegriffen (Input parameter Obj 6120<small>h</small> bis 613F<small>h</small>).<br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4678
Access Control (RSbySCHAEFER-2009)
2008-10-21T11:21:41Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
# Sonstige Funktionen (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br /><br /><br />
<br />
'''5. Sonstige Funktionen<br /><br />
'''5.1 Steuerung des Lesegerätes<br /><br />
<br /><br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0)'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Leser EIN<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Leser AUS<br />
|}<br />
<br />
<br /><br />
'''5.2 Virtuelles Gerät<br /><br />
<br /><br />
'''5.2.1 Neues Virtuelles Gerät<br /><br />
Es ist zu überlegen ob ein Zutrittcontollsystem einem separatem virtuellen Gerät zugeordnet werden soll.<br />
Hierbei ist es eine Definition der Kommunikationsobjekte erforderlich.<br />
<br /><br />
'''5.2.2 Zutrittkontrolle im Input Panel Unit und Output Panel Unit<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4677
Access Control (RSbySCHAEFER-2009)
2008-10-21T11:07:52Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br />
<br />
<br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4676
Access Control (RSbySCHAEFER-2009)
2008-10-21T11:06:02Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input Acceptance mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Acceptance mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Acceptance mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input evacuate mask'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Evacuate mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Evacuate mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br />
<br />
<br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4675
Access Control (RSbySCHAEFER-2009)
2008-10-21T10:11:08Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|LSB<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br />
<br />
<br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4674
Access Control (RSbySCHAEFER-2009)
2008-10-21T10:09:48Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 01<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|Bit 0<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 08<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|Bit 0<br />
|-<br />
|align = "center"|Virtueller Eingang 256<br />
|align = "center"|Virtueller Eingang 255<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 227<br />
|align = "center"|Virtueller Eingang 226<br />
|align = "center"|Virtueller Eingang 225<br />
|}<br />
<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br />
<br />
<br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4673
Access Control (RSbySCHAEFER-2009)
2008-10-21T10:04:26Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 0X<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|Bit 0<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 1<br />
|}<br />
<br />
<br /><br />
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.<br /><br />
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.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Bit7 = 0<br />
|}<br />
<br /><br />
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.<br />
<br /><br />
<br />
<br />
<br />
<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4672
Access Control (RSbySCHAEFER-2009)
2008-10-21T09:48:27Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br /><br />
<br />
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.<br />
Der Zugriff auf diese Objekt ist nur einmal pro Übertragungsvorgang für einen parametrierbaren Zeitraum möglich.<br /><br />
<br />
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). <br /><br />
<br /><br />
Hierzu zwei Möglichkeiten<br />
<br /><br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
'''3.1.1 Freischaltung der Virtuellen Eingänge per Enable Bit:'''<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.1.2 Freischaltung der Virtuellen Eingänge per Freigabemaske:'''<br /><br />
'''Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release control'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
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. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 0X<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|Bit 0<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input acceptance mask'''<br /><br />
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.<br /><br />
: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.<br /><br />
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.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
Die Definition der Wertebereiche ist pallel zum Objekt „Input release control“<br />
Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br />
<br />
<br />
<br /><br />
'''3.3 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input evacuate mask'''<br /><br />
Parallel zum Objekt "Input release control" sollte das Objekt "Input acceptance mask" geführt werden.<br /><br />
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. <br />
Die Definition der Wertebereiche ist parallel zum Objekt „Input release control“.<br />
Dieses Objekt wird in den Nichtflüchtigen Speicher gelegt.<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4671
Access Control (RSbySCHAEFER-2009)
2008-10-21T08:31:13Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
Dieses Objekt ist vorhanden ortogonal zu den Virtuellen Eingangsgruppen 1 – 32. Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br /><br />
Wertedefinition von Subindex 1 bis 8 (Beispiel Subindex 1)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|colspan="7" | Release mask 0X<small>h</small><br />
|-<br />
|align = "center"|MSB<br />
|align = "center"|Bit 30<br />
|align = "center"|Bit n<br />
|align = "center"|Bit n<br />
|align = "center"|Bit 2<br />
|align = "center"|Bit 1<br />
|align = "center"|Bit 0<br />
|-<br />
|align = "center"|Virtueller Eingang 32<br />
|align = "center"|Virtueller Eingang 31<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang n<br />
|align = "center"|Virtueller Eingang 3<br />
|align = "center"|Virtueller Eingang 2<br />
|align = "center"|Virtueller Eingang 1<br />
|}<br />
<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4670
Access Control (RSbySCHAEFER-2009)
2008-10-21T08:22:52Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br /><br />
'''3.2 Neues Objekt: (XX00<small>h</small> bis XX21<small>h</small> Input release'''<br /><br />
<br />
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.<br />
Dieses Objekt wird nicht gespeichert und hat deshalb nach einem Reset keine gültigen Inhalte mehr.<br />
Dieses Objekt ist vorhanden ortogonal zu den Virtuellen Eingangsgruppen 1 – 32. Die Objekte in Lift 2 bis 8 sind mit einem Offset von 800h versehen. <br /><br />
<br /><br />
<br />
Objekt Beschreibung<br /><br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|XX00<small>h</small> to XX21<small>h</small><br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Input release control'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Mandatory<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindex<br />
|align = "left"|00<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Number of entries'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|01<small>h</small> to 08<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|01<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|01<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 1 to 32'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|02<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 33 to 65'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
. <br /><br />
. <br /><br />
. <br /><br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Subindes<br />
|align = "left"|08<small>h</small><br />
|-<br />
|align = "left"|Description<br />
|align = "left"|Objekt '''Release mask of virtual input 225 to 256'''<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Unsigned 32<br />
|-<br />
|align = "left"|Value Range<br />
|align = "left"|0000<small>h</small> to FFFF<small>h</small><br />
|-<br />
|align = "left"|Default value<br />
|align = "left"|0000<small>h</small><br />
|}<br />
<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4669
Access Control (RSbySCHAEFER-2009)
2008-10-21T07:56:45Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
Wertebedefinition<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit1</div><br />
|align="center" | Bit0<br />
<br />
|-<br />
|align = "center" | reserved<br />
|align = "center" | enable<br />
|}<br />
<br />
<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4668
Access Control (RSbySCHAEFER-2009)
2008-10-21T07:45:46Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Freischaltung der Virtuellen Eingänge:'''<br />
<br />
<br /><br />
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.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle enable Bits einzeln setzen bzw. löschen.<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|Byte 3<br />
|align = "center"|Byte 2<br />
|align = "center"|Byte 1<br />
|align = "center"|Byte 0<br />
<br />
|-<br />
|align = "center" colspan="2" | reserved(FFFF<small>h</small>)<br />
|align = "center"|Error code<br />
|align = "center"|Enable<br />
|}<br />
<br /><br />
<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4667
Access Control (RSbySCHAEFER-2009)
2008-10-21T07:29:17Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
: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.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::Dauer der Quittierung<br /><br />
::Verhalten der Quittierung<br /><br />
<br /><br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4666
Access Control (RSbySCHAEFER-2009)
2008-10-21T07:15:38Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br />
<br /><br />
1. Eintrag für Release IN Time<br /><br />
:Dieser Eintrag definiert die maximale Dauer der Freischaltung virtueller Eingänge.<br />
Dieses Zeitfenster startet unmittelbar nach eintreffen eines Upload Acknowledge mit Data 80h und endet nach der parametrierten Zeit. Definition in ms.<br />
<br /><br />
2. Eintrag für Release OUT Time<br /><br />
:Ortogonal zu Release IN Time ist ein Objekt erforderlich in dem vereinbart wir, wie sich die Quittierung des freigeschalteten Inputs verhalten soll.<br /><br />
::<br />
<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4665
Access Control (RSbySCHAEFER-2009)
2008-10-21T07:08:41Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
2.1.1 ('''ACC Protocol Control''') Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br /><br /><br />
2.1.2 ('''ACC Function Control''') Dieses Objekt steuert die Zeitfenster der Ein-/Ausgänge<br /><br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Benutzer:RSbySCH%C3%84FER&diff=4664
Benutzer:RSbySCHÄFER
2008-10-21T06:44:47Z
<p>RSbySCHÄFER: Die Seite wurde neu angelegt: Hallo, RS sind die Initialien für Robert Schwer und SCHÄFER ist SCHAEFER.<br /> Ich bearbeite die WIKI CANopen Seite für die Fa. SCHAEFER GmbH.<br /> <br /> Meine ko...</p>
<hr />
<div>Hallo, RS sind die Initialien für Robert Schwer und SCHÄFER ist SCHAEFER.<br /><br />
Ich bearbeite die WIKI CANopen Seite für die Fa. SCHAEFER GmbH.<br /><br />
<br /><br />
Meine komplette Anschrift lautet<br /><br />
<br /><br />
'''Robert Schwer'''<br /><br />
SCHAEFER GmbH<br /><br />
Winterlinger Straße 4<br /><br />
72488 Sigmaringen<br /><br />
Germany<br /><br />
<br /><br />
Telefon +49 7571 722-69<br /><br />
Telefax +49 7571 722-97<br /><br />
r.schwer@ws-schaefer.de<br /><br />
<br /><br />
Hauptsitz: SCHAEFER GmbH , Winterlinger Str. 4 , D-72488 Sigmaringen <br /><br />
Erfüllungsort und Gerichtsstand Sigmaringen , HRB 320 Sigmaringen<br /><br />
Geschäftsführer: Michael Gubisch, MBA, Dipl.-Ing.<br /></div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4663
Access Control (RSbySCHAEFER-2009)
2008-10-20T13:37:46Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br /><br />
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. <br />
Erfolgt das Telegramm Upload Acknowledge, so wird die Zugriffszeit auf das Objekt beendet.<br />
<br /><br />
<br />
Dieses Objekt steuert die Protokolllaufzeiten.<br />
<br /><br />
1. Eintrag für Request Timeout<br /><br />
: 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.<br />
<br /><br />
2. Eintrag für Confirm Timeout<br />
: 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.<br />
<br /><br />
3. Eintrag für Protocol Cycle Timeout<br />
: 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.<br />
<br /><br />
4. Eintrag für Data Send Max Time<br />
: 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.<br />
<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4662
Access Control (RSbySCHAEFER-2009)
2008-10-20T13:04:48Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3021h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag RFID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type<br />
|align = "left"|Undsigned 40<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3041h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag Tastatur'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|30FFh<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''reserviert'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|n.d.<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4661
Access Control (RSbySCHAEFER-2009)
2008-10-20T12:52:22Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
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).<br />
<br /><br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
3001h,<br /><br />
3002h,<br /><br />
3003h,<br /><br />
<br /><br />
3021h,<br /><br />
<br /><br />
30FFh,<br /><br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4660
Access Control (RSbySCHAEFER-2009)
2008-10-20T12:45:45Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
3001h,<br /><br />
3002h,<br /><br />
3003h,<br /><br />
<br /><br />
3021h,<br /><br />
<br /><br />
30FFh,<br /><br />
erforderlich.<br /><br />
<br />
Die Auswerteeinheit kann mit dem Wert aus dem Subfunction des "Access Control Upload Request" <br />
das betreffende Objekt ermitteln und die Daten (Zugangscode) per SDO Zugriff auslesen.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4659
Access Control (RSbySCHAEFER-2009)
2008-10-20T12:41:26Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|Index<br />
|align = "left"|3000h<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt '''Card Tag ID'''<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für jeden Lesertyp ein Objekt bereitgestellt.<br /><br />
D.h. Es ist erforderlich, bei 255 definierbaren Lesertypen auch 255 Objekte für <br />
Daten (Zugangscode) zu definieren. Die Objekte enthalten dann im niederwertigen Bytes <br />
des Index die Nummer des Lesertyps.<br /> <br />
Hierbei wären die Objekte z.Bsp.<br /><br />
3001h,<br /><br />
3002h,<br /><br />
3003h,<br /><br />
<br /><br />
3021h,<br /><br />
<br /><br />
30FFh,<br /><br />
erforderlich.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4658
Access Control (RSbySCHAEFER-2009)
2008-10-20T12:33:03Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt "Card Tag ID" für alle Lesertypen''<br /><br /><br />
<br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp identifiziert.<br />
Eine Verifizierung aus dem "Access Control Upload Request" und dem Objekt "Card Tag ID" Daten (Zugangscode) kann hierbei noch vorgenommen werden.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br /><br />
<br />
{|border="1" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "left"|'''Index'''<br />
|align = "left"|'''3000h'''<br />
<br />
|-<br />
|align = "left"|Name<br />
|align = "left"|Objekt Card Tag ID<br />
<br />
|-<br />
|align = "left"|Objekt Code<br />
|align = "left"|Array<br />
|-<br />
|align = "left"|Data Type of entry<br />
|align = "left"|Domain<br />
|-<br />
|align = "left"|Category<br />
|align = "left"|Optional<br />
|}<br />
<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br /><br />
<br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4657
Access Control (RSbySCHAEFER-2009)
2008-10-20T12:14:34Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
''Vorschlag 1 Ein Objekt für alle Lesertypen''<br /><br /><br />
Für die Daten (Zugangscode) wird für alle Lesertypen nur ein Objekt bereitgestellt.<br /><br />
D.h. Die aktuell gültigen Zugangsdaten können immer aus dem gleichen Objekt ausgelesen werden, <br />
unabhängig vom Lesertyp. Die Objekteinträge sind babei mit variabler Größe definiert.<br />
Zusätzlich kann den Daten noch ein weiterer Parameter vorangestellt werden, der z.Bsp. den <br />
Lestertyp beinhaltet.<br /><br />
Wenn die Daten (Zugangscode) im Subindes 01h hinterlegt werden, ist es möglich in den weiteren <br />
Subindizes noch weitere Information zu hinterlegen.<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br /><br />
''Vorschlag 2 Ein Objekt für jeden Lesertyp''<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4656
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:41:57Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
<br /><br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0x00<br />
|align = "center"|Keine/ unbekannte Karte<br />
<br />
|-<br />
|align = "center"|0x01<br />
|align = "center"|EM4001/4002/4101<br />
|-<br />
|align = "center"|0x02<br />
|align = "center"|EM V4050<br />
|-<br />
|align = "center"|...<br />
|align = "center"|Fingerabdruck<br />
|}<br />
<br />
<br />
<br /><br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4655
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:35:00Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br /><br />
Wertedefinition von Data (Byte 5)<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br /><br />
Definition des Basic Type:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|000b<br />
|align = "center"|reserved<br />
<br />
|-<br />
|align = "center"|001b<br />
|align = "center"|RFID<br />
|-<br />
|align = "center"|010b<br />
|align = "center"|Tastatur<br />
|-<br />
|align = "center"|011b<br />
|align = "center"|Fingerabdruck<br />
|-<br />
|align = "center"|100b<br />
|align = "center"|Stimmerkennung<br />
|-<br />
|align = "center"|101b<br />
|align = "center"|Magnet-Karte<br />
<br />
|-<br />
|align = "center"|...<br />
|align = "center"|reserved<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4654
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:27:42Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
Wertedefinition von Data (Byte 5)<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|<div align="left">Bit7</div><div align="right">Bit5</div><br />
|<div align="left">Bit4</div><div align="right">Bit0</div><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4653
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:18:41Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|align = "left"|Bit7 Bit5<br />
|align = "left"|Bit4 Bit0<br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4652
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:08:06Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|align = "left"|Bit7 <sp /> Bit5<br />
|align = "left"|Bit4 <sp /> Bit0<br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4651
Access Control (RSbySCHAEFER-2009)
2008-10-20T11:02:50Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br /><br />
Zu diesem Zeitpunkt liegen im Objekt "Card Tag ID" die Daten in vordefinierbaren Kodierungen bereit.<br />
<br /><br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|colspan="2" | Type:<br />
<br />
|-<br />
|align = "left"|Bit7 <sp /> Bit5<br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
|}<br />
<br />
<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4650
Access Control (RSbySCHAEFER-2009)
2008-10-20T10:47:50Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|Value of Data<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="50%"<br />
|align = "center"|'''Value (Bit 0) of Data'''<br />
|align = "center"|'''Description'''<br />
<br />
|-<br />
|align = "center"|0<br />
|align = "center"|Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
|-<br />
|align = "center"|1<br />
|align = "center"|Lesegerät hat gültige Daten von der Karte gelesen<br />
|}<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="2" | Type:<br />
<br />
|-<br />
| <center>Bit7 Bit5</center><br />
| <center>Bit4 Bit0</center><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
<br />
|}<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4649
Access Control (RSbySCHAEFER-2009)
2008-10-20T10:43:04Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|0x01<br />
<br />
|}<br />
<br />
<br /><br />
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.<br />
<br />
<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|0x00<br />
<br />
|}<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="2" | Type:<br />
<br />
|-<br />
| <center>Bit7 Bit5</center><br />
| <center>Bit4 Bit0</center><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
<br />
|}<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER
https://de.canopen-lift.org/index.php?title=Access_Control_(RSbySCHAEFER-2009)&diff=4648
Access Control (RSbySCHAEFER-2009)
2008-10-20T10:36:37Z
<p>RSbySCHÄFER: </p>
<hr />
<div>==Integration der Zutrittskontrolle in die CiA-417==<br />
<br />
Auch als PDF:<br />
[[media:Access Control.pdf|Access Control]]<br />
<br />
<br />
Ein Vorgang der Zutrittskontrolle besteht aus 3 bzw. 4 Schritten:<br />
<br />
<br />
# Lesegerät sendet Upload Request (PDO)<br />
# Auswerteeinheit liest eigentliche Zugangsdaten vom Lesegerät aus (SDO)<br />
# Optional: Auswerteeinheit schaltet im Lesegerät entsprechende Inputs frei (SDO)<br />
# Auswerteeinheit sendet Upload Acknowledgement (PDO)<br />
<br /><br />
'''1. Upload Request Telegramm'''<br />
<br />
Lesegerät erkennt Karte und sendet:<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|0x01<br />
<br />
|}<br />
<br />
<br /><br />
Karte nicht mehr im Lesebereich oder Upload Timeout<br />
<br />
<br />
<br />
{|border="2" cellspacing="1" cellpadding="0" width="100%"<br />
|align = "center"|'''Byte 0'''<br />
|align = "center"|'''Byte 1'''<br />
|align = "center"|'''Byte 2'''<br />
|align = "center"|'''Byte 3'''<br />
|align = "center"|'''Byte 4'''<br />
|align = "center"|'''Byte 5'''<br />
<br />
|-<br />
|align = "center"|Basic function<br />
|align = "center"|Sub function<br />
|align = "center"|Lift<br />
|align = "center"|Panel<br />
|align = "center"|Door<br />
|align = "center"|Data<br />
<br />
|-<br />
|align = "center"|0x0F<br />
|align = "center"|Type of Reader<br />
|align = "center"|Value of Lift<br />
|align = "center"|Value of Panel<br />
|align = "center"|Value of Door <br />
|align = "center"|0x00<br />
<br />
|}<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="2" | Type:<br />
<br />
|-<br />
| <center>Bit7 Bit5</center><br />
| <center>Bit4 Bit0</center><br />
<br />
|-<br />
| <center>Basic Type</center><br />
| <center>Sub Type</center><br />
<br />
|}<br />
Basic Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>000b</center><br />
| <center>reserviert</center><br />
<br />
|-<br />
| <center>001b</center><br />
| <center>RFID</center><br />
<br />
|-<br />
| <center>010b</center><br />
| <center>Tastatur</center><br />
<br />
|-<br />
| <center>011b</center><br />
| <center>Fingerabdruck (?)</center><br />
<br />
|-<br />
| <center>100b</center><br />
| <center>Stimmerkennung (?)</center><br />
<br />
|-<br />
| <center>101b</center><br />
| <center>Magnet-Karte (?)</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>reserviert</center><br />
<br />
|}<br />
<br />
Wenn Basic Type = 001b (RFID)<br />
<br />
Sub Type:<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0x00</center><br />
| <center>Keine/ unbekannte Karte</center><br />
<br />
|-<br />
| <center>0x01</center><br />
| <center>EM4001/4002/4101</center><br />
<br />
|-<br />
| <center>0x02</center><br />
| <center>EM V4050</center><br />
<br />
|-<br />
| <center>...</center><br />
| <center>...</center><br />
<br />
|}<br />
<br />
'''2. Objekte für die Zugangsdaten'''<br />
<br />
<br />
Wenn Type = 0x21 (Basic: 001 + Sub: 00001 = 00100001b = 0x21)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx01<br />
<br />
|-<br />
| Name<br />
| Card Data: EM4001, EM4002, EM4101 (Sub Type1)<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned40 (5 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
Wenn Type = 0x22 (Basic: 001 + Sub: 00010 = 00100010b = 0x22)<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx02<br />
<br />
|-<br />
| Name<br />
| Card Data: EM V4050 Sokymat Titan (Sub Type2)<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32 (4 Byte)<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Blöcke<br />
<br />
|-<br />
| Wertebereich<br />
| 32<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Block 0<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 32<br />
<br />
|-<br />
| Beschreibung<br />
| Block 31<br />
<br />
|}<br />
<br />
Sonst. Typen = reserviert<br />
<br />
<br />
'''2.1 Weitere Objekte'''<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xx00<br />
<br />
|-<br />
| Name<br />
| Typen Organisation<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned8<br />
<br />
|-<br />
| Category<br />
| Mandatory<br />
<br />
|}<br />
<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl<br />
<br />
|-<br />
| Wertebereich<br />
| 4 bis 255<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 01<br />
<br />
|-<br />
| Beschreibung<br />
| Upload Timeout<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 02<br />
<br />
|-<br />
| Beschreibung<br />
| Current detected Type<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 03<br />
<br />
|-<br />
| Beschreibung<br />
| Scan Types<br />
<br />
|}<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 04<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 255<br />
<br />
|-<br />
| Beschreibung<br />
| Supportet Types<br />
<br />
|}<br />
<br />
'''3. Inputs frei schalten'''<br />
<br />
<br />
Es sollte eine differenzierte Zugangskontrolle möglich sein. Nicht alle User dürfen, z.B. in der Kabine, in alle Etagen fahren. Hierzu zwei Möglichkeiten:<br />
<br />
<br />
'''3.1 Zusätzliches Bit: release'''<br />
<br />
<br />
Im Objekt Input Parameter 1 (6120h – 613F) wird ein zusätzliches Bit definiert. Hier kann die Auswerteeinheit eintragen, ob der virtuelle Input freigeschaltet wird oder nicht.<br />
<br />
Nachteil: Die Auswerteeinheit muss alle release Bits einzeln setzen bzw. löschen.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| colspan="3" | <center>Byte0</center><br />
<br />
|-<br />
| <center>Bit7 Bit2</center><br />
| <center>Bit1</center><br />
| <center>Bit0</center><br />
<br />
|-<br />
| <center>reserved</center><br />
| <center>release</center><br />
| <center>enable</center><br />
<br />
|}<br />
'''3.2 Neues Objekt: Input release'''<br />
<br />
<br />
Ein Subindex (32 Bit) beschreibt die release Bits von 32 virtuellen Inputs. Vorteil: 32 Inputs können mit einem SDO freigeschaltet werden.<br />
<br />
<br />
Objekt Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Input release<br />
<br />
|-<br />
| Object Code<br />
| Array<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 32<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
Eintrag Beschreibung<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 00<br />
<br />
|-<br />
| Beschreibung<br />
| Anzahl der Sub indezes<br />
<br />
|-<br />
| Wertebereich<br />
| 1 - 8<br />
<br />
|-<br />
| Voreinstellwert<br />
| Nein<br />
<br />
|}<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 1<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 1 - 32<br />
<br />
|}<br />
bis<br />
<br />
<br />
{| class="prettytable"<br />
| Sub-Index<br />
| 8<br />
<br />
|-<br />
| Beschreibung<br />
| Release Bits der virtuellen Inputs 225 - 256<br />
<br />
|}<br />
<br />
'''4. Upload Acknowledgement'''<br />
<br />
<br />
'''4.1 Auswerteeinheit sendet positive Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>reserved</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 1</center><br />
<br />
|}<br />
Hiermit werden die enable Bits freigegeben und damit die entsprechenden Inputs freigeschaltet. Nach Ablauf einer definierten Zeit (s. Objekt: ReleaseTime) werden die enable Bits wieder gesperrt.<br />
<br />
<br />
'''4.2 Auswerteeinheit sendet negative Bestätigung'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Byte 0'''</center><br />
| <center>'''Byte 1'''</center><br />
| <center>'''Byte 2'''</center><br />
| <center>'''Byte 3'''</center><br />
| <center>'''Byte 4'''</center><br />
| <center>'''Byte 5'''</center><br />
<br />
|-<br />
| <center>Basic Fct</center><br />
| <center>Sub Fct</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Data</center><br />
<br />
|-<br />
| <center>0x0F</center><br />
| <center>Error Code</center><br />
| <center>Lift</center><br />
| <center>Floor</center><br />
| <center>Door</center><br />
| <center>Bit7 = 0</center><br />
<br />
|}<br />
Mit dem Data Byte hat die Auswerteeinheit zusätzlich die Möglichkeit die Lesgeräte ein- oder auszuschalten.<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| <center>'''Value (Bit 0)'''</center><br />
| <center>'''Description'''</center><br />
<br />
|-<br />
| <center>0</center><br />
| <center>Leser Aus</center><br />
<br />
|-<br />
| <center>1</center><br />
| <center>Leser Ein</center><br />
<br />
|}<br />
'''4.3 Weitere benötigte Objekte'''<br />
<br />
<br />
<br />
{| class="prettytable"<br />
| Index<br />
| xxxx<br />
<br />
|-<br />
| Name<br />
| Release Time<br />
<br />
|-<br />
| Object Code<br />
| Var<br />
<br />
|-<br />
| Data Type<br />
| Unsigned 8<br />
<br />
|-<br />
| Category<br />
| Optional<br />
<br />
|}<br />
<br />
[[Kategorie:Erweiterungen des Profils]]</div>
RSbySCHÄFER