Найти в Дзене

Trace Mode 7. Написание простейшей программы. Простая обработка массива данных.

Пользователи, знакомые с Trace Mode 6, знают, что такое Call.Program и как его использовать. Однако, данный канал в 7-ой версии получил улучшения, в сравнении со своим "предком". По этому данная статья будет интересна как новичкам, так и ветеранам разработки проектов автоматизации и диспетчеризации с помощью Trace Mode. Пользуясь встроенной Справочной Системой (кнопка F1 откроет Справку об фокусированном окне), мы найдем упоминание о двух методах исчисления - обычном и векторном. Теория. Обычные вычисления. Фактически, это обычный режим работы канала Call.Program (аналог работы в Trace Mode 6). Разработчик проекта создает шаблон программы в разделе "Шаблоны программ". При переносе шаблона в узел проекта будет автоматически создан канал Call.Program, который будет реализовывать привязанный к нему шаблон программы. Аргументы канала точно соответствуют аргументам шаблона программы. В данном варианте канал работает непосредственно с привязанными к его аргументам значениями. Если нам необх
Оглавление

Пользователи, знакомые с Trace Mode 6, знают, что такое Call.Program и как его использовать. Однако, данный канал в 7-ой версии получил улучшения, в сравнении со своим "предком". По этому данная статья будет интересна как новичкам, так и ветеранам разработки проектов автоматизации и диспетчеризации с помощью Trace Mode.

Пользуясь встроенной Справочной Системой (кнопка F1 откроет Справку об фокусированном окне), мы найдем упоминание о двух методах исчисления - обычном и векторном.

Теория.

Обычные вычисления. Фактически, это обычный режим работы канала Call.Program (аналог работы в Trace Mode 6).

Разработчик проекта создает шаблон программы в разделе "Шаблоны программ". При переносе шаблона в узел проекта будет автоматически создан канал Call.Program, который будет реализовывать привязанный к нему шаблон программы. Аргументы канала точно соответствуют аргументам шаблона программы.

В данном варианте канал работает непосредственно с привязанными к его аргументам значениями. Если нам необходимо математически обработать 100 переменных одинаковым способом (умножить на 100), то придется создать 100 входных аргументов, 100 выходных переменных, написать, тиражировать и отредактировать 100 математических операций умножения входного аргумента. Та еще морока.

out1 = in1 * 100;

out2 = in2 * 100;

и так далее еще 98 строк кода.

Знатоки скажут, что можно оптимизировать код функциями. Верно!

Но не каждый знает как. А проект сдавать завтра...

Векторные вычисления. Это то, что не хватало многим молодым Разработчикам проектов. Входные и выходные аргументы не единичные значения, а целые группы значений (вектора).

На примере 100 переменных, нам будет достаточно написать всего одну строчку кода и сделать две правильных привязки.

Практика.

Создадим шаблон программы. Для примера сделаем на ST примитивную программу

Элементарная программа, выход равен произведению входа на некоторый произвольный коэффициент.
Элементарная программа, выход равен произведению входа на некоторый произвольный коэффициент.

Далее переносим шаблон в узел Проекта.

Шаблон "Программа_1" зажали ЛКМ, перенесли в Система-RTM_0-Каналы_1 и получился канал Call.Program
Шаблон "Программа_1" зажали ЛКМ, перенесли в Система-RTM_0-Каналы_1 и получился канал Call.Program

Создаем еще два канала Call с типом вызова ChGroupReq - Call_in и Call_out. Один будет содержать вектор входных значений, а второй - для записи результата мат.обработки входных.

Открываем Call.Program на редактирование и, обязательно выставляем vector clc

-3

В аргументах канала делаем привязки к атрибутам 124, ArgSize каналов Call.ChGroupReq

-4

Задаем в аргументах канала Call_in значения по умолчанию (на практике данные могут попадать из любых источников)

-5

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

Непосредственно шаблон экрана в Среде Разработки. Каждый элемент настроен на отображение значений (вверх - коэффициент умножения, слева входные значения, справа выходные).
Непосредственно шаблон экрана в Среде Разработки. Каждый элемент настроен на отображение значений (вверх - коэффициент умножения, слева входные значения, справа выходные).

Сохраняем проект, компилируем его и запускаем.

При коэффициенте =1, выходные значения (справа) равны входным (слева)
При коэффициенте =1, выходные значения (справа) равны входным (слева)
При изменении коэффициента до 2.2, выходные значения (справа) становятся ровно в 2.2 раза больше входных (слева).
При изменении коэффициента до 2.2, выходные значения (справа) становятся ровно в 2.2 раза больше входных (слева).

Таким простым способом можно с помощью одного канала Call.Program (и простого шаблона программы) обрабатывать большие массивы данных.

Успехов в освоении Программы и применении полученного опыта при создании АСУ! 👽

Список авторских статей о Trace Mode 7

Сайт Разработчика Trace Mode

Скачать БЕСПЛАТНО и официально

Форум Trace Mode 7