На ST одна строка
Вход функции:= Переменная управления AND разрешение из программы ;
Вид для печати
Здравствуйте!
Вопрос по SqlRequestWithResult. Когда этот ФБ добавляю в протокол, то запрос выполняется циклично. Пробовал сделать выполнение по кнопке (подавая TRUE на вход En), но работает это крайне криво: в подключенном редакторе видно что параметр изменился уже на TRUE, а на входе ФБ он все ещё болтается как FALSE, и может переключиться на TRUE секунд через 5 только. Или вообще не переключится. Можно ли как реализовать выполнение SQL запрос не циклично, а по условию?
ЗЫ MS4D версии 1.2.18
Добрый день.
AstraLinux 1.8.1
MasterSCADA 4D Runtime 1.3.7.23610(1.3.7_20250316.1) установлена с опцией "--i386-dep --with-monitor" как и положено по мануалу.
Аппаратный ключ USB установлен и работает, по крайней мере runtime не ругается.
runtime стартует (служба):
После загрузки проекта из среды разработки в окне системных сообщениях среды разработки пишет:Цитата:
op@panelC:~$ sudo systemctl status mplc4.service
● mplc4.service - LSB: Start the MasterSCADA 4D RT server.
Loaded: loaded (/etc/init.d/mplc4; generated)
Active: active (running) since Fri 2025-04-11 13:49:18 +04; 4min 35s ago
Docs: man:systemd-sysv-generator(8)
Process: 745 ExecStart=/etc/init.d/mplc4 start (code=exited, status=0/SUCCESS)
Tasks: 64 (limit: 18934)
Memory: 114.2M
CPU: 27.197s
CGroup: /system.slice/mplc4.service
├─1660 /opt/mplc4/mplc_daemon
├─1661 ./mplc_monitor
├─1764 /opt/mplc4/mplc /new-service /restart /ea:0
├─1765 "nginx: master process /opt/mplc4/nginx/sbin/nginx -p . -c ../nginx/conf/nginx-mplc.conf -e /var/lo>
└─1766 "nginx: worker process"
апр 11 13:49:17 panelC systemd[1]: Starting mplc4.service - LSB: Start the MasterSCADA 4D RT server....
апр 11 13:49:17 panelC mplc4[745]: Starting MasterSCADA 4D RT... OK
апр 11 13:49:18 panelC systemd[1]: Started mplc4.service - LSB: Start the MasterSCADA 4D RT server..
"Ошибка исполнения АРМ 1 Основная задача хххх : Charp fb is not loaded. Key runinng"
где ххх - увеличивающееся число.
В проекте есть функциональные блоки, написанные на C#.
dotnet и netcore на Linux установился вместе с mplc4 (по крайней мере в папке /opt/mpc4/ есть папки и dotnet и netcore).
В чем проблема?
Также установлен MasterSCADA4DClient-linux-x64 version 31.7.5 и проект не отображается
Дополнение.
На другом компе установил виндовый MasterSCADA4D Client. Цепляюсь к 192.168.0.120:8043. Цепляется к серверу, проект отображается, но такое ощущение, что ничего не выполняется (например, есть функциональный блок экспорта архивных данных на C#, он начинает выполняться по нажатию кнопки на мнемосхеме. так вот статусы этого блока вообще не меняются (статусы вывел на мнемосхему)).
Также, на том компе, где установлен runtime - при подключении через браузер также подключается и проект отображается.
А вот через линуксовый клиент (запуск /opt/MasterSCADA4DClient-linux-x64/MasterSCADA4DClient -u 127.0.0.1:8043 или -u 192.168.0.120:8043) окно клиента открывается но оно пустое.
//192.168.0.120 - IP адрес сервера (где установлен runtime)
Добрый день! Как вывести количество использованных тэгов в скаде? Конфигурация узла показывает количество точек 0.
Посмотрите здесь какие точки и как учитываются, возможно поможет ответить на Ваш вопрос:
https://support.masterscada.ru/ru/kn...25/category/3/
Добрый день! Как вывести фиксированное количество осей Y в тренде? у меня есть 30 перьев, и три диапазона значений Y. для каждого пера выводить ось неудобно
У контрола "тренд" есть опция группировка перьев - наверное это то, что нужно.
https://support.mps-soft.ru/Help-web/sv_grafika.html
(Поищите на странице "Главное перо в группе")
Добрый день!
Есть вопрос по версиям библиотек
Собрал проект на 1.3.6, в проекте несколько элементов со ссылкой на Библиотеки.HMI.Окна.Контролы.Таблица данных.
При работе с таблицами используется событие "Клик по ячейке" с возвратом параметра "Номер строки", все работает, все норм.
Обновился до 1.3.7, выполняю конвертацию проекта, отклоняю (или принимаю, без разницы) обновления библиотек BaseObjects и Protocols, запускаю проект без ошибок, но данный контрол начинает возвращать Номер строки на 1 меньше чем в предыдущей версии, первая строка имеет номер 0.
Как лучше поступить в этом случае, дописывать скрипт для всех Таблиц в проекте или можно как-то откатить библиотеку?
С библиотеками вряд ли уже что-то получится сделать
добрый день! как задать перьям количество делений оси Y? в соответствующем свойстве задаю - ничего не меняется. перья находятся в группах, меняю свойства для главного пера или для всех, в любом случае не работает
Добрый день.
Уточните, пожалуйста, на какой версии проверяете?
В 1.3.7.23610 задал 2 группы по 2 пера. Свойство "Количество делений Y" главных перьев применяется для соответствующих групп.
Вложение 83324Вложение 83325
версия 1.3.7. делаю аналогично Вашим скринам - не работает. в чем может быть дело?
Здравствуйте.
В среде разработки создал проект: АРМ, окно с текстом (это всё).
В режиме эмуляции всё ОК, а в режиме исполнения в DT, браузер выдаёт ошибка страница не найдена 404.
Подскажите пожалуйста, сам не смог.
Спасибо.
Здравствуйте, проект в версии 1.3.7 управление водяным насосом через ПР100 . Проблема в кнопке сброса аварии (тэг ОРС через кнопку), залипает через 7-10 нажатий. Лечится только принудительным нажатием. В чем может быть причина?
"Залипнуть" на уровне скады он никак не может, т.к. команда на запись значения отправляется только при изменении состояния кнопки (а не отправляется постоянно - если, например, кнопку долго удерживать).
Вообще для отправки команды лучше привязывать к кнопке событие - выдать импульс, указать длительность импульса, и привязать туда тег
Обычная ошибка во всех скада системах (например WinCC, factorytalk и пр.), при рисовании кнопок, это привязка к ним функции изменения бита типа: изменить пока нажато и подобные. Для кнопок всегда надо делать тоггл (переключить) бит, а возврат его в противоположное положение делается на уровне контроллера или ПР. А так просто или до контроллера не доходит, из-за быстрого нажатия, или другие артефакты.
Вот кстати напомнили мне подобную проблему в связке ИП320 - ПЛК210 без орс серверов и скада. Там тоже, посылка команды с ИП320 то проходила, то нет. Оказалось что контроллер сбрасывал бит почти сразу, а ИП320 повторно посылал уже ненужную команду. Также пришлось таймер на сброс втыкать.
Добрый день, никак не пойму как добавить шкалу к горизонтальному прогрессу. На фото примерВложение 83674
Basil11 вы бы изучили лицензии на MS4D где и когда могут запускаться клиенты.
Добрый день! Пытаюсь с помощью блока GetActualEvents вытащить активные аварии в структуру типа "время активации + Сообщение".
MyFields := "ActiveTime, Message";
FilterActive := '["Active=TRUE"]';
GetActualEvents_1(Fields:= MyFields, Filter:=FilterActive, Count => CountEvents, Events => newEvents );
newEvent - динамический массив [DT, String].
Сообщения в динамическом массиве newEvents появляются, а вот дата у каждого элемента остается 0001-01-01-00:00.
Если пробовать вытащить одну дату активации - выдает ошибку "Attempt to index FileTime event".
Что у меня пошло не так?
Коллеги, добрый день! Возникла необходимость получить график скорости изменения параметра. Я понимаю, что можно пойти по сложному пути: написать скрипт, который будет "выцеплять" параметр из архива на заданное время от текущего (например минуту назад) и сравнивать его с текущим и записывать в архив эту скорость. Но зачем делать еще лишние вычисления и лишнюю запись в архив, если мы уже имеем архив этого параметра. Может быть есть какие-то решения "из коробки", которые имеют возможность показать скорость изменения параметра по заданному интервалу времени?
Здравствуйте!
В предыдущей версии MS4D 1.3.4.17698 работала настройка в таблицах данных"запрет изменения сортировки",
а в новой версии 1.3.4.23610 эта настройка не работает-хотя галка стоит, сортировка доступна и активна в мнемосхеме.
Мне приходится стыковать 2 таблицы на мнемосхеме -одна формируется в программе(и поэтому изменение её вручную недоступно)
и вторую я задаю вручную(адрес, вес импульса). Но т.к. запрет сортировки сейчас не работает, то пользователи путают стыковку таблиц
и получается аброкадабра -адрес и вес импульса отсюда а объект другой.
Что делать?
Добрый день!
Прошу разъяснения по Пользовательскому элементу (Script).
Все сделал как написано в pdf.
Сначала пытался на версии 1.3.7 запустить все это дело.
В логах c:\ProgramData\MPSSoft\MasterSCADA4DRT1_3\Server\ error.log
записи вот такого типа:
Контрол не работает, на экране пишет что -то типа "Не удалось установить параметр flag".Код:2025/05/14 10:26:23 [error] 6264#5256: *2 CreateFile() "C:\ProgramData\MPSSoft\MasterSCADA4DRT1_3\Server/htdocs/controls/basic.js" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: _, request: "GET /controls/basic.js HTTP/1.1", host: "127.0.0.1:8043", referrer: "http://127.0.0.1:8043/resources/custom1.js"
Я так понимаю , что в с версии 1.3.7 не генерируются в папке htdocs папки controls, actions и тому подобное (а именно там находятся javascript файлы - в том числе и basic.js, от которого наследуются свои пользовательские контролы).
В более ранних версиях они были...
Обновился до новой версии (Версия: 1.3.8.24492(1.3.8_20250513.1)) - поменялось расположение самого рантайма (теперь в c:\ProgramData\MPSSoft\MasterSCADA4D_RT\rt\ и проект загружается в подпапку server). Папка logs есть , но там в файлах логов нет инфы касаемо визуализации.
И также нет controls (basic.js и прочего).
Вопрос: пользовательских элементов теперь не будет? наследоваться от HTMLElement? а параметры в контролах для привязок со стороны MS4D как делать в таком случае?
Я пытался делать простой элемент-наследник HTMLElement без импорта {Basic} из basic.js. Заводил поле flag в js, в MS4D также парметр добавлял flag - не работает.
Код:export class msscript extends HTMLElement {
constructor() {
super();
this._flag = false;
}
/**
* flag
* @type {bool}
*/
get flag() {
console.log("Current flag state is:" + this._flag);
return this._flag;
}
set flag(value) {
this._flag = this._toBool(value);
console.log("Current flag state is:" + this._flag);
}
_toBool(value) {
if (value) {
if (typeof value == "boolean") {
return value;
} else {
switch (value.toString().toLowerCase().trim()) {
case "true":
case "yes":
case "1":
return true;
case "false":
case "no":
case "0":
case null:
return false;
default:
return Boolean(value);
}
}
} else {
return false;
}
}
}
Добрый день!
В проекте есть несколько объектов, в каждом из которых осуществляется занесение аварий в журнал. Также с помощью скрипта на языке ST, использующего блок EventsCounter, выходная переменная устанавливается в TRUE, если в журнале присутствует неквитированное сообщение.
Проблема заключается в том, что при срабатывании тревоги в любом из объектов, выход каждого скрипта становится TRUE, несмотря на то, что параметр IsGlobal установлен в FALSE.
Подскажите, пожалуйста, как можно решить эту проблему.
Пример скрипта приведён ниже:
VAR
filterSeverityWarning : STRING;
myEventsCounter : EventsCounter;
END_VAR
filterSeverityWarning := '["Active=TRUE","Acked=FALSE","Severity=555"]';
myEventsCounter(
Filter := filterSeverityWarning,
IsGlobal := FALSE,
Ack := FALSE,
UserName := '',
Comment := ''
);
ERROR := myEventsCounter.Exists;
Делал аналогично - всё работало:
Вложение 84019
Прошу извинить, есть лицензия на ключе, где скачать актуальные дистрибутивы сред разработки и исполнительную? Работал сначала в демо, после удалил и скачал https://download.mps-soft.ru/support...CADA4D_x64.exe
(только для Windows) и https://download.mps-soft.ru/support...A4D_RT_Key.exe.
Установил ключ, в среде разработки видит ключ и его ограничения, и в режиме исполнения вылетает с сообщение что это демо версия и работает в ограниченном режиме...
ПОМОГИТЕ!!!
Завтра должен рабочую версию представить, с накопленными данными по графикам и т.д.... но.... не могу решить примитивный вопрос...
Добрый день.
Дистрибутивы выложены на FTP-сервере производителя ПО - МПС софт. Инструкция по скачиванию, см. стр. 3: https://owen.ru/uploads/465/instrukc...m_guardant.pdf
Добрый день, что включает в себя:
MSRT4D-TRN: расширенные настройки трендов ???
Не могу найти информацию, проект судя по всему версии лайт, т.к. при загрузке выдает не совпадение конфигурации по MSRT4D-TRN (отсутствует).
Какие галки снять...
Добрый день.
Вероятнее всего, Вы используете бесплатную исполнительную среду на 32 точки. Ограничения перечислены в статье: https://support.masterscada.ru/ru/kn...-ogranichenija
См. поиском по странице "MSRT4D-TRN"
Спасибо за скорый ответ, нет, в Lite скорее всего, по памяти что то MPS-MSRT4D-IK-L, в ней нет расширенных трендов и на отчетах водяной знак "Демо".
Если вам просто избавиться от использования опции MSRT4D-TRN, то смотрите по ссылке, которую коллега предоставил выше:
Вложение 84247
Для начала убедитесь в отсутствии трендов указанных типов и элемента Легенда в окнах проекта.
Как только вы уберете их из всех окон, и количество перьев будет не более 3-х - данное требование перестанет применяться.
Спасибо! Я нашел, просят более 10 трендов на график.
Докупили уже графики и отчеты,
в связи с этим возник вопрос, как в Диаграмме (Графике, Тренде), в редакторе отчета, для простой линии сделать несколько осей для оси Y, градусы и паскали?
Задача совместить тренды температуры и давления по 10 значений.
В хелпе для отчетов эти штуки они называют "Добавление полос". Приводится последовательность выполнения, но самих полос в свойствах я ни где не нашел...
Возможно ли это вообще?