Obecný popis

Popis komunikačního protokolu pro zařízení IOFireBug Engine Community FirmWare verze:

Ver. 1.x

 

Komunikační protokol je binární ve formátu 8 datových bitů, 1 stop bit, bez parity. Komunikace funguje na principu dotaz odpověď. Zařízení master (např. počítač) pošle příkaz a zařízení slave (deska Engine) na něj odpoví. Pokud slave zařízení příkazu nerozumí, nebo je neplatný, neposílá nic.

 

Komunikace přes rozhraní USB:

Jednotka IOFireBug Engine může komunikovat s PC pomocí USB rozhraní. Jednotka je vybavena převodníkem USB – Seriál od FTDI. V PC je po nainstalování ovladače vytvořen virtuální sériový port (COM Port).

Pokud by systém nenašel ovladače sám, lze je stáhnou na této adrese: http://www.ftdichip.com/Drivers/VCP.htm

 

Komunikace po sériovém rozhraní RS-485 / RS-422:

Jednotka je vybavena galvanicky oddělenou linkou RS-485 nebo RS-422 (nastavení režimu se provádí propojkou). V případě použití komunikační linky RS-485 se vyhněte zapínání funkcí periodického nebo on-change odesílání zpráv jednotkou. V tomto režimu je sběrnice pouze HALF-DUPLEX. Pokud je to možné, doporučuji vždy použít raději režim RS-422, tedy FULL-DUPLEX linku.

Jednotky Engine je možné propojovat v rámci jedné sériové komunikační linky. První jednotka může být připojena pomocí USB rozhraní k PC, další se propojí pomocí linky RS-485 / RS-422. Jednotky je potřeba rozlišit adresou pomocí přepínače DIP.

 

Obecný formát komunikační zprávy:

Bajt Název Význam Hodnota
0 PRE Startovací znaky 0x2A
1 PRE
2 LEN_HI Délka zprávy 2B 0x0007 až 0xFFFF
3 LEN_LO
4 ADDR Adresa zařízení 0x01 až 0x0E
5 SIG Číslo zprávy 0x00 až 0xFF
6 INSTR Kód instrukce Viz přehled použitých kódů
7 ACK Potvrzení Viz přehled použitých kódů
8 DATAn Data zprávy
8+n CRC_HI Kontrolní součet CRC16 – 2B 0x0000 až 0xFFFF
9+n CRC_LO
10+n CR Ukončovací znak 0x0D

LEN – délka zprávy od bajtu ADDR včetně až do konce zprávy.

ADDR – adresa zařízení je 4bitů, tedy v rozsahu 0x01 až 0x0E. Adresa s hodnotou 0x0F je rezervována pro broadcast. Tím je možné poslat příkaz všem zařízením najednou. Adresa 0x00 je neplatná, pokud nastavíme zařízení takovou adresu, nebude reagovat na žádné zprávy.

SIG – tento bajt slouží pro číslování zpráv. Zařízení master nastaví příkazu libovolnou hodnotu a zařízení slave odpoví se stejným číslem zprávy. Dvě po sobě jdoucí zprávy by měli mít různé číslo, neboli SIG.

INSTR – instrukční kód, podrobnější popis je v tabulce.

