Создание рецептов и работа с Flash-картами на панелях оператора Delta Electronics DOP-B

1. Создание рецепта в конфигураторе DOP-Soft

Каждый рецепт - это перечень параметров, которые соответствуют определенному типу продукта. Например, рецепт бетона состоит из параметров: количество цемента, количество воды, химических добавок и прочего.Панель поддерживает два типа рецептов: 16-ти битный рецепт и 32-х битный рецепт. Это означает, что параметры рецепта (регистры, в которые записываются данные) 16-ти битные (типа Word) или 32-х битные (типа Doble Word). Посмотрим как создается 16-ти битный рецепт (рисунок 1). Создадим проект для панели в конфигураторе DOP-Soft (ver. 1.01.04). Во вкладке «Options» выберем “Recipe”. В окне поставим галочку “Enable Recipe”, в поле “Length” указывается количество параметров рецепта, в поле “Group” количество рецептов. Нажимаем “Input”.

Создание 16-ти битного рецепта
Рисунок 1 — Создание 16-ти битного рецепта

В поле “Address” вводится адрес регистра ПЛК, начиная с которого будут записываться параметры рецепта при копировании рецепта из панели в ПЛК (параметр W1 запишется в регистр D100, параметр W2 запишется в регистр D101 и т.д.). В поля рецепта вводим значение параметров W1, W2,… Рецепт создан в памяти, теперь с ним можно работать. Адрес в панели, соответствующий параметру рецепта, содержится в “Internal Memory” и называется RCP…(номер параметра).

Для отображения номера рецепта используем «Numeric Input» (рисунок 2). Добавляем этот элемент на экран и заходим в свойства.

Отображение номера рецепта
Рисунок 2 — Отображение номера рецепта

Выбрав внутреннюю память панели, выбираем тип «RCPNO». Теперь, указывая необходимое значение, мы будем выбирать необходимый рецепт: RCPNO=1 означает, что выбран рецепт №1 или первая группа (см. выше Group 1), RCPNO=3 означает, что выбран рецепт №3 или третья группа (см. выше Group 3).

Для отображения или редактирования параметров используется тип переменной RCP…(номер параметра) во внутренней памяти панели. Но с обозначением адреса параметра есть некоторые особенности. Существует, так называемый, буфер. Буфер - это область адресов, начиная с RCP0 и до RCP (количество параметров т.е. «Length») в нашем примере до RCP2.

Создадим три объекта «Numeric Input» (рисунок 3) и каждому присвоим адрес отображаемого параметра.

Создание объектов Numeric Input
Рисунок 3 — Создание объектов Numeric Input

Теперь, выбрав нужный номер рецепта, в буфере сразу отобразятся параметры выбранного рецепта. Для более удобного отображения перечня рецептов можно применять «List Box» (рисунок 4). Находится он в группе «List» и служит для визуального отображения.

Отображение перечня рецептов с помощью List Box
Рисунок 4 — Отображение перечня рецептов с помощью List Box

Чтобы настроить «List Box» (рисунок 5), необходимо в свойствах объекта выбрать адрес RCPNO (отображение номера рецепта).

Настройка List Box
Рисунок 5 — Настройка List Box

Затем в поле «State counts» (рисунок 6) записываем число означающее количество наших рецептов и +1 для заголовка. В нашем примере (3 рецепта и 1 поле заголовка) получается число 4.

Количество рецептов
Рисунок 6 — Количество рецептов

Далее в меню «Text» (рисунок 7) для удобства пропишем их названия для каждого рецепта. Теперь, выбирая нужный пункт, мы автоматически выбираем нужный рецепт.

Названия рецептов
Рисунок 7 — Названия рецептов

2. Привязка рецепта и ПЛК Delta

Следующим этапом работы является «привязка» рецепта и ПЛК. Для удобства свяжем ПЛК Delta Electronics и панель панель оператора DOP-B по интерфейсу RS-232 (с помощью кабеля DVPACAB2A30), используя внутренний протокол Delta DVP PLC (рисунок 8).

Настройка внутреннего протокола Delta DVP PLC
Рисунок 8 — Настройка внутреннего протокола Delta DVP PLC

В панеле укажем регистр, отвечающий за работу с рецептами. Данный регистр относится к блоку управления панели (Control Block), т.е. перечню регистров, отвечающих за возможность управления с ПЛК панелью оператора. Более подробное описание блока управления можно посмотреть в руководстве по программированию в среде DOP-Soft. Заходим в меню »Option« → »Configuration« → »Control Block« (рисунок 9). Активируем регистры блока управления.

Активация регистров блока управления
Рисунок 9 — Активация регистров блока управления

Теперь регистр ПЛК D5 отвечает за рецепты. Для того, чтобы записать данные выбранного рецепта в заранее выбранную область регистров (в нашем случае с D100), необходимо в регистр D5 записать число 4, а для того, чтобы записать из ПЛК в панель нужно записать число 2. Для этого воспользуемся кнопкой «Set Constant» в меню «Button» (рисунок 10). Разместив кнопку в поле экрана, заходим в параметры кнопки и устанавливаем в какой регистр будет записываться константа и собственно саму константу.

Параметры кнопки
Рисунок 10 — Параметры кнопки

