PDA

Просмотр полной версии : Вопросы по MasterSCADA 4D



Страницы : 1 2 3 4 5 [6] 7 8

1exan
27.02.2024, 08:24
Ещё вопрос по авариям - я передаю слово из 16 бит PLC в MS, могу ли я в архиве журнала указать Шкала AI или просто Шкала и там уже эти биты распаковывать и составлять приоритеты 750/500 или нужно для каждой аварии создать свой параметр, его привязывать к биту полученного из PLC слова?

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

Yakut
27.02.2024, 08:58
Со шкалой не понял замысел, наверное лучше распаковать биты отдельно и сделать аварии, используя для их активации уже распакованные биты

Биты я уже распаковал, но объекты для каждого бита в дереве объектов не делал. Это нужно будет сделать для каждого битика свой параметр?
Я вообще хочу аварии сделать) Что бы вываливались аварии в журналах. В свойствах Параметра объекта есть шкалы DI AI и шкалы. Как то не хочется каждую аварию сидеть и выстукивать на клаве, можно ли как-то взять к примеру шкалы AI и где-то в настройках самого журнала аварий присваивать биты как аварийный сигнал. Не знаю смог ли объяснить.

Yakut
27.02.2024, 09:12
Вообще такое не через видимость делается, а прямо через свойство "Изображение": привязать к нему переменную, выбрать в связи тип конвертации "точечная" и назначить каждому значению нужное изображение

О том и речь, если я беру бит, который сигнализирует что оборудование включено, то могу сделать базовыми средствами что бы крутилось что/либо. И таких битов могу передать сразу 16 за одно слово, а если я хочу делать движение самостоятельно, тогда мне на одно оборудование уйдёт 1 слово.

1exan
27.02.2024, 11:25
О том и речь, если я беру бит, который сигнализирует что оборудование включено, то могу сделать базовыми средствами что бы крутилось что/либо. И таких битов могу передать сразу 16 за одно слово, а если я хочу делать движение самостоятельно, тогда мне на одно оборудование уйдёт 1 слово.

Я не знаю, есть ли штатные средства для этого, но если делать самому - можно написать программу, которая будет непрерывно считать от 0 до 10 (смотря сколько картинок). И при включенном бите она будет считать, а при выключенном - выдавать например 0. Тогда дополнительные переменные в ПЛК не нужны

1exan
27.02.2024, 11:33
Биты я уже распаковал, но объекты для каждого бита в дереве объектов не делал. Это нужно будет сделать для каждого битика свой параметр?
Я вообще хочу аварии сделать) Что бы вываливались аварии в журналах. В свойствах Параметра объекта есть шкалы DI AI и шкалы. Как то не хочется каждую аварию сидеть и выстукивать на клаве, можно ли как-то взять к примеру шкалы AI и где-то в настройках самого журнала аварий присваивать биты как аварийный сигнал. Не знаю смог ли объяснить.

Честно говоря не понял.
Как минимум текст авариного сообщения всё равно набирать придётся

Yakut
27.02.2024, 11:41
Честно говоря не понял.
Как минимум текст авариного сообщения всё равно набирать придётся

В картинке сверху слева в дереве объектов - программы на СТ, в ней параметры Бит_0, Бит_1 и т.д. Мне в дереве объектов нужно создавать отдельные булевские параметры этих же выходных сигналов, что бы привязать их к окну сообщений?

1exan
27.02.2024, 12:05
В картинке сверху слева в дереве объектов - программы на СТ, в ней параметры Бит_0, Бит_1 и т.д. Мне в дереве объектов нужно создавать отдельные булевские параметры этих же выходных сигналов, что бы привязать их к окну сообщений?

Да вроде необязательно, можно напрямую

Yakut
27.02.2024, 13:16
Да вроде необязательно, можно напрямую

