Стартовая страница › Форумы › Понять, как работает ПО › Mimic — Данные в фейсплейтах
- В этой теме 12 ответов, 2 участника, последнее обновление 3 недели, 2 дня назад сделано
Mikhail.
-
АвторСообщения
-
03.10.2025 в 15:09 #40554
Imya
УчастникЗдравствуйте.
В фейсплейте вывожу данные в текст черезargs.dataProvider.getCurData(), но столкнулся с проблемой, что если никакой компонент на текущей схеме не использует тот-же номер канала, то данных нет.
И второй вопрос — как можно через скрипты минуя привязку свойств обращаться к каналу по коду тега?06.10.2025 в 12:44 #40557
MikhailМодераторДобрый день!
Фейсплейт по задумке является универсальным компонентом, поэтому он не должен ссылаться на конкретные каналы. Сделайте, пожалуйста, скриншоты, чтобы была понятнее ситуация в целом. Попробуем найти альтернативное решение.как можно через скрипты минуя привязку свойств обращаться к каналу по коду тега?
Наверное, так не получится сделать, потому что поиск канала по коду тега выполняется на стороне сервера, а на стороне браузера база конфигурации не доступна.
На мой взгляд, нужно подойти к созданию фейсплейта с другой стороны — у фейсплейта есть экспортируемые свойства. К конкретным каналам они привязываются уже на той схеме, на которую добавлен фейсплейт. Скрипт фейсплейта может реагировать на значения этих свойств, но не извлекать данные каналов напрямую.
06.10.2025 в 15:59 #40558Imya
УчастникЗадумка была такова: передавать фейсплейту номер объекта (или устройства), несколько дополнительный параметров (по типу наименования объекта) и иметь некое самостоятельное окно, по сути шаблон, которое в несколько кликов можно вынести и настроить.
На мой взгляд, нужно подойти к созданию фейсплейта с другой стороны — у фейсплейта есть экспортируемые свойства. К конкретным каналам они привязываются уже на той схеме, на которую добавлен фейсплейт. Скрипт фейсплейта может реагировать на значения этих свойств, но не извлекать данные каналов напрямую.
С экспортируемыми параметрами у меня получалось использовать только статически — записать при редактировании. Хотелось бы узнать возможно ли передавать значение канала без скриптов.
Сделайте, пожалуйста, скриншоты, чтобы была понятнее ситуация в целом.

const addlStatData = args.dataProvider.getCurData(absObjectNum * 1000 + 1); // хотел брать по тегу
addlStat.properties.text = (addlStatData.d.val == 2) ? «Тех.работы» :
(addlStatData.d.val == 1) ? «Авария» : «Доп.статус»;
addlStat.properties.foreColor = (addlStatData.d.val == 1) ? «red» : «white»;
addlStat.properties.visible = (addlStatData.d.val == 0) ? false : true;-
Ответ изменён 1 месяц назад пользователем
Imya. Причина: Картинка
06.10.2025 в 16:39 #40560Imya
УчастникС экспортируемыми параметрами у меня получалось использовать только статически — записать при редактировании. Хотелось бы узнать возможно ли передавать значение канала без скриптов.
С передачей значения нашелся ответ, если вдруг кому надо: в привязке свойств готового фейсплейта (который уже расположен на мнемосхеме) в имени свойства указывается название экспортируемого параметра в который нужно передать значение, в источник — номер канала.

