PDA

Просмотр полной версии : ModbusTCPMaster Лицензия некорректна или отсутствует; запущен демо-режим



demin_c
01.02.2021, 12:55
Сегодня ModbusTCPMaster перестал работать. При просмотре состояния красная надпись "Лицензия некорректна или отсутствует; запущен демо-режим"
Что за лицензия???
СПК 110 и модули MK210, MV210

Евгений Кислов
01.02.2021, 13:00
Сегодня ModbusTCPMaster перестал работать. При просмотре состояния красная надпись "Лицензия некорректна или отсутствует; запущен демо-режим"
Что за лицензия???
СПК 110 и модули MK210, MV210

На мой взгляд, единственное, что может привести к такому поведению - повреждение файла лицензии.
Вам нужно перепрошить контроллер.

demin_c
03.02.2021, 07:42
Контроллер перепрошил, ModbusTCP заработал нормально, а не как с ошибкой в течении 30 минут. Но проблемы с текущем временем остались. Иногда время самостоятельно изменяется на величину UtcOffset.

Евгений Кислов
03.02.2021, 07:48
Контроллер перепрошил, ModbusTCP заработал нормально, а не как с ошибкой в течении 30 минут. Но проблемы с текущем временем остались. Иногда время самостоятельно изменяется на величину UtcOffset.

"Иногда" - это с какой периодичностью?
Вы используете в проекте компонент OwenArchiver?

demin_c
03.02.2021, 12:42
Потому и написал "иногда" что может несколько раз в минуту, а может и целый час без проблем.
OwenArchiver в данный момент не использую.

Евгений Кислов
03.02.2021, 12:48
Потому и написал "иногда" что может несколько раз в минуту, а может и целый час без проблем.
OwenArchiver в данный момент не использую.

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

demin_c
03.02.2021, 13:41
К сожалению не могу убрать доп. библиотеки и т.д. так как сейчас нет связи с СПК (пытался настроить ntp, а для этого пытался прописать шлюз, после этого связь исчезла).

Евгений Кислов
03.02.2021, 13:55
К сожалению не могу убрать доп. библиотеки и т.д. так как сейчас нет связи с СПК (пытался настроить ntp, а для этого пытался прописать шлюз, после этого связь исчезла).

Уточните, пожалуйста, как мне увидеть описанную проблему, используя ваш проект.

demin_c
04.02.2021, 06:08
В программе ZakB во многих местах используется текущее время TargetVars.stRtc.dtDateAndTime
я создал переменную и присвоил ей dtT := TargetVars.stRtc.dtDateAndTime; [строка 6]
Далее при определённых условиях (например давление .arAI_R[i] меньше 18) это значение записывается в .DT_ZBn := dtT; и .DT_ZBk := dtT; [82,84]
Эти значение видны в таблице при GVL.jIndex = 0, и там можно видеть как они произвольно изменяются на 6 часов (когда UtcOffset был 3 часа, изменялся на 3 часа)
Для наглядности видео

demin_c
04.02.2021, 07:01
Если это делать в режиме эмуляции, то естественно ничего подобного не происходит. Записать подобную версию проекта в работающий СПК не могу, во первых панель в данный момент работает на производстве, во вторых я пока не могу с ним связаться по Gateway-1, а значит не могу ничего изменить в проекте. Могу только наблюдать по webvisu.htm
Запасного СПК нет

Евгений Кислов
04.02.2021, 09:02
На текущий момент ситуация выглядит следующим образом:

на вашем проекте с небольшими урезаниями (убрал тренды, алармы, символьную конфигурацию) проблема стабильно воспроизводится (у меня UTC+3, поэтому скачки на 3 часа):

53353

если я убираю из вашего проекта опрос по Modbus TCP, содержимое всех экранов визуализации, код программы DMod и неиспользуемые библиотеки из Менеджера библиотек - то проблема перестает воспроизводиться:

53354

Я рекомендую вам восстановить сетевые настройки СПК (например, сбросив его на заводские настройки через экранный конфигуратор) и провести отладку проекта, обратив внимание на те его компоненты, которые я перечислил выше.
Больше всего внимания стоит уделить визуализации и настройках ее элементов (которых очень много) - нет ли среди них элементов с нулевой шириной и длиной? везде ли используются корректные для данного типа спецификаторы вывода? и т.д.

Со своей стороны мы в ближайшее время постараемся разработать пример с ФБ для фильтрации таких скачков времени.

demin_c
04.02.2021, 11:07
Со своей стороны мы в ближайшее время постараемся разработать пример с ФБ для фильтрации таких скачков времени.
Переменную dtT , как я уже говорил, я ввел потому что она (текущее время) используется во многих местах.
Но не везде по ходу программы заменил TargetVars.stRtc.dtDateAndTime на dtT
Я решил заменить на переменную dtT все упоминания на TargetVars.stRtc.dtDateAndTime
а при присвоении переменной dtT значения текущего времени производить проверку:
IF TargetVars.stRtc.dtDateAndTime > dtT THEN
dtT := TargetVars.stRtc.dtDateAndTime; // Текущее время
END_IF
После загрузки в ПЛК этого варианта программы TargetVars.stRtc.dtDateAndTime по прежнему скачет, но так как теперь внутри фигурирует только dtT, то это ни на что не влияет.
п.с. Интересно то, что элемент прямоугольник GenElemInst_241 который просто отображает текущее время используя формат текста %t[HH:mm:ss] не скачет

demin_c
05.02.2021, 10:41
Проблема неожиданно исчезла. Подключился чтобы проверить как работает программа. Наблюдал за TargetVars.stRtc.usiGetHour несколько минут, скачков НЕТ.