Смотрю их стандартные проекты, там они для каждого бита делали в дереве библиотек аварию, потом к Активность привязывали выход из программы((( капец у меня аварий много...

Ready
27.02.2024, 14:16
Смотрю их стандартные проекты, там они для каждого бита делали в дереве библиотек аварию, потом к Активность привязывали выход из программы((( капец у меня аварий много...

Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.

Yakut
27.02.2024, 15:02
Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.
Это надо переварить...

1exan
27.02.2024, 15:56
Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.

А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?

Yakut
28.02.2024, 05:55
А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?

Если не ошибаюсь, то в любом случае надо указывать шкалу DI без этого сообщения не работают

Yakut
28.02.2024, 07:04
Я правильно понимаю, что простым копипастом тревоги нельзя делать, нужно обязательно создавать заново?
Ибо значения у меня не меняются. Бит взвёлся в TRUE? а на тревогу не передаёт, хотя связь есть.
Более того, если делаю вторую тревогу, так в ней вообще ничего не активно как в первой тревоге...честно говоря уже хочется не цензурно начать разговаривать...почему оно такое кривое?
Тренды тоже не работают вываливается программа в ошибку и каналы к тренду не привязываются.

Просто нужно заново рантайм запускать. Благо рядом бук стоит, можно на нём эксперименты проводить. А по трендам тех поддержка вторые сутки отвечает...оперативно так для коммерческих клиентов.

По трендам может тут кто в курсе, выложу, нужно делать, а работа стоит(

1exan
28.02.2024, 07:55
Я правильно понимаю, что простым копипастом тревоги нельзя делать, нужно обязательно создавать заново?
Ибо значения у меня не меняются. Бит взвёлся в TRUE? а на тревогу не передаёт, хотя связь есть.
Более того, если делаю вторую тревогу, так в ней вообще ничего не активно как в первой тревоге...честно говоря уже хочется не цензурно начать разговаривать...почему оно такое кривое?
Тренды тоже не работают вываливается программа в ошибку и каналы к тренду не привязываются.

Просто нужно заново рантайм запускать. Благо рядом бук стоит, можно на нём эксперименты проводить. А по трендам тех поддержка вторые сутки отвечает...оперативно так для коммерческих клиентов.

По трендам может тут кто в курсе, выложу, нужно делать, а работа стоит(

Копировать можно, но привязки к тегам надо либо корректировать при копировании, либо устанавливать заново после копирования

На первом скрине значение параметра "Активность" заблокировано в значении "False" - может по этому не реагирует?

По трендам похоже привязано что-то не то, покажите что именно привязываете к каналам тренда

Yakut
28.02.2024, 08:05
Активность я добавил уже позже. Когда эксперементировал. Просто нужно скорее всего по новой запустить рантайм.
А привязываю к тренду объект LMK858 МБР1. Это объект канала модбас INT с регистром 28436 прямо из контроллера.

Как видно на картинках, перенесённый объект не привязался в самом графике, не появились перья. Нет легенды пера красный, зелёный и т.д.

1exan
28.02.2024, 08:18
Активность я добавил уже позже. Когда эксперементировал. Просто нужно скорее всего по новой запустить рантайм.
А привязываю к тренду объект LMK858 МБР1. Это объект канала модбас INT с регистром 28436 прямо из контроллера.

Как видно на картинках, перенесённый объект не привязался в самом графике, не появились перья. Нет легенды пера красный, зелёный и т.д.

Так добавьте перья и потом уже в каждое перо привязывайте теги

Должно быть так примерно:
73940

Yakut
28.02.2024, 08:52
Так добавьте перья и потом уже в каждое перо привязывайте теги

Должно быть так примерно:
73940

Так тоже пробовал - не работает. К тому же как у них в роликах обучающих делал, что так что сяк ошибка одна и та же.

1exan
28.02.2024, 09:07
Так тоже пробовал - не работает. К тому же как у них в роликах обучающих делал, что так что сяк ошибка одна и та же.

Не пробовали сделать отдельный проект только с трендом для пробы?

Yakut
28.02.2024, 09:17
Не пробовали сделать отдельный проект только с трендом для пробы?

На ноуте открывал их рабочий - у них всё добавлялось. Сейчас на компе попроюбую новый сделать. Спасибо за подсказку. Кстати, могу попробовать скинуть свой недоделанный, можете попробовать у себя открыть?
В новом работает

1exan
28.02.2024, 09:35
На ноуте открывал их рабочий - у них всё добавлялось. Сейчас на компе попроюбую новый сделать. Спасибо за подсказку. Кстати, могу попробовать скинуть свой недоделанный, можете попробовать у себя открыть?
В новом работает

Кидайте, можете ссылкой в личку

Ready
28.02.2024, 10:06
А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?

В вопросе шла речь про шкалы, поэтому был предложен такой вариант. Если каждый из 16 бит это, например, отказ чего-либо, шкала DI вполне подходит. Если подразумевается что-то другое, можно и через тревоги, это более гибкий способ.

Yakut
28.02.2024, 10:59
Кидайте, можете ссылкой в личку

Ушло в личку

Yakut
02.03.2024, 13:51
А что бы максимальный уровень на тренде по оси Y задавать нужно что менять?

1exan
02.03.2024, 13:59
А что бы максимальный уровень на тренде по оси Y задавать нужно что менять?

Там для каждого пера можно задать пределы шкалы:
74016
Параметры MinY и MaxY

Yakut
02.03.2024, 14:31
Там для каждого пера можно задать пределы шкалы:
74016
Параметры MinY и MaxY
Отлично, просто их нужно поставить как хочу диапазоном?
Я почему спрашиваю, меняю ив перьях и в самом графике - он всё равно мне 100 выдаёт((
Уже подвязал к верхнему уровню текущий -циферки пропали, но зато я хоть график вижу хоть какой-то. Но стал другую ошибку выдавать:
FROM id="153017"
Значение "[object Object]" не может быть преобразовано в тип "LREAL" = при чём тут плавающая точка? откуда она вообще взялась? Это ID по графику, найти его тоже тот ещё квест был, поисковик её не выдаёт, хороший партизан.

Хотя я никакой ДКУФД не делал, у меня обычный INT!

1exan
02.03.2024, 15:28
Отлично, просто их нужно поставить как хочу диапазоном?
Я почему спрашиваю, меняю ив перьях и в самом графике - он всё равно мне 100 выдаёт((
Уже подвязал к верхнему уровню текущий -циферки пропали, но зато я хоть график вижу хоть какой-то. Но стал другую ошибку выдавать:
FROM id="153017"
Значение "[object Object]" не может быть преобразовано в тип "LREAL" = при чём тут плавающая точка? откуда она вообще взялась? Это ID по графику, найти его тоже тот ещё квест был, поисковик её не выдаёт, хороший партизан.

Хотя я никакой ДКУФД не делал, у меня обычный INT!

Судя по ошибке был перетащено что-то имеющее тип "Объект" на параметр (возможно это был как-раз "MinY" или "MaxY"), который имеет тип "LREAL"

Yakut
03.03.2024, 08:39
Судя по ошибке был перетащено что-то имеющее тип "Объект" на параметр (возможно это был как-раз "MinY" или "MaxY"), который имеет тип "LREAL"

Возможно, убрал привязку ошибка прошла, но есть другая проблема.
Уровни Y максимальный стоит 100 и нее меняется на 4000. Поэтому график за полем наверху. Перетащил параметр на тренд, установил диапазон 4000, а при исполнении пишет 100.

Yakut
03.03.2024, 08:42
Оказывается в этом графике слева есть функция растягивания бегунка на всю величину.
Как сделать что бы по умолчанию оно было на всю катушку?

pasha12q1
05.03.2024, 08:22
Вопрос "удобства". Как я понял дерево только одно и привязки между переменными только через него. У меня тысячи параметров и тегов, прыгать зажав кнопку мыши через огромное дерево с постоянно перескакивающей автопрокруткой это мягко говоря крайне неудобно. Если есть "нормальный" способ привязки переменных, хотя-бы два независимых дерева, то поправьте как это сделать. На данный момент, существующий способ является издевательством над пользователем и годится только для маленьких проектов.

1exan
05.03.2024, 08:27
Вопрос "удобства". Как я понял дерево только одно и привязки между переменными только через него. У меня тысячи параметров и тегов, прыгать зажав кнопку мыши через огромное дерево с постоянно перескакивающей автопрокруткой это мягко говоря крайне неудобно. Если есть "нормальный" способ привязки переменных, хотя-бы два независимых дерева, то поправьте как это сделать. На данный момент, существующий способ является издевательством над пользователем и годится только для маленьких проектов.

Правой кнопкой на основании дерева объектов => "Открыть в панели веток".
Панель веток на вкладке в том-же окне, где и основное дерево - растащите Панели "Дерево" и "Ветки" в отдельные окна и поставьте рядом:
74076

pasha12q1
05.03.2024, 09:07
Бомба! Спасибо!:cool:

Yakut
06.03.2024, 07:19
А как трубы вместе склеить? Я беру вертикальную трубу, ставлю ширину 10. Затем беру отвод ставлю ему ширину и высоту 10, он получается меньше по размеру ширины трубы, но размер картинки ес-но совпадает, т.к. ширина соответствует указанной. Но мне то и оператору важно что бы было совпадение самого рисунка, а не размера картинки. Делаю ширину 15 и высоту 15 самого отвода, что бы хоть как-то совпал стык в стык, и пытаюсь сдвинуть эти стыки вместе, но они с гиганстким шагом. Как быть, посоветуйте?

МихаилГл
06.03.2024, 08:06
Ну как бы логично, у вас ширина отвода включает и загиб. А где координата X...Y нельзя в пикселях задавать?

PS Ну вы совсем обленились...
74120

Yakut
06.03.2024, 09:14
Ну как бы логично, у вас ширина отвода включает и загиб. А где координата X...Y нельзя в пикселях задавать?

PS Ну вы совсем обленились...
74120

Да, я уже разобрался, благодарю) Привычка Сименовская ещё не вытравилась где удобно сделано в плане пользования..

МихаилГл
06.03.2024, 09:19
Да, я уже разобрался, благодарю) Привычка Сименовская ещё не вытравилась где удобно сделано в плане пользования..

Лень матушка... Я вот ради эксперимента попробовал с зажатым Ctrl... Все работает нормально. По пикселю двигает.

Yakut
06.03.2024, 13:15
Лень матушка... Я вот ради эксперимента попробовал с зажатым Ctrl... Все работает нормально. По пикселю двигает.

Про CTRL не знал, буду пользоваться, спасибки.
А в библиотечных насосах вижу есть в Параметры > Общая авария. И там выбор имеется Alarm и Warning. Я могу туда привязать аварийный бит с контроллера и что бы он краснел, например. Или это про другое тут?
НЕ сочтите за лень, просто объект в работе, останавливаться не могу что бы вливаться постоянно ноут уже сел(

alex_ku
06.03.2024, 13:46
MasterScada Версия: 1.3.4.16647(1.3.4_20231225.2) запись регистра на ПЛК 210
Добрый день! Возник вопрос по поводу записи регистра типа word из MasterScada v4 на ПЛК 210.Считать информацию получилось создал канал input с типом INPUT_REGISTERS прописал адресс и тип WORD и успешно получил значение.
А вот с записью начались проблемы. Созждаю канал Output, выход доступ запись , режим Holding registerы и Coils
менял местами без результата, на выходе SYSTEM_WORD_PARAM менял на WORD .На стороне CODESYS обновление переменных ВКЛ (2 всегда в задаче цикла)
Надеюсь на помощь…...741467414574147

Yakut
06.03.2024, 14:23
StatusCode стоит badWaiting... попробуйте поставить "GOOD"
И доступ чтение/запись

Yakut
11.03.2024, 06:42
Коллеги, а можете подсказать, почему конвертик с авариями показывает количество аварий, которое не соответствует действительности. У меня по факту горит 4 аварии в журнале, а в конверте 64.

1exan
11.03.2024, 06:47
Коллеги, а можете подсказать, почему конвертик с авариями показывает количество аварий, которое не соответствует действительности. У меня по факту горит 4 аварии в журнале, а в конверте 64.

Может фильтр какой в журнале включен.
Либо индикатор показывает, допустим, алармы ВСЕГО АРМ, а журнал - только алармы отдельного объекта

Yakut
11.03.2024, 09:04
Может фильтр какой в журнале включен.
Либо индикатор показывает, допустим, алармы ВСЕГО АРМ, а журнал - только алармы отдельного объекта

А что сделать, что бы было соответствие аварии активной и на конвертике такое же число?

1exan
11.03.2024, 14:59
А что сделать, что бы было соответствие аварии активной и на конвертике такое же число?

Попробуйте в свойствах "Объект" журнала и индикатора указать один и тот-же объект

Yakut
12.03.2024, 06:46
Попробуйте в свойствах "Объект" журнала и индикатора указать один и тот-же объект
Честно говоря, не очень понял где, но у меня в объектах ни в самом журнале ни в самом индикаторе ничего не указано..

1exan
12.03.2024, 07:00
Честно говоря, не очень понял где, но у меня в объектах ни в самом журнале ни в самом индикаторе ничего не указано..

Нужно перетащить туда объект

https://support.mps-soft.ru/Help-web/index.html?graficheskiy_element__jurnal_.html

Yakut
13.03.2024, 07:14
Нужно перетащить туда объект

https://support.mps-soft.ru/Help-web/index.html?graficheskiy_element__jurnal_.html

Я просто фильтры поставил в программе, и стало показывать только то, что в аварии.

Другой вопрос - как показывать только положительные значения в Мастер скаде?
Начал дело писать на ST, а что-то не получается.
Я сделал так - если у меня значение переменной 1 показывает меньше 0, то переменной 2 присваивать 0. Если значение переменной 1 > 0, то присваивать переменной 2 текущее значение переменной 1. С синтаксисом никак не могу победить

Всё, вроде скушало вот это:
IF Расходомер_РУ1 <0 THEN
Pozitive_RU1:=0;
ELSE
Pozitive_RU1:=Расходомер_РУ1;
END_IF;

1exan
13.03.2024, 07:48
Я просто фильтры поставил в программе, и стало показывать только то, что в аварии.

Другой вопрос - как показывать только положительные значения в Мастер скаде?
Начал дело писать на ST, а что-то не получается.
Я сделал так - если у меня значение переменной 1 показывает меньше 0, то переменной 2 присваивать 0. Если значение переменной 1 > 0, то присваивать переменной 2 текущее значение переменной 1. С синтаксисом никак не могу победить

Всё, вроде скушало вот это:
IF Расходомер_РУ1 <0 THEN
Pozitive_RU1:=0;
ELSE
Pozitive_RU1:=Расходомер_РУ1;
END_IF;


Можно так
Расходомер_РУ1 := MAX(IN1:= 0, IN2:= Расходомер_РУ1);

Если есть ПЛК, то лучше делать это в нём и не отправлять в скаду неправильные значения вообще

Krok27
15.03.2024, 12:18
Добрый день. Вопрос по конвертации данных. Нужно выводить на метку значение параметра если качество хорошее и, допустим, "Ошибка" если плохое.
Если программно, то будет ошибка преобразования в формат, типа "Не число "Ошибка" не может быть преобразовано в формат F0". Может у кого есть идеи.

1exan
15.03.2024, 12:31
Добрый день. Вопрос по конвертации данных. Нужно выводить на метку значение параметра если качество хорошее и, допустим, "Ошибка" если плохое.
Если программно, то будет ошибка преобразования в формат, типа "Не число "Ошибка" не может быть преобразовано в формат F0". Может у кого есть идеи.

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

Krok27
15.03.2024, 12:49
Сделать ещё отдельный выход в программе, связать с форматом и писать туда "F0", когда отправляется число и "" - когда отправляется текст

Спасибо, помогло. Но не надолго. При загрузке проекта все хорошо. При изменении качества в процессе ошибка сохраняется...

1exan
15.03.2024, 14:37
Спасибо, помогло. Но не надолго. При загрузке проекта все хорошо. При изменении качества в процессе ошибка сохраняется...

Может сам подход изменить? Перечёркивать значение например, цвет фона менять и т.п.?

Krok27
18.03.2024, 08:40
Может сам подход изменить? Перечёркивать значение например, цвет фона менять и т.п.?

Пришлось, цвет фона меняю. Спасибо.

1exan
21.03.2024, 16:31
Шкалу AI удобно использовать для работы с трендами, но есть какая-то возможность использовать шкалу, но отключить сообщения в ней? -
события по предупредительным и аварийным пределам уже формируются самим ПЛК, при этом там учитывается текущее состояние объекта и источника сигнала (сообщения выдаются не во всех случаях)

ВВВ555
22.03.2024, 11:30
Скажите пожалуйста, можно ли как-то задать пароль на рантайм, чтобы кто угодно не мог подключиться к сети и загрузить свой проект вместо работающего на сервере?

Larrrik
25.03.2024, 10:52
Скажите пожалуйста, можно ли как-то задать пароль на рантайм, чтобы кто угодно не мог подключиться к сети и загрузить свой проект вместо работающего на сервере?
Вот здесь в справке посмотрите:
https://support.mps-soft.ru/Help-web/index.html?vkladka__raznoe_.html
Опция: "Пароль к серверу".
Онлайн справка актуализируется под последнюю версию продукта, так что если Ваша отличается - лучше смотреть аналогичный раздел встроенной справки.

AEFedorov1980
27.03.2024, 14:05
Добрый день!
Нужна ваша помощь.
Задача: сформировать отчет, в котором будут (минутный, часовые или суточные показания с приборов учет) и определить потребленную электроэнергию за указанный период.

В редакторе отчетов Мастерскада 4D создал необходимый архив данных (сделал все привязки).
Получилось вывести первое и последнее значение в отчет с помощью выражений {First(Архив_данных.ИмпортАктивнойЭнергииEP)} и {Last(Архив_данных.ИмпортАктивнойЭнергииEP)}

Но при попытке вывести разницу с помощью выражения
{Last(Архив_данных.ИмпортАктивнойЭнергииEP)}-{First(Архив_данных.ИмпортАктивнойЭнергииEP)}
в ячейку выводит строку типа 234-123, т.е. не выполняет расчет.

Как это можно победить?
Буду признателен за помощь.

AlexBut
02.04.2024, 11:37
Здравствуйте!
Появилась необходимость подключить счётчик ээ Меркурий 234 к MS4D (RT на Linux).
В описании на счётчик сказано: "Обмен данными через последовательный интерфейс RS-485 (CAN) осуществляется
по протоколу IEC 62056 (DLMS/COSEM) или по протоколу «Счётчики трёхфазные Меркурий»."

В MS4D в "протоколах-добавить" есть DlmsOverTCP а "Счётчики трёхфазные Меркурий" нет.
Подскажите какой протокол из предлагаемых в MS4D использовать для подключения к счётчику ээ Меркурий 234 ?
Судя по описанию у него нет эзернет и придётся использовать модем(роутер) с RS485 или RS232 для связи со счётчиком
Спасибо

1exan
02.04.2024, 11:57
Здравствуйте!
Появилась необходимость подключить счётчик ээ Меркурий 234 к MS4D (RT на Linux).
В описании на счётчик сказано: "Обмен данными через последовательный интерфейс RS-485 (CAN) осуществляется
по протоколу IEC 62056 (DLMS/COSEM) или по протоколу «Счётчики трёхфазные Меркурий»."

В MS4D в "протоколах-добавить" есть DlmsOverTCP а "Счётчики трёхфазные Меркурий" нет.
Подскажите какой протокол из предлагаемых в MS4D использовать для подключения к счётчику ээ Меркурий 234 ?
Судя по описанию у него нет эзернет и придётся использовать модем(роутер) с RS485 или RS232 для связи со счётчиком
Спасибо

В справке посмотрите (https://support.mps-soft.ru/Help-web/index.html?protocols.html), Меркурий 234 вроде есть там

melky
02.04.2024, 12:17
AlexBut протоколы DLMS/COSEM и Меркурий РАЗНЫЕ. Производитель выпускает счетчики с разными протоколами опроса. Если у вас с протоколом Меркурий и он не поддерживается, то увы.

AlexBut
02.04.2024, 12:57
Спасибо!
Вижу что можно подключить протоколы Меркурий , но у меня в опциях подключения нет(см скриншоты).
Где их взять?

1exan
02.04.2024, 13:31
Спасибо!
Вижу что можно подключить протоколы Меркурий , но у меня в опциях подключения нет(см скриншоты).
Где их взять?

Там что-то про подключение библиотеки было, поищите там-же

melky
02.04.2024, 13:57
Подключение библиотеки - Драйверы устройств. посмотрите.

AlexBut
03.04.2024, 04:02
Спасибо, с одной стороны в описании на Меркурий(СЧЁТЧИК ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ СТАТИЧЕСКИЙ ТРЁХФАЗНЫЙ «МЕРКУРИЙ 234»
Руководство по эксплуатации АВЛГ.411152.033 РЭ) сказано "Обмен данными через последовательный интерфейс RS-485 (CAN) осуществляется
по протоколу IEC 62056 (DLMS/COSEM) или по протоколу «Счётчики трёхфазные Меркурий»."
С другой стороны в https://support.mps-soft.ru/Help-web/index.html?protocols.html сказано про Mercury: "Важно! По умолчанию этот протокол не входит в состав среды исполнения.
Стоимость и условия лицензирования необходимо уточнять по электронной почте sales@masterscada.ru".


Но у нас в MS4D Версия: 1.3.4.17698 есть протокол DlmsOverTCP -Будет ли наш Меркурий 234 ARTM2-03 PBR R работать
по протоколу IEC 62056 (DLMS/COSEM) с нашей MS4D?

Спасибо!

melky
03.04.2024, 09:43
AlexBut не будет, у вас буквы D нет в модификации
https://www.incotexcom.ru/catalogue/234artm#modification

Меркурий 234 ARTM2-03 (D)PBR.R - нет D, значит только протокол Меркурий. Меркурий 234 ARTM2-03 DPBR.R - вот если бы он был такой, то там DMLS, СПОДЭС

AlexBut
03.04.2024, 11:26
Спасибо, а что насчёт магистрального протокола М4- он нужен чтобы подключить СПГ742.
Хотя у АО НПФ Логика есть свой сервер OPC DA Логика , но мы переводим на платформу Линукс
и нам бы UA да ещё для Линукс. Что насчёт этого думает сообщество ,такое возможно?

melky
03.04.2024, 12:18
AlexBut я использую RapidScada где сам писал драйвера для Логики, можете использовать в качестве прокладки без создания БД в Scada и перенаправить в OPC UA. На том же самом ПК на Linux где будет крутиться MS4D
Пока без архивов, но что есть. Ну или если найдете другое решение..

Ну и кстати без профилей мощности и Меркурий можно прочитать, тоже делал драйвер, правда на руках был Меркурий 236-ой но вроде у них одинаковый протокол. и тоже получить данные по OPC UA.
на халяву :)

alex_ku
10.04.2024, 08:59
Добрый день! Задача тривиальная, передача по modbus RTU вещественных чисел, методом преобразования real в два word и обратно. В Сodesys проблем нет а вот в MasterScada4d не нашел (аналог WORD2_TO_REAL() ) Кто в теме подскажите функциональный блок или связку.

1exan
10.04.2024, 09:57
Добрый день! Задача тривиальная, передача по modbus RTU вещественных чисел, методом преобразования real в два word и обратно. В Сodesys проблем нет а вот в MasterScada4d не нашел (аналог WORD2_TO_REAL() ) Кто в теме подскажите функциональный блок или связку.

А почему не укажете для этого тега значение "REAL" в параметре "Тип данных в устройстве"?
Чередование байт тоже можно поменять (в настройках устройства)

Aleksandr_L
16.04.2024, 11:52
Добрый день.
никогда не записывал параметры в устройства, кто-нибудь может рассказать на пальцах с картинками, как это делается?
необходимо записать вес тары в МВ110-224.4ТД
на сколько я понимаю, надо прописать в регистр значения (рис.1 ) и как то подтвердить (рис.2).
Можете объяснить?
Спасибо.

1exan
16.04.2024, 12:07
Добрый день.
никогда не записывал параметры в устройства, кто-нибудь может рассказать на пальцах с картинками, как это делается?
необходимо записать вес тары в МВ110-224.4ТД
на сколько я понимаю, надо прописать в регистр значения (рис.1 ) и как то подтвердить (рис.2).
Можете объяснить?
Спасибо.

"Подтвердить" - это сохранить текущие значения в энергонезависимую память модуля, чтобы они сохранили свои значения даже после отключения питания. Если необходимо перед работой каждый раз измерять вес тары, то сохранять вес тары в энергонезависимой памяти смысла нет.
Посмотрите тут (https://support.mps-soft.ru/Help-web/index.html?_modbus_rtu_.html) - в каком месте затруднения?

Aleksandr_L
16.04.2024, 12:58
"Подтвердить" - это сохранить текущие значения в энергонезависимую память модуля, чтобы они сохранили свои значения даже после отключения питания. Если необходимо перед работой каждый раз измерять вес тары, то сохранять вес тары в энергонезависимой памяти смысла нет.
Посмотрите тут (https://support.mps-soft.ru/Help-web/index.html?_modbus_rtu_.html) - в каком месте затруднения?

Да, был не прав, необходимо сохранить текущее значение в память модуля.
Считывать получается (см. рис.) как сохранять никак не могу понять.

1exan
16.04.2024, 14:40
Да, был не прав, необходимо сохранить текущее значение в память модуля.
Считывать получается (см. рис.) как сохранять никак не могу понять.

Вы считываете значение с параметра тега "Вход", соответственно писать надо в параметр "Выход" (ниже).
Cоздайте параметр (например "ЗНАЧЕНИЕ_ВЫХОД") типа "SYSTEM_REAL_PARAM" в скаде и свяжите его с параметром "Выход" тега (перетаскиванием). Изменяйте значение параметра "ЗНАЧЕНИЕ_ВЫХОД" и оно будет автоматически передаваться в модуль (по умолчанию запись выполняется по изменению значения).

Aleksandr_L
16.04.2024, 16:01
Спасибо, получилось!!!

vvsluv
17.04.2024, 11:00
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 2.3 с помощью мс4д считываю параметр типа word, в котором первые два бита отвечают за включение и выключение нагревателя 1 и 2 соответственно.
В мс4д добавлено две кнопки
Как сделать так, что бы определенная кнопка отвечала за конкретный бит в этом параметре? Пока что получается так, что при включении 1 кнопки выключается 2 и наоборот.
Просто, например, в СП310 можно выбрать конкретный бит, а в мс4д так можно? Или как это реализовать?
В поддержке писали, что лучше создавать кнопки без фиксации с обратной связью
Но я не понимаю как это реализовать..

1exan
17.04.2024, 11:19
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 2.3 с помощью мс4д считываю параметр типа word, в котором первые два бита отвечают за включение и выключение нагревателя 1 и 2 соответственно.
В мс4д добавлено две кнопки
Как сделать так, что бы определенная кнопка отвечала за конкретный бит в этом параметре? Пока что получается так, что при включении 1 кнопки выключается 2 и наоборот.
Просто, например, в СП310 можно выбрать конкретный бит, а в мс4д так можно? Или как это реализовать?
В поддержке писали, что лучше создавать кнопки без фиксации с обратной связью
Но я не понимаю как это реализовать..

Самый простым вариантом будет сделать по две кнопки (без фиксации) на каждый нагреватель - одна подаёт команду на включение, вторая - на отключение. А ПЛК сделать управление по типу RS-триггера
В MS нужно будет написать небольшую программку, которая упаковывает биты в слово.
Почитайте здесь (https://support.masterscada.ru/ru/knowledge_base/article/72/category/10/) (вам нужна "Программа 2" в конце)

vvsluv
17.04.2024, 12:59
Попробовал, ничего не получается, наверное, совсем ерунду понаделал.
По ссылке тоже смотрел, но там один параметр "холодильник" и у него вход и выход есть, а у меня параметр тоже один, но нагревателя два
И тут я вообще запутался
Смотрел видео на ЮТ, там считывали биты из слова, но там нет обратной связи, что бы управлять битами через Скаду, а не панель7524075241

1exan
17.04.2024, 13:36
Попробовал, ничего не получается, наверное, совсем ерунду понаделал.
По ссылке тоже смотрел, но там один параметр "холодильник" и у него вход и выход есть, а у меня параметр тоже один, но нагревателя два
И тут я вообще запутался
Смотрел видео на ЮТ, там считывали биты из слова, но там нет обратной связи, что бы управлять битами через Скаду, а не панель7524075241


У вас ПЛК - мастер, а панель - слейв?

vvsluv
17.04.2024, 13:43
У вас ПЛК - мастер, а панель - слейв?

Да.

А панель тоже влияет на то все?

А можно ли как то менять значение бита принудительно в таком случае?75243

kondor3000
17.04.2024, 16:01
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 2.3 с помощью мс4д считываю параметр типа word, в котором первые два бита отвечают за включение и выключение нагревателя 1 и 2 соответственно.
В мс4д добавлено две кнопки
Как сделать так, что бы определенная кнопка отвечала за конкретный бит в этом параметре? Пока что получается так, что при включении 1 кнопки выключается 2 и наоборот.
Просто, например, в СП310 можно выбрать конкретный бит, а в мс4д так можно? Или как это реализовать?
В поддержке писали, что лучше создавать кнопки без фиксации с обратной связью
Но я не понимаю как это реализовать..

Вы не написали, панель и скада подключены к 1 интерфейсу или к разным?
Если у вас всего 2 бита, то можно и не упаковывать в маску, а передавать битами на Скаду. Просто в 4D вам придётся сильно извернуться.

1exan
17.04.2024, 17:05
Да.



Значит скада подключается к панели?

vvsluv
17.04.2024, 18:42
К одному,rs-485, вы как раз и посоветовали передавать параметры через byte или word, чем я и воспользовался.

Ну, если я правильно понял, то скала считывает значение тегов из кодесис

В целом, у меня +- получилось реализовать задуманное через программу fbd в скаде
Я добавил блок byte to bit что бы создать лампочку индикации
И еще один блок bit to byte (вроде), на который повесил два входа, которыми и управляю. Вроде, работает, хотя и костыльно, как мне кажется
Разве что при включении нагревателей с панели нельзя их сразу выключить из скады, потому что мой булиевый параметр не имеет обратной связи на данный момент

1exan
17.04.2024, 18:46
К одному,rs-485, вы как раз и посоветовали передавать параметры через byte или word, чем я и воспользовался.

Ну, если я правильно понял, то скала считывает значение тегов из кодесис

А какой протокол выбран в скаде для подключения?

vvsluv
17.04.2024, 18:49
Opc da, получилось подключиться только через него

1exan
17.04.2024, 19:07
Opc da, получилось подключиться только через него

Теперь понятно.
Но как вам и сказали в техподдержке, такие штуки как кнопки с фиксацией - очень плохо будут работать в MS, даже если сильно извернуться.
Читать отдельные биты слова из ПЛК в MS можно без проблем. Менять бит в слове и просто посылать это слово в ПЛК тоже без проблем.
Можно сделать два слова - биты одного хранят состояния оборудования, битами другого - осуществляется управление.
Например так:
75249

kondor3000
17.04.2024, 19:19
Opc da, получилось подключиться только через него

По протоколу Модбас RTU, тоже всё работает, через переходник.
В 4D можно вставить тот же самый ФБ на ST, который у вас в ПЛК для целочисленных, и управлять так-же из 2 мест, из скады и из ПЛК.
Я этой скадой не пользуюсь, от слова совсем.

vvsluv
17.04.2024, 19:22
Теперь понятно.



Через da плохо? И как тогда лучше подключаться?

А в мс потом как биты менять? Я еще вроде до этого скидывал, как у меня проект выглядит, в моем случае ControlBits это start_tuning?

vvsluv
17.04.2024, 19:24
По протоколу Модбас RTU, тоже всё работает, через переходник.
В 4D можно вставить тот же самый ФБ на ST, который у вас в ПЛК для целочисленных, и управлять так-же из 2 мест, из скады и из ПЛК.
Я этой скадой не пользуюсь, от слова совсем.

Спасибо, Попробую создать завтра такой фб

Именно скадой 4д? А что тогда есть лучше?

kondor3000
17.04.2024, 19:31
Спасибо, Попробую создать завтра такой фб

Именно скадой 4д? А что тогда есть лучше?

Когда помучаетесь, с каждой фигнёй, поймёте. Попробуйте другие скады, почти у всех есть бесплатные версии.

1exan
18.04.2024, 04:57
Через da плохо? И как тогда лучше подключаться?

А в мс потом как биты менять? Я еще вроде до этого скидывал, как у меня проект выглядит, в моем случае ControlBits это start_tuning?

Я например предпочитаю делать ПЛК слейвом и для панели и для скады.
Подключать скаду и панель можете по любым интерфейсам в любых сочетаниях.

В МС биты упаковываете через программу с блоком, который справа на вашем скрине, его подцепите к ControlBits - это будет слово с битами управления.
А тот блок, что справа на скрине, поставите в другую программу, его вход подключите к другому тегу (StateBits) - на выходе блока будете смотреть биты с текущим состоянием оборудования

vvsluv
18.04.2024, 13:16
Попробовал, теперь я могу включить и выключить бит из скады
Но если включаю на панели, то в скаде уже не могу выключить (только если нажать "включить" и потом уже "стоп")

kondor3000
18.04.2024, 13:27
Попробовал, теперь я могу включить и выключить бит из скады
Но если включаю на панели, то в скаде уже не могу выключить (только если нажать "включить" и потом уже "стоп")

Что то вы не так сделали, 1 WORD со скады 2 WORD из ПЛК, всё должно работать.
Поставьте 2 блока, один за другим, у вас будет 3 входа а не 2.

vvsluv
18.04.2024, 13:42
Что-то я вообще не понимаю.
У меня в скаду приходит параметры start_tuning (WORD) на чтение и start_tuning1 (WORD) на запись
75264
В скаде я распаковываю вход start_tuning (WORD) на БИТЫ, которые отвечают за индикацию
Потом я создал в Скаде еще 2 БИТА, что бы управлять системой и передаю их на выход start_tuning1 (WORD)
И в целом, если управлять только из скады - работает, но если включить сначала на панели, то уже нельзя отключить сразу
Потому что биты которые уходят на start_tuning1 (WORD) остаются выключенными...

И не понимаю, какой должен быть 3-й параметр

kondor3000
18.04.2024, 14:12
Что-то я вообще не понимаю.

И не понимаю, какой должен быть 3-й параметр

Сделайте скрин схемы, что вы наваяли в скаде.

vvsluv
18.04.2024, 14:16
75265
Или что то еще нужно заскринить?

kondor3000
18.04.2024, 14:19
Или что то еще нужно заскринить?

А ФБ блок на ST где?

vvsluv
18.04.2024, 14:23
Я его не пробовал сделать, потому что не особо понял как

Пробовал по совету 1exan сделать, тоже не получилось

kondor3000
18.04.2024, 14:30
Я его не пробовал сделать, потому что не особо понял как

Пробовал по совету 1exan сделать, тоже не получилось

Поэтому у вас и не работает, блок должен прочитанное записать в индикатор скады, а управляющий бит передать на запись в ПЛК.

vvsluv
18.04.2024, 14:36
блок должен прочитанное записать в индикатор скады, а управляющий бит передать на запись в ПЛК.
В программе ST нужно жто прописывать?

То есть нужно создать программу ST и перетащить ее в программу FBD? А в кодесис надо еще что то добавлять?

kondor3000
18.04.2024, 14:47
В программе ST нужно жто прописывать?

То есть нужно создать программу ST и перетащить ее в программу FBD? А в кодесис надо еще что то добавлять?

Да, создать ФБ и перетащить в скаде, в кодесис ничего не надо.

vvsluv
18.04.2024, 15:13
А там в блоке (программе ст) должно быть что то типа
2 входа прочитанный бит (start_tuning) и 2 выхода биты на индикаторы
Если с прочитанного бита истина, то на индикаторе тоже истина?

Потом добавить еще два входа, которые буду переключать в скаде и на выходе два бита, которые будут упаковываться в слово (start_tuning1) и передаваться на плк?

kondor3000
18.04.2024, 20:17
А там в блоке (программе ст) должно быть что то типа
2 входа прочитанный бит (start_tuning) и 2 выхода биты на индикаторы
Если с прочитанного бита истина, то на индикаторе тоже истина?

Потом добавить еще два входа, которые буду переключать в скаде и на выходе два бита, которые будут упаковываться в слово (start_tuning1) и передаваться на плк?

Вот программа на ST для WORD 75270 Программа для BOOL 75271 И работа программы на поле 75272
Остальное сами, меня просто бесит эта куча тегов, всего для 2 переменных.

Aleksandr_L
19.04.2024, 10:06
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.

asuwcc
19.04.2024, 13:19
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.

День добрый.

Запуск стороннего Клиента
...
Если необходимо получить доступ к определенному окну без окна авторизации (не к тому, что задано по умолчанию как стартовое окно), то адресная строка должна иметь вид, [IP]:[порт TCP/IP] /[номер экземпляра]/index.html[ID окна]&user=[логин]&password=[пароль]. Например, http://127.0.0.1:8043/7/index.html?12345&user=sa&password=123, где клиент подключается к 127.0.0.1 - IP-адресу узла, порту 8043, к 7 экземпляру исполнительной системы, к окну 12345, под пользователем sa с паролем 123.

https://support.mps-soft.ru/Help-web/index.html?zapusk_klienta.html

Например, http://127.0.0.1:8043/index.html?251009, где 251009 - Id элемента в свойствах окна (включите Служебные свойства в настройках среды).
Если исполняется 1 проект, то номер экземпляра, скорее всего, не обязателен. У меня и без него работает.

Dorr
19.04.2024, 13:40
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.

Сделайте еще одного пользователя, привяжите его к окну, которое хотите открывать на другом компе! Один пользователь при загрузке - одно окно, другой - другое окно!

plcmaster
21.04.2024, 16:26
Если в поле Xpath ввести недопустимый символ (я ввёл слеш \), то появляется окошко, которое бесконечно открывается, сколько бы не нажимал кнопку ок.
75308

ArturRazd
24.04.2024, 11:25
Если в поле Xpath ввести недопустимый символ (я ввёл слеш \), то появляется окошко, которое бесконечно открывается, сколько бы не нажимал кнопку ок.
75308

Багфикс в 1.3.5.

Danila Kholkin
03.05.2024, 07:09
подскажите как я мне надо управлять пр103 через модбас TCP с нескольких мест через панель оператора и через мастер скаду . С панелью я разобрался она записывает переменную только по изменению или при нажатии на кнопку . а как в мастер скаде сделать также чтобы она передавала значение только при изменении надо статус код менять и Bad на Good а потом обратно ? Как это сделать не могу найти примера ?

1exan
03.05.2024, 10:54
подскажите как я мне надо управлять пр103 через модбас TCP с нескольких мест через панель оператора и через мастер скаду . С панелью я разобрался она записывает переменную только по изменению или при нажатии на кнопку . а как в мастер скаде сделать также чтобы она передавала значение только при изменении надо статус код менять и Bad на Good а потом обратно ? Как это сделать не могу найти примера ?

При статусе Bad значение вообще не передаётся.
По умолчанию команда на запись идёт только по изменению значения. Это устанавливается в настройках протокола. Примеров много, поищите у них на сайте
Видео (https://www.masterscada.ru/trainingms4d#popup:youtubevideo22)по теме

sedlexx
09.05.2024, 14:05
Добрый день!
Требуется подключить устройство (не Owen) по протоколу Modbus RTU. Среда исполнения на Linux. Версия скады 1.3.5. Не понимаю, как указать номер порта. В Windows всё понятно - если подключено по COM7, то номер 7. Среда разработки не дает указать путь к устройству вида /dev/ttyUSB0. Device number из сообщения ядра при подключении USB конвертера не подходит.
И еще, обнаружил, что скада не отправляет команды записи регистров. Проверил в версии 1.2.18 - работает и чтение регистров, и запись.

МихаилГл
09.05.2024, 21:07
Добрый день!
Требуется подключить устройство (не Owen) по протоколу Modbus RTU. Среда исполнения на Linux. Версия скады 1.3.5. Не понимаю, как указать номер порта. В Windows всё понятно - если подключено по COM7, то номер 7. Среда разработки не дает указать путь к устройству вида /dev/ttyUSB0. Device number из сообщения ядра при подключении USB конвертера не подходит.
И еще, обнаружил, что скада не отправляет команды записи регистров. Проверил в версии 1.2.18 - работает и чтение регистров, и запись.

Во нашёл:
https://unixforum.org/viewtopic.php?t=28372

sedlexx
10.05.2024, 09:54
Во нашёл:
https://unixforum.org/viewtopic.php?t=28372

Спасибо за ссылку - помогло. Сделал симлинк ln -s /dev/ttyUSB0 /dev/ttyS4 и по номеру порта 5 подключился.
По поводу записи в регистры - указал в свойствах выхода StatusCode значение Good. Запись заработала.

МихаилГл
10.05.2024, 12:09
Спасибо за ссылку - помогло. Сделал симлинк ln -s /dev/ttyUSB0 /dev/ttyS4 и по номеру порта 5 подключился.
По поводу записи в регистры - указал в свойствах выхода StatusCode значение Good. Запись заработала.

Походу тоже скоро придётся всём начать массово изучать линукс... А то из-за ухода разных вендоров с виндовс всё больше проблем.

Minarion
16.05.2024, 12:46
Добрый день!
А где-то хранятся в явном виде логины/пароли от протоколов подключения к БД?

Dead Kid
03.06.2024, 19:22
Здравствуйте. Есть вопрос по рецептам. Требуется сделать скаду для управления печью с рецептами, в которых записана температура, скорость нагрева и т.п. Вопрос в том, может ли мастер скада 4д импортировать данные из excel или csv? В ТЗ просят для каждого рецепта отдельный файл и было бы удобно читать из таблицы .xls без поднятия sql.

Тимур Назарбоев
04.06.2024, 15:56
Здравствуйте. Есть вопрос по рецептам. Требуется сделать скаду для управления печью с рецептами, в которых записана температура, скорость нагрева и т.п. Вопрос в том, может ли мастер скада 4д импортировать данные из excel или csv? В ТЗ просят для каждого рецепта отдельный файл и было бы удобно читать из таблицы .xls без поднятия sql.

Добрый день, попробуйте использовать блок CSVToStructArray
76239

Dead Kid
05.06.2024, 13:50
Спасибо, буду пробовать. Ещё возник другой вопрос: а можно ли в мастер скаде 4д создавать excel отчёты? Видел, что в 3д там одной кнопкой добавляется в древо проекта отчёт excel, а в 4д создаётся только pdf отчёт.
А ещё при создании отчёта ФБ ReportFB выдаёт ошибку Unable to cast object of type 'System.Double' to type 'System.Int64'.

Александр Пинэко-Скворцов
06.06.2024, 09:11
Спасибо, буду пробовать. Ещё возник другой вопрос: а можно ли в мастер скаде 4д создавать excel отчёты? Видел, что в 3д там одной кнопкой добавляется в древо проекта отчёт excel, а в 4д создаётся только pdf отчёт.
А ещё при создании отчёта ФБ ReportFB выдаёт ошибку Unable to cast object of type 'System.Double' to type 'System.Int64'.

Добрый день.
Формат отчёта (pdf, html или xlsx) задаётся на входе Format блока ReportFB.
По поводу ошибки прошу написать нам на почту support@owen.ru и приложить проект.

Raman I
06.06.2024, 10:35
Здраствуйте, подскажите есть ли возможность в MasterSCADA 4D в журнал сообщений записывать действия пользователя с полем ввода, чтобы в сообщение выводилось новое записанное значение связанного параметра (для уставок и тому подобного), не используя тревоги?

Rakshinms
09.06.2024, 07:38
Добрый день!

Вопрос по подкючению MS4D к OPC UA серверу, который требует помимо логин/пароля еще и сертификат OPC клиента. Сертификаты хранит OPC UA сервер, и по ним авторизует каждого конкретного клиента.

Подскажите, где почитать как MS4D генерирует такой сертификат? (как пример в UaExpert это делается в окне Manage certificates).

Dead Kid
10.06.2024, 14:20
Здравствуйте. Проблема с ФБ CSVToStrucktArray. Создал CSV файл, ФБ считал с него информацию, потом я отредактировал данные в файле и теперь ФБ выдаёт ошибку "Ошибка. Не найдено ни одного поля из структуры StructArray. Проверьте соответствие кодировок.". Даже если файл перенести по другому пути, то та же ошибка. Помогает только создание нового файла.

UPD: нашёл ошибку: при создании файла поставил разделитель ";", а после редактирования разделитель меняется на ",".

Dead Kid
13.06.2024, 17:47
И снова вопрос. Мне нужно в окне исполнения выводить таблицу из CSV файла. С помощью CSVToStructArray загружаю данные из файла, а как их отобразить в окне? Элемента Справочник, насколько я понял, работает только с SQL. Нашёл элемент Стековая Панель, но при загрузке данных, там отображаются значения не в столбцах, а строкой и большая часть значений не читается. Какой элемент использовать в окне?

Ready
14.06.2024, 08:17
Какой элемент использовать в окне?

"Таблица данных"

Nikolai_Ivanov
16.06.2024, 18:31
Доброго времени суток! Столкнулся с проблемой периодической потери связи между скадой и ПЛК по OPC. При этом панель (Weintek) связь держит стабильно. А после перезагрузки по питанию, так и вовсе каждый второй раз теряет связь с контроллером.
MSCADA v 1.2.18.30831 (язык выбран русский)
PLC 210-01 прошивка CODESYS V3.5 SP17 Patch 3.
На форуме уже несколько дней ищу похожую ситуацию. Найти не удается. Может кто сталкивался с похожей проблемой и может ли быть дело в версии языка на скаде?
Также на другом проекте после заливки изменений в скаду она не может подключиться к ПЛК. Только после перезагрузки контроллера удается восстановить связь. Куда копать, в сторону контроллера или скады. Пока грешу на скаду, так как панели во всех случаях остаются на связи.

Nikolai_Ivanov
16.06.2024, 18:38
В другой ветке мне саппорт предлагает проект скинуть. Но по опыту это мало что дает. И я не могу полный проект предоставить. Плюс вроде и указал основные проблемные моменты и куда пытаюсь копать. Может кто-то все же сталкивался, не я же один догадался установить связку MSCADA 4D и PLC210 по OPC между собой, мне кажется проблема обмена между ними популярна и я искренне верю что кто-то да на форуме знает в чем ошибка. И еще один момент, почему теги в MSCADA делятся на два (чтение и запись), что не было бы такой проблемой как синхронизация между ними. Почему при выполнении команды запись, с другого устройства переменная идет в рассинхрон на скаде (чтение обновится, а запись так и останется в исходном состоянии)? Приходится прописывать скрипты под это дело вручную.

МихаилГл
16.06.2024, 19:04
Хоть бы написали, opc ua или opc da через modbus регистры...
Тэги делятся на чтение и запись не только в скаде, но и в контроллере по этим двум разным протоколам.

PS
Вообще удалите эту прокладку в виде opc. Мастер скада может вроде напрямую с модбас устройствами общаться. Создайте на плк регистры и вперёд.

Nikolai_Ivanov
16.06.2024, 20:21
Хоть бы написали, opc ua или opc da через modbus регистры...
Тэги делятся на чтение и запись не только в скаде, но и в контроллере по этим двум разным протоколам.

PS
Вообще удалите эту прокладку в виде opc. Мастер скада может вроде напрямую с модбас устройствами общаться. Создайте на плк регистры и вперёд.

OPC UA разумеется, я даже не помню где DA встречал в последний раз и на автомате уже не указываю.

Чем OPC хуже? Учитывая, что с Weintek связь стабильно держится. Мое мнение либо MSCADA сырая и требуются доработки. Либо есть где-то неочевидные настройки связи. Хотелось бы дойти до истины. Насчет разделения тегов вы похоже не поняли о чем речь. В скаде идет явное разделение тега на два разных. Который надо в логике подвязывать также отдельно. В ПЛК такого разделения нет. Все операции проводятся с одним тегом.

UPD. Если производителем заложен обмен по OPC. Он должен работать стабильно ИМХО.

МихаилГл
17.06.2024, 00:21
В ПЛК210 в связке с рапид скадой замечена такая особенность, как невозможность добавлять тэги после непродолжительной работа системы. При этом сама скада видит ранее введённые тэги и работает с ними, однако новые добавить нельзя, так как утилита добавления в скаде говорит, что связи с opc ua сервером нет. И это наблюдается, пока не перезагрузишь плк. Похоже в плк210 ну или в его кодесисе этот протокол сыроват.

Larrrik
17.06.2024, 10:57
И я не могу полный проект предоставить.
Общий совет: рассмотрите возможность сохранения проекта с новым именем, вырезав в новом экземпляре все что не касается сути проблемы и оставив только компоненты на которых она воспроизводится.
Таким образом и ТП и вам самим будет проще определить корень проблемы.

Asgardian
17.06.2024, 17:13
При подключении к проекту OPC HDA видит OPC, но не подгружает из него переменные
Пишет: ошибка подключения к серверу : Servicewrapper not initialized
Что может быть?

Asgardian
18.06.2024, 15:30
На форуме живые люди есть?

МихаилГл
18.06.2024, 16:58
На форуме живые люди есть?

Есть, но возможно не работают с этим.
Вы бы подробнее расписали, я вот не понимаю что вы спрашиваете. Opc hda где, в мастер скаде? Какой opc, который видит этот проект, вы используете? Просто не понятно с какой стороны вы что-то используете. Распишите взаимодействие и может кто откликнется.

Asgardian
19.06.2024, 10:49
OPC HDA в Мастерскаде. OPC используется arOPC. Говорил с разработчиком arOPC, у него проблема повторяется. В 3-ей версии все работало, все подгружалось. В 4D все по одному месту пошло

Yakut
27.06.2024, 08:42
Коллеги, а подскажите, пожалуйста, как сделать среду исполнения в полноэкранном режиме?

1exan
27.06.2024, 09:00
Коллеги, а подскажите, пожалуйста, как сделать среду исполнения в полноэкранном режиме?

Наверное нужны эти параметры (https://support.mps-soft.ru/Help-web/okno_nastr_sredy_isp.html) (настройки запуска в MasterSCADA 4D Monitor, ключ запуска -f)

Yakut
27.06.2024, 09:41
Наверное нужны эти параметры (https://support.mps-soft.ru/Help-web/okno_nastr_sredy_isp.html) (настройки запуска в MasterSCADA 4D Monitor, ключ запуска -f)

Ага, понятно. Я только в рабочую папку влез и поменял на другой адрес в диске c:\Program Files.....что-то там, перешёл на D:\ ... после этого перестал работать RT. Подскажите, пожалуйста какой там адрес был изначально.
Благодарю за помощь

1exan
27.06.2024, 10:50
Ага, понятно. Я только в рабочую папку влез и поменял на другой адрес в диске c:\Program Files.....что-то там, перешёл на D:\ ... после этого перестал работать RT. Подскажите, пожалуйста какой там адрес был изначально.
Благодарю за помощь

Посмотрите в справке, там есть описание используемых стандартных путей
https://support.mps-soft.ru/Help-web/rab_papka_sredy_ispolnenia.html

Yakut
27.06.2024, 17:53
Посмотрите в справке, там есть описание используемых стандартных путей
https://support.mps-soft.ru/Help-web/rab_papka_sredy_ispolnenia.html

В этом вся история и заключается у них стоит C:\ProgramData\MPSSoft\MasterSCADA4DRT[номер версии]/Server. а у меня на винде такой папки нет.
Нашёл в скрытых папках.

melky
27.06.2024, 17:54
Откройте скрытые папки. Кажется ProgramData относится к таким.

Yakut
28.06.2024, 08:40
Да, мерси, всё получилось.

Yakut
05.07.2024, 18:40
Когда пишет ошибку обнаружены теги с одинаковыми адресами как найти какие адреса одинаковые?
Исправил в ручную, всё равно были ошибки, только после:
перезагрузился, очистил кэш, проверил целостность проекта, очистил историю, поплевал через левое плечо, три раза покрутился на левой пятке и всё заработало.

Nikolai_Ivanov
07.07.2024, 12:19
OPC UA разумеется, я даже не помню где DA встречал в последний раз и на автомате уже не указываю.

Чем OPC хуже? Учитывая, что с Weintek связь стабильно держится. Мое мнение либо MSCADA сырая и требуются доработки. Либо есть где-то неочевидные настройки связи. Хотелось бы дойти до истины. Насчет разделения тегов вы похоже не поняли о чем речь. В скаде идет явное разделение тега на два разных. Который надо в логике подвязывать также отдельно. В ПЛК такого разделения нет. Все операции проводятся с одним тегом.

UPD. Если производителем заложен обмен по OPC. Он должен работать стабильно ИМХО.

Форум живой? Очень надеюсь, что кто нибудь конструктивно ответит на вопрос (https://owen.ru/forum/showthread.php?t=30695&p=439635&viewfull=1#post439635).

Nikolai_Ivanov
07.07.2024, 12:26
Плюс постоянно выдает ошибку "отказ внешних модулей усо masterscada 4d" при загрузке конфигурации. На стенде нормально загружает, на установке с ошибкой. Если это преграды со стороны ОС (Win11) или антивируса, то что ему может мешать? И в антивирусе (kaspersky IS) все разрешено с последующим отключением защиты и в брандмауэре все разрешено.

Тимур Назарбоев
08.07.2024, 09:03
Форум живой? Очень надеюсь, что кто нибудь конструктивно ответит на вопрос (https://owen.ru/forum/showthread.php?t=30695&p=439635&viewfull=1#post439635).

Добрый день, уточните пожалуйста нам на почту support@owen.ru топологию сети, а лучше вышлете программу для того, чтобы мы могли проанализировать проблему.

Yakut
09.07.2024, 10:49
Коллеги приветствую.
А как сделать запуск только скады, что бы исполнение было только в нём, не запуская сам исходник?

1exan
09.07.2024, 10:53
Коллеги приветствую.
А как сделать запуск только скады, что бы исполнение было только в нём, не запуская сам исходник?

Посмотрите справку (https://support.mps-soft.ru/Help-web/rabota_v_rt.html), там довольно подробно про работу в режиме исполнения

ccv411507
20.07.2024, 15:19
как обнулить архив

Rakshinms
21.07.2024, 08:14
Доброе утро!

В блоге инсат есть пример работы с архивом через C# скрипт: https://insat.ru/blog/fb-skript-c-i-ego-ispolzovanie-v-masterscada-obrabotka-arkhivov/

Как его адаптировать под MS4D? Например, ругается на объект HostFB (отсутствует в пространстве).

TimSam
22.07.2024, 17:44
Добрый день!
В учебных видео к МС4Д говорится, что есть демо проекты. Скачал с masterscada.ru версию на 1 час работы, демо проектов нет. Может кто даст ссылку откуда их можно скачать и посмотреть?

nikolay861
22.07.2024, 19:58
Всем привет. Как c помощью С# получить текущие сообщения по типу GetActualEvents. Через ФБ не подходит, так как мне вообще не понятно как реализован этот блок и просмотреть его нельзя, более того он плохо переносит перенос проекта из версии в версию, по этому я отказался от использования ФБ вообще. Плюс я не нашел где можно посмотреть как настраиваются фильтры для блока.
В общем буду благодарен если кто подскажет.

Pavel5698
23.07.2024, 08:44
Добрый день!
В учебных видео к МС4Д говорится, что есть демо проекты. Скачал с masterscada.ru версию на 1 час работы, демо проектов нет. Может кто даст ссылку откуда их можно скачать и посмотреть?

Возможно вы установили без демо проектов. Вообще так77516

TimSam
28.07.2024, 13:17
Несколько раз удалил, поставил, демо нет. Скачивал куда ссылка привела с сайта ОВЕН на сайт mastersacada.ru/ На сайте ИНСАТа, где приведена ссылка на полную версию лежат только рантаймы...
Не могли бы вы сделать архив демонстрашек и в облако куда нибудь залить.
Еще обратил внимание, в скаченной версии в базе контроллеров нет модулей ОВЕН, а в справке и в учебном видео они есть...

kondor3000
28.07.2024, 15:34
Несколько раз удалил, поставил, демо нет. Скачивал куда ссылка привела с сайта ОВЕН на сайт mastersacada.ru/ На сайте ИНСАТа, где приведена ссылка на полную версию лежат только рантаймы...
Не могли бы вы сделать архив демонстрашек и в облако куда нибудь залить.
Еще обратил внимание, в скаченной версии в базе контроллеров нет модулей ОВЕН, а в справке и в учебном видео они есть...

Демопроекты должны уже быть в установщике. Скорее всего вы установили в папку не по умолчанию (не диск С) или изменили папку проектов по умолчанию.

Модули появляются при добавлении биб-ки Owen, она уже установлена, только добавить в проект.

Vova37
08.08.2024, 13:03
Добрый день.
Интересует опыт реализации проектов с количеством точек более 10к, а лучше 20к+.
Как себя ведет, проблемы и их решение.

melky
08.08.2024, 13:43
Vova37, мне как-то считали на 300 счётчиков электроэнергии Меркурий 230 по 40 сигналов с каждого на MS3.
Насчитали ДВА физических сервера. Два, Карл!!!!
Всего-то 12000 сигналов.

Vova37
08.08.2024, 14:51
Насчитали ДВА физических сервера. Два, Карл!!!!


С резервированием ?

melky
08.08.2024, 17:15
Vova37 какой там, тогда объяснили, что одного не хватит по мощности. Может такой менеджер попался, который хотел продать побольше, либо система по факту слаба.
Хорошо, что проекта не случилось...

Vova37
16.08.2024, 16:23
Добрый день
Еще вопрос
PostgreSQL бесплатная версия подойдет для проекта с количеством точек более 20к ? Или нужно покупать более продвинутую версию и какую ?

melky
16.08.2024, 16:54
Vova37, продвинутая версия, насколько понимаю это всего лишь дополнительный функционал БД, не более того.
Вопрос, почему упёрлись в MS4D ? Наверное должен быть самым первым.

Vova37
16.08.2024, 17:27
Вопрос, почему упёрлись в MS4D ? Наверное должен быть самым первым.
Заказчик. А что из отечественного можно предложить?
Я с удовольствием использовал бы Citect)

МихаилГл
16.08.2024, 17:52
Ну simple scada, например, более дружелюбна. Про rapid scada не говорю, она хоть и бесплатна, но потребует знания программирования, если захотите что-то стоящее создать.

melky
16.08.2024, 20:52
Больше бы предпочел SimpLight или RapidScada.
На самом деле российских решений куда больше, чем MS4D и даже вышеперечисленных. Непонятно, почему все упираются в это недоразумение?

cher0buk
19.08.2024, 07:30
Подскажите пожалуйста возможно ли создание переменных внутри программы MS4D каким то табличным способом? Как например импорт, экспорт для тегов Modbus? Неужели нет инструмента более удобного чем "дублировать N раз"?78087

1exan
19.08.2024, 07:54
Подскажите пожалуйста возможно ли создание переменных внутри программы MS4D каким то табличным способом? Как например импорт, экспорт для тегов Modbus? Неужели нет инструмента более удобного чем "дублировать N раз"?

Т.к. все данные хранятся в MS в виде базы данных - то такой способ должен существовать.

Как-то так (https://support.mps-soft.ru/Help-web/redact_rez_zaprosov_csv.html) наверное

cher0buk
19.08.2024, 09:04
В самом верху этой темы написано:
Важно! В файле нельзя редактировать столбец Property~Id элемента~Id
А для СОЗДАНИЯ новой переменной ей нужен новый Id элемента.

imaex
19.08.2024, 09:15
В самом верху этой темы написано:
Важно! В файле нельзя редактировать столбец Property~Id элемента~Id
А для СОЗДАНИЯ новой переменной ей нужен новый Id элемента.

Это же просто суррогатный ключ. Что, в MS нет механизма очистки и пересоздания ключей?

Vansanches
22.08.2024, 17:49
Добрый день, Коллеги, подскажите, кто нибудь уже использовал ФБ sqlRequest, чего то у меня с ним не выходит, все в нем вроде прописано правильно, но на выходе еррор, в примере забыли приложить файлы процедур для sql, пример ниже
https://masterscada.ru/faq/primer-vzaimodeistviya-s-subd

Vova37
23.08.2024, 12:31
Добрый день.

при формировании количественного отчета дата почему то 01.01.1970 3:00:00
В чём может быть проблема ?

melky
23.08.2024, 13:06
Vova37 не считывается текущая дата (не формируется). Указывается начальная дата Unix + часовой пояс по Москве.

Vova37
23.08.2024, 13:11
Vova37 не считывается текущая дата (не формируется). Указывается начальная дата Unix + часовой пояс по Москве.

Как это победить ?
Возможно нужно что-то связать? Делал все как в справке.

melky
23.08.2024, 13:58
Не подскажу, не занимаюсь MS4D. Но по дате, которую привели видно, что она не принята по какой-то причине и там значение по умолчанию с учетом часового пояса.

Yakut
24.08.2024, 10:41
А REAL отрицательные значения в мастер скаде работают?

kondor3000
24.08.2024, 12:16
А REAL отрицательные значения в мастер скаде работают?

Конечно работают, REAL может быть со знаком, так же как и знаковые целочисленные, в отличие от беззнаковых целочисленных.

Yakut
24.08.2024, 13:16
Конечно работают, REAL может быть со знаком, так же как и знаковые целочисленные, в отличие от беззнаковых целочисленных.

А вот у меня почему-то не передаются значения, может подскажете что-то дополнительно нужно активировать? Регистры проверил, Good сигналы сделал, но не приходит и всё тут.

kondor3000
24.08.2024, 14:31
А вот у меня почему-то не передаются значения, может подскажете что-то дополнительно нужно активировать? Регистры проверил, Good сигналы сделал, но не приходит и всё тут.

Если приходит не то число, проверить адрес, макс. длину ввода, переставить регистры (байты) 78182

Larrrik
27.08.2024, 16:51
Доброго дня.
Вопрос вероятно примитивный, но как-то в упор не смог найти:
есть ли в среде разработки что-то похожее на функционал автоматизированного формирования листинга проекта?
Так чтобы по нажатию кнопки все что возможно выгрузилось в какой-нибудь pdf/doc/etc, не прибегая к необходимости копипастить по отдельности код каждого ФБ и т.п. ?

Александр Пинэко-Скворцов
28.08.2024, 09:05
Доброго дня.
Вопрос вероятно примитивный, но как-то в упор не смог найти:
есть ли в среде разработки что-то похожее на функционал автоматизированного формирования листинга проекта?
Так чтобы по нажатию кнопки все что возможно выгрузилось в какой-нибудь pdf/doc/etc, не прибегая к необходимости копипастить по отдельности код каждого ФБ и т.п. ?

Добрый день.

Есть возможность экспорта программ в виде ST-текста. Можно открыть Блокнотом/Notepad++ и т.п.
ПКМ по одной или нескольким программам в дереве проекта - Импорт/Экспорт - Экспорт ST текста.

melky
28.08.2024, 09:51
полагаю Листинг проекта это не только программы. А вообще все настройки.

DonGarik
28.08.2024, 10:30
Добрый день! Смогли решить проблему? Просто у меня ситуация точно такая. Я могу считать с переменной типа real? а записать не могу. С типом данных int проблем нет

Larrrik
28.08.2024, 10:53
полагаю Листинг проекта это не только программы. А вообще все настройки.
Да, вопрос был про всё...

DonGarik
29.08.2024, 06:47
Привет , коллеги!
Повторю свой вопрос здесь, можно кто сталкивался с подобной проблемой


Настроил обмен данных Masterscada по OPC UA с ПЛК Овен.

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

Проблема именно на стороне MasterSCADA, так как настроил OPC UA на SCADA системе Simp Light - и там такой проблемы не наблюдается.

Техподдержка MasterSCADA как обычно вафлит

capzap
29.08.2024, 07:33
Привет , коллеги!
Повторю свой вопрос здесь, можно кто сталкивался с подобной проблемой


Настроил обмен данных Masterscada по OPC UA с ПЛК Овен.

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

Проблема именно на стороне MasterSCADA, так как настроил OPC UA на SCADA системе Simp Light - и там такой проблемы не наблюдается.

Техподдержка MasterSCADA как обычно вафлит

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

PS смотрим документацию 78301 У Вас параметр SYSTEM_REAL_PARAM, у Вас StatusCode равен BadWaitingForInitialData и галка Разрешить запись недостоверных значений снята

melky
29.08.2024, 08:28
capzap не надоело?

DonGarik
29.08.2024, 09:40
Кто что просил я не понимаю . И еще раз говорю в Simp Light всё отлично работает
Если думаете что я не ставил галочку "Разрешить запись недостоверных значений" то вы ошибаетесь, - уже пробовал. И касательно " PS смотрим документацию Нажмите на изображение для увеличения" - один в один вы написали как в техподдержке MasterSCADA, вы там работаете, - если да то печально. Я уже эти товарищам отсылал видео где статус меняется на Good, и эти товарищи загасились

capzap
29.08.2024, 11:33
Кто что просил я не понимаю . И еще раз говорю в Simp Light всё отлично работает
Если думаете что я не ставил галочку "Разрешить запись недостоверных значений" то вы ошибаетесь, - уже пробовал. И касательно " PS смотрим документацию Нажмите на изображение для увеличения" - один в один вы написали как в техподдержке MasterSCADA, вы там работаете, - если да то печально. Я уже эти товарищам отсылал видео где статус меняется на Good, и эти товарищи загасились

а)кто просил, вот: https://owen.ru/forum/showthread.php?t=40141&p=444615&viewfull=1#post444615
б)думаю что не ставили, потому что скрины выкладываете без галочки и без статуса Good, если качество хорошее значит запись есть просто из-за порядка байт например там ноль или не число
в) можете радоваться я не работаю
г) к примеру я не могу записать на питоне в облачный овеновкский ОРС флоат, а инты могу, ошибка у меня BadAttributeIdInvalid, поэтому насчет галки не зря возможно советуют и замете ни какой мастерскады

DonGarik
29.08.2024, 11:37
а)кто просил, вот: https://owen.ru/forum/showthread.php?t=40141&p=444615&viewfull=1#post444615
б)думаю что не ставили, потому что скрины выкладываете без галочки и без статуса Good, если качество хорошее значит запись есть просто из-за порядка байт например там ноль или не число
в) можете радоваться я не работаю
г) к примеру я не могу записать на питоне в облачный овеновкский ОРС флоат, а инты могу, ошибка у меня BadAttributeIdInvalid, поэтому насчет галки не зря возможно советуют и замете ни какой мастерскады

Нив коем случае не радуюсь и не печалюсь, что Вы там не работаете. Лично к Вам у меня каких враждебных настроений нет. Есть отрицательное впечатление от компании МПС софт (MasterSCADA)

DonGarik
29.08.2024, 11:42
Привет , коллеги!
Повторю свой вопрос здесь, можно кто сталкивался с подобной проблемой


Настроил обмен данных Masterscada по OPC UA с ПЛК Овен.

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

Проблема именно на стороне MasterSCADA, так как настроил OPC UA на SCADA системе Simp Light - и там такой проблемы не наблюдается.

Техподдержка MasterSCADA как обычно вафлит

Всем спасибо, коллеги, за совет! Решилась моя проблема ( по совету форумчанина из соседней ветки, где я организовал тему с этой проблемой)
Проблема оказалась в сборке:
Изначально была установлена версия 1.3.5. 19254
Поставил версию 1.3.4. 17698 и проблема ушла. Проверено на двух компьютерах

melky
29.08.2024, 11:52
упс! :) бывает же и на старуху проруха...

DonGarik
29.08.2024, 16:09
Всем спасибо, коллеги, за совет! Решилась моя проблема ( по совету форумчанина из соседней ветки, где я организовал тему с этой проблемой)
Проблема оказалась в сборке:
Изначально была установлена версия 1.3.5. 19254
Поставил версию 1.3.4. 17698 и проблема ушла. Проверено на двух компьютерах

Коллеги!!!! Также получил ответ от техподдержки, их вариант решения является рабочим, я проверил.
78319
Цитата от техподдержки: Если установлен,то снимите, пожалуйста, флаг с Использовать LREAL вместо REAL.

Однако стоит отметить , что в старой версии MasterSCADA подобного флага нет

melky
29.08.2024, 17:34
LREAL - это double (8 байт)
REAL - это float (4 байта)

Вероятно добавили в более поздних сборках поддержку и по умолчанию LREAL

egor3150
03.09.2024, 18:58
Добрый день, коллеги!
Вопрос по раздельной работе клиентов:
Есть экран (стартовая страница) на котором находится меню. Меню не кликабельное, при наведении курсора на заголовок - открывается окно с пунктами, относящимися к этому заголовку (события получение фокуса, потеря фокуса). Навели на "Объекты" - появилось под ним окошко уже с кнопками (линия 1, линия 2). Далее кликаем на пункт меню - открывается выбранное окно (линия ..). Всё работает хорошо. Но.
Когда наводим на меню заголовок в одном клиенте, то окно с пунктами (линия..) показывается на всех клиентах.
Также можно на другом клиенте в это время навести и убрать курсор - окно с пунктами меню закроется.
Можно ли как то реализовать, чтобы подобные функции работали "раздельно".

Данный вопрос касается и ФБ GetCurrentUsername. Он работает в задаче экрана, ок. Пользователь на экране нажал на кнопку - мы получили его имя. Далее пользователь за другим клиентским местом, под другим именем нажал на эту же кнопку - также все отработало, ФБ вернул его имя. Но если первый пользователь снова нажмет на кнопку вызова ФБ, то имя останется прежним. На сколько я понимаю, ФБ отслеживает последнего авторизованного пользователя, а можно ли реализовать "постоянную" проверку того, кто кликает? Это нужно для того, чтобы корректно записывалась в БД информация о подтверждении простоев оборудования, а клиентов в течение рабочего дня подключено от 3 до 12.

Касаемо модуля отчетов. В версии 1.3.5 не могу найти конструктор запросов, его удалили? Привык все делать через него, не критично, но всё же, иногда приходится открывать 1.3.4, чтобы там "отладить", а потом переносить в 1.3.5.

Извиняюсь, что много текста.

Sergey361
04.09.2024, 07:01
Можно для каждого клиента сделать отдельный стартовый экран только, наверное.А так, если окно одно, то и отображаться будет у всех одинаково.

melky
04.09.2024, 07:50
Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)

egor3150
04.09.2024, 09:58
Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)

А можно про экземпляры для пользователей поподробнее? Пользователи и права есть. Но данная ситуация не касается прав, так как мы просто смотрим "общее" меню.

Ну вот про сбер прям жизненно, и хочется, чтобы как-то работало правильно.

melky
04.09.2024, 10:07
egor3150 ну по идее это регулировать web сервер должен, и даже если с двух разных ПК зайдут два одинаковых пользователя, выбор какого-то меню одним пользователем не должны приводить к показу этого меню у другого пользователя. То есть кроме имя/пароль еще должно фигурировать id пользователя (правильнее сессии), которое у каждой сессии должно быть своим и web сервер должен разруливать это самостоятельно, а не по прихоти настроек в scada (по сути если что-то в ms4d и можно сделать, то получается костылями)

меня такой факт еще больше отвращает от MS4D, получается там кривой WEB сервер.

VladGC
04.09.2024, 10:29
Добрый день, коллеги!
Вопрос по раздельной работе клиентов:
Есть экран (стартовая страница) на котором находится меню. Меню не кликабельное, при наведении курсора на заголовок - открывается окно с пунктами, относящимися к этому заголовку (события получение фокуса, потеря фокуса). Навели на "Объекты" - появилось под ним окошко уже с кнопками (линия 1, линия 2). Далее кликаем на пункт меню - открывается выбранное окно (линия ..). Всё работает хорошо. Но.
Когда наводим на меню заголовок в одном клиенте, то окно с пунктами (линия..) показывается на всех клиентах.
Также можно на другом клиенте в это время навести и убрать курсор - окно с пунктами меню закроется.
Можно ли как то реализовать, чтобы подобные функции работали "раздельно".

Данный вопрос касается и ФБ GetCurrentUsername. Он работает в задаче экрана, ок. Пользователь на экране нажал на кнопку - мы получили его имя. Далее пользователь за другим клиентским местом, под другим именем нажал на эту же кнопку - также все отработало, ФБ вернул его имя. Но если первый пользователь снова нажмет на кнопку вызова ФБ, то имя останется прежним. На сколько я понимаю, ФБ отслеживает последнего авторизованного пользователя, а можно ли реализовать "постоянную" проверку того, кто кликает? Это нужно для того, чтобы корректно записывалась в БД информация о подтверждении простоев оборудования, а клиентов в течение рабочего дня подключено от 3 до 12.

Касаемо модуля отчетов. В версии 1.3.5 не могу найти конструктор запросов, его удалили? Привык все делать через него, не критично, но всё же, иногда приходится открывать 1.3.4, чтобы там "отладить", а потом переносить в 1.3.5.

Извиняюсь, что много текста.

1) Кас. окна меню
Можете показать реализацию?
Потому что как я понял задумку, должно отрабатывать нормально - у каждого юзера свое окно или всплывающее окно

2)
Не исключено что имеет место баг,
Не рассматривали какие то штатные варианты логгирования действий или они не подходят?


3) В текущей 1.3.5. есть косяк с подключением внешних источников, в частности у меня Postgres так же часть кнопок не доступна, нужно долбить ТП

egor3150
04.09.2024, 14:03
1) Кас. окна меню
Можете показать реализацию?
Потому что как я понял задумку, должно отрабатывать нормально - у каждого юзера свое окно или всплывающее окно

2)
Не исключено что имеет место баг,
Не рассматривали какие то штатные варианты логгирования действий или они не подходят?


3) В текущей 1.3.5. есть косяк с подключением внешних источников, в частности у меня Postgres так же часть кнопок не доступна, нужно долбить ТП

Можете показать реализацию?

1. 78449 открыли главный экран.
2. 78448 навели курсор - открылось меню.
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.

Ну самое огорчающее в этой ситуации - что не могу сделать так, чтобы программа выполнялась на клиентах по отдельности. Но и понимания, как это вообще работает (например, как сайты в интернете) нет. То есть как один сайт с одним экземпляром кода работает уникально у тысяч пользователей. Думаю, что в браузер там подгружается сам код программы, который отрисовывает элементы, взаимодействие и т.д. А в мастерскаде такое реализовано? Раз уж расширение лицензии на дополнительного клиента выходит в копеечку, думаю - что должно быть.

Не рассматривали какие то штатные варианты логгирования действий или они не подходят?
Если правильно понял, Вы говорите о галочках действий (подтверждение, запись в журнал).
В проекте я сделал библиотеку, в которой находится таблица. Над таблицей есть поля и кнопки для заполнения.
Логика следующая: Останавливается линия - происходит запрос в БД о последнем ID записи (запросы через протоколы - Postgres - в созданную для этих целей таблицу). ID получен - назначается следующий по порядку, фиксируется время. Назначенный ID + время начала остановки записываются в БД. Далее, если линия запускается - по этому же ID происходит запись времени окончания остановки. Так по кругу запусков-остановок.
Оператор выбирает из таблицы нужный ID записи и вносит в поля данные (причина, узел, комментарий) и жмет "Подтвердить". Происходит обновление строки с этим ID.
Это сделано по той причине, что встроенный Журнал из палитры не предоставляет нужного функционала (есть только комментарий, который вносится от руки) (писал по этому вопросу в ТП, закрыли заявку, возможно модернизируют). А нужно, чтобы причины простоев были систематизированы, для корректных отчетов (у меня причины и узлы выбираются из выпадающего списка).
Вот там и нужен вызов ФБ для получения имени пользователя, который подтвердил простой.
Пока что выход из ситуации вижу такой: поставить время авторизации группе, например, "Операторы", около 3мин. Чтобы авторизованных отключало автоматически, а каждый, кто будет заходить - будет "последним" и, предполагаю, что ФБ будет отрабатывать корректно (но это не точно). Другая проблема - как правило - операторам не нужно лишних движений, и каждый раз авторизовываться чтобы проверить, всё ли подтверждено и учтено - им будет лень и сложно.

В текущей 1.3.5. есть косяк с подключением внешних источников, в частности у меня Postgres так же часть кнопок не доступна, нужно долбить ТП
Я отработал модуль отчетов в 1.3.4. Пока не занимался этим в 1.3.5, не знаю, что меня там ждет, кроме отсутствия конструктора запросов.
Но из того, что сейчас актуально для меня - это использование ФБ SqlRequestWithResult. Ранее тут обсуждалась проблема с тем, что ФБ возвращает "Result is not array" но о её решении так и не было написано. Предполагали, что проблема в том, что бесплатная версия RT не позволяет вызвать этот ФБ. Я попробовал на лицензии (PRO на 1000 точек). И результат тот же самый. Запрос через pgAdmin возвращает нужный результат, этот же запрос в протоколах также работает корректно, записывает в массив структур, и отображается в таблице. А ФБ почему-то не хочет работать. Если по этому вопросу есть какие-либо варианты действий, подскажите, пожалуйста.

Планы на скаду были наполеоновские, несмотря на отсутствие опыта работы с ней, относительно быстро разобрался в основах. Но чем больше пытаюсь сделать, тем больше появляется проблем. БОльшая часть решается со временем, но раз я дошел до того, что сам пишу на форум - это, возможно уже отчаяние))

kondor3000
04.09.2024, 14:20
Как нас учили, первый экран должна быть авторизация, ввод имени пользователя и пароля и уже далее в зависимости от статуса,
открываются главный экран, тех процесс или что там нужно.

melky
04.09.2024, 14:23
2. не уверен, но кажется похожая тема всплывала (не именно с меню но что-то похожее). Суть, в захват мыши как-то надо добавлять кто ее захватил, какой-то параметр.

kondor3000 - учили костылям? :). Ну пример, открыл на работе клиента и не вышел. Потом из дома или еще откуда опять зашел под собой, что, на работе на мониторе будут выполняться те же действия? Это че за такой Web сервер, который так делает?

