Введение

Мне недавно пришлось решать следующую задачу: Необходимо измерить и передать измеренные значения одного периода аналогового сигнала с частотой от 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 с, что совсем не быстро.

Некоторые технические моменты:

Достоинства:

Недостатки:

ПЛК Beckhoff + EL3702

Данный способ состоит в использовании ПЛК Beckhoff и специального модуля с передискретизацией (oversampling) EL3702. Обычный модуль за один такт выполняет одно измерение, данный модуль позволяет измерять до 100 000 измерений за 1 такт и представлять данные как элементы массива заданной размерности. То есть допустим такт задачи равен 1 мс и задан коэффициент деления равным 100. Это значит что в начале следующего такта будет доступен массив из 100 элементов, содержащий измеренные значения с дискретом 1 / 100 мс.

Некоторые технические моменты:

Достоинства:

Недостатки:

Выводы

Если бы я сейчас выбирал способ для решения данной задачи и не сильно был ограничен в бюджете, а также реализовывал его в одиночку, то я бы выбрал вариант Beckhoff + EL3702. Для меня знаком и контроллер и модуль. Полученные "сырые" данные я бы передал на ПК по TCP/IP, на котором провел обработку и отобразил данные.

Однако мне пришлось реализовывать решение задачи на связке ПЛК Beckhoff + KL3362. Как я это делал и что у меня получилось я опишу более подробно в одном из следующих постов.