Hodnota Název Význam
Příkazy pro identifikaci zařízení
0xF0 INSTR_GET_DEV_NAME Dotaz na název zařízení
0xF1 INSTR_GET_FW_VER Dotaz na verzi FW zařízení
0xF2 INSTR_GET_DEV_ID Dotaz na ID zařízení
0xF3 INSTR_GET_SERIAL Dotaz na sériové číslo zařízení
Příkazy pro binární vstupy
0xA0 INSTR_GET_INPUTS Dotaz na stav binárních vstupů
0xA1 INSTR_GET_INPUTS_CNT Dotaz na stav čítačů binárních vstupů
0xA2 INSTR_GET_INPUTS_CNT_RM Dotaz na stav čítačů binárních vstupů včetně jejich nulování
0xA3 INSTR_SET_INPUTS_FNC Nastavení funkce binárních vstupů
0xA4 INSTR_GET_ROTARY_CNT Dotaz na stav čítačů rotačních kodérů
0xA5 INSTR_GET_ROTARY_CNT_RM Dotaz na stav čítačů rotačních kodérů včetně jejich nulování
Příkazy pro binární výstupy
0xB0 INSTR_SET_OUTPUTS Nastavení výstupů
0xB1 INSTR_SET_OUTPUTS_PWM Nastavení PWM výstupů
0xB2 INSTR_GET_OUTPUTS Dotaz na stav výstupů
0xB3 INSTR_GET_OUTPUTS_PWM Dotaz na stav PWM výstupů
Příkazy pro analogové vstupy
0xC0 INSTR_GET_ANALOG Dotaz na stav analogových vstupů
0xC1 INSTR_SET_ANALOG_FNC Nastavení funkce analogových vstupů
Příkazy pro konfiguraci zařízení
0xE0 INSTR_STORE_CFG Uložení aktuální konfigurace zařízení do EEPROM
0xE1 INSTR_SET_CFG_ADC Konfigurace AD převodníků
0xE2 INSTR_SET_CFG_PWM1234 Konfigurace PWM pro výstupy 1, 2, 3, 4
0xE3 INSTR_SET_CFG_PWM56 Konfigurace PWM pro výstupy 5, 6
0xE4 INSTR_SET_CFG_PWM78 Konfigurace PWM pro výstupy 7, 8
0xE5 INSTR_SET_CFG_INPUTS Konfigurace zpracování binárních vstupů
0xE6 INSTR_SET_CFG_FTDI Nastavení přenosové rychlosti převodníku FTDI – USB
0xE7 INSTR_SET_CFG_RS4XX Nastavení přenosové rychlosti rozhraní RS-485 / RS-422
0xE8 INSTR_SET_CFG_EXP Nastavení rozšiřujících modulů (expanderů)
0xE9 INSTR_SET_ADC_OFFSETS Spustí kalibraci ofsetů analogových vstupů. Tento proces stačí provést pouze jednou při oživavání zařízení a uložení kalibračních hodnot se provede pomocí istrukce 0xE0 (INSTR_STORE_CFG). Při kalibraci musí být analogové vstupy nezapojeny!
0xEA INSTR_SET_OUTPUTS_DEFAULT Nastavení aktuálního stavu výstupů jako výchozí stav po zapnutí jednotky
0xEE INSTR_RESET Provede se restart zařízení, načtení poslední uložené konfigurace z EEPROM
0xEF INSTR_CLEAR_EEPROM Smaže obsah konfigurační paměti zařízení EEPROM
Příkazy pro vyčtení konfigurace zařízení
0xD1 INSTR_GET_CFG_ADC Dotaz na konfiguraci AD převodníků
0xD2 INSTR_GET_CFG_PWM1234 Dotaz na konfiguraci PWM pro výstupy 1, 2, 3, 4
0xD3 INSTR_GET_CFG_PWM56 Dotaz na konfiguraci PWM pro výstupy 5, 6
0xD4 INSTR_GET_CFG_PWM78 Dotaz na konfiguraci PWM pro výstupy 7, 8
0xD5 INSTR_GET_CFG_INPUTS Dotaz na konfiguraci zpracování binárních vstupů
0xD6 INSTR_GET_CFG_FTDI Dotaz na konfiguraci přenosové rychlosti převodníku FTDI – USB
0xD7 INSTR_GET_CFG_RS4XX Dotaz na konfiguraci přenosové rychlosti rozhraní RS-485 / RS-422
0xD8 INSTR_GET_CFG_EXP Dotaz na konfiguraci rozšiřujících modulů (expanderů)

ACK – potvrzovací bajt

Hodnota Název Význam
0x00 ACK_OK Vše v pořádku
0x01 ACK_ERR Jiná chyba
0x02 ACK_BAD_INSTR Neznámá instrukce
0x03 ACK_NODATA Nejsou požadovaná data
0x04 ACK_DEV_ERR Zařízení v poruše

