Введение
Мне недавно пришлось решать следующую задачу: Необходимо измерить и передать измеренные значения одного периода аналогового сигнала с частотой от 100 и до 200 Гц для отображения на дисплее 2 раза в секунду. Поскольку на тот момент выбор оборудования был сделан за меня, мне пришлось выполнять работу на том, что уже было выбрано, а именно программируемый логический контроллер Beckhoff CX5010 + модуль KL3362. В данном посте я сделаю краткий обзор других возможных способов измерения.
Рассмотрим следующие способы:
1) Программируемый логический контроллер (далее ПЛК) Beckhoff + KL3362 (или 3361);
2) ПЛК Beckhoff + EL3702;
Краткий обзор
ПЛК Beckhoff + KL3362
Данный способ состоит в использовании ПЛК Beckhoff и специального модуля - осциллографа KL3362 (KL3361). Модули бывают 2-ух канальные(KL3362) и 1-но канальные (KL3361). Данные модули по функционалу мало чем отличаются от обычного осциллографа и если вы хотя бы раз имели дело с обычным осциллографом, то вы, скорее всего, быстро поймете почему его так назвали.
На мой взгляд этот вариант хорош для исследования сигналов, а не для циклического измерения, так как модуль имеет память на 4000 измеренных значений и неплохую дискретность в 100 мкс, а для чтения каждой точки из памяти необходим один такт задачи. Таким образом если мы хотим получить 4000 измеренных значений, то нам понадобится 4000 тактов. Если такт равен 3 мс, то 4000 * 3 = 12 000 мс = 12 с, что совсем не быстро.
Некоторые технические моменты:
- Память на 4000 измерений;
- Минимальное время между измерениями - 100 мкс в обычном режиме и 10 мкс в режиме Fast Sampling;
- Считывание одного измерения занимает 1 такт задачи ПЛК.
Достоинства:
- Функциональная схожесть с обычным осциллографом;
- Память на 4000 измерений;
Недостатки:
- Ограничение по времени между измерениями 100 мкс в обычном режиме и 10 мкс в режиме Fast Sampling;
- Ограничение на количество измеренных значений равное 4000;
- Относительная сложность доступа к измеренным данным;
- Считывание одного измерения занимает 1 такт задачи ПЛК;
- Не очень добротная документация (субъективно);
ПЛК Beckhoff + EL3702
Данный способ состоит в использовании ПЛК Beckhoff и специального модуля с передискретизацией (oversampling) EL3702. Обычный модуль за один такт выполняет одно измерение, данный модуль позволяет измерять до 100 000 измерений за 1 такт и представлять данные как элементы массива заданной размерности. То есть допустим такт задачи равен 1 мс и задан коэффициент деления равным 100. Это значит что в начале следующего такта будет доступен массив из 100 элементов, содержащий измеренные значения с дискретом 1 / 100 мс.
Некоторые технические моменты:
- До 100 000 измерений за 1 такт;
- Измеренные данные представлены в виде массива размерности равной коэффициенту деления и каждый элемент массив содержит измеренное значение;
Достоинства:
- Относительная простота доступа к измеренным данным;
- Чтение всех измеренных данных занимает 1 такт;
Недостатки:
- Отсутствует возможность гибкой настройки старта записи измеренных значений в память. Запись в память измеренных значений происходит каждый такт автоматически самим модулем;
- Необходим контроллер серии CX.
Выводы
Если бы я сейчас выбирал способ для решения данной задачи и не сильно был ограничен в бюджете, а также реализовывал его в одиночку, то я бы выбрал вариант Beckhoff + EL3702. Для меня знаком и контроллер и модуль. Полученные "сырые" данные я бы передал на ПК по TCP/IP, на котором провел обработку и отобразил данные.
Однако мне пришлось реализовывать решение задачи на связке ПЛК Beckhoff + KL3362. Как я это делал и что у меня получилось я опишу более подробно в одном из следующих постов.
Прошлые записи
- Комната призвания
- Разбираемся с Coroutine в Kotlin - часть четвертая
- Разбираемся с Coroutine в Kotlin - часть третья
- Разбираемся с Coroutine в Kotlin - часть вторая
- Разбираемся с Coroutine в Kotlin - часть первая
- Отпуск длинною в год
- Подходит ли data class для JPA Entity?
- События как источник правды или как я в стартапе участвовал
- Код 2015 против 2023
- Jvm Internals - Перевод
- Мозг против живота или насколько трудно управлять своей жизнью