PDA

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



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

RamesIV
08.11.2021, 11:10
У меня регистр Modbus - Real 4 байта. Ему точности для LReal не хватает. Таким образом хвост физически будет ( если его не округлить в скаде),как например, предложил VladGC.
А InPar и OutPar у меня LReal.

RamesIV
08.11.2021, 11:22
Спасибо!

Шаг инкремента я в общем-то не использовал... Можно попробовать округлить переменную на входе инкремента, тогда отображаться будет красиво но пока избыточных преобразований делать не очень хочу.
Кстати при циклическом чтении регистра такое преобразование будет производиться постоянно, что наверное может отразиться на производительности при большом количестве переменных...
А в чем криминал использования текстового ввода для ввода числовых значений (при при попытке ввода некорректного значения выдается convert warning)?

VladGC
08.11.2021, 11:54
Спасибо!

Шаг инкремента я в общем-то не использовал... Можно попробовать округлить переменную на входе инкремента, тогда отображаться будет красиво но пока избыточных преобразований делать не очень хочу.
Кстати при циклическом чтении регистра такое преобразование будет производиться постоянно, что наверное может отразиться на производительности при большом количестве переменных...
А в чем криминал использования текстового ввода для ввода числовых значений (при при попытке ввода некорректного значения выдается convert warning)?

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

Как минимум в инкременте есть ограничение на ввод ( мин макс и шаг инкремента)

RamesIV
10.11.2021, 16:18
Добрый день!

Вопрос по групповой привязке регистров.Есть объект с определенным набором параметров, которые должны быть привязаны к регистрам Modbus TCP. Подскажите, пожалуйста, существует ли возможность групповой привязки регистров (каналов) к объекту? Логично бы выглядела привязка группы каналов к объекту...

VladGC
10.11.2021, 16:33
Добрый день!

Вопрос по групповой привязке регистров.Есть объект с определенным набором параметров, которые должны быть привязаны к регистрам Modbus TCP. Подскажите, пожалуйста, существует ли возможность групповой привязки регистров (каналов) к объекту? Логично бы выглядела привязка группы каналов к объекту...
В программе упакуйте в массив, в массив структур или что то похожее

Из этой программы передайте в глобальную переменную того же типа, далее обращайтесь к этой переменной из любого места
На скриншоте нет связей на запись регистров, но посыл думаю понятен
57879

RamesIV
10.11.2021, 18:23
Спасибо за ответ!

Насколько я вижу таким способом мы уходим от необходимости привязки каналов Modbus к разным параметрам разных объектов. Привязываем все каналы к входам программы внутри модуля МВ 210, что кардинально упрощает работу с привязками, особенно при наличии большого количества каналов - я это правильно понял?

При этом привязка каналов AI X->AI_X осуществляется мышкой вручную? У моего модуля Modbus TCP 188 каналов (спасибо, что сделали импорт из CSV), соответственно каждый нужно будет привязать вручную?

Запись в обратном порядке...

VladGC
11.11.2021, 10:40
Спасибо за ответ!

Насколько я вижу таким способом мы уходим от необходимости привязки каналов Modbus к разным параметрам разных объектов. Привязываем все каналы к входам программы внутри модуля МВ 210, что кардинально упрощает работу с привязками, особенно при наличии большого количества каналов - я это правильно понял?

При этом привязка каналов AI X->AI_X осуществляется мышкой вручную? У моего модуля Modbus TCP 188 каналов (спасибо, что сделали импорт из CSV), соответственно каждый нужно будет привязать вручную?

Запись в обратном порядке...

Да, это упростит привязки когда все каналы запакованы

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

А самый быстрый вариант в вашем случае использовать таблицу:

В программе создаете нужную переменную, из протокола перетаскиваете связь.
Дублируете переменную в программе на нужное количество, редактор связей подтверждаем без изменений. Тем самым у вас из одной переменной протокола будет связь со всеми дубликатами.
Открываете таблицу, настраиваете запрос с нужными фильтрами( как на скриншоте)
Снизу таблицы появятся список всех переменных которые соответствуют фильтру
Добавляете столбец ,который покажет отношение прием или передачу значения
Экспортируете файл
Редактируете в текстовом редакторе имена связей, у меня vscode, там есть мультикурсор и автоинкремент
Затем импортируете сохраненный файл
и все связи будут настроены.

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





57883
Большие картинки не прикрепляются, скриншоты смотреть в обратном порядке)
https://ibb.co/ygYBQP3
https://ibb.co/hsDjLYx
https://ibb.co/6yNL8NX
https://ibb.co/fXCNGWF
https://ibb.co/82Hmtjy
https://ibb.co/527qd1N
https://ibb.co/KXcQ1G5
https://ibb.co/9hjs4H9

RamesIV
13.11.2021, 15:17
Открываете таблицу,
Подскажите, пожалуйста, а где эта волшебная таблица?

VladGC
13.11.2021, 20:55
Подскажите, пожалуйста, а где эта волшебная таблица?

Сама вкладка таблица вверху, где отладка и проект.
Как таблицу откроете, справа будут доступны запросы

RamesIV
14.11.2021, 14:39
Забавно.... В моей версии такой вкладки нет.
Версия: 1.2.11.19876

57923

slord
14.11.2021, 17:15
Забавно.... В моей версии такой вкладки нет.
Версия: 1.2.11.19876

57923

https://masterscada.ru/masterscada4d

RamesIV
14.11.2021, 17:45
https://masterscada.ru/masterscada4d
Типа обновиться?

У заказчика старая версия и обновляться он не намерен. В связи фактом с этим вопрос будет ли проект разработанный в последней версии стабильно работать на старой?

slord
14.11.2021, 20:09
У заказчика старая версия и обновляться он не намерен. В связи фактом с этим вопрос будет ли проект разработанный в последней версии стабильно работать на старой?

Это вряд ли. Нужно обращаться разработчикам.

Minarion
17.11.2021, 12:01
Здравствуйте!
Можно ли передать параметры из клиента (диалог ввод текста) в параметры настройки протокола (адрес, порт, пароль и т.д.)?

SCADAMaster4D
17.11.2021, 12:23
Добрый день.
Нет, эти параметры динамизировать не получится, только задавать в редакторе.

Minarion
17.11.2021, 16:01
Добрый день.
Нет, эти параметры динамизировать не получится, только задавать в редакторе.

А в запросе postresSQL можно сам SQL запрос передавать параметром из программы?

Stab
18.11.2021, 07:53
Здравствуйте!

Есть ли у компонента "Инкремент" возможность формата значений при отображении.
К примеру, если изначальное значение параметра связанного с ним = 50.3 (тип REAL) , то при открытии окна с данным компонентом в поле отображается 50.2999999...

Возможно вопрос к свойствам самого параметра, в общем кто знает - прошу помочь с советом

SCADAMaster4D
18.11.2021, 10:16
А в запросе postresSQL можно сам SQL запрос передавать параметром из программы?

Нет. Для этого лучше использовать ФБ SQLRеquest.

SCADAMaster4D
18.11.2021, 10:17
Здравствуйте!

Есть ли у компонента "Инкремент" возможность формата значений при отображении.
К примеру, если изначальное значение параметра связанного с ним = 50.3 (тип REAL) , то при открытии окна с данным компонентом в поле отображается 50.2999999...

Возможно вопрос к свойствам самого параметра, в общем кто знает - прошу помочь с советом

Скорей всего тут потеря точности из-за REAL, используйте LREAL.

Minarion
19.11.2021, 11:58
Нет. Для этого лучше использовать ФБ SQLRеquest.

Здравствуйте!
Подскажите пожалуйста по этому вопросу:
Добавил в протокол->запрос->программу SqlRequesrWithResult, на вход command через глобальный параметр подал SQL запрос. Получаю ошибку - Type of Result is NOT an Array.
Справку прочитал, та похоже надо добавить входы/выходы, но не разобрался как.

SCADAMaster4D
19.11.2021, 12:43
Здравствуйте!
Подскажите пожалуйста по этому вопросу:
Добавил в протокол->запрос->программу SqlRequesrWithResult, на вход command через глобальный параметр подал SQL запрос. Получаю ошибку - Type of Result is NOT an Array.
Справку прочитал, та похоже надо добавить входы/выходы, но не разобрался как.

Нужно в библиотеке сперва создать экземпляр этого ФБ.
За тем в этом экземпляре добавляете параметры и меняете типы входов выходов.
Далее уже этот экземпляр используете в программе.

Stab
19.11.2021, 13:30
Скорей всего тут потеря точности из-за REAL, используйте LREAL.

Спасибо, помогло, еще вопрос в тему - как сократить кол-во цифр после запятой при преобразовании LREAL_TO_STRING? Есть ли возможность указать ограничение количества цифр после запятой?

Minarion
19.11.2021, 13:48
Нужно в библиотеке сперва создать экземпляр этого ФБ.
За тем в этом экземпляре добавляете параметры и меняете типы входов выходов.
Далее уже этот экземпляр используете в программе.

Что-то видимо всё равно не понимаю. В библиотеке создал данный ФБ. Выход Result поменял на массив структур который в SQL запросе. Всё равно возвращает Not an ARRAY.
Значит где-то я затупил. Подскажите где?)

Валерий8903
21.11.2021, 02:22
Добрый день!
Начал изучать masrer scada 4D
Возник вопрос можно ли запущеную на исполнение визуализацию в вбраузере на пк, увидеть в браузере на планшете ipad находящейся в этой же сети? (На другом компьтере в этой же сети я как понял, точно можно просмотреть и поуправлять)
Спасибо.

melky
21.11.2021, 10:15
Валерий8903 лицензируется по количеству клиентов, смотрите в эту сторону.

aks
21.11.2021, 19:17
Добрый день.
Какое "железо" нужно выбрать для ПК, на котором отлаживается проект MS4D, чтобы среда разработки перестала регулярно "падать в обмороки" (тормозить)?

Не стесняйтесь, пишите как есть. Сколько нужно ОЗУ? 64 Гб? 128?
Процессор?
Быстродействие дисков?

b_aleks
22.11.2021, 08:15
Добрый день.
Какое "железо" нужно выбрать для ПК, на котором отлаживается проект MS4D, чтобы среда разработки перестала регулярно "падать в обмороки" (тормозить)?

Не стесняйтесь, пишите как есть. Сколько нужно ОЗУ? 64 Гб? 128?
Процессор?
Быстродействие дисков?

Дело тут даже не в железе. Пока они не займутся оптимизацией своей "поделки", смысла от увеличения ресурсов ПК не будет. MS4D их тупо не использует. Я как-то прикладывал скрин загрузки ЦП при выполнении тяжелых операций (https://owen.ru/forum/showthread.php?t=35415&p=365675&viewfull=1#post365675)
57998

А вот, например, как те же ресурсы использует WinRAR
57999

Думаю разница видна. И как мне кажется, они даже не планируют что-то менять, т.к. от версии к версии занимаются добавлением кучи бесполезных функций и модулей, которыми никто и не пользуется и от которых редактор тормозит все сильнее и сильнее. О каких-то улучшениях или исправлении ошибок они последнее время не задумываются.

VladGC
22.11.2021, 11:17
Дело тут даже не в железе. Пока они не займутся оптимизацией своей "поделки", смысла от увеличения ресурсов ПК не будет. MS4D их тупо не использует. Я как-то прикладывал скрин загрузки ЦП при выполнении тяжелых операций (https://owen.ru/forum/showthread.php?t=35415&p=365675&viewfull=1#post365675)
57998

А вот, например, как те же ресурсы использует WinRAR
57999

Думаю разница видна. И как мне кажется, они даже не планируют что-то менять, т.к. от версии к версии занимаются добавлением кучи бесполезных функций и модулей, которыми никто и не пользуется и от которых редактор тормозит все сильнее и сильнее. О каких-то улучшениях или исправлении ошибок они последнее время не задумываются.


Добрый день.
Какое "железо" нужно выбрать для ПК, на котором отлаживается проект MS4D, чтобы среда разработки перестала регулярно "падать в обмороки" (тормозить)?

Не стесняйтесь, пишите как есть. Сколько нужно ОЗУ? 64 Гб? 128?
Процессор?
Быстродействие дисков?


Для себя нашел более менее способ ускорить работу:

1) Закрытие вкладок окон и программ которые не использую

2) Разбивать объекты, что бы в них не было отображения одной партянкой всех переменных



58001

b_aleks
22.11.2021, 12:57
Для себя нашел более менее способ ускорить работу:

1) Закрытие вкладок окон и программ которые не использую

2) Разбивать объекты, что бы в них не было отображения одной партянкой всех переменных



58001

Даже при грамотной структуре объекта все равно наблюдаются подтормаживания при раскрытии папок и навигации по списку переменных. Особенно это заметно, если у переменных много связей.

Юрий Горелый2
23.11.2021, 09:38
Добрый день!
Начал изучать masrer scada 4D
Возник вопрос можно ли запущеную на исполнение визуализацию в вбраузере на пк, увидеть в браузере на планшете ipad находящейся в этой же сети? (На другом компьтере в этой же сети я как понял, точно можно просмотреть и поуправлять)
Спасибо.

День добрый, Валерий.
Да, можно. Если антивирус и брендмауэр не заблокирует, а разрешит.
ну и раз только стали изучать то ловите ссылку на плейлист) https://www.youtube.com/watch?v=kHwXcpCec30&list=PLPDzECHvhfVKl1tnQs5w0sxZyCbw7pUfC

SCADAMaster4D
24.11.2021, 12:49
Что-то видимо всё равно не понимаю. В библиотеке создал данный ФБ. Выход Result поменял на массив структур который в SQL запросе. Всё равно возвращает Not an ARRAY.
Значит где-то я затупил. Подскажите где?)

Уже в объекте использовали именно этот новый экземпляр ФБ?

SCADAMaster4D
24.11.2021, 12:54
Дело тут даже не в железе. Пока они не займутся оптимизацией своей "поделки", смысла от увеличения ресурсов ПК не будет. MS4D их тупо не использует. Я как-то прикладывал скрин загрузки ЦП при выполнении тяжелых операций (https://owen.ru/forum/showthread.php?t=35415&p=365675&viewfull=1#post365675)
57998

А вот, например, как те же ресурсы использует WinRAR
57999

Думаю разница видна. И как мне кажется, они даже не планируют что-то менять, т.к. от версии к версии занимаются добавлением кучи бесполезных функций и модулей, которыми никто и не пользуется и от которых редактор тормозит все сильнее и сильнее. О каких-то улучшениях или исправлении ошибок они последнее время не задумываются.

Ожидайте версии 1.3 в ней будет много изменений в том числе оптимизация редактора.

b_aleks
24.11.2021, 13:31
Ожидайте версии 1.3 в ней будет много изменений в том числе оптимизация редактора.

Да, на вебинаре сегодня услышал уже про версию 1.3. Буду надеяться, что станет реально шустрее.

Minarion
29.11.2021, 15:16
Уже в объекте использовали именно этот новый экземпляр ФБ?

Да. Можете скинуть пример проекта в котором это реализовано?

Валерий8903
16.12.2021, 12:49
Добрый, День!
Может кто знает - возможно ли изменять свойства окна браузера в котором открыто окно с мнемосхемой MS4? Если браузер открыт на пк или в телефоне IOS? Другими словами, ниже скриншот окна браузера в котором открыта программа MS4 и сверху и снизу видны кнопки управления браузером, можно ли их скрыть?
58387

Валерий8903
16.12.2021, 12:53
Вопрос точнее что бы программа MS4 при открытии в браузере изменяла свойства этого браузера)