Насчет моей проблемы вопрос закрыт, спасибо за помощь.
Задумка была такова: передавать фейсплейту номер объекта (или устройства), несколько дополнительный параметров (по типу наименования объекта) и иметь некое самостоятельное окно, по сути шаблон, которое в несколько кликов можно вынести и настроить.
07.10.2025 в 12:30 #40561
MikhailМодераторДа, в предыдущем сообщении Вы сделали всё верно.
На текущий момент всё получилось или остались вопросы?07.10.2025 в 13:49 #40562Imya
УчастникНа текущий момент всё получилось или остались вопросы?
Появился вопрос по обновлению данных, если передаю значения через экспортируемые параметры и привязку свойств, данные на мнемосхеме обновляются только после перезагрузки страницы. Как можно сделать обновление на мнемосхеме сразу после обновления значения канала?
-
Ответ изменён 1 месяц назад пользователем
Imya.
07.10.2025 в 16:28 #40567
MikhailМодераторСделайте, пожалуйста, скриншот экпортируемого свойства в фейсплейте. Если используется скрипт, то ещё нужен код скрипта.
10.10.2025 в 08:54 #40590Imya
Участник
class extends ComponentScript { dataUpdated(args) { const absObjectNum = args.component.properties.deviceNumber / 100; let connectionLevel = args.component.properties.connectionLevel; let additionalStatus = args.component.properties.additionalStatus; const background = args.component.children.find(c => c.name == "background"); const objectLink = args.component.children.find(c => c.name == "objectLink"); const connection = args.component.children.find(c => c.name == "connection"); const addlStat = args.component.children.find(c => c.name == "addlStat"); const frame1 = args.component.children.find(c => c.name == "frame1"); // Ссылка на главную страницу объекта objectLink.properties.clickAction.linkArgs.viewID = absObjectNum * 100; // Связь connection.properties.foreColor = (connectionLevel == 1) ? "red" : // цвет связи (connectionLevel > 1) && (connectionLevel < 5) ? "yellow" : (connectionLevel == 5) ? "green" : "white"; connection.properties.blinking = (connectionLevel == 1) ? true : false; // мигание // Дополнительный статус addlStat.properties.text = (additionalStatus == 2) ? "Тех.работы" : // текст доп.статуса (additionalStatus == 1) ? "Авария" : "Доп.статус"; addlStat.properties.foreColor = (additionalStatus == 1) ? "red" : "white"; // цвет доп.статуса addlStat.properties.visible = (additionalStatus == 0) ? false : true; // видимость // args.propertyChanged = true; } }-
Ответ изменён 3 недели, 6 дней назад пользователем
Mikhail.
10.10.2025 в 16:05 #40596
MikhailМодераторКакое конкретно свойство обсуждаем?
Нужно нажать кнопку Редактировать и сделать скрин свойств этого свойства внутри.10.10.2025 в 17:35 #40598
MikhailМодераторДобавьте в метод dataUpdated вывод информации в консоль console.log(«информация»)
Было бы полезно проверить как часто вызывается метод и меняются ли значения свойств.13.10.2025 в 14:02 #40607Imya
УчастникПопытался добавить console.log() и потом найти что-нибудь, но в итоге понял что скрипты будто вообще перестали работать. Оставил на тест один параметр ..
class extends ComponentScript {
domCreated(args) {
const objectName = args.component.children.find(c => c.name == «objectName»);
objectName.properties.foreColor = «red»;
console.log(«test»);
args.propertyChanged = true;
}
domUpdated(args) {
const objectName = args.component.children.find(c => c.name == «objectName»);
objectName.properties.foreColor = «red»;
console.log(«test»);
args.propertyChanged = true;
}
dataUpdated(args) {
const objectName = args.component.children.find(c => c.name == «objectName»);
objectName.properties.foreColor = «red»;
console.log(«test»);
args.propertyChanged = true;
}
}.. и все равно никакого результата. Если делаю привязку через свойства то все хорошо, пытаюсь через скрипт — никак.
13.10.2025 в 14:09 #40608Imya
Участник2025-10-08 15:23:45 [scada-test][root][ACT] Вебстанция 6.2.2.0 запущена
2025-10-08 15:23:45 [scada-test][root][ACT] Хранилище FileStorage 6.4.0.0 загружено из файла /opt/scada/ScadaWeb/FileStorage.dll
2025-10-08 15:23:46 [scada-test][root][ERR] Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/ScadaCommon.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/ScadaWeb.ru.xml
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgChart 6.1.0.0 загружен из файла /opt/scada/ScadaWeb/PlgChart.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgMain 6.1.1.0 загружен из файла /opt/scada/ScadaWeb/PlgMain.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgMimic 6.0.0.0 загружен из файла /opt/scada/ScadaWeb/PlgMimic.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgMimicEditor 6.0.0.0 загружен из файла /opt/scada/ScadaWeb/PlgMimicEditor.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgMimBasicComp 6.0.0.0 загружен из файла /opt/scada/ScadaWeb/PlgMimBasicComp.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgScheme 6.1.1.0 загружен из файла /opt/scada/ScadaWeb/PlgScheme.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgSchBasicComp 6.1.0.0 загружен из файла /opt/scada/ScadaWeb/PlgSchBasicComp.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgStore 6.1.0.1 загружен из файла /opt/scada/ScadaWeb/PlgStore.dll
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgWebPage 6.1.1.0 загружен из файла /opt/scada/ScadaWeb/PlgWebPage.dll
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgChart: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgChart.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgMain: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgMain.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgMimic: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgMimic.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgMimicEditor: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgMimicEditor.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgMimBasicComp: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgMimBasicComp.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgScheme: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgScheme.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgStore: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgStore.ru.xml
2025-10-08 15:23:46 [scada-test][root][ERR] Плагин PlgWebPage: Файл словарей не найден и заменён файлом по умолчанию: /opt/scada/ScadaWeb/lang/PlgWebPage.ru.xml
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgMimic: Добавление компонентов из плагина PlgMimBasicComp
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgScheme: Извлечение компонентов схем из установленных плагинов
2025-10-08 15:23:46 [scada-test][root][ACT] Плагин PlgScheme: Добавлены компоненты из плагина PlgSchBasicComp
2025-10-08 15:23:46 [scada-test][root][ACT] Приём базы конфигурации
2025-10-08 15:23:46 [scada-test][root][ACT] База конфигурации получена успешно
2025-10-08 15:23:46 [scada-test][root][INF] Приложение готово к работе
2025-10-08 15:23:48 [scada-test][root][ERR] Пользователь с ид. 107 не найден при создании контекста пользователя
2025-10-08 15:23:48 [scada-test][root][ERR] Пользователь с ид. 107 не найден при создании контекста пользователя
2025-10-08 15:23:48 [scada-test][root][ERR] Ошибка при загрузке представления с ид. 2300 по пути Тест\Главная.mim:
Scada.Protocol.ProtocolException: Ошибка при чтении файла [View]\Faceplates/GUI/Objects/guiObjMainPageName.fp: Файл не найден
at Scada.Client.ClientBase.DownloadFile(RelativePath path, Int64 offset, Int32 count, Boolean readFromEnd, DateTime newerThan, Boolean throwOnFail, Func`1 createStreamFunc, DateTime& lastWriteTime, FileReadingResult& readingResult, Stream& stream)
at Scada.Client.ClientBase.DownloadFile(RelativePath path, Stream stream, Boolean throwOnFail)
at Scada.Web.Code.ViewLoader.LoadViewFromServer(ViewBase view, String path)
at Scada.Web.Code.ViewLoader.GetView(View viewEntity, Type viewType, ViewBase& view, String& errMsg)14.10.2025 в 12:37 #40621
MikhailМодераторПопробуйте этот фейсплейт. В нём скрипт пишет в консоль браузера.
-
Ответ изменён 1 месяц назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.