kondor3000
04.09.2024, 14:41
. Ну пример, открыл на работе клиента и не вышел. Потом из дома или еще откуда опять зашел под собой, что, на работе на мониторе будут выполняться те же действия? Это че за такой Web сервер, который так делает?

Для этого делается автовыход через определённое время, при неактивности. В скаде МС4D это штатный подход. У вас есть другой вариант?

melky
04.09.2024, 14:53
kondor3000 правильный Web сервер, а не черте что в данном случае. :)

пока я не прочитал выше написанное, преспокойно пользуясь RapidScada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится :)

Вообще все действия должны выполняться на клиенте, который подключился к Web серверу, а не на Сервере с ретрансляцией картинки клиенту.
На сервере должен выполняться только бекэнд, а отрисовка у клиента.

kondor3000
04.09.2024, 15:02
пока я не прочитал выше написанное, преспокойно пользуясь Scada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится

Это вовсе не значит, что у нас ЭТО используют, я вообще противник МC4D, есть скады в сто раз проще, удобнее и дешевле.

egor3150
04.09.2024, 15:18
kondor3000 правильный Web сервер, а не черте что в данном случае. :)

пока я не прочитал выше написанное, преспокойно пользуясь RapidScada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится :)

Вообще все действия должны выполняться на клиенте, который подключился к Web серверу, а не на Сервере с ретрансляцией картинки клиенту.
На сервере должен выполняться только бекэнд, а отрисовка у клиента.