Скороспелов Андрей
16.12.2021, 16:45
Попробуйте сделать кнопку открытия в полноэкранном режиме

Валерий8903
16.12.2021, 17:38
Нашлось решение по крайне мере нравится больше других! Странно что ни где не было написанно про такое сочетание или так ни кто не делает.
Хотелось максимально простом и бесплатном способе удаленного управления через интернет умным домом через MS4 (Owen Cloud как вариант но он еще сыроват как мне показалось и стоит денег - для себя как то не очень), не имея выделенного ip адреса и отсутствия в системе постоянно включенного ПК.
Управление системой умного дома планируется через мобильные устройства Андроид или iPfone и котельной ipad и хотелось что бы на телефоне планшете стояло это в виде приложения.
Есть контроллер плк 110 c мастер скадой встроенной и подключенный по сети к wifi роутер keenetic, роутер имеет доступ в интернет, есть iPfone подключенный к интернет.
keenetic имеет функцию предоставления удаленного доступа из интернета к веб страницам устройств которым к нему подключены через собственный сервис KeenDNS (настраивается в несколько кликов не нужен пк с сервером или еще каких софтовых решений, так же в keenetic у меня с встроенным 3G модем реализовано резервирование каналов интернета провод/3G для надежности).
Теперь с интернета по сформированному специальному доменному имени через браузер можно заходить на плк 110 и просматривать визуализацию и.т.д
Далее что бы на ipfone эта ссылка открывалась и смотрелась как приложение делаем из ссылки приложение с помошью PWA приложения на ipfone (такое же есть и для android все делается в несколько кликов), в итоге на экране есть иконка которую можно заменить на любой рисунок с любым именем, при запуске открывается окно мастер скада без прокруток, адресных строк и кнопок управления страницей. Что нравится в этой цепочки нет ПК, все выполнятся на аппаратном уровне контроллер - роутер для интернета - панель управления.
Остался вопрос с пуш уведомлением (пока только знаю вариант отправки из MS4 писмо на почту - например сработала система протечки, на телефоне появилось пуш уведомление с почты, заходишь в программу MS4 и смотришь какой конкретно из датчиков сработал. Ниже скриншот как выглядит визуализация на ipfone при запуске приложения MS4 сделанный с помощью PWA.
58389

Валерий8903
16.12.2021, 17:49
Может еще есть варианты удаленного управления плк 110 MS4 с мобильных учстройств без использования ПК (кроме дополнительных приложений iridium и подобных)?
Или может кто нибудь знает как организовать в цепочки выше оповещение когда страница MS4 закрыта ?

OlegGEORG
05.01.2022, 11:36
Добрый день! Осталась ли поддержка бесплатных версий на 32 тэга? Можно ли скачать последнюю бесплатную рабочую версию на 32 тэга на Windows x86 или 64?

VladGC
06.01.2022, 12:37
Добрый день! Осталась ли поддержка бесплатных версий на 32 тэга? Можно ли скачать последнюю бесплатную рабочую версию на 32 тэга на Windows x86 или 64?
Вот тут можно скачать все доступные версии
https://masterscada.ru/

OlegGEORG
08.01.2022, 14:19
Вот тут можно скачать все доступные версии
https://masterscada.ru/

Две ссылки на скачивание не верные. Проверьте, пожалуйста.

VladGC
10.01.2022, 07:47
Две ссылки на скачивание не верные. Проверьте, пожалуйста.
По идее все работает, ссылки рабочие, там надо заполнить имя и почту
Можно еще так
https://masterscada.ru/download4

OlegGEORG
13.02.2022, 15:00
Добрый день!
Как открывать всплывающее окно от параметра? На-пример, параметр установился в TRUE - всплывающее окно открылось.
Как открывать всплывающее окно мышью я разобрался.

b_aleks
14.02.2022, 08:21
Добрый день!
Как открывать всплывающее окно от параметра? На-пример, параметр установился в TRUE - всплывающее окно открылось.
Как открывать всплывающее окно мышью я разобрался.

Использовать триггеры окна.

Serjay
16.02.2022, 18:03
Здравствуйте!
Вопрос по CASE в MasterSCADE.

IF CMD THEN (*Если появилась команда на запуск и*)
IF MONITOR AND NOT I_KM THEN (*мониторится по сигналу и нет сигнала, что он в работе,*)
SSW := ST_RUNNING; (*переводим в состояние "Запускается" *)
ELSE
SSW := ST_RUNNED; (*иначе переводим в состояние "Запущен"*)
END_IF;
ELSIF NOT MONITOR OR (NOT I_KM) THEN (*Если не мониторится по сигналу или нет сигнала, что он в работе*)
SSW := ST_STOPPED; (*переводим в состояние "Остановлен"*)
ELSIF COUNT <= 0 THEN (*Если мотор не остановился за отведенное для этого время*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка останова)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

8: (*Если в состоянии "Запущен"*)

IF CMD AND (NOT I_KM) AND MONITOR THEN (*Если состояние мотора мониторится и нет сигнала, что он в работе, с командой на запуск*)
SSW := ST_UNKNOWN; (*переводим мотор в неопределенное состояние (самопроизвольное выключение)*)
ELSIF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR THEN (*если мониторится по сигналу*)
SSW := ST_STOPPING; (*переводим мотор в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим мотор в состояние "Остановлен"*)
END_IF;
END_IF;

16: (*Если в состоянии "Запускается"*)

IF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR AND I_KM THEN (*мониторится по сигналу и есть сигнал, что он в работе,*)
SSW := ST_STOPPING; (*переводим в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим в состояние "Остановлен"*)
END_IF;
ELSIF NOT MONITOR OR I_KM THEN (*Если не мониторится по сигналу или есть сигнал, что он в работе*)
SSW := ST_RUNNED; (*переводим в состояние "Запущен"*)
ELSIF COUNT <= 0 THEN (*Если время запуска превысило максимальное время на запуск*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка запуска)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

32: (*Если в неопределенном состоянии*)

IF RESET AND NOT I_QF THEN (*По фронту сигнала "Сброс" и нет аварий*)
SSW := ST_STOPPING; (*переводим в состояние "Выключается"*)
(* #RESET := FALSE; обнуляем сигнал "Сброс"*)
Q_ALARM_W := 0; (*обнуляем cлово аварийных сообщений*)
END_IF;

(*#RESET := FALSE; обнуляем сигнал "Сброс"*)

ELSE (*если ошибочный шаг*)
SSW := ST_STOPPING;

END_CASE;

Выдает ошибку "ожидается определение переменной", подсвечивает строчку "CASE SSW OF (*Анализируем состояние*)". Блин, все переменные перепроверил, там все ок

VladGC
16.02.2022, 18:39
Здравствуйте!
Вопрос по CASE в MasterSCADE.

IF CMD THEN (*Если появилась команда на запуск и*)
IF MONITOR AND NOT I_KM THEN (*мониторится по сигналу и нет сигнала, что он в работе,*)
SSW := ST_RUNNING; (*переводим в состояние "Запускается" *)
ELSE
SSW := ST_RUNNED; (*иначе переводим в состояние "Запущен"*)
END_IF;
ELSIF NOT MONITOR OR (NOT I_KM) THEN (*Если не мониторится по сигналу или нет сигнала, что он в работе*)
SSW := ST_STOPPED; (*переводим в состояние "Остановлен"*)
ELSIF COUNT <= 0 THEN (*Если мотор не остановился за отведенное для этого время*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка останова)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

8: (*Если в состоянии "Запущен"*)

IF CMD AND (NOT I_KM) AND MONITOR THEN (*Если состояние мотора мониторится и нет сигнала, что он в работе, с командой на запуск*)
SSW := ST_UNKNOWN; (*переводим мотор в неопределенное состояние (самопроизвольное выключение)*)
ELSIF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR THEN (*если мониторится по сигналу*)
SSW := ST_STOPPING; (*переводим мотор в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим мотор в состояние "Остановлен"*)
END_IF;
END_IF;

16: (*Если в состоянии "Запускается"*)

IF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR AND I_KM THEN (*мониторится по сигналу и есть сигнал, что он в работе,*)
SSW := ST_STOPPING; (*переводим в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим в состояние "Остановлен"*)
END_IF;
ELSIF NOT MONITOR OR I_KM THEN (*Если не мониторится по сигналу или есть сигнал, что он в работе*)
SSW := ST_RUNNED; (*переводим в состояние "Запущен"*)
ELSIF COUNT <= 0 THEN (*Если время запуска превысило максимальное время на запуск*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка запуска)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

32: (*Если в неопределенном состоянии*)

IF RESET AND NOT I_QF THEN (*По фронту сигнала "Сброс" и нет аварий*)
SSW := ST_STOPPING; (*переводим в состояние "Выключается"*)
(* #RESET := FALSE; обнуляем сигнал "Сброс"*)
Q_ALARM_W := 0; (*обнуляем cлово аварийных сообщений*)
END_IF;

(*#RESET := FALSE; обнуляем сигнал "Сброс"*)

ELSE (*если ошибочный шаг*)
SSW := ST_STOPPING;

END_CASE;

Выдает ошибку "ожидается определение переменной", подсвечивает строчку "CASE SSW OF (*Анализируем состояние*)". Блин, все переменные перепроверил, там все ок

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

OlegGEORG
07.03.2022, 11:33
Использовать триггеры окна.

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

b_aleks
07.03.2022, 12:11
Добрый день. Вроде должно быть элементарно, но не получается. Подскажите, как сделать.
Создал окно, которое должно всплывать от установки какого-либо параметра. У окна есть триггеры.
Куда соединить связь параметра в триггеры окна, чтобы оно всплыло?

На скрине показал.
59575

OlegGEORG
08.03.2022, 11:56
На скрине показал.
59575

Спасибо, получилось. Только всплывающее окно появляется в 3-х экземплярах (закрывать приходится каждое из трёх).

OlegGEORG
08.03.2022, 12:48
Спасибо, получилось. Только всплывающее окно появляется в 3-х экземплярах (закрывать приходится каждое из трёх).

Алгоритм переделал, теперь всё в порядке.

Minarion
11.03.2022, 13:45
Здравствуйте!
Подскажите как в программе ST в функции Ping получить значения AverageTime и Connection?
С FB все понятно, а с ST не могу разобраться.

b_aleks
11.03.2022, 15:44
Здравствуйте!
Подскажите как в программе ST в функции Ping получить значения AverageTime и Connection?
С FB все понятно, а с ST не могу разобраться.

Либо в теле функции присвоить значение при помощи =>, либо отдельной строкой.
59646

laitenn
22.03.2022, 21:23
Здравствуйте! Может кто подскажет, по таблице данных вопрос

В столбце выводятся данные типа TOD, формат значения там же указан HH.mm, а в среде исполнения при нажатии на строку выходит вот такое окно с точностью до милисекунд, как можно это исправить и оставить только часы-минуты?
59809

Engineer_ASU
23.03.2022, 08:29
Добрый день!
Подскажите по отчёту в MasterScada 4D ПЛК 110-60.
Выставил в настройках количество сообщений 1000, неделю всё работало нормально, потом в архиве чистый лист. И сообщения начали записываться заново т.е старые сообщения уже недоступны.
Правильно ли я понял, что при достижении 1000 сообщений архив затирается и всё пишется с нуля или в моём случае другая проблема?

Larrrik
03.04.2022, 10:38
Коллеги, доброго дня.
Подскажите, кто знает, как получить в MS4D значение метки времени считанных из УСО данных (например по Modbus)? Во всех прочих известных нам SCADA-системах метка времени является неотъемлемым атрибутом тега, наравне с качеством. Здесь же с ходу не получается найти даже библиотечных функций, которые бы возвращали метку времени обновления значения входного канала.

b_aleks
04.04.2022, 08:16
Коллеги, доброго дня.
Подскажите, кто знает, как получить в MS4D значение метки времени считанных из УСО данных (например по Modbus)? Во всех прочих известных нам SCADA-системах метка времени является неотъемлемым атрибутом тега, наравне с качеством. Здесь же с ходу не получается найти даже библиотечных функций, которые бы возвращали метку времени обновления значения входного канала.

У каналов, имеющих тип данных SYSTEM_*_PARAM, есть параметр SourceTime - это метка времени.

Larrrik
04.04.2022, 10:00
У каналов, имеющих тип данных SYSTEM_*_PARAM, есть параметр SourceTime - это метка времени.
Благодарю. Если не сложно пояснить для чего в парадигме MS4D предназначены типы SYSTEM_*_PARAM (чем они отличаются от аналогичных простых типов LREAL, BOOL и т.п., кроме упомянутых меток и качества) ? Руководство и встроенная справка не дают внятных пояснений.

b_aleks
04.04.2022, 11:20
Благодарю. Если не сложно пояснить для чего в парадигме MS4D предназначены типы SYSTEM_*_PARAM (чем они отличаются от аналогичных простых типов LREAL, BOOL и т.п., кроме упомянутых меток и качества) ? Руководство и встроенная справка не дают внятных пояснений.

Например, параметр с типом SYSTEM_*_PARAM на тренде будет отображаться с учетом признака качества - когда он плохой (StatusCode>0), то перо на тренде будет отображаться пунктирной линией. Таким образом можно на графике отследить обрывы связи с устройством.

Larrrik
04.04.2022, 11:25
Например, параметр с типом SYSTEM_*_PARAM на тренде будет отображаться с учетом признака качества - когда он плохой (StatusCode>0), то перо на тренде будет отображаться пунктирной линией. Таким образом можно на графике отследить обрывы связи с устройством.
Большое спасибо.

Может кто-то еще подскажет куда пишется диагностический лог среды исполнения? В руководстве этот пункт не расписан в принципе.

b_aleks
04.04.2022, 13:03
Большое спасибо.

Может кто-то еще подскажет куда пишется диагностический лог среды исполнения? В руководстве этот пункт не расписан в принципе.

В рабочую папку системы.
60092

Larrrik
04.04.2022, 13:51
В рабочую папку системы.
60092

Большое спасибо!

Larrrik
05.04.2022, 16:56
Коллеги, доброго дня.
Кто подскажет по автоматизации связывания каналов с параметрами объектов:
Планируется структура включающая типовые модули ввода-вывода, содержащие идентичный набор каналов, и типовые объекты, содержащие параметры соответствующие данным каналам для использования в окнах, отчетах графиках и т.п. Предусмотрена ли в MS4D какая-либо автоматизация связывания параметров типовых объектов с соответствующими им каналами типовых модулей ввода вывода в структуре проекта, или же все нужно по одному монотонно таскать вручную?
В хелпе и руководстве инфы не нашли. В единственном из найденных на эту тему роликов на канале вендора, где решалась данная задача в 3.Х версии - заморочено, через три колена и макросы excel:(
Может кто знает: изменилось ли что-то в этом плане в лучшую сторону в MS4D актуальной версии? (к ТП обращаемся в крайних случаях - отвечают долго и нехотя).

sapozhnikovba
06.04.2022, 13:59
И от меня вопрос, касательно обработки Переменных определённых как InOut Программой в данной SCADA системе.
Задача: прогнать определённый последовательный процесс Оператором. Написал простенький тест.
60156

Переменная Tag управляется как Оператором с Окна через Флаг, так и в Программе.
Проблема в том что по завершению на последнем шаге не происходит сброс переменной в false, и соответственно Программа уходит на повторный цикл.
Видно, что система пытается это сделать, но в приоритете у неё значение визуального элемента Флаг, и значение false снова принимает true.
Исходник: https://disk.yandex.ru/d/E-L7vHmj6I-gxw

VladGC
06.04.2022, 16:28
Коллеги, доброго дня.
Кто подскажет по автоматизации связывания каналов с параметрами объектов:
Планируется структура включающая типовые модули ввода-вывода, содержащие идентичный набор каналов, и типовые объекты, содержащие параметры соответствующие данным каналам для использования в окнах, отчетах графиках и т.п. Предусмотрена ли в MS4D какая-либо автоматизация связывания параметров типовых объектов с соответствующими им каналами типовых модулей ввода вывода в структуре проекта, или же все нужно по одному монотонно таскать вручную?
В хелпе и руководстве инфы не нашли. В единственном из найденных на эту тему роликов на канале вендора, где решалась данная задача в 3.Х версии - заморочено, через три колена и макросы excel:(
Может кто знает: изменилось ли что-то в этом плане в лучшую сторону в MS4D актуальной версии? (к ТП обращаемся в крайних случаях - отвечают долго и нехотя).

1) Вклада таблица
2) Область поиска - в выбранном элементе дерева
3) В дереве тыкаете на протокол или папку с каналами
4) Текущий элемент дерева- подтверждаем
5) Тип элемента - Узел > протокол > модуль канал
6)Нажимаем на зеленую кнопку и убеждаемся что каналы нашлись
7) Добавляем пользовательский столбец
8) Тип столбца - отношение
9) Отношение - передача значения в
10) редактируем
11) если отношений много то экспортируем в текстовый редактор,правим сохраняем
12) импортируем

