Найти тему

Trace Mode 7. Запуск приложений Windows и Linux (даже браузера 😉)

Оглавление

С точки зрения основ автоматизации систем управления, запуск любого стороннего приложения поверх запущенной SCADA-системы недопустим. С одной стороны это стороннее приложение потребляет ограниченные ресурсы персонального компьютера, который управляет технологическим объектом, с другой стороны, отвлекает Оператора от работы.

Но в каждом правиле есть исключение. И в Trace Mode 7 есть решение - канал Call с типом вызова EXEC.

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

Разберем оба случая.

Call.EXEC для запуска браузера.

Создадим канал Call с типом вызова EXEC

Далее перейдем в его аргументы и создадим 4. Заполним их, к примеру, что бы при посылке 1 открывался mail.ru, при посылке 2 открывался rutube.ru, а при 3 - просто браузер.

-2

Все готово. Запускаем проект и подаем во Входное значение канала Call_1 (название канала по умолчанию) значение 1

-3

И открывается браузер по умолчанию (у меня Edge) с заданной страницей

-4

Подаем 2 и получаем Rutube

-5

В аргументе канала Call.EXEC можно даже прописать определенную страницу, например, www.rutube.ru/channel/23662847/

-6

Подаем 3 и получаем новую пустую страницу браузера

-7

Call.EXEC для запуска приложения windows

Не все вопросы можно решить через запуск браузера. Иногда требуется запустить приложение. Разберем простой пример - запуск блокнота.

Приложение Блокнот расположено (в Windows 11) в папке C:\Windows\System32.

Создаем канал Call.EXEC. Даем ему название запускаемого приложения, т.е. notepad.exe. Создаем аргумент и зададим ему значение по умолчанию <путь до запускаемого приложения> (C:\Windows\System32)

-8

Готово. Запускаем проект. Подаем любое значение, отличное от нуля и получаем

-9

Но будем честны. Зачем запускать просто приложение? Сделаем немного интереснее (ловкость рук и никакого мошенничества).

Добавим в проект канал Call.String (Предназначен для хранения строковых данных в аргументах) с тремя аргументами

-10

Канал Call.EXEC так же дополним одним аргументом для привязки нашего Call.String

-11

Запускаем проект. При подаче во входное значение канала Call.String значения 1 будет выбран первый аргумент и его текстовое значение будет передано в атрибут Q, который привязан к аргументу канала Call.EXEC. Затем запускаем Call.EXEC

-12

Затем, в Call.String подаем 2 и запускаем Call.EXEC. Открылся второй файл

-13

И подаем в Call.String значение 3 и запускаем Call.EXEC

-14

Происходит ПЕЧАТЬ документа (внимательные читатели заметили, что в третьей строке есть ключ /p, что позволяет отправить на печать (на принтер по умолчанию) txt-файл).

Call.EXEC для запуска виртуальной клавиатуры.

Клавиатуру нельзя запустить так же как Блокнот. Но разве это нас остановит?

В локации C:\Windows\System32\ находим файл osk.exe, делаем его копию в другую локацию (например, в папку узла проекта). В свойствах копии (не ссылки) osk.exe в совместимости устанавливаем "Запускать с правами Администратора".
Создаем cmd-файл (например, osk.cmd), в который записываем строку

@start d:\<путь к копии файла>\osk.exe

В Среде Разработки редактируем Call.EXEC - название канала osk.cmd (должно совпадать с названием cmd-файла), аргументы пустые (или в первый прописываем путь, если не в папке узла проекта).

-15

Таким нехитрым образом можно решить ряд задач, начиная от открытия дополнительных материалов через браузер и заканчивая печатью необходимых документов.

Естественно, есть ограничения. Например, один канал Call.EXEC работает с одним приложением.

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

.

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

.

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

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

Форум Trace Mode 7