CRC – kontrolní součet zprávy CRC16. Počítá se ze všech bajtů zprávy kromě posledního bajtu CR.  Jako inicializační hodnota se používá 0xFFFF.

 

Dotazovací zprávy

Dotazovací zprávy jsou zprávy, které nemají žádná data. Těmito zprávami se může nadřazený systém dotazovat na konfigurační parametry nebo stavy jednotky (vstupy apod.). Na tyto zprávy odpovídá jednotka zprávou s příslušným datovým obsahem, který je podrobně popsán dále. V dokumentaci jsou tyto zprávy označovány slovem INSTR_GET_xxxxxx.

Bajt Název Význam Hodnota
0 PRE Startovací znaky 0x2A
1 PRE
2 LEN_HI Délka zprávy 2B 0x00
3 LEN_LO 0x07
4 ADDR Adresa zařízení 0x01 až 0x0E
5 SIG Číslo zprávy 0x00 až 0xFF
6 INSTR Kód instrukce Viz přehled použitých kódů
7 ACK 0x00
8 CRC_HI Kontrolní součet CRC16 – 2B 0x0000 až 0xFFFF
9 CRC_LO
10 CR Ukončovací znak 0x0D

 

Příkazové zprávy

Příkazovými zprávami lze jednotce udělovat některé příkazy, jako je uložení/smazání vnitřní paměti EEPROM, reset jednotky apod. Na tyto zprávy odpovídá jednotka potvrzovací zprávou.

Bajt Název Význam Hodnota
0 PRE Startovací znaky 0x2A
1 PRE
2 LEN_HI Délka zprávy 2B 0x00
3 LEN_LO 0x07
4 ADDR Adresa zařízení 0x01 až 0x0E
5 SIG Číslo zprávy 0x00 až 0xFF
6 INSTR Kód instrukce Viz přehled použitých kódů
7 ACK 0x00
8 CRC_HI Kontrolní součet CRC16 – 2B 0x0000 až 0xFFFF
9 CRC_LO
10 CR Ukončovací znak 0x0D

 

Nastavovací zprávy

Nastavovacími zprávami lze jednotce nastavit konfigurační parametry nebo například stavy výstupů apod. V dokumentaci jsou tyto zprávy označovány slovem INSTR_SET_xxxxxx. Na tyto zprávy odpovídá jednotka potvrzovací zprávou, která nemá žádný datový obsah.

Bajt Název Význam Hodnota
0 PRE Startovací znaky 0x2A
1 PRE
2 LEN_HI Délka zprávy 2B Počet bajtů zprávy: 7 + počet datových bajtů
3 LEN_LO
4 ADDR Adresa zařízení 0x01 až 0x0E
5 SIG Číslo zprávy 0x00 až 0xFF
6 INSTR Kód instrukce Viz přehled použitých kódů
7 ACK 0x00
8 DATAn Data zprávy 0xXX (viz podrobný popis jednotlivých zpráv)
8+n CRC_HI Kontrolní součet CRC16 – 2B 0x0000 až 0xFFFF
9+n CRC_LO
10+n CR Ukončovací znak 0x0D

 

Potvrzovací zprávy

Bajt Název Význam Hodnota
0 PRE Startovací znaky 0x2A
1 PRE
2 LEN_HI Délka zprávy 2B 0x00
3 LEN_LO 0x07
4 ADDR Adresa zařízení Stejná jako v nastavovací, nebo příkazové zprávě
5 SIG Číslo zprávy Stejná jako v nastavovací, nebo příkazové zprávě
6 INSTR Kód instrukce Stejná jako v nastavovací, nebo příkazové zprávě
7 ACK Potvrzení Viz přehled použitých kódů
8 CRC_HI Kontrolní součet CRC16 – 2B 0x0000 až 0xFFFF
9 CRC_LO
10 CR Ukončovací znak 0x0D

 

Zprávy identifikace zařízení

0xf0 – Vyčtení názvu zařízení – struktura dat odpovědi

Bajt dat Název Význam
0 DEVICE_NAME Text ve formátu ASCII, délka textu je daná délkou zprávy
n

Pozn.:

Zařízení IOFireBug Engine vrací název: „IOFB-ENGINE“

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][01][F0][00][52][E8][0D] instr: [0xF0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][12][01][01][F0][00][49][4F][46][42][2D][45][4E][47][49][4E][45][2C][6D][0D] instr: [0xF0]
[Debug] – IOFB Engine[COM20][0x01]: Read device name: IOFB-ENGINE
 

0xf1 – Vyčtení verze FW zařízení – struktura dat odpovědi

Bajt dat Název Význam
0 FW_MAJOR Číslo ve formátu uint8
1 FW_MINOR Číslo ve formátu uint8

Pozn.:

Verze zařízení vypadá následovně: FW_MAJOR.FW_MINOR, např.: 1.0

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][02][F1][00][C2][19][0D] instr: [0xF1]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][09][01][02][F1][00][02][01][61][A5][0D] instr: [0xF1]
[Debug] – IOFB Engine[COM20][0x01]: Read device FW version: 2.1
 

0xf2 – Vyčtení ID zařízení – struktura dat odpovědi

Bajt dat Název Význam
0 DEVICE_ID Jednoznačný identifikátor zařízení, ve formátu uint16
1

Pozn.:

Zařízení IOFireBug Engine vrací identifikátor 0x1003 (rok 18 = 0x12, měsíc 12 = 0x0C)

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][03][F2][00][F2][48][0D] instr: [0xF2]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][09][01][03][F2][00][12][0C][E0][54][0D] instr: [0xF2]
[Debug] – IOFB Engine[COM20][0x01]: Read device ID: 0x120C
 

0xf3 – Vyčtení sérového čísla zařízení – struktura dat odpovědi

Bajt dat Název Význam
0 DEVICE_SERIAL Jednoznačné sériové číslo zařízení (11 bajtů)
..
10

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][04][F3][00][A3][F8][0D] instr: [0xF3]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][12][01][04][F3][00][36][59][33][32][30][33][18][07][00][0B][00][2D][F2][0D] instr: [0xF3]
[Debug] – IOFB Engine[COM20][0x01]: Read device SERIAL number: [36][59][33][32][30][33][18][07][00][0B][00]

 

Zprávy binárních vstupů zařízení

0xa0 – Čtení stavu binárních vstupů – struktura dat odpovědi

Bajt dat Název Význam
0 INPUTS Hodnota je ve formátu uint8, MSB je vstup 8, LSB je vstup 1. Log1 znamená sepnutý vstup.
1 EXP_BIN_INPUTS_1 Hodnota je ve formátu uint16, MSB je vstup 16, LSB je vstup 1. Log1 znamená sepnutý vstup.
2
3 EXP_BIN_INPUTS_2 Hodnota je ve formátu uint16, MSB je vstup 16, LSB je vstup 1. Log1 znamená sepnutý vstup.
4
n

Pozn.:

Počet bajtů binárních vstupů je závislý na použití rozšiřujících vstupních karet. Pokud je jednotka používaná samostatně, pak se vrací jeden bajt (8x binární vstup). Pokud např. použijeme rozšiřující kartu binárních vstupů (16x binární vstup), bude jednotka vracet celkem tři datové bajty.

Příklad zpráv – IOFireBug Engine:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][13][A0][00][57][74][0D] instr: [0xA0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][08][01][13][A0][00][00][D8][57][0D] instr: [0xA0]
[Debug] – IOFB Engine[COM20][0x01]: Read device binary inputs: [00]

Příklad zpráv – IOFireBug Engine + jeden wagon 16I:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][13][A0][00][57][74][0D] instr: [0xA0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][0A][01][13][A0][00][00][00][00][B3][BF][0D] instr: [0xA0]
[Debug] – IOFB Engine[COM20][0x01]: Read device binary inputs: [00][00][00]
 