melky
06.04.2022, 17:22
VladGC Иппонский городовой, и если у меня счетчик на 40 значений, то создать например копии под десяток счетчиков надо вот это столько ручками тыкаться ?

VladGC
07.04.2022, 08:43
VladGC Иппонский городовой, и если у меня счетчик на 40 значений, то создать например копии под десяток счетчиков надо вот это столько ручками тыкаться ?
У меня два подхода
1) Касательно тыкать ручками,
если правильно сформулировать запрос , то выставление связей делается очень быстро
Я использую vscode с плагином авто инкремент, плюс есть мульти курсор

2) Если бы у меня было 10 счетчиков по 40 значений то сделал так:

В глобальных переменных создаю 40 структур для счетчика:
устройство1
устройство2
и т.д.

В протоколе опроса/устройства добавляю программу
Собираю все значения в структуру например: устройство
В программе пишу : устройство1 :=устройство;

Дублирую и в каждой программе правлю устройство1 на нужное

Тем самым избавляюсь от связей

В любом случае, лучше из протокола выдернуть одну структуру, чем 40 переменных, а дальше в объектах разложить куда надо. Тогда будет не сотни связей, а десяток

Stab
07.04.2022, 12:30
Вот перешел с версии 1.2.13 на текущую 1.2.15
Возникла проблема с отчетами - вычисление разницы переменных типа DT, работающее в старой версии сейчас не работает. возникает ошибка. Окно редактирования содержимого текстовой ячейки показывает, что есть какая то ошибка.

Stab
07.04.2022, 12:34
То же самое с перемножением double60186

Larrrik
07.04.2022, 12:42
12) импортируем
Большое спасибо.
Но возникает вопрос как быть с тем, что у каждого канала каждого модуля вв/выв свой уникальный ID (первая колонка).
Если мы допустим привязали все параметры 1-го модуля вв/выв к соответствующим параметрам 1-го объекта, экспортировали таблицу связок в CSV, заменив в ней имя модуля и имя объекта на следующие по списку,
то выбрав согласно п.4 следующий модуль вв/выв для связывания - как импортировать в него отредактированный CSV если все ID в нем относятся к первому модулю? А если придется заменять в импортируемом CSV все ID вручную для соответствия следующему модулю, то где здесь автоматизация?

Stab
07.04.2022, 13:15
Вот перешел с версии 1.2.13 на текущую 1.2.15
Возникла проблема с отчетами - вычисление разницы переменных типа DT, работающее в старой версии сейчас не работает. возникает ошибка. Окно редактирования содержимого текстовой ячейки показывает, что есть какая то ошибка.

Сравнил отчет на старой версии проекта - после конвертации проекта все параметры в папке Архив данных и папке Переменные получили дополнительный признак (Nullable), то есть было datetime стало datetime(Nullable), было double стало double(Nullable). Например, при попытке поменять тип с double(Nullable) на double это изменение сохраняется, однако, когда поменяешь какой либо другой параметр, тип предыдущего параметра возвращается обратно на тип с приставкой (Nullable)
:confused: Что за прикол??? И в что за тип с приставкой (Nullable)?

VladGC
07.04.2022, 16:03
Большое спасибо.
Но возникает вопрос как быть с тем, что у каждого канала каждого модуля вв/выв свой уникальный ID (первая колонка).
Если мы допустим привязали все параметры 1-го модуля вв/выв к соответствующим параметрам 1-го объекта, экспортировали таблицу связок в CSV, заменив в ней имя модуля и имя объекта на следующие по списку,
то выбрав согласно п.4 следующий модуль вв/выв для связывания - как импортировать в него отредактированный CSV если все ID в нем относятся к первому модулю? А если придется заменять в импортируемом CSV все ID вручную для соответствия следующему модулю, то где здесь автоматизация?

1) Вы отредактировали первый модуль, далее выбираете второй и нажимаете кнопку запустить запрос для него, там тоже самое как и с первым, исправили и импортировали
или
2) Можете сразу все модули выбрать и найти все элементы, далее как на скриншоте получите портянку из сотни строчек, где будет видно какой модуль.
На скриншоте пример, сделал за 5 минут
8 модулей по 8 каналов на 8 объектов на 8 каналов

VladGC
07.04.2022, 16:09
Сравнил отчет на старой версии проекта - после конвертации проекта все параметры в папке Архив данных и папке Переменные получили дополнительный признак (Nullable), то есть было datetime стало datetime(Nullable), было double стало double(Nullable). Например, при попытке поменять тип с double(Nullable) на double это изменение сохраняется, однако, когда поменяешь какой либо другой параметр, тип предыдущего параметра возвращается обратно на тип с приставкой (Nullable)
:confused: Что за прикол??? И в что за тип с приставкой (Nullable)?

Это значит что в переменной может быть и не быть значения какого либо
Для умножения надо писать mul , в списке функций есть.


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

Minarion
07.04.2022, 16:19
Здравствуйте!
Подскажите такой вопрос: сделал тестовый проект в редакторе на 1 час. Все работает. Закинул его в RT на 32 точки, который пишет что "визуализация недоступна в этом проекте".
В бесплатной версии на 32 не работает визуализация?

Larrrik
07.04.2022, 16:26
2) Можете сразу все модули выбрать и найти все элементы
Спасибо. По второму пункту теперь примерно понятно.

b_aleks
07.04.2022, 16:31
Здравствуйте!
Подскажите такой вопрос: сделал тестовый проект в редакторе на 1 час. Все работает. Закинул его в RT на 32 точки, который пишет что "визуализация недоступна в этом проекте".
В бесплатной версии на 32 не работает визуализация?

Ахахахахахаххахаах
Была такая же проблема недавно, когда потребовалась версия на 32 точки. Суть проблемы была в следующем. В проекте использовался модуль MSRT4D-ProcessCreate, т.е. в программе был функциональный блок, который запускал определенный процесс.

А теперь внимание! Заходим на сайт masterscada.ru и видим, что версия на 32 тега ПОЛНОФУНКЦИОНАЛЬНАЯ.
60202
Но оказывается, как сказала техподдержка, эта "версия RT32 полнофункциональная, но не максимальная". Вот такой вот новояз, полнофункциональная, но не максимальная.
60203

Скорей всего у вас в проекте используется какой-то ФБ, который считается как отдельный модуль. Чтобы понять, в чем проблема, грузите проект в рантайм из-под редактора, тогда появится сообщение, что какая-либо функция недоступна.

melky
07.04.2022, 16:35
b_aleks я как-то давно еще 3-ю версию считал, во что обойдется, прослезился. так как на то время цена оказалась дороже зарубежных аналогов... :)

b_aleks
07.04.2022, 16:44
b_aleks я как-то давно еще 3-ю версию считал, во что обойдется, прослезился. так как на то время цена оказалась дороже зарубежных аналогов... :)

Импортозамещение оно такое...

VladGC
07.04.2022, 17:45
Можно для 100 точек скачать бесплатно AggreGate SCADA/HMI
Визуализация по крайней мере есть

https://aggregate.digital/ru/products/scada-hmi/purchase.html

melky
07.04.2022, 22:54
b_aleks если не упираться рогом в MatserScada то и у нас есть системы за разумные деньги, а не "мы кля крутые, импорто замещаемся, несите деньги нам"

VladGC 10 тысяч тегов в Basic почти лям денег.... ребята спятили..... даже Simp Lite будет дешевле в анлиме...

VladGC
08.04.2022, 08:43
b_aleks если не упираться рогом в MatserScada то и у нас есть системы за разумные деньги, а не "мы кля крутые, импорто замещаемся, несите деньги нам"

VladGC 10 тысяч тегов в Basic почти лям денег.... ребята спятили..... даже Simp Lite будет дешевле в анлиме...

melky, это я в качестве альтернативе версии на 32 точки ссылался))

А вообще если смотреть на такие критерии неограниченное число клиентов(которые браузер) и большое число тегов, то
Симп Лайт тоже выйдет в копеечку, как и TraceMode
Мастерскада это вообще будет космос по деньгам.

А если смотреть Standard версию на 200 тэгов, то очень даже интересно

Minarion
08.04.2022, 11:38
Ахахахахахаххахаах
Была такая же проблема недавно, когда потребовалась версия на 32 точки. Суть проблемы была в следующем. В проекте использовался модуль MSRT4D-ProcessCreate, т.е. в программе был функциональный блок, который запускал определенный процесс.

А теперь внимание! Заходим на сайт masterscada.ru и видим, что версия на 32 тега ПОЛНОФУНКЦИОНАЛЬНАЯ.
60202
Но оказывается, как сказала техподдержка, эта "версия RT32 полнофункциональная, но не максимальная". Вот такой вот новояз, полнофункциональная, но не максимальная.
60203

Скорей всего у вас в проекте используется какой-то ФБ, который считается как отдельный модуль. Чтобы понять, в чем проблема, грузите проект в рантайм из-под редактора, тогда появится сообщение, что какая-либо функция недоступна.

ОМФГ. Вот уж действительно...
Я использую протокол подключения к PostgreSQL. Похоже что он не имеет права работать с RT32. :(

Stab
08.04.2022, 12:21
Для умножения надо писать mul , в списке функций есть.


Уточните, что за mul? Не вижу в списке функций..
Нужно перемножить два значения {АрхивДанных.Ввод1 * Переменные.Тариф} Раньше в таком виде работало.

VladGC
08.04.2022, 16:10
Уточните, что за mul? Не вижу в списке функций..
Нужно перемножить два значения {АрхивДанных.Ввод1 * Переменные.Тариф} Раньше в таком виде работало.

Перепутал, запишите вот так
{(double)Переменные.Параметр1*(double)Переменные.П араметр2}
Будет работать

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

Stab
11.04.2022, 14:14
Перепутал, запишите вот так
{(double)Переменные.Параметр1*(double)Переменные.П араметр2}
Будет работать

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

Спасибо, явное преобразование типа помогло.

Larrrik
15.04.2022, 12:48
Прошу не бить. Не можем найти элементарный ФБ или функцию, возвращающую системное время. Нашли только элемент Часы, в справке к нему есть только невнятная отсылка к некому параметру: "В случае, если необходимо, чтобы на всех клиентах отображалось время, отсчитываемое на устройстве с работающей средой исполнения, следует соответствующий параметр, обрабатываемый в задаче узла, перетащить в окно правой кнопкой мыши, и выбрать способ отображения ДатаВремя." Что это за "соответствующий параметр" не указано.
Вопрос: как получить системную дату / время чтобы затем использовать (в окне или программе) ?

b_aleks
15.04.2022, 13:16
Прошу не бить. Не можем найти элементарный ФБ или функцию, возвращающую системное время. Нашли только элемент Часы, в справке к нему есть только невнятная отсылка к некому параметру: "В случае, если необходимо, чтобы на всех клиентах отображалось время, отсчитываемое на устройстве с работающей средой исполнения, следует соответствующий параметр, обрабатываемый в задаче узла, перетащить в окно правой кнопкой мыши, и выбрать способ отображения ДатаВремя." Что это за "соответствующий параметр" не указано.
Вопрос: как получить системную дату / время чтобы затем использовать (в окне или программе) ?

В программе использовать функцию GET_UTC_TIME();

Larrrik
15.04.2022, 13:45
В программе использовать функцию GET_UTC_TIME();

Благодарю, теперь нашли

Larrrik
18.04.2022, 15:37
Коллеги, доброго времени суток.
Подскажите, кто знает, пару вопросов по всплывающим окнам:
1. Каким образом можно сделать так, чтобы по нажатию кнопки, размещенной во всплывающем окне, вызывалось другое всплывающее окно, при этом исходное всплывающее окно закрывалось? В каком бы порядке не вешал 2 действия по клику: закрыть окно и открыть всплывающее, в результате просто закрывается исходное окно.
2. Существует ли в событиях/триггерах окон в MS4D аналог скрипта "по открытию окна" (как например в InTouch)?
3. Можно как-то ли изменить размер шрифта в заголовке всплывающего окна? При разрешении 1920х1080 дефолтный выглядит довольно мелко.

b_aleks
18.04.2022, 16:14
Коллеги, доброго времени суток.
Подскажите, кто знает, пару вопросов по всплывающим окнам:
1. Каким образом можно сделать так, чтобы по нажатию кнопки, размещенной во всплывающем окне, вызывалось другое всплывающее окно, при этом исходное всплывающее окно закрывалось? В каком бы порядке не вешал 2 действия по клику: закрыть окно и открыть всплывающее, в результате просто закрывается исходное окно.
2. Существует ли в событиях/триггерах окон в MS4D аналог скрипта "по открытию окна" (как например в InTouch)?
3. Можно как-то ли изменить размер шрифта в заголовке всплывающего окна? При разрешении 1920х1080 дефолтный выглядит довольно мелко.

1. Насколько я знаю, в HMI v2 повторный вызов действия "Открыть всплывающее окно" при уже отрытом этом же окне приводит к его закрытию. Поэтому можно первым действием вызвать открытие всплывающего окна, которое уже открыто, а вторым действием - открытие другого всплывающего окна. Возможно, схема сработает.
2. Вроде бы нет.
3. В свойствах шаблона экрана - Размер шрифта заголовка.

Stab
19.04.2022, 08:43
Добрый день!
Рантайм версия запускает ОРС сервер (Мастер ОРС мультипротокол) в свернутом виде без возможности открыть окно и проверить его работу. Его процесс висит в списке с ключем - Embedding. Вопрос - можно ли как то запускать ОРС сервер в обычном режиме?

VladGC
19.04.2022, 09:45
Добрый день!
Рантайм версия запускает ОРС сервер (Мастер ОРС мультипротокол) в свернутом виде без возможности открыть окно и проверить его работу. Его процесс висит в списке с ключем - Embedding. Вопрос - можно ли как то запускать ОРС сервер в обычном режиме?
Должно помочь

Larrrik
19.04.2022, 15:02
.
3. В свойствах шаблона экрана - Размер шрифта заголовка.
Спасибо, попробуем.

Stab
20.04.2022, 13:14
Должно помочь

Спасибо за совет, однако этот параметр уже установлен в true.
Так же замечено, что если сначала открыть ОРС сервер и запустить его, то процесс mplc не подключается к нему и в диспетчере задач иногда не на долго выскакивает новый процесс ОРС сервера. Видимо еще одну копию пытается запустить. Работа приходит в норму только после закрытия приложения ОРС сервера.

dopi
21.04.2022, 12:17
добрый день
сделал проект на 20 тегов модбас.
установил MasterSCADA 4D RT32.

при запуске клиента выдает пустой экран и надпись "визуализация недоступна в этом проекте"

60433


при этом если устанавливаю MasterSCADA 4D RT DEMO на 1 час работы, то этот же проект работает.

есть какие то еще ограничения для MasterSCADA 4D RT32?
тренды и журналы удалил из проекта. также не запускается визуализация.

b_aleks
21.04.2022, 13:10
добрый день
сделал проект на 20 тегов модбас.
установил MasterSCADA 4D RT32.

при запуске клиента выдает пустой экран и надпись "визуализация недоступна в этом проекте"

60433


при этом если устанавливаю MasterSCADA 4D RT DEMO на 1 час работы, то этот же проект работает.

есть какие то еще ограничения для MasterSCADA 4D RT32?
тренды и журналы удалил из проекта. также не запускается визуализация.

Какой-то ФБ значит используете. Откройте редактор и загрузите проект на внешний рантайм из-под него. Тогда появится окно, в котором будет указано, какая опция недоступна.

dopi
21.04.2022, 13:26
Какой-то ФБ значит используете. Откройте редактор и загрузите проект на внешний рантайм из-под него. Тогда появится окно, в котором будет указано, какая опция недоступна.
из под редактора загружал. писал сначала ошибку, что модуль трендов не поддерживается.
поэтому удалил. пробовал даже оставить только одно окно, удалив теги и блоки.

пишет что конфигурация загружена успешно.
в документации про ограничения по ФБ ничего нет.
только 32 тега

b_aleks
21.04.2022, 13:39
в документации про ограничения по ФБ ничего нет.

А на самом деле есть, я писал об этом выше в этой теме.
https://owen.ru/forum/showthread.php?t=30695&p=378905&viewfull=1#post378905

Dead Kid
25.04.2022, 17:50
Здравствуйте. При включении проекта из среды исполнения проект перестаёт принимать данные с OPC сервера. Запускаю сервер, который получает данные с ПЛК, запускаю среду разработки мастер скада 4D , через неё исполнение - подключиться и всё нормально работает. Когда включаю RT на 32 тега, загружаю туда конфигурацию и запускаю клиент через окно RT, то все переменные проекта стоят по нулям. При том, если с запущенной RT подключиться через среду разработки, то тоже перестаёт проект получать данные. Пробовал удалять проект в RT потом снова загружать через среду разработки и экспортировать из среды разработки - не помогает.

melky
25.04.2022, 20:48
RT 32 вроде еще ограничена одним OPC клиентом. Короче читайте внимательнее, там ограничений по самые уши...

Dead Kid
26.04.2022, 13:15
Мне хотябы один и запустить. Задача именно в том, чтобы пользователь мог бы запустить проект, не входя в среду разработки, а получается, что в любом другом случае, кроме как среды разработки проект не работает.

melky
26.04.2022, 23:49
Должна быть какая-то автозагрузка при рестарте сервера... ищите в документации.

иначе как бы нафик такая scada тогда была бы нужна ?

Dead Kid
27.04.2022, 11:45
Дело не в автозапуске, а в том, что среда исполнения не работает ни отдельно, ни вместе со средой разработки. Проект работает только из среды разработки без запуска среды исполнения, при запуске среды исполнения проект отказывается принимать данные из OPC сервера.

Larrrik
28.04.2022, 10:28
Коллеги, кто подскажет как правильно открывать локальные PDF в контейнере окна?
Судя по справке, это вроде бы реализуется посредством действия "Открыть адрес". Только вот как ни пробуем - выдает ошибку при открытии.
При этом, если в появившемся в контейнере pdf-плагине открыть файл вручную по встроенной кнопке - открывается нормально.
Адрес задаем в том виде, каком эти файлы открывает например Edge (в справке расписан формат только для Linux).

VladGC
28.04.2022, 12:25
Коллеги, кто подскажет как правильно открывать локальные PDF в контейнере окна?
Судя по справке, это вроде бы реализуется посредством действия "Открыть адрес". Только вот как ни пробуем - выдает ошибку при открытии.
При этом, если в появившемся в контейнере pdf-плагине открыть файл вручную по встроенной кнопке - открывается нормально.
Адрес задаем в том виде, каком эти файлы открывает например Edge (в справке расписан формат только для Linux).

Любой pdf кидаете в папку ресурсы
Server\htdocs\resources
Далее в событии открыть адрес указываете путь относительно папки resources
resources\какойлибоpdf.pdf
так работает

Larrrik
28.04.2022, 14:10
так работает
Работает. Спасибо!

Dead Kid
04.05.2022, 11:27
Дело не в автозапуске, а в том, что среда исполнения не работает ни отдельно, ни вместе со средой разработки. Проект работает только из среды разработки без запуска среды исполнения, при запуске среды исполнения проект отказывается принимать данные из OPC сервера.

Связался с поддержкой, в службах компонентов windows нужно в свойствах компьютера включить поддержку DCOM. И если используете DA или HDA OPC-сервер, то в свойствах сервера во вкладке Удостоверение поставить, чтобы использовался текущий пользователь.

Hemann
08.05.2022, 16:18
Коллеги, добрый день!

Я начал изучать MasterSCADA 4D. Выполнил все 3 видеоурока, потом несколько их модифицировал, заменив "Контроллер" на ""АРМ" - все работало как задумано. Потом я решил организовать связь с прибором через OPC DA. Сконфигурировал овеновский ОРС-сервер, проверил его связь с прибором - все четко работает. Затем посмотрел документацию по проектированию СКАДы и сделал, на мой взгляд, то что требуется для установления связи. Однако, прибор (МУ210-401) не управляется. В самой СКАДе вырабатываются нужные значения, но в ОРС-сервер они не передаются. Что я делаю не так? Проект и конфигурация ОРС-сервера - в прикреплении.

m.petrovich
11.05.2022, 14:01
Коллеги, добрый день!

Я начал изучать MasterSCADA 4D. Выполнил все 3 видеоурока, потом несколько их модифицировал, заменив "Контроллер" на ""АРМ" - все работало как задумано. Потом я решил организовать связь с прибором через OPC DA. Сконфигурировал овеновский ОРС-сервер, проверил его связь с прибором - все четко работает. Затем посмотрел документацию по проектированию СКАДы и сделал, на мой взгляд, то что требуется для установления связи. Однако, прибор (МУ210-401) не управляется. В самой СКАДе вырабатываются нужные значения, но в ОРС-сервер они не передаются. Что я делаю не так? Проект и конфигурация ОРС-сервера - в прикреплении.

Добрый день. Зачем используете ОРС-сервер? В МС4 поддержан обмен по modbus TCP из коробки.

По вашему вопросу:
Передобавил ОРС, перепривязал значение к "Выходы", все работает

Hemann
11.05.2022, 14:48
Зачем используете ОРС-сервер?

Понял, спасибо, доберусь до компа с МС4 - попробую. А ОРС сейчас использовал чисто в учебных целях. Кстати, сразу возникло 2 вопроса.
1. Какую версию Owen OPC-сервер Вы использовали при проверке?
2. Если все срастется, то нам нужно будет получать данные в МС4 из OwenCloud. Я, в общем-то, и стал пробовать работу с ОРС-сервером ради этого. Или в МС4 можно как-то по другому решить этот вопрос?

m.petrovich
11.05.2022, 16:45
Понял, спасибо, доберусь до компа с МС4 - попробую. А ОРС сейчас использовал чисто в учебных целях. Кстати, сразу возникло 2 вопроса.
1. Какую версию Owen OPC-сервер Вы использовали при проверке?
2. Если все срастется, то нам нужно будет получать данные в МС4 из OwenCloud. Я, в общем-то, и стал пробовать работу с ОРС-сервером ради этого. Или в МС4 можно как-то по другому решить этот вопрос?

1. Версия ОРС-сервера 1.10.73.0
2. Связь с облаком через ОРС-сервер работает, проверено.
Как альтернативу можно использовать связь по API. (В МС4 есть HttpClient).

Hemann
11.05.2022, 18:28
Переставил ОРС-сервер на версию 1.10.73.0. Толку от этого нет - связи МС4 с ОРС-сервером нет (хотя и удалил протокол OPC DA и по новой его подключил). Взял накидал простейший проект на МС3, который управляет теми же выходами МУ210-401 - все работает без проблем. Как-то так.
А связь OwenOPC с OwenCloud я использовал уже, нормально все работает. И Multi-protocol MasterOPC я с OwenCloud соединял нормально (но это только для самообучения)

Hemann
12.05.2022, 20:58
Попробовал вместо Owen OPC подключить MasterOPC Modbus - разницы нет никакой. Но вот что я заметил - данные ИЗ ОРС-сервера в МС4 передаются. Если я в ОРС-сервере вручную присваиваю тэгу какое-то значение, то в параметре Вход.Value в МС4 это значение появляется. Но вот из параметра Выход.Value в ОРС-сервер данные не записываются. В чем может быть проблема?

Makarovas
17.05.2022, 12:24
Ребята кто писал скрипты С# подскажите!

я хочу добавлять OPC UA каналы и присваивать им NodeId, но как это сделать не знаю. Остановился на том что могу создать канал - а дальше, что?
Из куцего примера в справке очевидно, что нужно запросить некий сервис для Channel но какой, как он называется и в какой сборке сидит - квест.


var chanel = SystemRoot.FindChildByFullDisplayName("АРМ 1.Протоколы.OPC UA").ManagementService.InsertChildDef(SchemeTypes.Cha nnel);
var chanelServ = chanel.GetService<?????????>();

chanelServ.NodeID = "ns.tag... etc";

Artyom
23.05.2022, 13:11
добрый день
сделал проект на 20 тегов модбас.
установил MasterSCADA 4D RT32.

при запуске клиента выдает пустой экран и надпись "визуализация недоступна в этом проекте"

60433


при этом если устанавливаю MasterSCADA 4D RT DEMO на 1 час работы, то этот же проект работает.

есть какие то еще ограничения для MasterSCADA 4D RT32?
тренды и журналы удалил из проекта. также не запускается визуализация.

Удалось ли решить проблему с запуском?

Artyom
23.05.2022, 13:12
60794
У меня вот такая проблема с запуском исполнительной системы RT32 на Windows10.

Bigcrash
29.05.2022, 16:10
Можно ли в качестве подложки (фона) в окнах использовать файлы .pdf? После загрузки в ресурсы окна там просто белый фон.

Minarion
06.06.2022, 15:17
Добрый день!
Подскажите: при использовании в окне диалогового элемента ДатаВремя в параметр передается значение вида "2022-06-06-17:15:01". Вопрос: как убрать тире между датой и временем? Можно сделать два диалоговых элемента, но интересно как реализовать в одном.

melky
06.06.2022, 15:37
Minarion не совсем знаю MS4D но если это строковое представление даты, то ее можно преобразовать скриптом C# в любой вид, который вам нужен, хоть в 2022_06_06 !!! 17:15:01 например.

m.petrovich
06.06.2022, 15:44
Добрый день!
Подскажите: при использовании в окне диалогового элемента ДатаВремя в параметр передается значение вида "2022-06-06-17:15:01". Вопрос: как убрать тире между датой и временем? Можно сделать два диалоговых элемента, но интересно как реализовать в одном.

Добрый день!
Тире не будет на мнемосхеме. Запустите эмуляцию с элементом ДатаВремя.

Minarion
06.06.2022, 15:53
Добрый день!
Тире не будет на мнемосхеме. Запустите эмуляцию с элементом ДатаВремя.

Добрый день!
Мне нужно именно чтоб в параметре, который принимает значение от этого диалогового окна не было этого тире. Этот параметр передает значение в SQL запрос, а тире портит всю малину)

Minarion
06.06.2022, 15:54
Minarion не совсем знаю MS4D но если это строковое представление даты, то ее можно преобразовать скриптом C# в любой вид, который вам нужен, хоть в 2022_06_06 !!! 17:15:01 например.

Уверен что на C# это получится. Две проблемы: 1) не хочется городить для этого отдельную функцию 2) я не умею в C#)))

melky
06.06.2022, 16:15
Minarion ну а если вам помогут с функцией кто умеет C# ? я просто гляну где это искать и подскажу...

ultra_v
11.06.2022, 10:15
Добрый день! не думал, что после стольких лет в автоматизации буду спрашивать что-то на форуме, но, видимо, время пришло. Реализую проект на мастерскада 4д (в первый раз, и в последний!). Добавил opc server, переменные опрашиваются, привязал кнопку к opc, нажимаю - значение меняется в scada, а в opc - нет. Что я делаю не так?

Minarion
14.06.2022, 18:46
Minarion ну а если вам помогут с функцией кто умеет C# ? я просто гляну где это искать и подскажу...

Сделал так:
датаВремя:=DELETE(IN:=REPLACE(IN1:= DT_TO_STRING(Дата_начала), IN2:=" " , L:=1 , P:=11 ) , L:=4 , P:= 20);

Обрезать 4 символа в конце пришлось по причине того что при TO_STRING появлялись миллисекунды, которые нафиг не нужны.

Колхоз, но работает)

melky
15.06.2022, 09:28
Minarion покурите эту тему, вывод можно настроить как вам нравится, заменив - например на "О как!" :)
https://docs.microsoft.com/ru-ru/dotnet/standard/base-types/custom-date-and-time-format-strings

Larrrik
27.06.2022, 18:43
Коллеги, доброго дня.
Может кто знает каково максимальное ограничение длины параметра типа STRING?
В справке указано только что строка "переменной длины"...

VladGC
28.06.2022, 08:14
Коллеги, доброго дня.
Может кто знает каково максимальное ограничение длины параметра типа STRING?
В справке указано только что строка "переменной длины"...

500к символов точно можно

upd
5кк тоже

Larrrik
28.06.2022, 11:39
5кк тоже
Большое спасибо за наглядный эмпирический ответ )

Minarion
28.06.2022, 12:09
Здравствуйте!
Подскажите как присвоить NULL переменной, если другая переменная тоже NULL.

Как я написал: IF var1 = NULL then var2:= NULL END_IF;

Однако значение var2 не становится NULL.

b_aleks
28.06.2022, 12:44
Здравствуйте!
Подскажите как присвоить NULL переменной, если другая переменная тоже NULL.

Как я написал: IF var1 = NULL then var2:= NULL END_IF;

Однако значение var2 не становится NULL.

Создать переменную без начального значения и по условию присваивать ее другой переменной.

alex13
08.07.2022, 14:30
Подскажите как в мастер скаде 4D реализовать кнопку с таймером, т.е. при нажатии на кнопку на мнемосхеме она вдавливается и параметр присваивается ВКЛ, а через 2 секунды параметр стал ВЫКЛ и кнопка на мнемосхеме отжалась?

b_aleks
11.07.2022, 13:16
Подскажите как в мастер скаде 4D реализовать кнопку с таймером, т.е. при нажатии на кнопку на мнемосхеме она вдавливается и параметр присваивается ВКЛ, а через 2 секунды параметр стал ВЫКЛ и кнопка на мнемосхеме отжалась?

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

Dzherenov
15.07.2022, 11:10
Здравствуйте, смотрю урок 3 Быстрый старт, у меня при перетаскивании из вкладки объекты во вкладку Бибдтотеки локальные содержимое окон не сохраняется - и соответственно потом все содержимое удаляется в источнике. В чем может быть проблема? И еще вопрос - В среде проектирования все работает сигналы на контроллер проходят, но как только запускаю проект через RT, клиент перестает общается с OCP, запускаю среду проеэтирование там тоже перестает и пишит при компеляции версия исполнительного устройства устарела.

Bigcrash
20.07.2022, 14:37
Вопрос про конвертацию.
С прибора идут данные INT, в скаде я их принимаю, но мне нужно на окно вытащить уже REAL с 2 знаками после запятой (например, 1267 должно стать 12,67).
Попробовал создать параметр LREAL и задать формат {f2}, но получил ту же самую целую часть с двумя нулями после запятой.
Можно ли сделать быструю конвертацию, не прибегая к программным блокам (FBD, ST и тп)?

VladGC
21.07.2022, 07:37
Вопрос про конвертацию.
С прибора идут данные INT, в скаде я их принимаю, но мне нужно на окно вытащить уже REAL с 2 знаками после запятой (например, 1267 должно стать 12,67).
Попробовал создать параметр LREAL и задать формат {f2}, но получил ту же самую целую часть с двумя нулями после запятой.
Можно ли сделать быструю конвертацию, не прибегая к программным блокам (FBD, ST и тп)?

Да можно, см. скриншот

Minarion
21.07.2022, 08:58
Здравствуйте коллеги!
Подскажите пожалуйста, правильно ли я понимаю: 1 сообщение тревога обрабатывает 1 параметр? Если мне надо контролировать 100 параметров, мне надо создать 100 сообщений тревога и связать их со входом активность сообщения?
Можно ли создать одно сообщение конкретного типа и привязать к нему кучу параметров?

VladGC
21.07.2022, 10:59
Здравствуйте коллеги!
Подскажите пожалуйста, правильно ли я понимаю: 1 сообщение тревога обрабатывает 1 параметр? Если мне надо контролировать 100 параметров, мне надо создать 100 сообщений тревога и связать их со входом активность сообщения?
Можно ли создать одно сообщение конкретного типа и привязать к нему кучу параметров?

Приветствую,
если 100 параметров привязать к одному входу ( через или) то при возникновении двух и более событий будет непонятно какое событие произошло

если надо использовать какие либо превышения, я бы использовал штатные функции - контроль границ
А если надо только записывать сообщения в архив журнала то можно использовать fb - FireBaseEvent


FOR i := 1 to 5 DO
IF g_msg_eventChange_D4[i].changed THEN
Система(Time:= , Message:=g_msg_eventChange_D4[i].msg , AckTime:= , Acked:= , Severity:=200 , ClientUserId:= , ClientAddress:= , EventTypeId:= , Archive:= );
END_IF;
END_FOR;

asutp2003
22.07.2022, 10:21
Может кто-нибудь помочь с получением значений из сообщений в формате JSON? Буду крайне признателен.

У меня прилетают сообщения по MQTT в JSON. К примеру одно из наиболее маленьких:
[{"ts":1657711987000,"ms":{"ru1":{"force":-99999,"temp":-2000,"ts":0},"ru2":{"force":-99999,"temp":-2000,"ts":0},"ru3":{"force":-99999,"temp":-2000,"ts":0},"meteo":{"airt":0.000000,"ah":0,"wd":0,"ws":0.000000}},"hs":"ba5e11c1eacd3873e3084276675a8d0a"}]

На входе массив структур(судя по квадратным скобкам), который состоит из: переменной ts, структуры ms и переменной hs.
Структура ms в свою очередь состоит из структур ru1-3 и структуры meteo.
Структуры ru1-3 состоят из полей: force, temp, ts.
Структура meteo состоит из полей: airt, ah, wd, ws.
Т.е. по сути получается «матрёшка» из полей, вложенных в структуры, которые в свою очередь вложены в ещё одну структуру, которая с двумя переменными составляет массив.
Я создавал все эти структуры с соответствующими полями и потом вкладывал одно в другое, как указанно в разделе справки «Соответствие элементов JSON и MasterScada 4D.

Далее чтобы было более понятно
[{"ts":1657711987000,
"ms":{
"ru1":{"force":-99999,"temp":-2000,"ts":0},
"ru2":{"force":-99999,"temp":-2000,"ts":0},
"ru3":{"force":-99999,"temp":-2000,"ts":0},
"meteo":{"airt":0.000000,"ah":0,"wd":0,"ws":0.000000}
},
"hs":"ba5e11c1eacd3873e3084276675a8d0a"}]

Согласно справки имена ключей и типы данных должны совпадать. Разработчики устройства, с которого летят сообщения дали мне типы данных: "[{"ts":%lld,"ms":{%s"meteo":{"airt":%f,"ah":%d,"wd":%d,"ws":%f}},"hs":"%s"}]"
Как я понял это написано на С. Я сопоставил эти типы данных с данными в 61131-3. Сделал, как указанно в справке создал свой сложный тип данных. Структуру meteo с полями airt,ah,wd,ws, структуры ru1-3 с полями force, temp,ts. Вложил в структуру ms и конечную струтуру с полями ts, hs. И всё это в массив.
Назначал полученный тип данных параметру канала и в ответ нули. Датчиков на девайсе нет но, ts-вермя и hs- контрольный хэш должны прилетать.
Возвращаю исходный тип данных, вижу, строку в которой есть данные.
Ещё если назначить конечным типом данных массив структур( о чём говорят квадратные скобки) то, на выходе и массив, и теперь из 3-х строк.
А если назначить конечным типом данных структуру(что согласно справке будет не верно) то, всё раскладывается на отдельные параметры но, в них нули, как написано выше.

Через функцию STRING_TO_OBJECT тоже пытался. Тоже не работает.

Справка - фуфло. Написана не прозрачно и не однозначно. У ТП как всегда всё работает, всё здорово, "Не понимаем в чём у вас проблема". Способ конвертации крайне неудобен, нужно всё сообщение до последнего ключа раскладывать, а бывают сообщения ооооооооооочень длинные.

[{"ts":1658146763000,"status":"RN","hw_version":"0001","base": {"status":"","GSM":"Op: MegaFon RUS, RSSI: -51dBm, BER: 6.400000%","versions": {"hw_version":"0001","fw_version":"NO","fw_bckup_stable_version":"NO","fw_status":"FC"},"data":{"brd_temp":37.000000,"voltage":14.157000,"uptime":534231,"rf_status":""}},"cab": {"status":"DO,"},"ru1":{"status":"","b1":{"voltage":3.410000,"value_charge":20.000000},"brd_temp":29,"channel_occup_attempt": 0,"sessions_nak":0,"ru_ltota":1658146756000,"ru_rssi":-66,"rf_ru_rssi":0},"anem": {"temp":0.000000,"status":"WDL"},"t_hum": {"status":"THDL"},"hs":"b7ed13745b79f42642a7eeada49f3c5a"}]
А мне нужен лишь один ключ. И что делать???


Прилагаю скрины то, как делал и результаты.

PS.
Ещё момент, если в сообщении прилетают ключи с именами, совподающими с зарезервированными словами 61131-3 - беда! Т.к. по справке имена полей должны совпадать с ключами. Ничего не сделать.

В TeslaScada2 это реализовано по другому, у них не используется 61131-3 и реализовано на мой взгляд удачнее. Необязательно всё сообщение до последнего ключа преобразовывать но, ручками поработать придётся тоже.
61792617936179461795617966179761797617986179961800

Larrrik
22.07.2022, 10:27
FOR i := 1 to 5 DO
IF g_msg_eventChange_D4[i].changed THEN
Система(Time:= , Message:=g_msg_eventChange_D4[i].msg , AckTime:= , Acked:= , Severity:=200 , ClientUserId:= , ClientAddress:= , EventTypeId:= , Archive:= );
END_IF;
END_FOR;

Доброго дня.
Подскажите, .changed - это какое-то пользовательское поле, или системное?
Поиском по справке такого не нашел (
Просто интересно каким образом реализовать в MS4D аналог скрипта "по изменению значения", общеупотребительного для других систем.
Неужели всё самому нужно лепить через дополнительные переменные и функции сравнения?

VladGC
25.07.2022, 12:56
Доброго дня.
Подскажите, .changed - это какое-то пользовательское поле, или системное?
Поиском по справке такого не нашел (
Просто интересно каким образом реализовать в MS4D аналог скрипта "по изменению значения", общеупотребительного для других систем.
Неужели всё самому нужно лепить через дополнительные переменные и функции сравнения?

Сделал для себя, в первую очередь необходимо было отслеживать изменение уставок, может пригодится:
Это FB для float,
для интов надо изменить input на нужный int,
а так же localVar объявить интом


double localVar ;
bool init;

public override void Execute()
{
if (enable)
{
compareResult= input.CompareTo(localVar);
changed=false;

if ( compareResult !=0 )
{
changed=true && init;

message = "Значение параметра [ " + nameParam + " ] изменено. " + " Было: " + localVar + " Стало: " + input ;

}

localVar = input;
init = true;
}
}

Stab
25.07.2022, 19:58
Да можно, см. скриншот

Ув VladGC, судя по картинке сам параметр lreal остался целым (1267), а мы получаем только его отображение на текстовом поле 12.67. А можно ли получить параметр типа LREAL с делением на 100 без доп. программы?

Bigcrash
26.07.2022, 07:06
Установил пароль на проект. Можно ли сделать так, что при открытии, когда требуется ввести пароль, он был под звездочками, а не в открытом виде?

VladGC
26.07.2022, 07:54
Может кто-нибудь помочь с получением значений из сообщений в формате JSON? Буду крайне признателен.

У меня прилетают сообщения по MQTT в JSON. К примеру одно из наиболее маленьких:
[{"ts":1657711987000,"ms":{"ru1":{"force":-99999,"temp":-2000,"ts":0},"ru2":{"force":-99999,"temp":-2000,"ts":0},"ru3":{"force":-99999,"temp":-2000,"ts":0},"meteo":{"airt":0.000000,"ah":0,"wd":0,"ws":0.000000}},"hs":"ba5e11c1eacd3873e3084276675a8d0a"}]

На входе массив структур(судя по квадратным скобкам), который состоит из: переменной ts, структуры ms и переменной hs.
Структура ms в свою очередь состоит из структур ru1-3 и структуры meteo.
Структуры ru1-3 состоят из полей: force, temp, ts.
Структура meteo состоит из полей: airt, ah, wd, ws.
Т.е. по сути получается «матрёшка» из полей, вложенных в структуры, которые в свою очередь вложены в ещё одну структуру, которая с двумя переменными составляет массив.
Я создавал все эти структуры с соответствующими полями и потом вкладывал одно в другое, как указанно в разделе справки «Соответствие элементов JSON и MasterScada 4D.

Далее чтобы было более понятно
[{"ts":1657711987000,
"ms":{
"ru1":{"force":-99999,"temp":-2000,"ts":0},
"ru2":{"force":-99999,"temp":-2000,"ts":0},
"ru3":{"force":-99999,"temp":-2000,"ts":0},
"meteo":{"airt":0.000000,"ah":0,"wd":0,"ws":0.000000}
},
"hs":"ba5e11c1eacd3873e3084276675a8d0a"}]

Согласно справки имена ключей и типы данных должны совпадать. Разработчики устройства, с которого летят сообщения дали мне типы данных: "[{"ts":%lld,"ms":{%s"meteo":{"airt":%f,"ah":%d,"wd":%d,"ws":%f}},"hs":"%s"}]"
Как я понял это написано на С. Я сопоставил эти типы данных с данными в 61131-3. Сделал, как указанно в справке создал свой сложный тип данных. Структуру meteo с полями airt,ah,wd,ws, структуры ru1-3 с полями force, temp,ts. Вложил в структуру ms и конечную струтуру с полями ts, hs. И всё это в массив.
Назначал полученный тип данных параметру канала и в ответ нули. Датчиков на девайсе нет но, ts-вермя и hs- контрольный хэш должны прилетать.
Возвращаю исходный тип данных, вижу, строку в которой есть данные.
Ещё если назначить конечным типом данных массив структур( о чём говорят квадратные скобки) то, на выходе и массив, и теперь из 3-х строк.
А если назначить конечным типом данных структуру(что согласно справке будет не верно) то, всё раскладывается на отдельные параметры но, в них нули, как написано выше.

Через функцию STRING_TO_OBJECT тоже пытался. Тоже не работает.

Справка - фуфло. Написана не прозрачно и не однозначно. У ТП как всегда всё работает, всё здорово, "Не понимаем в чём у вас проблема". Способ конвертации крайне неудобен, нужно всё сообщение до последнего ключа раскладывать, а бывают сообщения ооооооооооочень длинные.

[{"ts":1658146763000,"status":"RN","hw_version":"0001","base": {"status":"","GSM":"Op: MegaFon RUS, RSSI: -51dBm, BER: 6.400000%","versions": {"hw_version":"0001","fw_version":"NO","fw_bckup_stable_version":"NO","fw_status":"FC"},"data":{"brd_temp":37.000000,"voltage":14.157000,"uptime":534231,"rf_status":""}},"cab": {"status":"DO,"},"ru1":{"status":"","b1":{"voltage":3.410000,"value_charge":20.000000},"brd_temp":29,"channel_occup_attempt": 0,"sessions_nak":0,"ru_ltota":1658146756000,"ru_rssi":-66,"rf_ru_rssi":0},"anem": {"temp":0.000000,"status":"WDL"},"t_hum": {"status":"THDL"},"hs":"b7ed13745b79f42642a7eeada49f3c5a"}]
А мне нужен лишь один ключ. И что делать???


Прилагаю скрины то, как делал и результаты.

PS.
Ещё момент, если в сообщении прилетают ключи с именами, совподающими с зарезервированными словами 61131-3 - беда! Т.к. по справке имена полей должны совпадать с ключами. Ничего не сделать.

В TeslaScada2 это реализовано по другому, у них не используется 61131-3 и реализовано на мой взгляд удачнее. Необязательно всё сообщение до последнего ключа преобразовывать но, ручками поработать придётся тоже.
61792617936179461795617966179761797617986179961800
Вы можете использовать c# , там есть чем поработать с json

VladGC
26.07.2022, 07:55
Ув VladGC, судя по картинке сам параметр lreal остался целым (1267), а мы получаем только его отображение на текстовом поле 12.67. А можно ли получить параметр типа LREAL с делением на 100 без доп. программы?
На счет поделить без программы я не знаю, думаю вряд ли так можно сделать.
А в чем сложность набросать пару строк?

VladGC
26.07.2022, 08:29
Установил пароль на проект. Можно ли сделать так, что при открытии, когда требуется ввести пароль, он был под звездочками, а не в открытом виде?

Тут надо писать петицию разработчикам, в бета версиях такого нет, возможно просто мало кому надо

asutp2003
27.07.2022, 13:53
Вы можете использовать c# , там есть чем поработать с json

Не будет ли у Вас примера работы(желательно в MS4D)?
Буду признателен

VladGC
28.07.2022, 08:19
Не будет ли у Вас примера работы(желательно в MS4D)?
Буду признателен

На c# примера нет, возни мне кажется там больше



Сделал стандартными средствами:

https://dropmefiles.com/Qzuuj

TEHNOLINK
20.08.2022, 12:49
Здравствуйте уважаемые специалисты, работаю с MasterSCADA 4D 1.2 и столкнулся с следующей проблемой. В проект по OPC UA я забираю массив из 1000 REAL и мне нужно отобразить на мнемосхеме конкретный индекс массива например [100] или [800] но перетягивать значение путем драген дроп возможно только всего массива а не конкретного индекса……В заранее благодарю за ответ.

b_aleks
21.08.2022, 08:42
Здравствуйте уважаемые специалисты, работаю с MasterSCADA 4D 1.2 и столкнулся с следующей проблемой. В проект по OPC UA я забираю массив из 1000 REAL и мне нужно отобразить на мнемосхеме конкретный индекс массива например [100] или [800] но перетягивать значение путем драген дроп возможно только всего массива а не конкретного индекса……В заранее благодарю за ответ.

Создаете параметр типа LREAL, в программе ему присваиваете значение определенного индекса массива. Сам индекс можно тоже задинамизировать. Далее все кидаете в окно.
62191
62192

TEHNOLINK
22.08.2022, 10:57
Спасибо "b_aleks"

Dead Kid
25.08.2022, 12:22
Здравствуйте. Нужна помощь. Стоит задача: отслеживать состояние системы и экспортировать в CSV файл. Состояние передаётся int переменной от ПР200 (0-останов, 1-авто,2-ручной,3-авария). Решил сделать через архивный журнал, создав свою тревогу под каждое состояние и оставив только столбцы "Время активации" и "Сообщение". Проблема в том, что при смене состояния (тревог) в журнал пишется строка об активации новой тревоги и пропадании старой тревоги. Как заставить журнал не писать исчезновение предыдущего состояния и есть ли более лёгкий способ записывать состояние переменной в журнал (переводя в текстовый вид)?

b_aleks
25.08.2022, 12:56
Здравствуйте. Нужна помощь. Стоит задача: отслеживать состояние системы и экспортировать в CSV файл. Состояние передаётся int переменной от ПР200 (0-останов, 1-авто,2-ручной,3-авария). Решил сделать через архивный журнал, создав свою тревогу под каждое состояние и оставив только столбцы "Время активации" и "Сообщение". Проблема в том, что при смене состояния (тревог) в журнал пишется строка об активации новой тревоги и пропадании старой тревоги. Как заставить журнал не писать исчезновение предыдущего состояния и есть ли более лёгкий способ записывать состояние переменной в журнал (переводя в текстовый вид)?

ФБ FireBaseEvent

b_aleks
25.08.2022, 12:59
P.S.Доп вопрос: как сделать подписи в заголовке открывающихся окон?

Если речь про всплывающее окно, то у события "Открыть всплывающее окно" есть свойство "Текст заголовка"
62272

Dead Kid
25.08.2022, 14:36
ФБ FireBaseEvent

Спасибо, использовал, но возникла другая проблема. Значение, получаемое по сети не передаётся в программу фбд. Сетевую переменную переносил сразу в программу, без промежуточных.
62275

b_aleks
25.08.2022, 15:27
Сетевую переменную переносил сразу в программу, без промежуточных.
62275

Поэтому и не работает. Нужно через промежуточный параметр объекта тащить

P.S. А зачем использовать OPC-сервер для опроса ПР200, если MasterSCADA 4D имеет встроенный драйвер Modbus?

Dead Kid
25.08.2022, 15:36
Поэтому и не работает. Нужно через промежуточный параметр объекта тащить

P.S. А зачем использовать OPC-сервер для опроса ПР200, если MasterSCADA 4D имеет встроенный драйвер Modbus?

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

b_aleks
25.08.2022, 16:00
как подключать к мастер скаде модбас напрямую я не знаю.

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

Dead Kid
25.08.2022, 17:49
Тут все тоже самое, что вы делаете в OPC. Добавляете протокол Mudbus, в него модуль Modbus, потом добавляете каналы. Естественно, у протокола и модуля надо настроить подключение, таймауты, адреса.

Этим я займусь в свободное время, а сейчас требуется проверенный рабочий способ. Спасибо за помощь.

Bigcrash
28.08.2022, 07:54
Добрый день.
Вдруг откуда не возьмись, стала появляться проблема.
АРМ1(прим. это ПК) - Не соединения с узлом.
Уже что только не перепробовал, и переустановка и еще кучу манипуляций. Иногда помогает полная перезагрузка системы.
Если скажем после этого закрыть проект и открыть какой-то учебный, результат тот же - не соединения. Но если перезапустить все, то учебные работают нормально.

Minarion
29.08.2022, 11:30
Здравствуйте!
Кто-то сталкивался с использованием нескольких экземпляров ФБ SqlRequestWithResult в одном проекте с разными структурами в выходе Result? По отдельности работает, но если сделать в локальной библиотеке 2 экземпляра ФБ, то проект ложится с ошибкой старта протокола.

ВВВ555
29.08.2022, 17:05
Добрый день, не удается добавить шкалу для параметра, являющегося элементом массива. Выдает ошибку:

Ошибка установки значения True свойству Использовать HiHi :
'Объекты.Главное окно.Данные.1' [Id=85272]:ItemsManagementService : не найдено описание подэлемента с refName ScaleSettings

Подскажите, как исправить?

Simone
29.08.2022, 20:05
Народ, подскажите, техподдержка для Master SCADA 4D работает, есть ли смысл к ним обращаться?

Minarion
30.08.2022, 06:41
Народ, подскажите, техподдержка для Master SCADA 4D работает, есть ли смысл к ним обращаться?

Да. Очень не быстро, но работает.

AlexBut
31.08.2022, 12:23
Здравствуйте!
Рассматриваем переход на МастерСКАДА4 на линукс но возникли сомнения насчёт связи с отечественными счётчиками.
В описании на счётчик Энергомера CE301-303: "Обмен выполняется в соответствии с протоколом ГОСТ IEC 61107-2011."
Можно было бы использовать OPC-Servers, но:
-насколько я понимаю OPC-Servers на Линукс нет или есть?
-по крайней мере в демоверсии MasterSCADA4 'АРМ-протоколы' нет такого протокола ГОСТ IEC 61107-2011 ?
Как быть?

b_aleks
31.08.2022, 13:10
Здравствуйте!
Рассматриваем переход на МастерСКАДА4 на линукс но возникли сомнения насчёт связи с отечественными счётчиками.
В описании на счётчик Энергомера CE301-303: "Обмен выполняется в соответствии с протоколом ГОСТ IEC 61107-2011."
Можно было бы использовать OPC-Servers, но:
-насколько я понимаю OPC-Servers на Линукс нет или есть?
-по крайней мере в демоверсии MasterSCADA4 'АРМ-протоколы' нет такого протокола ГОСТ IEC 61107-2011 ?
Как быть?

Подключаете библиотеку Energomera, далее в протоколы добавляете Energomera RTU или Energomera over TCP, в протокол уже добавляете счетчик CE303 или CE301
62400
62401

AlexBut
01.09.2022, 07:52
При покупке лицензии на МастерСКАДА4 речь идёт о количестве точек-
что под этим подразумевается? Количество узлов или общее количество тэгов?
И что подразумевается под узлом- один адрес по любому протоколу?

AlexBut
01.09.2022, 07:56
У меня демоверсия МастерСКАДА4 и встретил проблему-
Если подключаться к удалённому OPC-серверу по UA то всё хорошо если
мало тэгов в OPC а если много(У меня более 4500) то при попытке втянуть
тэги виснет и OPC и мастер СКАДА и далее только через закрытие.
(OPC InSAT Modbus universal порт UA 54000 настраиваю).
(даже если пытаюсь втянуть малое количество тэгов-
виснет уже на этапе расрытия дерева тэгов в OPC)
Это потому что демо?

b_aleks
01.09.2022, 08:53
При покупке лицензии на МастерСКАДА4 речь идёт о количестве точек-
что под этим подразумевается? Количество узлов или общее количество тэгов?
И что подразумевается под узлом- один адрес по любому протоколу?

Количество точек - это количество регистров переменных. Откройте панель управления узлом, нажмите кнопку "Сформировать конфигурацию". Спустя некоторое время в таблице отобразятся все используемые в проекте опции, а также количество точек.
Что такое узел можно найти в справке.
Узел - это верхний элемент дерева системы: Контроллер, АРМ, Сервер, Облако и пр., которому соотвествует реальное или виртуальное оборудование

AlexBut
02.09.2022, 04:44
Здравствуйте!
Подключил в МастерСКАДА45-демо библиотеку Энергомера и возник вопрос-
если к протоколу Energomera over TCP я добавляю модуль вв/выв CE303 например,
то настройки IP находятся в протоколе "Energomera over TCP", а настройки CE303(модуля вв/выв)
такие же как в Energomera RTU (т.е. у модуля вв/выв CE303 просто адрес, 5 , например)
Вопрос-у CE303 нет прямого подключения по TCP и под "Energomera over TCP" подразумевается
преобразователь TCP-RS485?(Как я понимаю иначе у модулей вв/выв CE303 тоже была бы настройка
IP).
Или я что-то не понял?

AlexBut
02.09.2022, 09:08
По Энергомере кажется понял- у них нет TCP физически на счётчиках, значит только через преобразователи, извините

melky
02.09.2022, 09:28
AlexBut вы слишком много хотите от счетчиков, еще и LAN порт на борту :)
Мало того, некоторые счетчики требуют еще и внешнего питания для интерфейса RS485, а энергомера так вообще работает в режиме 7-Е-1 насколько помню.

AlexBut
02.09.2022, 10:33
Разрешите ещё один вопрос -при покупке лицензии на МастерСКАДА45 речь идёт о среде разработки, исполнительной системе RT и клиентах.
Есть небольшой опыт работы в демоверсии МастерСКАДА4. Но возник вопрос в чём отличие клиента от веб-визуализации?
(Веб-визуализация понравилась- в отличие от МастерСКАДА3)

AlexBut
06.09.2022, 07:26
Наверно вопрос про клиента и веб-визуализацию поставил слишком обще- разрешите спросить конкретней-
сколько клиентов сторонних(браузеров на разных компьютерах в сети) можно подключить к исполнительной среде и как это связано с лицензией?

VladimirIS
06.09.2022, 08:35
Наверно вопрос про клиента и веб-визуализацию поставил слишком обще- разрешите спросить конкретней-
сколько клиентов сторонних(браузеров на разных компьютерах в сети) можно подключить к исполнительной среде и как это связано с лицензией?

Один клиент в комплекте.
Каждый дополнительный в зависимости от количества (https://support.mps-soft.ru//Site/MasterSCADA%204D/Price%204D.pdf). Один клиент - 42000р.

Bigcrash
06.09.2022, 12:51
Разрешите ещё один вопрос -при покупке лицензии на МастерСКАДА45 речь идёт о среде разработки, исполнительной системе RT и клиентах.
Есть небольшой опыт работы в демоверсии МастерСКАДА4. Но возник вопрос в чём отличие клиента от веб-визуализации?
(Веб-визуализация понравилась- в отличие от МастерСКАДА3)
Среда разработки бесплатная. Всегда.
Покупаете кол-во ОДНОВРЕМЕННО ПОДКЛЮЧЕННЫХ КЛИЕНТОВ к серверу. Хоть через браузер сторонний, хоть через встроенный клиент визуализации. 1 подключение - 1 клиент.

AlexBut
08.09.2022, 08:49
У нас исп-ся много объектов с контроллерами i8411, которые мы подключаем к МастерСКАДА3 через АРМ-добавить контроллер-i8000
и коннектимся к ним через COM4 т.к. у i8411 нет эзернет. В МастерСКАДА4 подключил библиотеку ICPDAS и появилась возможность
подключать к "Система" контроллеры LinPAC8000,WinPAC8000,XPAC8000 но судя по настройкам они все подключаются по эзернет,
что делать?

melky
08.09.2022, 09:54
AlexBut полагаю так же по старинке через OPC, ведь 3-я версия вся работает на данном принципе.

ВВВ555
08.09.2022, 10:16
Подскажите пожалуйста, есть такая задача: нужно открыть бинарный файл, прочитать 4 байта в определенном месте и преобразовать в число. Как это можно сделать с помощью Мастерскады? Похожих инструментов я не нашел, возможно через C# надо делать, но у меня не получается.

AlexBut
09.09.2022, 03:32
AlexBut полагаю так же по старинке через OPC, ведь 3-я версия вся работает на данном принципе.

возможно, но в OPC нет такого. В МастерСКАДА3 мы подключаем сразу контроллер I8000 и все модули расширения и не ведаем какой там протокол.
Насколько я понимаю в самом контроллере должна быть прошивка МастерПЛС при этом.

m.petrovich
09.09.2022, 11:50
возможно, но в OPC нет такого. В МастерСКАДА3 мы подключаем сразу контроллер I8000 и все модули расширения и не ведаем какой там протокол.
Насколько я понимаю в самом контроллере должна быть прошивка МастерПЛС при этом.

Добрый день. Контроллер со средой исполнения МС3 не программируется в МС4 и наоборот. Это совершенно разное ПО.

Minarion
09.09.2022, 13:45
Здравствуйте!
Подскажите: есть иконка предмета, цветом она отображает состояние прибора. Каким образом можно получить имя/название этой иконки?
Идя в том что по клику правой кнопки мыши открывается всплывающее окно и там уже сразу подставляется название этого элемента в текст. Как это вручную все сделать понятно, проблема в том что таких элементов тысячи, и не хочется рисовать тысячи всплывающих окон.
Спасибо!

borgivan
09.09.2022, 18:54
Коллеги, а кто-то настраивал репликацию на PostgreSQL? Кейс такой - два сервера (условно А и Б) + АРМ. На серверах установлено по runtime, которые судя по всему настроить получилось. Что с базой делать? Была идея на тех же серверах поднять по PostgreSQL, реплицировать их, но тут возникает вопрос, что в архивах репликацию не настроить, они умеют только в один адрес заплёвываться (судя по доке). То есть настроив на сервере А (БД) primary, на сервере Б - standby, в случае отвала сервер Б (БД) перейдёт standby->primary, a MastereSCADA будет пытаться писать на сервер А, и репликация БД будет до лампочки. Как такую проблему решали? Насколько я понял в PostgreSQL невозможно и в priimary и в standby писать одновременно?

Bigcrash
11.09.2022, 12:58
Народ, может кто решал такую задачу в МС4. По сути довольно стандартная вещь, но решить не получается.
Задача: при наведении на определенную область экрана (например, картинка на мнемосхеме) открывалось всплывающее окно (с этой частью задачи проблем не возникло), а при уведения курсора за эту область это всплывающее окно закрывалось (вот тут бился неделю, все безрезультатно). Поэтому обращаюсь за помощью к более опытным коллегам. Неужели это невозможно сделать?

Minarion
15.09.2022, 15:21
Здравствуйте!
В справке по дереву множественного выбора есть пример:
62643
Подскажите как создать такой массив в локальной библиотеке.

СмирноваЛС
16.09.2022, 13:39
Простой вопрос, но почему-то возникли проблемы)
Настраиваю связь по Modbus TCP между Masterscada 4d и удаленным контроллером. Данные в контроллере находятся в области %MW.
Пытаюсь настроить чтение аналоговых и дискретных сигналов в модуле Modbus TCP:
DI - тип значения: логический, тип ячейки: регистр хранение
AI - тип значения: вещественный, тип ячейки: регистр хранение
В каком виде надо записывать адрес ячейки?
Допустим для DI со стороны контроллера адрес %MW1000.01, для AI %MW1100.
Возможно ли такое чтение DI сигналов? Или надо читать слово и программно разбивать по сигналам?

melky
16.09.2022, 14:40
Данные в контроллере находятся в области %MW это внутри контроллера

Для Modbus данные должны быть в регистрах, или связаны с регистрами...

Minarion
19.09.2022, 09:00
Здравствуйте!
Подскажите, как импортировать в проект иконки?

СмирноваЛС
19.09.2022, 10:06
Для Modbus данные должны быть в регистрах, или связаны с регистрами...

Переформулирую вопрос.
Контроллер, с которым связываемся, отдает все данные через Holding registers: и аналоги, и дискреты.
Если в данном случае адрес для AI в Masterscada записывается как 40001 для 0 регистра, то можно ли прочитать отдельные DI из этой же области или надо читать словом и программно разбирать на биты?
Настройка внутри контроллера не наша, поменять не можем.

melky
19.09.2022, 10:15
СмирноваЛС если данные отдаются полностью через Holding то у вас как бы два варианта.
1. ПЛК, использует регистр для одного bool (есть и такое, например у Beckhoff)
2. ПЛК использует целиком WORD и надо разбирать по битам

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

СмирноваЛС
20.09.2022, 17:15
Ни у кого не возникало проблем в новых версиях MScada с изображениями? Работала в 1.2.14 всё нормально было, поставила более новую (понадеялась на оптимизацию работы) - теперь вместо подставленных изображений в среде разработки только серый значок иконки из палитры. В режиме РТ всё нормально.

Юрий Горелый2
21.09.2022, 16:23
Переформулирую вопрос.
Контроллер, с которым связываемся, отдает все данные через Holding registers: и аналоги, и дискреты.
Если в данном случае адрес для AI в Masterscada записывается как 40001 для 0 регистра, то можно ли прочитать отдельные DI из этой же области или надо читать словом и программно разбирать на биты?
Настройка внутри контроллера не наша, поменять не можем.

в принципе в мастерскаде можно посмотреть что именно она шлёт в порт. для этого надо подключиться putty в режимер raw по порту 31550 и там дать команду о

https://www.youtube.com/watch?v=xBIJ3ZOO08E - 3:34
.

Larrrik
03.10.2022, 12:27
Коллеги, доброго дня.
Всякий раз при смене пользователя в запущенном клиенте внизу появляется строка статуса зеленого цвета с надписью "... Подписка журнала восстановлена ..." (полагаю, подразумевается используемый журнал тревог и сообщений).
2 вопроса:
1. Можно ли появление именно этого сообщения где-то отключить, не отключив одновременно все остальные сообщение (например, важные ошибки) в строке статуса?
2. У строки статуса справа есть крестик, который вроде как должен убирать сообщение, по факту он его просто сворачивает, и чтобы окончательно избавится нужно открыть его в панели справа и очистить. Можно ли это как-то настроить так чтобы крестиком (или еще как-то в один клик) сообщения убирались насовсем?

b_aleks
03.10.2022, 15:45
Коллеги, доброго дня.
Всякий раз при смене пользователя в запущенном клиенте внизу появляется строка статуса зеленого цвета с надписью "... Подписка журнала восстановлена ..." (полагаю, подразумевается используемый журнал тревог и сообщений).
2 вопроса:
1. Можно ли появление именно этого сообщения где-то отключить, не отключив одновременно все остальные сообщение (например, важные ошибки) в строке статуса?
2. У строки статуса справа есть крестик, который вроде как должен убирать сообщение, по факту он его просто сворачивает, и чтобы окончательно избавится нужно открыть его в панели справа и очистить. Можно ли это как-то настроить так чтобы крестиком (или еще как-то в один клик) сообщения убирались насовсем?

1. В узле у Шаблона экрана есть настройка "Уровень предупреждений" - поставьте значение "Ошибки".
2. Вроде бы нельзя. Если только полностью убрать предупреждения ))

Larrrik
03.10.2022, 16:48
1. В узле у Шаблона экрана ...
Спасибо!
Очень жаль что на форуме до сих пор :confused: нет кнопки "Спасибо", и всякий раз приходится раздувать тему благодарственными сообщениями :(

Larrrik
04.10.2022, 21:20
Помогите разобраться с ФБ UsersAdd.
Как показано в справке:
62954
ФБ может использоваться как самостоятельно, так и внутри другой программы.
Проверили - в обооих случаях ФБ отрабатывает, пользователь добавляется.
НО: сообщение о добавлении пользователя формируется только в результате работы самостоятельного ФБ.
Притом что и программа с ФБ внутри и самостоятельный ФБ запускаются одинаково - с кнопки "По вызову", внутри программы больше никакой логики кроме этого ФБ, на входах константы (различные для обоих случаев).
Галочка на "Журнал" стоит, исполняются под одним и тем же пользователем.
Может кто-то понимает логику: в чем тут может быть скрытый нюанс? :confused:
Почему при включении блока в программу (как показано в справке) сообщение о добавлении пользователя может не писаться в журнал?

СмирноваЛС
05.10.2022, 16:24
Добрый день!
Возникла такая проблема: при добавлении в сообщения объекта тревоги и запуске проекта с экземпляром этого объекта можно увидеть, что у этой тревоги изначально что "Активность", что "Квитированность" равны false. Можно ли сделать так, чтобы "Квитированность" изначально была true? Просто поставить галочку на начальное значение поля "Квитированность" (или параметра, связанного с полем "Квитированность") не помогает.
Необходимо, чтобы сделать цветовое мигание на визуализации объектов с активной, но неквитированной тревогой. Не могу отличить false изначальный и false из-за сработавшей тревоги.

b_aleks
05.10.2022, 16:55
Просто поставить галочку на начальное значение поля "Квитированность" (или параметра, связанного с полем "Квитированность") не помогает.


На 1.2.16 работает, если у тревоги поставить галочку "Квитированность". Только зачем это, если вам нужна неквитированная тревога?

СмирноваЛС
05.10.2022, 17:08
На 1.2.16 работает, если у тревоги поставить галочку "Квитированность". Только зачем это, если вам нужна неквитированная тревога?

В 1.2.16 у меня не работает отображение изображений при разработке видеокадра. Только серая иконка, что там есть этот элемент. При рантайме все отображается.

Так я определяю неквитированную тревогу по значению полю "Квитированность". И получается, что при старте проекта все объекты мигают, так как у всех Квитированность = false.

Еще вопрос, нет ли какой-то возможности квитировать все тревоги разом? Или только через создание какой-то глобальной переменной и привязывания её во все объекты?

b_aleks
06.10.2022, 10:55
И получается, что при старте проекта все объекты мигают, так как у всех Квитированность = false.
Так используйте инверсию.


Еще вопрос, нет ли какой-то возможности квитировать все тревоги разом? Или только через создание какой-то глобальной переменной и привязывания её во все объекты?
ФБ EventsCounter. Задаете условие выборки, а потом квитируете отфильтрованные сообщения.

СмирноваЛС
06.10.2022, 11:49
Так используйте инверсию.

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

За подсказанный ФБ спасибо.

b_aleks
06.10.2022, 12:43
Как-то мы друг друга недопонимаем
Я не совсем понимаю, как именно вы хотите использовать свойство "Квитированность". Если вы сообщение не квитировали, то у вас соответствующее свойство будет false. Как только квитировали - станет true.


А с проблемой изображений вы не сталкивались?
Тут вообще не понял про что. Про какой контрол речь? В какой-то из версий проскакивал какой-то контрол, связанный с проигрыванием чего-то там, но на 1.2.16 его нет. Вы про него говорите?

СмирноваЛС
06.10.2022, 14:06
Я не совсем понимаю, как именно вы хотите использовать свойство "Квитированность". Если вы сообщение не квитировали, то у вас соответствующее свойство будет false. Как только квитировали - станет true.


Всё правильно. Но если тревога еще ни разу в проекте не срабатывала, то её поле "Квитированность" тоже равно false. Как только она срабатывает, а я её квитирую, то конечно "Квитированность" становится true.

63003
63004

Вообще логика элементарная. Если "Квитированность" = true и "Активность" = true - красный цвет, "Квитированность" = true и "Активность" = false - белый цвет, "Квитированность" = false - мигание.

В итоге из-за стартового значения квитированности все объекты мигают при инициализации, даже без активации тревог.
Поэтому изначальный вопрос и был: "Можно ли сделать так, чтобы изначально поле "Квитированность" было true".

Про изображения: я говорила про примитив "Картинка".
Сейчас скачала и поставила версию 1.2.18, в нем это уже работает.
Но возвращаясь к тревогам - если на квитированность ставить галочку на начальное значение true, то логика вообще ломается напрочь. Она всё еще остается false при инициации, при активации и квитировании тревоги становится true и больше не меняется, независимо от активности.

b_aleks
06.10.2022, 16:31
Всё правильно. Но если тревога еще ни разу в проекте не срабатывала, то её поле "Квитированность" тоже равно false. Как только она срабатывает, а я её квитирую, то конечно "Квитированность" становится true.

63003
63004

Вообще логика элементарная. Если "Квитированность" = true и "Активность" = true - красный цвет, "Квитированность" = true и "Активность" = false - белый цвет, "Квитированность" = false - мигание.

В итоге из-за стартового значения квитированности все объекты мигают при инициализации, даже без активации тревог.
Поэтому изначальный вопрос и был: "Можно ли сделать так, чтобы изначально поле "Квитированность" было true".

Про изображения: я говорила про примитив "Картинка".
Сейчас скачала и поставила версию 1.2.18, в нем это уже работает.
Но возвращаясь к тревогам - если на квитированность ставить галочку на начальное значение true, то логика вообще ломается напрочь. Она всё еще остается false при инициации, при активации и квитировании тревоги становится true и больше не меняется, независимо от активности.

Какой сакральный смысл заложен в мигание? :) Если пропущена (не квитирована) тревога, то кнопочка объекта мигает? Если так, то для чего это нужно?

СмирноваЛС
06.10.2022, 16:53
Какой сакральный смысл заложен в мигание? :) Если пропущена (не квитирована) тревога, то кнопочка объекта мигает? Если так, то для чего это нужно?

Стандартное решение в моей области, служит для интеллектуальной поддержки оператора. Мигает не кнопка, а допустим индикатор уровня/фон окна числового вывода и тд. Также осуществляется звуковая сигнализация. Одно из требований морского регистра.

AlexBut
07.10.2022, 06:59
Здравствуйте! Я разбираюсь насчёт установки MS4D в linux. Я правильно понял,что для linux есть только исп система(RT),
а среды разработки DT нет?

Юлия Лукина
07.10.2022, 09:01
Добрый день! Да, верно!

AlexBut
12.10.2022, 12:14
Добрый день.
Прошу подсказать где искать-есть контроллер со встроенным веб-сервером и без стандартного протокола
чтобы подключить по модбас,например. Но по InTouch знаю , что можно веб-портал втянуть в окно объекта
СКАДА и не изобретать велосипед(свои окна).Не подскажете где это в MS4D?

b_aleks
12.10.2022, 13:17
Добрый день.
Прошу подсказать где искать-есть контроллер со встроенным веб-сервером и без стандартного протокола
чтобы подключить по модбас,например. Но по InTouch знаю , что можно веб-портал втянуть в окно объекта
СКАДА и не изобретать велосипед(свои окна).Не подскажете где это в MS4D?

Если я правильно понял, то добавьте в окно контрол "Контейнер окна", у него есть свойство "Окно по умолчанию/URL" - сюда прописываете айпишник контроллера (тот адрес, по которому заходите на веб-морду контроллера)

OlegGEORG
12.10.2022, 17:58
Добрый вечер. Подскажите, пожалуйста, как можно реализовать отправку, прием, обработку SMS сообщений, используя модем и MS4 на ПК?

AlexBut
13.10.2022, 04:58
Если я правильно понял, то добавьте в окно контрол "Контейнер окна", у него есть свойство "Окно по умолчанию/URL" - сюда прописываете айпишник контроллера (тот адрес, по которому заходите на веб-морду контроллера)

