Delta DVP массивы [ARRAY], индексная адресация, работа с массивами.


Delta DVP массивы [ARRAY] - простейший пример использования.


При разработке программы контроллера Delta DVP массивы применяются для решения множества различных задач, к примеру, чтение данных по COM2 с Modbus устройства при помощи API 150 MODRW (MODBUS Read/Write) в  цикле и заполнение массива типа WORD полученными данными. Для начала мы разберем основы работы с массивами на примере простейшей программы.

Поскольку подобные вопросы остались без ответа на сайте Delta мы решили описать это в нашей статье в более простом и понятном виде нежели в инструкции.

Для начала в разделе "глобальные переменные" (Global Symbols) добавим все переменные которые будут использоваться в нашей программе: добавим два таймера - Pulsar_1 и Pulsar_2, под номерами T0 и T1 соответственно, массив данных типа WORD из 20 элементов под названием DATA_ARRAY и индексный регистр Е0 под названием Index. На представленном скриншоте показано что должно получится.

Delta DVP массивы - используемые глобальные символы

Delta DVP массивы - используемые глобальные символы

Далее в разделе Programs в дереве иерархии объектов создадим новую программу (POU), в новой программе создадим генератор импульсов основанную на двух таймерах как показано ниже, прелесть этой схемы в том что частоту импульсов мы можем настраивать как нам удобно меняя уставки таймеров:

Delta DVP Массивы - Генератор импульсов.

Delta DVP Массивы - Генератор импульсов.

По переднему фронту Pulsar_2 формируем очередь запросов и заполнение массива DATA_ARRAY данными, так как программа является простейшим примером, то заполним массив самими данными индекса, более сложные варианты мы рассмотрим в следующей статье.

Delta DVP Массивы - заполнение массива при помощи очереди запросов

Delta DVP Массивы - заполнение массива при помощи очереди запросов

Как мы видим на данном примере, каждые две секунды у нас генерируется импульс, который увеличивает Index на 1 до тех пор пока индекс не равен 10, как только Index=10 ему присваивается 0.


 

Примечание:

Для того чтобы обратиться к элементу массива с использованием индексного регистра, необходимо использовать следующий синтаксис: DATA_ARRAY@Index где Index это используемый нами индексный регистр Е0.

Для того чтоб обратиться к элементу массива напрямую мы используем синтаксис DATA_ARRAY[0] таким образом мы обратимся к элементу массива под номером 0.


 

Далее значение Index заносится в массив под соответствующим номером:

Data_Array@Index = Index

при Index = 0 ---> Data_Array[0] = 0

при Index = 1 ---> Data_Array[1] = 1

при Index = 2 ---> Data_Array[2] = 2

В принципе, тут все предельно просто, таким образом мы быстро заполнили массив данными от 1 до 9, в следующей статье мы рассмотрим более сложную программу, будем получать данные от modbus устройства и заполнять ими Delta DVP Массивы.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *