суббота, 29 февраля 2020 г.

Выполнение внешних программ в IBA PDA

Предыдущие серии постов о создании телеграм ботов были написаны потому, что мне стало интересно: можно ли с помощью IBA PDA отправлять сообщение на телефон при срабатывании определенного триггера. Ну то есть на ибу заведена куча сигналов, и по ним можно определить состояние работы линии. Если какой-то параметр превышает требуемое значение, то неплохо было бы получить уведомление об этом как можно раньше, чтобы избежать аварии и простоя оборудования. Выделить требуемый сигнал благодаря математическим функциям и функциям сравнения не сложно, но вот как потом этот сигнал передать на телефон. Оказывается это возможно, в самой программе есть такая панель QPanel, на которой можно нарисовать что-то наподобие HMI
На ней можно нарисовать индикаторы работы линии, вывести скорости в числовом виде, можно и графики вывести. А еще тут есть кнопки, и при нажатии на кнопку можно запускать нужную программу.



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

Вообще ИБА очень навороченный инструмент и сдается мне что многие его используют лишь наполовину, а то и меньше. Половину функций я не совсем понимаю как нужно использовать. Если вдруг кто-то прочитает эту статью и захочет поделиться какими-нибудь другими фишками, то я был бы очень рад. Например есть функции отчетов в ИБЕ - как их создавать я вообще не представляю. С другой стоны наверное оно мне и не совсем надо, раз не знаю))

2 комментария:

  1. как считал время работы: скорость больше нуля - условие что механизм работает (то есть тупо формула [9:123] > 0 , это называться будет spd)
    А теперь добавляем формулу:
    ToText(Max(Sum ( [spd] ,False()) /360000) ,"%g")
    чтобы текстом отобразить время работы механизма в часах в промежутке всего загруженного файла

    ОтветитьУдалить
  2. продолжительность сигнала можно высчитать так:
    ToText ((MaxValid ( XValues ([x]) , [x] ) -MinValid ( XValues ([x]) , [x] ) ),"%g")

    ОтветитьУдалить