0xa1 – Čtení stavu čítačů binárních vstupů – struktura dat odpovědi

Bajt dat Název Význam
0 INPUT_CNT0 Stav čítače vstupu 1, formát uint16
1
2 INPUT_CNT1 Stav čítače vstupu 2, formát uint16
3
14 INPUT_CNT7 Stav čítače vstupu 8, formát uint16
15
16 EXP_INPUT_CNT8-31 Formát jednotlivých čítačů uint16
47

0xa2 – Čtení stavu čítačů binárních vstupů + nulování – struktura dat odpovědi je stejná jako u příkazu 0xa1.

 

Pozn.:

Počet bajtů čítačů binárních vstupů je závislý na použití rozšiřujících vstupních karet. Pokud je jednotka používaná samostatně, pak se vrací 16 bajtů (8x binární vstup). Pokud např. použijeme rozšiřující kartu binárních vstupů (16x binární vstup), bude jednotka vracet celkem 48 datových bajtů.

 

0xa3 – Funkce binárních vstupů – struktura dat zprávy

Bajt dat Název Význam
0 INPUTS_FNC 0x00 – výchozí hodnota, žádná funkce

0xff – automatické odeslání stavu vstupů (zpráva 0xa1) při jejich změně

0x01 – 0xfe – periodické odesílání stavu vstupů (zpráva 0xa0) v jednotkách [ms] (tedy 1ms až 254ms)

1 INPUT_COUNTERS_FNC 0x00 – výchozí hodnota, žádná funkce

0xff – automatické odeslání stavu čítačů vstupů (zpráva 0xa1) při jejich změně

0x01 – 0xfe – periodické odesílání stavu čítačů vstupů (zpráva 0xa1) v jednotkách [ms] (tedy 1ms až 254ms)

2 ROTARY_COUNTERS_FNC 0x00 – výchozí hodnota, žádná funkce

0xff – automatické odeslání stavu čítačů rotačních kodérů (zpráva 0xa1) při jejich změně

0x01 – 0xfe – periodické odesílání stavu čítačů rot. kodérů (zpráva 0xa4) v jednotkách [ms] (tedy 1ms až 254ms)

Note:

Nepoužívejte funkci automatického odesílání data pokud používáte komunikační rozhraní RS485 (half-duplex). Tato funkce je použitelná pouze při provozu po komunikačním rozhraní USB nebo RS422 (full-duplex).

 

0xa4 – Čtení stavu čítačů rotačních kodérů – struktura dat odpovědi

Bajt dat Název Význam
0 ROT_CNT0 Stav čítače rot. kodéru 1, formát uint16
1
2 ROT_CNT1 Stav čítače rot. kodéru 2, formát uint16
3
6 ROT_CNT3 Stav čítače rot. kodéru 3, formát uint16
7
8 EXP_ROT_CNT4-11 Formát jednotlivých čítačů uint16
23

 

Každý rotační kodér využívá dva binární vstupy. Hodnota čítače je dvou bajtová (16bit).

Počet dat ve zprávě je závislý na počtu připojených vstupních Wagonů. Pokud je jednotka používaná samostatně, pak posílá osm bajtů (4x encoder * 2bajty). ¨

Pokud např. použijeme jednu rozšiřující kartu binárních vstupů (16x binární vstup), jednotka posílá celkem 8bajtů (základ) + 16bajtů (rozšiřující vagón) = 24bajtů.

 

0xa5 – Čtení stavu čítačů rotačních kodérů + nulování – struktura dat odpovědi je stejná jako u příkazu 0xa4.

 

Pozn.:

Počet bajtů čítačů rotačních kodérů je závislý na použití rozšiřujících vstupních karet. Pokud je jednotka používaná samostatně, pak se vrací 8 bajtů (8x vstup = 4x rotační kodér – každý potřebuje dva vstupy). Pokud např. použijeme rozšiřující kartu binárních vstupů (16x binární vstup = 8x rotační kodér) bude jednotka vracet celkem 24 datových bajtů.

 

