УПРАЖНЕНИЕ: ПЕРЕМЕННЫЕ
| Цель | После выполнения этого упражнения вы сможете: · Определять производные (пользовательские) типы данных DDT и производные (пользовательские) функциональные блоки DFB · Конфигурировать переменные проекта (переменные элементарных типов, экземпляры производных типов, экземпляры производных функциональных блоков и т.д.) |
| Прежде чем Вы начнете | Внимательно прочитайте каждую инструкцию, перед тем как приступать к выполнению заданий |
| Упражнение 1 | Шаг | Действие |
| Запустите редактор данных | ||
| Введите имена переменных элементарных типов (см. список ниже) | ||
| Создайте производный тип данных DDT: motor (см. список ниже) | ||
| Создайте производный функциональный блок DFB: valve (см. список ниже) | ||
| Введите имена следующих производных типов: · Экземпляр Pump_ 1 типа DDT motor · Экземпляр Analog_temperature встроенного производного типа ввода/вывода (IODDT) T_ANA_IN_STD · Экземпляры RS_close и RS_open элементарного функционального блока (EFB) RS · Экземпляры FBI_1, Timer_close и Timer_open элементарного функционального блока (EFB) TON · Экземпляр Open_alarm DFB ALRM_DIA · Экземпляр Control_blocking_valve DFB valve | ||
| Отобразите окно со свойствами переменных | ||
| Проведите сортировку переменных для того, чтобы отобразить только переменные типа EBOOL, комментарий к которым начинается с букв " co " | ||
| Настройте редактор данных так, чтобы в нем отображались колонки Name (Имя), Address (Адрес), Type (Тип)и Comment (Комментарий). Другие колонки не должны отображаться. |
| Список перемнных | |||
| Имя | Тип | Адрес | Комментарий |
| Open_alarm | ALRM_DIA | Alarm valve control (Управление АП-сигналом насоса) | |
| Acknowledge Blocking Blocking_error Cmd_blocking Cmd_unblocking Cool | BOOL BOOL BOOL BOOL BOOL BOOL | ||
| Eot_blocking Eot_unblocking High_anim Hole_anim1 Hole_anim2 Hot Indexing Jack_1_out Jack_2_out Jack_3_out Low_anim Middle_anim Pulse Start Temp_ok | BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL | ||
| Cmd_open_valve Ls_open_valve Open_valve | EBOOL EBOOL EBOOL | %Q0.3.2 %I0.2.2 %M3 | Command (Управление) Limit switch open valve (Сигнал концевого выключателя «Насос открыт») Order open valve (Команда «Открыть насос») |
| Hydraulic_temp | INT | %Iw0.4.0.0 | |
| Pump_1 | Motor | Pump documentation | |
| RS_close RS_open | RS RS | ||
| Machine | SFCCHART_STATE | ||
| Cooling Drilling Drilling_approach End_drilling End_threading HC_control HC_control_IN HC_control_OUT HC_Init Heating Indexing_blocking Threading Unblocking Waiting | SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE SFCSTEP_STATE | ||
| String_1 | String[32] | Important message (Важное сообщение) | |
| Analog_temperature | T_ANA_IN_STD | %CH0.4.0 | |
| Elapse_time_close Elapse_time_open | TIME TIME | ||
| FBI_1 Timer_close Timer_open | TON TON TON | ||
| Control_blocking_valve | Valve |
| Тип DDT | ||
| Имя | Тип | |
| motor · Start · Stop · Cmd · Speed · Error | <Struct> · BOOL · BOOL · BOOL · INT · BOOL |
| Тип DFB | ALARM_DIA | |||
| Имя | Тип | Значение | Комментарий | |
| Inputs COND1 COND0 Outputs ERROR Public variables AREA_NR OP_CTRL | EBOOL EBOOL EBOOL INT EBOOL | TRUE | Входы (*Input monitored for 1 – Вход, признак единицы*) (*Input monitored for 0 – Вход, признак нуля*) Выходы (*Error bit – бит ошибки*) Глобальные переменные (*Machine zone monitored by the DFB (0 to 15)*) (*If TRUE, operator acknowledgement is required – Если ИСТИНА, то требуется подтверждение оператора*) | |
| Тип DFB | Valve | |||
| Имя | Тип | Значение | Комментарий | |
| Inputs Open Close Eot_open Eot_close ack Outputs Error Cmd_open Cmd_close Public variables Preset_timer_open Preset_timer_close | BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL TIME TIME | Входы Выходы Глобальные переменные | ||
ПРЕДЛАГАЕМЫЕ РЕШЕНИЯ: ПЕРЕМЕННЫЕ
Запуск редактора данных
| В обозревателе приложения откройте папку Variables & FB instances (Переменные и экземпляры функциональных блоков),затем дважды щелкайте мышкой по строкам Elementary Variables, Derived Variables, и т.д. для заполнения соответствующих таблиц.
|
| Создание переменных элементарных типов | Выберите вкладку Variables
Для того, чтобы определить переменную:
· Дважды щелкните по первой незаполненной строке в колонке Name (Имя) (на это поле указывает стрелка) и введите имя переменной (например, Blocking)
· Дважды щелкните в той же строке по полю в колонке Type (Тип) и выберите тип переменной (например, BOOL)
· Если переменная является локализованной, дважды щелкните по полю в колонке Address и введите адрес памяти контроллера
· Если требуется, введите комментарий
|
Использование экземпляров функциональных блоков
| · Выберите вкладку Function Blocks редактора данных
· Дважды щелкните по первой незаполненной строке в колонке Name (Имя) (на это поле указывает стрелка) и введите имя экземпляра (например, Timer_close)
· Нажмите <Enter> для подтверждения
· В библиотеке <Libset> доберитесь до нужного семейства блоков (например, Timers &Counters) и выберите тип EFB (например, TON)
· Нажмите <Enter> для подтверждения
|
| Создание производного типа данных DDT | · Выберите вкладку DDT Types редактора данных
· Дважды щелкните по первой незаполненной строке в колонке Name (Имя) (на это поле указывает стрелка) и введите имя новой переменной (например, motor)
· Дважды щелкните по соответствующему полю в колонке Type и выберите тип (например, <Struct>)
· Расширьте структуру данных, нажав на символ «+»
· Дважды щелкните по полю Name, введите имя первого элемента структуры, его тип и, если требуется, комментарий
· Дважды щелкните по следующей строке (она помечена стрелкой), введите следующий элемент и т.д.
· Выберите рассматриваемый тип DDT (т.е. motor)
· Проанализируйте этот тип используя контекстное меню Build/Analyze
|
| Если в результате анализа не будет выявлено ошибок, иконка около DDT изменится:
|
Использование экземпляра DDT
| · Выберите вкладку Variables в редакторе данных
· Щелкните дважды по первому незаполненному полю Name (на него указывает стрелка) и введите имя экземпляра (например, pump_1)
· Щелкните дважды по полю Type в этой же строке:
· Нажмите на кнопку с многоточием […]
· В библиотеке <Application> (Приложение) выберите нужный производный тип данных DDT (например, motor)
· Нажмите <OK> для подтверждения
|
Создание типа DFB
| · Выберите вкладку DFB Types в редакторе данных
· Дважды щелкните по строке в колонке Name, отмеченной стрелкой и укажите имя нового DFB (например, valve)
· Расширьте новый DFB, нажав на символ «+»
· Расширьте папку <Inputs>, нажав на символ «+»
· Дважды щелкните по полю Name, введите имя первого входа (например, open), его тип и, если требуется, комментарий
· Дважды щелкните по следующей строке, введите следующий вход и т.д.
· Аналогично определите элементы в папках <outputs>, <inputs/outputs>, <public> и <private>
· Программа в разделе <section> будет определена в упражнении по изучению DFB
· Отметьте рассматриваемый тип DFB (т.е. valve)
· Выполните анализ, используя контекстное меню Build/Analyze
|
Использование экземпляра DFB
| · Выберите вкладку Function Blocks редактора данных
· Щелкните дважды по строке, отмеченной стрелкой и введите имя экземпляра DFB (например, Control_blocking_valve)
· Нажмите <Enter> для подтверждения и проверки
· В соответствующей библиотеке (в данном случае - <Application>) выберите нужный тип DFB (например, valve)
· Нажмите <OK> для подтверждения
|
Отображение свойств переменной
| · Отметьте переменную (например, pump_1)
· Щелкнув правой кнопкой мыши по этой строке, выберите в меню строку Properties (Cвойства) переменной
|
Использование фильтра для сортировки переменных
| · Щелкните по иконке фильтра (Filter)
· Отметьте галочками строки Commen t и Type в колонке Name
· Введите условия отображения для фильтрации переменных:
– co* в строке комментария (Comment)
– EBOOL для строки типа (Type)
· В результате отобрязятся только переменные типа EBOOL, имеющие комментарий, начинающийся с подстроки "co"
|
Настройка редактора данных
| · Щелкните правой кнопкой мыши для доступа к настройке колонок (Customize Column)
· Отметьте галочками строки, соответствующие именам колонок, которые необходимо отображать: Type, Comment (Name and Address are always displayed)
· Испольлзуйте кнопки, показанные в правой части панели, для того, чтобы задать нужный порядок отображения колонок: Name, Address, Type and Comment
|
Запуск редактора данных
Для того, чтобы определить переменную:
· Дважды щелкните по первой незаполненной строке в колонке Name (Имя) (на это поле указывает стрелка) и введите имя переменной (например, Blocking)
· Дважды щелкните в той же строке по полю в колонке Type (Тип) и выберите тип переменной (например, BOOL)
· Если переменная является локализованной, дважды щелкните по полю в колонке Address и введите адрес памяти контроллера
· Если требуется, введите комментарий
Использование экземпляров функциональных блоков
· В библиотеке <Libset> доберитесь до нужного семейства блоков (например, Timers &Counters) и выберите тип EFB (например, TON)
· Нажмите <Enter> для подтверждения
· Выберите рассматриваемый тип DDT (т.е. motor)
· Проанализируйте этот тип используя контекстное меню Build/Analyze
Использование экземпляра DDT
· Нажмите на кнопку с многоточием […]
· В библиотеке <Application> (Приложение) выберите нужный производный тип данных DDT (например, motor)
· Нажмите <OK> для подтверждения
Создание типа DFB
· Отметьте рассматриваемый тип DFB (т.е. valve)
· Выполните анализ, используя контекстное меню Build/Analyze
Использование экземпляра DFB
· В соответствующей библиотеке (в данном случае - <Application>) выберите нужный тип DFB (например, valve)
· Нажмите <OK> для подтверждения
Отображение свойств переменной
Использование фильтра для сортировки переменных
· Отметьте галочками строки Commen t и Type в колонке Name
· Введите условия отображения для фильтрации переменных:
– co* в строке комментария (Comment)
– EBOOL для строки типа (Type)
· В результате отобрязятся только переменные типа EBOOL, имеющие комментарий, начинающийся с подстроки "co"
Настройка редактора данных
· Отметьте галочками строки, соответствующие именам колонок, которые необходимо отображать: Type, Comment (Name and Address are always displayed)
· Испольлзуйте кнопки, показанные в правой части панели, для того, чтобы задать нужный порядок отображения колонок: Name, Address, Type and Comment