Управление com портом в рантайме.

Стартовая страница Форумы Вопросы без категории Управление com портом в рантайме.

Просмотр 15 сообщений - с 1 по 15 (из 52 всего)
  • Автор
    Сообщения
  • #22071
    bhun
    Участник

    Здравствуйте. Возможно ли управлять com портом (закрывать/открывать) при работе скады в рантайме?

    Описание задачи:
    1. В штатном режиме скада общается с удаленным устройством по RS485/ModbusRtu.
    2. В некоторый момент времени (по нажатию на кнопку) запускается программа-конфигуратор удаленного устройства, связь с уд.устройством также осуществляется по RS485.
    2.1 Скада закрывает порт, перестает производить опрос уд.устройсва.
    2.2 Программа-конфигуратор открывает порт, взаимодействует с уд.устройством. Закрывается.
    2.3 Скада открывает порт, возобновляет опрос уд.устройства.

    Каким образом возможно реализовать данный алгоритм работы с удаленным устройством (манипулировать работой com порта)?

    #22072
    manjey73
    Участник

    В версии 5 только в ручном режиме и если Администратор установлен на сервере.
    Вы можете остановить опрос отдельной линии.

    Если Администратор на удаленной машине тоже можно путем передачи файла, но не уверен.
    Обычно передачей всей конфигурации,, отключив в настройках опрос.

    На счет 6-й версии не скажу.

    По идее это требуется для тестирования или изменения каких-то настроек и не имеет особого смысла городить огород. Ручного варианта вполне достаточно.

    • Этот ответ был изменен 2 года, 1 месяц назад от manjey73.
    #22076
    Mikhail
    Модератор

    Добрый день!
    Подтверждаю предыдущий ответ.
    Добавлю, что в 6-й версии команды на запуск и остановку линии связи (соответственно, закрытие порта) можно отправлять через веб-интерфейс.

    #22078
    a80808
    Участник

    По кнопке запустить внешнюю программу-конфигуратор не удастся (в 5 версии). Так что скорее придется пойти с другой стороны. @mikhail а через API SCADAе удастся управлять линией?

    #22079
    Romiros
    Участник

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

    А можно подробнее, как это настроить каналах?

    #22083
    Mikhail
    Модератор

    Исходный код Коммуникатора для обработки команд: ссылка.
    Доступные команды: ссылка.

    Нужно создать канал типа «Выходной». Код тега — имя команды, например, Comm.StartLine. Значение передаваемой команды — номер линии. Значение можно либо внести фиксировано в формулу канала, либо вводить вручную при отправке команды.
    Если что-то не заработает, пишите.

    #22088
    bhun
    Участник

    Здравствуйте. С сайта скачал Rapid SCADA 5.8.4. Версию 6 видел только в Гите в виде исходников, т.е. она еще на этапе разработки?

    #22091
    a80808
    Участник

    Да, только в бета версии и еще не полностью работоспособна. Идет тестирование.

    https://forum.rapidscada.ru/?topic=%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d0%b4%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d0%b8%d0%b2%d0%b0-v6-beta

    #22101
    bhun
    Участник

    По кнопке запустить внешнюю программу-конфигуратор не удастся (в 5 версии). Так что скорее придется пойти с другой стороны.

    Подскажите, что за другая сторона?
    Обычно в скадах можно назначить различные действия по нажатию на кнопку. Я думал назначить исполнения своего скрипта для запуска сторонней программы. Я так понял RapidScada обладает встроенным языком C# думал на нем писать пользовательский код на исполнение(по триггерам, событиям), это возможно?

    #22102
    manjey73
    Участник

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

    #22103
    a80808
    Участник

    Я имел в виду, что придется идти от внешнего приложения. Не умеет пока SCADA запускать внешние скрипты/процессы. Я обдумывал сильно кривую идею: Написать какую то прогу, которая регулярно (ну раз в секунду) читает определенный файл. Если там 0 или его нет — ничего не делаем. Если 1 — то запускаем нужную процедуру и записываем в него 0. Как то так…

    #22104
    Romiros
    Участник

    Михаил, команды на перезапуск линии связи из web работают, проблем нет. Все получилось, спасибо.

    #22105
    a80808
    Участник

    @romiros, т.е это так:
    1.Создаем канал типа «Выходной». Привязываем его к кнопке на схеме (?)
    2. Присваиваем Код тега — имя команды, например, Comm.StartLine.
    3. Присваиваем Значение передаваемой команды — номер линии.
    Правильно?

    #22111
    Romiros
    Участник

    Да, все верно.

    #22120
    bhun
    Участник

    @manjey73 в моем
    понимании скрипты это более мощный инструмент (исходя из опыта работы с др.скадами), когда есть возможность из скрипта через api скады получить доступ к ее внутренностям, в том числе доступ к WinApi или работу с командным интерпретатором.
    Получается в SimpleScada скрипты могут работать только с канальными данными и каналами.

Просмотр 15 сообщений - с 1 по 15 (из 52 всего)
  • Вы должны авторизироваться для ответа в этой теме.