Часть про бэкенд это капец как в точку. Я не понимаю, неужели никто кроме меня не сталкивался с такой проблемой? Неужели разработчики мастерскады действительно сделали обычную HMI панель для ПК за дорого? Как же тогда люди вообще используют такую систему "диспетчеризации"?
У меня ощущение, что я просто где-то не поставил галочку типа "много клиентов", от чего и транслируется везде "один клиент" (бэк). Как теперь воплощать то, что мастерскада, по моему мнению, на данный момент, просто не умеет?
Хорошо, я нарисую мыло, оно будет выводить данные по работе оборудования, собирать статистику, но это будет совершенно не юзер френдли получается, и смысл тогда, что я долго и упорно выпрашивал покупку расширения лицензии на клиентские места, если это получается *типа неактуально*?:D
Решение точно должно быть. Покупать другую скаду не будут, хотя уже хочется)))

1exan
04.09.2024, 16:11
Часть про бэкенд это капец как в точку. Я не понимаю, неужели никто кроме меня не сталкивался с такой проблемой? Неужели разработчики мастерскады действительно сделали обычную HMI панель для ПК за дорого? Как же тогда люди вообще используют такую систему "диспетчеризации"?
У меня ощущение, что я просто где-то не поставил галочку типа "много клиентов", от чего и транслируется везде "один клиент" (бэк). Как теперь воплощать то, что мастерскада, по моему мнению, на данный момент, просто не умеет?
Хорошо, я нарисую мыло, оно будет выводить данные по работе оборудования, собирать статистику, но это будет совершенно не юзер френдли получается, и смысл тогда, что я долго и упорно выпрашивал покупку расширения лицензии на клиентские места, если это получается *типа неактуально*?:D
Решение точно должно быть. Покупать другую скаду не будут, хотя уже хочется)))

Cо сложными вопросами лучше сразу идти на https://support.masterscada.ru , здесь техподдержки 4D нет. Там небыстро, но ответят по делу

imaex
04.09.2024, 16:27
Cо сложными вопросами

Чего только не узнаешь про "сложные вопросы", читая треды про MS4D :D

Ready
04.09.2024, 18:09
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.


Нужно делать через параметры окна. Предположу, что у вас три окна: главный экран, меню иконок и пункты меню.

В каждом окне нужно добавить параметр окна с типом "bool", например:
- главный экран - "showHideMenu"
- меню иконок - "showMenu"
- пункты меню - "hideMenu"

Добавить для:
- меню иконок - "Захват мыши" -> Установить параметр (Источник: True; Приемник: showMenu)
- пункты меню - "Покидание мыши" -> Установить параметр (Источник: False; Приемник: hideMenu)

На главном экране связать параметры "showMenu" и "hideMenu" с "showHideMenu" исходящей связью. Для этого выделите окно: Свойства -> Параметры.
Параметр "showHideMenu" связать с видимостью окна "пункты меню" (Видимость по умолчанию: False).

1exan
04.09.2024, 18:56
Нужно делать через параметры окна. Предположу, что у вас три окна: главный экран, меню иконок и пункты меню.

В каждом окне нужно добавить параметр окна с типом "bool", например:
- главный экран - "showHideMenu"
- меню иконок - "showMenu"
- пункты меню - "hideMenu"

Добавить для:
- меню иконок - "Захват мыши" -> Установить параметр (Источник: True; Приемник: showMenu)
- пункты меню - "Покидание мыши" -> Установить параметр (Источник: False; Приемник: hideMenu)

На главном экране связать параметры "showMenu" и "hideMenu" с "showHideMenu" исходящей связью. Для этого выделите окно: Свойства -> Параметры.
Параметр "showHideMenu" связать с видимостью окна "пункты меню" (Видимость по умолчанию: False).

Вот примерно поэтому лучше обратиться в техподдержку

egor3150
04.09.2024, 19:11
Нужно делать через параметры окна. Предположу, что у вас три окна: главный экран, меню иконок и пункты меню.

В каждом окне нужно добавить параметр окна с типом "bool", например:
- главный экран - "showHideMenu"
- меню иконок - "showMenu"
- пункты меню - "hideMenu"

Добавить для:
- меню иконок - "Захват мыши" -> Установить параметр (Источник: True; Приемник: showMenu)
- пункты меню - "Покидание мыши" -> Установить параметр (Источник: False; Приемник: hideMenu)

На главном экране связать параметры "showMenu" и "hideMenu" с "showHideMenu" исходящей связью. Для этого выделите окно: Свойства -> Параметры.
Параметр "showHideMenu" связать с видимостью окна "пункты меню" (Видимость по умолчанию: False).

