Просмотр полной версии : Вопросы по MasterSCADA 4D
Страницы :
1
2
3
4
5
[
6]
7
8
Ещё вопрос по авариям - я передаю слово из 16 бит PLC в MS, могу ли я в архиве журнала указать Шкала AI или просто Шкала и там уже эти биты распаковывать и составлять приоритеты 750/500 или нужно для каждой аварии создать свой параметр, его привязывать к биту полученного из PLC слова?
Со шкалой не понял замысел, наверное лучше распаковать биты отдельно и сделать аварии, используя для их активации уже распакованные биты
Со шкалой не понял замысел, наверное лучше распаковать биты отдельно и сделать аварии, используя для их активации уже распакованные биты
Биты я уже распаковал, но объекты для каждого бита в дереве объектов не делал. Это нужно будет сделать для каждого битика свой параметр?
Я вообще хочу аварии сделать) Что бы вываливались аварии в журналах. В свойствах Параметра объекта есть шкалы DI AI и шкалы. Как то не хочется каждую аварию сидеть и выстукивать на клаве, можно ли как-то взять к примеру шкалы AI и где-то в настройках самого журнала аварий присваивать биты как аварийный сигнал. Не знаю смог ли объяснить.
Вообще такое не через видимость делается, а прямо через свойство "Изображение": привязать к нему переменную, выбрать в связи тип конвертации "точечная" и назначить каждому значению нужное изображение
О том и речь, если я беру бит, который сигнализирует что оборудование включено, то могу сделать базовыми средствами что бы крутилось что/либо. И таких битов могу передать сразу 16 за одно слово, а если я хочу делать движение самостоятельно, тогда мне на одно оборудование уйдёт 1 слово.
О том и речь, если я беру бит, который сигнализирует что оборудование включено, то могу сделать базовыми средствами что бы крутилось что/либо. И таких битов могу передать сразу 16 за одно слово, а если я хочу делать движение самостоятельно, тогда мне на одно оборудование уйдёт 1 слово.
Я не знаю, есть ли штатные средства для этого, но если делать самому - можно написать программу, которая будет непрерывно считать от 0 до 10 (смотря сколько картинок). И при включенном бите она будет считать, а при выключенном - выдавать например 0. Тогда дополнительные переменные в ПЛК не нужны
Биты я уже распаковал, но объекты для каждого бита в дереве объектов не делал. Это нужно будет сделать для каждого битика свой параметр?
Я вообще хочу аварии сделать) Что бы вываливались аварии в журналах. В свойствах Параметра объекта есть шкалы DI AI и шкалы. Как то не хочется каждую аварию сидеть и выстукивать на клаве, можно ли как-то взять к примеру шкалы AI и где-то в настройках самого журнала аварий присваивать биты как аварийный сигнал. Не знаю смог ли объяснить.
Честно говоря не понял.
Как минимум текст авариного сообщения всё равно набирать придётся
Честно говоря не понял.
Как минимум текст авариного сообщения всё равно набирать придётся
В картинке сверху слева в дереве объектов - программы на СТ, в ней параметры Бит_0, Бит_1 и т.д. Мне в дереве объектов нужно создавать отдельные булевские параметры этих же выходных сигналов, что бы привязать их к окну сообщений?
В картинке сверху слева в дереве объектов - программы на СТ, в ней параметры Бит_0, Бит_1 и т.д. Мне в дереве объектов нужно создавать отдельные булевские параметры этих же выходных сигналов, что бы привязать их к окну сообщений?
Да вроде необязательно, можно напрямую
Да вроде необязательно, можно напрямую
Смотрю их стандартные проекты, там они для каждого бита делали в дереве библиотек аварию, потом к Активность привязывали выход из программы((( капец у меня аварий много...
Смотрю их стандартные проекты, там они для каждого бита делали в дереве библиотек аварию, потом к Активность привязывали выход из программы((( капец у меня аварий много...
Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.
Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.
Это надо переварить...
Правильно понимаю, у вас 16 аварий для RECEIVING_word_4, и такие же аварии у RECEIVING_word_5, RECEIVING_word_6 и т.д.? Если так, в библиотеке можно создать 16 своих шкал по типу "Шкала DI", настроить приоритеты, сообщения для каждой шкалы под свою аварию и назначить эти шкалы к параметрам. Только не к параметрам программы, а к параметрам в объекте, т.е. нужно создать 16 булевых параметров в объекте и связать их с параметрами программы.
А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?
А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?
Если не ошибаюсь, то в любом случае надо указывать шкалу DI без этого сообщения не работают
Я правильно понимаю, что простым копипастом тревоги нельзя делать, нужно обязательно создавать заново?
Ибо значения у меня не меняются. Бит взвёлся в TRUE? а на тревогу не передаёт, хотя связь есть.
Более того, если делаю вторую тревогу, так в ней вообще ничего не активно как в первой тревоге...честно говоря уже хочется не цензурно начать разговаривать...почему оно такое кривое?
Тренды тоже не работают вываливается программа в ошибку и каналы к тренду не привязываются.
Просто нужно заново рантайм запускать. Благо рядом бук стоит, можно на нём эксперименты проводить. А по трендам тех поддержка вторые сутки отвечает...оперативно так для коммерческих клиентов.
По трендам может тут кто в курсе, выложу, нужно делать, а работа стоит(
Я правильно понимаю, что простым копипастом тревоги нельзя делать, нужно обязательно создавать заново?
Ибо значения у меня не меняются. Бит взвёлся в TRUE? а на тревогу не передаёт, хотя связь есть.
Более того, если делаю вторую тревогу, так в ней вообще ничего не активно как в первой тревоге...честно говоря уже хочется не цензурно начать разговаривать...почему оно такое кривое?
Тренды тоже не работают вываливается программа в ошибку и каналы к тренду не привязываются.
Просто нужно заново рантайм запускать. Благо рядом бук стоит, можно на нём эксперименты проводить. А по трендам тех поддержка вторые сутки отвечает...оперативно так для коммерческих клиентов.
По трендам может тут кто в курсе, выложу, нужно делать, а работа стоит(
Копировать можно, но привязки к тегам надо либо корректировать при копировании, либо устанавливать заново после копирования
На первом скрине значение параметра "Активность" заблокировано в значении "False" - может по этому не реагирует?
По трендам похоже привязано что-то не то, покажите что именно привязываете к каналам тренда
Активность я добавил уже позже. Когда эксперементировал. Просто нужно скорее всего по новой запустить рантайм.
А привязываю к тренду объект LMK858 МБР1. Это объект канала модбас INT с регистром 28436 прямо из контроллера.
Как видно на картинках, перенесённый объект не привязался в самом графике, не появились перья. Нет легенды пера красный, зелёный и т.д.
Активность я добавил уже позже. Когда эксперементировал. Просто нужно скорее всего по новой запустить рантайм.
А привязываю к тренду объект LMK858 МБР1. Это объект канала модбас INT с регистром 28436 прямо из контроллера.
Как видно на картинках, перенесённый объект не привязался в самом графике, не появились перья. Нет легенды пера красный, зелёный и т.д.
Так добавьте перья и потом уже в каждое перо привязывайте теги
Должно быть так примерно:
73940
Так добавьте перья и потом уже в каждое перо привязывайте теги
Должно быть так примерно:
73940
Так тоже пробовал - не работает. К тому же как у них в роликах обучающих делал, что так что сяк ошибка одна и та же.
Так тоже пробовал - не работает. К тому же как у них в роликах обучающих делал, что так что сяк ошибка одна и та же.
Не пробовали сделать отдельный проект только с трендом для пробы?
Не пробовали сделать отдельный проект только с трендом для пробы?
На ноуте открывал их рабочий - у них всё добавлялось. Сейчас на компе попроюбую новый сделать. Спасибо за подсказку. Кстати, могу попробовать скинуть свой недоделанный, можете попробовать у себя открыть?
В новом работает
На ноуте открывал их рабочий - у них всё добавлялось. Сейчас на компе попроюбую новый сделать. Спасибо за подсказку. Кстати, могу попробовать скинуть свой недоделанный, можете попробовать у себя открыть?
В новом работает
Кидайте, можете ссылкой в личку
А в чём выгода использования шкалы DI?
Не лучше создать в библиотеке 16 аварийных сообщений?
В вопросе шла речь про шкалы, поэтому был предложен такой вариант. Если каждый из 16 бит это, например, отказ чего-либо, шкала DI вполне подходит. Если подразумевается что-то другое, можно и через тревоги, это более гибкий способ.
Кидайте, можете ссылкой в личку
Ушло в личку
А что бы максимальный уровень на тренде по оси Y задавать нужно что менять?
А что бы максимальный уровень на тренде по оси Y задавать нужно что менять?
Там для каждого пера можно задать пределы шкалы:
74016
Параметры MinY и MaxY
Там для каждого пера можно задать пределы шкалы:
74016
Параметры MinY и MaxY
Отлично, просто их нужно поставить как хочу диапазоном?
Я почему спрашиваю, меняю ив перьях и в самом графике - он всё равно мне 100 выдаёт((
Уже подвязал к верхнему уровню текущий -циферки пропали, но зато я хоть график вижу хоть какой-то. Но стал другую ошибку выдавать:
FROM id="153017"
Значение "[object Object]" не может быть преобразовано в тип "LREAL" = при чём тут плавающая точка? откуда она вообще взялась? Это ID по графику, найти его тоже тот ещё квест был, поисковик её не выдаёт, хороший партизан.
Хотя я никакой ДКУФД не делал, у меня обычный INT!
Отлично, просто их нужно поставить как хочу диапазоном?
Я почему спрашиваю, меняю ив перьях и в самом графике - он всё равно мне 100 выдаёт((
Уже подвязал к верхнему уровню текущий -циферки пропали, но зато я хоть график вижу хоть какой-то. Но стал другую ошибку выдавать:
FROM id="153017"
Значение "[object Object]" не может быть преобразовано в тип "LREAL" = при чём тут плавающая точка? откуда она вообще взялась? Это ID по графику, найти его тоже тот ещё квест был, поисковик её не выдаёт, хороший партизан.
Хотя я никакой ДКУФД не делал, у меня обычный INT!
Судя по ошибке был перетащено что-то имеющее тип "Объект" на параметр (возможно это был как-раз "MinY" или "MaxY"), который имеет тип "LREAL"
Судя по ошибке был перетащено что-то имеющее тип "Объект" на параметр (возможно это был как-раз "MinY" или "MaxY"), который имеет тип "LREAL"
Возможно, убрал привязку ошибка прошла, но есть другая проблема.
Уровни Y максимальный стоит 100 и нее меняется на 4000. Поэтому график за полем наверху. Перетащил параметр на тренд, установил диапазон 4000, а при исполнении пишет 100.
Оказывается в этом графике слева есть функция растягивания бегунка на всю величину.
Как сделать что бы по умолчанию оно было на всю катушку?
pasha12q1
05.03.2024, 08:22
Вопрос "удобства". Как я понял дерево только одно и привязки между переменными только через него. У меня тысячи параметров и тегов, прыгать зажав кнопку мыши через огромное дерево с постоянно перескакивающей автопрокруткой это мягко говоря крайне неудобно. Если есть "нормальный" способ привязки переменных, хотя-бы два независимых дерева, то поправьте как это сделать. На данный момент, существующий способ является издевательством над пользователем и годится только для маленьких проектов.
Вопрос "удобства". Как я понял дерево только одно и привязки между переменными только через него. У меня тысячи параметров и тегов, прыгать зажав кнопку мыши через огромное дерево с постоянно перескакивающей автопрокруткой это мягко говоря крайне неудобно. Если есть "нормальный" способ привязки переменных, хотя-бы два независимых дерева, то поправьте как это сделать. На данный момент, существующий способ является издевательством над пользователем и годится только для маленьких проектов.
Правой кнопкой на основании дерева объектов => "Открыть в панели веток".
Панель веток на вкладке в том-же окне, где и основное дерево - растащите Панели "Дерево" и "Ветки" в отдельные окна и поставьте рядом:
74076
pasha12q1
05.03.2024, 09:07
Бомба! Спасибо!:cool:
А как трубы вместе склеить? Я беру вертикальную трубу, ставлю ширину 10. Затем беру отвод ставлю ему ширину и высоту 10, он получается меньше по размеру ширины трубы, но размер картинки ес-но совпадает, т.к. ширина соответствует указанной. Но мне то и оператору важно что бы было совпадение самого рисунка, а не размера картинки. Делаю ширину 15 и высоту 15 самого отвода, что бы хоть как-то совпал стык в стык, и пытаюсь сдвинуть эти стыки вместе, но они с гиганстким шагом. Как быть, посоветуйте?
МихаилГл
06.03.2024, 08:06
Ну как бы логично, у вас ширина отвода включает и загиб. А где координата X...Y нельзя в пикселях задавать?
PS Ну вы совсем обленились...
74120
Ну как бы логично, у вас ширина отвода включает и загиб. А где координата X...Y нельзя в пикселях задавать?
PS Ну вы совсем обленились...
74120
Да, я уже разобрался, благодарю) Привычка Сименовская ещё не вытравилась где удобно сделано в плане пользования..
МихаилГл
06.03.2024, 09:19
Да, я уже разобрался, благодарю) Привычка Сименовская ещё не вытравилась где удобно сделано в плане пользования..
Лень матушка... Я вот ради эксперимента попробовал с зажатым Ctrl... Все работает нормально. По пикселю двигает.
Лень матушка... Я вот ради эксперимента попробовал с зажатым Ctrl... Все работает нормально. По пикселю двигает.
Про CTRL не знал, буду пользоваться, спасибки.
А в библиотечных насосах вижу есть в Параметры > Общая авария. И там выбор имеется Alarm и Warning. Я могу туда привязать аварийный бит с контроллера и что бы он краснел, например. Или это про другое тут?
НЕ сочтите за лень, просто объект в работе, останавливаться не могу что бы вливаться постоянно ноут уже сел(
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
StatusCode стоит badWaiting... попробуйте поставить "GOOD"
И доступ чтение/запись
Коллеги, а можете подсказать, почему конвертик с авариями показывает количество аварий, которое не соответствует действительности. У меня по факту горит 4 аварии в журнале, а в конверте 64.
Коллеги, а можете подсказать, почему конвертик с авариями показывает количество аварий, которое не соответствует действительности. У меня по факту горит 4 аварии в журнале, а в конверте 64.
Может фильтр какой в журнале включен.
Либо индикатор показывает, допустим, алармы ВСЕГО АРМ, а журнал - только алармы отдельного объекта
Может фильтр какой в журнале включен.
Либо индикатор показывает, допустим, алармы ВСЕГО АРМ, а журнал - только алармы отдельного объекта
А что сделать, что бы было соответствие аварии активной и на конвертике такое же число?
А что сделать, что бы было соответствие аварии активной и на конвертике такое же число?
Попробуйте в свойствах "Объект" журнала и индикатора указать один и тот-же объект
Попробуйте в свойствах "Объект" журнала и индикатора указать один и тот-же объект
Честно говоря, не очень понял где, но у меня в объектах ни в самом журнале ни в самом индикаторе ничего не указано..
Честно говоря, не очень понял где, но у меня в объектах ни в самом журнале ни в самом индикаторе ничего не указано..
Нужно перетащить туда объект
https://support.mps-soft.ru/Help-web/index.html?graficheskiy_element__jurnal_.html
Нужно перетащить туда объект
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;
Я просто фильтры поставил в программе, и стало показывать только то, что в аварии.
Другой вопрос - как показывать только положительные значения в Мастер скаде?
Начал дело писать на 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);
Если есть ПЛК, то лучше делать это в нём и не отправлять в скаду неправильные значения вообще
Добрый день. Вопрос по конвертации данных. Нужно выводить на метку значение параметра если качество хорошее и, допустим, "Ошибка" если плохое.
Если программно, то будет ошибка преобразования в формат, типа "Не число "Ошибка" не может быть преобразовано в формат F0". Может у кого есть идеи.
Добрый день. Вопрос по конвертации данных. Нужно выводить на метку значение параметра если качество хорошее и, допустим, "Ошибка" если плохое.
Если программно, то будет ошибка преобразования в формат, типа "Не число "Ошибка" не может быть преобразовано в формат F0". Может у кого есть идеи.
Сделать ещё отдельный выход в программе, связать с форматом и писать туда "F0", когда отправляется число и "" - когда отправляется текст
Сделать ещё отдельный выход в программе, связать с форматом и писать туда "F0", когда отправляется число и "" - когда отправляется текст
Спасибо, помогло. Но не надолго. При загрузке проекта все хорошо. При изменении качества в процессе ошибка сохраняется...
Спасибо, помогло. Но не надолго. При загрузке проекта все хорошо. При изменении качества в процессе ошибка сохраняется...
Может сам подход изменить? Перечёркивать значение например, цвет фона менять и т.п.?
Может сам подход изменить? Перечёркивать значение например, цвет фона менять и т.п.?
Пришлось, цвет фона меняю. Спасибо.
Шкалу AI удобно использовать для работы с трендами, но есть какая-то возможность использовать шкалу, но отключить сообщения в ней? -
события по предупредительным и аварийным пределам уже формируются самим ПЛК, при этом там учитывается текущее состояние объекта и источника сигнала (сообщения выдаются не во всех случаях)
Скажите пожалуйста, можно ли как-то задать пароль на рантайм, чтобы кто угодно не мог подключиться к сети и загрузить свой проект вместо работающего на сервере?
Скажите пожалуйста, можно ли как-то задать пароль на рантайм, чтобы кто угодно не мог подключиться к сети и загрузить свой проект вместо работающего на сервере?
Вот здесь в справке посмотрите:
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, т.е. не выполняет расчет.
Как это можно победить?
Буду признателен за помощь.
Здравствуйте!
Появилась необходимость подключить счётчик ээ Меркурий 234 к MS4D (RT на Linux).
В описании на счётчик сказано: "Обмен данными через последовательный интерфейс RS-485 (CAN) осуществляется
по протоколу IEC 62056 (DLMS/COSEM) или по протоколу «Счётчики трёхфазные Меркурий»."
В MS4D в "протоколах-добавить" есть DlmsOverTCP а "Счётчики трёхфазные Меркурий" нет.
Подскажите какой протокол из предлагаемых в MS4D использовать для подключения к счётчику ээ Меркурий 234 ?
Судя по описанию у него нет эзернет и придётся использовать модем(роутер) с RS485 или RS232 для связи со счётчиком
Спасибо
Здравствуйте!
Появилась необходимость подключить счётчик ээ Меркурий 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 вроде есть там
AlexBut протоколы DLMS/COSEM и Меркурий РАЗНЫЕ. Производитель выпускает счетчики с разными протоколами опроса. Если у вас с протоколом Меркурий и он не поддерживается, то увы.
Спасибо!
Вижу что можно подключить протоколы Меркурий , но у меня в опциях подключения нет(см скриншоты).
Где их взять?
Спасибо!
Вижу что можно подключить протоколы Меркурий , но у меня в опциях подключения нет(см скриншоты).
Где их взять?
Там что-то про подключение библиотеки было, поищите там-же
Подключение библиотеки - Драйверы устройств. посмотрите.
Спасибо, с одной стороны в описании на Меркурий(СЧЁТЧИК ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ СТАТИЧЕСКИЙ ТРЁХФАЗНЫЙ «МЕРКУРИЙ 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?
Спасибо!
AlexBut не будет, у вас буквы D нет в модификации
https://www.incotexcom.ru/catalogue/234artm#modification
Меркурий 234 ARTM2-03 (D)PBR.R - нет D, значит только протокол Меркурий. Меркурий 234 ARTM2-03 DPBR.R - вот если бы он был такой, то там DMLS, СПОДЭС
Спасибо, а что насчёт магистрального протокола М4- он нужен чтобы подключить СПГ742.
Хотя у АО НПФ Логика есть свой сервер OPC DA Логика , но мы переводим на платформу Линукс
и нам бы UA да ещё для Линукс. Что насчёт этого думает сообщество ,такое возможно?
AlexBut я использую RapidScada где сам писал драйвера для Логики, можете использовать в качестве прокладки без создания БД в Scada и перенаправить в OPC UA. На том же самом ПК на Linux где будет крутиться MS4D
Пока без архивов, но что есть. Ну или если найдете другое решение..
Ну и кстати без профилей мощности и Меркурий можно прочитать, тоже делал драйвер, правда на руках был Меркурий 236-ой но вроде у них одинаковый протокол. и тоже получить данные по OPC UA.
на халяву :)
Добрый день! Задача тривиальная, передача по modbus RTU вещественных чисел, методом преобразования real в два word и обратно. В Сodesys проблем нет а вот в MasterScada4d не нашел (аналог WORD2_TO_REAL() ) Кто в теме подскажите функциональный блок или связку.
Добрый день! Задача тривиальная, передача по modbus RTU вещественных чисел, методом преобразования real в два word и обратно. В Сodesys проблем нет а вот в MasterScada4d не нашел (аналог WORD2_TO_REAL() ) Кто в теме подскажите функциональный блок или связку.
А почему не укажете для этого тега значение "REAL" в параметре "Тип данных в устройстве"?
Чередование байт тоже можно поменять (в настройках устройства)
Aleksandr_L
16.04.2024, 11:52
Добрый день.
никогда не записывал параметры в устройства, кто-нибудь может рассказать на пальцах с картинками, как это делается?
необходимо записать вес тары в МВ110-224.4ТД
на сколько я понимаю, надо прописать в регистр значения (рис.1 ) и как то подтвердить (рис.2).
Можете объяснить?
Спасибо.
Добрый день.
никогда не записывал параметры в устройства, кто-нибудь может рассказать на пальцах с картинками, как это делается?
необходимо записать вес тары в МВ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) - в каком месте затруднения?
Да, был не прав, необходимо сохранить текущее значение в память модуля.
Считывать получается (см. рис.) как сохранять никак не могу понять.
Да, был не прав, необходимо сохранить текущее значение в память модуля.
Считывать получается (см. рис.) как сохранять никак не могу понять.
Вы считываете значение с параметра тега "Вход", соответственно писать надо в параметр "Выход" (ниже).
Cоздайте параметр (например "ЗНАЧЕНИЕ_ВЫХОД") типа "SYSTEM_REAL_PARAM" в скаде и свяжите его с параметром "Выход" тега (перетаскиванием). Изменяйте значение параметра "ЗНАЧЕНИЕ_ВЫХОД" и оно будет автоматически передаваться в модуль (по умолчанию запись выполняется по изменению значения).
Aleksandr_L
16.04.2024, 16:01
Спасибо, получилось!!!
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 2.3 с помощью мс4д считываю параметр типа word, в котором первые два бита отвечают за включение и выключение нагревателя 1 и 2 соответственно.
В мс4д добавлено две кнопки
Как сделать так, что бы определенная кнопка отвечала за конкретный бит в этом параметре? Пока что получается так, что при включении 1 кнопки выключается 2 и наоборот.
Просто, например, в СП310 можно выбрать конкретный бит, а в мс4д так можно? Или как это реализовать?
В поддержке писали, что лучше создавать кнопки без фиксации с обратной связью
Но я не понимаю как это реализовать..
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 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" в конце)
Попробовал, ничего не получается, наверное, совсем ерунду понаделал.
По ссылке тоже смотрел, но там один параметр "холодильник" и у него вход и выход есть, а у меня параметр тоже один, но нагревателя два
И тут я вообще запутался
Смотрел видео на ЮТ, там считывали биты из слова, но там нет обратной связи, что бы управлять битами через Скаду, а не панель7524075241
Попробовал, ничего не получается, наверное, совсем ерунду понаделал.
По ссылке тоже смотрел, но там один параметр "холодильник" и у него вход и выход есть, а у меня параметр тоже один, но нагревателя два
И тут я вообще запутался
Смотрел видео на ЮТ, там считывали биты из слова, но там нет обратной связи, что бы управлять битами через Скаду, а не панель7524075241
У вас ПЛК - мастер, а панель - слейв?
У вас ПЛК - мастер, а панель - слейв?
Да.
А панель тоже влияет на то все?
А можно ли как то менять значение бита принудительно в таком случае?75243
kondor3000
17.04.2024, 16:01
Здравствуйте. Помогите, пожалуйста с такой проблемой:
Из кодесис 2.3 с помощью мс4д считываю параметр типа word, в котором первые два бита отвечают за включение и выключение нагревателя 1 и 2 соответственно.
В мс4д добавлено две кнопки
Как сделать так, что бы определенная кнопка отвечала за конкретный бит в этом параметре? Пока что получается так, что при включении 1 кнопки выключается 2 и наоборот.
Просто, например, в СП310 можно выбрать конкретный бит, а в мс4д так можно? Или как это реализовать?
В поддержке писали, что лучше создавать кнопки без фиксации с обратной связью
Но я не понимаю как это реализовать..
Вы не написали, панель и скада подключены к 1 интерфейсу или к разным?
Если у вас всего 2 бита, то можно и не упаковывать в маску, а передавать битами на Скаду. Просто в 4D вам придётся сильно извернуться.
Да.
Значит скада подключается к панели?
К одному,rs-485, вы как раз и посоветовали передавать параметры через byte или word, чем я и воспользовался.
Ну, если я правильно понял, то скала считывает значение тегов из кодесис
В целом, у меня +- получилось реализовать задуманное через программу fbd в скаде
Я добавил блок byte to bit что бы создать лампочку индикации
И еще один блок bit to byte (вроде), на который повесил два входа, которыми и управляю. Вроде, работает, хотя и костыльно, как мне кажется
Разве что при включении нагревателей с панели нельзя их сразу выключить из скады, потому что мой булиевый параметр не имеет обратной связи на данный момент
К одному,rs-485, вы как раз и посоветовали передавать параметры через byte или word, чем я и воспользовался.
Ну, если я правильно понял, то скала считывает значение тегов из кодесис
А какой протокол выбран в скаде для подключения?
Opc da, получилось подключиться только через него
Opc da, получилось подключиться только через него
Теперь понятно.
Но как вам и сказали в техподдержке, такие штуки как кнопки с фиксацией - очень плохо будут работать в MS, даже если сильно извернуться.
Читать отдельные биты слова из ПЛК в MS можно без проблем. Менять бит в слове и просто посылать это слово в ПЛК тоже без проблем.
Можно сделать два слова - биты одного хранят состояния оборудования, битами другого - осуществляется управление.
Например так:
75249
kondor3000
17.04.2024, 19:19
Opc da, получилось подключиться только через него
По протоколу Модбас RTU, тоже всё работает, через переходник.
В 4D можно вставить тот же самый ФБ на ST, который у вас в ПЛК для целочисленных, и управлять так-же из 2 мест, из скады и из ПЛК.
Я этой скадой не пользуюсь, от слова совсем.
Теперь понятно.
Через da плохо? И как тогда лучше подключаться?
А в мс потом как биты менять? Я еще вроде до этого скидывал, как у меня проект выглядит, в моем случае ControlBits это start_tuning?
По протоколу Модбас RTU, тоже всё работает, через переходник.
В 4D можно вставить тот же самый ФБ на ST, который у вас в ПЛК для целочисленных, и управлять так-же из 2 мест, из скады и из ПЛК.
Я этой скадой не пользуюсь, от слова совсем.
Спасибо, Попробую создать завтра такой фб
Именно скадой 4д? А что тогда есть лучше?
kondor3000
17.04.2024, 19:31
Спасибо, Попробую создать завтра такой фб
Именно скадой 4д? А что тогда есть лучше?
Когда помучаетесь, с каждой фигнёй, поймёте. Попробуйте другие скады, почти у всех есть бесплатные версии.
Через da плохо? И как тогда лучше подключаться?
А в мс потом как биты менять? Я еще вроде до этого скидывал, как у меня проект выглядит, в моем случае ControlBits это start_tuning?
Я например предпочитаю делать ПЛК слейвом и для панели и для скады.
Подключать скаду и панель можете по любым интерфейсам в любых сочетаниях.
В МС биты упаковываете через программу с блоком, который справа на вашем скрине, его подцепите к ControlBits - это будет слово с битами управления.
А тот блок, что справа на скрине, поставите в другую программу, его вход подключите к другому тегу (StateBits) - на выходе блока будете смотреть биты с текущим состоянием оборудования
Попробовал, теперь я могу включить и выключить бит из скады
Но если включаю на панели, то в скаде уже не могу выключить (только если нажать "включить" и потом уже "стоп")
kondor3000
18.04.2024, 13:27
Попробовал, теперь я могу включить и выключить бит из скады
Но если включаю на панели, то в скаде уже не могу выключить (только если нажать "включить" и потом уже "стоп")
Что то вы не так сделали, 1 WORD со скады 2 WORD из ПЛК, всё должно работать.
Поставьте 2 блока, один за другим, у вас будет 3 входа а не 2.
Что-то я вообще не понимаю.
У меня в скаду приходит параметры 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-й параметр
Сделайте скрин схемы, что вы наваяли в скаде.
75265
Или что то еще нужно заскринить?
kondor3000
18.04.2024, 14:19
Или что то еще нужно заскринить?
А ФБ блок на ST где?
Я его не пробовал сделать, потому что не особо понял как
Пробовал по совету 1exan сделать, тоже не получилось
kondor3000
18.04.2024, 14:30
Я его не пробовал сделать, потому что не особо понял как
Пробовал по совету 1exan сделать, тоже не получилось
Поэтому у вас и не работает, блок должен прочитанное записать в индикатор скады, а управляющий бит передать на запись в ПЛК.
блок должен прочитанное записать в индикатор скады, а управляющий бит передать на запись в ПЛК.
В программе ST нужно жто прописывать?
То есть нужно создать программу ST и перетащить ее в программу FBD? А в кодесис надо еще что то добавлять?
kondor3000
18.04.2024, 14:47
В программе ST нужно жто прописывать?
То есть нужно создать программу ST и перетащить ее в программу FBD? А в кодесис надо еще что то добавлять?
Да, создать ФБ и перетащить в скаде, в кодесис ничего не надо.
А там в блоке (программе ст) должно быть что то типа
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
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.
День добрый.
Запуск стороннего Клиента
...
Если необходимо получить доступ к определенному окну без окна авторизации (не к тому, что задано по умолчанию как стартовое окно), то адресная строка должна иметь вид, [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 проект, то номер экземпляра, скорее всего, не обязателен. У меня и без него работает.
Добрый день.
А можно как то сделать, чтобы после перезагрузки открывался не стартовое окно, а другое? т.е. необходимо сделать, чтобы на одном компьютере открывалось стартовое, а на другом автоматически открывалось другое.
Сделайте еще одного пользователя, привяжите его к окну, которое хотите открывать на другом компе! Один пользователь при загрузке - одно окно, другой - другое окно!
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 а потом обратно ? Как это сделать не могу найти примера ?
подскажите как я мне надо управлять пр103 через модбас TCP с нескольких мест через панель оператора и через мастер скаду . С панелью я разобрался она записывает переменную только по изменению или при нажатии на кнопку . а как в мастер скаде сделать также чтобы она передавала значение только при изменении надо статус код менять и Bad на Good а потом обратно ? Как это сделать не могу найти примера ?
При статусе Bad значение вообще не передаётся.
По умолчанию команда на запись идёт только по изменению значения. Это устанавливается в настройках протокола. Примеров много, поищите у них на сайте
Видео (https://www.masterscada.ru/trainingms4d#popup:youtubevideo22)по теме
Добрый день!
Требуется подключить устройство (не 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
Во нашёл:
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 и приложить проект.
Здраствуйте, подскажите есть ли возможность в 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. Нашёл элемент Стековая Панель, но при загрузке данных, там отображаются значения не в столбцах, а строкой и большая часть значений не читается. Какой элемент использовать в окне?
Какой элемент использовать в окне?
"Таблица данных"
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 ну или в его кодесисе этот протокол сыроват.
И я не могу полный проект предоставить.
Общий совет: рассмотрите возможность сохранения проекта с новым именем, вырезав в новом экземпляре все что не касается сути проблемы и оставив только компоненты на которых она воспроизводится.
Таким образом и ТП и вам самим будет проще определить корень проблемы.
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 все по одному месту пошло
Коллеги, а подскажите, пожалуйста, как сделать среду исполнения в полноэкранном режиме?
Коллеги, а подскажите, пожалуйста, как сделать среду исполнения в полноэкранном режиме?
Наверное нужны эти параметры (https://support.mps-soft.ru/Help-web/okno_nastr_sredy_isp.html) (настройки запуска в MasterSCADA 4D Monitor, ключ запуска -f)
Наверное нужны эти параметры (https://support.mps-soft.ru/Help-web/okno_nastr_sredy_isp.html) (настройки запуска в MasterSCADA 4D Monitor, ключ запуска -f)
Ага, понятно. Я только в рабочую папку влез и поменял на другой адрес в диске c:\Program Files.....что-то там, перешёл на D:\ ... после этого перестал работать RT. Подскажите, пожалуйста какой там адрес был изначально.
Благодарю за помощь
Ага, понятно. Я только в рабочую папку влез и поменял на другой адрес в диске c:\Program Files.....что-то там, перешёл на D:\ ... после этого перестал работать RT. Подскажите, пожалуйста какой там адрес был изначально.
Благодарю за помощь
Посмотрите в справке, там есть описание используемых стандартных путей
https://support.mps-soft.ru/Help-web/rab_papka_sredy_ispolnenia.html
Посмотрите в справке, там есть описание используемых стандартных путей
https://support.mps-soft.ru/Help-web/rab_papka_sredy_ispolnenia.html
В этом вся история и заключается у них стоит C:\ProgramData\MPSSoft\MasterSCADA4DRT[номер версии]/Server. а у меня на винде такой папки нет.
Нашёл в скрытых папках.
Откройте скрытые папки. Кажется ProgramData относится к таким.
Да, мерси, всё получилось.
Когда пишет ошибку обнаружены теги с одинаковыми адресами как найти какие адреса одинаковые?
Исправил в ручную, всё равно были ошибки, только после:
перезагрузился, очистил кэш, проверил целостность проекта, очистил историю, поплевал через левое плечо, три раза покрутился на левой пятке и всё заработало.
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 топологию сети, а лучше вышлете программу для того, чтобы мы могли проанализировать проблему.
Коллеги приветствую.
А как сделать запуск только скады, что бы исполнение было только в нём, не запуская сам исходник?
Коллеги приветствую.
А как сделать запуск только скады, что бы исполнение было только в нём, не запуская сам исходник?
Посмотрите справку (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 (отсутствует в пространстве).
Добрый день!
В учебных видео к МС4Д говорится, что есть демо проекты. Скачал с masterscada.ru версию на 1 час работы, демо проектов нет. Может кто даст ссылку откуда их можно скачать и посмотреть?
nikolay861
22.07.2024, 19:58
Всем привет. Как c помощью С# получить текущие сообщения по типу GetActualEvents. Через ФБ не подходит, так как мне вообще не понятно как реализован этот блок и просмотреть его нельзя, более того он плохо переносит перенос проекта из версии в версию, по этому я отказался от использования ФБ вообще. Плюс я не нашел где можно посмотреть как настраиваются фильтры для блока.
В общем буду благодарен если кто подскажет.
Pavel5698
23.07.2024, 08:44
Добрый день!
В учебных видео к МС4Д говорится, что есть демо проекты. Скачал с masterscada.ru версию на 1 час работы, демо проектов нет. Может кто даст ссылку откуда их можно скачать и посмотреть?
Возможно вы установили без демо проектов. Вообще так77516
Несколько раз удалил, поставил, демо нет. Скачивал куда ссылка привела с сайта ОВЕН на сайт mastersacada.ru/ На сайте ИНСАТа, где приведена ссылка на полную версию лежат только рантаймы...
Не могли бы вы сделать архив демонстрашек и в облако куда нибудь залить.
Еще обратил внимание, в скаченной версии в базе контроллеров нет модулей ОВЕН, а в справке и в учебном видео они есть...
kondor3000
28.07.2024, 15:34
Несколько раз удалил, поставил, демо нет. Скачивал куда ссылка привела с сайта ОВЕН на сайт mastersacada.ru/ На сайте ИНСАТа, где приведена ссылка на полную версию лежат только рантаймы...
Не могли бы вы сделать архив демонстрашек и в облако куда нибудь залить.
Еще обратил внимание, в скаченной версии в базе контроллеров нет модулей ОВЕН, а в справке и в учебном видео они есть...
Демопроекты должны уже быть в установщике. Скорее всего вы установили в папку не по умолчанию (не диск С) или изменили папку проектов по умолчанию.
Модули появляются при добавлении биб-ки Owen, она уже установлена, только добавить в проект.
Добрый день.
Интересует опыт реализации проектов с количеством точек более 10к, а лучше 20к+.
Как себя ведет, проблемы и их решение.
Vova37, мне как-то считали на 300 счётчиков электроэнергии Меркурий 230 по 40 сигналов с каждого на MS3.
Насчитали ДВА физических сервера. Два, Карл!!!!
Всего-то 12000 сигналов.
Насчитали ДВА физических сервера. Два, Карл!!!!
С резервированием ?
Vova37 какой там, тогда объяснили, что одного не хватит по мощности. Может такой менеджер попался, который хотел продать побольше, либо система по факту слаба.
Хорошо, что проекта не случилось...
Добрый день
Еще вопрос
PostgreSQL бесплатная версия подойдет для проекта с количеством точек более 20к ? Или нужно покупать более продвинутую версию и какую ?
Vova37, продвинутая версия, насколько понимаю это всего лишь дополнительный функционал БД, не более того.
Вопрос, почему упёрлись в MS4D ? Наверное должен быть самым первым.
Вопрос, почему упёрлись в MS4D ? Наверное должен быть самым первым.
Заказчик. А что из отечественного можно предложить?
Я с удовольствием использовал бы Citect)
МихаилГл
16.08.2024, 17:52
Ну simple scada, например, более дружелюбна. Про rapid scada не говорю, она хоть и бесплатна, но потребует знания программирования, если захотите что-то стоящее создать.
Больше бы предпочел SimpLight или RapidScada.
На самом деле российских решений куда больше, чем MS4D и даже вышеперечисленных. Непонятно, почему все упираются в это недоразумение?
cher0buk
19.08.2024, 07:30
Подскажите пожалуйста возможно ли создание переменных внутри программы MS4D каким то табличным способом? Как например импорт, экспорт для тегов Modbus? Неужели нет инструмента более удобного чем "дублировать N раз"?78087
Подскажите пожалуйста возможно ли создание переменных внутри программы 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 элемента.
В самом верху этой темы написано:
Важно! В файле нельзя редактировать столбец Property~Id элемента~Id
А для СОЗДАНИЯ новой переменной ей нужен новый Id элемента.
Это же просто суррогатный ключ. Что, в MS нет механизма очистки и пересоздания ключей?
Vansanches
22.08.2024, 17:49
Добрый день, Коллеги, подскажите, кто нибудь уже использовал ФБ sqlRequest, чего то у меня с ним не выходит, все в нем вроде прописано правильно, но на выходе еррор, в примере забыли приложить файлы процедур для sql, пример ниже
https://masterscada.ru/faq/primer-vzaimodeistviya-s-subd
Добрый день.
при формировании количественного отчета дата почему то 01.01.1970 3:00:00
В чём может быть проблема ?
Vova37 не считывается текущая дата (не формируется). Указывается начальная дата Unix + часовой пояс по Москве.
Vova37 не считывается текущая дата (не формируется). Указывается начальная дата Unix + часовой пояс по Москве.
Как это победить ?
Возможно нужно что-то связать? Делал все как в справке.
Не подскажу, не занимаюсь MS4D. Но по дате, которую привели видно, что она не принята по какой-то причине и там значение по умолчанию с учетом часового пояса.
А REAL отрицательные значения в мастер скаде работают?
kondor3000
24.08.2024, 12:16
А REAL отрицательные значения в мастер скаде работают?
Конечно работают, REAL может быть со знаком, так же как и знаковые целочисленные, в отличие от беззнаковых целочисленных.
Конечно работают, REAL может быть со знаком, так же как и знаковые целочисленные, в отличие от беззнаковых целочисленных.
А вот у меня почему-то не передаются значения, может подскажете что-то дополнительно нужно активировать? Регистры проверил, Good сигналы сделал, но не приходит и всё тут.
kondor3000
24.08.2024, 14:31
А вот у меня почему-то не передаются значения, может подскажете что-то дополнительно нужно активировать? Регистры проверил, Good сигналы сделал, но не приходит и всё тут.
Если приходит не то число, проверить адрес, макс. длину ввода, переставить регистры (байты) 78182
Доброго дня.
Вопрос вероятно примитивный, но как-то в упор не смог найти:
есть ли в среде разработки что-то похожее на функционал автоматизированного формирования листинга проекта?
Так чтобы по нажатию кнопки все что возможно выгрузилось в какой-нибудь pdf/doc/etc, не прибегая к необходимости копипастить по отдельности код каждого ФБ и т.п. ?
Александр Пинэко-Скворцов
28.08.2024, 09:05
Доброго дня.
Вопрос вероятно примитивный, но как-то в упор не смог найти:
есть ли в среде разработки что-то похожее на функционал автоматизированного формирования листинга проекта?
Так чтобы по нажатию кнопки все что возможно выгрузилось в какой-нибудь pdf/doc/etc, не прибегая к необходимости копипастить по отдельности код каждого ФБ и т.п. ?
Добрый день.
Есть возможность экспорта программ в виде ST-текста. Можно открыть Блокнотом/Notepad++ и т.п.
ПКМ по одной или нескольким программам в дереве проекта - Импорт/Экспорт - Экспорт ST текста.
полагаю Листинг проекта это не только программы. А вообще все настройки.
DonGarik
28.08.2024, 10:30
Добрый день! Смогли решить проблему? Просто у меня ситуация точно такая. Я могу считать с переменной типа real? а записать не могу. С типом данных int проблем нет
полагаю Листинг проекта это не только программы. А вообще все настройки.
Да, вопрос был про всё...
DonGarik
29.08.2024, 06:47
Привет , коллеги!
Повторю свой вопрос здесь, можно кто сталкивался с подобной проблемой
Настроил обмен данных Masterscada по OPC UA с ПЛК Овен.
Проблема с типом данных REAL, - переменную с данным типом данных я могу считать, однако не могу записать в нее свое значение. С типом данных INT такой проблемы нет.
Проблема именно на стороне MasterSCADA, так как настроил OPC UA на SCADA системе Simp Light - и там такой проблемы не наблюдается.
Техподдержка MasterSCADA как обычно вафлит
Привет , коллеги!
Повторю свой вопрос здесь, можно кто сталкивался с подобной проблемой
Настроил обмен данных Masterscada по OPC UA с ПЛК Овен.
Проблема с типом данных REAL, - переменную с данным типом данных я могу считать, однако не могу записать в нее свое значение. С типом данных INT такой проблемы нет.
Проблема именно на стороне MasterSCADA, так как настроил OPC UA на SCADA системе Simp Light - и там такой проблемы не наблюдается.
Техподдержка MasterSCADA как обычно вафлит
при чем тут поддержка, если Вы внятно ни чего не можете объяснить. Вас скрины просили выложить, по ним видно что Вы в рабочем проекте всё это пытаетесь делать, разве трудно создать пустой проект с одной переменной и разобраться с тем что не получается, пока впечатление от Вас, что раз у Вас удачно отображается целочисленное но конечном объекте, Вы возомнили себя крутым спецом и с подачи мелкого считаете что проблема в мастерскаде
PS смотрим документацию 78301 У Вас параметр SYSTEM_REAL_PARAM, у Вас StatusCode равен BadWaitingForInitialData и галка Разрешить запись недостоверных значений снята
DonGarik
29.08.2024, 09:40
Кто что просил я не понимаю . И еще раз говорю в Simp Light всё отлично работает
Если думаете что я не ставил галочку "Разрешить запись недостоверных значений" то вы ошибаетесь, - уже пробовал. И касательно " PS смотрим документацию Нажмите на изображение для увеличения" - один в один вы написали как в техподдержке MasterSCADA, вы там работаете, - если да то печально. Я уже эти товарищам отсылал видео где статус меняется на Good, и эти товарищи загасились
Кто что просил я не понимаю . И еще раз говорю в 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 и проблема ушла. Проверено на двух компьютерах
упс! :) бывает же и на старуху проруха...
DonGarik
29.08.2024, 16:09
Всем спасибо, коллеги, за совет! Решилась моя проблема ( по совету форумчанина из соседней ветки, где я организовал тему с этой проблемой)
Проблема оказалась в сборке:
Изначально была установлена версия 1.3.5. 19254
Поставил версию 1.3.4. 17698 и проблема ушла. Проверено на двух компьютерах
Коллеги!!!! Также получил ответ от техподдержки, их вариант решения является рабочим, я проверил.
78319
Цитата от техподдержки: Если установлен,то снимите, пожалуйста, флаг с Использовать LREAL вместо REAL.
Однако стоит отметить , что в старой версии MasterSCADA подобного флага нет
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
Можно для каждого клиента сделать отдельный стартовый экран только, наверное.А так, если окно одно, то и отображаться будет у всех одинаково.
Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)
egor3150
04.09.2024, 09:58
Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)
А можно про экземпляры для пользователей поподробнее? Пользователи и права есть. Но данная ситуация не касается прав, так как мы просто смотрим "общее" меню.
Ну вот про сбер прям жизненно, и хочется, чтобы как-то работало правильно.
egor3150 ну по идее это регулировать web сервер должен, и даже если с двух разных ПК зайдут два одинаковых пользователя, выбор какого-то меню одним пользователем не должны приводить к показу этого меню у другого пользователя. То есть кроме имя/пароль еще должно фигурировать id пользователя (правильнее сессии), которое у каждой сессии должно быть своим и web сервер должен разруливать это самостоятельно, а не по прихоти настроек в scada (по сути если что-то в ms4d и можно сделать, то получается костылями)
меня такой факт еще больше отвращает от MS4D, получается там кривой WEB сервер.
Добрый день, коллеги!
Вопрос по раздельной работе клиентов:
Есть экран (стартовая страница) на котором находится меню. Меню не кликабельное, при наведении курсора на заголовок - открывается окно с пунктами, относящимися к этому заголовку (события получение фокуса, потеря фокуса). Навели на "Объекты" - появилось под ним окошко уже с кнопками (линия 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
Как нас учили, первый экран должна быть авторизация, ввод имени пользователя и пароля и уже далее в зависимости от статуса,
открываются главный экран, тех процесс или что там нужно.
2. не уверен, но кажется похожая тема всплывала (не именно с меню но что-то похожее). Суть, в захват мыши как-то надо добавлять кто ее захватил, какой-то параметр.
kondor3000 - учили костылям? :). Ну пример, открыл на работе клиента и не вышел. Потом из дома или еще откуда опять зашел под собой, что, на работе на мониторе будут выполняться те же действия? Это че за такой Web сервер, который так делает?
kondor3000
04.09.2024, 14:41
. Ну пример, открыл на работе клиента и не вышел. Потом из дома или еще откуда опять зашел под собой, что, на работе на мониторе будут выполняться те же действия? Это че за такой Web сервер, который так делает?
Для этого делается автовыход через определённое время, при неактивности. В скаде МС4D это штатный подход. У вас есть другой вариант?
kondor3000 правильный Web сервер, а не черте что в данном случае. :)
пока я не прочитал выше написанное, преспокойно пользуясь RapidScada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится :)
Вообще все действия должны выполняться на клиенте, который подключился к Web серверу, а не на Сервере с ретрансляцией картинки клиенту.
На сервере должен выполняться только бекэнд, а отрисовка у клиента.
kondor3000
04.09.2024, 15:02
пока я не прочитал выше написанное, преспокойно пользуясь Scada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится
Это вовсе не значит, что у нас ЭТО используют, я вообще противник МC4D, есть скады в сто раз проще, удобнее и дешевле.
egor3150
04.09.2024, 15:18
kondor3000 правильный Web сервер, а не черте что в данном случае. :)
пока я не прочитал выше написанное, преспокойно пользуясь RapidScada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится :)
Вообще все действия должны выполняться на клиенте, который подключился к Web серверу, а не на Сервере с ретрансляцией картинки клиенту.
На сервере должен выполняться только бекэнд, а отрисовка у клиента.
Часть про бэкенд это капец как в точку. Я не понимаю, неужели никто кроме меня не сталкивался с такой проблемой? Неужели разработчики мастерскады действительно сделали обычную HMI панель для ПК за дорого? Как же тогда люди вообще используют такую систему "диспетчеризации"?
У меня ощущение, что я просто где-то не поставил галочку типа "много клиентов", от чего и транслируется везде "один клиент" (бэк). Как теперь воплощать то, что мастерскада, по моему мнению, на данный момент, просто не умеет?
Хорошо, я нарисую мыло, оно будет выводить данные по работе оборудования, собирать статистику, но это будет совершенно не юзер френдли получается, и смысл тогда, что я долго и упорно выпрашивал покупку расширения лицензии на клиентские места, если это получается *типа неактуально*?:D
Решение точно должно быть. Покупать другую скаду не будут, хотя уже хочется)))
Часть про бэкенд это капец как в точку. Я не понимаю, неужели никто кроме меня не сталкивался с такой проблемой? Неужели разработчики мастерскады действительно сделали обычную HMI панель для ПК за дорого? Как же тогда люди вообще используют такую систему "диспетчеризации"?
У меня ощущение, что я просто где-то не поставил галочку типа "много клиентов", от чего и транслируется везде "один клиент" (бэк). Как теперь воплощать то, что мастерскада, по моему мнению, на данный момент, просто не умеет?
Хорошо, я нарисую мыло, оно будет выводить данные по работе оборудования, собирать статистику, но это будет совершенно не юзер френдли получается, и смысл тогда, что я долго и упорно выпрашивал покупку расширения лицензии на клиентские места, если это получается *типа неактуально*?:D
Решение точно должно быть. Покупать другую скаду не будут, хотя уже хочется)))
Cо сложными вопросами лучше сразу идти на https://support.masterscada.ru , здесь техподдержки 4D нет. Там небыстро, но ответят по делу
Cо сложными вопросами
Чего только не узнаешь про "сложные вопросы", читая треды про MS4D :D
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.
Нужно делать через параметры окна. Предположу, что у вас три окна: главный экран, меню иконок и пункты меню.
В каждом окне нужно добавить параметр окна с типом "bool", например:
- главный экран - "showHideMenu"
- меню иконок - "showMenu"
- пункты меню - "hideMenu"
Добавить для:
- меню иконок - "Захват мыши" -> Установить параметр (Источник: True; Приемник: showMenu)
- пункты меню - "Покидание мыши" -> Установить параметр (Источник: False; Приемник: hideMenu)
На главном экране связать параметры "showMenu" и "hideMenu" с "showHideMenu" исходящей связью. Для этого выделите окно: Свойства -> Параметры.
Параметр "showHideMenu" связать с видимостью окна "пункты меню" (Видимость по умолчанию: False).
Нужно делать через параметры окна. Предположу, что у вас три окна: главный экран, меню иконок и пункты меню.
В каждом окне нужно добавить параметр окна с типом "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) вставить имя текущего пользователя, который выгружает отчет?
Asgardian а разделителем между числами запятая?
Предположу, что открывая csv самим exel срабатывает культурное наследие дробного разделителя для России , (запятая). А при сохранении double и float записывает программа как они представлены в ней с . точка
Можете показать реализацию?
1. 78449 открыли главный экран.
2. 78448 навели курсор - открылось меню.
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.
Ну самое огорчающее в этой ситуации - что не могу сделать так, чтобы программа выполнялась на клиентах по отдельности. Но и понимания, как это вообще работает (например, как сайты в интернете) нет. То есть как один сайт с одним экземпляром кода работает уникально у тысяч пользователей. Думаю, что в браузер там подгружается сам код программы, который отрисовывает элементы, взаимодействие и т.д. А в мастерскаде такое реализовано? Раз уж расширение лицензии на дополнительного клиента выходит в копеечку, думаю - что должно быть.
Посмотрите, видео
Так надо(касательно окон)?
https://dropmefiles.com/btw6D
Можете показать реализацию?
Я отработал модуль отчетов в 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 пункт использовать системный разделитель, через него проблема решается вроде
25.6 потому что в Русской локали это число должно выглядеть как 25,6
И тут либо ковырять настройки exel, либо локаль, либо при записи менять для Русской локали.
VladGC то есть чтобы так работало недостаточно мнемосхеме дать доступ нескольким пользователям, но еще и поколдовать с настройками ?
Предположу что именно так и надо.
1) При экспорте графика через тренды, в файле csv разделителями дробных чисел служит точка, из-за этого число воспринимается как дата. Кто нибудь сталкивался с этим?
2) Как в отчете (через ReportFB) вставить имя текущего пользователя, который выгружает отчет?
1. CSV в excel нужно импортировать в utf (см скрин) что для трендов, что для журнала событий
2. Тот кто выгружает отчет или строит его ?
Отчет в задаче экрана не строится, он работает для всех одновременно и строится на сервере.
Возможно конкретно эта функция - геморройная для реализации
VladGC то есть чтобы так работало недостаточно мнемосхеме дать доступ нескольким пользователям, но еще и поколдовать с настройками ?
Предположу что именно так и надо.
Нет, что то отдельно не настраивается
Добавил кнопку на главный экран, на кнопку повесил событие - захват мыши > открыть всплывающее окно
Во всплывающем окне добавил кнопку, событие клик - открыть окно > связал нужное окно , связал фрейм где открывать
Тут пользователи в принципе не добавлены, просто у каждого клиента есть свой sessionId
Если пользователи/группы все таки есть, то можно заблокировать те или иные кнопки ( но не скрывать, хотя мне было бы интересно скрывать админские или сервисные кнопки если юзер не в группе админов , это недостаток конечно)
Пока-что не проверял, но ощущение, что это никак не решает проблему с отображением на разных клиентах. Вы описали тот же процесс, что уже реализован, только немного изменив логику. В Вашем случае - если пункты меню расположены горизонтально, то после наведения курсора и появления подпунктов, если мы проведем мышью вбок - на соседний пункт меню, а не на открывшееся уже подменю, то оно не закроется до тех пор, пока не вернем курсор и не уберем его снова, только на этот раз, в область, где нет пунктов меню, чтобы опять что-то соседнее не открылось.
Накидал пример 78475 с тремя уровнями меню. Вся логика в программе на ST, которая назначена в задачу экрана. Код не оптимизирован, цель просто показать один из способов реализации. Для меню с малым количеством пунктов и подменю такой способ подойдет, для более сложного можно написать свой компонент.
Добавил кнопку на главный экран, на кнопку повесил событие - захват мыши > открыть всплывающее окно
Во всплывающем окне добавил кнопку, событие клик - открыть окно > связал нужное окно , связал фрейм где открывать
и все эти действия в 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
да, с пунктами меню понял из примера, который прислали выше, как реализовать, а вот с содержимым экрана поинтереснее получается.
Добрый день!
Как открыть одно из всплывающих окон без строки заголовка? У шаблона экрана есть свойство "Высота заголовка всплывающих окон", в описании "Эта настройка может быть переопределена на уровне конкретного элемента в его собственных настройках", каким образом переопределять это свойство для разных окон?
да, с пунктами меню понял из примера, который прислали выше, как реализовать, а вот с содержимым экрана поинтереснее получается.
Приложу еще пример на всякий случай
https://dropmefiles.com/i5Zc4
Добрый день!
Как открыть одно из всплывающих окон без строки заголовка? У шаблона экрана есть свойство "Высота заголовка всплывающих окон", в описании "Эта настройка может быть переопределена на уровне конкретного элемента в его собственных настройках", каким образом переопределять это свойство для разных окон?
Судя по всему, для отдельных окон, простых путей не будет или нет. Лучше написать предложение в ТП, мб добавят когда нибудь
и все эти действия в 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 серверу, где лежат дистрибутивы к разным ОС, а также инструкции по установке.
kyzzechka MasterOPC ModBus на linux вы не поставите, он Windows. Вам придется пользоваться драйвером Modbus в комплекте с MS4D
egor3150
06.09.2024, 11:56
По теме раздельной работы пользователей хочу подвести итог, возможно кому-то будет полезно:
Свойство "Место исполнения" - это как раз та "галочка", о которой я говорил (включить выполнение на клиентах по отдельности).
ФБ GetCurrentUsername может вызываться не только в дереве объектов (иных примеров я не находил), но и в программах.
Программа, место исполнения которой указано "в основной задаче узла" и которая вызывается кнопкой с экрана или любыми другими действиями, будет как раз работать "одна на всех" - то есть изменения будут отображаться для всех клиентов.
Если мы ставим место исполнения "в задаче экрана", то программа будет вызываться только у клиента, который её вызвал (нажатием кнопки и тд), и оказывается, что вставлять её в объект, где этот экран находится - необязательно.
Такая программа может исполняться периодически, что как раз помогает реализовать мою тему с меню, а также с корректным получением имени пользователя при квитировании записей простоев.
Пример:
Есть экран с иконками меню. Создаем программу ST, место исполнения "в задаче экрана", входы: "наведениеИконка", "наведениеМеню", выход: "видимостьМеню". В настройках иконки мы указываем событие "Захват мыши", там добавляем действие "Установить параметр". Источник - TRUE, а приемником будет входная переменная программы "наведениеИконка". Далее добавляем событие "Покидание мыши" - "Установить параметр". Источник FALSE, приемник "наведениеИконка". Тоже самое проделываем с контейнером окна, в который вставлено окно меню, только переменная будет "наведениеМеню".
Видимости контейнера назначается выходная переменная "видимостьМеню", она равна "наведениеИконка" ИЛИ "наведениеМеню". Изначально думал, что будет пропадать при переводе с иконок на контейнер, но если на схеме их поставить вплотную - то все работает корректно.
Теперь меню работает как и должно - на разных клиентах то отображение, которое им нужно, а не общее на всех.
Проблема: при клике на один из пунктов меню, который открывает другой экран и возвращению обратно в главное меню, оказывается, что меню не закрывается, то есть "Покидание мыши" не работает. Чтобы пофиксить - нужно добавить к обоим элементам (иконки, контейнер меню) событие "Потеря фокуса" - источник FALSE, приемник - та переменная, которая отвечает за видимость. Всё отлично работает.
По пользователям - в этой же программе добавил вызов ФБ GetCurrentUsername, условие - ЕСЛИ переменная ТО вызов, добавил кнопку на экране, и назначил на клик мыши "Выдать импульс", приемник - переменная для вызова.
На экран добавил текст, туда передаю значение, полученное из ФБ GetCurrentUsername при вызове.
Открываем скаду на двух экранах, логиниться можно под одним пользователем, можно под разными.
Жмем кнопку на одном экране - на нём же поялвяется имя пользователя, а на втором экране пусто.
Жмем кнопку на втором - также появляется имя пользователя, равное тому, с которого была авторизация, а на первом экране значение не меняется.
В документации вызов GetCurrentUsername делается через события, а результат уже передается куда нужно, но у меня были какие то проблемы с ним. Возможно теперь, понимая подход, всё получится сделать и через события.
kyzzechka MasterOPC ModBus на linux вы не поставите, он Windows.
На самом деле, с недавних пор разработчики добавили поддержку linux-систем, что заявлено в т.ч. на сайте:
https://masteropc.ru/#!/tab/272549184-5
Сами не пробовали, и не факт что работает без косяков, но есть такая опция.
Larrrik если это OPC DA то его работа предполагается только в Wine. Даже так, что и Wine может не помочь...
из справки
Ограничения Linux версии по сравнению с Windows версией:
•Отсутствует OPC DA и OPC HDA - данные технологии базируются на DCOM, которая не является кроссплатформенной. Аналогично не поддерживаются плагины OPC DA и OPC HDA клиента.
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
Добрые люди, подскажите пожалуйста, как перевести отображение по нашему формату?
Все настройки перерыл, в системе время отображается нормально, региональные настройки выставлены
kyzzechka аналогичного порта на Linux не будет. Там будет что-то вроде /dev/ttyUSB0 или /dev/ttyS0 и так далее, в зависимости от устройства.
Если порты на Linux не USB а встроенные (например какой-то чип впаян), то они меняться не будут. Если же порты USB (вы подключаете например преобразователи USB-RS485) то номер ttyUSB(Х) будет меняться в зависимости какой первым воткнете, если преобразователей больше одного.
У вас какой случай? правилами udev можно зафиксировать преобразователь на нужном имени порта, а каким он там по USB(X) окажется фиолетово.
Если что, описывал у себя в блокноте как и что.
https://krdburan.blogspot.com/2020/02/udev-com.html
78676
Добрые люди, подскажите пожалуйста, как перевести отображение по нашему формату?
Все настройки перерыл, в системе время отображается нормально, региональные настройки выставлены
Если речь про отчеты, попробуйте в настройках самого отчета выставить культуру RU
Asgardian
19.09.2024, 15:28
Если речь про отчеты, попробуйте в настройках самого отчета выставить культуру RU
У меня нет такой надстройки
В справочной информации тоже такого пункта не нашел
Добрый день. Столкнулся с тем, что всплывающие окна уходят на задний план в полноэкранном режиме. В предварительном просмотре мнемосхем эта неисправность также присутствует. При этом в оконном режиме все хорошо.
Версия: 1.2.12.21403(MPLCD_1_2_20210223.1)
78787
У меня нет такой надстройки
В справочной информации тоже такого пункта не нашел
Данный пункт должен быть во всех редакторах.
https://www.stimulsoft.ru/blog/articles/globalization-in-reports
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..ругается, говорит номер давай.
Роман_М какие у вас порты? USB-RS485? или встроенные?
dmesg | grep tty что показывает?
если порты USB-RS485 можно ввести dmesg | grep usb
Роман_М какие у вас порты? USB-RS485? или встроенные?
dmesg | grep tty что показывает?
если порты USB-RS485 можно ввести dmesg | grep usb
Есть преобразователь USB/RS485, /dev/USB0. С ним все хорошо, но только когда я руками в него пишу что-то. Как РТ указать чтобы она этот порт использовала?
Есть преобразователь USB/RS485, /dev/USB0. С ним все хорошо, но только когда я руками в него пишу что-то. Как РТ указать чтобы она этот порт использовала?
мои устройства
78872
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot