4.4.2.3.4. Создание типа
Чтобы создать тип, необходимо выполнить следующие действия:
1. Перейдите в определения проекта "MyLib" двойным кликом по объекту в обозревателе решений.

2. Добавьте на рабочую область элемент "Пространство имен" путем перетаскивания из панели элементов.

3. Задайте добавленному элементу имя "Types" и перейдите в объект, кликнув по его названию.

В пространстве имен "Types" будут храниться все типы библиотеки.
|
4. Рассмотрим создание типа на примере аналогового датчика. Добавьте из панели элементов пространство имён и в его свойствах укажите имя "AI1".

5. Перейдите в пространство имен "AI1", кликнув по названию объекта, и добавьте два логических типа из панели элементов:
PLC_View (представление типа для уровня ПЛК);
IOS_View (представление типа для уровня сервера ввода/вывода).

6. Выделите представление "PLC_View" и в окне свойства в поле "Аспект" укажите аспект "PLC_Aspect" из пространства имен "Aspects".

7. Аналогичным образом выделите представление "IOS_View" и в окне свойства в поле "Аспект" укажите аспект "IOS_View" из пространства имен "Aspects". В поле "Представляемый тип" выберите тип "PLC_View".

8. Перейдите в представление "PLC_View" типа "AI1", кликнув по названию объекта.

В представление "PLC_View" необходимо вынести те параметры, которые будут осуществлять обмен данными с ПЛК.
|
Для этого необходимо посмотреть на реализацию функционального блока аналогового датчика в среде разработки Astra.IDE.
У функционального блока есть входные и выходные переменные для взаимодействия с ВУ. Данные параметры отмечены атрибутом {attribute 'symbol' := 'readwrite'}.
Рассмотрим добавление параметров на примере входной переменной "MAN_ON" ФБ "AI1". Данный параметр отвечает за команду установки режима аналогового датчика.

9. В представление "PLC_View" добавьте параметр типа bool из раздела "Параметр" панели элементов.

10. Выделите добавленный параметр и в окне "Свойства" задайте ему имя "MAN_ON".

11. Выделите параметр "MAN_ON" и в окне "Свойства" задайте направление "вход/выход".

Направления параметрам задаются в зависимости от типа взаимодействия с ПЛК:
вход - запись в ПЛК (используется для только входных сигналов);
выход - чтение из ПЛК (используется для сигналов состояния);
вход/выход - чтение и запись из ПЛК (используется для команд и уставок).
|
12. Аналогичным образом добавьте другие параметры ФБ "AI1", указанных в таблице:
|
Параметр
|
Тип
|
Направление
|
|
MAN_ON
|
bool
|
вход/выход
|
|
MAN_VALUE
|
float4
|
вход/выход
|
|
FACT_VALUE
|
float4
|
выход
|
|
SIGN
|
int4
|
выход
|
|
MODE
|
bool
|
выход
|
|
DIAGN
|
int4
|
выход
|
В результате должен получится следующий вид:

Если в функциональном блоке используются структурные переменные, используйте элемент "Сокет" из панели элементов. Сокет является аналогом структур в Astra.IDE.
|
В данном примере будем использовать сокет для выходной структурной переменной "OUT" (значения датчика с качеством) и входной структурной переменной "CONFIG" (настроечные параметры) функционального блока "AI1".
13. Добавьте на рабочую область элемент "Сокет" из панели элементов и задайте ему имя "CONFIG", а также укажите направление "вход/выход".

При указании направления сокета параметры внутри сокета примут то же направление.
|
14. Перейдите в сокет "CONFIG", кликнув по названию объекта.

15. Добавьте настроечные параметры функционального блока, воспользовавшись вкладкой "Параметр" панели элементов.
Типы и названия параметров должны соответствовать параметрам в структуре "AI_CONFIG" в Astra.IDE.
|

16. Аналогичным образом добавьте сокет "OUT" с направлением "выход".
В результате должно получиться следующее представление аналогового датчика на уровне ПЛК:

Типы параметров должны совпадать с типами данных в ПЛК.
|
17. Перейдите в пространство имён "AI1" двойным кликом по названию объекта в обозревателе решений.

18. Перейдите в представление "IOS_View", кликнув по названию объекта.

19. Для передачи данных между представлениями используются аспектные ссылки.
Аспектная ссылка – это ссылка, которая добавляется в объект и указывает на другое представление этого объекта.
|
Нажмите ПКМ по свободному полю и выберите из котекстного меню команду "Добавить" -> "Аспектную ссылку".

20. В открывшемся окне выберите представление, на которое необходимо добавить ссылку и нажмите кнопку "Далее".

22. Нажмите кнопку "Далее".

23. Выделите параметры, ссылки на которые требуется экспонировать, и нажмите кнопку "Готово".

В результате образуется связь между представлением сервера ввода/вывода и представлением ПЛК. Связь представляет собой стрелку, направленную от одного сигнала к другому.
Если связи не отобразились, нажмите клавишу "F5".
|

Стрелка означает, что при изменении значения сигнала-источника (у которого стрелка берёт начало), его новое значение будет записано в сигнал-приёмник (к которому направлена стрелка). По умолчанию, в сигнал-приёмник записывается копия значения сигнала-источника, однако в свойствах связи можно настроить другие варианты записи.
Чтобы добавить связь вручную, протяните стрелку от источника сигнала к приёмнику сигналу или сокету и свойствах связи настройте вид связи.
|
В самых простых случаях представление на сервере ввода/вывода совпадает с представлением на уровне ПЛК. Однако в большинстве случаев необходимо делать дополнительную обработку параметров на сервере ввода/вывода.
Далее рассмотрим примеры дополнительной обработки на сервере ввода/вывода: