PDA

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



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

AlexBut
27.09.2023, 04:28
Ещё вопрос:
столкнулся с такой проблемой-при помощи FB GET_CURRENT_USER (в задаче экрана) получаю имя тек пользователя и роль
и хочу в зависимости от имени запретить некоторые действия на гл экране -но на разных АРМ(клиентах) разные пользователи и получается конфликт,
т.к. пользователь USERNAME в глобальных параметрах получает своё значение от разных клиентов то у меня всё время прыгает значение параметра USERNAME .
Пока не понимаю как это обойти.
Замысел был такой - для пользователей с низким уровнем доступа отключить визуализацию некоторых кнопок на гл окне(например вкл/выкл повтор звука-
звук тоже работает в задаче экрана).
Т.е. нужен параметр который формируется только в задаче экрана но работает в осн задаче, такое возможно?
Подозреваю что нет, но уверен есть процедура как это обойти и сделать отображение немного разным на гл экране для разных клиентов?

Спасибо

1exan
27.09.2023, 04:38
Ещё вопрос:
столкнулся с такой проблемой-при помощи FB GET_CURRENT_USER (в задаче экрана) получаю имя тек пользователя и роль
и хочу в зависимости от имени запретить некоторые действия на гл экране -но на разных АРМ(клиентах) разные пользователи и получается конфликт,
т.к. пользователь USERNAME в глобальных параметрах получает своё значение от разных клиентов то у меня всё время прыгает значение параметра USERNAME .
Пока не понимаю как это обойти.
Замысел был такой - для пользователей с низким уровнем доступа отключить визуализацию некоторых кнопок на гл окне(например вкл/выкл повтор звука-
звук тоже работает в задаче экрана).
Т.е. нужен параметр который формируется только в задаче экрана но работает в осн задаче, такое возможно?
Подозреваю что нет, но уверен есть процедура как это обойти и сделать отображение немного разным на гл экране для разных клиентов?

Спасибо

Насчёт запретов, как я понял это делается автоматически (настройкой ролей и параметров безопасности), что как раз и возможно потому, что в каждом клиенте СВОЙ пользователь со своей ролью и соответствующими правами

AlexBut
27.09.2023, 04:58
Да, спасибо, намудрил-всё решается через вкладыш "права" и через создание объекта (с нужными вложенными параметрами) для исполнения в
задаче экрана

Carrot
28.09.2023, 20:00
Как правильно делать экспорт, редактирование и импорт таблицы каналов модбаса в ms4d ??
я экспортирую, открываю в экселе, правлю адреса, сохраняю, импортирую И НИЧЕГО НЕ МЕНЯЕТСЯ!

Dennstroyer
09.10.2023, 13:24
Здравствуйте! Как можно передать данные из файла, созданного OwenArchiver в MS4d? Канал связи может быть нестабильным.

Aleksandr
11.10.2023, 14:09
Добрый день. В архивном журнале есть стобец (выделен красным) - за что он отвечает и как с ним работать. То что в нем двойным щелчком можно выделить строку, я заметил, а далее какие функции можно использовать? Возможно ли его удалить? В конфигураторе журнала он не отображается. В документации о нем ничего не написано.
70861

Aleksandr
11.10.2023, 14:16
При работе через внешние браузеры, они предлагают сохранять пароли пользователей. Возможно ли запретить это делать средствами MasterSCADA? Понятно, что можно настроить это в самом браузере, но интересует вариант средствами SCADA. Например, некоторые сайты (различных банков) запрещают сохранение паролей.

Larrrik
11.10.2023, 14:21
В архивном журнале есть стобец (выделен красным) - за что он отвечает и как с ним работать. 70861

Посмотрите последнее видео по обновлению 1.3.3 на ютьюб канале - там эти вопросы подробно освещены.

Aleksandr
11.10.2023, 15:01
Посмотрите последнее видео по обновлению 1.3.3 на ютьюб канале - там эти вопросы подробно освещены.

Спасибо, посмотрю.
Посмотрел. Стало понятно.

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

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

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

В программе создаете нужную переменную, из протокола перетаскиваете связь.
Дублируете переменную в программе на нужное количество, редактор связей подтверждаем без изменений. Тем самым у вас из одной переменной протокола будет связь со всеми дубликатами.
Открываете таблицу, настраиваете запрос с нужными фильтрами( как на скриншоте)
Снизу таблицы появятся список всех переменных которые соответствуют фильтру
Добавляете столбец ,который покажет отношение прием или передачу значения
Экспортируете файл
Редактируете в текстовом редакторе имена связей, у меня 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
23-ий год и эти скриншоты уже удалены, вот бы кто показал еще раз как это делается.

groom
14.11.2023, 13:25
23-ий год и эти скриншоты уже удалены, вот бы кто показал еще раз как это делается.

Вот что ответила тех поддержка по поводу групповой привязки параметров, может кому-то будет полезно:



1. Используйте табличное представление проекта.

5386d9c093dbae6d46ff2008d7e97dfd77e1a9a6


2. Сформируйте список каналов Модбас

3-4. Добавьте новый столбец Тип->Отношение, Отношение->Передача значения в

Экспортируйте полученную выборку в CSV (открывается с помощью Excel)

Поле "передача значения в" у вас будет пустым, ваша задача заполнить его именами параметров объектов. Средствами Excel это делать довольно просто, при необходимости можно так же экспортировать все Параметры в другой файл и скопировать/вставить. После того как вы сформируете файл со связями там же в табличном представлении проекта импортируйте его, связи каналов протокола и параметров объекта будут установлены.

С уважением,
Команда поддержки ИнСАТ

Swon
17.11.2023, 13:24
Подскажите, пожалуйста, что дополнительно нужно прописать в пространство имен? Пытаюсь в простейшем скрипте C# присвоить переменной архивное значение, получаю ошибку:
71693
Сейчас там по умолчанию:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

Ready
18.11.2023, 12:02
Подскажите, пожалуйста, что дополнительно нужно прописать в пространство имен? Пытаюсь в простейшем скрипте C# присвоить переменной архивное значение, получаю ошибку:

Если PinValue это Ваша структура, и расположена, например, в локальной библиотеке, можно записать так:
x = new Lokaljnaya_PinValue
{
Поле_1 = x_1,
Поле_2 = t
};
"x" также должен иметь тип PinValue

Swon
20.11.2023, 06:38
Разобрался, в 4d появился ФБ WriteArchiveData, позволяющий задавать архивные значения, надобность в скрипте C# отпала.

Minarion
08.12.2023, 14:23
Кто-то делал управление приборами болид через OPC сервер?
Не могу понять как сделать управление шлейфом (взять под охрану/снять с охраны) с помощью всплывающего окна?
Как привязать всплывающее окно к нужной переменной? Не хочется делать отдельное окно для каждого раздела.

Ready
08.12.2023, 15:05
Как привязать всплывающее окно к нужной переменной?

Через триггер окна.
Еще можно посмотреть тут: Открытие всплывающего окна по состоянию тэга (https://owen.ru/forum/showthread.php?t=37885)
И тут: Открытие всплывающего окна в клиенте визуализации по заданному параметру проекта (https://www.youtube.com/watch?v=SFST5URlnzQ)

DEMONGDV
08.12.2023, 19:21
Подскажите пожалуйста.
Есть параметр. Нужно при любом изменении этого параметра создавать запись в журнале с отображением значения этого параметра. Пытался сделать через тревогу, но нужно триггерить тревогу при каждом изменении параметра.
Может есть какое-то стандартное средство для этого?

Ready
08.12.2023, 21:54
Нужно при любом изменении этого параметра создавать запись в журнале с отображением значения этого параметра.

У параметра отметьте cвойство "Архивировать". Все. Записи в архив пишутся по изменению по умолчанию. Можете настроить архив данных (справка: "Основной архив данных"). Отобразить данные можно с помощью архивного журнала.
Еще больше информации MasterSCADA 4D–платформа для автоматизации и диспетчеризации. Работа с журналами и системой сообщений (https://www.youtube.com/watch?v=2Y2AqNCAB7I)

DEMONGDV
09.12.2023, 01:03
У параметра отметьте cвойство "Архивировать". Все. Записи в архив пишутся по изменению по умолчанию.
Эту галочку я с самого начала ставил, толку от неё никакого. В архив эти значения не пишутся и в журнале не отображаются. И это видео по ссылке я уже до дыр засмотрел. Мне нужно безусловное добавление значения параметра в журнал, изменилось значение - добавилось в журнал.

oleg1821
12.12.2023, 09:37
Добрый день, создаю простой проект в MasterScada 4D, подключаю modbus universal opc при запуске ошибка Отказ внешних модулей УСО72321

Dorr
12.12.2023, 16:27
Добрый день, создаю простой проект в MasterScada 4D, подключаю modbus universal opc при запуске ошибка Отказ внешних модулей УСО72321

Надо бы Modbus Server запустить сначала, потом проект запускать (подключиться с загрузкой конфиг)!

DEMONGDV
12.12.2023, 20:42
Скажите пожалуйста, как мне получить текущий день недели с помощью DAY_OF_WEEK?
Я не понимаю что нужно задать на входе, где взять сегодняшний IDATE?
Можно пример.

oleg1821
13.12.2023, 05:44
Надо бы Modbus Server запустить сначала, потом проект запускать (подключиться с загрузкой конфиг)! Делал по всякому, не помогает.

asuwcc
13.12.2023, 07:22
Скажите пожалуйста, как мне получить текущий день недели с помощью DAY_OF_WEEK?
Я не понимаю что нужно задать на входе, где взять сегодняшний IDATE?
Можно пример.

День добрый.

ФБ - GET_TIME -> DAY_OF_WEEK

DEMONGDV
13.12.2023, 09:57
День добрый.

ФБ - GET_TIME -> DAY_OF_WEEK

Это я в первую очередь и сделал, но там выдаётся предупреждение: Неявное преобразование из типа DATE_AND_TIME в тип DATE

Minarion
13.12.2023, 10:04
Через триггер окна.
Еще можно посмотреть тут: Открытие всплывающего окна по состоянию тэга (https://owen.ru/forum/showthread.php?t=37885)
И тут: Открытие всплывающего окна в клиенте визуализации по заданному параметру проекта (https://www.youtube.com/watch?v=SFST5URlnzQ)

Добрый день!
Открыть окно через триггер я понимаю как сделать.
Не могу понять как привязывать одно всплывающее окно к разным переменным.
ПРИМЕР:
Вот несколько примитивов, при вызове контекстного меню из них открывается всплывающее окно, в котором есть две кнопки. При нажатии на эти кнопки, они должны передать в параметр привязанный к этому значение, которое установлено на кнопку (на каждой кнопке свое значение).
72350
Соответственно при клике на "Раздел 1" значение с кнопок должно передаться только в "управление разделом 1". Если всплывающее окно открыто с "Раздел 3", то значения должны передаться только в переменную "Управление разделом 3":
72351

Можно сделать всплывающее окно для каждого раздела, но это ИМХО неверный путь.

1exan
13.12.2023, 12:54
Добрый день!
Открыть окно через триггер я понимаю как сделать.
Не могу понять как привязывать одно всплывающее окно к разным переменным.
ПРИМЕР:
Вот несколько примитивов, при вызове контекстного меню из них открывается всплывающее окно, в котором есть две кнопки. При нажатии на эти кнопки, они должны передать в параметр привязанный к этому значение, которое установлено на кнопку (на каждой кнопке свое значение).
72350
Соответственно при клике на "Раздел 1" значение с кнопок должно передаться только в "управление разделом 1". Если всплывающее окно открыто с "Раздел 3", то значения должны передаться только в переменную "Управление разделом 3":
72351

Можно сделать всплывающее окно для каждого раздела, но это ИМХО неверный путь.

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

notuejnd
13.12.2023, 13:08
Добрый день, нужна помощь. Есть данные ( архивные ) которые приходят с счетчика.
Нужно сделать так, чтобы я мог выбрать период, например с 10.10.2023 по 13.12.2023, и поставить интервал 1 час ( чтобы данные показывал через час ). Как это можно сделать ?
*ВАЖНО* Данные будут выгружаться в Эксель Таблицу

МихаилГл
13.12.2023, 13:10
Это как раз верный путь.
Создать в библиотеке объект "Раздел" - с переменными, окнами, сообщениями, блэкджеком...
А потом в проект добавить нужное количество экземпляров библиотечного объекта "Раздел" со своими привязками к внешним тегам (сервис восстановления внешних связей может несколько упростить жизнь в процессе копирования)

Может я не так понял...

ТС хочет универсальное окно с динамической привязкой, такое как в FactoryTalk или SimpleScada. И это как раз правильный путь.
Не знаю как тут, но в FactoryTalk лицензируется количество разработанных в проекте окон, а вот в WinCC, например, количество внешних тэгов...
И данная привязка к тэгам влечет низкую ответственность разработчиков в своем творении. Встречал проекты на WinCC, где количество окон за 300... А там, где можно сделать на универсальном окне, то хватает 30-40 окон для объекта с 1000 механизмов.

1exan
13.12.2023, 13:23
Может я не так понял...

ТС хочет универсальное окно с динамической привязкой, такое как в FactoryTalk или SimpleScada. И это как раз правильный путь.
Не знаю как тут, но в FactoryTalk лицензируется количество разработанных в проекте окон, а вот в WinCC, например, количество внешних тэгов...
И данная привязка к тэгам влечет низкую ответственность разработчиков в своем творении. Встречал проекты на WinCC, где количество окон за 300... А там, где можно сделать на универсальном окне, то хватает 30-40 окон для объекта с 1000 механизмов.

Честно говоря, первый раз слышу про лицензирование количеством окон.
Механизм экземпляров объектов в MS4D по своим функциям похож на динамическую привязку.
А в WinCC есть faceplate, и работают они по такому-же принципу

МихаилГл
13.12.2023, 13:28
Честно говоря, первый раз слышу про лицензирование количеством окон.
Механизм экземпляров объектов в MS4D по своим функциям похож на динамическую привязку.
А в WinCC есть faceplate, и работают они по такому-же принципу

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

Вот, кстати: 72354

Ready
13.12.2023, 22:05
Не могу понять как привязывать одно всплывающее окно к разным переменным.

Здравствуйте!

Накидал пример: 72360

Другой вариант - делать свой компонент.

Minarion
14.12.2023, 11:45
Добрый день!
Есть какая-то засада с колонками в бэнде данные.
В справке написано:
Для того чтобы включить режим вывода данных колонками, используется свойство Колонки (Columns) бэнда Данные (Data). Установите этому свойству значение более 1. Также как и в случае с колонками на странице требуется установить два свойства: Ширина колонки (ColumnWidth) и Расстояние между колонками (ColumnGaps). В свойстве Ширина колонки (ColumnWidth) указывается ширина выводимой колонки. Эта ширина действительна для всех колонок, которые будут выведены на бэнде Данные (Data). В свойстве Расстояние между колонками (ColumnGaps) указывается расстояние между двумя колонками.

Примечание. Для того, чтобы настроить бэнд Данные (Data) для вывода нескольких колонок, необходимо настроить два свойства бэнда Данные (Data). В свойстве Колонки (Columns) указывается количество колонок. В свойстве Ширина колонки (ColumnWidth) указывается ширина каждой колонки.

Делаю по инструкции:
72366
Однако эти настройки не применяются. При чем год назад уже делал что-то подобное, но сейчас не могу вспомнить где там засада есть...

Minarion
14.12.2023, 11:56
Здравствуйте!

Накидал пример: 72360

Другой вариант - делать свой компонент.

Добрый день!
Да, такой вариант тоже продумывал, но при масштабировании возможность напутать с id становится все более вероятной, и потом искать это то ещё удовольствие..
Придется на самом деле продумывать вариант с отдельным объектом.

Спасибо Вам!

Minarion
14.12.2023, 13:15
Добрый день!
Есть какая-то засада с колонками в бэнде данные.
В справке написано:
Для того чтобы включить режим вывода данных колонками, используется свойство Колонки (Columns) бэнда Данные (Data). Установите этому свойству значение более 1. Также как и в случае с колонками на странице требуется установить два свойства: Ширина колонки (ColumnWidth) и Расстояние между колонками (ColumnGaps). В свойстве Ширина колонки (ColumnWidth) указывается ширина выводимой колонки. Эта ширина действительна для всех колонок, которые будут выведены на бэнде Данные (Data). В свойстве Расстояние между колонками (ColumnGaps) указывается расстояние между двумя колонками.

Примечание. Для того, чтобы настроить бэнд Данные (Data) для вывода нескольких колонок, необходимо настроить два свойства бэнда Данные (Data). В свойстве Колонки (Columns) указывается количество колонок. В свойстве Ширина колонки (ColumnWidth) указывается ширина каждой колонки.

Делаю по инструкции:
72366
Однако эти настройки не применяются. При чем год назад уже делал что-то подобное, но сейчас не могу вспомнить где там засада есть...

Мистика, открыл/закрыл проект и значения проставились...

известь
15.12.2023, 13:37
Доброго всем дня!

Требуется помощь спецов, вопрос конечно для детского сада, но с моими познаниями в МС4 (да если еще учесть замороченную до дальше некуда скаду) вопрос очень актуальный.
Суть:
Через ОРС сервер овен получаю значение от модуля МВ110-8А (8 канал) все ОК!
72389

Теперь не могу данные получить в МС4D. При запуске исполнения выпадает ошибка как на скрине. Если кого не затрудним, растолкуйте подробнее что не настроил. А если со скринами для наглядности, так вообще буду чрезмерно благодарен.
72390

kondor3000
15.12.2023, 13:41
Доброго всем дня!

Требуется помощь спецов, вопрос конечно для детского сада, но с моими познаниями в МС4 (да если еще учесть замороченную до дальше некуда скаду) вопрос очень актуальный.
Суть:
Через ОРС сервер овен получаю значение от модуля МВ110-8А (8 канал) все ОК!
Теперь не могу данные получить в МС4D. При запуске исполнения выпадает ошибка как на скрине. Если кого не затрудним, растолкуйте подробнее что не настроил. А если со скринами для наглядности, так вообще буду чрезмерно благодарен.


Вам всё написал, что надо, но вы сделали по своему, потому и не работает.
Зато вопросы по 3 темам разбросали.

известь
15.12.2023, 13:52
Вам всё написал, что надо, но вы сделали по своему, потому и не работает.
Зато вопросы по 3 темам разбросали.

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

kondor3000
15.12.2023, 17:05
Ваши ответы были подобно этому, скажите, сильно помогает такой ответ??? Такие ответы относят к категории флуда. Вы уж искренне меня извините, надеюсь, что мое суждение ошибочное. Если решили реально оказать помощь, объясните пожалуйста понятнее, а не так, "там данные отдать" а тут "данные" забрать. Общая механика мне понятна, а вот настроить не получается.

Вы проигнорировали мой ответ по Модбас, вот его часть, чётко по вашей теме https://owen.ru/forum/showthread.php?t=38821&p=424562#post424562
Отличие опроса Модуля от опроса ПЛК слейва только в адресах регистров, остальное всё одинаково.

Можно и без ОРС сервера.
В ПЛК слейве создать все переменные какие нужны, В мастер скаде создать АРМ в нём добавить протокол Модбас RTU, в нём нужные входы и выходы. И читайте, записывайте из ПЛК слейва что надо.
По библиотеке, начали мне выдержки подсовывать, вместо того чтобы сделать как написано.https://owen.ru/forum/showthread.php?t=38844
Если что то не понятно, то можно спросить, вы же ничего не спросили, а поменяли тему 2 раза.

известь
15.12.2023, 19:01
Вы проигнорировали мой ответ по Модбас, вот его часть, чётко по вашей теме https://owen.ru/forum/showthread.php?t=38821&p=424562#post424562
Отличие опроса Модуля от опроса ПЛК слейва только в адресах регистров, остальное всё одинаково.

По библиотеке, начали мне выдержки подсовывать, вместо того чтобы сделать как написано.https://owen.ru/forum/showthread.php?t=38844
Если что то не понятно, то можно спросить, вы же ничего не спросили, а поменяли тему 2 раза.

Мы с Вами беседуем как "слепой с глухим". Спасибо за ПОМОЩЬ! Разберусь сам, потрачу времени в разы больше, но тем не менее... Удачи!

AlexBut
18.12.2023, 04:48
Здравствуйте!
Сильно тормозят тренды при открытии. Текущие настройки архива данных во вложенном файле.
Подскажите пример настроек , например, у нас сейчас где БД в свойствах пусто , но тренд в принципе работает.
Нужно оптимизировать по быстродействию.
Настройки по умолчанию не меняли, кроме свойства "Максимальное время хранения",было 365 суток,
сделали 5(изменили недавно а проект в разработке уже полгода), что не помогло.
Спасибо

AlexBut
22.12.2023, 08:38
Здравствуйте!
Видно предыдущий запрос был слишком общим. Перешли на Postgresql(в настройках "архивы" MS4D) и вроде всё стало работать значительно быстрей,
в т.ч. операции , которые напрямую с БД не связаны(копировать объект ,например-после открытия проекта , по крайней мере 1-й раз при щелчке правой кнопкой мыши, ждали выпадающее меню 5 минут, а теперь 2-3 сек.).
В связи с этим вопросы:
-можно ли установить другую СУБД и настроить на неё , кроме sqllite3,postgresql, mssql?
-команда "сжать БД" в меню "Управление проектом" не помогало для sqlite3 в смысле заторможенности проекта.
Порекомендуете ли установку СУБД Postgresql для сжатия БД postgresql или СУБД уже есть на Linux
(я так понимаю она устанавливается вместе с MS4D)
и её надо просто запустить и почистить БД( у нас исполнительная RT и БД на Linux)
т.к. есть опасение что со временем postgresql тоже станет тормозить
-где на Linux находится файл БД sqlite3(хочу удалить)?

Спасибо

AlexBut
22.12.2023, 09:34
Похоже я поторопился, сказав , что работает на postgresql- действительно проект перестал тормозить,
но графики не рисуются-рисуются как текущие, т.е. с момента открытия, независимо какой диапазон времени задан.
Есть подозрение, что нет подключения к БД(аварийных сообщений нет).
Сначала я просто указал БД postgresql , порт по умолчанию 0. Потом указал порт 5432(где-то прочитал на форуме).
Но это не помогло.
Возможно надо указать имя пользователя и пароль, а возможно такой СУБД вообще нет в Linux
или она устанавливается вместе с MS4D?

onimor
22.12.2023, 10:07
Похоже я поторопился, сказав , что работает на postgresql- действительно проект перестал тормозить,
но графики не рисуются-рисуются как текущие, т.е. с момента открытия, независимо какой диапазон времени задан.
Есть подозрение, что нет подключения к БД(аварийных сообщений нет).
Сначала я просто указал БД postgresql , порт по умолчанию 0. Потом указал порт 5432(где-то прочитал на форуме).
Но это не помогло.
Возможно надо указать имя пользователя и пароль, а возможно такой СУБД вообще нет в Linux
или она устанавливается вместе с MS4D?

Если что sqlite это просто файл и конечно чем он больше, тем больше нужно времени на его чтение.
Ну во 1 - postgres нужно ставить самому.(если конечно в вашей сборке Linux он не предустановлен)
Во 2 - да нужен логин и пароль.
В 3 - если у вас коннект к БД идет не по localhost, то нужно настраивать доступ по этому самому ip в файлах конфигурации postgres.(по умолчанию все запрещено кроме localhost)
В 4 - порт у postgres по умолчанию всегда 5432.
В 5 - майлру и многие другие фирмы используют postgres в очень нагруженных проектах с большим количеством данных, по этому лагать ничего не должно. С вашими объемами нечему лагать в принципе. Но нужно понимать, что железно тоже влияет на быстродействие. Рекомендую ssd.(postgres заметно медленнее работает на hdd, но речь о секундах).
В 6 - у postgres есть официальный клиент и можно через него попробовать подключиться и посмотреть что внутри.

Ready
22.12.2023, 15:21
-можно ли установить другую СУБД и настроить на неё , кроме sqllite3,postgresql, mssql?

Некоторые можно. Нужно у тех. поддержки уточнять.


-команда "сжать БД" в меню "Управление проектом" не помогало для sqlite3 в смысле заторможенности проекта.

Это не про sqlite3. Проект может быть создан либо в Firebird, либо в PostgreSQL.


Порекомендуете ли установку СУБД Postgresql для сжатия БД postgresql или СУБД уже есть на Linux
(я так понимаю она устанавливается вместе с MS4D)

PostgreSQL устанавливается самостоятельно пользователем.


т.к. есть опасение что со временем postgresql тоже станет тормозить

Как и любая другая.


-где на Linux находится файл БД sqlite3(хочу удалить)?

Зависит от директории куда устанавливали. По умолчанию в "/opt/mplc4", data.db - архив данных, EventsData.db - архив сообщений.

AlexBut
25.12.2023, 06:12
В 3 - если у вас коннект к БД идет не по localhost, то нужно настраивать доступ по этому самому ip в файлах конфигурации postgres.(по умолчанию все запрещено кроме localhost)

В 6 - у postgres есть официальный клиент и можно через него попробовать подключиться и посмотреть что внутри.

по В 3---установил postgres на Win10(где среда разработки) а RT у нас на Linux. Настроил в MS4D основной архив данных
на эту машину Win10.Вопрос-нужны доп настройки в файле конфигурации postgres?

по В 6---у меня появился pgAdmin 4 в программной группе PostgreSQL 16 -это клиент и им можно настроить?
А где эти настройки? В pgAdmin 4 видно , что у нас сейчас 1 БД postgres, я полагаю, что если бы было соединение
RT Linux-postgres,то появилась бы БД, созданная RT?

----------Где взять Postgres для Astra Linux(Orel) (у нас 2.12.45)?

по sqlite3- действительно у меня есть эти файлы data.db(29.36 GB) и EventsData.db в "/opt/mplc4"
Получается sqlite3 у нас работал всё таки и вырос до 30 Гб и перестал из-за этого работать
(с самого начала мы не настраивали БД и использовали по умолчанию настройки sqlite3 и графики вроде рисовались,
хотя мы не вникали-оставили на потом).
Можно ли просто стереть data.db , а если чистить то каким инструментом?
И я правильно понимаю что sqlite3 работает без доп настроек с теми что по умолчанию
( в настройках основного архива данных были только адрес IP машины Linux 192.168.3.33 и тип
БД sqlite3-всё остальное либо пусто либо 0(порт)?



Спасибо

onimor
25.12.2023, 08:11
установил postgres на Win10(где среда разработки) а RT у нас на Linux
ну если вы будите из Linux идти в бд на Win10 - да нужно настроить доступ по ip в файле конфигурации postgres

у меня появился pgAdmin 4 в программной группе PostgreSQL 16 -это клиент
да, это клиент

А где эти настройки?
Просто загуглите инфы куча к примеру вот первое что вылезло (https://betacode.net/12255/configure-postgresql-to-allow-remote-connections).
Настраивают доступ с любого ip (что не безопасно и лучше бы разрешить 1 ip клиента)


Где взять Postgres для Astra Linux(Orel) (у нас 2.12.45)
Там же где и для win10? или загуглить и открыть первый результат поиска.

Можно ли просто стереть data.db , а если чистить то каким инструментом?
Скачайте клиент для sqlite , откройте свой файл и делайте что хотите.
Можно сделать свою программу на любом языке и чистить раз в год данные старые, к примеру.
Но все же лучше перейти на postgres.

И я правильно понимаю что sqlite3 работает без доп настроек с теми что по умолчанию
Ну по сути это просто открытие файлика, без обращения к какой либо серверной части, я даже не уверен что ip там нужен в принципе, обычно это физический путь до файла.

melky
25.12.2023, 09:54
Astra Linux то еще Г, старые пакеты могут быть, в том числе и Postgre, а там насколько помнится менялись политики безопасности для БД. А будете ставить пакеты не из репозиториев, так же огребете проблемы совместимости пакетов.
Пройдено уже не раз...

onimor
25.12.2023, 10:19
старые пакеты могут быть, в том числе и Postgre, а там насколько помнится менялись политики безопасности для БД
В документации написано "Можно использовать БД PostgreSQL версии 10 и более поздние", а это 17 год. Сомневаюсь что у Astra Linux он на столько старый.
К тому же есть гайды как за 2 минуты установить 15 версию
Официально для дебиана можно поставить 12 версию

AlexBut
25.12.2023, 12:59
Да, спасибо получилось вроде. Создал свою БД,и в конфигурации pg-hba поменял метод с scram-sha-256 на md5

AlexBut
27.12.2023, 09:36
Это я про установку postgres на Win10 писал и получилось.
Вчера postgres установил на Linux-правда версия 9.6 т.к. в репозитарии Astra Linux нет другого.
Файл БД sqlite3 до этого вырос до 30 ГБ и скада сильно тормозила в редакторе(чтобы скопировать объект надо было ждать минут пять,
хотя вроде напрямую к работе БД это не относилось)
Но новая БД postgres за сутки выросла до 2 ГБ.Хотелось бы ограничить 4 днями т.е. 8ГБ.
Есть в настройках основного архива данных такие "Максимальное время хранения" -пробовал ставить 12 часов (00.12:00:00)но база растёт
и воспроизводит на графиках более 12 часов- с момента её запуска и непонятно тогда что эта настройка значит,
есть "Максимальный объём архива (Мб)" - её пока не пробовал, надеюсь она поможет простыми средствами ограничить размер БД.

Так что значат настройки "Максимальное время хранения" и "Максимальный объём архива (Мб)" ?
И вопрос- если архивируется value а не system_value_param т.е. без метки времени то метка времени всё же будет, т.е. системное время?

asuwcc
27.12.2023, 11:34
Это я про установку postgres на Win10 писал и получилось.
Есть в настройках основного архива данных такие "Максимальное время хранения" -пробовал ставить 12 часов (00.12:00:00)но база растёт
и воспроизводит на графиках более 12 часов- с момента её запуска и непонятно тогда что эта настройка значит,
есть "Максимальный объём архива (Мб)" - её пока не пробовал, надеюсь она поможет простыми средствами ограничить размер БД.


День добрый.

Может БД не успевает очищаться? Запись периодическая?
Число удаляемых элементов в одной операции и Период чистки архива проверьте.

AlexBut
27.12.2023, 12:25
Ещё позвольте вопрос- пытаюсь удалить файл БД sqlite3 и не могу т.е. лучше кардинально уменьшить.
Могу подключиться из клиента sqlite(приглашение sqlite> в командной строке Linux)
и подать разные команды в т.ч. VACUUM;-но эта команда за час работы и даже больше уменьшила БД с 30 ГБ до 27 ГБ всего.
(файл /opt/mplc4/data.db-к нему подключаюсь и пытаюсь обрезать или удалить)
все остальные - drop, delete не работают, вручную удалить система тоже не даёт.
В основном команды, из интернета взятые, заканчиваются переходом sqlite в ..> и выйти из него
можно только троекратным ctrl-C.
Помогите найти нужные команды, которые работают с этим sqlite3
Спасибо

it.lenin@preforma.ru
27.12.2023, 16:18
Добрый день.
В MS SQL Время стоит нормальное, как и положено. При обработки запроса через SELECT время увеличивается еще на 3 часа. т.е. на сколько я понимаю, MasterScada считает, что время на SQL = UTC и добавляет 3 часа.
Как исправить?

МихаилГл
27.12.2023, 17:01
Добрый день.
В MS SQL Время стоит нормальное, как и положено. При обработки запроса через SELECT время увеличивается еще на 3 часа. т.е. на сколько я понимаю, MasterScada считает, что время на SQL = UTC и добавляет 3 часа.
Как исправить?

При чем тут select? Он ищет первую попавшуюся запись, а в sql видно сортировка включена.

it.lenin@preforma.ru
27.12.2023, 17:12
а как сортировка влияет на время?

МихаилГл
27.12.2023, 17:15
а как сортировка влияет на время?

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

onimor
28.12.2023, 08:32
Вчера postgres установил на Linux-правда версия 9.6 т.к. в репозитарии Astra Linux нет другого.
Но новая БД postgres за сутки выросла до 2 ГБ.Хотелось бы ограничить 4 днями т.е. 8ГБ.


Вообще я уже писал что нужен pg 10 и выше ,если читать документацию скады.
И есть куча инфы как поставить. Астро линукс это дебиан , на дебиан есть 12 версия pg
Но если работает то и без разницы

А по поводу за сутки 2 гига, у вас что каждые пол секунды что-то записывается?
Может имеет смысл сделать запись по событиям?

onimor
28.12.2023, 08:42
Добрый день.
В MS SQL Время стоит нормальное, как и положено. При обработки запроса через SELECT время увеличивается еще на 3 часа. т.е. на сколько я понимаю, MasterScada считает, что время на SQL = UTC и добавляет 3 часа.
Как исправить?

Для начала нужно понять откуда он берет последнее время.
Может смотреть дату у последней записи или спрашивать MS SQL.
Исходя из этого нужно проверить в каком формате дата приезжает в принципе utc или с часовым поясом, возможно проблема в этом.
Или в настройках mssql сервера можно посмотреть часовой пояс

onimor
28.12.2023, 08:50
Ещё позвольте вопрос- пытаюсь удалить файл БД sqlite3 и не могу т.е. лучше кардинально уменьшить.
Могу подключиться из клиента sqlite(приглашение sqlite> в командной строке Linux)
и подать разные команды в т.ч. VACUUM;-но эта команда за час работы и даже больше уменьшила БД с 30 ГБ до 27 ГБ всего.
(файл /opt/mplc4/data.db-к нему подключаюсь и пытаюсь обрезать или удалить)
все остальные - drop, delete не работают, вручную удалить система тоже не даёт.
В основном команды, из интернета взятые, заканчиваются переходом sqlite в ..> и выйти из него
можно только троекратным ctrl-C.
Помогите найти нужные команды, которые работают с этим sqlite3
Спасибо

Не можете удалить файл потому что он используется скадой наверное?
drop, delete что именно в них не работает? что пишет? какая ошибка?

Злобин ОВ
28.12.2023, 09:19
На сколько я знаю, удаление записей не уменьшает размер файла базы.
Уменьшается только размер таблиц, а освободившееся место в файле заполняется новыми данными и размер базы не будет расти.
Для физического уменьшения размера базы нужно ее паковать.

Ready
28.12.2023, 12:49
(файл /opt/mplc4/data.db-к нему подключаюсь и пытаюсь обрезать или удалить)

Если хотите полностью удалить data.db, сначала остановите RT ч/з терминал.
Так: "sudo systemctl stop mplc4"
Или так: "sudo /opt/mplc4/init_mplc4.sh stop"
Потом удаляйте: "sudo rm /opt/mplc4/data.db"

Если Вам в будущем понадобятся данные с "data.db", лучше сперва сделать резервную копию.

it.lenin@preforma.ru
28.12.2023, 15:06
Вот что на сервере SQL (первый файл) и в МастерСкаде (второй файл)

МихаилГл
28.12.2023, 15:21
Запрос покажите.
База на том же ПК, что и скада?
Системное время, виндовс русская или английская?
Как данный запрос ведёт себя в менеджмент студиа на ПК где база, и на ПК где скада? (Если на разных ПК)

Почему вы при каждой попытке в панику впадаете? Скажите подробно что делаете? См. вопросы выше.

it.lenin@preforma.ru
28.12.2023, 15:41
Добрый день.

MS SQL находится на другой машине. Обе машины русские Windows server

МихаилГл
28.12.2023, 16:43
Сколько записей выдаёт запрос в sql сервере? На вкладке сообщения...
Добавьте к запросу where параметр= требуемое значение...

Если вы просто читаете с базы, то никаких изменений в полученных данных быть не должно, так как скада не знает, что в ячейках, дата или значение. А она умеет работать с датами? В руководстве к прошлой версии было написано, только bool или real...

МихаилГл
28.12.2023, 20:53
А когда в базе запись создаётся, там время актуальное записывается. Раза 2 замечал, что когда часы переведешь, в базу пишутся данные по старому времени, а как перезагрузить ПК, всё данные чудесным образом получают актуальные параметры даты.

Так что причин может быть тысяча...

AlexBut
29.12.2023, 07:00
да, спасибо, получилось стереть data.db(Linux)

onimor
29.12.2023, 12:17
MS SQL находится на другой машине. Обе машины русские Windows server
как уже писал выше проверьте какая дата уходит в запросе , какие часовые пояса на пк и какой часовой пояс у ms sql

it.lenin@preforma.ru
04.01.2024, 15:04
Для начала нужно понять откуда он берет последнее время.
Может смотреть дату у последней записи или спрашивать MS SQL.
Исходя из этого нужно проверить в каком формате дата приезжает в принципе utc или с часовым поясом, возможно проблема в этом.
Или в настройках mssql сервера можно посмотреть часовой пояс

Добрый день и с Новым Годом!!!!
Как проверить что он делает делает: спрашивает MS SQL или смотрит последнюю дату?
Все часовые поясам одинаковые, автоматическая синхронизация включена.

Приложу еще раз скрины:
1,2. Данные из MS SQL
3. Запрос в MSSQL из MasterScada
4. Получаемый результат.

МихаилГл
04.01.2024, 16:41
Если вы это время нигде не будете использовать, забудьте про него. После праздников проверю, что у меня при запросе творится.

Тем более у вас записи 1900 года, вы бы сначала саму базу в порядок привели...

it.lenin@preforma.ru
04.01.2024, 16:58
Если вы это время нигде не будете использовать, забудьте про него. После праздников проверю, что у меня при запросе творится.

Тем более у вас записи 1900 года, вы бы сначала саму базу в порядок привели...

1900 - это значит не заполнено поле.
Мне как раз необходимо использовать этот параметр, если он заполнен.

Спасибо вам большое.

МихаилГл
04.01.2024, 17:11
1900 - это значит не заполнено поле.
Мне как раз необходимо использовать этот параметр, если он заполнен.

Спасибо вам большое.

А почему вы не используете datetime2? Может проблема в этом?

it.lenin@preforma.ru
04.01.2024, 17:18
И еще можете подсказать? при обращении к базе SQL выскакивает постоянно предупреждение обращение к "несуществующему элементу" (см. Прилагаемый файл)
при этом все работает.
где копать? куда смотреть? в инете ничего найти не смог по этому вопросу.

МихаилГл
04.01.2024, 17:58
https://habr.com/ru/companies/otus/articles/487774/

Это по поводу предыдущего моего вопроса. Проверю только в среду или во вторник. Smalldatetime вроде не понимает часового пояса и его не рекомендуют использовать.

it.lenin@preforma.ru
05.01.2024, 22:22
Добрый вечер всем.

Temp1 имеет тип REAL

Temp1 := STRING_TO_REAL('13,7')*100;
почему я получаю 1300, а не как должно быть 1370 ?

МихаилГл
06.01.2024, 08:00
Добрый вечер всем.

Temp1 имеет тип REAL

Temp1 := STRING_TO_REAL('13,7')*100;
почему я получаю 1300, а не как должно быть 1370 ?

Возможно сначала нужно запятую заменить на точку, потом в реал конвертировать.

it.lenin@preforma.ru
07.01.2024, 10:10
Возможно сначала нужно запятую заменить на точку, потом в реал конвертировать.

да, получилось. Спасибо.

МихаилГл
09.01.2024, 06:55
Добрый день.

MS SQL находится на другой машине. Обе машины русские Windows server

https://owen.ru/forum/attachment.php?attachmentid=72692&d=1703767285

Хочу помочь, но не могу понять, как вы вот это сделали?
Как вы добавили Monitor?

Может скинете архив проекта, некогда читать документацию и фак'и...

AlexBut
09.01.2024, 11:07
Здравствуйте!
Таблица data_raw в postgresql (основной архив данных MS4D у нас настроен в эту БД).
Не могу понять в каком формате отображается время в таблице (source_time),
не unix и не с 01-01-1900 ? Например 133480401338617063 -это когда?

Спасибо

AlexBut
09.01.2024, 12:32
Спасибо asuwcc:
"FILETIME - This structure is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.
Нужно взять количество наносекунд с января 1970 года до 1601 (-116444683000000000) и отнять его (по модулю) от времени в БД. Часовой пояс надо учесть."
И тогда старшие 10 цифр это время в Unix в сек, а остаток умножить на 10в степени-7 -доли секунды

AlexBut
10.01.2024, 06:12
Здравствуйте!
Настроил Основной архив данных в MS4D на PostgreSQL .
И т.к. проект большой БД быстро разрастается -уже 13 ГБ хотя всего несколько дней работает.
Реально растёт только одна таблица- public.data_raw в Schemas.
Вручную удалил строки в public.data_raw,где source_time <133492879000000000 т.е. 09.01.2024 17:00:00 (т.е. по нашему времени 10.01.2024 00:00:00)
Скрипт: Delete from public.data_raw where source_time <133492879000000000
и действительно на графиках удалились данные более старые чем это время.
Но размер таблицы и в целом БД не изменился-как был 13 ГБ так и остался?
Я ожидал, что размер сильно уменьшится, но что-то не так?
Подскажите, пож-та

AlexBut
10.01.2024, 06:21
И позвольте ещё вопрос- удалились данные на трендах до 09.01.2024 22:30, хотя я ожидал, до 10.01.24 00:00:00.
Несколько раз пересчитывал source_time <133492879000000000 т.е. 09.01.2024 17:00:00 (т.е. по нашему времени 10.01.2024 00:00:00 т.к. у нас UTC+7)
Хотя это уже не так принципиально, но почему так?
Спасибо

asuwcc
10.01.2024, 07:46
Но размер таблицы и в целом БД не изменился-как был 13 ГБ так и остался?
Я ожидал, что размер сильно уменьшится, но что-то не так?


День добрый.

Попробуйте применить команду VACUUM к таблице.
Или настроить Autovacuum в postgresql.conf
autovacuum = on # Enable autovacuum subprocess? 'on'

onimor
10.01.2024, 07:59
Вам точно нужно столько данных? может их сократить или период записи уменьшить.
На крайняк можно подумать сколько строк вы хотите видеть и программой в скаде проверять количество. Если будет больше то удалять остальное.
К примеру хотите видеть 50к , программа раз в 10 минут проверяет и обнаруживает, что уже 80к, идет и удаляет 30к старых.
В таком случае роста не должно быть и без вакума

onimor
10.01.2024, 08:14
Хотя это уже не так принципиально, но почему так?
А так пробовали?

where source_time>= timestamp '2024-01-01 00:00:00'
and source_time< timestamp '2024-01-10 00:00:00';
или

where source_time>= make_timestamp(2024,1,1,0,0,0)
and source_time< make_timestamp(2024,1,10,0,0,0);

imaex
10.01.2024, 11:39
Здравствуйте!
Но размер таблицы и в целом БД не изменился-как был 13 ГБ так и остался?
Я ожидал, что размер сильно уменьшится, но что-то не так?


Странно, что Вы этого ожидали. Я бы наоборот - сильно удивился, если бы размер уменьшился. Хоть и никогда конкретно с PostgreSQL дела не имел. Вам надо доку по администрированию PostgreSQL читать.

AlexBut
10.01.2024, 11:53
А так пробовали?

или
Пробовал но у source_time тип bigint

AlexBut
10.01.2024, 12:13
День добрый.

Попробуйте применить команду VACUUM к таблице.
Или настроить Autovacuum в postgresql.conf
autovacuum = on # Enable autovacuum subprocess? 'on'

Да получилось, спасибо

Ready
10.01.2024, 16:13
И позвольте ещё вопрос- удалились данные на трендах до 09.01.2024 22:30, хотя я ожидал, до 10.01.24 00:00:00.

133492879000000000 = 2024-01-09T15:31:40+00:00 = 2024-01-09T22:31:40+07:00

Для Вашей даты source_time = 133492932000000000 = 2024-01-09T17:00:00+00:00 = 2024-01-10T00:00:00+07:00

Ready
10.01.2024, 18:39
Пробовал но у source_time тип bigint

Без учета часового пояса и правил перехода на летнее время:
select * from public.data_raw where source_time > ((extract(epoch from timestamp '2024-01-10 00:00:00.0') + 11644473600) * 10000000)::bigint limit 100;

С учетом часового пояса:
select * from public.data_raw where source_time > ((extract(epoch from timestamp with time zone '2024-01-10 00:00:00.0+07') + 11644473600) * 10000000)::bigint limit 100;

extract(epoch from timestamp with time zone '2024-01-10 00:00:00.0+07') - количество секунд с 01.01.1970 00:00:00 UTC по 10.01.2024 00:00:00 UTC+7

11644473600 - количество секунд с 01.01.1970 00:00:00 UTC по 01.01.1601 00:00:00 UTC
select extract(epoch from timestamp '1601-01-01 00:00:00.0');
-11644473600 - берем по модулю

10000000 = 1000000000/100 - число 100-наносекундных интервалов в одной секунде

Денис199588
12.01.2024, 09:09
добрый день, подскажите пожалуйста, как реализовать возобновление значения при перезапуске. к примеру "наработка часов", вроде где-то натыкался, но сейчас не могу найти информацию, как достать из архива значения. заранее благодарю

Dorr
12.01.2024, 10:21
добрый день, подскажите пожалуйста, как реализовать возобновление значения при перезапуске. к примеру "наработка часов", вроде где-то натыкался, но сейчас не могу найти информацию, как достать из архива значения. заранее благодарю

В свойствах Параметра ("Наработка часов") в разделе Общие в свойстве Сохранить изменить Наследуется на Да.
Если я правильно понял вопрос!)

it.lenin@preforma.ru
14.01.2024, 18:58
Добрый день.
Подскажите как реализовать?
Есть начальное время и текущее время в формате DT. Разница между текущим и начальным временем не более 12 часов.
Есть время за которое проходит цикл в формате Time
Необходимо узнать сколько циклов было в этот промежуток времени?

Я так понимаю, что DT надо преобразовать в Time (функция DT_TO_TIME преобразует в формат *******d**h**m**s - как то еще надо убрать дни. Можно конечно еще разложить, а потом собрать что надо)
а потом поделить Time (разница между текущим и начальным временем) на Time (время за которое проходит один цикл).

Может кто подскажет как сделать проще и правильнее?

kondor3000
14.01.2024, 19:42
Я так понимаю, что DT надо преобразовать в Time (функция DT_TO_TIME преобразует в формат *******d**h**m**s - как то еще надо убрать дни. Можно конечно еще разложить, а потом собрать что надо)
а потом поделить Time (разница между текущим и начальным временем) на Time (время за которое проходит один цикл).

Может кто подскажет как сделать проще и правильнее?

Есть 3 варианта, перевести DT в TIME, первые два варианта на скрине72935 упростил 72936

1) Вариант попроще, конвертировать DT_TO_TOD, а потом TOD_TO_TIME
T1:=TOD_TO_TIME(DT_TO_TOD(DT1));

2) Немного сложней, конвертировать DT_TO_DWORD, извлечь время MOD 86400, и умножить на 1000 и уже конвертировать DWORD_TO_TIME
T2:=DWORD_TO_TIME((DT_TO_DWORD(DT1) MOD 86400) *1000);

3) Самый простой, для получения разницы времени t3 :TIME; просто вычесть DT0 - начальный из DT1- текущий. Скрин 72940
t3:=DT1-DT0;

Денис199588
15.01.2024, 04:18
А в 4D есть наработка часов? вроде перекопал уже всё, может какую то библиотеку доставить можно

Денис199588
15.01.2024, 04:48
добрый день, подскажите пожалуйста, как реализовать возобновление значения при перезапуске. к примеру "наработка часов", вроде где-то натыкался, но сейчас не могу найти информацию, как достать из архива значения. заранее благодарю. В мастерскада 3 есть "счетчик времени", в 4Д подобного не могу найти, только через ST можно реализовать?

МихаилГл
15.01.2024, 05:46
***

Это по нашей переписке скрины...72944

Действительно UTC...

AlexBut
15.01.2024, 07:03
Здравствуйте!
Вылезла ещё проблема- визуализация(и браузеры и клиент) теряют соединение с RT периодически(примерно минут 30)
и требуют ввода логина и пароля заново.
Дело не в логине-пароле а в потери соединения.
Попробовал установить новый клиент 1.3(из трея запускается) , то же самое,но там в настройках есть строка "Параметры запуска клиента".
Не подскажете где описание настроек для клиента 1.3

Спасибо

asuwcc
15.01.2024, 08:05
День добрый.

Может тут - https://support.mps-soft.ru/Help-web/index.html?masterscada-4d-client-monitor.html

melky
15.01.2024, 09:03
AlexBut это может быть не связано ни с клиентом ни с сервером. Скорее с WEB какой-то там версии и написанной на чем-то... Разрыв соединения есть и в других системах, написанных на NET Framework 4.8 и соответствующих ASP NET....

AlexBut
15.01.2024, 09:38
День добрый.

Может тут - https://support.mps-soft.ru/Help-web/index.html?masterscada-4d-client-monitor.html

Да, спасибо.

Не подскажете, что-то я забыл- обязательно ли удалять в Linux старую RT(у нас 1.2) или можно ставить поверх
по инструкции(у нас инструкция от января 2023 г) и изменилась ли инструкция?

Ещё вопрос - у нас Linux: Astra Linux Orel 2.12.45
И уже в конце реализации проекта мы столкнулись с проблемой- вылетает визуализация(точнее теряется связь браузера(клиента) с RT).
Раз в полчаса в среднем, что для диспетчерской недопустимо и пока эту проблему решить не можем.
Есть опасение что придётся всё переустанавливать и в связи с этим вопрос- какой Linux команда InSAT рекомендует?

Спасибо

МихаилГл
15.01.2024, 16:33
---
Корректировка часового пояса:
72962

Проверить нет возможности, но в самом sql работает.

it.lenin@preforma.ru
16.01.2024, 22:53
Все работает, огромное спасибо!!!!

it.lenin@preforma.ru
18.01.2024, 10:45
Добрый день.
Кто то пытался вывести проект на просмотр на современный SMART TV через встроенный браузер?
У меня не открывает проект, висит, потом появляется не активное окно "внимание" и все подвисает.

MCBK_
18.01.2024, 15:53
Здравствуйте ! В наличии контроллер ОВЕН ПЛК 210-03. В Codesys сделал тестовый проект, залил. Сделал под него визуализацию под панель Weintek через OPC UA. Теперь терзаю MasterScada v1.3.3 и никак не могу связать её с ПЛК. При подключении библиотеки Owen в дереве "Система" добавляется список овеновских ПЛК, в частности, PLC210-03. Но связь с ним по IP не устанавливается (Нет соединения с узлом). Где-то попадалась инфа, что с последними прошивками 2xx Овенов MasterScada больше не работает, и в новых версиях разработчики их поддержку уберут. Это верно ? И второй вопрос : а есть ли какая-то информация/ролик с примером создания визуализации в свежей MasterScada с контролерами Овен двухсотой серии с обменом по OPC UA ?

МихаилГл
18.01.2024, 16:13
А зачем вы через какую то библиотеку owen opc ua подключаете? Просто через протокол opc ua нормально работает...

MCBK_
19.01.2024, 16:27
Спасибо за ответ ! Пробую работать просто через протокол OPC UA. Создаю новый проект, добавляю АРМ, в АРМ добавляю протокол OPC UA, указываю сервер как IP контроллера (ОВЕН ПЛК 210-03) и порт 4840. Жму "Подключиться без загрузки", подключаюсь, вижу контроллер и переменные на нем, Жму "Применить", переменные добавляются в дерево проекта. Запускаю на исполнение - вижу в переменных "нет значения" и системное сообщение "АРМ1 : Нет соединения с узлом" :-( Файрволл отключен, антивирус тоже. Причем, через UaExpert по тому же IP и порту вижу переменные, могу менять значения.

МихаилГл
19.01.2024, 16:32
Тут надо смотреть. Я к контроллеру не цеплялся, цеплялся к собственноручно написанному шлюзу opc ua. Но в своей программе я не использовал сертификат подключения. Хотя рапид скаду с opc ua плк210 без проблем подключал.

После выходных попробую с мс4

MCBK_
19.01.2024, 16:35
Тут надо смотреть. Я к контроллеру не цеплялся, цеплялся к собственноручно написанному шлюзу opc ua. Но в своей программе я не использовал сертификат подключения. Хотя рапид скаду с opc ua плк210 без проблем подключал.

После выходных попробую с мс4

Спасибо тебе, добрый человек !

Krok27
25.01.2024, 12:11
Добрый день. Есть связка Контроллер->OwenCloud->MasterScada. С OwenCloud подключение по OPC UA. Можно ли в MasterScada отследить, что в контроллер перестал обновлять данные? В OwenCloud есть поле, когда было последнее обновление данных. Если контроллер не доступен, то в MasterScada данные приходят с качеством good.

Да и еще. Все параметры в дереве после добавления с OwenCloud имеют тип SYSTEM_STRING_PARAM. Как правильно выполнять преобразование в нужному типу, допустим к тому же BOOL? Сменить тип в дереве параметров на SYSTEM_BOOL_PARAM? Использовать функции пребразования типов?

melky
25.01.2024, 12:24
В OwenCloud вроде была переменная Статус Устройства - Алярм, Онлайн, Офлайн - она доступна через OPC UA ?

Krok27
25.01.2024, 12:39
В OwenCloud вроде была переменная Статус Устройства - Алярм, Онлайн, Офлайн - она доступна через OPC UA ?
Не, нет такой

melky
25.01.2024, 12:47
хм, такая переменная есть в API и они ее не добавили в OPC ? было бы полезно конечно. Но хозяин барин...

yaviar
29.01.2024, 11:08
Здравствуйте. Прошу помочь разобраться.
Вопрос по двустороннему обмену MS4D и плк S7 1200.
Для связи используется спец драйвер profinet.
Добавляю в MS4D теги из контроллерной DB в формате InOut ReadWrite, соответственно у каждого тега/канала создаётся Вход и Выход.
Когда управляю переменной со скады все ок, Вход и Выход канала всегда равны значению привязанного параметра.
Но если при взведенным в True каналом сбросить значение в False в ПЛК то на Входе канала в MS4D появляется значение False, а вот на выходе остаётся True, и соответственно привязанный параметр тоже висит в True.
Как наиболее простым способом реализовать возможность смены значения как из MS4D так и из ПЛК?

МихаилГл
29.01.2024, 11:23
Здравствуйте. Прошу помочь разобраться.
Вопрос по двустороннему обмену MS4D и плк S7 1200.
Для связи используется спец драйвер profinet.
Добавляю в MS4D теги из контроллерной DB в формате InOut ReadWrite, соответственно у каждого тега/канала создаётся Вход и Выход.
Когда управляю переменной со скады все ок, Вход и Выход канала всегда равны значению привязанного параметра.
Но если при взведенным в True каналом сбросить значение в False в ПЛК то на Входе канала в MS4D появляется значение False, а вот на выходе остаётся True, и соответственно привязанный параметр тоже висит в True.
Как наиболее простым способом реализовать возможность смены значения как из MS4D так и из ПЛК?

Непонятно, чего вы пытаетесь добиться... Обычно всеми выходными значениями должен управлять ПЛК. А извне менять допускается только входные переменные ПЛК.

yaviar
29.01.2024, 11:34
Непонятно, чего вы пытаетесь добиться... Обычно всеми выходными значениями должен управлять ПЛК. А извне менять допускается только входные переменные ПЛК.

Конкретно здесь например активацию включения оборудования выполняется оператор, а уже дальнейшее отключение этого же оборудования выполняется автоматически по алгоритму в плк. Для включения/выключения используется один и тот же тег формата bool.

Dorr
29.01.2024, 11:41
Здравствуйте. Прошу помочь разобраться.
Вопрос по двустороннему обмену MS4D и плк S7 1200.
Для связи используется спец драйвер profinet.
Добавляю в MS4D теги из контроллерной DB в формате InOut ReadWrite, соответственно у каждого тега/канала создаётся Вход и Выход.
Когда управляю переменной со скады все ок, Вход и Выход канала всегда равны значению привязанного параметра.
Но если при взведенным в True каналом сбросить значение в False в ПЛК то на Входе канала в MS4D появляется значение False, а вот на выходе остаётся True, и соответственно привязанный параметр тоже висит в True.
Как наиболее простым способом реализовать возможность смены значения как из MS4D так и из ПЛК?

Можно на ST написать такую штуку, например: если Выход <> Входу, то result := Выходу ....и уже этот результат привязать куда надо!

МихаилГл
29.01.2024, 11:42
Конкретно здесь например активацию включения оборудования выполняется оператор, а уже дальнейшее отключение этого же оборудования выполняется автоматически по алгоритму в плк. Для включения/выключения используется один и тот же тег формата bool.

Не знаю как делаете вы, но обычно делают так...
Есть внешние команды и команды ПЛК (ну например связанные функцией ИЛИ).
Со скады или ПЛК команда это всегда "Выставить тэг в 1". И ни каких тоггл бит...
Если поступает команда 1 от любого из устройств, то ПЛК обрабатывает ее и выставляет после обработки программы в 0.
Т.е. скада всегда читает выходные переменные контроллера и иногда посылает 1, если нужно что-то выполнить. Если у вас именно этот принцип сбоит, то надо думать, если что-то иначе, надо продумывать алгоритм.

yaviar
29.01.2024, 11:44
Можно на ST написать такую штуку, например: если Выход <> Входу, то result := Выходу ....и уже этот результат привязать куда надо!

Видимо так и придётся. Просто а том же Weintek Easy Builder Pro позволяется напрямую работать с переиенными контролёра, и там если сбросить в плк то и в Weintek переменная принимает соответствующее значение. Поэтому я подумал что делаю что то неправильно, и есть простой способ организации такой связи.

yaviar
29.01.2024, 11:48
Не знаю как делаете вы, но обычно делают так...
Есть внешние команды и команды ПЛК (ну например связанные функцией ИЛИ).
Со скады или ПЛК команда это всегда "Выставить тэг в 1". И ни каких тоггл бит...
Если поступает команда 1 от любого из устройств, то ПЛК обрабатывает ее и выставляет после обработки программы в 0.
Т.е. скада всегда читает выходные переменные контроллера и иногда посылает 1, если нужно что-то выполнить. Если у вас именно этот принцип сбоит, то надо думать, если что-то иначе, надо продумывать алгоритм.

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

yaviar
29.01.2024, 12:38
Можно на ST написать такую штуку, например: если Выход <> Входу, то result := Выходу ....и уже этот результат привязать куда надо!

Другая проблема, как только привязываю переменную к программе то уже не получается "Установить параметр" через кнопку, как будто программа перезаписывают, хотя там я использую r_trig и if и она не должна постоянно переписывать значение.

asuwcc
29.01.2024, 12:43
Непонятно, чего вы пытаетесь добиться... Обычно всеми выходными значениями должен управлять ПЛК. А извне менять допускается только входные переменные ПЛК.

День добрый.
Речь ведь идет про теги скады. В скаде Вход тега - чтение значения из ПЛК. Выход - запись в ПЛК.



Добавляю в MS4D теги из контроллерной DB в формате InOut ReadWrite, соответственно у каждого тега/канала создаётся Вход и Выход.
Когда управляю переменной со скады все ок, Вход и Выход канала всегда равны значению привязанного параметра.


К чему привязаны теги. Каким элементом управляете?

Dorr
29.01.2024, 12:57
Другая проблема, как только привязываю переменную к программе то уже не получается "Установить параметр" через кнопку, как будто программа перезаписывают, хотя там я использую r_trig и if и она не должна постоянно переписывать значение.

Берем Базовый тэг, связываем Входы и Выходы с тем чем надо. Со Входа тэга - на Входящую связь кнопки, с Выхода тэга - на Выходящую. Остальные связи разорвать. Убрать галку "Использовать входящую связь только для отображения".
Если я вообще понял что надо сделать)))

yaviar
29.01.2024, 13:14
День добрый.
Речь ведь идет про теги скады. В скаде Вход тега - чтение значения из ПЛК. Выход - запись в ПЛК.



К чему привязаны теги. Каким элементом управляете?

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

yaviar
29.01.2024, 13:19
Если к внутреннему параметру Привязан выход с программы и "Установить параметр" на визуализации одновременно, что будет иметь приоритет? Такое чувство что программа пишет в этом параметр False далее если условие IF не выполнилось, типа по умолчанию.

Dorr
29.01.2024, 13:28
Если к внутреннему параметру Привязан выход с программы и "Установить параметр" на визуализации одновременно, что будет иметь приоритет? Такое чувство что программа пишет в этом параметр False далее если условие IF не выполнилось, типа по умолчанию.

А скрин с привязками и программой ST можно глянуть?

МихаилГл
29.01.2024, 13:34
День добрый.
Речь ведь идет про теги скады...

Ну как бы нет... Тэги скады это ее внутренние тэги. Скада должна использовать внешние тэги ПЛК или ОРС сервера.

yaviar
29.01.2024, 13:50
Вообщем всем спасибо, пока сделал через глобальные переменные и отдельно привязал Вход и Выход, плюс программа по заднему фронту переменной Вход при наличие True на Выход сбросить Выход в False.
Что плохо, так это то что ты же самая программа через "клеммник" в программе и параметры объекта уже не работает, так как похоже даже если if в условии не выполнился, то все равно в выходные переменные запишет значение False,а не сохранит текущее на на момент исполнения программы значение (которое например только что взвелось кнопкой "Установить параметр")

МихаилГл
29.01.2024, 16:48
Не знаю как в мс4, у меня ПЛК как слэйв для сп315 и для ип320. Можно управлять с любого устройства, но для безопасности есть выбор управляющего устройства. Кроме того можно и с самого ПЛК управлять. Никаких сложностей не возникло. Но мс4 сильно накручена, тяжела она для изучения обычному пользователю.

Krok27
30.01.2024, 13:11
Добрый день! Подскажите пожалуйста почему SourceTime у входов тегов OPC UA обновляется в зависимости от периода задачи, а не времени изменения параметра от сервера? Связка OwenCloud->MasterScada 4d.

Dorr
01.02.2024, 14:56
Добрый день! Подскажите пожалуйста почему SourceTime у входов тегов OPC UA обновляется в зависимости от периода задачи, а не времени изменения параметра от сервера? Связка OwenCloud->MasterScada 4d.

может потому что Способ записи в настройках Задачи стоит не по Изменению времени!

MCBK_
01.02.2024, 16:51
Добрый день ! Нашел видеоинструкцию https://youtu.be/i9NFBgDQo-E?si=RFeF5OTS58T5voJS по подключению по OPC UA ПЛК к MasterScada 4D. Взял свой ОВЕН 210 (Codesys v3.5 SP17), создал проект один в один как в примере, отметил в символьной конфигурации переменные, залил. В MasterScada (v 1.3.4) опять же как в примере создал проект, добавил АРМ1 (IP 127.0.0.1), добавил протокол OPC-UA, прописал в нем IP ПЛК и порт 4840. Нажимаю "Подключиться без загрузки", вижу свой PLC210, вижу в нем свои расшаренные переменные, ставлю на них галки, они добавляются в проект. Запускаю проект на исполнение - пишет "АРМ1 : Нет соединения с узлом". Соответственно на переменных - нет значений. Запускаю сторонний OPC клиент (UaExpert), добавляю сервер с тем же IP и портом - вижу все значения прекрасно. Где собака порылась ? Брендмауэр отключен, сторонних антивирусов нет. Что я делаю не так ? :-(

МихаилГл
01.02.2024, 17:36
У меня контроллер забрали. Обещал проверить и не выполнил...

МихаилГл
02.02.2024, 06:57
Добрый день ! Нашел видеоинструкцию https://youtu.be/i9NFBgDQo-E?si=RFeF5OTS58T5voJS по подключению по OPC UA ПЛК к MasterScada 4D. Взял свой ОВЕН 210 (Codesys v3.5 SP17), создал проект один в один как в примере, отметил в символьной конфигурации переменные, залил. В MasterScada (v 1.3.4) опять же как в примере создал проект, добавил АРМ1 (IP 127.0.0.1), добавил протокол OPC-UA, прописал в нем IP ПЛК и порт 4840. Нажимаю "Подключиться без загрузки", вижу свой PLC210, вижу в нем свои расшаренные переменные, ставлю на них галки, они добавляются в проект. Запускаю проект на исполнение - пишет "АРМ1 : Нет соединения с узлом". Соответственно на переменных - нет значений. Запускаю сторонний OPC клиент (UaExpert), добавляю сервер с тем же IP и портом - вижу все значения прекрасно. Где собака порылась ? Брендмауэр отключен, сторонних антивирусов нет. Что я делаю не так ? :-(

Изыскал ПЛК, создал с нуля проект, все работает... Ошибки АРМ нет. Версия без лицензий.
73248

MCBK_
02.02.2024, 10:36
Изыскал ПЛК, создал с нуля проект, все работает... Ошибки АРМ нет. Версия без лицензий.
73248

Огромное спасибо за помощь ! В общем, поставил скаду на виртуалку с чистой 10-й виндой - все заработало. Брандмауэр при первом запуске спросил разрешения - и все. Здесь же включаешь/отключаешь брандмауэр - АРМ пишет, что нет соединения с узлом. Антивируса нет никакого. Похоже, придется винду сносить.

Krok27
02.02.2024, 13:36
может потому что Способ записи в настройках Задачи стоит не по Изменению времени!
Нет. Нужно снять галку с настройки "Получать признак качества и метку времени". Тогда станут доступны текущие качество и метка.
Выдержка из справки


Определяет тип данных для каналов: SYSTEM_*_PARAM (включает метку и качество), или атомарные. Если параметр атомарного типа архивируется, то в режиме чтения архивов из OPC UA сервера в архив будут записываться метки времени и признаки качества, получаемые от сервера, но текущие значения метки времени и признака качества будут недоступны.

bratan
02.02.2024, 16:02
При запуск учебных проектов нет соединения с узлом.. в чем причина?

МихаилГл
02.02.2024, 16:05
При запуск учебных проектов нет соединения с узлом.. в чем причина?

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

bratan
02.02.2024, 16:24
Да шут его знает. Возможно создан в среде с другими установочными параметрами, например, с установленной базой данных.
Копируйте основное в новый чистый проект и пробуйте. У меня только так получилось один из проектов открыть.

Да даже при создании пустого проекта с АРМ1, нет связи с узлом..может установил не правильно что.. Скачал демонстрационную версию
Использую Windows 7, 64-х разрядную

МихаилГл
02.02.2024, 16:33
Да даже при создании пустого проекта с АРМ1, нет связи с узлом..может установил не правильно что.. Скачал демонстрационную версию
Использую Windows 7, 64-х разрядную

У МСВК_ тоже также походу. Не знаю как она себя ведёт на 7ке. А точно всё что надо поставили? У меня на 2х ПК без Бубнов заработала демка. Машина не доменная? Может каких прав не хватает... Если только разработчики ответят, но они неделю так и не ответили предыдущему ТС с такой проблемой в 2х ветках форума. Попробуйте на виртуалке...

bratan
02.02.2024, 16:37
У МСВК_ тоже также походу. Не знаю как она себя ведёт на 7ке. А точно всё что надо поставили? У меня на 2х ПК без Бубнов заработала демка. Машина не доменная? Может каких прав не хватает... Если только разработчики ответят, но они неделю так и не ответили предыдущему ТС с такой проблемой в 2х ветках форума. Попробуйте на виртуалке...

Скачал с сайта мастерскады демонстрационную версию (MasterSCADA4D_x64), установил все что предложила, что еще нужно?) А RT нужно ставить?

