4.4.1.2.3.3. Создание прикладной программы ПЛК REGUL R500S
Рассмотрим процесс разработки прикладного программного обеспечения на примере аналогового датчика с двумя порогами сигнализации. Для этого необходимо создать группу безопасности в безопасной части контроллера и программу передачи данных на верхний уровень в небезопасной части.
Группа безопасности
1. Чтобы создать новую группу безопасности выберите в контекстном меню приложения "Plc Safety Logic" пункт "Добавление объекта" → "FBDObject...".
2. Задайте название программы "SAI2", укажите тип "Группа безопасности". Нажмите кнопку "Добавить".
Откроется редактор программы "SAI2":
3. На "Панели инструментов" раскройте раздел библиотеки "pssis(lib)" и перетащите в "Network" блок "UDFB_SAI2".
4. В редакторе функциональной группы безопасности задайте имя цепи – "Аналоговый вход с двумя порогами сигнализации" и переименуйте блок в "UDFB_SAI2"
5. Двойным кликом откройте редактор глобальных переменных "SafetyGVL" и добавьте следующие переменные:
Имя переменной
|
Тип значения
|
Категория
|
Начальное значение
|
NSE
|
FB_UDFB_SAI2_PV
|
REAL
|
VAR_GLOBAL
|
0
|
R
|
FB_UDFB_SAI2_STATE
|
DINT
|
VAR_GLOBAL
|
0
|
R
|
FB_UDFB_SAI2_PH
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_PL
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_HH
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_SH
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_SL
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_LL
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_HYS
|
REAL
|
VAR_GLOBAL
|
0
|
W
|
FB_UDFB_SAI2_CONTR
|
DINT
|
VAR_GLOBAL
|
0
|
W
|
GRP_MOS
|
BOOL
|
VAR_GLOBAL
|
FALSE
|
-
|
6. В группе безопасности "SAI2" в редакторе переменных добавьте следующие переменные:
Имя переменной
|
Тип значения
|
Категория
|
Начальное значение
|
UDFB_SAI2_IN
|
REAL
|
VAR_INPUT
|
-
|
UDFB_SAI2_IN_STS
|
BOOL
|
VAR_INPUT
|
-
|
UDFB_SAI2_MEN
|
BOOL
|
VAR_INPUT
|
-
|
UDFB_SAI2_HLD
|
BOOL
|
VAR_INPUT
|
-
|
UDFB_SAI2_PV
|
REAL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_HH_TRP
|
BOOL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_H_TRP
|
BOOL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_L_TRP
|
BOOL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_LL_TRP
|
BOOL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_FLT_TRP
|
BOOL
|
VAR_OUTPUT
|
-
|
UDFB_SAI2_MA
|
BOOL
|
VAR_OUTPUT
|
-
|
FB_UDFB_SAI2_PV
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_STATE
|
DINT
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_PH
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_PL
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_HH
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_SH
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_SL
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_LL
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_HYS
|
REAL
|
VAR_EXTERNAL
|
-
|
FB_UDFB_SAI2_CONTR
|
DINT
|
VAR_EXTERNAL
|
-
|
GRP_MOS
|
BOOL
|
VAR_EXTERNAL
|
-
|
UDFB_SAI2_IOH
|
REAL
|
VAR_CONST
|
20.0
|
UDFB_SAI2_IOL
|
REAL
|
VAR_CONST
|
4.0
|
UDFB_SAI2_STATE_ITERN
|
DINT
|
VAR
|
0
|
7. Откроется редактор действия "EXAMPLE_AI1". Задайте имя страницы "Аналоговый датчик".
8. Задайте переменные в областях "???".
9. Откройте "SafetyMain" и перейдите во вкладку "Схема проекта".
10. Нажмите на , чтобы сделать созданную группу безопасности активной.
Для того, чтобы сделать данную группу безопасности неактивной нажмите кнопку .
|
11. Создайте информационные связи между модулями ввода и группой безопасности.
Создание группы безопасности в безопасной части контроллера завершена.
Передача данных на верхний уровень
Для передачи данных на верхний уровень необходимо активировать небезопасный канал связи.
1. Откройте "SafetyGVL" и создайте переменную активации небезопасного канала "SafetyChannel" типа "BOOL" и значение "True".
2. Перейдите во вкладку "Общие настройки" в "SafetyMain" и выберите пункт "Включить небезопасный канал".
3. Откроется окно с предупреждением, нажмите "ОК".
4. В выпадающем списке пункта "Переменная для активации небезопасного канала" выберите созданную переменную "SafetyChannel".
5. Перейдите в группу безопасности "SAI2" и добавьте цепь, перетащив её из "Панели инструментов".
6. Задайте имя цепи - "Состояние для верхнего уровня", и создайте следующее присвоение:
7. Создайте новую программу (POU), выберите в контекстном меню приложения "Application" пункт "Добавление объекта" → "POU...".
8. Задайте название программы "MAIN", укажите тип "Программа" и язык реализации "CFC постраничный". Нажмите кнопку "Добавить".
Откроется редактор программы "MAIN":
9. Кликните на кнопку "Свойства" и выберите пункт "Режим потока данных" из выпадающего списка, затем нажмите кнопку "Применить".
10. В редакторе программы "MAIN" задайте имя страницы – "Технологические алгоритмы".
11. Создайте вторую программу (POU), выберите в контекстном меню приложения "Application" пункт "Добавление объекта" → "POU...".
12. Задайте добавляемой задаче имя "PROXY_SAI2" и укажите язык реализации "CFC постраничный".
13. Откроется редактор программы "PROXY_SAI2". Задайте имя страницы "Аналоговый вход с двумя порогами сигнализации" выберите "Режим потока данных".
14. Создайте в рабочей области следующую структуру, состоящую из элемента "PROXY_UDFB_SAI2", компоновщика "PsSIS.FROM_SAFETY_UDFB_SAI2" и селектора "PsSIS.TO_SAFETY_UDFB_SAI2". Привяжите переменные из безопасной части ко входам/выходам блоков.
Чтобы добавить объект, перетащите его из панели инструментов в рабочую область.
|
15. Чтобы программа "PROXY_SAI2" вызывалось программой "MAIN" необходимо на странице "Технологические алгоритмы" добавить объект "Элемент" из панели инструментов и задать ему имя действия, которое необходимо вызвать – "PROXY_SAI2". Добавьте объект "Комментарий" из панели инструментов и задайте комментарий "Аналоговый вход с двумя порогами сигнализации".
16. Чтобы прикладная программа "MAIN" исполнялась в контроллере, необходимо добавить ее вызов в задаче.
Перейдите двойным щелчком мыши в конфигурацию задачи TASK_MAIN.
17. Нажмите кнопку "Добавить вызов" и в ассистенте ввода выберите программу "MAIN", нажмите кнопку "ОК".
При добавлении прикладной программы "MAIN" в задачу, она отобразится в дереве устройств.