Приложение 2. |
Спецификация на унифициран управляващ
език на безжичните експериментални средства (Технологичен протокол и Семантичен език). . Терминология. В описанието на БПМИО се използват различни технически термини, специфични
за този проект. Основната терминология включва следните определения: - Безжична локална мрежа (WLAN) – това е локална мрежа, обединяваща няколко устройства, всяко с вградени възможности за комуникация по радиоканал. WLAN се характеризира с мрежови параметри, протокол за комуникация и специализирано програмно осигуряване ( Стек ), отговорно за управление на устройствата, включени в мрежата. - НОД – устройство включено в безжична мрежа. - Координатор на Безжичната локална мрежа- НОД, който създава и менажира мрежата. В даден момент, всяка WLAN има точно един Координатор. - Рутер- НОД, изпълняващ функциите на ретранслатор на мрежовите съобщения. Управляван от Координатора, всеки Рутер менажира множество от НОД-ове, явяващи се негови наследници в топологичната схема на Безжичната локална мрежа. БПМИО използва само НОД-ове с мрежова функционалност на Координатор или Рутери. - Безжичен индустриален контролер- това е идустриален контролер с възможност за комуникация по радиоканал с други подобни устройства. В качеството си на контролер, той управлява програмно някакъв индустриален обект. В същото време притежава възможност да функционира като НОД на Безжичната Локална Мрежа. - Активни мрежови устройства- те включват устройствата с функции на Безжични индустриални контролери, включени или с възможност за включване в WLAN. - RS485+ - междумрежов интерфейс, реализиран чрез жични и безжични сегменти между Координаторите на безжичните мрежи. Жичните сегменти използва стандартния RS485, а безжичните сегменти радиоканал 433MHz, посредством вградени в модулите радиотрансивери. - Мултимрежа – съвокупност от няколко безжични мрежи. Между Координаторите на мрежите е реализиран интерфейс RS485+. - Главна мрежа- безжична мрежа от Мултимрежата, чийто Координатор е свързан директно (USB) към Главна Операторска Станция. - Технологичен слой- Мултимрежа, в която НОД-вете са Активни мрежови устройства . - Технологичен протокол-това е език за конфигурация и менажиране на безжичните мрежи. - Семантичен език- това е език за управление на активните устройства, включени в мрежата. Дефинират се Семантични команди и съответни Рапорти от различните устройства, в съответствие с командите. Когато Активните мрежови устройства работят в автономен режим (не са включени в Технологичния слой ), Семантичните команди и съответните Рапорти се получават от и изпращат към външни устройства, посредством GATEWAY . Той се реализира от включен към Активното мрежово устройство на модем-терминал, осигуряващ GPRS комуникация, или Локална Операторска Станция(ЛОС). - Главна операторска станция (ГОС) – построена на базата на PC, под Windows XP, тя реализира операторски интерфейс към Технологичния слой и Активните мрежови устройства. - Локална операторска станция (ЛОС) - построена на базата на PC под Windows XP, тя реализира тестови потребителски интерфейс към Активно мрежово устройство, работещо в мрежов или автономен режим. - GATEWAY – това е устройство и съответен фърмуер, осигуряващи комуникация на Активните мрежови устройства към външни мрежи, различни от Технологичния слой. Обикновено GATEWAY включва модем-терминал, свързан с Активното мрежово устройство по RS 232 C и програмен драйвер за поддръжка на модема. Възможно е включване на ЛОС към дадено Активно мрежово устройство посредством USB. Въведение Семантичният език и Технологичния протокол представляват надстройка на мрежовия протокол на Технологичния
слой и са предназначени за конфигурация на мрежите, обмен на команди и
рапорти между Активните мрежови
устройства. Те ще се реализират на базата на мрежовите информационни
съобщения. Семантични
команди могат да постъпват и от външни устройства ( ЛОС или GPRS модем-терминал), включени към Активните мрежови устройства. Семантичният език и Технологичния протокол използват три
вида елементи: -
Терми - това са
информационни структури, унифицирани в рамките на мрежата, с възможности за
контрол на достоверността и целостта на информацията, съдържаща се в тях. Те
се разполагат изцяло в дадено информационно съобщение на Технологичния слой и се интерпретират по еднакъв начин от всички
мрежови устройства.Всяко информационно съобщение съдържа изцяло един или
няколко терми, всеки терм се разполага изцяло в едно информационно съобщение; -
Команди - това са информационни структури, включващи
няколко терми. Някои от тях са задължително включени във всички команди-
такива са «адрес на получателя», «край на командата» и «режим на работа на
устройството». Други са специфични и са свързани с конкретните видове мрежови
устройства. Те формират «поле на данните на командата», което се интерпретира
от конкретните устройства. Всеки терм на командата се потвърждава; - Рапорти от устройства, получили команди - това са информационни структури, включващи няколко терми. Някои от тях са задължително включени във всички Рапорти - такива са полетата «адрес на получателя и дължина на рапорта» и «статус и режим на работа на устройството, получило командата». Всеки Рапорт ще включва един или повече терми от вида «поле на данните», което от своя страна ще съдържа няколко подполета- «номер на полето», «дължина на полето» и «данни включени в полето». Последните са специфични за различните устройства. Технологичния протокол предполага използване на множество от команди и съобщения, интерпретирани еднакво от различните видове Активни мрежови устройства. Семантичният
език предполага използване на множество от команди и съобщения,
интерпретирани индивидуално от различните видове Активни мрежови устройства. 1. Спецификация на Технологичния протокол. Технологичният протокол включва описание на група команди и съобщения използвани за
конфигуриране, мониторинг и управление на Технологичния
слой. 1. 1. Команди на Технологичния протокол. Технологичният слой включва набор от безжични локални мрежи, реализиращи транспортиране по радиоканали и жичен интерфейс (RS485) на информационните и служебни съобщения между ГОС и Активните мрежови устройства. Комуникацията се организира в съответствие с Технологичен протокол за работа с Технологичния слой. Този протокол осигурява изпълнението на групи от външни команди, изпращани от Координатора на Главната мрежа по жичен интерфейс към останалите Координатори. Всяка външна команда съдържа вградена в тялото си вътрешна команда, която съответния Координатор изпраща към НОД-овете от своята мрежа . - Вътрешни команди- те се разпространяват по зададения за локалната мрежа работен радиоканал, генерират се от Координатора на мрежата и управляват комуникацията между НОД-овете; - Външни команди- те се разпространяват по хетерогенен интерфейс( RS485+) между координаторите в Технологичен слой, включващ няколко автономни безжични мрежи, генерират се от Координатора на Главната мрежа и реализират междумрежов информационен трафик. Всяка от безжичните мрежи
има свой уникален адрес, както следва: -
главната безжична мрежа има адрес 0; -
останалите
безжични мрежи се адресират последователно 1,2, 3, .... Външните команди имат следния синтаксис: <N: на безжичната мрежа>:<вътрешна команда><CR> Изпълнението на външна команда се извършва на няколко стъпки: 1. Координаторът на Главната
мрежа извежда по RS485 кода на
командата; 2. Координаторът
на адресираната мрежа получава този код; 3. Координаторът
на адресираната мрежа отделя тикста, обозначен като <вътрешна
команда> и го подава към своята
мрежа, като вътрешна команда по съответния радиоканал; 4. След изпълнението на командата, Координаторът на адресираната мрежа
получава рапорт, който се изпраща по RS485+ обратно към Координаторът
на Главната мрежа. Рапортът е
терминиран с NULL. Той
може да включва 0 или повече стринга, завършващи с CR. Когато адреса на безжичната
мрежа е 0, не се извършва комуникация по RS485+, а направо се формира вътрешна команда по
радиоканала на Главната безжична мрежа. Вътрешните команди имат
общ формат:
GGG_COMMAND:N=X,Y,Z На Фиг.1
– Фиг.6. са показани основните параметри и описание на различните
вътрешни команди. 1.2. Списък на вътрешните команди на
Технологичния протокол
Фиг.1. Основни групи вътрешни команди. N, X, Y, Z са десетични числа,
представящи стойности на използвани в командата системни променливи (Фиг.2.).
Фиг.2. Системни променливи като параметри
на вътрешните команди.
Фиг. 3. Команди, специфични за Координатора и управляващи само Координатора.
Фиг.4. Команди, предназначени за конкретен НОД (Рутер) от мрежата, указан с индекс от съответната База данни.
Фиг.5. Команди за работа със Базата данни, поддържана от Координатора за регистрираните НОД-ове на
съответната безжична мрежа.
Фиг.6. Мрежови команди, предназначени за всички НОД-ове. 2. Спецификация на Семантичния език Семантичният език е програмно средство за управление и комуникация на Активните мрежови устройства, включени като НОД-ове в някоя от локалните безжични мрежи на Мултимрежата чрез Технологичния слой. Основна задача на Семантичния език е да осигури възможност за оператора на ГОС да задава режимите на работа, управлява програмно и наблюдава в „реално време” технологичните параметри на външните обекти контролирани от Активните мрежови устройства. Особеност на реализацията на БПМИО е възможността всяко Активно мрежово устройство да
функционира като автономно- т.е. невключено в Технологичен слой.В този случай се използва външен GPRS модем, свързан жично към устройството
(като основен интерфейс) и Семантичния
език (като средство за
програмиране) за параметризиране и въвеждане на приложната програма ( с
помощта на GPRS или
безжичен Интернет). Съществува и опция за включване към всяко Активно мрежово устройство на ЛОС (която дублира частично работата на ГОС) за тестване и настройка на устройството. В този случай като основен интерфейс се използва вграден USB канал, поддържан от Активното мрежово устройство и USB порта на ЛОС. 2.1. Софтуерна архитектура на
Активните мрежови устройства. Активните мрежови устройства имат обща софтуерна архитектура, която определя определя в голяма степен синтаксиса и семантиката на командите на Семантичния език. Тази архитектура се базира на свойствата на въведените нови класове програмни обекти –„ външни драйверни програми” и „разширени функции”.За наименование на техните реализации ( т.е. създаване в адресното пространство на JN5148 на работни копия на тези обекти, заедно с инициализация на съответните структури и статични променливи) се използва термина програмни модули. 2.1.1. Външни драйверни програми
и разширени функции. Микроконтролерът JN5148 има
ограничена вътрешна памет (128 Kb). За да се изпълнят изискванията на различни приложения, тя е разширена
чрез външна енерго-независима S25FL512SAGMFI011 с обем 64 MB от тип FLASH, достъпна по SPI интерфейс. Външната памет има файлова организация, като всеки от файловете е с размер по-малък от 8 K. Във вътрешната памет на микроконтролера се резервират два линейни буфера с размер по 8 K всеки, за съхраняване на програмни модули за двата типа програмни обекти- разширена функция и външни драйверни програми . В даден момент е възможно активиране на една разширена функция ( заредена в съответния линеен буфер) и една или повече външни драйверни програми ( заредени в съответния линеен буфер). Външните драйверни програми и разширените функции се прехвърлят в съответни линейни буфери( т.е. създават се програмни модули), при наличие на заявка от функции на потребителското приложение. Модулите съдържат предварително компилиран програмен код (в него са включени копия на всички функции, към които има обръщение). Фърмуерът на Активните мрежови устройства предоставя методи за достъп на потребителските приложения до статуса, параметрите и резултатите от изпълнениетс на програмните модули. Външните драйверни програми и разширени функции имат обща структура [ Фиг. 7]. Двата типа програмни
модули се идентифицират с уникални имена ( същите се използват като имена на файловете, съдържащи
програмния код на съответните обекти, във
външната FLASH памет). Програмните модули( външни драйверни програми и разширени функции) се реализират чрез Машини на състоянията ( State machine). Всички работни динамични и статични променливи ( необходимите входни и/или изходни буфери за данни и резултати, статусни променливи, пойнтери и броячи) са включени в тялото на модулите и след генерацията на последните (в съответните линейни буфери) са позиционирани в адресното пространство на съответния буфер. Различните драйверни
програми и разширени функции реализират «собствени» Машини на състоянията, включени в тялото на
модулите. Това им осигурява възможности за индивидуална интерпретация на
входните параметри и резултати. Важна особеност на програмните модули ( на външните драйверни програми и разширени функции) е че те работят като синхронни програмни устройства. За целта в тялото на модулите е включен параметър, наречен Time_scan. Той определя интервал, през който фърмуерът на Активните мрежови устройства стартира изпълнението на Машината на състоянията на съответния модул. Контролира се целостта и валидността на информацията включена в модулите. Пълен контрол се извършва само при начално зареждане в линейния буфер. При следващи обращения към програмния модул се тества само валидността на заглавната контролна сума, тъй като в тялото на модула са включени полета за данни, които динамично се променят.
Фиг.7. Структура на програмния модул на
външна драйверна програма или разширена функция. 2. 2. Команди на Семантичния
език. Семантичният език включва команди осигуряващи достъпа до информационната структура на различните разширени функции и външни драйверни програми поддържани от Активните мрежови устройства. Синтаксиса на тези команди е същия, като на командите на Технологичния протокол. Отново се използват външни и вътрешни Семантични команди, като вътрешните се включват в тялото на външните. Същият е и механизма, по който след постъпване в Координатор на някоя автономна безжична мрежа, последния извлича от външна Семантична команда на вътрешна такава и я транспортира по безжичен начин към НОД-овете на тази мрежа. Основното различие е в начините на интерпретация на Семантичните команди. Докато командите на Технологичния протокол се изпълняват от Интерпретаторът на командите директно, Семантичните команди се интерпретират от вградената логика в разширените функции и външни драйверни програми, които са активни в дадения момент. Интерпретаторът на командите участва в този процес само като регистратор на наличието на постъпила Семантична команда и веднага предава управлението на вградената в нея Машина на състоянията за последваща обработка(конфигурирайки статичните променливи управляващи тази машина). Тези команди взаимодействат с полета от структурата на програмния модул (Фиг. 28.), без да отчитат конкретната семантика( тя се определя от съответните разширени функции и външни драйвери). Външните Семантични команди
имат следния синтаксис: <N: на безжичната мрежа>:<вътрешна Семантична
команда><CR> Изпълнението на външна Семантична
команда се извършва на няколко стъпки: 1. Координаторът на Главната
безжична мрежа извежда по RS485+
кода на командата; 2. Координаторът на адресираната мрежа
получава този код; 3. Координаторът на адресираната мрежа отделя
кода, обозначен като <вътрешна Семантична
команда> и го подава към
своята мрежа, като вътрешна Семантична
команда по съответния радиоканал; 4. След изпълнението на командата, Координаторът на адресираната мрежа
получава рапорт, който се изпраща по RS485+ обратно към Координатора на
Главната безжична мрежа. Рапортът е терминиран с NULL. Той може да включва 0 или повече
стринга, завършващи с CR. Когато адреса на безжичната
мрежа е 0, не се извършва извеждане по RS485+ и направо се формира вътрешна Семантична
команда по радиоканала на Главната безжична мрежа. Вътрешните Семантични команди имат общ формат: SEM_COMMAND:N=X,Y,Z N e десетично число, представящо индекс (пореден номер) на Активното мрежово устройство в Базата
данни за регистрирани НОД-ове на Координатора. То се използва като
адрес на устройството. X е текстови стринг, съдържащ името (съвпадащо с името на файл в
външната FLASH) на съответна Разширена функция или Външна драйверна програма. Y е текстови стринг (определящ входните параметри на разширената
функция или външната драйверна програма). Z е десетично число (определящ вида на обработката или вътрешен
специфичен параметър). Съществуват две групи вътрешни Семантични команди-Основни и Помощни. Те са имплементирани във всички разширени функции и външни драйвери. Поддържат се от фърмуера на всички Активни мрежови устройства. 2.3 Списък на вътрешните Семантични
команди -
Основни Семантични команди.
Фиг. 8. Вътрешни Семантични команди
от група Основни Семантични команди. -
Помощни Семантични команди.
Фиг. 9. Вътрешни Семантични команди
от група Помощни Семантични команди. След изпълнението на
вътрешната Семантична команда,
постъпила по канала, реализиран чрез Технологичния
слой, последната генерира рапорт за резултата, който се капсулира в
последователност от терми и извежда
чрез Технологичния слой към Координатора на локалната мрежа. Във
случая, когато Семантична команда е
постъпила от външно устройство, включено по сериен интерфейс към Активното
мрежово устройство, нейния рапорт се капсулира в записи, съответни на на
изискванията на външното устройство и извежда към него, използвайки съответен
комуникационен драйвер (USB, GPRS). Спазва се принципа, че изпращача на Семантичната команда е получател на съответния рапорт генериран
от нея. |