МихаилГл
02.02.2024, 16:40
Скачал с сайта мастерскады демонстрационную версию (MasterSCADA4D_x64), установил все что предложила, что еще нужно?) А RT нужно ставить?

Обычно всё что надо поставить описано в руководстве. Сторонние утилиты какие нибудь и пр. Может компонентов виндовс типа нетфраймфорк не хватает или iis.

bratan
02.02.2024, 16:50
нетфраймфорк есть, на двух разных компах поставил, на обоих не могу к узлу подрубиться.. на одной из машин еще ошибка иногда появляется: Точка входа в процедуру GetSystemTimePreciseAsFileTime не найдена в библиотеке DLL kernel32.dll

МихаилГл
02.02.2024, 16:51
Вот например из руководства:
После установки любого из указанных выше продуктов MasterSCADA 4D мастер установки
инициирует процедуру установки Core Components Redistributable и/или Microsoft.NET Frame-
work, если эти продукты еще не установлены на ПК (см. Установка OPC Core Components
Redistributable и Установка Framework ).

bratan
02.02.2024, 16:54
И Core Components Redistributable и Microsoft.NET Framework установлены

МихаилГл
02.02.2024, 16:58
Вот ещё нашёл... 73268

bratan
02.02.2024, 18:53
Вот ещё нашёл... 73268

