УПРАЖНЕНИЕ: ПЕРЕМЕННЫЕ
Цель | После выполнения этого упражнения вы сможете: · Определять производные (пользовательские) типы данных 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 |