Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - ZWolol

Страницы: [1] 2 3 4
1
У нас графики выводились в трейсмоде. Там концы трендов можно установить хоть на половине экрана.
Операторы работают на часовом (а некоторые на двухчасовом) интервале и несколько миллиметров с права для них просто не о чем...

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

Графики рисуются до текущего времени, а шкала (в конце пустая) на час больше.
Операторы в восторге. Сила привычки - великая сила... :)

2
Привет.

У операторов на компе (на клиенте) стояло неправильное время (больше реального).
В результате графики на трендах немного не доходили до правого конца.

Когда я установил правильное время, то с права исчез зазор.
Операторы возмущены и требуют вернуть зазор для видимости концов линий графиков.
Как мне это сделать?

Я могу установить время на клиенте на час больше (или сдвинуть часовой пояс), тогда будет зазор и минуты будут совпадать...
А есть решение лучше?

3
2. интересное решение.
В этом случае при не достоверности основного будет подставлен дублирующий и недостоверность второго будет означать недостоверность двух.

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

Все зависит от структуры TM_Variable.
Если она хранит значение и качество, то тогда не должно быть проблем с обеспечением чтения/записи качества переменной.
А на нет и суда нет и туда нет.

P.S.
В МастерСкада является правилом хорошего тона дублировать ОПС переменные (аппаратная часть) в локальные переменные (логическая часть).
Чтоб не было зависимости работы логики программы от аппаратного обеспечения.
При смене регистров, битов управления, инверсии сигналов это отражается только на логике присвоения переменных.
А вся остальная часть программы не зависит от этого.

т.е. ОПС регистр в котором 16 бит сигналов присваивается 16 логическим переменным в зависимости от подключения и инверсии.
и работа ведется с единообразными логическими переменными без аппаратной привязки.

4
В настройках Компоненты можно задать цвет при плохом качестве параметра.
Но признак качества вроде бы доступен только для OPC переменных и его нельзя изменить.

Когда есть дублирующие параметры. Например два датчика давления, расхода или уровня...
То на экран выводится значение общей локальной переменной, которой присваивается значение основного или дублирующего датчика в зависимости от их достоверности.
Как в этом случае задать плохое качество переменной при недостоверности этих двух ?

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

5
Ваши вопросы / Re: 2 сервера в работе
« : 11 Июля 2025, 04:13:43 »
Вероятно используется DEMO/MINIMAL версия на одного клиента (потому и два сервера с общим объектом управления).
Проверьте и при необходимости купите лицензию PROFESSIONAL.
Тогда сделаете сервер с одним проектом на два удаленных клиента.

Либо смотрите настройки OPC (как задать ограничение на подключение только одного клиента).

6
А чем не устраивает: Проект -> настройки -> Создать резервную копию
А после сохранения переименовать папку (дописав в название особенность версии).
Ну и вести в txt-файле историю версий проекта.

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

8
Я сталкивался с подобной проблемой когда значения формата double обрезалось до float путем отбоса лишних байт.
Иногда получалось, что в результате отброса действующее значение становилось равным нулю.
А для дробных чисел ноль в степени не допустим и может привести к ошибке.
У меня даже запись в базу такого значения вызывало потом ошибку при select.

9
УРА !!! ЗАРАБОТАЛО !!! (Матроскин)

По вашей рекомендации поставил в проекте для OPC-серверы Метку времени - компьютер и тренды появились.
Кто бы знал, что это подарочек от 'Lectus Modbus OPC and DDE server'.

10
Ты бы вывел чуток побольше регистров (547,548,549,54a).
Описания у нас ведь нет (только догадки).
Может значение в 54a (V01).
Да еще чему равна частота (чтоб сравнить).

11
Значит все таки 2х байтные...
Ставь тип: SmallInt

1310720 - 140000h
0065556 - 010014h

Значит:
547 - 0000 - disable (не выбран параметр)
548 - 0014 - 20 (в десятичке)
549 - 0001 - умножить на 10 (или поделить)

Реальные значения там будут когда запишешь в 547 номер параметра (1,2,3,4)

12
Ваши вопросы / Re: Границы переменных
« : 24 Апреля 2025, 10:20:02 »
В первом скрипте ты постоянно присваиваешь ей видимость, потому она и не пропадает.
Во втором скрипте ты ее гасишь когда войдет в норму и пишешь что, работает.

А что тебе в третьем скрипте нужно не понятно.
Там все условия проверки нужно заключать в скобки, типа: (temperatura.GetValueZone = 0) or (...

Возможно тебе нужно это: temperatura.GetValueZone >= 0

13
Я конечно не могу гарантировать это, но я еще ни разу не встречал 2х байтных int.

Для стандарта модбас нумерация регистров идет по два байта (word).
Значения, занимающие два регистра (int), нумеруются через один.

Однако я встречал один прибор у которого была нумерация в подряд для int.
Чтение двух регистров с 0548 даст значение одного int.
В этом случае параметры могут читаться только по одному, групповой запрос запрещен.
Это было указано в руководстве на прибор, а как в данном случае я не знаю.

Получить int значение из 0548 можно запросом 2х регистров
аналогично и для 0549 если только ОРС не объединит запрос в один.

Собственно 0549 можно и не читать, а жестко задать деление на нужное количество 10 знаков.

14
Да вроде все понятно...

Регистр 0404 Word (16 бит) и расписано какой бит за что отвечает.

Регистр 0548 int (32 бит) для аналогово значения.
В нем может быть только одно значение, а какое задается в регистре 0547.

т.е. сначала нужно в регистр 0547 записать 1 (для Freq), а затем считать из регистра 0548 целое число частоту в герцах.
Модбас в регистрах хранит целые числа, поэтому нужно число поделить на 10 указанное количество раз в регистре 0549.

Аналогично и для остальных параметров 2,3,4

15
Стоит архивация по времени потому, что эта переменная заносится оператором и может не меняться несколько суток.

Я не останавливаю сервер потому, что на нем работает еще и другой проект.
Я просто останавливаю свой проект, вношу и сохраняю изменения и с нова запускаю клиент.

Сделал новый тестовый проект (всего 5 переменных в тренде).
Проект и логи выслал.

Страницы: [1] 2 3 4