Короче установил на ноут, там винда 10-ка, все заработало, походу мастерскада с виндой 7 плохо работает.
Спасибо, за помощь :)

Андрей_Скада
06.02.2024, 13:14
Здравствуйте! Я новичок. Сориентируйте пожалуйста. Есть Master SCADA 4D. Есть ПРЕОБРАЗОВАТЕЛЬ ИНТЕРФЕЙСОВ USB-RS232 и есть Модуль дискретного ввода/вывода ОВЕН.
МДВВ. Как подключиться к модулю дискретного ввода/вывода ОВЕН ?

МихаилГл
06.02.2024, 13:26
Здравствуйте! Я новичок. Сориентируйте пожалуйста. Есть Master SCADA 4D. Есть ПРЕОБРАЗОВАТЕЛЬ ИНТЕРФЕЙСОВ USB-RS232 и есть Модуль дискретного ввода/вывода ОВЕН.
МДВВ. Как подключиться к модулю дискретного ввода/вывода ОВЕН ?

Необходим USB-ModBus преобразователь и Овен-OPC для связки скады с железкой. Напрямую не знаю, может скада общаться или нет. Не пробовал еще.

Андрей_Скада
06.02.2024, 14:34
Необходим USB-ModBus преобразователь и Овен-OPC для связки скады с железкой. Напрямую не знаю, может скада общаться или нет. Не пробовал еще.

