13.07.2015 Views

Konstrukce a realizace řídicí jednotky malého proudovéhomotoru

Konstrukce a realizace řídicí jednotky malého proudovéhomotoru

Konstrukce a realizace řídicí jednotky malého proudovéhomotoru

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.5. STAVOVÝ AUTOMAT ŘÍDICÍ ČÁSTI 41další stav bude statement decode() (zpracování příkazu), nebo message decode()(zpracování zprávy). V těchto stavech se pak následně zjistí, jaký bude koncový stav. Vprogramu jsou deklarovány dvě pole pointerů na funkce, zvlášt’ pro zprávy a příkazy://pole pro prikazyvoid (*statement_array[])(struct message_data *m_data) = {statement_forward_control, statement_switch_man_control,statement_stop_turbine, error_message, ....};//pole pro zpravyvoid (*message_array[])(struct message_data *m_data) = {error_message, ..., message_ramp_down, error_message,message_jump, error_message, message_rpm_limits, ...};Každá zpráva/příkaz má jednoznačný identifikátor (viz tabulka 4.2 a 4.3). Protožejsou jednotlivé přijaté znaky zprávy ukládány jako datový typ char, lze hodnotu znakubrát také jako číslo. Alfa znaky začínají v ASCII tabulce od hodnoty 65 dec (znak ”A“).Od jednoznačného identifikátoru zprávy/příkazu je odečtena tato bázová hodnota znakuA“, tím se získá jednoznačný index do pole pointerů zpráv/příkazů. Následně se dané”pole pomocí získaného indexu zaindexuje a zavolá konkrétní konečná funkce. Ve stavufinal state() se pak získají data z přijaté zprávy a pošle se potvrzovací nebo datovázpráva (v závislosti na dekódované zprávě) do vizualizačního SW.6.5 Stavový automat řídicí částiPo správném dekódování a přijetí zprávy, se řídicí jednotka uvede do příslušného režimu.Tento režim se nastaví v konečném stavu dekódovacího automatu (final state()). Jakoposlední část hlavního stavového automatu je pak volání právě tohoto konečného stavu.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!