Стартовая страница › Форумы › Понять, как работает ПО › Вопрос по МАУ
Помечено: МАУ события
- В этой теме 42 ответа, 4 участника, последнее обновление 2 года, 2 месяца назад сделано
manjey73.
-
АвторЗаписи
-
07.05.2024 в 12:47 #32672
MikhailМодераторМодуль срабатывает на изменение значения канала. А на графике нет изменения, только 0 или отсутствие данных.
Статус устройства и статус подключения Коммуникатора к Серверу — это не одно и то же. Единственный способ определения подключения Коммуникатора, который приходит на ум, это получение новых данных в канал в течение последних N секунд.
07.05.2024 в 13:54 #32673
manjey73УчастникМодуль срабатывает на изменение значения канала. А на графике нет изменения, только 0 или отсутствие данных.
Я знаю, по этому приходится делать костыль в виде расчетных каналов.
1. Stat(номер канала Status устройства) > 0? 1:0
2. TP(Val(1), 10) // импульс для МАУ Val = 0Но это не отменяет задержку в МАУ, просто она становится меньше, но без задержки Сервер упорно отправляет команду в пустоту, хотя канал 1 записывает у себя 1 только когда канал Статуса имеет значение Normal — Вот тут логика нифига не понятна, почему статус Norma = 0 а Ошибка = 1 а не наоборот?
Проблема в том, что Сервер не дожидается корректного статуса, будь то Коммуникатор или Устройство и отправляет команду непонятно куда и кому?… А по логике должен поставить в очередь, дождаться когда связь с Коммуникатором и Устройством есть и только тогда самостоятельно отправить команду, а не требовать устраивать костыли с расчетными каналами и задержками. А так же сообщить о выполнении операции для обратной связи.
07.05.2024 в 15:17 #32674
manjey73УчастникИ кстати периодически это все не помогает. Перезагружаю устройство, команд НОЛЬ, логи Сервера и Модуля просто пустые.
08.05.2024 в 11:42 #32676
MikhailМодераторлоги Сервера и Модуля просто пустые
Это связано с RAM-диском?
08.05.2024 в 11:50 #32678
manjey73УчастникНе знаю с чем связано, но на Arm железке на Linux после запуска файлы пустые, если смотреть редактором. Администратор тоже показывает пустоту.
Потом если сделать какую-то сработку, например я специально меняю температуру, чтобы произошла сработка, то логи Сервера и Модуля появляются.
При этом сработка происходит при загрузке ПК, хоть логи и пустые.
Такое ощущение, что что-то еще не готово при запуске Linux в /var/log/scada и писать некуда.
Как только это проверить? Возможно эта же причина приводит к отправке команд в пустоту. Ведь тоже через папку Cmd происходит запись команд?10.05.2024 в 11:20 #32703
MikhailМодераторСервер отправляет команды по протоколу TCP.
Используя RAM-диск не разу не видел описанную картину с пустыми логами. Файлы исчезают при перезагрузке, но при старте служб Rapid SCADA она появляются опять.27.05.2024 в 09:00 #32852
manjey73УчастникТо, что они появляются после загрузки это нормально. Но они появляются на ВТОРОМ срабатывании.
на ARM ПК логи пишутся в пустоту при ПЕРВОМ запуске, что-то не успевает отработать в системе. Например tmpfs на /var/log/scada
Как заставить загрузиться Сервер строго после создания tmpfs на папку логов пока не придумал. Был один вариант, но через раз логи пустые при первом запуске.
Потом происходит вторая сработка МАУ и логи появляются.27.05.2024 в 12:11 #32857
manjey73Участниквсе мои попытки заставить загружаться сервисы после var-log-scada.mount ни к чему не приводят.
Мало того, так перезагрузка сервисов после передачи конфигурации тоже может потерять логи. То есть ПК в данном случае не перегружается, а только сервисы scada.Что и удивляет, почему? на виртуалках не проверял еще, а вот на ARM ПК файлы логов пустые.
Может тут dotnet косячит каким-то образом?
-
Ответ изменён 2 года, 2 месяца назад пользователем
manjey73.
27.05.2024 в 15:53 #32865
MikhailМодераторвсе мои попытки заставить загружаться сервисы после var-log-scada.mount ни к чему не приводят
Какими способами пробовали?
Мало того, так перезагрузка сервисов после передачи конфигурации тоже может потерять логи.
Почему?
Может тут dotnet косячит каким-то образом?
На tempfs он вряд ли как-то влияет.
27.05.2024 в 22:58 #32868
manjey73УчастникВот и я думаю, что ни на tmpfs ни на /var/log/scada при простом перезапуске сервера влиять не должно, но???
добавил в скрипты запуска в секцию Unit
[Unit]
Description=Rapid SCADA Agent
Requires=var-log-scada.mount
After=var-log-scada.mount[Unit]
Description=Rapid SCADA Webstation
Requires=var-log-scada.mount
After=var-log-scada.mount[Unit]
Description=Rapid SCADA Server
Requires=scadaagent6.service var-log-scada.mount
After=scadaagent6.service var-log-scada.mount[Unit]
Description=Rapid SCADA Communicator
Requires=scadaserver6.service var-log-scada.mount
After=scadaserver6.service var-log-scada.mountЕдинственное, что помогло вроде, это запуск scadacomm6.service после Сервера, по крайней мере ушли ошибки что Коммуникатор не может подключиться.
Если нет Requires и After то сервисы стартуют параллельно, если верить описаниям systemd
Может немного неправильно прописываю?, сейчас поищу еще по этой теме.Кстати почему нельзя применить в [Service]
Type=forking ???? связанно с dotnet?27.05.2024 в 23:16 #32869
manjey73УчастникДа, учитывая, что Коммуникатор может быть сам по себе, то ждать на локальной машине Сервера он не должен, а то вероятно никогда не запустится 🙂
Это больше для случая, когда Сервер и Коммуникатор на одном ПК28.05.2024 в 12:32 #32877
MikhailМодераторДа, учитывая, что Коммуникатор может быть сам по себе, то ждать на локальной машине Сервера он не должен
Поэтому изменения в скрипт можно внести в частном случае, но в общем скрипте это было бы не правильно.
Кстати почему нельзя применить в [Service]
Type=forking ???? связанно с dotnet?Не сталкивался с этим, не могу сказать.
28.05.2024 в 13:22 #32878
manjey73УчастникНе сталкивался с этим, не могу сказать.
я пробовал, вроде scadacomm6.service запускается и начинает опрос, но при попытке проверить его статус его как бы и нет 🙂 Ну и Администратор его видеть не будет, что он запущен.
Была попытка создать PID файл и чтобы systemd сам контролировал зависание сервиса.
Пришлось писать скрипт проверки is-failed и помещать его в crontab с штатным Type=notify -
Ответ изменён 2 года, 2 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.