Спасибо ,попробовал и вроде должно работать , но не работает, хотя от кнопки(события-клик-открыть адрес) , настроенной на тот же URL(ya.ru) работает, а контейнер пустой.Может при указании URL в свойствах контейнера надо какие-нибудь кавычки, хотя пробовал разные-не работает

Александр Пинэко-Скворцов
13.10.2022, 09:36
Добрый вечер. Подскажите, пожалуйста, как можно реализовать отправку, прием, обработку SMS сообщений, используя модем и MS4 на ПК?

Добрый день!
Воспользуйтесь блоками READ_SMS и SEND_SMS из библиотеки Общая - Системные. Интерфейсы блоков описаны в справке и руководстве пользователя MS4D.

AlexBut
17.10.2022, 07:56
Спасибо ,попробовал и вроде должно работать , но не работает, хотя от кнопки(события-клик-открыть адрес) , настроенной на тот же URL(ya.ru) работает, а контейнер пустой.Может при указании URL в свойствах контейнера надо какие-нибудь кавычки, хотя пробовал разные-не работает

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

VZABO
17.10.2022, 11:52
Добрый день! У ПЛК110-MS4 [M02] два rs485 физических входа. Возможно ли их использовать в режиме slave отдельно друг от руга (например rs485(1) с адресом 1 для подключения СП300, контролер slave. А rs485(2) с адресом 9 для подключения к АРМ на компьютере, контролер также slave)?

asuman
17.10.2022, 13:22
День добрый.

Может кто знает, что за ошибка в рантайме МС4Д, при вызове программы - Call POU ERROR.
В справке нет описания.

melky
17.10.2022, 13:42
Ошибка вызова программного блока. Это если дословно :)

asuman
17.10.2022, 14:26
Это понятно, но спасибо. :)

b_aleks
17.10.2022, 14:42
Это понятно, но спасибо. :)

Так напишите подробнее, с каким ФБ работаете

asuman
17.10.2022, 15:34
Обычная программа на ST, работа с структурами. Из одной в другую пишется.
Программа в библиотечном объекте. При работе с экземплярами этого объекта и вылезает такая ошибка.
Я надеялся на какую-нибудь расшифровку данной ошибки, немного подробностей, так сказать.
Компиляция ведь ошибок не выдает.

AlexBut
26.10.2022, 04:38
Здравствуйте!
В MS3 у объекта есть настройка "опрос-собственный цикл" как защита от подвисания для медленных процессов,
а в MS4D другие настройки-место исполнения:
-в задаче родительского объекта
-в основной задаче узла
-в задаче экрана
Какую задачу выбрать для объекта если предполагается что он может зависнуть , например при потере связи с УСО,
чтоб он не подвесил другие объекты проекта? Или может эти настройки где-то в другом месте следует искать?

Спасибо

AlexBut
26.10.2022, 04:42
Ещё вопрос- в MS3 написал пробный скрипт C# для парсинга работающий случайного сайта-но втянуть его в MS4D оказалось не так просто.
В MS3 есть "экспортировать/импортировать скрипт" в формате XML,а как его втянуть в MS4D? Сам скрипт из MS3 здесь -может кто подскажет.
(Стоит задача вытянуть данные из веб-портала контроллера, у которого нет модбас(контроллер Grundfos Hydro MPC), но пока нет удалённого подключения к контроллеру).

Спасибо

AlexBut
27.10.2022, 06:05
Здравствуйте!
Возник вопрос как переносить объект из проекта в проект-
-открываю два проекта одновременно
-копирую объект из проекта и вставляю в другой
-и вроде всё ок, но проект в который объект вставлен компилируется
с ошибкой "ресурсы в <null> (скрин во вложении)
И я так понимаю ресурсы вставленного объекта оказываются не привязаны к самому вставленному объекту
хотя копирую объект целиком.
Так как лучше копировать объект?

Спасибо

AlexBut
27.10.2022, 08:58
Ещё позвольте вопрос.
Не нашёл как запустить проект в среде исполнения без среды разработки.
Через "подключить узел (с загрузкой конфигурации)" всё ок.
А если пытаюсь запустить RT отдельно через программную группу MPSSoft-MasterSCADA 4D RT,
то сначала ругается что не может найти run_hmi.bat, а потом нажимаешь "исправить" и не запускается,
какую-то ошибку выдаёт(что-то насчёт Program Files)?

Спасибо

Александр Пинэко-Скворцов
27.10.2022, 09:36
Ещё позвольте вопрос.
Не нашёл как запустить проект в среде исполнения без среды разработки.
Через "подключить узел (с загрузкой конфигурации)" всё ок.
А если пытаюсь запустить RT отдельно через программную группу MPSSoft-MasterSCADA 4D RT,
то сначала ругается что не может найти run_hmi.bat, а потом нажимаешь "исправить" и не запускается,
какую-то ошибку выдаёт(что-то насчёт Program Files)?

Спасибо


Добрый день!

Приложите, пожалуйста, скриншот ошибки и полный путь к папке установки MasterSCADA 4D 1.2.

AlexBut
27.10.2022, 09:45
Здравствуйте!
Возник вопрос как переносить объект из проекта в проект-
-открываю два проекта одновременно
-копирую объект из проекта и вставляю в другой
-и вроде всё ок, но проект в который объект вставлен компилируется
с ошибкой "ресурсы в <null> (скрин во вложении)
И я так понимаю ресурсы вставленного объекта оказываются не привязаны к самому вставленному объекту
хотя копирую объект целиком.
Так как лучше копировать объект?

Спасибо

Спасибо, раскопал.
У меня так- вставить объект, закрыть-открыть проект(после этого компилируется (проверка конфигурации) без ошибок) и только потом "Назначить в узел" и после начинает работать.
Если сразу после "вставить" назначить в узел, то не работает.

Спасибо

AlexBut
27.10.2022, 10:02
Добрый день!

Приложите, пожалуйста, скриншот ошибки и полный путь к папке установки MasterSCADA 4D 1.2.

Скриншоты:ошибка, путь установки, путь где проекты

AlexBut
27.10.2022, 10:17
Спасибо, раскопал.
У меня так- вставить объект, закрыть-открыть проект(после этого компилируется (проверка конфигурации) без ошибок) и только потом "Назначить в узел" и после начинает работать.
Если сразу после "вставить" назначить в узел, то не работает.

Спасибо

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

AlexBut
27.10.2022, 10:38
Добрый день!

Приложите, пожалуйста, скриншот ошибки и полный путь к папке установки MasterSCADA 4D 1.2.

Раскопал-несмотря на то, что при запуске RT выпадает сообщение об ошибке, RT запускается т.к. после этого
начинает работать клиент местный. (перед запуском RT делаю остановить сервер из программной группы и клиент перестаёт работать).

В связи с этим вопрос-а можно без среды разработки запустить другой проект, не тот который был загружен из MS4D?

Спасибо

AlexBut
28.10.2022, 03:51
Здравствуйте!
В MS3 у объекта есть настройка "опрос-собственный цикл" как защита от подвисания для медленных процессов,
а в MS4D другие настройки-место исполнения:
-в задаче родительского объекта
-в основной задаче узла
-в задаче экрана
Какую задачу выбрать для объекта если предполагается что он может зависнуть , например при потере связи с УСО,
чтоб он не подвесил другие объекты проекта? Или может эти настройки где-то в другом месте следует искать?

Спасибо

А кажется разобрался-создать в АРМ отдельную задачу , объект -"назначить в задачу".

Спасибо

Hemann
31.10.2022, 22:06
Коллеги, приветствую вас!

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

b_aleks
01.11.2022, 08:14
Коллеги, приветствую вас!

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

Заголовок всплывающего окна задается в свойствах события, которое вызывает открытие этого окна. Само свойство - Текст заголовка.
По поводу полос прокрутки задается там же. Свойство Способ отображения - надо выбрать прокрутить.
63550

Hemann
04.11.2022, 11:31
Заголовок всплывающего окна задается в свойствах события, которое вызывает открытие этого окна. Само свойство - Текст заголовка.
По поводу полос прокрутки задается там же. Свойство Способ отображения - надо выбрать прокрутить.
63550

Спасибо большое!

Minarion
09.11.2022, 14:45
Здравствуйте!
Поделитесь библиотеками иконок) А то что есть, не подходит, а то что надо найти не могу. И буду премного благодарен если подкините почитать про создание своих собственных иконок.
Спасибо!

b_aleks
09.11.2022, 16:25
И буду премного благодарен если подкините почитать про создание своих собственных иконок.

Открываете справку по MS4D и читаете статью "Разработка SVG файла с изображением"

Minarion
10.11.2022, 07:17
Открываете справку по MS4D и читаете статью "Разработка SVG файла с изображением"

О, спасибо!

Minarion
10.11.2022, 07:18
И ещё вопрос: использую SysProcessCreate. Запускается приложение на машине, на которой запущен RT. А как заставить запускаться это приложение на машине с обычным клиентом?

b_aleks
10.11.2022, 08:34
И ещё вопрос: использую SysProcessCreate. Запускается приложение на машине, на которой запущен RT. А как заставить запускаться это приложение на машине с обычным клиентом?

Как вариант пробовать получить удаленный доступ к командной строке другого ПК (где установлен клиент) в локальной сети.
http://pk-help.com/server/psexec?ysclid=laamu0f3u3220316185
А дальше запускать требуемую прогу через эту удаленную консоль

Minarion
11.11.2022, 15:43
И снова здравствуйте!)
Подскажите пожалуйста - есть иконка в локальной библиотеке. Можно ли сразу в библиотеке привязать конвертер значений для заливки фона? Чтоб при добавлении в проект просто перетащить параметр на цвет фона, а само преобразование цифр в цвет уже было прописано.

b_aleks
11.11.2022, 16:27
И снова здравствуйте!)
Подскажите пожалуйста - есть иконка в локальной библиотеке. Можно ли сразу в библиотеке привязать конвертер значений для заливки фона? Чтоб при добавлении в проект просто перетащить параметр на цвет фона, а само преобразование цифр в цвет уже было прописано.

В окне иконки (в бибилиотечном объекте) на клеммник входов добавляете переменную, тащите ее на свойство, настраиваете динамизацию. А когда эту иконку добавляете в окно, тогда у вас в свойствах появится группа "Параметры", там будет та самая переменная, которую вы создавали в клеммнике окна. На эту переменную тащите параметр из дерева объектов.

63787

Minarion
14.11.2022, 08:40
В окне иконки (в бибилиотечном объекте) на клеммник входов добавляете переменную, тащите ее на свойство, настраиваете динамизацию. А когда эту иконку добавляете в окно, тогда у вас в свойствах появится группа "Параметры", там будет та самая переменная, которую вы создавали в клеммнике окна. На эту переменную тащите параметр из дерева объектов.

63787
Здравствуйте!
Сделал как вы порекомендовали:
63823
Добавил параметр "цвет лайка", перетащил на цвет иконки, настроил динамизацию, однако не меняется цвет(
Можете подсказать где я неправ?

b_aleks
14.11.2022, 09:27
Здравствуйте!
Сделал как вы порекомендовали:
63823
Добавил параметр "цвет лайка", перетащил на цвет иконки, настроил динамизацию, однако не меняется цвет(
Можете подсказать где я неправ?

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

Minarion
14.11.2022, 10:48
Потому что вы хрень какую-то сделали, а не так, как я писал. Во вложении сделал проект, сделал для одного свойства.

Спасибо Вам большое!

Maksim13
15.11.2022, 10:46
Добрый день!
Хочу разобраться во всплывающих окнах MasterScada 4D. Подскажите, пожалуйста:
1. Если всплывающему окну разрешить закрытие, то как можно отлавливать действие - нажатие на крестик. Например, чтобы при нажатии на крестик всплывающего окна, менялся параметр bool.
2. Как задать координаты смещения всплывающего окна относительно элемента. В руководстве "Положение окна" написано при выборе по координатам появятся поля ввода координат, но они не появляются. Да и при выборе нет "С заданным смещением относительно элемента".
63853

b_aleks
15.11.2022, 13:12
Добрый день!
Хочу разобраться во всплывающих окнах MasterScada 4D. Подскажите, пожалуйста:
1. Если всплывающему окну разрешить закрытие, то как можно отлавливать действие - нажатие на крестик. Например, чтобы при нажатии на крестик всплывающего окна, менялся параметр bool.
2. Как задать координаты смещения всплывающего окна относительно элемента. В руководстве "Положение окна" написано при выборе по координатам появятся поля ввода координат, но они не появляются. Да и при выборе нет "С заданным смещением относительно элемента".
63853

1. В настройках шаблона экрана убрать заголовок всплывающего окна, установив в это поле значение 0. Во всплывающее окно добавляете кнопку, у этой кнопки создаете действие "Закрыть окно", в это действие тянете это же всплывающее окно. Далее привязываете параметр из дерева объектов к свойству кнопки "Нажата".
2. Координаты задаете в свойствах всплывающего окна, это свойства "Координата X" "Координата Y". В этом случае, если у вас положение окна отличается от значения по умолчанию, то будут браться эти самые координаты.

Maksim13
15.11.2022, 14:11
Спасибо. В целом всё получилось. Если я правильно понял, то даже при значении 0 сама "полка" заголовка остается, максимум я могу сделать цвет фона как у основного меню, но отступ всё равно останется. Всё верно? Или я не туда вбил 0.

63860
63861

b_aleks
15.11.2022, 14:26
Спасибо. В целом всё получилось. Если я правильно понял, то даже при значении 0 сама "полка" заголовка остается, максимум я могу сделать цвет фона как у основного меню, но отступ всё равно останется. Всё верно? Или я не туда вбил 0.

63860
63861

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

Minarion
24.11.2022, 07:55
В окне иконки (в бибилиотечном объекте) на клеммник входов добавляете переменную, тащите ее на свойство, настраиваете динамизацию. А когда эту иконку добавляете в окно, тогда у вас в свойствах появится группа "Параметры", там будет та самая переменная, которую вы создавали в клеммнике окна. На эту переменную тащите параметр из дерева объектов.

63787
Здравствуйте!
Можете подсказать как реализовать линию с динамизацией её цвета в библиотеке? Делал по аналогии с иконкой, но что-то идёт не так(

a1exwin0
24.11.2022, 08:32
Подскажите пожалуйста, можно ли в рантайме добавить, удалить перо в тренд, ну или просто активировать нужное перо из скрипта?

b_aleks2
24.11.2022, 09:12
Подскажите пожалуйста, можно ли в рантайме добавить, удалить перо в тренд, ну или просто активировать нужное перо из скрипта?

На тренде есть кнопка "Дерево объектов". Откроется список всех архивируемых параметров проекта.

Maria Momotova
24.11.2022, 10:16
По умолчанию - все архивируемые, которые относятся к объекту, или все архивируемые в системе(если настройка у тренда стоит "глобальный"). Но можно и исключить в этом дереве архивируемые и добавить те, которые не архивируются.
На ютьюб-канале MasterSCADA есть лайфхак по этому поводу.