Спасибо. То есть, если не использовать контроллер, а подключаться на прямую через преобразователь, то нужен обязательно RS 485? больше никак?

Андрей_Скада
06.02.2024, 14:48
Заказал rs 485/ Есть ли инструкция или видео, как подключиться и настроить скаду 4д и модуль дискретного ввода вывода ОВЕН МДВВ через rs 485 ? Пожалуйста

МихаилГл
06.02.2024, 14:53
Заказал rs 485/ Есть ли инструкция или видео, как подключиться и настроить скаду 4д и модуль дискретного ввода вывода ОВЕН МДВВ через rs 485 ? Пожалуйста

Вот в поиске сразу
https://www.youtube.com/live/F7X87fbeJIs?si=aQBtrSx5v1yKIDR0

vasiliiy
06.02.2024, 16:39
Добрый день! Нужно зачитать с контроллера 600 слов на запись и 250 на чтение через ModbusTCP. Пока изучал мастерскаду 4д нашел пока единственный вариант для каждого из этих слов создавать отдельный базовый канал вписывать "Регион", конкретный "Адрес" слова , тип данных и дальше работать с ним разбивая на биты и т.п., но вдруг есть другой способ зачитывать значения с контроллера. Пытался на выходе базового канала писать тип данных ARRAY [0..599] OF WORD, но толку понятное дело мало, так как не понял как в таком случае прописывать "Адрес", потому что у самого базового канала нельзя выбрать массив, а только конкретный тип данных. Итак к вопросу. Могу я зачитать с контроллера сразу все регистры временного хранения в контроллере "ARRAY [0..599] OF WORD" и входные регистры "ARRAY [0..249] OF WORD" в соответствующие массивы уже в мастерскаде 4д и дальше работать с ними не плодя тысячу базовых каналов?

