Найти в Дзене
Геннадий Антонов

Полная автоматизация работы с Tesys T. Ассемблер и дизассемблер логики Tesys T.

Какие преимущества дает написание своего собственного компилятора логики для реле Tesys T?

Какие преимущества дает написание своего собственного компилятора логики для реле Tesys T?

Конечно же это увеличение скорости работы, но самое главное, это возможности автоматизации.

Автоматизацией я называю возможность выполнять большую часть работы, если не всю, без участия человека.

Это не значит, что человек не нужен, это значит что человеку дается больше сил и энергии для выполнения другой работы - творческой, на которую человек гораздо более приспособлен и рассчитан.

Я искренне верю в это.

Написал аналог SoMove для работы с реле Tesys T, которое может:

- автоматически выполняет все действия по выгрузке - загрузке, практически без участия человека

- выгружать полный список параметров, в текстовом виде

- может "узнавать" устройство по IP адресу или серийному номеру, сохранять файлы параметров и логики под именем, привязанным к данному IP или серийнику

- выгружать логику с устройства в текстовый вид

- загружать логику на устройство из текстового файла

- выгружать логику из устройства, автоматически вносить в текст заранее определенные изменения, загружать логику в устройство

- сохранять бэкап старой логики

- программа может работать также под Android, Linux

Теперь пройдемся по каждому пункту из списка.

Автоматизация действий.

Инженеру необходимо настроить конфигурационный файл программы, где определяется:

- необходимость выгрузки логики, поскольку выгрузка логики подразумевает останов позиции, которая в работе

- необходимость изменения и загрузки измененной логики в устройство

- определяются заранее изменения, которые нужно внести в логику

конфиг программы для работы с Tesys T. Где можно определить необходимость выгрузки/загрузки логики и др.
конфиг программы для работы с Tesys T. Где можно определить необходимость выгрузки/загрузки логики и др.

Выгрузка всех параметров в текстовом виде.

SoMove может выгружать параметры из устройства, но

- выгружает их в свой формат данных,

- делает это крайне медленно,

- там есть возможность экспорта в текстовый формат, но выгружает в текстовый вид лишь небольшое количество параметров - меньше 50% от возможных

- автоматизации там нет в принципе

Моя программа выгрузку ВСЕХ параметров делает ровно за 7 секунд. В это время также входит подготовка и сохранение текстового файла с параметрами, под нужным именем.

Когда мы имеем выгрузку всех параметров, в том числе и измеренных значений (например ток, напряжение, температура и пр.), в текстовом виде, это дает огромные перспективы для анализа и BigData.

Это очень ценно когда устройств много, и нужно получить различную информацию по большому количеству устройств.

Выгруженные настройки, открытые в блокноте
Выгруженные настройки, открытые в блокноте
Выгруженные настройки, открытые в Excel
Выгруженные настройки, открытые в Excel

Узнавание устройства.

Можно заранее определить список IP адресов всех необходимых устройств, свести их в текстовую таблицу, где IP адреса будут привязаны:

- к названию подстанции

- к названию распределительного устройства

- к секции шин

- к названию ячейки или технологическому названию позиции

текстовая таблица, где - IP адрес, подстанция - TEST, секция шин, ячейка и название позиции
текстовая таблица, где - IP адрес, подстанция - TEST, секция шин, ячейка и название позиции

Программа тем временем:

- загружает данные из таблицы,

- считывает IP адрес из устройства,

- сравнивает этот адрес с таблицей

- если адрес найден, то создает несколько вложенных папок и сам файл, в названии пути которых заложены все нужные имена

- если адрес не найден, то сохраняет файл под именем IP адреса в корне папки

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

Вложенные папки и файлы, в названии пути которых информация о подстанции, панели, секции шин, технологическом наименовании
Вложенные папки и файлы, в названии пути которых информация о подстанции, панели, секции шин, технологическом наименовании

Выгрузка и загрузка логики с устройства Tesys T в текст/из текста .

То же самое возможно с помощью SoMove, но там это делается:

- весьма и весьма не быстро

- совсем нет возможности автоматизации — все действия вручную

По сути, для реализации этих задач, пришлось создать компилятор (ассемблер) - для загрузки логики из текстового файла в Tesys T, дизассемблера - для выгрузки логики из устройства Tesys T и сохранение её в текстовый файл.

Пример логики на языке STL для устройства Tesys T, выгруженный моей программой
Пример логики на языке STL для устройства Tesys T, выгруженный моей программой

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

Сохранить бэкап старой , просто мне показалось, что эта возможность будет не лишней.

Файл с расширением bak - это старая логика, где была строчка подчеркнутая красным. В новой логике, которая была загружена в устройство её нет, поскольку это было определено в config.csv, смотрите самый первый скриншот.
Файл с расширением bak - это старая логика, где была строчка подчеркнутая красным. В новой логике, которая была загружена в устройство её нет, поскольку это было определено в config.csv, смотрите самый первый скриншот.

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

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

А теперь представьте, что вам не нужно носить с собой рюкзак с ноутбуком, а все действия программа выполняет сама и с мобильного телефона? Или планшета под Андроид?

Именно эта возможность и реализована, в данной разработке.

Обмен данными, в этом случае реализован через WiFi телефона и переходник шлюз WiFi - RS485

Шлюз WiFi - RS485. Требует внешнего питания, которое я выполнил на двух элементах 18650. Серым кабелем с RG45 вставляем в сервисный порт Tesys T
Шлюз WiFi - RS485. Требует внешнего питания, которое я выполнил на двух элементах 18650. Серым кабелем с RG45 вставляем в сервисный порт Tesys T

Выглядит же сей процесс следующем образом.

Инженер просто подходит к устройству, с ноутбуком или мобильным телефоном, на котором запущена программа, просто вставляет кабель в сервисный порт, далее все действия программа выполняет сама. В зависимости от конфигурационного файла, программа:

- скачивает все параметры,

- выгружает логику,

- вносит изменения в логику и загружает её обратно в устройство.

Инженер лишь наблюдает за информацией на экране, и просто переходит от одного устройства к другому.

Выгрузка параметров завершена, IP адрес определен и найден в таблице данных. Создана структура папок и файл с параметрами.
Выгрузка параметров завершена, IP адрес определен и найден в таблице данных. Создана структура папок и файл с параметрами.
Логика выгружена из устройства. Начало изменения загрузки логики в устройство Tesys T
Логика выгружена из устройства. Начало изменения загрузки логики в устройство Tesys T
Измененная логика успешно загружена в устройство Tesys T
Измененная логика успешно загружена в устройство Tesys T

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

Сработала блокировка, когда мы повторно вставили кабель в уже обработанное устройство Tesys T.
Сработала блокировка, когда мы повторно вставили кабель в уже обработанное устройство Tesys T.

Если будет возможность и интерес у читателя, то я постараюсь подготовить видео, где демонстрируется работа этой программы.