Zprávy binárních / PWM výstupu zařízení

0xb0 – Nastavení binárních výstupů – struktura dat zprávy

Bajt dat Název Význam
0 OUTPUTS Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.
1 EXP_OUTPUTS_1 Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.
2 EXP_OUTPUTS_2 Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.

Pozn.:

Počet bajtů binárních výstupů je závislý na počtu použitých rozšiřujících výstupních karet (Wagonů). Pokud je jednotka používaná samostatně, pak posílá jeden bajt (8x binární výstup). Pokud např. použijeme jednu rozšiřující kartu binárních výstupů (8x binární výstup), odesíláme do jednotky celkem 2 datové bajty.

Příklad zpráv – IOFireBug Engine:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][08][01][14][B0][00][01][A9][96][0D] instr: [0xB0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][14][B0][00][56][C8][0D] instr: [0xB0]
[Debug] – IOFB Engine[COM20][0x01]: Device set binary outputs [01].

Příklad zpráv – IOFireBug Engine + one wagon 8O:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][09][01][47][B0][00][01][02][63][3C][0D] instr: [0xB0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][47][B0][00][47][38][0D] instr: [0xB0]
[Debug] – IOFB Engine[COM20][0x01]: Device set binary outputs [01][02].

 

0xb1 – Nastavení PWM generátorů výstupů – struktura dat zprávy

Bajt dat Název Význam
0 OUTPUT_PWM0 PWM hodnota výstupu 1. hodnota je ve formátu uint8. 0 – výstup trvale vypnut, 255 – výstup trvale sepnut.
1 OUTPUT_PWM1 PWM hodnota výstupu 2
7 OUTPUT_PWM7 PWM hodnota výstupu 8

Pozn.:

Pro funkčnost regulace PWM výstupů, je nutné pro požadované výstupy funkci zapnout. To se provádí konfiguračními zprávami pro PWM.
Funkce PWM generátoru je k dispzici pouze na výstupe jednotky IOFireBug engine.

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][0F][01][7F][B1][00][90][00][00][00][00][00][00][00][37][A7][0D] instr: [0xB1]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][7F][B1][00][1A][B8][0D] instr: [0xB1]
[Debug] – IOFB Engine[COM20][0x01]: Device set PWM outputs [90][00][00][00][00][00][00][00].

 

0xb2 – Čtení stavu binárních výstupů – struktura dat zprávy

Bajt dat Název Význam
0 OUTPUTS Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.
1 EXP_OUTPUTS_1 Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.
2 EXP_OUTPUTS_2 Hodnota je ve formátu uint8, MSB je výstup 8, LSB je výstup 1. Log1 znamená sepnutý výstup.

 

0xb3 – Čtení stavu PWM generátorů výstupů – struktura dat zprávy

Bajt dat Název Význam
0 OUTPUT_PWM0 PWM hodnota výstupu 1. Hodnota je ve formátu uint8. 0 – výstup trvale vypnut, 255 – výstup trvale sepnut.
1 OUTPUT_PWM1 PWM hodnota výstupu 2
7 OUTPUT_PWM7 PWM hodnota výstupu 8

 

Zprávy analogových vstupů zařízení

0xc0 – Čtení stavu analogových vstupů – struktura dat odpovědi

Bajt dat Název Význam
0 INPUT_ADC0 Hodnota analogového vstupu 1, formát uint16
1
2 INPUT_ADC1 Hodnota analogového vstupu 2, formát uint16
3
14 INPUT_ADC7 Hodnota analogového vstupu 8, formát uint16
15

Pozn.:

Hodnota ADC je v mili-voltech pokud je ADC_MULTIPLIER nastaven na výchozí hodnotu 2.774.

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][07][01][F0][C0][00][A1][AD][0D] instr: [0xC0]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][17][01][F0][C0][00][00][00][00][00][00][00][00][02][00][00][00][00][00][00][00][02][A5][57][0D] instr: [0xC0]
[Debug] – IOFB Engine[COM20][0x01]: Read device analog inputs: [00][00][00][00][00][00][00][02][00][00][00][00][00][00][00][02]
 