Если мы хотим записывать данные из памяти ПЛК в регистры рецептов (например, произвели какие-то вычисления с параметрами, затем записали их в регистры начиная с D100, а после скопировали их в память панели в соответствующий рецепт), то добавляем точно такую же кнопку, но константой будет цифра 2. Для отображения регистров в ПЛК добавим три окна «Numeric Display» (рисунок 11).

Отображение регистров
Рисунок 11 — Отображение регистров

Теперь, запустив проект, мы выбираем нужный нам рецепт (рисунок 12).

Запуск проекта и выбор рецепта
Рисунок 12 — Запуск проекта и выбор рецепта

Нажимаем кнопку «запись в ПЛК» и данные из буфера рецептов копируются в регистры ПЛК (рисунок 13).

Копирование данных из буфера рецептов в регистры ПЛК
Рисунок 13 — Копирование данных из буфера рецептов в регистры ПЛК

3 .Чтение данных с USB-носителя

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

Заполним ячейки файла, сохраним файл на наш USB-накопитель (рисунок 14).

Создание файла рецепта
Рисунок 14 — Создание файла рецепта

Перед началом работы с USB-накопителем его необходимо отформатировать в файловую систему FAT32. Создадим файл формата .csv (в нашем примере будем использовать программу OpenOffice), файл «recipe.csv», параметры файла (рисунок 15).

Параметры экспорта файла
Рисунок 15 — Параметры экспорта файла

Далее, в проекте на панель добавим элементы для работы с USB-накопителем. Нам необходима кнопка «Remove Storage» для безопасного извлечения накопителя. В свойствах кнопки необходимо выбрать в поле «Access type» тип накопителя SD-карта или USB-накопитель, в примере мы использьзуем USB-накопитель (рисунок 16).

Кнопка извлечения USB-накопителя
Рисунок 16 — Кнопка извлечения USB-накопителя

Так же нам необходим индикатор наличия USB-накопителя в панели. Создадим «Multistate Indicator» (рисунок 17).

Создание индикаторов наличия USB
Рисунок 17 — Создание индикаторов наличия USB

В свойствах индикатора необходимо указать, что индикатор будет иметь два состояния и указать, что индикатор будет отображать (внутренний параметр статуса USB). Визуализировать индикатор можно по-разному (рисунок 18).

Визуализация индикатора наличия USB
Рисунок 18 — Визуализация индикатора наличия USB

Теперь, когда вставим накопитель в порт панели »USB host«, у нас будет визуализация возможности работы с USB-накопителем (рисунок 19).

Индикация наличия USB-накопителя
Рисунок 19 — Индикация наличия USB-накопителя

Для записи рецепта с или на USB-накопитель необходимо добавить добавить две кнопки «Import/Export Recipe». В свойствах кнопки необходимо выбрать какое действие будет осуществляться при нажатии на кнопку «Export» - запись на накопитель или «Import» - чтение с накопителя и тип устройства (рисунок 20).

Свойства кнопок
Рисунок 20 — Свойства кнопок

После того как USB-накопитель будет подключен к панели, мы получим визуальное подтверждение от панели, что она готова работать с USB. Мы сможем скопировать данные из файла «recipe», отредактировать их, используя буфер, и записать изменённый файл с рецептами на USB.

4. Сохранения архива на USB-накопитель

Следующим этапом добавим возможность ведения архива параметров, считываемых из ПЛК, и сохранение архива на USB-накопитель.

Раздел создания архива
Рисунок 21 — Раздел создания архива

Создадим архив. Для этого в меню «Option» зайдем в раздел создания архива «History Buffer Setup» (рисунок 21).

Создадим и настроим архив. Выберем начальный адрес регистра ПЛК, с которого начнётся архивирование. Далее укажем количество регистров архивации (в нашем примере начальный адрес регистра D200) и тогда в архив у нас будут записываться значения регистров D200, D201, D202 и D203. Добавим в архив дату и время. Выберем место хранения файла архива и так как файл будет иметь разрешение .csv, то можно в меню «Column Name» написать название столбцов архива и указать, что в столбцах тип данных «Время» и «Дата» - значения будут браться из системного меню панели (рисунок 22).

Настройка архивации
Рисунок 22 — Настройка архивации

Источником сигнала записи в архив будет ПЛК. Можно сделать так, чтобы данные в архив будут записываться по времени с установленным временем выборки. Например, прошло 100 мс и данные записались, прошло еще 100 мс - опять записались и до тех пор пока количество выборок не достигнет числа указанного в поле «Sample Number» (рисунок 23).

Количество и частота выборок
Рисунок 23 — Количество и частота выборок

Рассмотрим случай, когда ПЛК будет «указывать» дату записи данных в архив. Для этого нам нужен будет регистр D3 в блоке управления «Control Block» (рисунок 24).

Настройка регистра D3
Рисунок 24 — Настройка регистра D3

Для того, чтобы записались данные в архив нам нужно записать константу 3 в регистр D3 (подробное описание почему именно 3 можно посмотреть в руководстве по программированию панели). Сделаем специальный бит программе ПЛК, при срабатывании которого будет произведена запись в архив (рисунок 25).

Создание специального бита
Рисунок 25 — Создание специального бита

Так как установлен автоматический сброс флага «Auto Reset Flags», то в программе ПЛК при необходимости записи значения просто включать M0. В результате на USB-накопителе будет создан файл архива с именем «Archive» (рисунок 26).

Чтение созданного файла Archive
Рисунок 26 — Чтение созданного файла Archive.csv

 Наверх