попробуйте для начала команду их дропбира - например простой ifconfig
у меня получалось кооректно отображать нужные данные при вызове системных команд на ПЛК110-MS4
Вид для печати
попробуйте для начала команду их дропбира - например простой ifconfig
у меня получалось кооректно отображать нужные данные при вызове системных команд на ПЛК110-MS4
Установил MasterScada4D, оно вообще может работать ?
Из общения с техподдержкой. Язык, на котором написана MasterScada С/С++ а работает, как будто писали на древнем Бейсике. Вечное "Окно не отвечает".
Ноут на AMD A8-6410, графика AMD Radeon R5, память 8 Гб, Windows 10-64x
Я просто пока пытаюсь открыть проекты Демо различные, которые есть в ней. По идее, программисты должны были позаботиться о том, что нет реального оборудования для Демо проектов. Простите, но это такой ТРЕШ при запуске на указанном ПК......
Хочется посмотреть в глаза тому программисту, который все это делал, как у него хватило на это терпения вообще ??????? Какой мощности необходим в реальности ПК чтобы ЭТО работало быстро ?
Подожду ответа разработчиков на этот вопрос. Функция не возвращает никакого значения при любых командах. Code = 0, Output = нет значения.
UPD: Убедился в работоспособности функции. Ввёл команду "echo "password" | sudo -s reboot" и система успешно перезагрузилась. Непонятно чего не хватает для запуска приложения.
Ещё такой вопрос: кто как решает проблему с нажатием кнопок. Кнопку надо подержать, чтобы успела запустится программа, обрабатывающая её значение, иначе нажатие на кнопку не срабатывает. Единственное верное решение - это установка бита по событию (клик мыши, например)?
Так и должно быть ?
Вложение 44431
SysProcessCreate на linux точно работает, потому что reboot отрабатывает нормально, но некоторые другие команды - нет. Скорей всего есть какая-то особенность с вызовом. Взяли на проверку.
GET_LOCAL_TIME пока что не рекомендуется к использованию.
Хотел бы поднять ещё один вопрос:
Как контролировать введённые данные в поле ввода? Маска не является спасением, так как она жёстко задаёт количество введённых цифр, а число может иметь разное количество цифр. Использую сенсорный экран в проекте. Появляется всплывающая виртуальная цифровая клавиатура, но она имеет знаки / * % + -, что приведёт к ошибке ввода данных. Существует ли функция чтобы проверить число ли введено?
Добрый день.
А в окно можно делать ссылки по http, т.е. грубо говоря из окна сделать микробраузер. Нужно при запуске системы чтоб подгружался сайт одностраничник.
Или как вариант сделать масштабируемую графику. Задача состоит в том, чтоб на карте можно отображать объекты, или хотя бы флаги, что типа тут объект А, а тут объект Б, а при клике по этим флагам открывалось уже основное окно объекта.
хотелось бы услышать от пользователей характеристики их ПК, количество мнемосхем и их загруженность, скорость работы.
Открытие демо проекта "Цифровая подстанция" у меня занимает более 20 секунд. Судя по графике на ней, там простые примитивы.
Еще такой вопрос - а все хотелки на мнемосхеме надо полностью создавать самому ? нет готовых шаблонов ?
Ну если брать как пример "Цифровая подстанция", на много элементов просто нет никакой реакции, либо я не дождался реакцию на нажатия элементов...
Доделал проект, в котором имеется порядка 40 объектов. В каждом из объектов по 8 окон (одно основное, остальные вспомогательные - графики, различные окна управления и т.п.). В некоторых объектах окон больше, но структура та же. Также есть стартовое окно, на которое выведены все эти объекты в виде кнопок с небольшими значками, отображающими различные события на объекте. При предварительном просмотре стартового окна происходит аварийное зависание, соответственно, просмотреть это окно в режиме разработки не представляется возможным. Окна некоторых объектов при предварительном просмотре также подгружаются достаточно долго. В режиме исполнения открытие новых окон объектов из стартового занимает порядка 10 секунд, что не очень-то и быстро.
Плюс ко всему достаточно неудобно редактировать окна (в режиме разработки), в которых много элементов. Например, буквально вчера потратил уйму времени на то, чтобы заменить некоторые элементы новыми. Просто по тому что при перемещении объекта нагрузка на ПК возрастает до предела.
ПК, на котором разрабатываю проект: i3-7100, 8Gb RAM, Win10 x64, HDD, видеокарты нету (без нее тяжеловато).
Как это будет работать на серваке (в плане быстродействия) - пока нет времени протестировать.
По поводу "хотелок" на мнемосхеме. Очень много SVG-элементов рисовал сам (а затем и настраивал атрибуты внутри этого SVG для динамизации), в том числе и трубопроводы, т.к. если "собирать" из того, что есть по умолчанию, смотрится не совсем красиво (как бы не перемещал их друг на друга и в разных направлениях - при компиляции окна все равно все будет вкривь да вкось).
В целом, сама скада понравилась, хоть в ней и не мало косяков.
b_aleks понятно, спасибо за инфу. Буду уговаривать не использовать данную скаду. у меня только счетчики займут порядка 15 тысяч тегов, не считая состояния АВ всех щитов, включая модульку, даже не представляю сколько там еще тысяч тегов...
Сколько у вас на одном экране svg получилось в максимуме ?
В описании сказано, что размеры экранов разработки должны соответствовать потом размерам экранов АРМ. Но то ли демо режимы делались на отшибись, то ли вообще проблемы с масштабированием. По крайней мере у меня сложилось такое ощущение.
Наползающие символы на непонятных графиках, отрисовка при изменении масштабов очень длительная и т.д.
Очень сильно был удивлен скоростью работы после ответа техподдержки, что приложение написано на C/C++
Да, 15к тегов это конечно не мало. У меня в моем около 1к. Ну по сравнению с третьей версией этой же скады, в четвертой некоторые вещи реализовать достаточно проще за счет программ. Возможно еще, что не будет так тормозить, если реализовать типовой объект сначала в библиотеке, а потом наследовать его в дереве объектов. Это подойдет если много однотипных объектов.
По поводу вопроса - есть один объект, на котором около 180 SVG-элементов. Вот как раз про него я писал в предыдущем ответе.
А по поводу масштабирования и наползающих элементов - возможно в разделе "Экран" у свойств элементов или окон стоят значения "Абсолютные", а не "Относительные". По крайней мере, я пробовал запускать свой проект на ПК с разными разрешениями мониторов - все масштабировалось нормально. Даже пробовал с телефона подключаться - вроде бы тоже проблем не было.
Спасибо, попробую для проверки накидать однотипных svg штук 200.
Сейчас посмотрел свой другой проектик в другой системе, 144 однотипных SVG, плюс некоторое количество дополнительных элементов. Загрузка да, занимает некоторое время, но не 20 секунд точно. примерно секунды 3. А вот изменение масштабов практически сразу.
Точно надо для сравнения повторить какой-нибудь экран.
Написал в личку, если не сложно поделиться для пробы.
А зачем Вам MS именно для подстанции? Возьмите специализированные системы.
Возможно ли масштабирование обычной графики. Т.е. добавил картинку высокого разрешения, но через хром размер окна никак не меняется, соответственно картинка всегда одного размера. Как сделать привычное масштабирование?
Добрый день! Много пишут про тормознутость системы в чём и я убедился. Для разработки серьёзного проекта нужен мощный комп, тут ничего не поделаешь. НО какие есть способы оптимизации быстродействия системы в режиме исполнения?
Возникли вопросы применительно к задаче ускорения быстродействия проекта (в среде исполнения):
1. Что даёт возможность "заменить наследников на экземпляры" для объекта, помещённого в библиотеку?
2. Какой эффект даёт "инкапсуляция связей" окна?
3. Объект можно назначить в узел и можно назначить в задачу. Какая разница?
4. Как можно определить время выполнения программ и загруженность CPU этими процессами? Что если замарочиться и более медленные процессы назначить в задачи с бОльшим периодом исполнения?
5. Заметил, что использование окна с трендами очень серьёзно затормаживает скорость исполнения, выкинул этот контрол из проекта. Какие ещё процессы тормозят систему? Как их лучше настроить?
Могу ошибаться, пусть SCADAMaster4D меня поправит:
1. Назначение в узел заставляет весь объект крутиться в основной задаче узла.
2. Для меньших тормозов оптимизируйте выполнение ваших объектов. Для менее приоритетных алгоритмов создавайте отдельные задачи с большим временем выполнения. Не запихивайте все программы и объекты в основную задачу - в 90% случаев они там крутятся и обрабатываются просто так. Например: есть контрол со значением температуры. По клику появляется всплывающее окно с графиком, расчетами, контролами регулировки оборудования - это все можно засунуть в задачу по вызову, не нужно это крутить в периодической задаче, тем более в высокоприоритетной основной.
3. Если я правильно понимаю, то каждая задача - это отдельный поток. Соответственно выполнение всех алгоритмов в одном потоке снижает эффективность использования проца.
Добрый день!
Что означает эта ошибка в отчете ?
Column 'Параметр 1' from data source 'Архив_данных' not found in table 'table1'
Что надо сделать что бы исправить?
Надо сделать параметр архивируемым.
А вот с этим непонятно что делать:Код:Column 'Архив_данных_Начало' from data source 'Переменные' not found in table 'table1'
В целом, Вы правы. Но это касается только серверной части. Здесь нужно разделять быстродействие прикладных программ, исполняемых сервером, и быстродействие визуализации – кода JS, исполняемого графическим клиентом. Скорости исполнения этих задач почти не связаны между собой.
Быстродействие серверной части.
Фактическое время и период выполнения прикладных задач сервера можно посмотреть через диагностический порт 31550 (более подробно в справке в разделе «Как получить диагностическую информацию среды исполнения»). По умолчанию период задачи установлен 100 миллисекунд. Разработчик проекта должен проследить, чтобы фактическое время выполнения задачи даже в крайнем случае не превышало бы 80% от периода. А лучше – не более 50%. Если время фактического выполнения приближается к периоду или превышает его (что недопустимо), то необходимо увеличить период вызова задачи. Например, если все компоненты проекта назначены для исполнения в основную задачу и время её фактического выполнения составляет в среднем 300 миллисекунд, то период исполнения основной задачи желательно установить не менее 500 миллисекунд. При этом, те части системы управления, для которых время реакции 500 миллисекунд недопустимо велико (например, защиты и блокировки), то их выделяют в отдельную задачу с более частым периодом исполнения (например, 50 миллисекунд). У этой более быстрой задачи так же необходимо следить, чтобы фактическое время не превышало бы периодичность вызова. Чтобы обеспечить возможность сокращения периода вызова, более быстрая задача должна содержать как можно меньше программных компонентов. Теоретически, задачи запускаются в разных потоках параллельно и не должны влиять друг на друга. На практике же это сильно зависит от разных факторов, в том числе от работы диспетчера потоков операционной системы и общего количества потоков. Поэтому нужно следить не только за фактическим временем выполнения каждой задачи, но за фактическим периодом вызова – следить, чтобы он не увеличивался относительно заданного.
Теперь о быстродействии визуализации.
Насколько мы видим, основная часть нареканий относится именно к ней. Быстродействие большинства происходящих на экране изменений– открытие новых окон, появление всплывающих, анимация различных элементов - обусловлена скоростью исполнения скриптов в среде визуализации. За последнее время мы проделали большую работу по оптимизации их исполнения. В частности, был полностью переписан движок визуализации с учётом современных технологий. Это позволило увеличить быстродействие визуализации по некоторым показателям до 10 раз. Новая версия движка визуализации будет доступна в тестовом режиме в версии 1.2.7.
Пришлите проект на support.ms4d@insat.ru
ASo контроль состояния АВ в ТП всего лишь часть, ставить на каждый чих специализированное ПО нет смысла, его даже заказчик не видит.
Оптимально применение именно Scada какой-нибудь.
SCADAMaster4D а что касательно драйверной части, которая должна опрашивать приборы в цикле без остановки и периода ? какова будет нагрузка на сервер при чтении более 300-х счетчиков Меркурий ?
Количество счетчиков на одной линии связи не более 5-ти. Опять же, выяснил, что MS не умеет работать с COM портом поверх TCP как клиент. ТО есть это 300/5=60 или более виртуальных COM портов... интересно, столько возможно создать на одном экземпляре Windows ?
Добрый день!
M05/09 02:20:53.494 N=3692 A=1065 O0=46(3004,e46) U0=1389(100,100,115)(10,6,18)(,0,4,8) U1=1390(100,100,109)(0,0,3)(,0,0,1) HR=1(60) M=21280Kb L=2045Kb
M05/09 02:21:03.521 N=3957 A=1161 O0=49(3004,e49) U0=1489(100,100,115)(10,6,18)(,0,4,7) U1=1490(100,100,109)(0,0,3)(,0,0,0) HR=1(60) M=21280Kb L=2045Kb
M05/09 02:21:13.547 N=4222 A=1256 O0=53(3003,e53) U0=1589(100,100,115)(10,6,18)(,0,4,7) U1=1589(100,100,109)(0,0,3)(,0,0,0) HR=1(60) M=21280Kb L=2044Kb
Вот строчка диагностической информации из моего проекта. Правильно ли я понимаю, что исходя из параметра U0 при заданном времени цикла 100мс реальное максимальное время выполнения одного цикла не превышает 18мс? Параметр U0 постоянно увеличивается, прибывая на 100 циклов каждые 10 секунд, что соответствует времени выполнения 100мс одного цикла. В данном случае я ничего не оптимизировал и все задачи крутятся в основной. А что означает параметр U1? Это время выполнения чего?
Пожалуйста
Вложение 44464
Это не то. Надо для произвольного протокола.
ASo Это просто людям нужно понимать энергопотребление своего "предприятия".
KrAssor - а кто вам сказал, что у меня Modbus RTU ????
НЕ НАДО предлагать OPC там где они нафик не нужны... пожалуйста
Вот пример, у MasterScada4D есть драйвер для Меркурий 230, а для однофазников НЕТ.
Ну и так далее в том же духе... я как раз выяснял возможность написания драйверов под нее для недостающего, но и тут не все "сахар"...
Конечно же умеет. Это обычный запрос по TCP/IP.
Текущий драйвер меркурия действительно работает только через COM. Но сейчас ведется разработка нового драйвера (который будет поддерживать и новые модели Меркуриев), где будет и COM и TCP.
Счетчики СЭТ и ПСЧ от НЗИФ уже сделаны. Также скоро будет добавлена энергомера. Все они будут работать как через COM, так и через TCP.
А причем тут именно Modbus RTU? Я про него не сказал ни слова. OPC сервера есть разные. Multi-Protocol MasterOPC Server - вот для примера, если необходимо реализовать обмен по своему протоколу. В этом вообще вся суть, ради которой создали технологию OPC - предоставить разработчику фиксированный интерфейс для работы с устройствами, которые имеют различные протоколы и стандарты обмена.
SCADAMaster вопрос, почему для ВСЕХ приборов не сделать работу с COM портом поверх TCP ?
Независимо на какой прибор я буду писать драйвер ? То есть в API или как у вас там устроено предусмотреть возможность работы линии связи COM, COM over TCP (UDP)
Что значит новые модели Меркуриев ? речь о банальном 230-м, сидящем за преобразователем интерфейса Ethernet - RS485.
Как выше написал, не уверен что система переварит 300 овер дофига виртуальных COM портов... насколько помню на это было ограничение в ОС.
KrAssor - OPC DA и т.д. кроме UA работают только в Windows среде, меня это не устраивает.
И опять же, если есть возможность писать драйвера в самой среде, зачем прибегать к OPC даже универсальным ?
Момент номер 2, за Универсальный OPC от Инсат, написав для него драйвер для устройства я еще должен платить ? вот с пуркуа бы ?
Это реализация делается на уровне каждого конкретного драйвера. В целом это правильно, потому что прибор может вообще работать только по UDP, и ни COM, ни TCP использовать уже нельзя.
В ОРС сервере кстати примерно также - на этапе разработки указывается какие интерфейсы может использовать тот или иной драйвер. Правда с MPS сделать реализацию различных интерфейсов значительно проще.
Имеющийся драйвер Меркурия - перенесенный из MS3, достаточно старый. Сейчас мы его переделываем, и само собой нужны новые модели счетчиков которые появились у Инкотекс - 234, 236.
Если хотите - то через неделю можем попробовать предоставить предварительную версию нового драйвера для Меркурия, где будет TCP.
Не за него, а за плагин User Protocol, но цена на него смешная.
И вообще логично, что раз вы используете инструментарий который реализуют большую часть функций, и от вас по сути требуется только послать что-то в порт, а потом обработать, то за этот инструментарий нужно платить.