0xc1 – Funkce analogových vstupů – struktura dat zprávy

Bajt dat Název Význam
0 ADC_FNC 0x00 – výchozí hodnota, žádná funkce

0x01 – 0xff – periodické odesílání stavu analogových vstupů (zpráva 0xa1) v jednotkách [ms] (tedy 1ms až 255ms)

Note:

Nepoužívejte funkci automatického odesílání data pokud používáte komunikační rozhraní RS485 (half-duplex). Tato funkce je použitelná pouze při provozu po komunikačním rozhraní USB nebo RS422 (full-duplex).

 


Konfigurační zprávy zařízení

0xe1 – Konfigurace analogových vstupů a AD převodníku – struktura dat zprávy

Bajt dat Název Význam
0 ADC_ENABLE 0x00 – převodník vypnut

0x01 – převodník zapnut

1 ADC_RESOLUTION 0x08 – 8bit rozsah převodníku

0x0c – 12bit rozsah převodníku

2 ADC_INPUT_FROM Index prvního vzorkovaného analogového vstupu – 0 až 7
3 ADC_INPUT_TO Index posledního vzorkovaného analogového vstupu – 0 až 7
4 ADZ_HZ Kmitočet AD převodníku [Hz] hodnota typu uint32
5
6
7
8 ADC_AVERAGES Nastavení průměrování vzorků

0 – neplatná hodnota

1 – bez průměrování

2,4,8,16,32 – povolené hodnoty průměrování

9 ADC_RIGHT_ZEROS Nastavení počtu nulových bitů zprava hodnoty vzorku (0, 1, 2, 3, 4)
10 ADC_MULTIPLIER Násobek měřené hodnoty AD převodníku, Hodnota typu float (4B), Minimum 1.0, Maximum 10.0, Výchozí hodnota 2.774 (0x40318E8A) – První bajt je nejnižší byte (LSbyte)
11
12
13

Pozn.:

Parametry ADC_INPUT_FORM / TO je možné nastavit požadované zpracovávané analogové vstupy.

Konfigurace ADC se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

 

0xe2 – Konfigurace PWM generátoru pro výstupy 1 až 4 – struktura dat zprávy

Bajt dat Název Význam
0 PWM_ENABLE 0x00 – generátor vypnut

0x01 – generátor zapnut

1 PWM_HZ Kmitočet generátoru PWM [Hz], hodnota typu uint16
2

Pozn.:

Pokud je na zvolených výstupech zapnut PWM generátor, je pro tyto výstupy ignorována funkce binárních výstupů.

Konfigurace ADC se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

 

0xe3 – Konfigurace PWM generátoru pro výstupy 5 a 6 – struktura dat zprávy

Bajt dat Název Význam
0 PWM_ENABLE 0x00 – generátor vypnut

0x01 – generátor zapnut

1 PWM_HZ Kmitočet generátoru PWM [Hz], hodnota typu uint16
2

Pozn.:

Pokud je na zvolených výstupech zapnut PWM generátor, je pro tyto výstupy ignorována funkce binárních výstupů.

Konfigurace ADC se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

 

0xe4 – Konfigurace PWM generátoru pro výstupy 7 až 8 – struktura dat zprávy

Bajt dat Název Význam
0 PWM_ENABLE 0x00 – generátor vypnut

0x01 – generátor zapnut

1 PWM_HZ Kmitočet generátoru PWM [Hz], hodnota typu uint16
2

Pozn.:

Pokud je na zvolených výstupech zapnut PWM generátor, je pro tyto výstupy ignorována funkce binárních výstupů.

Konfigurace ADC se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

 

0xe5 – Konfigurace binárních vstupů – struktura dat zprávy

