You are on page 1of 22

ARCODE / ARL500 CANbus Module Board Version : 17.05.

2016

ARCODE / ARL500 CANBUS MODULE BOARD REFERENCE MANUAL

Serial I/O mode UART mode transfer data 9 bits long

Data transfer direction LSB first

Stop bit length 1 stop bit

Parity bit Parity disabled

Baud rate 9600 bps

Transmit Timing:

Modül: ARCODE / ARL500 CANbus modül kartı

Host: LOP(kat kaseti veya sadece gösterge) / COP(kabin kaseti veya kabin kaseti + gösterge)
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Data alış-verişinin nasıl gerçekleştirildiği örnek C kodunda (UART kullanılarak) ve bu dökümanda anlatılmaktadır:

- Yukarıdaki şekilde de gösterildiği gibi veri (Start bit + D0…D8 + Stop bit) en hızlı 2 ms’de bir gönderilmelidir. İletim hızının alt bir sınırı yoktur
fakat asansörü kullananlar için çağrı butonlarının basılıp basılmaması durumuna hızlı cevap verilebilmesi için verilerin hızlı bir şekilde iletilmesi
daha uygundur.

- Modül ile Host arasındaki bilgi alış-verişi paket(mesaj boyutu, mesaj kodu, mesaj data dizisi, checksum) ile sağlanmaktadır. Paketin ilk baytı
gönderilmeden önce mesaj boyutu, mesaj kodu ve mesaj data dizisindeki parametrelerin o anki değerleri girilir ve checksum hesaplanır. Eğer
gönderilecek veri paket başıysa 9.bit(D8) 1 yapılmalıdır.

- Host hangi şekilde kullanılacaksa sadece onunla ilgili paketleri göndermelidir. Yani, kat kaseti olarak kullanılacaksa LOP paketleri, kabin kaseti
veya kabin kaseti + gösterge olarak kullanılacaksa COP paketleri göndermelidir. “Sadece gösterge” olarak kullanılacaksa herhangi bir paket
gönderimi yapmamalıdır. Aşağıdaki tablo iletişimde kullanılacak paketleri göstermektedir:

Packet Names Data Transfer Direction Message Size (bytes) Message Id


Packet-1 (LOP packet) LOP Host -> Module 5 0x0A
Packet-2 (LOP packet) Module -> LOP Host 15 0x0B
Packet-3 (COP packet) COP Host -> Module 16 0x0C
Packet-4 (COP packet) Module -> COP Host 24 0x0D
Packet-5 (Common packet) Module -> Common 10 0x0E
Packet-6 (Common packet) Module -> Common 10 0x0F
Packet-7 (ARL500 LOP Config packet) LOP Host -> Module 5 0x10

- İhtiyaç olması durumunda veya yeni özellikler eklenmesi halinde paketlerdeki boş alanlar kullanılacak veya yeterli alan yoksa yeni paketler
eklenecektir.

- Eğer gelen verinin 9.biti(D8) 1 ise, bu bir önceki paketin gönderiminin tamamlandığı ve yeni paketin ilk baytının geldiği manasına gelir.
Tamamlanan bir önceki paketin mesaj boyutu gelen bayt sayısı ile eşdeğer değilse veya mesaj kodu yukarıdaki tabloda gösterilen değerlerden
biri değilse veya hesaplanan checksum değeri paketin son baytındaki değer ile eşit değilse o paket dikkate alınmamalıdır.
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

- Modül ile Host arasındaki bilgi alış-verişi sürekli olmalıdır. Modül 5 saniye Host’tan mesaj alamazsa “sadece gösterge” modunda çalışmaya
devam eder. Yani, ana kontrolcüden asansör durum vs. bilgilerini almaya devam eder fakat ana kontrolcüye herhangi bir buton durumu vs.
göndermez.

- Modül hangi sisteme bağlandığını otomatik olarak kontrol eder. ARL500 sistemine bağlanabilmesi için AREM el terminali vasıtasıyla yazılım
güncelleme yapılmalıdır (16.05.2016 ve sonraki versiyonlar geçerlidir).

- Host kabin kaseti olarak kullanılacaksa, kabinde hangi kapı(lar) ile ilgili olduğunu belirten copDoorSide parametresi aşağıdaki durumlara göre
girilmelidir:

0 : Yok
1 : Kapı-A
2 : Kapı-B
3 : Kapı-AB

- Programlanabilir giriş parametrelerinin ARCODE ve ARL500 menüsündeki karşılıkları:

