С точки зрения основ автоматизации систем управления, запуск любого стороннего приложения поверх запущенной SCADA-системы недопустим. С одной стороны это стороннее приложение потребляет ограниченные ресурсы персонального компьютера, который управляет технологическим объектом, с другой стороны, отвлекает Оператора от работы.
Но в каждом правиле есть исключение. И в Trace Mode 7 есть решение - канал Call с типом вызова EXEC.
Данный канал, если открыть встроенную Справочную Систему (постоянные читатели знают, что ее можно вызвать волшебной клавишей F1), работает в двух режимах - запуск приложения и запуск браузера на определенной странице.
Разберем оба случая.
Call.EXEC для запуска браузера.
Создадим канал Call с типом вызова EXEC
Далее перейдем в его аргументы и создадим 4. Заполним их, к примеру, что бы при посылке 1 открывался mail.ru, при посылке 2 открывался rutube.ru, а при 3 - просто браузер.
Все готово. Запускаем проект и подаем во Входное значение канала Call_1 (название канала по умолчанию) значение 1
И открывается браузер по умолчанию (у меня Edge) с заданной страницей
Подаем 2 и получаем Rutube
В аргументе канала Call.EXEC можно даже прописать определенную страницу, например, www.rutube.ru/channel/23662847/
Подаем 3 и получаем новую пустую страницу браузера
Call.EXEC для запуска приложения windows
Не все вопросы можно решить через запуск браузера. Иногда требуется запустить приложение. Разберем простой пример - запуск блокнота.
Приложение Блокнот расположено (в Windows 11) в папке C:\Windows\System32.
Создаем канал Call.EXEC. Даем ему название запускаемого приложения, т.е. notepad.exe. Создаем аргумент и зададим ему значение по умолчанию <путь до запускаемого приложения> (C:\Windows\System32)
Готово. Запускаем проект. Подаем любое значение, отличное от нуля и получаем
Но будем честны. Зачем запускать просто приложение? Сделаем немного интереснее (ловкость рук и никакого мошенничества).
Добавим в проект канал Call.String (Предназначен для хранения строковых данных в аргументах) с тремя аргументами
Канал Call.EXEC так же дополним одним аргументом для привязки нашего Call.String
Запускаем проект. При подаче во входное значение канала Call.String значения 1 будет выбран первый аргумент и его текстовое значение будет передано в атрибут Q, который привязан к аргументу канала Call.EXEC. Затем запускаем Call.EXEC
Затем, в Call.String подаем 2 и запускаем Call.EXEC. Открылся второй файл
И подаем в Call.String значение 3 и запускаем Call.EXEC
Происходит ПЕЧАТЬ документа (внимательные читатели заметили, что в третьей строке есть ключ /p, что позволяет отправить на печать (на принтер по умолчанию) txt-файл).
Call.EXEC для запуска виртуальной клавиатуры.
Клавиатуру нельзя запустить так же как Блокнот. Но разве это нас остановит?
В локации C:\Windows\System32\ находим файл osk.exe, делаем его копию в другую локацию (например, в папку узла проекта). В свойствах копии (не ссылки) osk.exe в совместимости устанавливаем "Запускать с правами Администратора".
Создаем cmd-файл (например, osk.cmd), в который записываем строку
@start d:\<путь к копии файла>\osk.exe
В Среде Разработки редактируем Call.EXEC - название канала osk.cmd (должно совпадать с названием cmd-файла), аргументы пустые (или в первый прописываем путь, если не в папке узла проекта).
Таким нехитрым образом можно решить ряд задач, начиная от открытия дополнительных материалов через браузер и заканчивая печатью необходимых документов.
Естественно, есть ограничения. Например, один канал Call.EXEC работает с одним приложением.
Успехов в освоении Программы и применении полученного опыта! 👽
.
Список авторских статей о Trace Mode 7.
.
Скачать БЕСПЛАТНО и официально