Bajt dat Název Význam
0 SAMPLE_PERIOD Nastavení násobku vzorkovací rychlosti binárních vstupů. Základní krok je 1ms. Hodnota může být v rozsahu 1 až 65535 (tedy 1ms až 65535ms).
1
2 FILTER_LENGTH Nastavení délky filtru binárních vstupů. Hodnota udává, kolik vzorků za sebou musí být stejné úrovně. Hodnota může být v rozsahu 0 až 15 (tedy 1 až 16 vzorků).

Pozn.:

Změna parametrů nastává v zařízení ihned, není nutno zařízení restartovat.

 

0xe6 – Konfigurace přenosové rychlosti převodníku FTDI – USB – struktura dat zprávy

Bajt dat Název Význam
0 FTDI_BAUDRATE Hodnota je ve formátu uint32
1
2
3

Použitelné komunikační rychlosti [bps]:
9600, 19200, 57600, 115200, 250000, 500000, 1000000

Pozn.:

Konfigurace FTDI převodníku se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][0B][01][16][E6][00][00][03][D0][90][2A][09][0D] instr: [0xE6]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][16][E6][00][36][56][0D] instr: [0xE6]
[Debug] – IOFB Engine[COM20][0x01]: Device set FTDI config [00][03][D0][90] (250000bps).

 

0xe7 – Konfigurace přenosové rychlosti rozhraní RS4XX – struktura dat zprávy

Bajt dat Název Význam
0 RS4XX_BAUDRATE Hodnota je ve formátu uint32
1
2
3

Použitelné komunikační rychlosti [bps]:
9600, 19200, 57600, 115200, 250000, 500000, 1000000

Pozn.:

Konfigurace FTDI převodníku se projeví až po restartu zařízení. To lze provést buď odpojením a připojením od zdroje, nebo reset příkazem.

Příklad zpráv:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][0B][01][17][E7][00][00][01][C2][00][37][B5][0D] instr: [0xE7]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][17][E7][00][66][06][0D] instr: [0xE7]
[Debug] – IOFB Engine[COM20][0x01]: Device set RS4XX config [00][01][C2][00] (115200bps).
 

0xe8 – Konfigurace rozšiřujících modulů (expandérů) – struktura dat zprávy

Bajt dat Název Význam
0 EXP_TYPE Typ 1. rozšiřujícího modulu
1 EXP_TYPE Typ 2. rozšiřujícího modulu
2 EXP_TYPE Typ 3. rozšiřujícího modulu
3 EXP_TYPE Typ 4. rozšiřujícího modulu
4 EXP_TYPE Typ 5. rozšiřujícího modulu
5 EXP_TYPE Typ 6. rozšiřujícího modulu
6 EXP_TYPE Typ 7. rozšiřujícího modulu
7 EXP_TYPE Typ 8. rozšiřujícího modulu

Typy rozšiřujících modulů (expandérů):

EXP_TYPE   Popis
0x00 WAGON_NONE Nepoužit
0x01 WAGON_16 Modul binárních vstupů (16xInput)
0x02 WAGON_8O Modul binárních výstupů (8xOutput)
0x03 WAGON_8RELAY Modul relé kontaktů (8xRelé)
0x04 WAGON_16IO Modul TTL IO (16xInput/Output)

Pozn.:

Rozšiřující karty (expandery) musí být zapojeny v pořadí odpovídající konfiguraci zařízení. Poslední karta musí mít osazenou propojku nazvanou END, čímž se zakončuje sériová sběrnice SPI. Počet připojitelných karet je omezen na osm. Propojení se provádí pomocí přímého plochého kabelu.

Příklad zpráv – IOFirebug Engine + Wagon 16I + Wagon 8O:
[Debug] – IOFB Engine[COM20][0x01]: Write packet: [2A][2A][00][0F][01][F8][E8][00][01][02][00][00][00][00][00][00][8F][2C][0D] instr: [0xE8]
[Debug] – IOFB Engine[COM20][0x01]: Read packet: [2A][2A][00][07][01][F8][E8][00][63][32][0D] instr: [0xE8]
[Debug] – IOFB Engine[COM20][0x01]: Device set EXPANDERS config [01][02][00][00][00][00][00][00].