copDoorSide = 1 (Kapı-A) copDoorSide = 2 (Kapı-B)


ARCODE ARL500 ARCODE ARL500
cop1_pi1 CPC-1A kartı PI1 girişi KABKON-A1 Giriş (PI31-A1) CPC-1B kartı PI1 girişi KABKON-B1 Giriş (PI31-B1)
cop1_pi2 CPC-1A kartı PI2 girişi KABKON-A1 Giriş (PI32-A1) CPC-1B kartı PI2 girişi KABKON-B1 Giriş (PI32-B1)
cop1_pi3 CPC-1A kartı PI3 girişi KABKON-A1 Giriş (PI33-A1) CPC-1B kartı PI3 girişi KABKON-B1 Giriş (PI33-B1)
cop1_pi4 CPC-1A kartı PI4 girişi VATMAN CPC-1B kartı PI4 girişi VATMAN
cop2_pi1 CPC-2A kartı PI1 girişi KABKON-A2 Giriş (PI31-A2) CPC-2B kartı PI1 girişi KABKON-B2 Giriş (PI31-B2)
cop2_pi2 CPC-2A kartı PI2 girişi KABKON-A2 Giriş (PI32-A2) CPC-2B kartı PI2 girişi KABKON-B2 Giriş (PI32-B2)
cop2_pi3 CPC-2A kartı PI3 girişi KABKON-A2 Giriş (PI33-A2) CPC-2B kartı PI3 girişi KABKON-B2 Giriş (PI33-B2)
cop2_pi4 CPC-2A kartı PI4 girişi Kullanılmıyor CPC-2B kartı PI4 girişi Kullanılmıyor
cop3_pi1 CPC-3A kartı PI1 girişi Kullanılmıyor CPC-3B kartı PI1 girişi Kullanılmıyor
cop3_pi2 CPC-3A kartı PI2 girişi Kullanılmıyor CPC-3B kartı PI2 girişi Kullanılmıyor
cop3_pi3 CPC-3A kartı PI3 girişi Kullanılmıyor CPC-3B kartı PI3 girişi Kullanılmıyor
cop3_pi4 CPC-3A kartı PI4 girişi Kullanılmıyor CPC-3B kartı PI4 girişi Kullanılmıyor
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

- Programlanabilir çıkış parametrelerinin ARCODE ve ARL500 menüsündeki karşılıkları:

copDoorSide = 1 (Kapı-A) copDoorSide = 2 (Kapı-B)


ARCODE ARL500 ARCODE ARL500
cop1_po1 CPC-1A kartı PO1 çıkışı Kullanılmıyor CPC-1B kartı PO1 çıkışı Kullanılmıyor
cop1_pt1 CPC-1A kartı PT1 çıkışı Kullanılmıyor CPC-1B kartı PT1 çıkışı Kullanılmıyor
cop2_po1 CPC-2A kartı PO1 çıkışı Kullanılmıyor CPC-2B kartı PO1 çıkışı Kullanılmıyor
cop2_pt1 CPC-2A kartı PT1 çıkışı Kullanılmıyor CPC-2B kartı PT1 çıkışı Kullanılmıyor
cop3_po1 CPC-3A kartı PO1 çıkışı Kullanılmıyor CPC-3B kartı PO1 çıkışı Kullanılmıyor
cop3_pt1 CPC-3A kartı PT1 çıkışı Kullanılmıyor CPC-3B kartı PT1 çıkışı Kullanılmıyor
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

LOP(Kat Kaseti) Paketleri:

Paket-1:

typedef unsigned char uint8_t;

#define LOP_HOST_TO_MODULE_PACKET_SIZE 5
#define LOP_HOST_TO_MODULE_PACKET_ID 0x0A