Пока-что не проверял, но ощущение, что это никак не решает проблему с отображением на разных клиентах. Вы описали тот же процесс, что уже реализован, только немного изменив логику. В Вашем случае - если пункты меню расположены горизонтально, то после наведения курсора и появления подпунктов, если мы проведем мышью вбок - на соседний пункт меню, а не на открывшееся уже подменю, то оно не закроется до тех пор, пока не вернем курсор и не уберем его снова, только на этот раз, в область, где нет пунктов меню, чтобы опять что-то соседнее не открылось.
Плюс в визуализации нединамично работают эти события, пример: (открыто 2 клиента в главном меню) Если мы навели курсор на меню и открылись подпункты, то, нажав на нужный подпункт, который откроет нам другое окно - на другом клиенте подменю останется, и не закроется до тех пор, пока там не наведём-уберём курсор))))))))))))))))))))))))))))))))
Вообще иногда складывается ощущение, что большинство проблем можно решить установкой времени цикла программы 1мс (изменения будут обрабатываться с большей частотой), но посмотрев различные видео и почитав всякие инструкции - в основном время цикла используют от 100мс. Что если поставить минимально возможное время цикла, в которое будет укладываться выполнение основной задачи? Смысл вообще есть или нет? Процессор i5-13400 и проект относительно небольшой.

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

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

Sergey361
05.09.2024, 07:51
Попробуйте открывать окно меню не через установку параметра (он один для всех клиентов), а через открытие всплывающего окна при захвате и закрытии при покидании.

Asgardian
05.09.2024, 13:24
1) При экспорте графика через тренды, в файле csv разделителями дробных чисел служит точка, из-за этого число воспринимается как дата. Кто нибудь сталкивался с этим?
2) Как в отчете (через ReportFB) вставить имя текущего пользователя, который выгружает отчет?

melky
05.09.2024, 13:47
Asgardian а разделителем между числами запятая?

Предположу, что открывая csv самим exel срабатывает культурное наследие дробного разделителя для России , (запятая). А при сохранении double и float записывает программа как они представлены в ней с . точка

VladGC
05.09.2024, 14:50
Можете показать реализацию?

1. 78449 открыли главный экран.
2. 78448 навели курсор - открылось меню.
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.

Ну самое огорчающее в этой ситуации - что не могу сделать так, чтобы программа выполнялась на клиентах по отдельности. Но и понимания, как это вообще работает (например, как сайты в интернете) нет. То есть как один сайт с одним экземпляром кода работает уникально у тысяч пользователей. Думаю, что в браузер там подгружается сам код программы, который отрисовывает элементы, взаимодействие и т.д. А в мастерскаде такое реализовано? Раз уж расширение лицензии на дополнительного клиента выходит в копеечку, думаю - что должно быть.


Посмотрите, видео

Так надо(касательно окон)?
https://dropmefiles.com/btw6D

VladGC
05.09.2024, 15:02
Можете показать реализацию?


Я отработал модуль отчетов в 1.3.4. Пока не занимался этим в 1.3.5, не знаю, что меня там ждет, кроме отсутствия конструктора запросов.
Но из того, что сейчас актуально для меня - это использование ФБ SqlRequestWithResult. Ранее тут обсуждалась проблема с тем, что ФБ возвращает "Result is not array" но о её решении так и не было написано. Предполагали, что проблема в том, что бесплатная версия RT не позволяет вызвать этот ФБ. Я попробовал на лицензии (PRO на 1000 точек). И результат тот же самый. Запрос через pgAdmin возвращает нужный результат, этот же запрос в протоколах также работает корректно, записывает в массив структур, и отображается в таблице. А ФБ почему-то не хочет работать. Если по этому вопросу есть какие-либо варианты действий, подскажите, пожалуйста.

Планы на скаду были наполеоновские, несмотря на отсутствие опыта работы с ней, относительно быстро разобрался в основах. Но чем больше пытаюсь сделать, тем больше появляется проблем. БОльшая часть решается со временем, но раз я дошел до того, что сам пишу на форум - это, возможно уже отчаяние))

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

если SqlRequestWithResult не работает( странно, я думал его пофиксили)
можно работать с запросом непосредственно с протоколом, добавив нужный тип в выход ( то есть в протокол добавить отдельные запросы для select, update и т.д.

Asgardian
05.09.2024, 15:09
Не совсем понял вопроса. У меня число 25.6 отображается как 25 июня
Нашел в настройках Excel пункт использовать системный разделитель, через него проблема решается вроде

melky
05.09.2024, 15:13
25.6 потому что в Русской локали это число должно выглядеть как 25,6

И тут либо ковырять настройки exel, либо локаль, либо при записи менять для Русской локали.

melky
05.09.2024, 15:16
VladGC то есть чтобы так работало недостаточно мнемосхеме дать доступ нескольким пользователям, но еще и поколдовать с настройками ?
Предположу что именно так и надо.

VladGC
05.09.2024, 15:26
1) При экспорте графика через тренды, в файле csv разделителями дробных чисел служит точка, из-за этого число воспринимается как дата. Кто нибудь сталкивался с этим?
2) Как в отчете (через ReportFB) вставить имя текущего пользователя, который выгружает отчет?

1. CSV в excel нужно импортировать в utf (см скрин) что для трендов, что для журнала событий

2. Тот кто выгружает отчет или строит его ?
Отчет в задаче экрана не строится, он работает для всех одновременно и строится на сервере.
Возможно конкретно эта функция - геморройная для реализации

VladGC
05.09.2024, 15:33
VladGC то есть чтобы так работало недостаточно мнемосхеме дать доступ нескольким пользователям, но еще и поколдовать с настройками ?
Предположу что именно так и надо.

Нет, что то отдельно не настраивается
Добавил кнопку на главный экран, на кнопку повесил событие - захват мыши > открыть всплывающее окно
Во всплывающем окне добавил кнопку, событие клик - открыть окно > связал нужное окно , связал фрейм где открывать

Тут пользователи в принципе не добавлены, просто у каждого клиента есть свой sessionId
Если пользователи/группы все таки есть, то можно заблокировать те или иные кнопки ( но не скрывать, хотя мне было бы интересно скрывать админские или сервисные кнопки если юзер не в группе админов , это недостаток конечно)

Ready
05.09.2024, 17:41
Пока-что не проверял, но ощущение, что это никак не решает проблему с отображением на разных клиентах. Вы описали тот же процесс, что уже реализован, только немного изменив логику. В Вашем случае - если пункты меню расположены горизонтально, то после наведения курсора и появления подпунктов, если мы проведем мышью вбок - на соседний пункт меню, а не на открывшееся уже подменю, то оно не закроется до тех пор, пока не вернем курсор и не уберем его снова, только на этот раз, в область, где нет пунктов меню, чтобы опять что-то соседнее не открылось.

Накидал пример 78475 с тремя уровнями меню. Вся логика в программе на ST, которая назначена в задачу экрана. Код не оптимизирован, цель просто показать один из способов реализации. Для меню с малым количеством пунктов и подменю такой способ подойдет, для более сложного можно написать свой компонент.

melky
05.09.2024, 17:48
Добавил кнопку на главный экран, на кнопку повесил событие - захват мыши > открыть всплывающее окно
Во всплывающем окне добавил кнопку, событие клик - открыть окно > связал нужное окно , связал фрейм где открывать

и все эти действия в Scada, у которой куча компонентов типа насосиков, вентиляторов и прочего барахла?

суть не в меню как таковом, а в том, что надо назначать "захват мыши", "события клик" и так далее....

Игорь Ку
05.09.2024, 21:52
Доброго Всем !
Мастер скада 4д демо 32 тега по протоколу ОРС UA (на одной машине- 127.0.0.1:139) подключилась без загрузки к Мастер ОРС универсал модбас 32 демо, увидела все дерево (раннее скачанное) елементов из сервера. Данные на сервер поступают из симулятора ModRSSim2. В скаде при подключении в протоколе ОРС UA "отказ- false", но данные с сервера не передаются StatusCode- BadWaitingForInitialData.

Вопрос- подскажите алгоритм поиска причины отсутствия связи.

Просматриваю свой пост через 15 мин.- и вижу время поста "вчера, 23:52", хотя на часах компа "22:17 05.09.2024" ...
Может время системное рухнуло... где-то. На сервере с реальным временем совпадает.

egor3150
05.09.2024, 22:25
Накидал пример 78475 с тремя уровнями меню. Вся логика в программе на ST, которая назначена в задачу экрана. Код не оптимизирован, цель просто показать один из способов реализации. Для меню с малым количеством пунктов и подменю такой способ подойдет, для более сложного можно написать свой компонент.

Большое спасибо!
Теперь мне стало понятно, что чтобы разделить исполнение некоторых задач среди клиентов - нужно реализовывать необходимые программы и действия "В задаче экрана".

egor3150
05.09.2024, 22:35
Доброго Всем !
Мастер скада 4д демо 32 тега по протоколу ОРС UA (на одной машине- 127.0.0.1:139) подключилась без загрузки к Мастер ОРС универсал модбас 32 демо, увидела все дерево (раннее скачанное) елементов из сервера. Данные на сервер поступают из симулятора ModRSSim2. В скаде при подключении в протоколе ОРС UA "отказ- false", но данные с сервера не передаются StatusCode- BadWaitingForInitialData.

Вопрос- подскажите алгоритм поиска причины отсутствия связи.

Просматриваю свой пост через 15 мин.- и вижу время поста "вчера, 23:52", хотя на часах компа "22:17 05.09.2024" ...
Может время системное рухнуло... где-то. На сервере с реальным временем совпадает.

Время настраивается сменой часового пояса в настройках профиля.

По OPC - ошибка говорит о том, что не пришло/не приходит значение, можно попробовать создать еще один опс с нужным адресом, там подключиться с загрузкой, выбрать теги, которые точно передаются из сервера, загрузить конфигурацию, посмотреть результат.
Доступ к переменным (чтение/запись) выставлен на сервере? Чтение обычно работает сразу.
Если вопрос касается управления показателями (запись), то нужно привязать выходные переменные либо к дереву объектов, либо, для пробы, к элементу на мнемосхеме.

