Mikhail

Созданные ответы форума

Просмотр 15 сообщений - с 6,076 по 6,090 (из 7,774 всего)
  • Автор
    Сообщения
  • Mikhail
    Модератор

    Идеология Rapid SCADA такова, что чем больше авторов и разнообразных модулей, тем лучше. При этом автор сам поддерживает свои модули в актуальном состоянии и отвечает на вопросы по нему, добровольно конечно ))

    Mikhail
    Модератор

    Выкладывайте на свой аккаунт и присылайте ссылку. Желательно на гитхабе сделать подробное описание, как здесь и также добавить вариант описания на английском. Тогда я смогу опубликовать драйвер в репозитории модулей.

    Вы не пробовали тот драйвер, ссылку на который я публиковал?

    в ответ на: связь системы Рубеж по ModBus RTU #7067
    Mikhail
    Модератор

    максимум 65536

    Допустимое количество адресов регистров согласно стандарту Модбас. Но вообще-то на него отводится 2 байта, так что больше и не получится.

    В Коммуникаторе в шаблоне адреса регистров указываются в 10-чной системе, переведите с помощью калькулятора, если нужно.

    в ответ на: OPC сервер Инсат #7066
    Mikhail
    Модератор

    На мой взгляд здесь не хватает скриншотов диспетчера задач с именами пользователей, от которых запущены процессы.

    в ответ на: Rapid SCADA 5.3.0 #7056
    Mikhail
    Модератор

    История изменений как обычно здесь http://doc.rapidscada.net/content/ru/version-history/

    1. Модуль автоматического управления уже может использовать каналы управления ?
    2. Почтовик может отправлять в юникоде ?

    1. Да.
    2. Да.

    в ответ на: OPC сервер Инсат #7043
    Mikhail
    Модератор

    Можно проделать такой эксперимент:
    1. Остановить службу Коммуникатора
    2. Скопировать в C:\SCADA\ScadaComm файл ScadaCommMono.exe из Линуксового дистрибутива
    3. Запустить вместо службы Коммуникатора файл ScadaCommMono.exe — это тот же Коммуникатор, но в виде консольного приложения, то есть он запустится от имени вошедшего пользователя Windows

    в ответ на: OPC сервер Инсат #7042
    Mikhail
    Модератор

    Добрый день!

    Далее убиваю процесс Инсата и запускаю его в ручную и получаю все наоборот, Rapid молчит (Выдавая ошибку E_NETWORK_ERROR), а вот второй клиент стабильно получает данные.

    А если после этого перезапустить Коммуникатор, сможет ли он подключиться к OPC Инсат?

    Думаю, нужно смотреть от имени каких пользователей работают процессы как OPC-сервера, так и подключающихся к нему OPC-клиентов. Кроме того, Коммуникатор работает «от имени администратора» — это тоже должно быть одинаково у всех задействованных программ.

    в ответ на: связь системы Рубеж по ModBus RTU #7041
    Mikhail
    Модератор

    А где пример лога с ошибкой?
    Если нужно расшифровать данные Модбас, используйте http://modbus.rapidscada.net/

    Mikhail
    Модератор

    Есть готовый не опубликованный драйвер, который мы используем для https://smsc.ru/
    Думаю, он подойдет. Вот ссылка, но проблема в том, что драйвер собран под новую версию Коммуникатора, может не заработать на текущей. Думаю, что нужно будет включить этот драйвер в дистрибутив для всех.

    Применительно в выкладыванию модулей, однозначно рекомендую GitHub. Есть хорошие аналоги, но всё же GitHub самый популярный.

    в ответ на: Отправка почты из Linux #7029
    Mikhail
    Модератор

    По поводу номера порта у меня нет идей. Самое главное, что работает. Что в итоге потребовалось сделать?

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

    в ответ на: Формула: Разница счётчика #7028
    Mikhail
    Модератор

    Добрый день!
    Самый понятный вариант — использовать плагин Гибкий отчёт. Плагин будет сам считать разницу.

    Чтобы получить значение за час во входном канале, потребуется сделать дополнительный входной канал (пусть №221) типа Дорасчётный ТИ. Затем нужно для канала 220 задать формулу MyFunc() примерно такую (в сообщениях я формулы не тестирую):

    double MyFunc()
    {
      double delta = Cnl - Val();
      SetVal(221, Val(221) + delta);
      return Cnl;
    }
    

    Формула для канала 221: HourBeg()?0:Val()
    HourBeg нужен, чтобы сбросить значение в начале часа.

    в ответ на: связь системы Рубеж по ModBus RTU #7027
    Mikhail
    Модератор

    Мне встречалось, когда надо указывать 40001, и также встречалось, когда в документации написано 40001, а надо указывать 1. Для адреса 46144, судя по всему, всё нормально работает.

    в ответ на: связь системы Рубеж по ModBus RTU #7026
    Mikhail
    Модератор

    Желательно приложить лог линии связи, чтобы были видны передаваемые и принимаемые данные для проблемного адреса.

    Mikhail
    Модератор

    OnCurDataProcessed(int[] cnlNums, SrezTableLight.Srez curSrez)
    OnCurDataCalculated(int[] cnlNums, SrezTableLight.Srez curSrez)

    Аргументы curSrez — один и тот же полный срез, а cnlNums каждый раз разные по смыслу

    Mikhail
    Модератор

    OnCurDataCalculated вызывается постоянно, поэтому рекомендую в нём получать нужные данные. В текущей реализации ссылка на текущий срез, который передаётся в этих методах, не меняется, но нет гарантии, что так и будет дальше.

    Если не хотите «грязное чтение» из среза, то при его чтении сделайте lock (curSrez)
    Однако, при неосторожном обращении с lock Сервер может зависнуть из-за взаимных блокировок.

Просмотр 15 сообщений - с 6,076 по 6,090 (из 7,774 всего)