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

Полная автоматизация работы с 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.

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