egor3150
05.09.2024, 22:42
Если нужны запросы конкретно для отчетов, то нужную структуру ( массив структур ) можно добавить в сам отчет.
Текст запроса подготовить в отдельной программе

если SqlRequestWithResult не работает( странно, я думал его пофиксили)
можно работать с запросом непосредственно с протоколом, добавив нужный тип в выход ( то есть в протокол добавить отдельные запросы для select, update и т.д.

Как же много сделали для обхода того, что нечаянно с обновами могут сломать))) Можно же и джейсонами через пайтон вообще работать с бд))))
Ну суть мне ясна. Просто в моём случае видов отчетов несколько, а менеджер тревог (о котором я рассказывал выше) - уже занимает много "пространства" в протоколах, хотел сократить с помощью ФБ, а тут оказывается с ним какая то фича(баг)... Понятно понятно.
Ну я всё равно не сдамся, буду идти к цели, ждать фиксов.

egor3150
05.09.2024, 22:44
и все эти действия в Scada, у которой куча компонентов типа насосиков, вентиляторов и прочего барахла?

суть не в меню как таковом, а в том, что надо назначать "захват мыши", "события клик" и так далее....

Я думаю это сделано для "гибкости" настройки системы. Но тут получается где то перебор, а где то огромный недобор по функционалу. В ноль вышли:D

egor3150
05.09.2024, 22:47
Посмотрите, видео

Так надо(касательно окон)?
https://dropmefiles.com/btw6D

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

Vitaliy
06.09.2024, 07:16
Добрый день!
Как открыть одно из всплывающих окон без строки заголовка? У шаблона экрана есть свойство "Высота заголовка всплывающих окон", в описании "Эта настройка может быть переопределена на уровне конкретного элемента в его собственных настройках", каким образом переопределять это свойство для разных окон?

VladGC
06.09.2024, 08:19
да, с пунктами меню понял из примера, который прислали выше, как реализовать, а вот с содержимым экрана поинтереснее получается.
Приложу еще пример на всякий случай
https://dropmefiles.com/i5Zc4


Добрый день!
Как открыть одно из всплывающих окон без строки заголовка? У шаблона экрана есть свойство "Высота заголовка всплывающих окон", в описании "Эта настройка может быть переопределена на уровне конкретного элемента в его собственных настройках", каким образом переопределять это свойство для разных окон?

Судя по всему, для отдельных окон, простых путей не будет или нет. Лучше написать предложение в ТП, мб добавят когда нибудь

VladGC
06.09.2024, 08:26
и все эти действия в Scada, у которой куча компонентов типа насосиков, вентиляторов и прочего барахла?

суть не в меню как таковом, а в том, что надо назначать "захват мыши", "события клик" и так далее....

Как выше писали - механизм универсальный, кому то захват мыши на элементе, кому то клик по кнопке
Так то есть стандартный механизм:
взять окно и правкой кнопкой мыши перенести на мнемосхему и выбрать нужное действие открыть окно или перейти.

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

egor3150
06.09.2024, 08:48
Приложу еще пример на всякий случай
https://dropmefiles.com/i5Zc4


Спасибо большое!
Из обоих примеров сделал вывод - что если "закопался" и как будто уже выхода нет, то нужно просто начать сначала, в данном случае - это использовать готовые базовые решения и не изобретать велосипед.

kyzzechka
06.09.2024, 09:23
Добрый день! подскажите, пожалуйста, как поставить Run-Time и MasterOPC ModBus на linux?

egor3150
06.09.2024, 09:47
Добрый день! подскажите, пожалуйста, как поставить Run-Time и MasterOPC ModBus на linux?

Добрый день!
https://dropmefiles.com/OrcEn
Файл с инструкцией по подключению к FTP серверу, где лежат дистрибутивы к разным ОС, а также инструкции по установке.

melky
06.09.2024, 09:55
kyzzechka MasterOPC ModBus на linux вы не поставите, он Windows. Вам придется пользоваться драйвером Modbus в комплекте с MS4D

egor3150
06.09.2024, 11:56
По теме раздельной работы пользователей хочу подвести итог, возможно кому-то будет полезно:
Свойство "Место исполнения" - это как раз та "галочка", о которой я говорил (включить выполнение на клиентах по отдельности).
ФБ GetCurrentUsername может вызываться не только в дереве объектов (иных примеров я не находил), но и в программах.
Программа, место исполнения которой указано "в основной задаче узла" и которая вызывается кнопкой с экрана или любыми другими действиями, будет как раз работать "одна на всех" - то есть изменения будут отображаться для всех клиентов.
Если мы ставим место исполнения "в задаче экрана", то программа будет вызываться только у клиента, который её вызвал (нажатием кнопки и тд), и оказывается, что вставлять её в объект, где этот экран находится - необязательно.
Такая программа может исполняться периодически, что как раз помогает реализовать мою тему с меню, а также с корректным получением имени пользователя при квитировании записей простоев.

Пример:
Есть экран с иконками меню. Создаем программу ST, место исполнения "в задаче экрана", входы: "наведениеИконка", "наведениеМеню", выход: "видимостьМеню". В настройках иконки мы указываем событие "Захват мыши", там добавляем действие "Установить параметр". Источник - TRUE, а приемником будет входная переменная программы "наведениеИконка". Далее добавляем событие "Покидание мыши" - "Установить параметр". Источник FALSE, приемник "наведениеИконка". Тоже самое проделываем с контейнером окна, в который вставлено окно меню, только переменная будет "наведениеМеню".
Видимости контейнера назначается выходная переменная "видимостьМеню", она равна "наведениеИконка" ИЛИ "наведениеМеню". Изначально думал, что будет пропадать при переводе с иконок на контейнер, но если на схеме их поставить вплотную - то все работает корректно.
Теперь меню работает как и должно - на разных клиентах то отображение, которое им нужно, а не общее на всех.
Проблема: при клике на один из пунктов меню, который открывает другой экран и возвращению обратно в главное меню, оказывается, что меню не закрывается, то есть "Покидание мыши" не работает. Чтобы пофиксить - нужно добавить к обоим элементам (иконки, контейнер меню) событие "Потеря фокуса" - источник FALSE, приемник - та переменная, которая отвечает за видимость. Всё отлично работает.

По пользователям - в этой же программе добавил вызов ФБ GetCurrentUsername, условие - ЕСЛИ переменная ТО вызов, добавил кнопку на экране, и назначил на клик мыши "Выдать импульс", приемник - переменная для вызова.
На экран добавил текст, туда передаю значение, полученное из ФБ GetCurrentUsername при вызове.
Открываем скаду на двух экранах, логиниться можно под одним пользователем, можно под разными.
Жмем кнопку на одном экране - на нём же поялвяется имя пользователя, а на втором экране пусто.
Жмем кнопку на втором - также появляется имя пользователя, равное тому, с которого была авторизация, а на первом экране значение не меняется.

В документации вызов GetCurrentUsername делается через события, а результат уже передается куда нужно, но у меня были какие то проблемы с ним. Возможно теперь, понимая подход, всё получится сделать и через события.

Larrrik
09.09.2024, 10:18
kyzzechka MasterOPC ModBus на linux вы не поставите, он Windows.
На самом деле, с недавних пор разработчики добавили поддержку linux-систем, что заявлено в т.ч. на сайте:
https://masteropc.ru/#!/tab/272549184-5
Сами не пробовали, и не факт что работает без косяков, но есть такая опция.

melky
09.09.2024, 10:32
Larrrik если это OPC DA то его работа предполагается только в Wine. Даже так, что и Wine может не помочь...

из справки

Ограничения Linux версии по сравнению с Windows версией:

•Отсутствует OPC DA и OPC HDA - данные технологии базируются на DCOM, которая не является кроссплатформенной. Аналогично не поддерживаются плагины OPC DA и OPC HDA клиента.

Larrrik
09.09.2024, 10:44
Larrrik если это OPC DA
А в исходном вопросе было что-то про DA?
DA понятно, неотделим от Windows, но на то в MasterOPC и присутствует UA )

Asgardian
11.09.2024, 14:49
1)Есть возможность в журнале действий пользователя как то назначить ввод комментария при изменении числового значения?
2)Возможно ли назначить обязательный ввод комментария при квитировании аварии (чтобы без комментария авария не квитировалась)?

DenisRTK
11.09.2024, 15:33
78570

Добрый день! Подскажите пожалуйста, пытаюсь создать отчет в MasterSCADA4D по обучающему ролику - в настройках архива данных при указании в меню "Формирование значений" - "Периодический", происходит бесконечное построение отчета, после чего (спустя минуты 2) SCADA просто отрубает АРМ и выдает ошибку. В случае если в меню указывать Формирование по "Изменению", то формируется просто пустой отчет. То есть архивные параметры вообще никак не хотят поступать в отчет :( Может кто сталкивался, подскажите пожалуйста решение?

egor3150
13.09.2024, 11:46
Добрый день!
Также делюсь результатами по работе с ФБ SqlRequestWithResult.
Чтобы всё работало - надо внимательно читать инструкцию (почему-то для меня не очевидно с первого прочтения, о чем там написано): сперва добавить ФБ в библиотеку, и в наследнике нужно выделить выход Result, а в панели свойств указать тип значения на массив структур, которые соответствуют результатам запроса. Вот тип значения я не менял изначально, от этого и была ошибка "Type of Result is not ARRAY". После исправления ФБ работает, есть возможность сократить кучу отдельных запросов в протоколе.

egor3150
13.09.2024, 11:49
1)Есть возможность в журнале действий пользователя как то назначить ввод комментария при изменении числового значения?
2)Возможно ли назначить обязательный ввод комментария при квитировании аварии (чтобы без комментария авария не квитировалась)?

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

kyzzechka
17.09.2024, 07:01
Здравствуйте! Создали проект на MS4D c протоколом ModBus TCP, передача через последовательный порт COM1 на Windows. подскажите, при переносе проекта на Linux, где и как отследить, какой будет порт для передачи (аналогичный com 1 на Windows)?

Asgardian
18.09.2024, 14:01
78676
Добрые люди, подскажите пожалуйста, как перевести отображение по нашему формату?
Все настройки перерыл, в системе время отображается нормально, региональные настройки выставлены

melky
18.09.2024, 16:49
kyzzechka аналогичного порта на Linux не будет. Там будет что-то вроде /dev/ttyUSB0 или /dev/ttyS0 и так далее, в зависимости от устройства.
Если порты на Linux не USB а встроенные (например какой-то чип впаян), то они меняться не будут. Если же порты USB (вы подключаете например преобразователи USB-RS485) то номер ttyUSB(Х) будет меняться в зависимости какой первым воткнете, если преобразователей больше одного.

У вас какой случай? правилами udev можно зафиксировать преобразователь на нужном имени порта, а каким он там по USB(X) окажется фиолетово.
Если что, описывал у себя в блокноте как и что.
https://krdburan.blogspot.com/2020/02/udev-com.html

VladGC
19.09.2024, 11:28
78676
Добрые люди, подскажите пожалуйста, как перевести отображение по нашему формату?
Все настройки перерыл, в системе время отображается нормально, региональные настройки выставлены

Если речь про отчеты, попробуйте в настройках самого отчета выставить культуру RU

Asgardian
19.09.2024, 15:28
Если речь про отчеты, попробуйте в настройках самого отчета выставить культуру RU

У меня нет такой надстройки
В справочной информации тоже такого пункта не нашел

Enigma
23.09.2024, 08:37
Добрый день. Столкнулся с тем, что всплывающие окна уходят на задний план в полноэкранном режиме. В предварительном просмотре мнемосхем эта неисправность также присутствует. При этом в оконном режиме все хорошо.
Версия: 1.2.12.21403(MPLCD_1_2_20210223.1)
78787

VladGC
23.09.2024, 13:29
У меня нет такой надстройки
В справочной информации тоже такого пункта не нашел

Данный пункт должен быть во всех редакторах.
https://www.stimulsoft.ru/blog/articles/globalization-in-reports

Роман_М
25.09.2024, 10:50
kyzzechka аналогичного порта на Linux не будет. Там будет что-то вроде /dev/ttyUSB0 или /dev/ttyS0 и так далее, в зависимости от устройства.
Если порты на Linux не USB а встроенные (например какой-то чип впаян), то они меняться не будут. Если же порты USB (вы подключаете например преобразователи USB-RS485) то номер ttyUSB(Х) будет меняться в зависимости какой первым воткнете, если преобразователей больше одного.

У вас какой случай? правилами udev можно зафиксировать преобразователь на нужном имени порта, а каким он там по USB(X) окажется фиолетово.
Если что, описывал у себя в блокноте как и что.
https://krdburan.blogspot.com/2020/02/udev-com.html

Добрый день. У меня похожая ситуация. Создаю проект на win, modbus RTU master - номер порта 1. Запускаю на винде, все хорошо запросы идут.
Теперь запускаю на этот проект на Linux RT, сразу появляются вопросы
1. Какой порт мне слушать? ttyS0? Пробовал его cat /dev/ttyS0...там тишина
2. Если я в проекте хочу задействовать 2 порта, какие тогда порты будут задействованы на lin машине?

Пробовал при создании проекта в номере порта указать ttyS0..ругается, говорит номер давай.

melky
25.09.2024, 11:10
Роман_М какие у вас порты? USB-RS485? или встроенные?

dmesg | grep tty что показывает?

если порты USB-RS485 можно ввести dmesg | grep usb

Роман_М
25.09.2024, 11:16
Роман_М какие у вас порты? USB-RS485? или встроенные?

dmesg | grep tty что показывает?

если порты USB-RS485 можно ввести dmesg | grep usb

Есть преобразователь USB/RS485, /dev/USB0. С ним все хорошо, но только когда я руками в него пишу что-то. Как РТ указать чтобы она этот порт использовала?

Роман_М
25.09.2024, 11:19
Есть преобразователь USB/RS485, /dev/USB0. С ним все хорошо, но только когда я руками в него пишу что-то. Как РТ указать чтобы она этот порт использовала?

мои устройства
78872