AMMI v3 » Historie » Revize 6
« Předchozí |
Revize 6/12
(rozdíl)
| Další »
Jednatel J.H., 2017-12-07 15:32
- Obsah
- Advance Machine Machine Interface (AMMI) ver.3.x
Advance Machine Machine Interface (AMMI) ver.3.x¶
Pokročilé rozhraní zařízení-zařízení ve zkratce (AMMI) poskytuje komunikační protokol jednotlivých komponent DKE. AMMI je součástí libovolného DKE-PAC. Označení MMI představuje komunikaci mezi zařízeními, jako jsou například počítače, kontroléry, mobilní telefony, chytré senzory... a písmeno A (Advance) informuje o pokročilosti a komplexnosti této komunikace. Cílem AMMI je inteligentní kybernetické řízení. AMMI protokol je určený spíše pro zařízení, než pro uživatele a je optimalizovaný pro rychlost a spolehlivost. Pro přímou komunikaci uživatele a DKE-PAC je vhodné instalovat AHMI software. Aktuální vývojová verze AMMI_v3 podporuje PAC-AT90_v3 a má implementovány protokoly:- DKE-MMI-USB je převodník, dekodér nebo kodér komunikačního rozhraní. Označení USB představuje metalický komunikační standard Universal Serial Bus 2.0.
- DKE-MMI-WIFI je převodník, dekodér nebo kodér komunikačního rozhraní. Označení WIFI představuje bezdrátový komunikační standard IEEE 802.11.
- DKE-MMI-UART je převodník, dekodér nebo kodér komunikačního rozhraní. Označení UART představuje metalický komunikační standard ANSI EIA/TIA-232.
1 Specifikace komunikačního protokolu AMMI¶
Fyzická, linková, síťová a transportní vrstvy vychází z níže uvedených protokolů. Uvádíme zde pouze konkrétní odlišnosti a informace potřebné pro snadnou implementaci. Sledy vodičů, napěťové úrovně, napájení a vodiče jsou specifikovány v PAC-AT90.
- USART
- TTL (5 V, 3,3 V)
- RS232
- USB 2.0
- IEEE 802.11 (Wi-Fi)
- 2,4 GHz
- TCP/UDP
- client/server
- B je počet následujících B těla rámce;
- B je adresa DKE-PAC;
- B je adresa zařízení;
- B je příkaz/sdělení;
- B až N. B jsou určeny pro data zařízení, data příkazu nebo data sdělení.
Zařízení, sdělení, příkazy a jejich možné hodnoty jsou popsány níže uvedenou tabulkou (slovníkem AMMI).
1.1 Struktura odchozího těla rámce (aplikace posílá do PAC-AT90 bajty skrze předchozí vrstvy)¶
B0 | B1 | B2 | B3 až B9 |
suma posílaných bajtů | adresa volaného zařízení | sdělení nebo příkaz | data patřící sdělení nebo příkazu |
Jednotlivé příkazy a sdělení jsou uvedeny v kapitole Syntaxe.
1.2 Struktura příchozího těla rámce (PAC-AT90 posílá do aplikace bajty skrze předchozí vrstvy)¶
B0 | B1 | B2 | B3 až B9 |
suma příchozích bajtů | adresa volajícího zařízení | sdělení nebo příkaz | data patřící sdělení nebo příkazu |
Jednotlivé příkazy a sdělení jsou uvedeny v kapitole Syntaxe.
1.3 Příklad komunikace a)¶
- aplikace otevře TCP port
- aplikace pošle |0x03|0x01|0xC3|0x03|
- aplikace zavře TCP port
Aplikace přikázala skrze Wi-Fi aby PAC-AT90 na adrese 1 náhodně nastavil výstupy IOPE na 1 a 0.
1.4 Příklad komunikace b)¶
- aplikace otevře TCP port
- aplikace pošle |0x03|0x01|0x01|0x0E|
- PAC-AT90 pošle |0x03|0x01|0x01|0x0E|
- aplikace pošle |0x04|0x01|0xC3|0x32E6|
- PAC-AT90 pošle |0x04|0x01|0xC3|0x32E6|
- aplikace zavře TCP port
Aplikace skrze Wi-Fi zapnula echo na PAC-AT90 a přikázala PAC-AT90 zapnout a vypnout výstupy IOPE dle schématu 0011 0010 1110 0110.
2 Syntaxe a sémantika komunikačního protokolu AMMI¶
Následující kapitoly se věnují jednotlivým zařízením, modulům, funkčním celkům které lze skrze AMMI ovládat. Podrobné popisy chování a vlastností naleznete v dokumentaci jednotlivých modulů.
2.1 Jádro (AMMI-KERNEL)¶
Jádro AMMI představuje hlavní proces, který řídí, ovládá a plánuje činnost celého PAC. Jádro má načteny všechny HW prostředky, všechna rozšiřující zařízení a ví co kdy a jak provede. Chování jádra AMMI se dá pomocí následujících příkazů upravit. Příkaz vrátí aktuální nastavení, pokud bude délka příkazu 2 B, nebo pokud změníte nastavení.
B0 | B1 | B2 | B3 | ||
ΣB | adresa | sdělení | hex | popis | data B 1 |
2:3 | 00:FF | AMMI_SILENT | 00 | tichý režim bez sdělení | ENABLE/DISABLE |
AMMI_ASCII | 01 | pro komunikaci používat ASCII | ENABLE/DISABLE | ||
AMMI_REPEAT | 02 | rezervováno | ENABLE/DISABLE | ||
AMMI_PING | 03 | posílat zpět přijaté B | ENABLE/DISABLE | ||
AMMI_LINE | 04 | každé sdělení má svůj řádek | ENABLE/DISABLE | ||
AMMI_HMI | 05 | rezervováno | ENABLE/DISABLE | ||
AMMI_BACK | 06 | posílat sdělení procesů na pozadí | ENABLE/DISABLE | ||
AMMI_ISR | 07 | zakázat nebo povolit přerušení | ENABLE/DISABLE |
2.2. Překladač (AMMI-TRANSLATOR)¶
Překladač vytváří formu pro veškerou komunikaci jak mezi moduly DKE tak i mezi AHMI a PAC. Správné nastavení překladače je důležité pro veškeré komunikační funkce. Překladač umožňuje různé úrovně diagnostiky, volání, hlášení.
Nastavení překladačeB0 | B1 | B2 | B3 | ||
ΣB | adresa | sdělení | hex | popis | data B 1 |
2:3 | 00:FF | TRNSL_DISABLE | F0 | překladač vypnut | |
TRNSL_ENABLE | F1 | překladač zapnut | |||
TRNSL_ERROR | F8 | neznámá chyba překladače | |||
TRNSL_TEXP | F9 | vypršel čas příjmu dalšího B | pozice nepřijatého B | ||
TRNSL_SHRT | FA | přijato málo B | |||
TRNSL_LONG | FB | přijato mnoho B | |||
TRNSL_UCOM | FC | neznámý příkaz | |||
TRNSL_UVAL | FD | neznámá nebo chybná hodnota | |||
TRNSL_UDEV | FE | neznámé zařízení | |||
TRNSL_NOTME | FF | příkaz není pro mne |
2.3. Sekvenční řízení (AMMI-SEQUENCES)¶
AMMI-SEQUENCES představuje třídu s metodami a proměnnými pro odložené, opakované a cyklické řízení AMMI. Každý uložený příkaz má následující vlastnosti:- SEKVENCE, sled bajtů konkrétního příkazu viz tabulka Struktura odchozího těla rámce
- STATUS, zapnuto, vypnuto
- LOOP, počet opakování příkazu
- TIMER, kdy bude příkaz poprvé volán
- PERIODE, doba mezi jednotlivými volání příkazu.
Příkazy pro práci s metodami AMMI-SEQUENCES jsou v tabulce Struktura odchozího těla rámce a jsou to:
B0 | B1 | B2 | B3 | ||
ΣB | adresa | příkaz | hex | popis | Vstupní a výstupní parametr |
2:3 | 00:FF | SEQUENCES_SET | 40 | Nastaví sled bajtů konkrétního volání. | Sled bajtů, viz tabulka Struktura odchozího těla rámce |
SEQUENCES_SET_TIME | 41 | Nastaví čas prvního volání. | 0 až 65536 jednotek, viz Hodiny | ||
SEQUENCES_SET_LOPS | 42 | Nastaví počet volání. | 0 až 255 | ||
SEQUENCES_SET_PERD | 43 | Nastaví prodlevu mezi voláními. | 0 až 255 jednotek, viz Hodiny | ||
SEQUENCES_SET_STAT | 44 | Nastaví status volání. | Zap, Vyp, Zámek | ||
SEQUENCES_GET | 45 | Vrátí všechny vlastnosti sekvence. | Sled bajtů v posloupnosti seznamu z předchozího odstavce. | ||
SEQUENCES_INIT | 46 | Uvolní všechna nastavení sekvencí. | |||
SEQUENCES_RUN | 47 | Spustí konkrétní volání. | 0 až maximální počet volání | ||
SEQUENCES_AUTORUN | 48 | Spustí automatický běh volání. |
2.4 IOPE modul (AMMI-IOPE)¶
AMMI-IOPE je třída s metodami a proměnnými pro komunikaci, ovládání a nastevaení rozšiřujícího modulu IOPE.
Příkazy pro práci s metodami AMMI-IOPE jsou v tabulce Struktura odchozího těla rámce a jsou to:
B0 | B1 | B2 | B3 | B4 | B5 | B6 | ||
ΣB | adredsa | zařízení | sdělení/příkaz | popis | data B 1 | data B 2 | data B 3 | data B 4 |
4 | 1:255 | IOPE | COLLECTORS | nastaví všechny výstupy IOPE | ||||
0x00 = vše vypnout | ||||||||
0x01 = vše zapnout | ||||||||
0x02 = vše invertovat | ||||||||
0x03 = náhodná kombinace | ||||||||
0xF0 = vrať stavy výstupů | ||||||||
COFF | vypne výstup IOPE (vysoká impedance) | 0x00:0x0F = číslo kolektoru | ||||||
CON | sepne výstup IOPE (otevřený kolektor) | 0x00:0x0F = číslo kolektoru | ||||||
CTGL | invertuje výstup IOPE | 0x00:0x0F = číslo kolektoru | ||||||
PWM | správa PWM pro jednotlivé výst. | 0x00 = PWM vypnout | ||||||
0x01 = PWM zapnout | ||||||||
0x02 = PWM perioda | ||||||||
0x03 = PWM střída | ||||||||
0x04 = efekt1 | ||||||||
0xF0 = vrať aktuální nastavení | ||||||||
ADC | správa kanálů ADC | 0x00 = ADC vypnout | ||||||
0x01 = ADC zapnout | ||||||||
0x02 = vrať hodnotu ADC kanálu | ||||||||
0xF0 = vrať aktuální nastavení | ||||||||
ENCODER | příkazy inkrementálního enkodéru | 0x01 = kontrola délky cyklů | ||||||
0x02 = vrátí délka cyklů | ||||||||
0x03 = kontrola počtu cyklů | ||||||||
0x04 = vrátí počet cyklů | ||||||||
0x05 = vrátí směr rotace | ||||||||
0x06 = nastaví minimální délu | DELKA | |||||||
0x07 = nastaví maximální délu | DELKA | DELKA | ||||||
0x08 = vyčistí čítače a hodnoty | ||||||||
0x09 = nastaví rozlišení čítače | ROZLISENI |
3 Vývojové informace¶
Vývojové informace mohou procházet uživatelé s bezpečnostní prověrkou reportér a vyšší.
- Aktuální vývojová verze: 3.x
- Developments Issues: #485
- Components List
4 Přílohy¶
Aktualizováno uživatelem Jednatel J.H. před téměř 7 roky(ů) · 6 revizí