AlexBut
07.02.2024, 06:57
Здравствуйте!
Так на работающем проекте особенно не поэкспериментируешь, прошу прояснить вопрос -
если задать архивирование параметру system_real , то будут ли архивироваться вложенные
элементы этой структуры(value,statuscode, sourcetime)?
И можно ли на график втягивать system_real или только value этого system_real?

Спасибо

Александр Пинэко-Скворцов
07.02.2024, 09:56
Добрый день! Нужно зачитать с контроллера 600 слов на запись и 250 на чтение через ModbusTCP. Пока изучал мастерскаду 4д нашел пока единственный вариант для каждого из этих слов создавать отдельный базовый канал вписывать "Регион", конкретный "Адрес" слова , тип данных и дальше работать с ним разбивая на биты и т.п., но вдруг есть другой способ зачитывать значения с контроллера. Пытался на выходе базового канала писать тип данных ARRAY [0..599] OF WORD, но толку понятное дело мало, так как не понял как в таком случае прописывать "Адрес", потому что у самого базового канала нельзя выбрать массив, а только конкретный тип данных. Итак к вопросу. Могу я зачитать с контроллера сразу все регистры временного хранения в контроллере "ARRAY [0..599] OF WORD" и входные регистры "ARRAY [0..249] OF WORD" в соответствующие массивы уже в мастерскаде 4д и дальше работать с ними не плодя тысячу базовых каналов?

Добрый день!

В модулях Modbus нет возможности создать канал-массив.
Для упрощения создания каналов можно добавить в устройство Группу каналов. В настройках группы задаётся начальный регистр, тип и режим доступа.
В свойствах устройства включите Групповые запросы.

733577335873359

Александр Пинэко-Скворцов
07.02.2024, 10:13
Здравствуйте!
Так на работающем проекте особенно не поэкспериментируешь, прошу прояснить вопрос -
если задать архивирование параметру system_real , то будут ли архивироваться вложенные
элементы этой структуры(value,statuscode, sourcetime)?
И можно ли на график втягивать system_real или только value этого system_real?

Спасибо

Добрый день!
1.
Вложенные элементы также архивируются (см. скриншот). 73370

2.
На график следует привязывать только Value.

Larrrik
07.02.2024, 10:48
На график следует привязывать только Value.
Если вытаскивать только Value, разве это не лишает возможности выделять на графике недостоверные значения (по метке качества)?

yaviar
07.02.2024, 15:23
Добрый день.
Не получается выбрать диапазон фильтра в таблице данных значения больше 100, подскажите пожалуйста где это настраивается?

73403

vasiliiy
07.02.2024, 15:58
Добрый день!

В модулях Modbus нет возможности создать канал-массив.
Для упрощения создания каналов можно добавить в устройство Группу каналов. В настройках группы задаётся начальный регистр, тип и режим доступа.
В свойствах устройства включите Групповые запросы.

733577335873359

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

Александр Пинэко-Скворцов
08.02.2024, 09:14
Если вытаскивать только Value, разве это не лишает возможности выделять на графике недостоверные значения (по метке качества)?

Если перетянуть на тренд структуру целиком, значение не будет отображаться. Проверено на версии 1.2.18.

asuwcc
08.02.2024, 09:59
Если перетянуть на тренд структуру целиком, значение не будет отображаться. Проверено на версии 1.2.18.

День добрый.

Перетащить можно как значение Value, так и всю структуру System_*_Param. Отображаться график будет.
На графике недостоверные данные будут фиксировать только с параметром System_*_Param.

Проверено на версии 1.3.3

Larrrik
08.02.2024, 10:50
Проверено на версии 1.2.18.
В актуальных версиях работает нормально.

Андрей_Скада
08.02.2024, 11:22
Можно ли на один USB rs -485 посадить 2 модуля ввода вывода? Это как сделать? просто запаралелить rs -485 и развести на 2 устройства?

melky
08.02.2024, 11:28
Андрей_Скада шлейфом с параллельным подключением контактов. По стандарту до 31 устройства без повторителей, с повторителями 253 или 254 устройства.

Андрей_Скада
08.02.2024, 12:06
Андрей_Скада шлейфом с параллельным подключением контактов. По стандарту до 31 устройства без повторителей, с повторителями 253 или 254 устройства.

спасибо. а просто скрутка для теста подойдет же ?)

МихаилГл
08.02.2024, 13:08
спасибо. а просто скрутка для теста подойдет же ?)

Пойдёт. Главное адреса задайте разные.

