Общая структура и поток данных

Среда выполнения проекта IWS работает на машине администратора (на платформах Windows 2K/XP/Vista/CE) и складывается из следующих модулей, или потоков (элементарных программ, выполняющихся независимо друг от друга):















Ни один из перечисленных модулей не обменивается данными с другим модулем напрямую. Вместо этого, все потоки получают и отправляют данные в базу тегов приложения, которую по праву можно назвать «сердцем» среды IWS.


База тегов приложения структурирует потоки данных между модулями. Она хранит в себе все значения всех тегов, а также ассоциированные с ними состояния и свойства (такие как условия алармов, временные метки, достоверность, и т.д.).


Заметим: Теги являются переменными, задействованными в работе экранов и редакторов. За подробной информацией см. раздел «Создание и использование базы тегов».



В каждый момент времени каждый модуль IWS содержит релевантную себе виртуальную таблицу тегов. База тегов приложения использует эту таблицу для определения, какой модуль, в какой информации нуждается. Приведём пример: окно выполнения приложения обладает своей виртуальной таблицей, в которой перечислены все используемые экранами теги. Если в базе изменяется значение какого-либо тега, то база посылает окну выполнения сообщение, содержащее указание тега и его обновления. Окно в свою очередь должным образом модифицирует экраны или их объекты.


Приведём другой пример. Пусть драйвер считывает новые данные с контроллера. Тем самым он обновляет в базе приложения значения привязанных к ячейкам памяти этого контроллера тегов. Если требуется вывод новых считанных с контроллера данных на экране, база приложения вновь присылает их окну выполнения, а окно выводит данные на экран.



Обратим внимание, что драйвер не пересылает новые значения тегов напрямую окну выполнения приложения. Более того, между задачами не формируется пул: получив новые данные, база тегов приложения незамедлительно отправляет их всем задачам, пользующимися этой информацией.


Важно: Окно выполнения приложения изменяет поведение объекта только, если изменилось значение (хотя бы) одного ассоциированного с этим объектом тега.

Если, к примеру, на экране присутствует объект ввода/вывода текста, не имеющий ассоциированного с ним тега (NoInputTime()), этот объект не будет подвергаться модификации, поскольку нет такого тега, изменение значения которого могло бы это за собой повлечь.


Архитектура среды значительно увеличивает производительность потока внешних данных, что приводит к упрощению создания новых внешних задач. Однако это не означает, что выполнение задач проходит в непосредственной зависимости друг от друга. Каждая задача может получить информацию, вырабатываемую другой задачей, путём использования базы тегов приложения.



Created with the Freeware Edition of HelpNDoc: Free CHM Help documentation generator