union LOP_Host_To_Module {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[LOP_HOST_TO_MODULE_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[LOP_HOST_TO_MODULE_PACKET_SIZE];
};

struct ModuleRcvFromLopHost {
uint8_t upCallButton:1;
uint8_t downCallButton:1;
uint8_t pi1:1;
uint8_t pi2:1;
uint8_t reserved1:4;

uint8_t reserved2;
};

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 0 0 1 0 1
msgId 0 0 0 0 0 1 0 1 0
msgData[0] 0 X X X X pi2 pi1 downCallButton upCallButton
msgData[1] 0 X X X X X X X X
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Paket-2:

typedef unsigned char uint8_t;

#define MODULE_TO_LOP_HOST_PACKET_SIZE 15
#define MODULE_TO_LOP_HOST_PACKET_ID 0x0B

union Module_To_LOP_Host {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[MODULE_TO_LOP_HOST_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[MODULE_TO_LOP_HOST_PACKET_SIZE];
};

struct ModuleSendToLopHost {
uint8_t currentFloorNo;
uint8_t leftCharacter;
uint8_t rightCharacter;

uint8_t upCallLed:1;
uint8_t downCallLed:1;
uint8_t po1:1;
uint8_t po2:1;
uint8_t reserved1:1;
uint8_t earthquake:1;
uint8_t carLight:1;
uint8_t sleepModeActive:1;

uint8_t floorChimeType:3;
uint8_t enabledLopFloorChime:1;
uint8_t playLopFloorChime:1;
uint8_t overLoad:1;
uint8_t enabledButtonSound:1;
uint8_t displayScrollDirection:1;

uint8_t displayScrollSpeed:3;
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

uint8_t outOfService:1;
uint8_t travelUpDirection:1;
uint8_t travelDownDirection:1;
uint8_t collectionUpDirection:1;
uint8_t collectionDownDirection:1;

uint8_t configFloorNo;
uint8_t infoMessageNo;

uint8_t flgLopLearningMode:1;
uint8_t doorA_AvailableAtCurrentFloor:1;
uint8_t doorB_AvailableAtCurrentFloor:1;
uint8_t doorA_IsOpening:1;
uint8_t doorB_IsOpening:1;
uint8_t doorA_IsClosing:1;
uint8_t doorB_IsClosing:1;
uint8_t flgCanbusConnectionOK:1;

uint8_t errorCode;

uint8_t reserved3;
uint8_t reserved4;
};
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 0 1 1 1 1
msgId 0 0 0 0 0 1 0 1 1
msgData[0] 0 currentFloorNo
msgData[1] 0 leftCharacter
msgData[2] 0 rightCharacter
msgData[3] 0 sleepModeAct carLight earthquake X po2 po1 downCallLed upCallLed
msgData[4] 0 dispScrollDir enButtonSound overLoad playLopFloorCh enLopFloorChime floorChimeType
msgData[5] 0 collDownDir collUpDirection travelDownDir travelUpDir outOfService displayScrollSpeed
msgData[6] 0 configFloorNo
msgData[7] 0 infoMessageNo
msgData[8] 0 flgCanbusOK doorB_IsClosing doorA_IsClosing doorB_IsOpening doorA_IsOpening doorB_Available doorA_Available flgLopLrnMode
msgData[9] 0 errorCode
msgData[10] 0 X X X X X X X X
msgData[11] 0 X X X X X X X X
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

COP(Kabin Kaseti) Paketleri:

Paket-3:

typedef unsigned char uint8_t;


typedef unsigned long int uint32_t;
typedef unsigned long long uint64_t;

#define COP_HOST_TO_MODULE_PACKET_SIZE 16
#define COP_HOST_TO_MODULE_PACKET_ID 0x0C

union COP_Host_To_Module {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[COP_HOST_TO_MODULE_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[COP_HOST_TO_MODULE_PACKET_SIZE];
};

struct ModuleRcvFromCopHost {
uint64_t callButtons;

uint8_t copDoorSide:2;
uint8_t openDoorButton:1;
uint8_t closeDoorButton:1;
uint8_t fanButton:1;
uint8_t reserved1:3;

uint8_t cop1_pi1:1;
uint8_t cop1_pi2:1;
uint8_t cop1_pi3:1;
uint8_t cop1_pi4:1;
uint8_t reserved2:4;

uint8_t cop2_pi1:1;
uint8_t cop2_pi2:1;
uint8_t cop2_pi3:1;
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

uint8_t cop2_pi4:1;
uint8_t reserved3:4;

uint8_t cop3_pi1:1;
uint8_t cop3_pi2:1;
uint8_t cop3_pi3:1;
uint8_t cop3_pi4:1;
uint8_t reserved4:4;

uint8_t reserved5;
};

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 1 0 0 0 0
msgId 0 0 0 0 0 1 1 0 0
msgData[0] 0 callButtons(bit7…bit0)
msgData[1] 0 callButtons(bit15…bit8)
msgData[2] 0 callButtons(bit23…bit16)
msgData[3] 0 callButtons(bit31…bit24)
msgData[4] 0 callButtons(bit39…bit32)
msgData[5] 0 callButtons(bit47…bit40)
msgData[6] 0 callButtons(bit55…bit48)
msgData[7] 0 callButtons(bit63…bit56)
msgData[8] 0 X X X fanButton closeDoorButton openDoorButton copDoorSide
msgData[9] 0 X X X X cop1_pi4 cop1_pi3 cop1_pi2 cop1_pi1
msgData[10] 0 X X X X cop2_pi4 cop2_pi3 cop2_pi2 cop2_pi1
msgData[11] 0 X X X X cop3_pi4 cop3_pi3 cop3_pi2 cop3_pi1
msgData[12] 0 X X X X X X X X
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Paket-4:

typedef unsigned char uint8_t;


typedef unsigned long int uint32_t;
typedef unsigned long long uint64_t;

#define MODULE_TO_COP_HOST_PACKET_SIZE 24
#define MODULE_TO_COP_HOST_PACKET_ID 0x0D

union Module_To_COP_Host {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[MODULE_TO_COP_HOST_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[MODULE_TO_COP_HOST_PACKET_SIZE];
};

struct ModuleSendToCopHost {
uint64_t callButtonLeds;

uint8_t cop1_po1:1;
uint8_t cop1_pt1:1;
uint8_t cop2_po1:1;
uint8_t cop2_pt1:1;
uint8_t cop3_po1:1;
uint8_t cop3_pt1:1;
uint8_t reserved1:2;

uint8_t closeDoorButtonLedA:1;
uint8_t closeDoorButtonLedB:1;
uint8_t fanButtonLed:1;
uint8_t reserved2:2;
uint8_t earthquake:1;
uint8_t carLight:1;
uint8_t sleepModeActive:1;

uint8_t currentFloorNo;
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

uint8_t leftCharacter;
uint8_t rightCharacter;

uint8_t floorChimeType:3;
uint8_t enabledCopFloorChime:1;
uint8_t playCopFloorChime:1;
uint8_t enabledOverLoadSound:1;
uint8_t overLoad:1;
uint8_t outOfService:1;

uint8_t displayScrollDirection:1;
uint8_t displayScrollSpeed:3;
uint8_t enabledClearSecondPress:1;
uint8_t enabledButtonSound:1;
uint8_t flgLopLearningMode:1;
uint8_t flgCanbusConnectionOK:1;

uint8_t travelUpDirection:1;
uint8_t travelDownDirection:1;
uint8_t collectionUpDirection:1;
uint8_t collectionDownDirection:1;
uint8_t reserved4:4;

uint8_t infoMessageNo;

uint8_t doorA_AvailableAtCurrentFloor:1;
uint8_t doorB_AvailableAtCurrentFloor:1;
uint8_t doorA_IsOpening:1;
uint8_t doorB_IsOpening:1;
uint8_t doorA_IsClosing:1;
uint8_t doorB_IsClosing:1;
uint8_t reserved5:2;

uint8_t errorCode;

uint8_t numberOfFloors;

uint8_t reserved6;
};
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 1 1 0 0 0
msgId 0 0 0 0 0 1 1 0 1
msgData[0] 0 callButtonLeds(bit7…bit0)
msgData[1] 0 callButtonLeds(bit15…bit8)
msgData[2] 0 callButtonLeds(bit23…bit16)
msgData[3] 0 callButtonLeds(bit31…bit24)
msgData[4] 0 callButtonLeds(bit39…bit32)
msgData[5] 0 callButtonLeds(bit47…bit40)
msgData[6] 0 callButtonLeds(bit55…bit48)
msgData[7] 0 callButtonLeds(bit63…bit56)
msgData[8] 0 X X cop3_pt1 cop3_po1 cop2_pt1 cop2_po1 cop1_pt1 cop1_po1
msgData[9] 0 sleepModeAct carLight earthquake X X fanButtonLed closeDrBtnLedB closeDrBtnLedA
msgData[10] 0 currentFloorNo
msgData[11] 0 leftCharacter
msgData[12] 0 rightCharacter
msgData[13] 0 outOfService overLoad enOverLoadSnd playCopFloorCh enCopFloorCh floorChimeType
msgData[14] 0 flgCanbusOK flgLopLrnMode enButtonSound enClrS2ndPress displayScrollSpeed dispScrollDir
msgData[15] 0 X X X X collDownDir collUpDirection travelDownDir travelUpDir
msgData[16] 0 infoMessageNo
msgData[17] 0 X X doorB_IsClosing doorA_IsClosing doorB_IsOpening doorA_IsOpening doorB_Available doorA_Available
msgData[18] 0 errorCode
msgData[19] 0 numberOfFloors
msgData[20] 0 X X X X X X X X
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Ortak Paketler:

Paket-5: Göstergelerde gösterilecek bilgi/uyarı mesajlarının 5’er bayt halinde gönderildiği paket

String Id String Name


0 Out-of-service message
1 Overloaded message
2 Maintenance message
3 Fire evacuation message
4 Backup power evacuation message
5 Startup message
6 Door open error message
7 Idle message
8 Message to display on LOPs in priority service
9 Message to display on COP in priority service
10…14 Undefined

typedef unsigned char uint8_t;

#define MODULE_TO_HOST_DISPLAY_INFO_MESSAGES_PACKET_SIZE 10
#define MODULE_TO_HOST_DISPLAY_INFO_MESSAGES_PACKET_ID 0x0E

union Module_To_Host_Display_Info_Msg {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[MODULE_TO_HOST_DISPLAY_INFO_MESSAGES_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[MODULE_TO_HOST_DISPLAY_INFO_MESSAGES_PACKET_SIZE];
};

struct ModuleSendDisplayInfoMsg{
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

uint8_t stringId;
uint8_t stringPart;
uint8_t stringData[5];
};

uint8_t INFO_MESSAGES[15][26]; //Info message count is 15 and maximum character size of an info message is 25.
//INFO_MESSAGES[0] -> Out-of-service message
//INFO_MESSAGES[1] -> Overloaded message
//INFO_MESSAGES[2] -> Maintenance message
//INFO_MESSAGES[3] -> Fire evacuation message
//INFO_MESSAGES[4] -> Backup power evacuation message
//INFO_MESSAGES[5] -> Startup message
//INFO_MESSAGES[6] -> Door open error message
//INFO_MESSAGES[7] -> Idle message
//INFO_MESSAGES[8] -> Message to display on LOPs in priority service
//INFO_MESSAGES[9] -> Message to display on COP in priority service
//INFO_MESSAGES[10]...INFO_MESSAGES[14] -> Undefined
{
struct ModuleSendDisplayInfoMsg *ptr;
ptr = (struct ModuleSendDisplayInfoMsg *)msgData;
memcpy(&INFO_MESSAGES[ptr->stringId][ptr->stringPart * 5], ptr->stringData, 5);
}
//If infoMessageNo value is 255(0xff), no information message will not be shown.

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 0 1 0 1 0
msgId 0 0 0 0 0 1 1 1 0
msgData[0] 0 stringId
msgData[1] 0 stringPart
msgData[2] 0 stringData[0]
msgData[3] 0 stringData[1]
msgData[4] 0 stringData[2]
msgData[5] 0 stringData[3]
msgData[6] 0 stringData[4]
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Ana kontrolcü hafızasında kaydedilmiş servis dışı mesajının(örneğin “OUT OF SERVICE”) Modül’den Host’a iletimi aşağıdaki gibidir:

stringId = 0
stringPart = 0
stringData[0] = 79, stringData[1] = 85, stringData[2] = 84, stringData[3] = 32, stringData[4] = 79

stringId = 0
stringPart = 1
stringData[0] = 70, stringData[1] = 32, stringData[2] = 83, stringData[3] = 69, stringData[4] = 82

stringId = 0
stringPart = 2
stringData[0] = 86, stringData[1] = 73, stringData[2] = 67, stringData[3] = 69, stringData[4] = 0

stringId = 0
stringPart = 3
stringData[0] = X, stringData[1] = X, stringData[2] = X, stringData[3] = X, stringData[4] = X

stringId = 0
stringPart = 4
stringData[0] = X, stringData[1] = X, stringData[2] = X, stringData[3] = X, stringData[4] = X
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Paket-6: Tarih-zaman bilgisinin gönderildiği paket

typedef unsigned char uint8_t;

#define MODULE_TO_HOST_DATE_TIME_MESSAGE_PACKET_SIZE 10
#define MODULE_TO_HOST_DATE_TIME_MESSAGE_PACKET_ID 0x0F

union Module_To_Host_Date_Time_Msg {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[MODULE_TO_HOST_DATE_TIME_MESSAGE_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[MODULE_TO_HOST_DATE_TIME_MESSAGE_PACKET_SIZE];
};

struct ModuleSendDateTimeMsg {
uint8_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;

uint8_t reserved1;
uint8_t reserved2;
};

//16.09.2014 17:45
//year : 14
//month : 9
//day : 16
//hour : 17
//minute : 45
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

D8 D7 D6 D5 D4 D3 D2 D1 D0
msgSize 1 0 0 0 0 1 0 1 0
msgId 0 0 0 0 0 1 1 1 1
msgData[0] 0 year
msgData[1] 0 month
msgData[2] 0 day
msgData[3] 0 hour
msgData[4] 0 minute
msgData[5] 0 X X X X X X X X
msgData[6] 0 X X X X X X X X
checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

ARL500 Kat Kaseti Konfigürasyon Paketi:

Paket-7: Host, ARL500 sisteminde kat kaseti olarak kullanılacaksa kayıtlı olduğu kat ve kapı bilgisini modüle göndermelidir. Konfigürasyon paketi
olduğundan dolayı bu paket arada bir gönderilebilir (10 saniyede 1 kez gibi). ARCODE sisteminde kat ve kapı bilgisi öğrenme işlemi, AREM el
terminali vasıtasıyla "Kaset Pozisyon Öğrenme" ekranından gerçekleştirilir. ARCODE sisteminde bu paketin bir işlevi yoktur.

typedef unsigned char uint8_t;

#define ARL500_LOP_CONFIGURATION_PACKET_SIZE 5
#define ARL500_LOP_CONFIGURATION_PACKET_ID 0x10

union ARL500_LOP_CONFIG_MSG {
struct {
uint8_t msgSize;
uint8_t msgId;
uint8_t msgData[ARL500_LOP_CONFIGURATION_PACKET_SIZE - 3];
uint8_t checksum;
} b;
uint8_t bytes[ARL500_LOP_CONFIGURATION_PACKET_SIZE];
};

struct ARL500LopConfigMsg {
uint8_t configFloorNo:6; //0-47 (In ARL500, number of floors is limited to 48)
uint8_t lopDoorSide:2; //0:None, 1:Door-A, 2:Door-B, 3:Door-AB

uint8_t reserved;
};

D8 D7 D6 D5 D4 D3 D2 D1 D0

msgSize 1 0 0 0 0 0 1 0 1

msgId 0 0 0 0 1 0 0 0 0

msgData[0] 0 lopDoorSide configFloorNo

msgData[1] 0 X X X X X X X X

checksum 0 checksum
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

- Checksum Hesaplama:

typedef unsigned char uint8_t;

uint8_t CalculateChecksum(uint8_t *ptr){


uint8_t size, i, checksum;
size = *ptr;
checksum = 0x33;
for(i = 0; i < size - 1; i++){
checksum += *ptr;
ptr++;
}
return checksum;
}
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

Göstergelerde gözlemlenecek karakterlere karşılık gelen değerler aşağıdaki tabloda gösterilmektedir:

Character & Value Table:

CHAR VALUE CHAR VALUE CHAR VALUE CHAR VALUE CHAR VALUE CHAR VALUE
NULL 0 - 58 U 85 p 112 ş 139 П 166
Space 32 - 59 V 86 q 113 - 140 Р 167
! 33 - 60 W 87 r 114 - 141 С 168
- 34 - 61 X 88 s 115 - 142 Т 169
- 35 - 62 Y 89 t 116 - 143 У 170
- 36 ? 63 Z 90 u 117 - 144 Ф 171
- 37 - 64 - 91 v 118 - 145 Х 172
- 38 A 65 - 92 w 119 - 146 Ц 173
- 39 B 66 - 93 x 120 - 147 Ч 174
- 40 C 67 - 94 y 121 - 148 Ш 175
- 41 D 68 - 95 z 122 - 149 Щ 176
- 42 E 69 - 96 - 123 - 150 Ъ 177
+ 43 F 70 a 97 - 124 А 151 Ы 178
- 44 G 71 b 98 - 125 Б 152 Ь 179
- 45 H 72 c 99 - 126 В 153 Э 180
. 46 I 73 d 100 - 127 Г 154 Ю 181
- 47 J 74 e 101 Ç 128 Д 155 Я 182
0 48 K 75 f 102 Ğ 129 Е 156
1 49 L 76 g 103 İ 130 Ж 157
2 50 M 77 h 104 Ö 131 З 158
3 51 N 78 i 105 Ü 132 И 159
4 52 O 79 j 106 Ş 133 Й 160
5 53 P 80 k 107 ç 134 К 161
6 54 Q 81 l 108 ğ 135 Л 162
7 55 R 82 m 109 ı 136 М 163
8 56 S 83 n 110 ö 137 Н 164
9 57 T 84 o 111 ü 138 О 165
ARCODE / ARL500 CANbus Module Board Version : 17.05.2016

ARCODE / ARL500 CANBUS MODÜL KARTI BOYUTLARI

You might also like