Андрей_Скада
09.02.2024, 13:54
Привет! У меня проблема. Я так и не заставил Овен МДВВ работать. Написал программу на скада 4д. Сделал визуализацию. Все работает. Подключил питание к МДВВ подключил и настроил интерфейс RS 485. Но теперь новая проблема. ( Нужна битовая маска. Как это вообще ...не понимаю до конца. 734657346673467 Помогите! Это мое первое подключение к железу и сразу такое геморройное ! через битовую маску(*** как сделать эту битовую маску? Как мне заставить щелкать МДВВ?

МихаилГл
09.02.2024, 15:21
Это двоичное представление считываемого числа. Вместо 15 это 00001111, следовательно 1 - вход вкл, место единицы, это текущий вход.

kondor3000
09.02.2024, 18:40
Привет! У меня проблема. Я так и не заставил Овен МДВВ работать. Написал программу на скада 4д. Сделал визуализацию. Все работает. Подключил питание к МДВВ подключил и настроил интерфейс RS 485. Но теперь новая проблема. ( Нужна битовая маска. Как это вообще ...не понимаю до конца. Помогите! Это мое первое подключение к железу и сразу такое геморройное ! через битовую маску(*** как сделать эту битовую маску? Как мне заставить щелкать МДВВ?

Сделайте программу на языке ST, для битовой маски Mask типа WORD упаковка через точку, будет Mask.0:=b0; Mask.1:=b1; Mask.2:=b2; Mask.3:=b3; ........Mask.15:=b15;
Распаковка из маски b0:=Mask.0; b1:=Mask.1; b2:=Mask.2; b3:=Mask.3; ..........b15:=Mask.15;

Андрей_Скада
12.02.2024, 11:51
Есть ли пример использования битовой маски для прибора ввода вывода. Без контроллера. Из Скада 4д. Не получается. Я понимаю, что нужно подавать групповую команду в регистр на запись. Нужно поменять один бит и прибор подаст на выход сигнал.
Могу ли я напрямую создать параметр и подавать на выход, меняя просто значение и так управлять?

МихаилГл
12.02.2024, 12:08
Есть ли пример использования битовой маски для прибора ввода вывода. Без контроллера. Из Скада 4д. Не получается. Я понимаю, что нужно подавать групповую команду в регистр на запись. Нужно поменять один бит и прибор подаст на выход сигнал.
Могу ли я напрямую создать параметр и подавать на выход, меняя просто значение и так управлять?

При чем тут групповая команда, вам же выше уже сказали примерное решение и что такое битовая маска. Вы двоичную систему исчисления знаете?
Например:
надо включить первый дискретный выход, подаете десятичное 1. (двоичное 00000001)
надо включить второй дискретный выход, подаете десятичное 2. (двоичное 00000010)
надо включить третий дискретный выход, подаете десятичное 4. (двоичное 00000100)
надо включить первый и третий дискретный выход, подаете десятичное 5. (двоичное 00000101)

Андрей_Скада
12.02.2024, 13:04
При чем тут групповая команда, вам же выше уже сказали примерное решение и что такое битовая маска. Вы двоичную систему исчисления знаете?
Например:
надо включить первый дискретный выход, подаете десятичное 1. (двоичное 00000001)
надо включить второй дискретный выход, подаете десятичное 2. (двоичное 00000010)
надо включить третий дискретный выход, подаете десятичное 4. (двоичное 00000100)
надо включить первый и третий дискретный выход, подаете десятичное 5. (двоичное 00000101)

Спасибо! Это я все понимаю.
Я создал в ARM -> Modbus RTU->Modbus Device 1->канал DO 1.
Создал объект 1 -> параметр 1 (этот параметр по кнопке дает TRUE(вкл) и FALSE(выкл))
цепляю этот параметр на канал DO 1. Сразу преобразовывается из TRUE(вкл) и FALSE(выкл) в 1 и 0. Пишет ошибку, что не явное преобразование из типа BOOL в тип int. И ничего не происходит с модулем ввода вывода. Почему? там же на запись подается десятичная 1 и это в двоичном 00000001. Должно же включаться реле( но нет.
Скину свойства. 735147351573516735177351873519
вот параметры устройства:
https://docs.google.com/document/d/1PpSGOhL19PGU-uaQLOb1vMlk88ledZTgFjtkraC3ku4/edit
Подскажите пожалуйста. что не так?

МихаилГл
12.02.2024, 13:16
Спасибо! Это я все понимаю.
Я создал в ARM -> Modbus RTU->Modbus Device 1->канал DO 1.
Создал объект 1 -> параметр 1 (этот параметр по кнопке дает TRUE(вкл) и FALSE(выкл))
цепляю этот параметр на канал DO 1. Сразу преобразовывается из TRUE(вкл) и FALSE(выкл) в 1 и 0. Пишет ошибку, что не явное преобразование из типа BOOL в тип int. И ничего не происходит с модулем ввода вывода. Почему? там же на запись подается десятичная 1 и это в двоичном 00000001. Должно же включаться реле( но нет.
Скину свойства. 735147351573516735177351873519
вот параметры устройства:
https://docs.google.com/document/d/1PpSGOhL19PGU-uaQLOb1vMlk88ledZTgFjtkraC3ku4/edit
Подскажите пожалуйста. что не так?

Предупреждения обычно не влияют на работоспособность, например в кодесисе... Может не в тот регистр пишите? Там есть смещение на 1...? Модбас пулом пробовали включить выхода?

Андрей_Скада
12.02.2024, 13:21
Заработало! Перезагрузил com порт)

МихаилГл
12.02.2024, 13:25
Заработало! Перезагрузил com порт)

Возможно был занят другой программой.

Андрей_Скада
12.02.2024, 13:25
Предупреждения обычно не влияют на работоспособность, например в кодесисе... Может не в тот регистр пишите? Там есть смещение на 1...? Модбас пулом пробовали включить выхода?

Спасибо большое за помощь!
Такой вопрос... А можно ли считывать то, что вход включился новый на мдвв? то есть например у меня есть ручной переключатель через МДВВ. через вход №2. и я хочу, чтобы когда этот вход включается, то скада мне об этом сообщает. То есть считывать, что на входе №2 появилось питание.

МихаилГл
12.02.2024, 13:26
Спасибо большое за помощь!
Такой вопрос... А можно ли считывать то, что вход включился новый на мдвв? то есть например у меня есть ручной переключатель через МДВВ. через вход №2. и я хочу, чтобы когда этот вход включается, то скада мне об этом сообщает. То есть считывать, что на входе №2 появилось питание.

Смотрите по документации какой регистр отвечает за маску входов.

Андрей_Скада
12.02.2024, 20:56
Вот такая логика:
к примеру мне нужно управлять светом в комнате (скада4д, мдвв).Организовать логику включения и выключения света в скаде4д не проблема.
Вопрос:
Мне нужно чтобы когда кто то включает свет просто выключателем в комнате, то в окне визуализации скада4д появлялась индикация включённого света выключателем.

неужели вариант только один, это датчик включённого света, который подаёт сигналы на вход мдвв?

melky
13.02.2024, 11:47
Андрей_Скада так вам же написали, читайте маску входов и будете знать, какой из них включен или выключен.

Андрей_Скада
13.02.2024, 14:06
Почему не передается значение Параметра 4 на выход канала? 735437354473545735467354773548

Андрей_Скада
13.02.2024, 14:56
Почему не передается значение Параметра 4 на выход канала? 735437354473545735467354773548

РАЗОБРАЛСЯ! Просто параметр нужно перетянуть на Value.
И установить SYSTEM_DINT_PARAM

1exan
16.02.2024, 06:55
Modbus TCP - нужно читать/писать биты регистра.
Добавил базовый канал (тег) в протокол, в базовый канал добавил программу для чтения/записи бит.
73605
Это нормальный подход, или есть более простые методы?
В какой последовательности будут выполняться: чтение/запись данных с устройства, выполнение программы базового канала и передача данных из/в объект мастерскада?

Yakut
16.02.2024, 09:17
Коллеги, а подскажите , пожалуйста, как избавиться от очень длинного выражения REAL в визуализации?
Можно ли где-то указать что бы отсекал значения до сотых или десятых?
Как на фото, выделил красным.

Когда с контроллера передаёт REAL, тогда всё нормально до тысячных, но когда делаю арифметику в скаде (целочисленное перевожу в плавающую точку, делаю деление и большой остаток получается, нужно ещё и округлять программно?)

KSergey
16.02.2024, 09:23
Коллеги, а подскажите , пожалуйста, как избавиться от очень длинного выражения REAL в визуализации?
Можно ли где-то указать что бы отсекал значения до сотых или десятых?
Как на фото, выделил красным.

Когда с контроллера передаёт REAL, тогда всё нормально до тысячных, но когда делаю арифметику в скаде (целочисленное перевожу в плавающую точку, делаю деление и большой остаток получается, нужно ещё и округлять программно?)

В параметрах текста в поле "Формат значений" прописать {fx}, где x - количество знаков после запятой. После фигурной скобки можно дописать единицу измерения. К примеру: "{f1} л/мин".

Yakut
16.02.2024, 10:13
В параметрах текста в поле "Формат значений" прописать {fx}, где x - количество знаков после запятой. После фигурной скобки можно дописать единицу измерения. К примеру: "{f1} л/мин".

Благодарю, добрый человек, всё получилось.

А случаем не подскажешь как ещё делать видимость/невидимость кнопок?
Имеется 2 кнопки одну нажали, вторая "исчезла", отжали - появилась. И наеборот.

1exan
16.02.2024, 10:17
Благодарю, добрый человек, всё получилось.

А случаем не подскажешь как ещё делать видимость/невидимость кнопок?
Имеется 2 кнопки одну нажали, вторая "исчезла", отжали - появилась. И наеборот.

Есть свойство "Видимость" - привяжите значения тегов к нему

KSergey
16.02.2024, 10:26
Благодарю, добрый человек, всё получилось.

А случаем не подскажешь как ещё делать видимость/невидимость кнопок?
Имеется 2 кнопки одну нажали, вторая "исчезла", отжали - появилась. И наеборот.

Параметр, изменяемый первой кнопкой, перетянуть на параметр второй кнопки "Видимость" и настроить тип конвертации "Точечная". К примеру 73613

Yakut
16.02.2024, 12:18
Благодарю, добрый человек, всё получилось.

А случаем не подскажешь как ещё делать видимость/невидимость кнопок?
Имеется 2 кнопки одну нажали, вторая "исчезла", отжали - появилась. И наеборот.

Да, благодарю. Получилось

Yakut
16.02.2024, 12:20
Параметр, изменяемый первой кнопкой, перетянуть на параметр второй кнопки "Видимость" и настроить тип конвертации "Точечная". К примеру 73613

Так и сделал. Балгодарю.

А ещё вопрос - если у меня ёмкости не стандартные, бассейн собственной сборки, можно ли делать заливку по уровням, как в обычных ёмкостях? и как, если такое возможно?

Dorr
16.02.2024, 12:47
Так и сделал. Балгодарю.

А ещё вопрос - если у меня ёмкости не стандартные, бассейн собственной сборки, можно ли делать заливку по уровням, как в обычных ёмкостях? и как, если такое возможно?

Контролируемый Параметр на Заливку фона ---> конвертация (какая нужна) ---> и все
73621 - как пример

Yakut
18.02.2024, 08:46
Контролируемый Параметр на Заливку фона ---> конвертация (какая нeжна) ---> и все
73621 - как пример

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

Хочется что бы уровень показывал по высоте, как в ёмкостях. Заполнился на 50%, значит на картинке он наполовину пуст или полон. А пока только по цветом меняется.
Вот как на "баре" показано и текущий уровень видно и уровень заливки тоже показан.

МихаилГл
19.02.2024, 04:49
Я в кодесисе нашел выход... Нарисовал 5 объектов, и привязал к ним видимость. Хоть какое-то, хоть и дискретное, отображение уровня)

AlexBut
19.02.2024, 04:50
Здравствуйте!
Есть проблема автозапуска служб MPLC и OPC MPSSoft MasterOPC Universal Modbus Server на Linux(systemctl enable mplc4 и sudo systemctl enable mbsrt делали).
MPLC(1.3.4.16945) не запускается вовсе после перезагрузки OS(RED OS MUROM 7.3.4 Server Standart Ed) а MBSRT делает вид, что запускается (т.е. качество тэгов good),
хотя опроса нет пока не сделаешь restart.
Проблема бывает если ночью или в выходные происходит перезагрузка сервера, а запустить вручную некому и автозапуск не помешал бы.
Может кто сталкивался с подобным и подскажет решение.

Ещё есть одна проблема- после изменения конфигурации тэгов в MasterOPC Universal Modbus Server следует делать restart и зачастую
это невозможно сделать без перезагрузки OS-после restart (sudo systemctl restart mbsrt) секунд 10-15 работает и слетает и так пока
не перезагрузишь OS.Пробовали stop -start вместо restart -тоже.Но бывает, что запускается и без перезагрузки OS.
О том,что mbsrt работает судим по команде status.

Может какие настройки Linux, мы с Linux раньше не работали.


Спасибо

Yakut
19.02.2024, 06:26
Я в кодесисе нашел выход... Нарисовал 5 объектов, и привязал к ним видимость. Хоть какое-то, хоть и дискретное, отображение уровня)

В портале мне нравится, что можно использовать бар, при этом отключить все циферки, шкалы. Остаётся только индикация уровня. И уже эту индикацию уровня можно совать куда угодно под любую ёмкость, хоть треугольную (при этом правда приходится рисовать треугольники серого цвета, но уж хоть так...

МихаилГл
19.02.2024, 06:37
В factorytalk есть динамическая заливка, и вроде для любых фигур. Не надо с бубнами танцевать.

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

1exan
19.02.2024, 09:05
Может я как-то не правильно понял, но у меня получилось не совсем то, что хотелось.

Хочется что бы уровень показывал по высоте, как в ёмкостях. Заполнился на 50%, значит на картинке он наполовину пуст или полон. А пока только по цветом меняется.
Вот как на "баре" показано и текущий уровень видно и уровень заливки тоже показан.

Как вариант, можно взять прямоугольник и задинамизировать свойство "Высота" с нужным масштабированием.
С произвольной формой - тоже как вариант - можно наложить поверх этого самодельного бара картинку в формате png или svg в виде прямоугольника заливкой цвета фона страницы и с дыркой необходимой формы в середине (чтобы через неё видеть самодельный бар). Но это уже лишнее, мне кажется

UPD: С высотой не всё просто - отсчёт ведётся от верхнего левого угла, поэтому бар получается "перевернут"

МихаилГл
19.02.2024, 09:09
Как вариант, можно взять прямоугольник и задинамизировать свойство "Высота" с нужным масштабированием.
С произвольной формой - тоже как вариант - можно наложить поверх этого самодельного бара картинку в формате png или svg в виде прямоугольника заливкой цвета фона страницы и с дыркой необходимой формы в середине (чтобы через неё видеть самодельный бар). Но это уже лишнее, мне кажется

Это называется костыль
73664

Dorr
19.02.2024, 09:45
Может я как-то не правильно понял, но у меня получилось не совсем то, что хотелось.

Хочется что бы уровень показывал по высоте, как в ёмкостях. Заполнился на 50%, значит на картинке он наполовину пуст или полон. А пока только по цветом меняется.
Вот как на "баре" показано и текущий уровень видно и уровень заливки тоже показан.

Это я не так понял, получается)
1exan прав, можно сделать прямоугольник и динамизировать высоту, но "вверх тормашками" не очень смотрится.

Надо бы подумать:confused:

UPD: подумал!
73667
73668
73669
73670

Прямоугольник ---> Параметр ---> Заливка + Высота (меняем как нужно) ---> еще один прямоугольник (по макс размеру первого) ---> группируем в Панель ---> переворачиваем на 180 саму Панель. Готово!

1exan
19.02.2024, 10:36
Это я не так понял, получается)
1exan прав, можно сделать прямоугольник и динамизировать высоту, но "вверх тормашками" не очень смотрится.

Надо бы подумать:confused:

UPD: подумал!
73667
73668
73669
73670

Прямоугольник ---> Параметр ---> Заливка + Высота (меняем как нужно) ---> еще один прямоугольник (по макс размеру первого) ---> группируем в Панель ---> переворачиваем на 180 саму Панель. Готово!

Вообще если форма - прямоугольник, то штатный прогресс-бар нормально работает

Yakut
19.02.2024, 12:55
Это я не так понял, получается)
1exan прав, можно сделать прямоугольник и динамизировать высоту, но "вверх тормашками" не очень смотрится.


Трактовка в корне не верная. Это не ты не так понял, а я не правильно объяснил. Мы, вроде бы, говорим на одном языке, но понимаем его по разному. Если я, скажем, попрошу группу людей принести стакан воды, то мне один принесёт из под крана, второй холодную, двое горячу, другие со льдом, газированную и т.д. И все будут правы, потому что они принесли воды и к ним претензий быть не может никаких. В семейной жизни так вообще попросить представить идеальную семью, то маловероятно, что у нескольких людей она будет совпадать. Мужчина представит как он приходит домой, и будет рядом жена довольная с обедом у подноса, а женщина представит, что они гуляют вечером по берегу песчаного моря на закате державшись за руку. У обоих идеальная семья такая, причём ни в первом, ни во втором случае нет место для выноса мусора и мытья полов. Отсюда и возникают конфликты. Скажешь, что в технике такого нет - да вот пример, прямо у меня под носом лежит лист ТЗ, написанное технологом "Автоматическая смена рабочего насоса на резервный по графику выставленному при ПНР. Корректировка графика с АРМ". Я в голове уже представил ось абсцисс и ось ординат и пытаюсь понять, что хотел донести до меня автор. А он просто подразумевал по график времени, мол выставил график работы, как в магазине и так оно работает, с обедом с 13:00 до 14:00 и без выходных :D
В сельском хозяйстве картина аналогичная, брожение с ферментацией сами преподаватели путают и делают корявые тесты. И пока человечество не поймёт это, будут оскорбления, конфликты, войны и т.д.
Надеюсь, чего понятное написал.

А теперь по теме: Да, получилось использовать высоту, действительно меняется вверх-тормашками :) Но перевернуть на 180 градусов, наверное, не проблема.
Вопрос по цвету - он получается будет ступенчатый, скажем от 0 до 100 зелёный, свыше жёлтый?

И да, благодарю, за помощь, коллеги!

МихаилГл
19.02.2024, 13:04
И да, благодарю, за помощь, коллеги!

https://www.youtube.com/watch?v=kp4mvhgD3wI

1exan
19.02.2024, 13:12
...
Вопрос по цвету - он получается будет ступенчатый, скажем от 0 до 100 зелёный, свыше жёлтый?
...

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

Dorr
19.02.2024, 14:36
А теперь по теме: Да, получилось использовать высоту, действительно меняется вверх-тормашками :) Но перевернуть на 180 градусов, наверное, не проблема.
Вопрос по цвету - он получается будет ступенчатый, скажем от 0 до 100 зелёный, свыше жёлтый?

И да, благодарю, за помощь, коллеги!

Ну либо градиент сделать (кусочно-линейной конв), либо побольше точек накидать с нужными цветами (ступенчатой). Хотя, в большинстве случаев, используют НАУ, НУ, ВУ, ВАУ. Хватает для понимания процесса, так сказать!

1exan
20.02.2024, 05:09
Есть ли какой-то способ добавить сразу несколько медиа файлов (изображения) в систему, или можно добавлять только по одному файлу?

Yakut
20.02.2024, 09:35
Это я не так понял, получается)
1exan прав, можно сделать прямоугольник и динамизировать высоту, но "вверх тормашками" не очень смотрится.

Надо бы подумать:confused:

UPD: подумал!
73667
73668
73669
73670

Прямоугольник ---> Параметр ---> Заливка + Высота (меняем как нужно) ---> еще один прямоугольник (по макс размеру первого) ---> группируем в Панель ---> переворачиваем на 180 саму Панель. Готово!

Что-то у меня без проблем никак не получается. Не поворачивается на 180 градусов. Сделал скирны на 0, 180, 240, 90 360 градусов, никак не пойму по какой логике оно вращается.

1exan
20.02.2024, 09:55
Что-то у меня без проблем никак не получается. Не поворачивается на 180 градусов. Сделал скирны на 0, 180, 240, 90 360 градусов, никак не пойму по какой логике оно вращается.

Против часовой

Yakut
20.02.2024, 10:02
Против часовой

ну так при 180 оно должно было встать вверх ногами, а оно как и при 0 одинаково. Причём на 90 и 270 встаёт перпендикулярно

МихаилГл
20.02.2024, 10:36
ну так при 180 оно должно было встать вверх ногами, а оно как и при 0 одинаково. Причём на 90 и 270 встаёт перпендикулярно

Встало одинаково... А направление заливки изменилось?

Yakut
20.02.2024, 10:43
Встало одинаково... А направление заливки изменилось?

Коллега правильно выше сказал нужно создать ещё один прямоугольник. Объединить их в одну группу, сделать размеры одинаковыми. Далее делать поворот на 180 градусов.
Чешите правое ухо левой рукой через темечко.

А угол поворота работает пока по непонятной схеме. Почему-то высота меняется, фигура ползёт вверх, если ставить у объекта заливки 90 и 240 градусов. см. приложения 2 картинки.

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

Yakut
20.02.2024, 10:48
Встало одинаково... А направление заливки изменилось?

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

Dorr
20.02.2024, 11:01
Нет, конечно. Более того, если я создал картинку и мне вдруг надо сделать ещё одну ёмкость и привязать к ней тругой тэг уровня, то нужно разгруппировать и проделать операцию заново. т.е. разгруппировал перетащил параметр уровня на прямоугольник, отодвинув при этом прямоугольник сверху, потом опять подогнать по размеру, сгруппировать и снова подогнать по размеру. Проще с новья сделать эту же процедуру для нового бассейна.

можно не разгруппировывать....щелкнуть по Легенде снизу ---> Элементы ---> Панель (которая получилась) ---> Схема .... ну и выбрать нужный прямоугольник | Справа откроются его свойства точно также, как если бы выделить его просто в окне!

Yakut
20.02.2024, 11:11
можно не разгруппировывать....щелкнуть по Легенде снизу ---> Элементы ---> Панель (которая получилась) ---> Схема .... ну и выбрать нужный прямоугольник | Справа откроются его свойства точно также, как если бы выделить его просто в окне!

Вот что получилось. Благодарю.

Ready
20.02.2024, 11:22
Коллега правильно выше сказал нужно создать ещё один прямоугольник. Объединить их в одну группу, сделать размеры одинаковыми. Далее делать поворот на 180 градусов.
Чешите правое ухо левой рукой через темечко.

А угол поворота работает пока по непонятной схеме. Почему-то высота меняется, фигура ползёт вверх, если ставить у объекта заливки 90 и 240 градусов. см. приложения 2 картинки.

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

Вместо всего этого попробуйте использовать контрол "Вертикальный прогресс".

Yakut
20.02.2024, 12:37
Если бы подробнее расписал, было бы на много понятнее:o

Ready
20.02.2024, 13:43
Если бы подробнее расписал, было бы на много понятнее:o

Пример: 73711

Yakut
21.02.2024, 06:08
Пример: 73711

Не сочтите за грубость, сами мы не местные.
А как его открыть?:confused:
Я не про сам zip файл, это я распаковал, а вот дальше чем

МихаилГл
21.02.2024, 06:18
Не сочтите за грубость, сами мы не местные.
А как его открыть?:confused:
Я не про сам zip файл, это я распаковал, а вот дальше чем

Это вроде надо скопировать в папку, где у вас расположены проекты.

C:\Users\Public\Documents\MasterSCADA4D1.3\Project s

Yakut
21.02.2024, 07:02
Это вроде надо скопировать в папку, где у вас расположены проекты.

C:\Users\Public\Documents\MasterSCADA4D1.3\Project s

Заработало. Удобно, аднака...лез с самой скады в папку на рабочем столе, она её там не видит, открыть с помощью - то же самое, а тут всё проще, как в игрушках 90-х...

Yakut
21.02.2024, 07:03
Пример: 73711

ОГОНЬ! то, что надо. Огромная благодарность!

1exan
21.02.2024, 10:59
Заработало. Удобно, аднака...лез с самой скады в папку на рабочем столе, она её там не видит, открыть с помощью - то же самое, а тут всё проще, как в игрушках 90-х...

Он увидит, если при открытии выбрать в строке адреса адрес папки, В КОТОРОЙ лежит папка с проектом (в этом случае будет примерно такой: "C:\Users\UserName\Desktop")

Yakut
21.02.2024, 12:22
Он увидит, если при открытии выбрать в строке адреса адрес папки, В КОТОРОЙ лежит папка с проектом (в этом случае будет примерно такой: "C:\Users\UserName\Desktop")

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

1exan
21.02.2024, 12:57
Пока у меня выглядит всё вот так.
Но если скопировать адрес папки и перенести его в строку адреса ри открытии внагляк, то да, видит...камней тут подводных, что звёзд на небе...

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

1exan
21.02.2024, 13:26
Наблюдаю такой глюк:
Если создать в локальной библиотеке объект, в него добавить папку, а в папку - любой параметр, то
при попытке копирования/вставки или дублирования этого объекта MS4D молча закрывается :mad:.
Yakut - можете у себя попробовать такое? (с предварительным созданием копии проекта на всякий случай)

Yakut
21.02.2024, 14:15
Наблюдаю такой глюк:
Если создать в локальной библиотеке объект, в него добавить папку, а в папку - любой параметр, то
при попытке копирования/вставки или дублирования этого объекта MS4D молча закрывается :mad:.
Yakut - можете у себя попробовать такое? (с предварительным созданием копии проекта на всякий случай)

А у меня не создаётся параметр в папке. см скрин
Может что-то не так делаю?:rolleyes:

1exan
21.02.2024, 14:21
А у меня не создаётся параметр в папке. см скрин
Может что-то не так делаю?:rolleyes:

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

Yakut
22.02.2024, 06:00
Немного не так - папку надо добавить внутрь библиотечного объекта, а она сейчас в корне "Объекты"

Если верно понял, то подучилось так.

1exan
22.02.2024, 06:34
Если верно понял, то подучилось так.

Можете Объект1 скопировать и вставить копию туда-же, в библиотеку "Объекты"?

Yakut
22.02.2024, 06:40
Можете Объект1 скопировать и вставить копию туда-же, в библиотеку "Объекты"?

Пожалуйцста.
Использовал кнопки ctrl+c ctrl+v

может отличие в версиях?

1exan
22.02.2024, 06:43
Пожалуйцста.
Использовал кнопки ctrl+c ctrl+v

может отличие в версиях?

Нет, скопировать не параметр, а Объект1
Или правой кнопкой на Объект1 и выбрать "Дублировать"

Yakut
22.02.2024, 10:54
Нет, скопировать не параметр, а Объект1
Или правой кнопкой на Объект1 и выбрать "Дублировать"

Дублировал. Голова квадратная, на запуске объекта, могу и подтормаживать)
Внизу появилось Объект 2

1exan
22.02.2024, 12:19
Дублировал. Голова квадратная, на запуске объекта, могу и подтормаживать)
Внизу появилось Объект 2

Ок.
Возможно действительно версии разные.
У меня сейчас 1.3.5.17291(1.3.5_RC_20240212/1)

Yakut
22.02.2024, 12:41
Ок.
Возможно действительно версии разные.
У меня сейчас 1.3.5.17291(1.3.5_RC_20240212/1)

1.3.1.31102

Yakut
23.02.2024, 10:50
Ещё вопросик имеется - а как сделать кнопку с подтверждением? Ну как в Windows - Вы уверены что хотите выйти? Да/Нет.

1exan
23.02.2024, 11:10
Ещё вопросик имеется - а как сделать кнопку с подтверждением? Ну как в Windows - Вы уверены что хотите выйти? Да/Нет.

Штатно - честно говоря, не уверен что есть такое.
Можно сделать свой объект, внутри которого сделать окно подтверждения.
Если это единичный момент, можно просто создать всплывающее окно, без объекта

Yakut
23.02.2024, 12:32
А ограничение в текстовом вводе: что бы оператор мог менять значение только в своём диапазоне скажем от 90 до 100. 89 и 101 никак не имел возможности установить

1exan
23.02.2024, 13:02
А ограничение в текстовом вводе: что бы оператор мог менять значение только в своём диапазоне скажем от 90 до 100. 89 и 101 никак не имел возможности установить

Вот такое?
73833

Yakut
23.02.2024, 13:21
Вот такое?
73833

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

1exan
23.02.2024, 14:31
Да, хотя бы такое. Просто не нравятся стрелочки на числовом вводе. Хочется просто окно..
А не пойму, зачем подвязан максимум и минимум?
Нажимает оператор в окно, а у него бы (в идеале) висела памятка верхний и нижний диапазоны ввода и он за эти границы не может в одном окне менять значения выше максимального и ниже минимального.

Подвязаны - потому что в данном случае эти пределы не фиксированные, а изменяемые.
Подсказка присутствует, можно править (там-же, ниже):
73837

Yakut
24.02.2024, 10:35
А как сделать кнопкой закрытие всплывающего окна?
Т.е. сделал я всплывающее окно, на нём подтверждение "ДА", если опретор нажал да, тогда действие продолжается, если нет, то просто всплывающее окно закрывается.
А то я вижу кнопкой открыть всплывающее окно, а закрыть не вижу.

Yakut
24.02.2024, 11:34
Подвязаны - потому что в данном случае эти пределы не фиксированные, а изменяемые.
Подсказка присутствует, можно править (там-же, ниже):
73837

Что-то не выходит. При запуске у меня перестают значения меняться вообще.
Я правильно понимаю, нужно один и тот же тег ставить и в минимум и в максимум или для мин и макс нужно создавать отдельные переменные?

1exan
24.02.2024, 12:14
Что-то не выходит. При запуске у меня перестают значения меняться вообще.
Я правильно понимаю, нужно один и тот же тег ставить и в минимум и в максимум или для мин и макс нужно создавать отдельные переменные?

Конечно это должны быть различные переменные.
Не может же минимум и максимум иметь одно и то-же значение!

Если нужны изменяемые пределы, то нужны 3 различных значения (переменные):

Непосредственно само задание
Верхнее ограничение
Нижнее ограничение

Yakut
25.02.2024, 06:31
Конечно это должны быть различные переменные.
Не может же минимум и максимум иметь одно и то-же значение!

Если нужны изменяемые пределы, то нужны 3 различных значения (переменные):

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

1exan
25.02.2024, 07:43
Понятно.
Конечно, вопрос риторический и вряд ли будет ответ, но зачем тогда сделали минимум и максимум в панели свойства, если они не работают для данного параметра и нужно создавать отдельно параметры аж 2 штуки, что бы привязывать к основному параметру для ограничений? Можно было бы отдельно поставить галочку активный для данного параметра и всё. Отечественный автопром...мать его...

Почему не работают?
Можно не создавать отдельно параметры, а просто вбить фиксированные значения.
Про галочку не понял, "активный" - что именно?

Yakut
25.02.2024, 08:23
Почему не работают?
Можно не создавать отдельно параметры, а просто вбить фиксированные значения.
Про галочку не понял, "активный" - что именно?

Всё заработало. Не знаю почему раньше не работало.
Тогда вопрос с галочкой Активный отпадает.

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

1exan
25.02.2024, 10:35
...
А если я хочу сделать динамизацию свей мешалки, можно ли как-то режим вращения сделать у своего рисунка?
Скажем библиотечные рисунки убрать и вставить свои.

Библиотечный элемент наверное не получится изменить. Можно наверное нарисовать в графическом редакторе 3-5 картинок в процессе вращения и как-то задинамизировать их.
Вообще советую не увлекаться всеми этими крутилками-вертелками.
Цвет и форма объекта на мнемосхеме воспринимается гораздо проще и быстрее человеком.
Двигающаяся картинка на экране только отвлекает внимание и смотреть на неё целый день - то ещё удовольствие.

kondor3000
25.02.2024, 13:07
А если я хочу сделать динамизацию свей мешалки, можно ли как-то режим вращения сделать у своего рисунка?
Скажем библиотечные рисунки убрать и вставить свои.

А чем вам библиотечные мешалки не подошли? Есть и с баком и без бака, с динамическим винтом, в разделе Аппараты. Есть динамические шнеки.

Yakut
27.02.2024, 06:02
А чем вам библиотечные мешалки не подошли? Есть и с баком и без бака, с динамическим винтом, в разделе Аппараты. Есть динамические шнеки.

Баки у меня чёрные во первых, во вторых вопрос общий. Если у меня скажем барабанное сито с вращением или дегидратор. У меня уже имеются свои рисуночки я в Семёне всегда ставил их. Вот и спрашиваю как можно свои рисунки динамизировать при помощи библиотечных, путём замены их картинок на свои, что бы не городить слово из 8 цифр и каждой цифре делать видимость картинки.

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

1exan
27.02.2024, 08:21
Баки у меня чёрные во первых, во вторых вопрос общий. Если у меня скажем барабанное сито с вращением или дегидратор. У меня уже имеются свои рисуночки я в Семёне всегда ставил их. Вот и спрашиваю как можно свои рисунки динамизировать при помощи библиотечных, путём замены их картинок на свои, что бы не городить слово из 8 цифр и каждой цифре делать видимость картинки.

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