Ответы в темах
-
АвторЗаписи
-
vg
Участник5.1.3.0
vg
УчастникЯ уже разрабатывал простой модуль по примеру, выложенному Вами на Github, но здесь теряюсь в догадках с чего начать, потому что среди методов класса ModTestLogic не вижу за что можно зацепиться. Задайте пожалуйста направление, в котором нужно копать.
vg
УчастникДа, это так, но меня интересует сама подгрузка. Мне тестировщик задал вопрос «почему архивация идёт каждые 30 секунд, а на графике обновление значений происходит раз в минуту сразу двух срезов», а я не знаю что ответить.
vg
УчастникДрайвер импорта с пользователем из модуля работает. Модуль с пользователем из драйвера нет.
Может проблема заключается в расхождении версий Администратора и модуля экспорта? И в некорректном переносе проекта, из-за которого это расхождение и появилось. Попробую переустановить и перенести ещё раз.
Когда установил версию 5.8.4, то снёс все файлы и заменил их файлами с машины, на котором располагался старый проект и возможно ошибка из-за этого.
vg
УчастникВ данных также нули
https://pastenow.ru/db84b9dbeae5a1b26dce1f2a6d67b428При этом в архиве значения правильные
https://pastenow.ru/10ef75ca46b7664d57a2103ff76a1e5eНо появляются они там спустя какое то время. В момент открытия графика в архиве появляется запись и там нули.
https://pastenow.ru/b7067ace1081405c71692701633c59afУ Вас подобное воспроизводится?
vg
УчастникРежим графика фиксированный.
vg
УчастникДа, драйвер также работает с MS SQL и тем же сервером.
Перестановку пользователей не пробовал, отпишусь после попытки.
vg
УчастникДа, Быстрый шлюз установлен на промежуточном сервере и передаёт данные на главный сервер.
Избыточные события появляются на главном сервере. Промежуточный не имеет интерфейса и среди входных каналов только телеизмерение без формул.
В моём понимании промежуточный сервер не способен генерировать события, а главный в описанных ситуациях и в примере со скриншотом не должен их добавлять снова и снова (только единожды при появлении впервые).
vg
УчастникПочему в будущем часть параметров = 0 для меня загадка. Особенно интересно то, что если открыть график в некорректном варианте (после 30 секунд) и получить «горки», то при закрытии графика и открытии эти значения пропадут.
vg
УчастникНе указал важный момент.
В проекте используется также драйвер импорта из БД, но с другим пользователем и подключение осуществляется к другой БД. Пробовал сделать с одним пользователем для модуля и драйвера, но результат тот же.
vg
УчастникСпасибо!
У меня возникла проблема при тестировании проекта.
Изначально было 2 стационарных проекта, которые работали нормально.
Один из них, назовём его «проект 1», опрашивал базу данных и отображал данные с некоторой логикой. Второй , «проект 2», опрашивал устройство по Modbus TCP и также отображал данные и поддерживал некоторую логику. Затем эти проекты захотели объединить под одной крышей. Проект 1 остался без изменений и работает корректно, а для проекта 2 понадобилось немного изменить принцип получения данных с устройства. Как раз для этого и начинал эту тему. В общем с промежуточной машины через Быстрый шлюз данные, полученные с устройства, передаются на главный сервер (на котором размещён объединённый проект). Данные передаются, но дело в том, что журнал событий начал засоряться сообщениями с некоторой периодичностью. А точнее повторением событий по одним и тем же входным каналам. Вчера этот период был 10 секунд, сегодня 1 минута. Причина мне пока неизвестна. А хочется знать 🙂События в журнал попадают из входных каналов, у которых стоит галочка «Соб. по изм.». В этих каналах отрабатывает логика, при которой значение канала или статус меняются только если новый статус отличается от предыдущего статуса (статус вычисляется сравнением с порогами). То есть был статус НОРМА, а стал ПРЕДУПРЕЖДЕНИЕ, появилось сообщение в журнале событий.
public double GetSpeedValue(int status, double value, PreviousStatus prevStatus)
{
if (status != prevStatus.PrevSpeedStat)
{
prevStatus.PrevSpeedStat = status;
prevStatus.PrevSpeedValue = value;
return value;
}
else
{
return prevStatus.PrevSpeedValue;
}
}И в стационарной системе повторное сообщение в журнале событий появляется только при отключении от устройства и новом подключении к нему.
Ошибка «Некорректные данные MBAP Header!».
При этом отключение и новое подключение происходили в одну секунду. И происходило это очень редко, ни о какой периодичности речи не идёт.
И в этом случае появление новых сообщений я могу понять, также как и при перезагрузке службы сервера или передачи конфигурации. Параметры были неопределены, стали определены и вот сообщение в журнале событий, так как изменился статус.
Но на данный момент картина вот такая:
https://pastenow.ru/0f5ac10938c6f8d87d6db14a9fb62912Значения те же, статусы те же. Изменения в журнале между этими «пакетами» событий не зафиксированы. Собственно у меня идеи только в направлении микро приостановок сервера или коммуникатора (логи опроса устройства на промежуточной машине и логи модуля Быстрый шлюз не отображают никаких ошибок, поэтому считаю, что на той стороне всё чисто).
Даже если допустить, что какие то изменения происходят в значении каналов, то периодичность в 1 минуту и 1 секунду наводят на мысль, что это маловероятно.
А как узнать информацию о возможных прерываниях при получении данных по Быстрому шлюзу (если допустить, что отправка проходит корректно, то может быть проблема с приёмом) не представляю.
Главный сервер работает на Windows Server 2019.
Промежуточный сервер работает на компьютере Q7 с Linux.vg
УчастникЗдравствуйте!
Подскажите пожалуйста за что отвечает параметр «Период времени, мс», равный 10000 по умолчанию в «Параметры передачи текущих данных» во вкладке «Конфигурация» модуля «Быстрый шлюз»?
Значения текущих данных передаются сразу при получении (Триггер «При получении») или накапливаются в течение упомянутых выше 10000 мс?
vg
УчастникЕсли Вы сами пишете программу для формирования нестандартных отчётов, сделайте её как службу с поддержкой TCP сокета, чтобы она принимала команды на формирование отчётов от Rapid SCADA по TCP.
Всё таки возникающие сложности при эксплуатации системы заставили меня с Вами согласиться 🙂 и, видимо, служба это хорошее решение. А как в таком случае отдавать команду в эту службу по TCP? Насколько я понимаю, мне нужно установить мою службу(приложение) на определённом порту. В этой службе мне нужно создать регистр для приёма значений? Если так, то тогда можно по Modbus TCP передать значение в этот регистр. И ещё вопрос: если у сервера изменится IP-адрес, то в этом случае, если я правильно понимаю, нужно будет в экземпляре Rapid Scada менять настройки линии связи и КП, что не очень то удобно.
К тому же, если мне удастся реализовать приложение в виде службы, то можно будет отказаться от ScadaServerMono и пользоваться обычной службой севера Rapid Scada. Одни, блин, плюсы. Точно надо так делать.vg
УчастникНо для этого нужно иметь доступ к удалённым серверам по IP. Такой подход позволяет избежать двойной работы по созданию входных каналов.
Звучит удобно, но этого доступа к сожалению не будет. Из-за особенностей сети заказчика инициатором подключения должны быть удалённые сервера.
vg
УчастникВсем спасибо за ответы!
-
АвторЗаписи