Любой желающий может оставить в этой теме свое мнение и пожелания касаемо разработки Simple-Scada 2, мы обязательно учтем ваши отзывы.
Проекты созданные в предыдущих версиях возможно будет перенести в Simple-Scada 2 ?
Здравствуйте.
В этой версии структура файлов будет очень сильно изменена. И поэтому, сегодня мы не планируем делать поддержку импорта для Simple-Scada 2. На это потребуется слишком много времени. Одно можем сказать точно - все версии выше Simple-Scada 2 будут легко импортироваться, т.к. мы не станем больше серьезно менять структуру файлов.
Первым делом хотелось бы поблагодарить вас , за ваши труды .
Вы создали очень удобную , легкую и практичную программу .
Лично мне хотелось бы увидеть в новой версии возможность переноса данных в EXCEL , а также возможность увеличение количество аудио файлов , для того чтобы было возможно прикрепить к каждым авариям свой звуковой файл .
Удачи вам !!!
Добрый день!
Спасибо Вам, за хороший проект,надеюсь на дальнейшее его развитие.Пожелание: Прямой драйвер Modbus TCP RTU, а так же наличие шлюза Modbus TCP RTU в системе, было замечательно(или трансляцию тегов между различными устройствами можно будет реализовать на скрипте?).
Цитата: Ernest от 12 мая 2015, 10:16:07...хотелось бы увидеть в новой версии возможность переноса данных в EXCEL, а также возможность увеличение количество аудио файлов , для того чтобы было возможно прикрепить к каждым авариям свой звуковой файл.
Возможность переноса данных в Excel будет доступна. А по поводу аудио-файлов мы как-то упустили, хорошо, что напомнили. Добавим и такую возможность. Для каждой аварии можно будет выбрать свой звуковой файл.
Цитата: Олег от 12 мая 2015, 20:28:15...пожелание: прямой драйвер Modbus TCP RTU, а так же наличие шлюза Modbus TCP RTU в системе, было замечательно(или трансляцию тегов между различными устройствами можно будет реализовать на скрипте?).
Мы планируем внедрить Modbus в будущем, но только после реализации описанных выше пунктов. По поводу трансляции: Вы говорите о возможности трансляции значения тега одного устройства в тег другого устройства? Если да, то такая возможность будет и она будет легко реализовываться (включая работу с устройствами через удаленный OPC-сервер).
Цитата: Олег от 12 мая 2015, 20:28:15Пожелание: Прямой драйвер Modbus TCP RTU, а так же наличие шлюза Modbus TCP RTU в системе, было замечательно.
+1.
Simple-Scada - желаю вам удачи и развития!
С нетерпением ждем развития Вашего проекта.Удачи в реализации.
Альфа-Бетта тестером поучаствовать можно?
Возможно, через некоторое время будет необходимость в тестировании. Мы обязательно сообщим об этом на форуме.
Добрый день! Будет ли реализована привязка объекта "трубопровод" к конкретному тэгу и, соответственно, возможность менять цвет участков по изменению его значения?
P.S. При приличной "паутине" из труб на мнемосхеме, для оператора это немаловажно. К примеру, изменение цвета на определенном промежутке вполне можно привязать к работе реле протока, вместо того, чтобы рисовать дополнительные круги...
Цитата: AWAPLC от 05 июня 2015, 14:04:22Добрый день! Будет ли реализована привязка объекта "трубопровод" к конкретному тэгу и, соответственно, возможность менять цвет участков по изменению его значения?
P.S. При приличной "паутине" из труб на мнемосхеме, для оператора это немаловажно. К примеру, изменение цвета на определенном промежутке вполне можно привязать к работе реле протока, вместо того, чтобы рисовать дополнительные круги...
Поддерживаю.
Попробуем что-нибудь придумать по этому вопросу. Как быть с интерфейсом, чтобы было удобно задавать привязку тегов к участкам трубопровода... пока непонятно.
В редакторе добавить кнопку предпросмотра проекта в режиме исполнения.
Спасибо за ваш труд, очень интересный получается продукт.
А теперь о предложениях.
1. Хотелось бы иметь возможность ручной, а лучше автоматической генерации отчетов.
2. При рисовании мнемосхем часто приходится центрировать/выравнивать по одной из осей несколько объектов, а так же придавать одинаковый размер элементам. Появляющиеся при выделении и перемещении объекта тонкие полосочки хороши, но было бы неплохо иметь такой инструмент.
3. Будет ли реализовано рисование графических примитивов?
4. Будет ли возможность вручную менять расположение окна с сообщениями, его размер, а так же создать 2 или более окон (объектов) со списком сообщений, где каждое окно будет иметь свою группу сообщений. Например при создании нового сообщения задать ему принадлежность к определённой группе, а при создании окна со списком сообщений, указать, что это окно будет отображать сообщения только определённой группы.
5. Было бы неплохо иметь возможность размещать на мнемосхеме диаграммы, к примеру лепесковую и поверхностую.
6. Возможность группировки объектов (хотя бы графических примитивов).
Спасибо за отзыв и список предложений. Все пункты, кроме 4 и 5 будут реализованы в новой версии. 4 и 5 пункты скорее всего реализуем позже.
Будет ли возможность вести список (или списки) аварийных (или технологических) событий, как текущих, так и просмотр в архиве?
Вопрос до конца не понятен. Система сообщений в целом не сильно изменится. Сообщения будут отображаться в нижней части экрана, когда пользователь работает в обычном режиме, как это сделано сейчас. Когда пользователь переходит в панель сообщений - он видит список сообщений по времени. Сообщения делятся на аварийные, предупреждающие и обычные. В Simple-Scada 2 в отличие от текущей версии можно добавлять в новые сообщения при возникновении какого-либо события, прямо во время работы скады. Также сообщения можно разбить по группам для удобства. При этом все сообщения сохраняются в БД MySQL.
Пожалуйста, опишите подробнее Ваши пожелания. Мы постараемся учесть их.
Когда уже выложите Simple-Scada 2? Не обязательно на сайт, а хотя бы на форум для тестирования(или в личку). Уж очень хочется испытать новые функции которых не хватало в прошлой версии. :(
Работы по-прежнему ведутся активно. Но задач очень много. Тестирование идет уже сейчас, пока закрытое. На днях выложим небольшой отчет о проделанной работе и новых возможностях Simple-Scada 2.
Обещали на днях выложить отчет о проделанной работе а уже две недели ничего нет :-[ Кстати вместо отчета лучше сделайте открытое тестирование.
Тоже жду с нетерпением
Да, задержали)) Постараемся сегодня выложить отчет. А вот тестирование пока не планируется.
Отчет можно посмотреть здесь (http://simple-scada.com/forum/index.php?topic=95.0). Описано не все, но основные изменения вполне понятны.
Большие нововведения в редакторе и скаде есть? (Которых не было в прошлом обзоре)
Нет. В принципе если сложить описанное в двух обзорах - то получится как раз полное описание версии 2 (за исключением мелких изменений) и то, что из неё в финале должно получиться.
Когда планируется релиз? Хотя-бы ориентировочно.
Добрый день. Спасибо за полнофункциональную версию. Сейчас реализовываем свой первый проект автоматизации. Пока идёт накопление информации, ждём железо, и параллельно кое-что рисуем в скаде. Пока все устраивает, на недостатках не буду заостряться, думаю в версии два их уже не будет. Очень не хватает поддержки хотя б двух опс-серверов и веб-сервера. Отчёт о работе обязательно выложим. Готовы стать тестерами вер.2
Цитата: orbita-skb от 15 сентября 2015, 09:55:16Когда планируется релиз? Хотя-бы ориентировочно.
Мы планируем выложить окончательную полную версию в декабре этого года.
Цитата: pan-nn от 15 сентября 2015, 18:59:43Добрый день. Спасибо за полнофункциональную версию. Сейчас реализовываем свой первый проект автоматизации... Очень не хватает поддержки хотя б двух опс-серверов и веб-сервера. Отчёт о работе обязательно выложим. Готовы стать тестерами вер.2.
Спасибо. Будем ждать.
С нетерпением жду 2.
Готов поучаствовать в бета-тесте, есть с чем сравнить, есть на чем попробовать :) (имеется в наличии целый зоопарк плк)
Смущает использование мускула для трендов. На сколько хватит его скорострельности, да и база будет расти очень быстро. Не мне вам рассказывать что в больших скадах для этого делают несколько по другому.
Я так понимаю начинаю с 2.0 вы начнете монетизацию проекта. Заранее хотелось бы узнать про ценовую политику и особенности лицензирования.
Что хотелось бы
Алярмы
1. Хотелось бы на всплывающих окошках отображать список активных алярмов для конкретного мех-ма.
2. В текущей версии алярмы отображаются на формах в однострочном ненастраиваемом компоненте, надюсь это изменится (будет возможность менять колличество строк, выводить дополнительные столбцы с данными и т.п.)
3. Алярмы хотелось делить по группам и приоритетам. Это будет полезно по многим причинам.
4. Для алярма хотелось бы видеть кто его квитировал. Так же нужно какое-то логирование действий оператора (можно будет решить своими силами при нормальных скриптах и доступе к бд).
Тренды
В принципе текущий компонент уже не хуже многих существующих, однако.
1. Нужна возможность менять диапазоны в режиме онлайн (мин/макс)
2. Хотелось бы также всплывающее окно с трендом.
Теги
Как я понял они наконец-то появятся :)
Жизненно необходимы теги-указатели (внутренние теги с возможностью динамической ссылки на другие теги), без низ серьезную систему делать сплошная боль.
Общие
Очень нужна возможность выгрузки в файл и обратного импорта рутинных вещей, тех же алармов, тегов. Либо подключение к проекту через API.
Хотелось бы увидеть поддержку актив-икс. Понимаю дрянь, но иногда иначе никак.
Fallout13, спасибо за развернутый отзыв и список предложений. На счет бета-теста будем иметь ввиду.
ЦитироватьСмущает использование мускула для трендов. На сколько хватит его скорострельности, да и база будет расти очень быстро. Не мне вам рассказывать что в больших скадах для этого делают несколько по другому.
Хватит вполне для довольно больших проектов. В текущей версии скады используются собственные базы трендов, которые значительно уступают в скорости и пр. параметрах MySQL. MySQL сейчас показывает очень хорошие результаты при правильном использовании. Взять к примеру распространенную скаду WinCC, которая использует базу данных Microsoft SQL Server и показывает хорошее быстродействие, которого хватает в крупных промышленных системах. В ряде запросов MySQL показывает худшее быстродействие, но остается на хорошем уровне, это действительно так. Мы используем MySQL с InnoDB таблицами, которые поддерживают кластерные индексы, так же, как и WinCC с Microsoft SQL Server'ом, благодаря чему данные всегда структурированы сразу по двум полям (!) и выборки даже в огромных таблицах происходят очень быстро. Мы не раз убедились в этом в недавних тестах. К тому же здесь играет роль и то, как данные записываются в БД. Мы не сохраняем в базу чистые данные, ведь их может быть слишком много в больших проектах. Поэтому, прежде чем данные будут записаны в БД, они обрабатываются и оптимизируются, чтобы получить наименьший объем данных при записи в БД (разумеется без потери качества данных) и соответственно наименьший объем при хранении данных на жестком диске и при последующем считывании данных. И здесь есть огромный простор для оптимизаций. Поэтому сейчас мы уверены в скорости MySQL даже для больших проектов и не видим существенной разницы даже с Microsoft SQL Server'ом (после релиза второй версии добавим и его поддержку, а также, возможно PostgreSQL). Ещё одним немаловажным фактором в пользу MySQL выступает её бесплатность, а для нас важно сохранить максимально низкую цену.
Но Вы, как мы поняли, говорили о таких примерах, как например Trace Mode с их SIAD/SQL и заявленной производительностью записи более 640 тыс. изменений аналоговых параметров в секунду. Мы о такой производительности заявить не можем, но причина вовсе не в выбранной БД. Для того, чтобы достичь такой производительности нужно ещё сильнее оптимизировать данные трендов и запросы к БД ещё до записи в неё. Возможно мы займемся этим в будущем, но пока нам хватает текущей производительности.
ЦитироватьЗаранее хотелось бы узнать про ценовую политику и особенности лицензирования.
Об этом мы обязательно напишем подробнее, но ближе к релизу, чтобы не давать сейчас пустых обещаний. Точно можем сказать, что постараемся держать максимально низкую цену и предложим хорошие условия связанные с дальнейшим обновлением скады после покупки.
Цитировать1. Хотелось бы на всплывающих окошках отображать список активных алярмов для конкретного мех-ма.
Пожалуйста, опишите этот пункт подробнее. Вы говорите о возможности показать окошко в котором будет находиться список аварий какого-то конкретного механизма за определенный промежуток времени?
ЦитироватьЖизненно необходимы теги-указатели
И этот момент не до конца понятен. В новой версии будут виртуальные теги, в которые можно записать все что угодно, например значение другого тега, или сумму нескольких тегов, или какое-то значение посчитанное по какой-то формуле (на усмотрение пользователя). О таких тегах Вы говорите?
ЦитироватьХотелось бы увидеть поддержку актив-икс
Поддержки ActiveX не будет точно. Это нарушает все наши принципы используемые при разработке Simple-Scada, такие как максимальное упрощение, скорость отрисовки и загрузки компонентов, быстродействие компонентов и быстрая их обработка. Также ActiveX принесет с собой множество серьезных уязвимостей. Поэтому, после выхода Simple-Scada 2 с набором основных компонентов постараемся добавить другие важные компоненты, которые пригодятся пользователям.
Остальные пункты будут сделаны.
ЦитироватьЗаранее хотелось бы узнать про ценовую политику и особенности лицензирования.
ЦитироватьОб этом мы обязательно напишем подробнее, но ближе к релизу, чтобы не давать сейчас пустых обещаний. Точно можем сказать, что постараемся держать максимально низкую цену и предложим хорошие условия связанные с дальнейшим обновлением скады после покупки.
Помимо стоимости еще волнует сам принцип защиты - наличие аппаратных ключей иногда является головной болью. Идеально, на мой взгляд сделано у Kepware.
Цитировать1. Хотелось бы на всплывающих окошках отображать список активных алярмов для конкретного мех-ма.
ЦитироватьПожалуйста, опишите этот пункт подробнее. Вы говорите о возможности показать окошко в котором будет находиться список аварий какого-то конкретного механизма за определенный промежуток времени?
В общем нужен компонент который отображает список активных/архивных аварий с возможностью размещения на любом окне и фильтрацией.
ЦитироватьЖизненно необходимы теги-указатели
ЦитироватьИ этот момент не до конца понятен. В новой версии будут виртуальные теги, в которые можно записать все что угодно, например значение другого тега, или сумму нескольких тегов, или какое-то значение посчитанное по какой-то формуле (на усмотрение пользователя). О таких тегах Вы говорите?
Нет уверен что говорим об одном и том же, на всякий случаю уточню.
В большинстве ЧМИ есть специальные теги (в интаче - indirect, в сайтеке - ассоциации, в магелисах - reference tag, в генезисе - система глобальных псевдонимов).
Привязка тега делается примерно так. Run.Name="Pump"+XX+".Run"; Alarm.Name="Pump"+XX+".Alarm"....
Зачем это нужно:
Имеем в системе скажем полсотни одинаковых механизмов. Чтобы на каждый механизм не делать отдельное всплывающее окно делается одно с тегами - ссылками. При открытии этого окошка отрабатывет скриптик, где в ссылки подвязываются нужные теги в XX ложится нужный индекс насоса.
ЗЫ
Извиняюсь за косноязычие.
Еще одно пожелание есть, для нас зело существенное.
Для просмотра архивных трендов реализовать механизм "Best fit"
Основной принцип этого механизма заключается в разбиении запрашиваемого интервала на N диапазонов, затем из каждого диапазона возвращается, согласно хитрого алгоритма, всего несколько точек (минимальное, максимальное и т.п.).
Построенный по этим точкам тренд визуально не отличается от построенного из всего массива.
Зачем это нужно:
1 допустим у нас есть переменная с циклическим архивирование раз 1 секунду. За неделю это будет 60*60*24*7=604800 точек. Если захотим посмотреть тренд по этой переменной то это приведет к повышенной нагрузке на сеть и на сам клиент (эти же данные надо как-то переварить и отрисовать), а если этих переменных сразу 10 и отображаем за год?
2. если смотреть тренд за большой период времени то у большинства скад съедаются короткие выбросы, с алгоритмом best fit видно даже секундную иголку на месячном графике.
Вот дословное описание алгоритма, начиная со страницы 177
http://www.logic-control.com/datasheets/01/Historian%202014%20(v11.5)/HistorianConcepts.pdf (http://www.logic-control.com/datasheets/01/Historian%202014%20(v11.5)/HistorianConcepts.pdf)
Теперь все понятно, спасибо.
ЦитироватьВ общем нужен компонент который отображает список активных/архивных аварий
Такой компонент будет. И для трендов тоже.
ЦитироватьВ большинстве ЧМИ есть специальные теги...
Да, такие возможности будут, причем не только на уровне тегов, но и на уровне сообщений, когда можно будет к примеру одним шаблонным сообщением заменить множество сообщений и подставлять в них значения "на ходу" в зависимости от механизма. Позже мы ещё выложим небольшой отчет об этом.
ЦитироватьЕще одно пожелание есть, для нас зело существенное. Для просмотра архивных трендов реализовать механизм "Best fit"
Не знали про best fit, но интересно то, что текущая версия скады использует очень похожий алгоритм при обработке трендов. Когда Вы просматриваете интервал времени более 1 часа в Simple-Scada от Вас тоже скрыта часть точек. В больших интервалах это тысячи точек, а для тегов, которые редко меняют свои значения оптимизация может урезать более 90% точек. Подобно Best fit детализация мелких изменений сохраняется благодаря алгоритму и качество тренда практически не теряется. Без этого нельзя было обойтись, т.к. слишком сильно сказывается на производительности. И, конечно, в Simple-Scada 2 будут подобные оптимизации.
Можно сделать и сам Best Fit, но непонятен пока один момент - в БД хранятся данные о всех точках. В момент выполнения выборки Best Fit делит интервал на диапазоны из которых берет обычно по четыре точки: первую точку, мин., макс., последнюю точку. И так для каждого диапазона. С первой и последней нет проблем, но чтобы найти мин. и макс., нужно пройти по всем точкам диапазона, что затратно. Есть предположение, что на этапе сохранения данных трендов в базу, вместе с ними сохраняются и какие-то служебные данные для быстрого получения ключевых точек.
Либо все проще и все точки действительно перебираются для поиска мин. и макс., но т.к. этой задачей занимается сервер, то клиенты получают уже посчитанные ключевые точки без нагрузки на сеть и пр. Но если это так, то серверу придется не легко при большом кол-ве клиентов и запросов на тренды.
Производительности они добиваются несколько другим путем.
Данные хранятся в специализированных архивных файлах, SQL используется только для общения со сторонними приложениями (в БД лежат просто пустые таблицы, запрос перехватывается и данные дергаются из файликов), также SQL поддерживается расширенный набор команд (тот же best fit, интегрирование и пр.).
Максимально у меня было около 15к тегов, архивировались по Swinging door. Клиентов 5, одновременно редко больше одного смотрели архив, но скорострельность была примерно на уровне сетевых задержек :).
Доброго времени суток. СпасиБО разработчикам за систему. Для начала вполне себе СКАДА. Чтобы хотелось видеть дальше:
1. Расширенное редактирование текста: шрифт, тип шрифта.
2. Перемещение трубопровода по координатам на 1пункт, т.к. сейчас перемещается только на число кратное 5.
3. Возможность отмены последнего действия
4. Выделение/Копирование/Вставка текста в полях скады
5. Работа с таблицами тегов, генерируемых Siemens
Только начал работать с вашей СКАДА, поэтому, пока, только такие мелочи .
З. Ы.
Могу поделиться своими насосами, которые использую в проекте. Свяжитесь со мной по почте, если интересно...
ЦитироватьДанные хранятся в специализированных архивных файлах, SQL используется только для общения со сторонними приложениями...
Любопытно! Система интересная, но реализация потребует немало времени. Учитывая это, сейчас будем делать как изначально задумывали, с доп. оптимизациями по выборке и вставке данных в БД и из неё, а также при пересылке данных по сети. А подобные, ещё более продвинутые оптимизации, начнем после релиза второй версии.
ЦитироватьСпасиБО разработчикам за систему. Для начала вполне себе СКАДА.
Спасибо за отзыв.
Цитировать2. Перемещение трубопровода по координатам на 1пункт, т.к. сейчас перемещается только на число кратное 5
Сейчас вы можете перемещать и на 1 пиксель. Для этого нажмите и удерживайте клавишу Alt во время перемещения. Удобнее всего перемещать стрелками на клавиатуре.
Цитировать3. Возможность отмены последнего действия
4. Выделение/Копирование/Вставка текста в полях скады
Эти пункты уже сделали во второй версии, но её придется подождать до конца этого года.
Цитировать5. Работа с таблицами тегов, генерируемых Siemens
До этого пункта никак не доберемся. Скорее всего отложим на след. год
ЦитироватьМогу поделиться своими насосами, которые использую в проекте...
В новой версии мы уже сделали обширную базу своей графики в едином стиле, которую в будущем будем постоянно обновлять и дополнять.
ЦитироватьСейчас вы можете перемещать и на 1 пиксель. Для этого нажмите и удерживайте клавишу Alt во время перемещения. Удобнее всего перемещать стрелками на клавиатуре.
СпасиБО за ответ. Пробовал Shift, Ctrl, а до Alt как-то не додумался ;D
Подскажите, в версии Simple-Scada 2 есть возможность создавать виртуальные каналы работающие на скриптах?
Да, такая возможность будет!
Я работаю с MySQL уже больше 10 лет. Я не знал где написать сначала поэтому написал в контакте. Теперь пишу тут.
Сама по себе идея хранить данные в базе данных класная и открывает большие перспективы. Вот недостатки на мой взгляд.
1. необходимость устанавливать MySQL. Ведь это отдельная программа.
2. Настраивать ее и создавать соединения, управлять пользователями базы это целая область знаний которой должен будет обладать инженер АСУ. Если вообще не нанимать нового специалисто кто будет поддерживать базу. Другими словам поддрежка подобных баз данных обходится не дешево или в ценовом или во временном эквиваленте.
3. Хочется сказать особо о безопастности что очень важно в корпоративных сетях или на производстве. Управление безопастностью данной базы требует тоже квалификации.
4. Управление базой не простое. В основном GUI для MySQL не приспособлены для отчетности. Например PhpMyAdmin вообще будет требовать понимания работы веб и устанвоки веб сервера вместе с РНР что не просто для того кто это ни разу не делела. А инструменты как NAVICAT, MySQLWOrkingBench избутучествуют функционалом. Это платяормы для проектирования баз и людям кто с этим не связывалс потребуется так же время что бы разобраться как просто просматривать и экспортировать данные.
Я предалгаю использовать SQLite. С ним мы будем иметь все приемущества базы данных но в дополнение.
1. Лего скачать базу на флешку например и отправить комунибудь просто сохранив файл.
2. Не нужно ни чего настраивать и устанавливать. Ни чего не должно работать в сервисах дополнительно. Это важно если кто то устанавливает скада на ПК на DIN рейку не супер произодительные.
3. Для SQLite существует множество готовых программ для посмотра и анализа содержимого. Есть коверторы котоыре могут переконвертировать в Excel или другие форматы. Куча готового инструмента.
4. SQLite намного быстрее на чтение чем MySQL. Конечно туда и писаться будет часто, но все же.
5. На будующее. Предположим решим сделать компоньена на мобильную платформу что бы можно было от туда управлять чем то или просматривать данные. Или например построитель отчетов. Будет просто например скачать послединй файл SQLite и сроить на нем отчеты. Я хочу обратить внимание на мобильность SQLite. В то время ка с MySQL придется тольк открывать доступ к базе что опять же связано с безопастностью и с профессионализмом. И даже этого будет мало, придется писать какой-то апи и устройство должно будет быть в интернете. Ну это возможно и с SQLite если хотите то можно и для него сделать API и запрашивать по интерету, главная мысль что он в добавок допускает и офлайновый способ.
Мы рассматривали SQLite в качестве варианта и возможно добавим его поддержку в будущем, но он все же подходит нам меньше, чем MySQL. Многие из недостатков MySQL которые Вы описали могут вообще не возникать при правильном подходе (со стороны скады). Мы стараемся возложить большую часть обязанностей не на пользователя, а на скаду, чтобы MySQL можно было только установить и забыть о ней.
Цитироватьнеобходимость устанавливать MySQL
От пользователя требуется только скачать и установить MySQL не меняя никаких настроек, кроме главного пароля (для root-пользователя). Т.е. установка не представляет ничего сложного, запускаем установщик, кликаем кнопки "Далее" и "Ок", вводим пароль, которым хотим защитить БД и готово.
ЦитироватьНастраивать ее и создавать соединения, управлять пользователями базы это целая область знаний которой должен будет обладать инженер АСУ
После установки уже будет создан root-пользователь с введенным паролем и скада по-умолчанию будет работать с ним. Если пользователь не хочет добавлять новых пользователей и разграничивать доступ, то и не нужно этого делать. С другой стороны, для продвинутых пользователей это будет доступно.
ЦитироватьУправление базой не простое. В основном GUI для MySQL не приспособлены для отчетности
Нам нравится MySQLWorkingBench, очень достойное приложение (мы используем последнюю версию). Но мы надеемся, что пользователям не придется прибегать к помощи сторонних программ для работы с БД. Simple-Scada 2 сама создает БД и её структуру, а при помощи скриптов можно будет экспортировать нужные данные в excel-отчеты и пр.
ЦитироватьЛегко скачать базу на флешку например и отправить кому-нибудь просто сохранив файл.
В Simple-Scada 2 можно просто нажать кнопку "Резервная копия БД" и сохранить её куда угодно, также одним файлом и затем использовать на любом компьютере. Т.е. эта функция также выполняется средствами скады.
А не можете сказать выход в свет версии 2, а то хочу писать проект и неохота писать на версии 1.3.1 если в близжайшее время выйдет принципиально новая версия. Заранее спасибо
Здравствуйте!
Мы планируем выложить окончательную полную версию в декабре этого года. Но учитывайте, что новая версия будет платной. Цену постараемся установить максимально низкую.
Демо версия на 64 тега будет?
Да, демо-версия обязательно будет.
Подскажите пожалуйста, есть ли у вас уже решение по ценовой политике на программу, хотяб грубо, очень хочется определиться стоит ли ждать вторую версию и наращивать пока аппаратную часть или смотреть уже в сторону других hmi? А очень хочется все таки работать с вашим продуктом, обнадежите хоть немного. Писать проект сейчас на версии 1.3.1 я так понимаю сейчас бессмысленно, т.к. не будет возможности переноса его на версию 2.0? Заранее спасибо!
p.s. Ваша Скада лучшая
Здравствуйте!
С точной стоимостью и ценовой политикой мы ещё не определились. Поэтому сейчас мы можем назвать максимальную стоимость, выше который мы не установим цену Simple-Scada 2 (скорее цена будет ниже).
Для максимальной версии с:
- неограниченным количеством тегов;
- неограниченным количеством одновременно используемых OPC-серверов;
- три сетевых (или интернет) клиента (дополнительные клиенты за цену не более 4 тыс. руб за один клиент);
- полная функциональность скриптов и баз данных;
- 1 год бесплатных обновлений до новых версии программы;
- при исправлении уязвимостей и критических ошибок в программе, любой пользователь получит новую версию с исправлениями, независимо от срока пользования.
, стоимость не будет превышать 40 тыс. рублей. Все остальные версии с ограничением по любому из вышеприведенных пунктов будут стоить ниже. Нижняя граница цены будет около 7 тыс. руб. за версию с ограничением на 128 (может быть и 256) тегов.
В общем точную цену сейчас не назовем, будем ещё обдумывать этот вопрос и постараемся установить цену ещё ниже.
Здравствуйте!
Очень часто приходится брать работу на дом, поэтому возникает вопрос.
Будет ли вариант покупки Simple-Scada 2.0 с USB ключом для возможности работать на нескольких компьютерах (или надо подготавливать руководство к покупки хорошего ноутбука :) ) ?
Здравствуйте!
Скорее всего будет вариант ещё лучше, Вы сможете разрабатывать проекты на любом компьютере. Согласно лицензии запрещено будет только использование скады. Т.е. сервер и клиенты должны работать только на тех компьютерах, для которых выдана лицензия. Например, если организация ООО "Ромашка" купила скаду для себя (с лицензией на ООО "Ромашка"), то использовать её (т.е. запускать сервер и клиенты) можно на любом компьютере этой организации. А разрабатывать проекты (в Редакторе) сможет кто угодно, на любом компьютере.
По описанию видно, что сервер работает через собственный протокол со скадой. Будет ли этот протокол открыт? Или будет некое API для взаимодействия с сервером. Вопрос не для промышленной автоматизации(Хотя и для нее тоже может пригодиться). А в домашней автоматизации или в теплицах для получения доступа через WEB было бы очень удобно. При этом получается, что любой сможет разработать свой собственный интерфейс.
Цитата: Simple-Scada от 12 ноября 2015, 11:10:11...то использовать её (т.е. запускать сервер и клиенты) можно на любом компьютере этой организации.
Мое мнение по этому поводу, что лучше лицензировать сервер. И вот почему:
1) Клиент может находится вне организации (Наемный работник который следит за показателями нескольких организаций)
2) Планируется WEB клиент. (Возможно лицензирование на количество клиентов одновременно работающих с сервером)
3) В предыдущих постах задавал вопрос об открытости протокола обмена. (Опять же подключение через интернет с любого устройства)
4) Разработка проекта из дома. (Есть редактор, есть клиент, сервер стоит на стороне заказчика с подключенным оборудованием, есть рабочие которые проверяют корректность работы оборудования). По моему опыту все объекты находятся на достаточно большом удалении от города. Специалисты как правило из других городов. Это все в сельском хозяйстве. Удобнее выехать на место один раз, запрограммировать контроллер, а из дома разрабатывать всю систему через VPN подключение. И выезжать уже на пуско-наладку.
ЦитироватьПо описанию видно, что сервер работает через собственный протокол со скадой
Сервер работает по протоколу WebSocket (https://ru.wikipedia.org/wiki/WebSocket) RFC6455 (http://tools.ietf.org/html/rfc6455).
ЦитироватьБудет ли этот протокол открыт? Или будет некое API для взаимодействия с сервером.
На начальном этапе API точно не будет, хотя это и интересная идея. Т.к. сейчас мы не можем выделить на это время. После релиза и завершения основных возможностей можно будет подумать над реализацией API.
ЦитироватьМое мнение по этому поводу, что лучше лицензировать сервер. И вот почему...
Да, Вы правы, для описанных случаев есть необходимость запуска клиентов на любых компьютерах. Позже мы планируем подробно рассмотреть вопрос лицензирования и постараемся учесть это.
Здравствуйте!
После начала продаж Simple-Scada 2.0 появится ли возможность общаться с поддержкой по телефону?
Цитата: Simple-Scada от 12 ноября 2015, 19:33:47Сервер работает по протоколу WebSocket (https://ru.wikipedia.org/wiki/WebSocket) RFC6455 (http://tools.ietf.org/html/rfc6455).
Это на низком уровне. А более высокий уровень? Свой? Или там стандарт OPC Fundation classic/UA?
Цитировать...появится ли возможность общаться с поддержкой по телефону?
Мы всегда стараемся отвечать на вопросы всех пользователей максимально быстро здесь на форуме и по почте техподдержки. По запросу мы будем давать телефон для связи и будем стараться помочь, как мы делаем это сейчас. При необходимости можем организовать связь по TeamViewer. Но моментальной техподдержки пока обещать не можем. В скором времени постараемся и это организовать.
ЦитироватьЭто на низком уровне. А более высокий уровень?
Это на уровне обмена сервера с клиентами (локальными или через интернет). А для чтения/записи данных с контроллера на сервер Simple-Scada всё по-прежнему, через OPC-DA 3.0 или ниже.
Спасибо вам огромное удачи вам постоянно слежу за новостями
Вот и наступил декабрь! Ждем выхода Simple Scada 2. Знал бы точную дату - запустил бы обратный отсчет))
Будет ли возможность записи например в ПОЛЕ через какой-нибудь цифровой задатчик компьютерной мышкой. Сейчас только через клавиатуру.
ЦитироватьБудет ли возможность записи например в ПОЛЕ через какой-нибудь цифровой задатчик компьютерной мышкой. Сейчас только через клавиатуру.
И сейчас есть такая возможность. Откройте свой проект в Редакторе, перейдите в меню "Проект" - "Настройки" и включите опцию "Сенсорный экран". Затем в скаде при установке курсора в поле будет появляться экранная цифровая клавиатура.
Понял спасибо. А если нет сенсорного монитора и стоит обычный.видел как то на работе операторы управляют генераторами только с помощью мышки даже клавиатура дез надобности
Эта опция работает на любом мониторе/компьютере (при клике мышкой будет выведена цифровая клавиатура), просто в основном ее используют на сенсорных экранах.
Еще раз спасибо оказывается практически все есть но мало написано в мануале попрошу вас в следующей версии расписать все поподробнее.
В руководстве раздел "Настройки" пункт "Сенсорный экран". В руководстве ко второй версии напишем об этой опции более подробно ;).
Здравствуйте уважаемые разработчики. У меня вопрос. Будет ли в новой версии или присутствует в актуальной(я не смог найти) возможность активации ввода текста с помощью горячих клавиш?
ЦитироватьБудет ли в новой версии или присутствует в актуальной(я не смог найти) возможность активации ввода текста с помощью горячих клавиш?
В новой версии будет возможноcть перевода фокуса между компонентами по Tab. Затем если фокус у Поля и нужно что-то в него ввести, то нажимаем Enter и вводим. Также будет доступен переход между страницами по "Crl + стрелка влево/вправо" и т.д. Также появится возможность во время ввода выделять часть текста, перемещать курсор и др.
Когда же уже появится Simple-Scada 2?
Цитата: Роман от 14 декабря 2015, 11:23:30Когда же уже появится Simple-Scada 2?
Присоединяюсь к вопросу!
+1
Здравствуйте!
Идем к завершению, совсем немного осталось сделать, но в декабре видимо уже не успеем. Нужно доделать часть функций, довести тесты до конца и организовать продажи. Также возникли задержки с регистрацией ООО из-за которых, судя по всему, мы сможем завершить регистрацию только к концу января, соответственно и начать продажи раньше не получится.
В ближайшее время постараемся отправить всем желающим тестовую версию Simple-Scada 2 (как только доведем до конца разработку основных функций и исправим известные на данный момент ошибки). Таким образом можно будет полноценно оценить возможности и работу с Simple-Scada 2. Если Вы хотите получить тестовую версию Simple-Scada 2 просто заполните эту заявку (https://docs.google.com/forms/d/1IyowPuPH-ruiwDAMVoYGxqeNXk6QeQduQsscNsESDd0/viewform?fbzx=-4862166426624679459).
Цитата: Simple-Scada от 14 декабря 2015, 19:39:31Здравствуйте!
Идем к завершению, совсем немного осталось сделать, но в декабре видимо уже не успеем. Нужно доделать часть функций, довести тесты до конца и организовать продажи. Также возникли задержки с регистрацией ООО из-за которых, судя по всему, мы сможем завершить регистрацию только к концу января, соответственно и начать продажи раньше не получится.
В ближайшее время постараемся отправить всем желающим тестовую версию Simple-Scada 2 (как только доведем до конца разработку основных функций и исправим известные на данный момент ошибки). Таким образом можно будет полноценно оценить возможности и работу с Simple-Scada 2. Если Вы хотите получить тестовую версию Simple-Scada 2 просто заполните эту заявку (https://docs.google.com/forms/d/1IyowPuPH-ruiwDAMVoYGxqeNXk6QeQduQsscNsESDd0/viewform?fbzx=-4862166426624679459).
У вас будет баг трекер? или все через форум?
Не будет. Описание всех обнаруженных проблем и недостатков можно присылать на почту техподдержки: support@simple-scada.com
Будет ли возможность конвертировать старые проекты под вторую версию?
Нет, такой возможности не будет. Структура проектов новой версии отличается от старой практически на 100%, практически всё сделано по-другому.
Здравствуйте демо версия в декабре будет или ждать в январе хочется опробовать аж руки чешутся :)
Цитата: Константин от 23 декабря 2015, 05:56:07Здравствуйте демо версия в декабре будет или ждать в январе хочется опробовать аж руки чешутся :)
Тоже жду. Выложите версию с багами, недоработками мы протестируем и отпишимся на форуме!
Приятно видеть такое рвение протестировать новую версию :). Мы сами очень хотим как можно быстрее закончить разработку. Но сейчас нам еще есть над чем поработать, что исправить. Если мы вышлем Вам текущую версию Вы будете писать об ошибках известных нам, мы будем отвлекаться от разработки и в итоге это только увеличит время разработки. Обещаем выслать версию для тестирования сразу после новогодних каникул. Потерпите еще немного пожалуйста.
День добрый.
Начал пробовать выводить....
Хочу сделать вывод модулей сбора "НЕВОД"(ТС и ТИТ и ТУ в обратку) в Simple-Scada.
OPC сервер есть,сейчас пробую написать клиента(или шлюз) НЕВОД MODBUS - OPCServer.
На своем тестовом клиенте в принципе все заработало - вывод в скаду есть прием от скады то-же есть...
Есть пару вопросов(или предложений) , форум почитал но мог пропустить что-нибудь(или все).
Будет ли динамический вывод(мигание(например квадратика)) при изменении тега(ТС) и квитирование ???
А то если много ТС на экране тяжело заметить кто поменялся.
И к кнопке вопрос - она сделана с фиксацией и без . А можно еще чтобы фиксация была (как-бы сказать...) однопозиционная, нажал-записал тег и все ,а потом её кто-нибудь другой отпустит(программа работы с устройствами) ..
Там сложности с телеуправлением - надо один раз получить команду(а человек может быть нетерпеливым
и давить на кнопочку очень часто...)
Ну а так пока все ровно,пробую.
С уважением
Сахаров Дмитрий
Норильск
Норильско-Таймырская энергетическая компания
Цитата: DimaCaxap от 25 декабря 2015, 15:09:53Будет ли динамический вывод(мигание(например квадратика)) при изменении тега(ТС) и квитирование ???
Такая возможность есть и сейчас - можно сделать анимацию мигания, например лампочки (подробнее в этой теме (http://simple-scada.com/forum/index.php?topic=49.0)).
ЦитироватьА можно еще чтобы фиксация была (как-бы сказать...) однопозиционная, нажал-записал тег и все ,а потом её кто-нибудь другой отпустит(программа работы с устройствами) ..
Там сложности с телеуправлением - надо один раз получить команду(а человек может быть нетерпеливым
и давить на кнопочку очень часто...)
Во второй версии у кнопки есть возможность записи фиксированного значения, т.е. при нажатии всегда будет записываться одно значение.
Здравствуйте. Очень заинтересовала ваша SCADA.
Имеется следующий вопрос: на базе вашей SCADA-системы возможно ли организовать работу двух сервером в режиме горячего резервирования (основной сервер выходит из строя, клиенты переходят на работу с резервным)?
Здравствуйте!
Планировали сделать такую возможность. Если не успеем до выхода второй версии, то постараемся сделать в ближайших обновлениях.
Здравствуйте как продвигается разработка Simple-Scada 2 уже подсел на неё из-за простоты в использовании хочется побольше новостей судя по количеству просмотров не мне одному интересно
Разработка продвигается. Также параллельно готовим подробную документацию и обновление сайта. Не хотим отвлекаться на написание новостей - после праздников все, кто записался на тестирование получат вторую версию и уже вживую оценят все обновления.
Не хотелось бы давить, но уже прошло 3 рабочих дня с окончания праздников, обновляю страницу форума каждые пол часа. Жду с нетерпением Simple-Scada 2
Цитата: toreto от 13 января 2016, 12:06:23Не хотелось бы давить, но уже прошло 3 рабочих дня с окончания праздников, обновляю страницу форума каждые пол часа. Жду с нетерпением Simple-Scada 2
Я сам с декабря жду))
Приносим свои извинения, но в связи с обнаруженными ошибками выход бета версии откладывается еще на две недели. Мы понимаем, что уже несколько раз обещали и переносили сроки, но проект достаточно большой и очень сложно точно оценивать скорость разработки. Разработка не прекращалась и в праздники, но к сожалению мы все таки не успели.
А нет ли идей, по созданию собственного OPC сервера? И не уверен, задавали ли этот вопрос ранее, но будет ли поддержка ActiveX элементов?
Собственного OPC-сервера пока не планируется.
Поддержки ActiveX не будет точно. Это нарушает все наши принципы используемые при разработке Simple-Scada, такие как максимальное упрощение, скорость отрисовки и загрузки компонентов, быстродействие компонентов и быстрая их обработка. Также ActiveX принесет с собой множество серьезных уязвимостей.
Цитата: Simple_Scada от 13 января 2016, 14:37:12Приносим свои извинения, но в связи с обнаруженными ошибками выход бета версии откладывается еще на две недели. Мы понимаем, что уже несколько раз обещали и переносили сроки, но проект достаточно большой и очень сложно точно оценивать скорость разработки. Разработка не прекращалась и в праздники, но к сожалению мы все таки не успели.
Пойду-напьюсь.
и я!
Здравствуйте!! Такой вопрос а возможно будет ли в Simple-Scada 2 распаковывать переменную типа WORD на биты и наоборот??
Здравствуйте!
Да, такая возможность будет.
Не могли -бы вы уточнить сроки выхода новой версии. Я так на вас подсел что меня уже ломает без новостей. ;D Я надеюсь что я не один такой. Фанаты- поддержите!
Я тоже!
++ ждем
Ждать осталось совсем не много - завтра ближе к вечеру всем записавшимся на тестирование будет отправлена бета-версия. Сроки выхода окончательной версии пока назвать не можем - все будет зависеть от результатов тестирования.
о да :)
подскажите будет в этой версии клавиатура хотя бы цифровая вводить данные ползунок не очень удобная вещь
Да, конечно будет виртуальная клавиатура. Просто в бета-версии ее нет.
Здравствуйте! Подскажите, а есть или будет возможность создания "графических шаблонов"? Когда пользователь создает какой-либо сложный графический объект состоящий из множества стандартных объектов (клапан, кнопка, текст и т.д.), динамизирует его, создает привязки к переменным и сохраняет как "шаблон", для того, чтобы изменения в шаблоне, распространялись на графические объекты данного шаблона во всем проекте.
Думали о такой возможности, но пока ее не будет. В дальнейшем возможно сделаем.
Цитата: Genrosol от 30 января 2016, 05:56:41Здравствуйте! Подскажите, а есть или будет возможность создания "графических шаблонов"? Когда пользователь создает какой-либо сложный графический объект состоящий из множества стандартных объектов (клапан, кнопка, текст и т.д.), динамизирует его, создает привязки к переменным и сохраняет как "шаблон", для того, чтобы изменения в шаблоне, распространялись на графические объекты данного шаблона во всем проекте.
Излишнее усложнение как-раз и сделает из Simple Scada уже совсем другой продукт, с кучей, ненужных большинству пользователей наворотов. Simple как раз и хороша тем что её можно быстро понять, быстро использовать и не лезть в дебри настроек. Если делать Симплу такой навороченной, то она утратит свою индивидуальность и станет подобием Мастерскад, Рапидскад и прочих излишне сверхнавороченных творений.
garry, Вы правы, озвучили практически наши мысли. Но здесь тоже многое зависит от того, как это будет сделано. Для шаблонов у нас уже задумано элегантное решение (на будущее). А есть задачи с которыми так не получается. От них мы стараемся отказываться.
Моё предложение тоже будет по Simple Scada. Парни, вы круглые сутки отвечаете на наши вопросы и круглые сутки правите код. У меня предложение : уходите в оффлайн на всё воскресенье и отдохните. Призываю всех заинтересованных поддержать: На завтра никаких вопросов и сообщений! Давайте дадим парням поспать!
Присоеденяюсь!!!
Вопрос по инструменту "Уровень" как то его масштабировать можно? К примеру, читаю "лектусом" значение входа с модуля ввода овеновского - получаю некое целочисленное значение 236. В настройках отображения ставлю сдвиг запятой (-1). в итоге получаем "значение" 23.6 Уровень же распознает как 236 (соответственно показывает 100% заполнение). В свойствах, там где описание параметров переменной изменить макс значение нельзя, в свойствах переменных при ее задании тоже не нашел :)
в общем вся проблема в том, что поле мин/макс значений серое и неактивное, ткните носом, пожалуйста где что нажать :D чтоб можно было редактировать?
Попробуй в редакторе переменных создать свою шкалу и применить ее к переменной
Переменные->Шкалы->Создать шкалу....затем привязывайте ее к переменной в основных свойствах в пункте Шкала
спасибо огромное, понял
ilyasov, вообще когда шкала не выбрана, то по-умолчанию ставится 0-100, поэтому в Вашем случае все должно было работать. Возможно Вы нашли ошибку. Сейчас мы это проверим.
UPD: все правильно, у Вас с контроллера идет значение больше 100, соответственно скада верно его ограничила.
Оо хм, я думал, что применение (-1) просто визуально отделяет последнюю цифру значения переменной.
Так и есть. Она отделяется только визуально.
Т.е. шкалу у переменной Вы должны указывать ту, в которой значение приходит с контроллера. Если значение приходит от 0 до 1000, то и шкалу Вы должны выбрать 0..1000. А смещение запятой только при отображении значений будет применено.
Уважаемые! Скажите пожалуйста а нельзя ли реализовать цветовую маркировку в скриптах было бы очень удобно.
Ну например как на скриншоте.
(http://storage9.static.itmages.ru/i/16/0202/s_1454431717_4027999_61575de777.png) (http://itmages.ru/image/view/3694175/61575de7)
Полностью согласны! Постараемся сделать в завтрашнем обновлении.
Спасибо огромное. Вы реально СУПЕР! Продолжайте в том же духе и вам на этом поприще не будет равных.!
Все же добавить функцию "свернуть в окно" как у винды.
Убрать полноэкранный режим в редакторе.
Написать вменяемый хелп. Пример из одной диагностической проги http://файлообменник.рф/ahn0ijrpgozf.html
Нарисовать блок-схему для быстрого создания проекта (пошагово) будет полезна всем. Больше всевозможных примеров на разные темы.
Русская прога - русские названия событий.
Спасибо.
Спасибо за отзыв. С некоторыми моментами не можем согласиться.
Функцию "Свернуть в окно" добавить в нормальном виде трудно, т.к. есть некоторые особенности у используемого графического движка. К тому же, как показывает практика, в этом нет необходимости. Обычно наоборот, требуется запретить сворачивание и нужна работа именно в полноэкранном режиме. На случай, если все же нужно работать в окне - всегда можно выбрать нужное разрешение в Options.exe и работать в оконном режиме.
ЦитироватьНаписать вменяемый хелп.
Если Вы говорите о .chm формате, то он отличается от текущего руководства только тем, что в нем есть индексы и указатель. Все остальные функции есть и сейчас. Можно также переходить по содержанию используя панель навигации (её можно включить в Word'е), или пользоваться обычным поиском. В Вашем примере нет даже нормальной индексации и содержания, вообще не понятно зачем эта справка была сделана в chm формате, если основные функции chm не используются. Есть примеры гораздо лучше. В будущем справка также появится в формате pdf, а также появится онлайн-справка на сайте. Но это почти ничего не изменит. Будут те же функции поиска, содержание и пр., что есть и сейчас.
ЦитироватьНарисовать блок-схему для быстрого создания проекта (пошагово) будет полезна всем. Больше всевозможных примеров на разные темы.
Все это будет. Сейчас мы тестируем beta-версию и многое ещё не готово.
ЦитироватьРусская прога - русские названия событий
А этого точно не будет. Один такой пример уже есть, это 1C-Предприятие с их собственным русскоязычным языком программирования. И это просто ужасно. Достаточно прочитать отзывы людей по поводу русского кода и его не захочется нигде использовать. Другой недостаток в том, что русский язык не международный и его внедрение не позволит распространять SCADA-систему за пределами России. Если Вы только о названиях событий, то здесь причины те же. Названия событий используются в коде скриптов и приведут к смешиванию русского и английского языков.
Можно ли сделать сортировку в редакторе переменных по столбцам? Сейчас они идут по порядку заданному OPC сервером при импорте. А иногда мне хотелось бы их упорядочить по типу. Например, мне надо отсортировать Boolean, Single и тд.
И можно ли назначить шкалы не индивидуально каждой переменной, а сразу группе переменных?
Сортировки в редакторе переменных пока не будет. Чтобы отредактировать любые однотипные свойства у нескольких переменных выделите их кликая ЛКМ с зажатой клавишей Shift или CTRL, затем нажмите кнопку «Редактировать»(кнопка с иконкой карандаша) и поменяйте необходимые свойства. Так можно менять любые свойства группы переменных, в том числе и шкалу.
Можно ли изменить работу с интерфейсом, касающемся шкал, формата вывода и сдвига запятой?
Я сегодня посидел достаточно много в редакторе и могу уже сказать, что как сейчас устроено мне не совсем удобно.
Сейчас можно ввести имя переменной из списка, а все остальные поля неактивны/затемнены. Я бы предложил сделать по-другому.
Имя переменной - как есть.
Адрес - неактивен/зависит от переменной
Шкала - добавить поле шкала с выпадающим списком созданных шкал и если возможно вариантом без шкалы.
Максимум - неактивен/зависит от выбранной шкалы либо активен/если выбран вариант без шкалы
Минимум - неактивен/зависит от выбранной шкалы либо активен/если выбран вариант без шкалы
Единица измерения - неактивен/зависит от выбранной шкалы либо активен/если выбран вариант без шкалы
Формат - активна/привязана к переменной.
Сдвиг запятой - активна/привязана к переменной.
Сама идея шкал хороша, но не удобно пользоваться. Надо постоянно лазить в редактор переменных. А зачем, когда мне надо например ввести формат вывода переменной, которая вот она, я ее вижу, но поле неактивно и я принудительно лезу в редактор переменных. И так постоянно. В редакторе я создал шкалы и если надо применил их к группам, опять же удобны групповые действия. А вот так по мелочам туда лазить неудобно.
Ограничение на 100 тэгов действует? Если да, когда ограничение будет снято?
Опрос нескольких ОРС серверов корректно работает?
Спасибо вам за работу!!
Да, в бета-версии количество тегов ограничено - 100. Большее количество тегов будет доступно в платных версиях после завершения тестирования. С несколькими OPC-серверами работать можно.
TeNQ, нужно обдумать этот вопрос. Есть проблема в неочевидности при работе с этими свойствами. Т.е. меняя их пользователь будет думать, что меняет свойства объекта, по аналогии с другими свойствами, а на самом деле будет редактировать переменные.
Начал работать с трендами, заметил что если менять цвета трендов на свои то после сохранения и открытия проекта цвета устанавливаются по умолчанию Красный, синий, зеленый и так далее.
Здравствуйте! Подскажите будет ли в ближайшее время обновление.
ЦитироватьНачал работать с трендами, заметил что если менять цвета трендов на свои то после сохранения и открытия проекта цвета устанавливаются по умолчанию
Спасибо, будем исправлять.
ЦитироватьПодскажите будет ли в ближайшее время обновление.
Планировали ещё позавчера выложить обновление, но начали вносить ещё изменения и решили отложить его. Постараемся выложить его завтра.
Вопрос касаемо цвета. в редакторе большой выбор цветов, когда мы настраиваем изменение цвета в скрипте там скудный набор стандартных цветов, а нельзя в шеснадцатиричном коде цвет вести чтобы повеселее цвета были а не стандартные?
В скриптах цвет можно указывать в виде констант цветов (например clRed), в виде HTML кода (например $FFFF00), через RGB (например RGB(0,0,255)). Указывать цвет в виде HTML кода нужно обязательно через символ $. Подобрать необходимый цвет можно по ссылке (http://colorscheme.ru/html-colors.html).
Вопрос такой, тренды пишутся в базу данных mysql с определенным промежутком времени, а если мне нужно записать раз в месяц показания, к примеру считанное из счетчиков электроэнергии, чтобы в дальнейшем обработать их к примеру в excel??
toreto, для этого нужно воспользоваться скриптами записи в БД или пользовательский файл. Но эти скрипты отсутствуют в beta-версии. Позже мы выложим версию с ними.
А у меня предложение по графическому редактору.
Можно ли сделать так, чтобы привязка объектов на граф. поле была не левый верхний угол, а чтобы ее можно было выбирать - например, центр объекта, правый нижний угол, правый верхний угол и т.д.? Было бы намного удобнее выравнивать объекты.
Ребята какаято ошибка при загрузке проекта, а всего то изменил галочку на кнопку подтверждение действия оператора? ;)
как то боязно теперь за стабильность системы, было пару глюков по работе с ситемой при копировании кусочка кода sql вылетала система, ну и так п мелочи.
ЦитироватьМожно ли сделать так, чтобы привязка объектов на граф. поле была не левый верхний угол, а чтобы ее можно было выбирать
Не понятно о какой привязке объектов идет речь? Вы говорите о координатах объектов, или о чем-то другом?
ЦитироватьРебята какаято ошибка при загрузке проекта, а всего то изменил галочку на кнопку подтверждение действия оператора?
Можете выслать проект с этой ошибкой на почту поддержки? И ещё, проблема не решается если завершить работу Server.exe и попробовать снова?
Цитироватькак то боязно теперь за стабильность системы, было пару глюков по работе с ситемой при копировании кусочка кода sql вылетала система, ну и так п мелочи
Для этого и нужна beta-версия, чтобы таких ошибок не возникало в финальной. А что за sql-код из-за которого вылетала скада? Сейчас ведь в скриптах нет функций для работы с sql.
все пробовал проект копировал в другую папку с фалами системы , перезапускал сервер и т.д. много манипуляций , не помогло. не QGL извиняюсь кусочек скрипта. Ребята поймите это не претензии у Вас реально крутая Скада , удобная простая, я уже почти привык немного инфы по скриптам и все. Спасибо за Вашу работу!!!P.S. сейчас отправлю проект
Отлично! Ждем проект, думаю мы быстро выясним в чем здесь проблема. И если у Вас ещё остался тот скрипт, который приводил к вылету, пришлите пожалуйста и его.
Цитата: Simple-Scada от 06 февраля 2016, 23:15:36ЦитироватьМожно ли сделать так, чтобы привязка объектов на граф. поле была не левый верхний угол, а чтобы ее можно было выбирать
Не понятно о какой привязке объектов идет речь? Вы говорите о координатах объектов, или о чем-то другом?
Да, я имел в виду координаты объекта.
Уважаемые Здравствуйте ! У меня небольшое предложение по поводу редактора. Было бы не плохо (если есть такая возможность ) переход на инструмент "Указатель" по горячей клавише , ну например "Пробел" . При редактировании графических объектов приходится часто переключатся с инструмента на курсор и обратно.
deldemo, возможно Вы просто упустили возможность перехода на указатель при помощи правой кнопки мыши? Просто нажимайте ПКМ, чтобы выбрать инструмент Указатель. Это ещё удобнее, чем пробел, особенно когда привыкаешь.
Цитата: Миханик от 07 февраля 2016, 10:32:16Да, я имел в виду координаты объекта.
Это будет сделать очень проблемно. Т.к. сейчас всё основывается на координатах по левому верхнему углу. Поэтому такую функцию мы скорее всего не добавим.
Цитата: Simple-Scada от 07 февраля 2016, 23:23:21deldemo, возможно Вы просто упустили возможность перехода на указатель при помощи правой кнопки мыши? Просто нажимайте ПКМ, чтобы выбрать инструмент Указатель. Это ещё удобнее, чем пробел, особенно когда привыкаешь.
Спасибо ! Да действительно я упустил эту возможность, как Вы и сказали ПКМ гораздо удобней.
Просто я достаточно часто пользуюсь SketchUp там пробелом переход на указатель (видимо привычка) других вариантов не рассмотрел.
Добрый день!
Возможно ли в редакторе переменных добавить еще одну колонку в которой бы отображалась название шкалы если к ней привязана переменная?
Да, это можно сделать. Добавим её.
По нашему вопросу касаемо того что проект не запускается не получили ответа к сожалению :-\
vovtrof, мы писали Вам выше в этой теме:
ЦитироватьОтлично! Ждем проект, думаю мы быстро выясним в чем здесь проблема. И если у Вас ещё остался тот скрипт, который приводил к вылету, пришлите пожалуйста и его.
Мы ждем проект который не загружается на почту поддержки, чтобы проверить из-за чего возникает ошибка. Или Вы его уже отправляли? Если да, то может быть не на ту почту? Вот наша почта: support@simple-scada.com
Уже отправляли, продублирую еще
vovtrof, пожалуйста, пришлите повторно. Может быть мы случайно удалили его, если он попал в спам.
Цитата: vovtrof от 08 февраля 2016, 21:45:35Уже отправляли, продублирую еще
Спасибо! Мы сразу напишем Вам, как только получим письмо.
Для полей ввода предусмотрена подпись, которую по желанию можно разместить справа, слева и тд. Это очень удобно. Но иногда мне нужно две подписи для одного поля. Скажем если оно является полем ввода в таблице, где оно первое в строке и столбце. Можно ли это ввести?
Цитата: TeNQ от 09 февраля 2016, 16:30:48Но иногда мне нужно две подписи для одного поля.
Может проще добавить объект Text для второй подписи и не усложнять систему?
ЦитироватьМожет проще добавить объект Text для второй подписи и не усложнять систему?
Конечно, можно. Так я и делаю сейчас. Если это усложнит, то и не надо вводить. Ну, а если это можно сделать? То почему нет.
Я бы сделал так, добавил поле: Кол-во подписей. (1-4)
Если кол-во подписей равно 1. То все остается как есть.
Если кол-во подписей равно 2. То в интерфейсе добавляется те поля, что и сейчас для единственного поля с сдвигом вниз.
Например.
Подпись 1
...
Подпись (прозрачность фона)
Подпись 2
...
Подпись (прозрачность фона)
TeNQ, Ваша идея понятна, но со свойствами объектов всё сводится к тому, что их должно быть максимально мало. Минусы здесь следующие: добавляя новое свойство объекту мы увеличиваем требования к постоянной и оперативной памяти, соответственно увеличивая размер файлов сохранения. Скорость загрузки и сохранения проекта также будет снижена. А учитывая то, что инструмент "Поле" используется наиболее часто - добавлять ему новые свойства не хотелось бы. Даже сейчас, когда Вы добавляете в проект поле без подписи - скада тратит лишнюю память на их хранение, время на их загрузку и сохранение. Поэтому поначалу мы даже рассматривали вариант не добавлять свойство подпись, чтобы пользователи при необходимости ставили его объектом Текст, но потом все же решили оставить это свойство. Это касается всех свойств и всех объектов, поэтому мы стараемся не добавлять свойств-пустышек и добавлять только сильно необходимые свойства.
Возможно ли сделать создание массивов виртуальных переменных?
Здравствуйте. Пишу в третий раз , по нашему проекту так и не было овтета , мы его отправляли два раза , а нам пока не ответили(( Другой адресс электронки не актуальный
vovtrof, только письмо с обычным текстом пришло. Почему-то с проектом не приходит. Мы ответили Вам на почту.
Цитата: TeNQ от 09 февраля 2016, 18:27:46Возможно ли сделать создание массивов виртуальных переменных?
Нет, сейчас это невозможно и возможно внедрить только в будущем.
Вот такой вопрос, когда то в разделе Simple-Scada 1.3.3 задавали вопрос про работу на двух мониторах, хотелось бы узнать как успехи?
Еще вопрос или предложение
Сейчас для вывода значения тега пользуемся объектом Поле.
Если мне, к примеру, нужно вывести разницу двух тегов, то придется писать скрипт с виртуальной переменной?
А мне очень нравится как сделано в Citecte там для вывода значения можно подставлять не только тег, но и любое выражение (грубо говоря, целый скрипт). Такое можно реализовать? Тогда скорость создания проекта увеличится в разы.
Еще по Полю. Как известно, когда связанная с полем переменная имеет тип стрингов, то в это поле можно вводить и выводить любые символы. Как бы ограничить количество вводимых символов, в смысле длину строки.
Сейчас, я так понял, длина ограничена 255 символам. Не плохо бы такое свойство для поля, чтобы ограничивало длину строки, например, по размеру (длине) поля или явно вводить длину строки. И еще: когда
свойство "Значение" поля заполнено, то это значение появляется только в редакторе и не появляется в клиенте.
Цитата: toreto от 09 февраля 2016, 22:05:15Вот такой вопрос, когда то в разделе Simple-Scada 1.3.3 задавали вопрос про работу на двух мониторах, хотелось бы узнать как успехи?
Да, делали такие тесты. Всё прошло успешно. После выхода Simple-Scada 2 начнем внедрять в неё поддержку нескольких мониторов.
Цитата: Al_Kuz от 10 февраля 2016, 09:53:04.
Не плохо бы такое свойство для поля, чтобы ограничивало длину строки. И еще: свойство "Значение" поля заполнено, но значение появляется только в редакторе но не в клиенте.
На счет длины - подумаем. А по поводу свойства Значение - исправим.
Цитата: Миханик от 10 февраля 2016, 07:55:43Если мне, к примеру, нужно вывести разницу двух тегов, то придется писать скрипт с виртуальной переменной?
Для нескольких тегов придется либо создать вирт. переменную, либо добавить два поля, которые связаны с этими переменными и написать им одинаковые скрипты по событию OnDataChange. Может быть добавим выражения в будущем, но не сейчас.
Цитата: Simple-Scada от 10 февраля 2016, 10:21:08Нет необходимости создавать вир. переменную. Поставьте Поле, свяжите его с переменной, зайдите в событие OnDataChange
С одним тегом всё вяжется. А если тега два и более, то какой тег связывать с полем?
Ведь, я так понимаю, событие OnDataChange сработает только при изменении связанного с полем тега. А если связанный тег изменяться не будет, а несвязанный будет, то и результат меняться не будет.
Редак.
Уже опередили с ответом, долго печатал :)
Всё понял - выражения очень облегчат работу в будущем и не все даже крупные скады их поддерживают, поэтому это был бы большой плюс Вашей скаде.
Был вопросик по поддержке шрифтов, но ответа я не нашел.
Посему повторяю вопрос.
Хотелось бы в коммерческом продукте иметь поддержку True Type Font.
elek72, к сожалению просто добавить поддержку TrueType-шрифтов у нас не получится из-за особенностей графического движка и работы с DirectX/OpenGL. На будущее скорее всего просто добавим ещё несколько шрифтов.
ЦитироватьДаже сейчас, когда Вы добавляете в проект поле без подписи - скада тратит лишнюю память на их хранение, время на их загрузку и сохранение. Поэтому поначалу мы даже рассматривали вариант не добавлять свойство подпись, чтобы пользователи при необходимости ставили его объектом Текст, но потом все же решили оставить это свойство.
Может тогда и убрать это свойство, а добавить объекту Текст свойство - Парковка. Оно будет работать так. Подтаскиваете текст со включенным свойством на расстояние N пикселей к объекту Поля ввода, например, с левой стороны и текст пристыковывается к Полю ввода с применением автоформатирования, как оно сейчас действует для свойства Подпись, расположение Слева. Так же и с других сторон.
Для конфликтных ситуаций, например, наложение Текста на Поле ввода до включения свойства Парковка, сделать по умолчанию прикрепление Слева. При равной близости к границе двух полей, прикреплять к Полю с большим номером Слоя.
Ну это как вариант.
У меня предложение переработать интеллектуальный ввод по Ctrl-Enter.
Во-первых, убрать ему интеллект. То как он решает, где можно вставить и где нельзя скорее мешает, чем помогает. Разрешить вставлять где-угодно и что-угодно из списка.
Во-вторых, переработать список выбора. Сейчас это куча со слабой систематизацией. И выбирать там что-либо довольно таки неудобно сейчас, а ведь она будет расти.
Я предлагаю сделать так.
Нажимаю Ctrl-Enter. Появляется коренной список. В нем пункты
Переменные
Константы
Функции
Процедуры
И тд.
Перемещаюсь по списку стрелками вверх-вниз.
Выбираю пункт в списке Константы. Нажимаю стрелку вправо. Открывается справа подсписок. Курсор выделения уходит туда. Перемещаюсь по списку стрелками вверх-вниз.
В списке пункты.
Константа цвета
Математическая константа
Константа времени
И тд.
Выбираю пункт - Константа цвета. Нажимаю стрелку вправо. Открывается конечный список констант цвета. (или нажимаю влево, перемещаясь в предыдущий список Константы цвета, закрывая текущий конечный список)
В списке пункты
ClLime
ClNavy
И тд.
Выбираю ClLime. Дальше два варианта.
1) Нажимаю вправо. ClLime вставляется в текст редактора, все списки закрываются.
2) Нажимаю Enter, ClLime вставляется в текст редактора, списки не закрываются, можно и дальше выбирать и вставлять, что нужно. Выход из списков ESC
ЦитироватьМожет тогда и убрать это свойство, а добавить объекту Текст свойство - Парковка
В этом случае одно свойство будет заменено другим. Удаляется свойство Подсказка и добавляется свойство Парковка, которое также будет храниться впустую, если текст ни к чему не пристыкован.
ЦитироватьУ меня предложение переработать интеллектуальный ввод по Ctrl-Enter
В самое ближайшее время врядли что-то изменим в списке методов, а в будущем возможно. Только идея с разбиением по группам с одной стороны упрощает, а с другой усложняет, т.к. приходится делать действия выбора групп. Сейчас,
в теории, пользователь не должен обращать внимания на величину списка методов. Он должен правильно именовать объекты (не обязательно все, хотя бы значимые для скриптов). К примеру для объекты изображений с приставкой img, например imgPicture, объекты текста с приставкой txt, например txtMyText и т.д.. Стандартные перечислимые типы и константы в скаде уже именованы по такому типу, у цветов приставка cl (от слова color) у типов частоты обновления urt (от слов UpdateRateType), у типов данных dt (от DateType).
Но это мы знаем приставки, а как быть пользователям? А пользователь должен получать приставку из описания методов. Например, если он хочет сменить цветовую схему, он переходит в скрипты, нажимает Ctrl + Пробел, пишет процедуру SetColorScheme и видит её описание в списке и то, какие параметры нужно в неё передать, а описана она так: SetColorScheme(AColorScheme: TM_ColorScheme). Здесь он должен понять, что в процедуру нужно передать параметр типа TM_ColorScheme, вот с него и нужно брать приставку по первым буквам cs. Это работает для всех типов и констант (исключение константа PI).
В результате зная приставки для своих объектов + стандартные приставки, пользователь не должен обращать внимание на величину списка, нажал Ctrl+Пробел, ввел приставку и получил только нужные методы, ничего лишнего. И что важно при этом не пришлось делать лишние клики,, сплошное написание кода. Возможно поэтому в языках программирования не делают разбивку по группам в списке методов (или может быть делают, но мы не слышали об этом).
Идея понятна. А с разрешением вставки? Я жму Ctrl+пробел. Вставляю переменную. Ставлю знак присвоения. Дальше надо вставлять переменные для выражения. Жму Ctrl+пробел и ничего. Приходится переходить на пустое место на другой строке, жать там, выбирать, вырезать, переносить.
И еще такая ситуация. Под вечер сидел, уже был невнимателен и минут 5 не мог понять, как так в конце скрипта End нет, а он компилируется. Пока не понял, что надпись - Нажмите Ctrl+Пробел и тд, она на сплошном фоне и перекрывает последнюю строчку. Может сделать ее на полупрозрачном фоне и скрывать, когда курсор внизу экрана редактирования.
Обе проблемы решим.
Будет ли поддержка OPC UA серверов?
Пока не планируется. В будущем добавим поддержку OPC-UA, как только это станет более востребованным. Пока мы видим очень слабый интерес пользователей к OPC-UA.
Здравствуйте, такое предложение- в журнале сервера пишется время подключения и отключения клиента, неплохо было бы что бы писалась еще и дата, и еще я конечно не знаю как будет организованно разделение прав, хотелось в настройках вводить список IP адресов клиентов которым можно подключаться к серверу.
toreto, так и сделаем!
Сегодня пробовал написать скрипт с изменением цвета по изменению состояния переменной, так вот возникла проблема, как не пытался не смог вызвать список констант цветов как у вас в видео, пришлось тупо смотреть их в вашем видеоуроке, которые видны были и забивать в ручную. Каким сочетанием клавиш оно вызывается ? По ctrl + пробел результата нет.
Ещё, у вас в свойствах прямоугольника есть хорошая штука, мигание, но оно ни к чему не привязано, просто выбираешь цвет и фигура начинает мигать, хотелось бы что бы это свойство можно было привязать к какой-нибудь переменной т.к с помощью мигания очень хорошо отображать аварии или предупреждения. Если это можно сделать через скрипт то напишите маленький примерчик, но лучше всё же сделать возможность обойтись без скрипта раз уже такая фича есть, осталось добавить только возможность привязки к переменным. И ещё один вопросик, после выхода релиза второй версии как она будет распространятся, как первая или иначе ? Очень понравилась ваша скада для моих задач прям лучше не придумать, да и понятная даже для тех кто скаду впервый раз видит. Ещё сделайте встроенную справку по F1 с кратеньким описанием функции и маленьким примерчиком использования, имею ввиду по функциям для написания скриптов. Хорошая встроенная справка снимет кучу вопросов.
Цитироватькак не пытался не смог вызвать список констант цветов как у вас
Да, вызывается по CTRL+Пробел. Не вызовется если у Вас выше в коде имеется ошибка. Поставьте курсор на пустой строке нажмите CTRL и не отпуская его нажмите Пробел.
Цитироватьпришлось тупо смотреть их в вашем видеоуроке, которые видны были и забивать в ручную
В папке Simple-Scada 2 есть руководство по скриптам - там подробно описаны все константы цветов. Там же имеются примеры скриптов.
ЦитироватьЕщё, у вас в свойствах прямоугольника есть хорошая штука, мигание, но оно ни к чему не привязано
Вы можете управлять миганием из скриптов - пример мигания по значению переменной имеется в руководстве в разделе "Примеры скриптов" и в 20 сообщении этой темы (http://simple-scada.com/forum/index.php?topic=145.15).
Цитироватьпосле выхода релиза второй версии как она будет распространятся, как первая или иначе ?
Simple-Scada 2 будет платной, стоимость будет начинаться от 6000 руб.
ЦитироватьЕщё сделайте встроенную справку по F1
Такого в ближайшее время не будет, но Ваше пожелание учтем.
Возможно Вы давно не обновляли бета-версию - в таком случае у Вас может быть старое руководство. Если это так, скачайте по той же ссылке обновленную версию с последним руководством.
Здравствуйте. Такая проблема, никак не получается создать анимированное изображение. Рисую кадры в паинт.нет с прозрачным фоном, делаю 2 на 4 кадров, захожу в программу Pictures, выбираю своё изображение и создаю анимацию, всё работает никаких предупреждений нет, сохраняю изменения, изображение появляется в доступных текстурах в редакторе, но оно появляется там не в собранном виде, а в разложенном на кадры и никакой анимации соответственно нет. Думал может у меня с изображением, что-то не так, взял изображение вашего вентилятора, сделал всё как в видеоуроке, но результат тот же, вентилятор появился в редакторе, но в разложенном виде. Что я делаю не так ?
Ещё вопрос, а будет в релизе ограниченная по тегам бесплатная версия ? Если да, то оставьте ограничение по тегам как в бете ну или хотя бы не меньше 64.
Ещё заметил одно неудобство при написании скрипта, когда строка длинная и вызываешь окошко быстрого ввода по ctrl + пробел то становятся не видны всплывающие подсказки т.к они появляются за границами экрана. Сделайте, чтобы это окошко по ctrl + пробел, окошко всплывало всегда в центре так будет удобнее. Возможно это не актуально на мониторах с большой диагональю, но актуально, например, для меня т.к я делаю тестовый проек на ноутбуке с экраном в 14`.
Здравствуйте!
a_sergeevich, Вы точно добавляете изображение в сам проект? Дело в том, что на предпросмотре (во время выбора текстуры) изображение не разрезается. Оно будет разрезано только при добавлении в проект. Т.е. Вы должны выбрать инструмент "Изображение" изменить свойство "Текстура" на нужное изображение, затем поставить его в проект. Или же у Вас даже при добавлении объекта "Изображение" в проект - текстура не разрезана?
ЦитироватьЕщё заметил одно неудобство при написании скрипта, когда строка длинная и вызываешь окошко быстрого ввода
Мы ограничим смещение этого списка, чтобы он не уходил за экран. Но рекомендуем всем пользователям при написании скриптов не писать длинные строки и использовать правила хорошего тона для программирования и избегать длинных строк. Ниже очень простой пример
Плохо:
begin
// для примера длинный комментарий, который подробно описывает код ниже
if myvariable.ValueAsInt = 1 then imgMyImage.Color := clRed else imgMyImage.Color := clGreen;
end;
Хорошо:
begin
{ для примера длинный комментарий, который
подробно описывает код ниже }
if MyVariable.ValueAsInt = 1 then
imgMyImage.Color := clRed
else
imgMyImage.Color := clGreen;
end;
Всё нашёл свой косяк, всё заработало, спасибо.
А если зайти в папку "Pictures\", удалить файл "Pictures.spd". Затем запустить Pictures.exe и снова разрезать изображение как нужно. Не устраняется ли проблема в этом случае?
Цитата: Simple-Scada от 26 февраля 2016, 19:33:45А если зайти в папку "Pictures\", удалить файл "Pictures.spd". Затем запустить Pictures.exe и снова разрезать изображение как нужно. Не устраняется ли проблема в этом случае?
всё разобрался, немного невнимательно просмотрел урок, надо было сначала пустую текстуру вставить, а потом выбрать свою анимированую, а я сразу без пустой текстуры выбирал свою и она соответственно вставлялась как есть.
Если текстура разрезана, она должна вставляться всегда в разрезанном виде, необязательно ставить сначала пустую текстуру. Возможно это ошибка. Но повторить её, как Вы описали - не получается. Например мы разрезаем текстуру на кадры в Pictures.exe. Затем в редакторе выбираем инструмент "Изображение" и эту текстуру. Далее при добавлении в проект она ставится уже в разрезанном виде. Т.е. в виде одного кадра, как и должно быть.
Сейчас вышеприведённую последовательность проверил на другом компе и всё работает, на ноуте хоть тресни не хочет.
Может быть Windows не дает Pictures.exe нормально сохранить результаты. Если запускать Pictures.exe от имени администратора ничего не меняется?
На ноуте стоит вин 7 на компе вин 10 и там и там работаю под админом, но в понедельник отпишусь, попробую принудительно от админа запустить, ноут на работе остался.
Спасибо!
Кстати, неплохо было бы добавить к встроеным в скаду анимированым изображениям, пламя горелки, кстати его я и мучаю, но так как с рисованием у меня не очень то и пламя такое же примитивное. Хотя выглядит вроде как ничего по оценке коллег, могу куда-нибудь выложить. Просто может у вас есть кто хорошо рисует. Вы будете первыми у кого будет такая штука т.к ни в мастер скада ни в трэйс моде 6 такого нету :)
Изображения пламени будут обязательно. Постараемся добавить в ближайшее время и обновить beta-версию.
Спасибо.
Открыли тему с пользовательскими изображениями здесь (http://simple-scada.com/forum/index.php?topic=153.0).
ЦитироватьТакая проблема, никак не получается создать анимированное изображение.
Есть такое дело, но заметил, что горизонтальные картинки собираются в кадр в проекте, а вертикальные нет. Ось -> Win7.
Цитироватьзаметил, что горизонтальные картинки собираются в кадр в проекте, а вертикальные нет
Al_Kuz, как это "собираются в кадр"? Т.е. вы их разрезаете через Pictures.exe, затем ставите в редакторе, но они добавляются в неразрезанном виде? Может быть у Вас найдется пример такого изображения?
Сегодня будет обнова ?
Да, будет сегодня вечером.
ЦитироватьТ.е. вы их разрезаете через Pictures.exe, затем ставите в редакторе, но они добавляются в неразрезанном виде?
Именно это я и имел ввиду. Картинка Znachki.png из соседней темы. Но, блин, сейчас проверил все работает, как в новом поекте, так и в старом. Точно помню, что вставлялась картинка в неразрезанном виде,причем только вертикальная, пробовол удалял файл Pictures.spd и снова создавал с помощью Pictures.exe, ни чего не помогало, сейчас работает, хз что было. ???
Здравствуйте. Скажите пожалуйста а есть ли возможность добавить другие темы в цветовые схемы ? Очень хочется цвет RGB(178,178,178), #D9D9D9 или близкое, в общем светло-светло серый.
Добавьте возможность рисовать разные фигуры по мимо прямоугольников или сделайте, чтобы линию можно было изогнуть. Короче очень не хватает чуть расширеных возможностей рисования.
Добавьте, пожалуйста, возможность выделить несколько сообщений для вырезания/вставки/удаления.
Обязательно добавим позже.
Можно ли сделать приоритеты на показывание сообщения в статусной строке? Сейчас там показывается и озвучивается последнее сообщение. А если среди не подтвержденных сообщений есть предупреждающие и аварийные, я бы хотел чтобы там отображалось именно аварийное.
Да, конечно, это не проблема. Сделаем.
Добавьте в скаду какой-нибудь мастер отчетов, чтобы формировать отчет по выбранным трендам в виде таблицы. Понятно, что это можно сделать сторонними способами, но там слишком много движений, а надо, чтобы тыкнул оператор в кнопку выбрал, переиод, необходимые параметры,например, температуры, давления и т.д, тыкнул в кнопку сформировать и получил на выходе excel файл с табличкой, которую он может распечатать и подшить, приложить, предоставить.
Мы думали об этом - это достаточно большая работа и сейчас отвлекаться на нее мы не будем, поэтому создание отчетов отложено на будущее.
Возможно ли реализовать отключения подтверждений сообщений или ,что еще лучше, к кнопке подтверждения прикреплять тег переменной.
deldemo, а для чего именно это нужно? Вы хотите в зависимости от значения переменной отключать или включать возможность подтверждения сообщений? Но что это даст? Пусть даже пользователь подтвердит все сообщения, они исчезнут из списка "Неподтвержденные", но их всегда можно будет посмотреть в списке "Все сообщения" и других списках.
Цитата: Simple-Scada от 04 марта 2016, 19:07:36deldemo, а для чего именно это нужно? Вы хотите в зависимости от значения переменной отключать или включать возможность подтверждения сообщений? Но что это даст? Пусть даже пользователь подтвердит все сообщения, они исчезнут из списка "Неподтвержденные", но их всегда можно будет посмотреть в списке "Все сообщения" и других списках.
В некоторых проектах, при возникновении аварийной ошибки, происходит остановка узла/агрегата, и для восстановления его работы необходимо нажимать кнопку "сброс ошибки". Так вот, хотелось бы объединить подтверждение аварийного сообщения с этой самой кнопкой "сброс ошибки". В данный момент оператору приходится кликать два раза, первый раз он подтверждает ошибку, а второй , только уже другой кнопкой, сбрасывает.
Идеальный вариант, добавить несколько параметров "кнопке подтверждения сообщений"
Допустим:
| Текст
| Шрифт
| Интервал
| Права доступа
| Переменная
| Адрес
| Иконка
| Подсказка
Поддерживаю deldemo, у меня точь такая же ситуация.
Возможно Вы сможете решить эту задачу скачав сегодняшнее обновление beta-версии. Подробно читайте здесь (http://simple-scada.com/forum/index.php?topic=144.msg1345#new). В скриптах появились процедуры ConfirmAllMessages (подтвердить все сообщения) и ConfirmMessage (подтвердить последнее сообщение). Т.е. сейчас Вы можете добавить кнопку рядом с узлом/агрегатом, по нажатию на которую будет происходить и подтверждение сообщения и сброс ошибки одновременно.
Не очень удобно, точнее очень не удобно, иметь дополнительную кнопку для сброса триггера неисправностей в
контроллере. Нужно будет постоянно переключаться между панелью сообщений и страницей с кнопкой сброс. Ведь кнопку
"Сброс" мы не можем разместить в панели сообщений. Уважаемые Разработчики! Пожалуйста, сделайте кнопкам
"Подтвердить", если не свойства, о коих писал deldemo выше, то хотя бы возможность обработки в скрипте события при
нажатии. С ув, Ал_Куз!
Цитата: Simple-Scada от 17 февраля 2016, 21:55:26Пока не планируется. В будущем добавим поддержку OPC-UA, как только это станет более востребованным. Пока мы видим очень слабый интерес пользователей к OPC-UA.
OPC UA необходим, потому что легко написать сервер для своей железки на net http://opcfoundation.github.io/UA-.NET/ (http://opcfoundation.github.io/UA-.NET/) и использовать в скаде, в отличии от OPC DA V2,V3.
Можно ли добавить в объекты выпадающий список, чтобы жестко ограничить варианты ввода? Конечно можно поставить кучу кнопок с теми же вариантами или навернуть фильтр на вводе в поле, но это не удобно, да и пользователь не сразу поймет тогда какие варианты ему доступны.
Поддерживаю TeNQ. Было бы очень хорошо иметь такую функцию в арсенале.
Цитата: Al_Kuz от 06 марта 2016, 12:21:00Пожалуйста, сделайте кнопкам "Подтвердить", если не свойства, о коих писал deldemo выше, то хотя бы возможность обработки в скрипте события при
нажатии
Al_Kuz, опишите подробно какую именно задачу нужно решить? Вы хотите, чтобы по нажатию кнопки "Подтвердить" сбрасывалась блокировка того объекта, который связан со сбрасываемым сообщением? К примеру активно сейчас сообщение "Авария агрегата 1". Пользователь нажмет "Подтвердить" и в этот момент произойдет сброс блокировки для "Агрегата 1"? Такая задача у Вас?
ЦитироватьМожно ли добавить в объекты выпадающий список
Да, как раз планировали его добавить. Как и инструмент "Таблица". Но это будет только после официального выхода полной версии Simple-Scada 2.
Можно ли в бете сделать ограничение на 100 точек ввода/вывода (OPC-переменных), а не 100 тегов? Имея скрипты и какую-никакую фантазию этот потолок быстро достигается, а ведь я даже к созданию отчетов не приступал.
TeNQ, в Simple-Scada не будет ограничения на количество виртуальных переменных и мы отключим это ограничение в следующем обновлении.
Цитата: Simple-Scada от 09 марта 2016, 20:36:27TeNQ, в Simple-Scada не будет ограничения на количество виртуальных переменных и мы отключим это ограничение в следующем обновлении.
Спасибо :D
Раз уж начался аттракцион неслыханной щедрости... А структуры данных будут? А это вроде был такой вопрос, но я поискал бегло и не нашел - динамическое создание переменных? Я сейчас голову ломаю над созданием отчетов и там это очень бы пригодилось.
На самом деле структуры и динамическое создание переменных есть и сейчас и было с самого начала. Другое дело - невозможность нормального использования. Когда Вы пишите код вроде этого:
type
TMyScructure = record
A, B, C: Integer;
end;
var
I: Integer;
S: String;
MyStructure: TMyScructure;
begin
// ...
end;
...то Вы уже динамически создаете переменные I и S и структуру MyStructure, а при желании можно динамически создать не только переменные, но и объекты, например изображения, фигуры и прочее. И Вы можете работать с этими переменными, объектами и структурами как угодно. Но есть один важный момент. Все они будут локальными, т.е. память им будет выделена в момент начала выполнения скрипта и после завершения скрипта они будут удалены (т.е. память под них будет освобождена). В результате использовать их в пределах одного скрипта это хорошо и такое использование сейчас допустимо. Но для того, чтобы можно было обращаться к ним из разных скриптов - они должны быть глобальными. Такими сейчас являются внутренние (виртуальные) переменные. Создавая новую внутреннюю переменную в Редакторе Вы "заставляете" сервер выделить для неё место в памяти и хранить её значение все время, пока проект не будет остановлен. Это позволяет обращаться к ней из разных скриптов и делает её "глобальной".
В будущем можно добавить модульность в скрипты, чтобы в одном модуле можно было описать структуру, или объект, а в скриптах просто подключать модуль и использовать структуру не объявляя её снова. Но и это не даст чего-то сверхъестественного, как здесь уже писали на форуме про запись структуры в файл и чтение её из файла. Каждому пользователю будут нужны свои структуры, поэтому нельзя будет написать MyStructure.SaveToFile или MyStructure.LoadFromFile, чтобы сохранить или загрузить структуру в файл. Пользователю сначала придется описать методы SaveToFile и LoadFromFile теми же процедурами и функциями FileWrite.../FileRead..., как это делается сейчас. Но, это позволит написать их единожды, а затем использовать в любом скрипте.
Поэтому в будущем появится модульность и можно будет нормально работать с структурами (теми же методами, что и сейчас, но не дублируя код). Но будет это после выхода финальной версии.
ЦитироватьAl_Kuz, опишите подробно какую именно задачу нужно решить? Вы хотите, чтобы по нажатию кнопки "Подтвердить" сбрасывалась блокировка того объекта, который связан со сбрасываемым сообщением? К примеру активно сейчас сообщение "Авария агрегата 1". Пользователь нажмет "Подтвердить" и в этот момент произойдет сброс блокировки для "Агрегата 1"? Такая задача у Вас?
Привязка к конкретному агрегату/узлу не нужна, достаточно чтобы к кнопке "Подтвердить" была привязана переменная типа boolean, значением которой управляла бы эта кнопка. Ну и до кучи вызывалось бы событие OnDataChange. И еще, если неисправность не устранена, т.е. блокировка неисправности в контроллере не сброшена, то сообщение о неисправности в списке не подтвержденных не должно исчезать при нажатии "Подтвердить".
TeNQ, в C# тип "Integer" записывается как "int" и объявление:
{
int i1 = 3;
}
эквивалентно этому в Pascal'е:
var
I: Integer;
begin
I := 3;
end;
Т.е. здесь мы говорим об одном и том же. Вся разница в том, что в C нет раздела объявления переменных и их можно объявлять в любом месте в теле процедур и функций. Это сомнительный плюс, который иногда приводит к неудобочитаемому коду.
ЦитироватьЯ это должен сейчас объявить заранее с запасом. И там был такой оператор new. И я мог в теле программы объявить переменную и соответственно выделить ей память.
А здесь Вы говорите уже про объекты. New используется обычно для создания объектов. Если раньше Вы писали "MyClass my = new MyClass()", то здесь Вы должны написать "my := MyClass.Create();". Но, как видите, мы не даем пользователям таких примеров, т.к. на то есть множество причин. Мы пока не открыли доступ пользователям к классам компонентов. В будущем придем к этому и покажем примеры создания объектов через код.
В С# и переменная типа Int имхо является объектом класса System.Int32. Там практически все является объектами. А впрочем это все неважно. А не System.Int32 это не класс, а структура согласно MSDN. Короче, я все забыл и больше выпендриваться не буду.
Просьба - можно ли сделать отключаемым звук аварии/сообщения? Потому, что долго его не вынести, а устранить аварию сразу может быть и не удастся. Т.е. сделать функцию Mute/отключение звука?
Да верно, в нём ведь можно писать "int i = new int();" вместо "int i = 0;". Но вышеописанного это не отменяет.
ЦитироватьПросьба - можно ли сделать отключаемым звук аварии/сообщения?
Добавим эту кнопку рядом с кнопкой подтверждения, или процедуру в скрипты.
Скажите пожалуйста, возможна ли отправка e-mail сообщений через SMTP при помощи скриптов из Simple-Scada2 по изменению значения тега и предвидится ли данный функционал в будущем?
Могли бы вы добавить такой элемент как checkbox, очень удобно было бы делать выбор каких-то параметров из списка.
ЦитироватьСкажите пожалуйста, возможна ли отправка e-mail сообщений через SMTP при помощи скриптов из Simple-Scada2 по изменению значения тега и предвидится ли данный функционал в будущем?
Сейчас такой возможности нет. После выхода Simple-Scada 2 начнем добавлять новые функции, в том числе и описанную Вами.
ЦитироватьМогли бы вы добавить такой элемент как checkbox, очень удобно было бы делать выбор каких-то параметров из списка.
Эту просьбу уже неоднократно озвучивали. CheckBox, ComboBox ,будут добавлены после выхода Simple-Scada 2.
Хочется увидеть возможность построения графиков по нескольким точкам, где координаты могут задаваться как в виде констант, так и тегов.
Например: вывести кривую температуры печи по участкам (http://sibac.info/sites/default/files/files/2014_03_05_NaturMath/2.3_Korolkov.files/image001.png) с подписными координатами точек (1 или 2мя)
Так же хочется автоматическое создание файла отчёта (файл раз в час/сутки/неделя) со снятыми показаниями заданных тегов (считывания тегов раз в минуту/10 минут/час/сутки).
Веб-клиент. Позволит запускать SCADA-систему в режиме клиента для удаленного доступа, как в локальной сети, так и через интернет.. Скажите, известны сроки появления этой функции в вашей скаде? С таким нетерпением жду её :P. И, думаю, не я один такой ))
Цитата: Coyote от 18 марта 2016, 11:50:51Хочется увидеть возможность построения графиков по нескольким точкам
После официального выхода Simple-Scada 2 постараемся добавить такой компонент.
ЦитироватьВеб-клиент. Позволит запускать SCADA-систему в режиме клиента для удаленного доступа
Такая возможность есть и сейчас. Только это не полноценный веб-клиент встроенный в браузер, а обычное клиентское приложение. Сейчас Вы можете просто ввести IP-адрес нужного компьютера на котором установлен Simple-Scada Server и подключиться к нему клиентом Simple-Scada по локальной сети, или через интернет.
А вместо IP адреса можно вписать доменное имя? У меня динамический IP.
Здравствуйте. Уважаемые, а можно ли добавить в меню "кнопки" ,где цвет границы, некую галочку "цвет границы как основной"(ну или что то типа того).
deldemo, можем сделать, чтобы когда цвет границы не выбран брался бы основной цвет.
ЦитироватьА вместо IP адреса можно вписать доменное имя? У меня динамический IP.
Нет, подойдет только IP-адрес.
Хотелось-бы напомнить всем пользователям Simple-Scada что главной особенностью и неповторимостью этой СКАДы является простота в настройке, эксплуатации и быстрой обучаемости (низкому порогу вхождения). Сейчас я наблюдаю стремление продвинутых пользователей привести эту великолепную и простую программу к состоянию мастерскад, трэйсмодскад и прочих скад, имеющих излишний и непотребный функционал и кучу настроек-на 100 метров крысиного бега.
Добавьте, пожалуйста, в журнал сообщений сервера дату возникновения события - сейчас там только время и нельзя определить когда что произошло.
Миханик, просто включите опцию "Отображать дату в журнале" через Options.exe (в разделе "Simple-Scada Server")
Добрый день. После официального выхода Simple-Scada 2.0 будет ли меняться структура файлов сохраненных проектов при дальнейшей доработке скады (выхода обновленных версий)?
С момента выхода Simple-Scada 2 в каждом обновлении будет реализована совместимость со всеми предыдущими версиями. Достаточно будет скачать новую версию, открыть свой проект в Редакторе и нажать "Проект --> Сохранить".
Как продвигается разработка? Над чем вы сейчас работаете? Какие основные этапы (если не сложно со сроками) вы предполагаете пройти до выхода продукта для коммерческого использования? Когда ожидать следующего обновления для тестирования?
Fenix, как все могли заметить - мы давно не обновляли beta-версию. Дело в том, что мы потратили одну неделю на важные изменения в работе сервера Simple-Scada для повышения стабильности при работе в больших сетях. Сейчас мы закончили эти изменения и постараемся на днях выложить обновление, которое также будет включать настройку прав пользователей. Таким образом до выхода полной коммерческой версии останется добавить:
- возможность сохранения границ переменных средствами Simple-Scada;
- пополнить библиотеку графики;
- добавить в скрипты функцию экспорта в excel;
- исправить известные мелкие ошибки;
Всё!
Великолепно!
Смогу ли я решить следующую задачу.
Пусть имеется 2 состояния насоса: Вкл/Выкл. Используется один тег типа Boolean. Согласно трендам я могу задавать интервалы записи информации по работе насоса в БД. Но при одинаковых значениях тега в БД будет накапливаться излишняя информация.
Можно ли записывать в БД значение вышеуказанного тэга только при его изменении. В результате я смогу сформировать сводку с точностью до периода опроса OPC сервером по времени работы и простоя насоса.
Лишняя информация будет накапливаться, но в маленьком количестве. Сейчас Simple-Scada Server автоматически оптимизирует редко меняющиеся тренды при записи БД и исключает запись в БД большого количества точек с одинаковыми значениями. При этом периодически в тренд всё же будут добавляться повторяющиеся точки, это нужно для его корректной отрисовки.
Доброго времени суток, в редакторе- задать адрес тега можно только через переменную, но в процессе создания проекта иногда приходится менять адрес, произвожу много действий, можно ли сделать так что-бы адрес можно было поменять сразу в основном окне редактора, или хотя-бы при нажатии на поле "Адрес" сразу выскакивало окошко редактирования этой переменной ? и еще, не могу подключится к OPC серверу, в настройках забито localhost, а при запуске Server.exe светит IP моего подключения - 162.168 и бла, бла, бла, много перечитал и перепробовал, но ответа пока не нашел, может создать тематические подтемки типа "подключение к OPC" и т. п.
P.S. Simple-Scada1 соединяется с OPC сразу и без проблем, запускаю 2ю облом (
Simple-Scada 2 автоматически подключается ко всем нужным OPC-серверам основываясь на списке переменных. Например у Вас проекте есть две внешних переменных. Одна с OPC-Server'a Lectus, а другая с KepServerEx. Когда Вы запустите проект в Simple-Scada Server'е - он автоматически подключится к Lectus и KepServerEx. Убедитесь, что переменные, которые используются в вашем проекте - внешние и связаны с нужным OPC-сервером. И учтите, что подключение к OPC-серверу произойдет только когда Вы активируете на сервере Ваш проект!
Цитироватьв настройках забито localhost, а при запуске Server.exe светит IP моего подключения
IP-сервера отображается просто для информации, чтобы было удобно определять IP для удаленного подключения к Simple-Scada Server'у.
у меня скада2 вобще нигде не видет уже запущенного OPC, а 1я подхватывает сразу, все стоит на 1м компе, что я делаю не так??, и что там с изменением адреса в главном окне редактора? реализовать можно? ))))
Цитироватьу меня скада 2 вообще нигде не видит уже запущенного OPC
Не видит через Editor.exe? Или Server.exe? Если Вы про Сервер - то он и не должен "видеть". Т.к. он сам запустит OPC-сервер когда ему будет нужно. Если Вы про Редактор, то он должен показать Вам список OPC-серверов при импорте переменных. Например: запустите редактор, перейдите в меню "Переменные -> Редактировать". На верхней панели найдите кнопку с надписью "OPC" и нажмите её. Вы увидите панель со списком OPC-серверов. Видите ли вы там свой OPC-сервер? Если да, то кликните по нему, чтобы отобразился список тегов. Вы можете выделять эти теги кликая по ним правой кнопкой мыши, а затем импортировать их в список переменных. В этом случае Вам вообще не придется вводить адрес тега и прочее, все добавится автоматически.
Цитироватьи что там с изменением адреса в главном окне редактора? реализовать можно?
А для чего Вы постоянно меняете адреса тегов? Добавьте переменные единожды, как описано выше и готово. Это ведь обычные теги, для чего менять их адреса?
ЦитироватьА для чего Вы постоянно меняете адреса тегов? Добавьте переменные единожды, как описано выше и готово. Это ведь обычные теги, для чего менять их адреса?
при написании программы на ПЛК пространства памяти данных периодически меняется в виду добавления, удаления и изменения данных и их типов, соответственно меняется назначение тегов в OPC сервере, при маленьком проекте это не представляет проблемы, а в достаточном большом уже не удобно.
да редактор Simple-Scada 2, увидел OPC но только в случае с импортом, при простом добавлении "+" в поле "OPC сервер" пишет - не выбрано, в выпадающем списке никого нет (, это меня и ввело в ступор )))
и вот еще вопрос на будущее так сказать- не хотите ли вы написать свой OPC? может даже интегрированный ))) я собственно к чему, поясню- я пишу для ПЛК на CFC,
при этом иногда плотно использую ST, скрипты на OPC на Lua, у вас в скаде очень напоминает С++ (глобально еще небыло времени изучить), синтаксис у них примерно одинаковый, дак вот, иногда начинаю подвисать )))) и компиляция не идет ))), было бы не плохо в моем случае исключить хотя-бы Lua )))), тем более у вас это очень хорошо получается !!! )))
Цитироватьпри написании программы на ПЛК пространства памяти данных периодически меняется в виду добавления, удаления и изменения данных и их типов
Работали с различными контроллерами, но впервые слышим о том, что добавление/удаление переменных на контроллере может приводить к изменениям адресов остальных переменных. Пока ничего в интерфейсе менять не будем, Ваше пожелание учтем, возможно в будущем сделаем.
Цитироватьне хотите ли вы написать свой OPC?
Нет, мы не планируем разрабатывать свой OPC-сервер.
ЦитироватьА вот еще вопрос, можно ли будет в Simple-Scada 2, менять изображение не теряя некоторых свойств объекта
У объекта "Изображение" можно поменять текстуру - никакие свойства при этом не поменяются.
Здравствуйте. Подскажите пожалуйста, я запустил проект на стационарном компьютере на работе, где IP и порт динамические. Получить статические не получится. Как нужно поступить в этом случае?
lopezmil, после следующего обновления можно будет использовать Имя компьютера в сети, вместо IP-адреса. Это решит Вашу проблему, если Вы говорите о локальной сети.
Нет, речь идёт об удалённом подключении через интернет. Ситуация такая, у меня на компьютере две сетевые карты. К одной я подключаю контроллеры через ethrnet, вторая через беспроводное соединение подключается к интернету. Интернет мобильный - билайн. Пробовал в браузере определить свои IP и номер порта, они постоянно меняются. Не могу подключиться скада-клиентом с ноутбука к компьютеру, на котором скада-сервер. В этом и вопрос, как это сделать?
Для этого Вы должны сделать себе статический внешний IP-адрес. За отдельную плату это можно сделать у любого интернет провайдера - для билайна смотрите здесь (http://moskva.beeline.ru/b2b/products/mobile-internet/enterprise-mobility/details/postoyannyy-ip/).
Как сделать статический IP бесплатно смотрите здесь (https://www.youtube.com/watch?v=fNzpe35MBpo). Такой способ не подойдет, так как на выходе Вы получите доменное имя, а не статический IP-адрес. Поэтому как ниже правильно написал int2246, можно настроить виртуальную частную сеть (VPN), например с помощью Hamachi или других подобных программ.
Цитата: lopezmil от 05 апреля 2016, 08:25:19Нет, речь идёт об удалённом подключении через интернет. Ситуация такая, у меня на компьютере две сетевые карты. К одной я подключаю контроллеры через ethrnet, вторая через беспроводное соединение подключается к интернету. Интернет мобильный - билайн. Пробовал в браузере определить свои IP и номер порта, они постоянно меняются. Не могу подключиться скада-клиентом с ноутбука к компьютеру, на котором скада-сервер. В этом и вопрос, как это сделать?
Если у Вас USB модем надо у оператора заказать услугу "внешний ip". эта услуга платная и там трафик не пакетный, а помегабайтный примерно 10 рублей за мегабайт. А в данный момент у вас компьютер имеет ip внутренней сети билайна и имеет ip типа 10.ххх.ххх.ххх, который выдал вам шлюз билайна который имеет уже внешний ip отображаемый на сайтах в интернете. Да если вы все же подключите данную опцию то не все операторы гарантируют что ip не изменится, там надо будет ставить ddns, а дальше уже вопрос к разработчикам можно ли писать адрес типа aaa.ddns.net?
Или другой вариант понять VPN соединение типа L2TP с вашим компьютером, тогда вы будете платить за интернет как и платили. Ну в реализации сначало может быть немного затратно:)
Либо можно попробовать через Hamachi и.т.д
P.S. у мобильных операторов нормальные цены на внешние IP доступны только юридическим лицам.
Может разъясните как этот хамачи работает и что я делаю не так? Я его установил на обоих компьютерах. Запустил, всё работает. Теперь у меня есть wanip роутера, lanip роутера. ip компьютера с сервером simple scada, который мне присвоил роутер, точно так же и на компьютере с клиентом simple scada. Ещё два ip адреса, присвоенные хамачи каждому из компьютеров. И ip сетевой карты, к которой непосредственно подключены контроллеры, которыми требуется управлять. В клиенте нужно указать ip адрес компьютера с сервером simple scada и порт. Вот я и не пойму никак, что же мне там прописать ??????? :o ???
Забыл уточнить, у меня два способа выхода в интернет: мобильный - раздача через андроид-смартфон и сеть на работе. ip адрес в ней у меня статический, а вот в браузере попробовал определить ip, он оказался другим.
Цитата: lopezmil от 05 апреля 2016, 22:22:03Может разъясните как этот хамачи работает и что я делаю не так? Я его установил на обоих компьютерах. Запустил, всё работает. Теперь у меня есть wanip роутера, lanip роутера. ip компьютера с сервером simple scada, который мне присвоил роутер, точно так же и на компьютере с клиентом simple scada. Ещё два ip адреса, присвоенные хамачи каждому из компьютеров. И ip сетевой карты, к которой непосредственно подключены контроллеры, которыми требуется управлять. В клиенте нужно указать ip адрес компьютера с сервером simple scada и порт. Вот я и не пойму никак, что же мне там прописать ??????? :o ???
Вы должны установить хаматчи на обоих устройствах. На одном нажать создать сеть (пишите произвольное имя и пароль) на другом нажать присоединиться к сети (и пишите ваше созданное имя и пароль). После чего у Вас должно отобразиться на обоих хамачи Ваша сеть и ваши устройства. Далее заходим в клиента Simple-Scada и вводи IP хаматчи к которому надо присоединиться. И все работает.
P.S. Правда работает на самой последней версии Simple-Scada 2 пробовал на более ранней где был написан рабочий проект не отображалась визуализация
А номер порта остаётся неизменным?
Цитата: lopezmil от 06 апреля 2016, 21:20:22А номер порта остаётся неизменным?
Номер порта на клиенте должен совпадать с номером порта указном в "Options" скады к которой подключаемся во вкладки "Simple-Client".
Спасибо помогло. Но теперь другая проблема. Завис на запуске проекта. Подключаюсь клиентом к компьютеру сервера, происходит запуск проекта и на этом останавливается. На экране запуска проекта название проекта, расположение и статус: подключение к серверу Simple-Scada;. В журнале сервера при каждой попытке подключится появляются строки клиент такой-то подключён, клиент такой-то отключён. Но проект запустить так и не удалось.
lopezmil сегодня вечером мы выложим обновление beta-версии Simple-Scada 2. Нужно попробовать с ним, возможно эта проблема не будет возникать.
Цитироватьпоявляются строки клиент такой-то подключён, клиент такой-то отключён
эти строки должны появляться, т.к. клиент подключается и считывает список проектов с сервера, а затем отключается.
Это я понимаю, но почему клиент не подключается? Всё, так сказать, зависает на стадии именно запуска проекта и подключения к серверу. Не может же он подключаться больше 10 минут?
lopezmil, он по каким-то причинам просто не получает данные проекта от сервера. Как мы и написали выше - сегодняшнее обновление возможно решит проблему, т.к. мы изменили систему передачи проекта.
А как можно получить обновление?
сегодня вечером мы выложим обновление beta-версии Simple-Scada 2, оно будет доступно по той же ссылке, по которой Вы скачивали Simple-Scada 2 (beta) раньше. Кстати, давно Вы обновляли Simple-Scada 2 (beta)? Последнее обновление было 16 марта.
Только что обновил. Подключение произошло. Но с ошибкой stream read error. Проект запустился, но, как говорил выше int2246, не отображается графика и журнал сервера выдаёт вышеупомянутую ошибку. Надеюсь в сегодняшнем обновлении это будет исправлено ::)
lopezmil, всё верно. Эта ошибка возникла из-за того, что проект сделан в старой версии программы и не переведен на новую. Сейчас у Вас есть два варианта. Либо сделать проект заново в той версии, которую Вы скачали. Либо отправить текущую версию проекта нам на почту поддержки и мы переведем его на новую версию вручную.
Цитата: Simple-Scada от 07 апреля 2016, 13:09:38сегодня вечером мы выложим обновление beta-версии Simple-Scada 2, оно будет доступно по той же ссылке, по которой Вы скачивали Simple-Scada 2 (beta) раньше...
С нетерпением ждем 8)
В ближайший час выложим.
1. Возможно ли добавить режим отображения сообщений не одной строкой, а сразу 5-6 последних сообщений, чтобы можно было не переходить на список всех сообщений. Чтобы не занимало много места можно изменить размер шрифта.
2. Хотелось бы видеть язык раскладки клавиатуры при вводе текста и, в частности, пароля.
Fenix, эти возможности будут реализованы только после выхода финальный версии Simple-Scada 2.
Решил поработать с базой данных через MySQL Workbench, но немного непонятно к каким ID в таблице относятся переменные, может как нибудь в редакторе переменных это отображать??
Вот может кому поможет, написал для себя морду для работы с базой данных, есть пару фильтров, экспорт в эксель, правда эксель в числах типа 46,1234567890 запятую переносит неправильно и получается 4612345678,90, почему так не разбирался т.к экспортом особо не пользуюсь, мне проще из таблицы перетащить методом копирования :) Прога написана на С# поэтому фраймворк .нет от 4 и выше версии обязателен.
Можно ли объекту Field добавить свойство "Прозрачность фона"?
Это свойство у поля уже есть - "Прозрачность".
Точно! Спасибо, не заметил - я его в другом месте искал :)
А как узнать качество переменной (Good or Bad), получаемой от OPC-сервера?
Просто, очень часто обрывается связь с контроллером и хотелось бы высвечивать сообщение в момент отсутствия связи.
property IsGoodQuality: Boolean;
Описание: Качество переменной на OPC-сервере. Равно False, если при чтении/записи переменной на OPC-сервере возникли проблемы. Доступен только для чтения.
Пример кода:
begin
if Variable1.IsGoodQuality = False then Text1.Text := 'Не удалось считать переменную'; // если качество переменной плохое – вывести предупреждение.
end.
Также в одном из следующих обновлений мы включим функцию контроля связи, которая будет отображать соответствующую иконку рядом с объектами, теги которых имеют bad-качество.
Можно ли ввести скрипт OnDataChange отдельно для переменной. Сейчас, если нужно произвести действие связанное с изменением переменной есть два варианта:
1) Внести действие в секундный таймер - OnSecondTimer и иметь секундную задержку на исполнение.
2) Создать поле, привязать переменную и скрипт OnDataChange привязанную к полю. Поле делаем невидимым и недоступным. Реакция по изменению до 100 мс.
Оба имеют недостатки. В 1м задержка, во-втором ненужное поле.
TeNQ в этих вопросах мы полностью с вами согласны и планируем при создании скриптов дать пользователю выбор типа скрипта. Эту возможнсть мы добавим после официального выхода скады.
Цитата: toreto от 11 апреля 2016, 10:22:53Решил поработать с базой данных через MySQL Workbench, но немного непонятно к каким ID в таблице относятся переменные, может как нибудь в редакторе переменных это отображать??
toreto, пропустили ваше сообщение. Мы вынесем свойство ID-переменной для трендов. Правда это может не помочь, когда у вас переменная пишется в БД скрытно, т.е. в тренды проекта она не добавлена. Что-нибудь придумаем.
Добрый день, планируете ли сделать экспорт переменных из самой скады в тот же .csv файл? К примеру у меня сейчас много виртуальных переменных и я хочу перенести их в новый проект.
Vladimir, да, мы планируем максимально расширить функции экспорта/импорта после официального выхода Simple-Scada 2. Это касается не только переменных, но и окон, страниц, подстраниц, трендов и сообщений.
Цитата: Simple-Scada от 20 апреля 2016, 09:34:04Vladimir, да, мы планируем максимально расширить функции экспорта/импорта после официального выхода Simple-Scada 2. Это касается не только переменных, но и окон, страниц, подстраниц, трендов и сообщений.
Отлично, то что нужно! Систему генерации отчетов в word, excel бы еще))
Добрый день.
По скриптам:
Не нашел оператора
- перехода по меткам в теле скрипта типа GOTO Label или Jump Label
- выхода из скрипта (досрочного) типа Return
- как вытащить из переменной string один(несколько) символ(ов) с n-ного места - аналог в других языках MID
elek72, мы добавим функции для работы со строками в очередном обновлении.
Цитировать- выхода из скрипта (досрочного) типа Return
для этого используйте команду Exit;
Цитировать- перехода по меткам в теле скрипта типа GOTO Label или Jump Label
использование оператора GoTo считается плохим стилем и его всегда лучше избегать. Если есть какой-то код где вы хотели бы использовать GoTo, то можете его опубликовать здесь и возможно мы сможем предложить лучшее решение без GoTo.
После опубликования полного списка команд подобных вопросов не возникнет
(нет и не будет оператора безусловного перехода и ладно)
(а сразу тяжело было указать, что я просто забыл объявить Label)
,а лучшее решение я всегда выберу самостоятельно.
Спасибо за ответ(еще раз за следующий).
ЦитироватьПосле опубликования полного списка команд подобных вопросов не возникнет
На самом деле мы не будем публиковать полный список, т.к. он слишком большой и т.к. это просто не нужно, ведь мы его даже не создавали. Суть в том, что в скриптах Simple-Scada 2 мы используем Object Pascal компилятор, поэтому обо всех командах и операторах можно прочесть в интернете на сайтах связанных с языками Pascal/Delphi. Здесь есть и goto (http://delphibasics.ru/Goto.php) (который мы так не рекомендуем) и exit (http://www.delphibasics.ru/Exit.php), описание типов данных (http://www.delphibasics.ru/1Types.php) и другие (http://www.delphibasics.ru/1Keywords.php). А все наши процедуры, функции и объекты опубликованы в Руководстве по скриптам.
Интересует автоматический старт Simple-Scada Server на компьютере без последующего логина пользователя (автологин не устраивает).
- Возможен ли запуск Simple-Scada Server в качестве службы ?
- Отключить предупреждения сервера при запуске и сразу в трей (установкой флажка больше не показывать например)? (у меня работает в VMWare на сервере у админа - отсюда ограничения 3D)
- Автоматический запуск выбранного проекта в Simple-Scada Server ? (в платной версии...)
С выходом оф.демо.
не работает (в бете работало) - в процедуре OnInitialization не происходит инициализация виртуальной переменной данными переменной с OPC серевера
var_virtual.value := var_fromOPC.value; результат всегда 0 - в бете работало).
Может добавите функцию в Editor/Client/Server на тест целостности(корректности структуры файлов данных)проекта или что-то в этом роде или у Вас файлы проекта подписываются?
Доделайте пожалуйста подсветку ключевых слов в Editor (IntToStr и другие).
ЦитироватьВозможен ли запуск Simple-Scada Server в качестве службы ?
Есть в планах, но трудно сказать когда именно мы сможем добраться до этого.
ЦитироватьОтключить предупреждения сервера при запуске и сразу в трей (установкой флажка больше не показывать например)? (у меня работает в VMWare на сервере у админа
А этот пункт постараемся решить быстрее, хотя пока остаются некоторые сложности.
ЦитироватьАвтоматический запуск выбранного проекта в Simple-Scada Server?
сделаем.
Цитироватьв процедуре OnInitialization не происходит инициализация виртуальной переменной данными
Возможно это из-за того, что проект не был сделан на демо-версии. В этом случае попробуйте просто открыть проект в редакторе Демо-версии и сразу сохранить проект (чтобы все скрипты перекомпилировались). Если это не устраняет проблему, то скажите: уверены ли Вы в том, что переменная на момент инициализации имеет значение не равное 0? Также был случай когда пользователь думал, что OnInitialization выполняется каждый раз при запуске клиента, что неверно, т.к. OnInitialization выполняется только после запуска проекта на сервере. И последний пункт в котором нужно убедиться, это то, что в проекте не используется более 64 тегов.
ЦитироватьМожет добавите функцию в Editor/Client/Server на тест целостности
В редакторе теперь эта проблема возникать не будет, т.к. во все последующие версии будет встроено автоматическое пересохранение проектов. А для клиента и сервера добавим такую проверку, чтобы запуск некорректного проекта не заканчивался вылетом.
ЦитироватьДоделайте пожалуйста подсветку ключевых слов в Editor (IntToStr и другие).
Сейчас в редакторе скриптов подсвечиваются все
ключевые слова (http://www.delphibasics.ru/1Keywords.php) языка Object Pascal, а подсветку функций IntToStr и т.п. мы не планируем, т.к. это обычные функции ио которых и строится основная часть кода и в этом случае почти всё будет подсвечено.
Цитироватьэто обычные функции ио которых и строится основная часть кода и в этом случае почти всё будет подсвечено.
Поставил Delphi.XE10.Lite.12.0 - посмотрел, действительно подсветка слов такая же как у Вас.
В повседневной работе использую TIA Portal (яз.SCL), Codesys 2 и 3 (яз.ST)версии и привык уже к таким мелочам(удобствам) -
функции подсвечиваются тоже
( там Int_To_String здесь IntToStr - по подсветке было бы видно есть ли ошибка), Вы же тоже имеете дело с промышленными контроллерами и это наверняка знаете.
Так же в Codesys есть полезная штука как обьявление переменной во время набора текста - перешел на другую строку,
редактор предлагает обьявить локальную(глоб) переменную если обнаружил "необьявленный индентификатор" - это так мысли в слух.ЦитироватьЕсли это не устраняет проблему, то скажите: уверены ли Вы в том, что переменная на момент инициализации имеет значение не равное 0? Также был случай когда пользователь думал, что OnInitialization выполняется каждый раз при запуске клиента, что неверно, т.к. OnInitialization выполняется только после запуска проекта на сервере. И последний пункт в котором нужно убедиться, это то, что в проекте не используется более 64 тегов.
По высказанному абсолютно уверен (тегов 26 из них только 5 с opc сервера) - перепроверял несколько раз так и не понял на каком этапе при инициализации перестали читаться теги с OPC (Codesys OPC DA 2.0).
Даже сделал уже в оф.демо мини проект - в Init считать тег с OPC сервера и присвоить виртуальной переменной - результат тот же = 0, завтра еще раз на нем перепроверю. Пока же я это обошел использую булевую переменную типа first_scan:=true и один раз в таймере по 1сек. выполняю нужную инит програмаму, после чего сбрасываем в false и дальше инит не исполняется, ед.дефект - при запуске на пол секунды появляются левые значения.
UPD: Присоединил тест на процедуру
OnInitialization (в ней одна строка Virtual_var.Value := D_SectionCounter.Value ; результат в полях на экране) - похоже на момент инициализации нет связи с OPC или данные не гуд потому и ноль.
(Возможно у нас проблемы с сетью нарисовались, так же не получилось в бете - хотя раньше(до прошедших выходных) работало) Мне так видится что OPC отвечает не с первого раза...(у меня Codesys.OPC.DA он соединяется с gateway на удаленном PC к которому уже подключен с контроллером - возможно где то возникает поначалу затык, во время работы соединение не нарушается).
Напишите у кого работает такая конструкция
OnInitialization.
Цитироватьпохоже на момент инициализации нет связи с OPC
Скорее всего все так, как Вы и написали. Simple-Scada 2 запускает OPC-серверы в отдельных потоках и продолжает работу не дожидаясь полного запуска OPC-серверов, чтобы исключить лишнее ожидание и не терять времени. Можно сделать вызов OnInitialization после полной активации OPC-серверов, но тогда могут появиться лишние простои, если OPC-серверов несколько. Подумаем, может быть можно найти какое-то оптимальное решение.
ЦитироватьНапишите у кого работает такая конструкция OnInitialization
Проверили на 4 разных OPC-серверах, всё работает как нужно. Но этот тест нельзя назвать "чистым" т.к. мы не использовали реальных контроллеров из-за чего OPC-серверы запускаются быстро и проблем не возникает.
Можно ли расширить интервал времени для трендов до 24ч? Сейчас максимальный интервал 1 час. При изготовлении изделий из бетона процессы выдержки длятся около суток. И за 1 час можно ничего не увидеть.
Свойство тренда Interval только для чтения. А можно ли его сделать изменяемым? Тогда можно будет масштабировать тренд динамически. Например, для того чтобы рассмотреть более детально интересующий участок. Причем не только, то что поместилось в отображаемом интервале, но и переместиться по шкале времени графика назад. Правда тогда необходимо реализовать возможность перемещаться по графику в истории.
И пофантазирую) А можно ли сделать передвижной маркер, который можно таскать мышкой или двигать стрелками по графику и показывающий значение абсциссы и ординаты в данной точке? Такая возможность есть на цифровых осциллах, да и в скадах я такое видел.
Для такой задачи компонент "Временные тренды" не подходит, т.к. он предназначен для коротких трендов и хранит их в оперативной памяти клиента (поэтому когда Вы перезапускаете клиент эти тренды начинаются записываться с нуля). По этой же причине их нельзя перематывать, т.к. точки за пределами этих трендов автоматически удаляются, иначе это приведет к тому, что оперативной памяти просто не хватит в какой-то момент. По этим причинам нужно использовать полноценные Тренды (из меню "Проект - Тренды"), которые сохраняются в БД (на жесткий диск компьютера), имеют шкалу времени, не теряются после перезапусков, имеют серьезные оптимизации в отрисовке трендов с большим количеством точек и могут перематываться подгружаясь из БД. Как мы поняли они не подходят Вам, т.к. нужно видеть тренды прямо на странице (без перехода в отдельное меню Трендов) и поэтому лучшим решением будет добавление в Simple-Scada 2 нового компонента, который будет работать точно так же, но который можно будет разместить на странице. Предложение о создании такого компонента уже озвучивалось на этом форуме и мы постараемся внедрить его, но сначала нужно решить несколько первоочередных задач.
ЦитироватьИ пофантазирую) А можно ли сделать передвижной маркер, который можно таскать мышкой или двигать стрелками по графику и показывающий значение абсциссы и ординаты в данной точке? Такая возможность есть на цифровых осциллах, да и в скадах я такое видел
А что он показывает когда тренд не пересекатся с линией заданной маркером?
Пусть (0;0) показывает. Но вообще маркер "прилипает" к тренду и двигается по нему. А выходы за пределы тренда можно и ограничить. Он нужен для того, чтобы точно определить значение в точке тренда. Визуально этого не сделаешь.
А можно выставить линии, и посмотреть есть ли пересечения этих линий с трендом и значения в них. Тоже полезно, но это другое.
Сейчас в трендах мышкой можно передвигать вертикальную линию, проецируемую на шкалу времени. И вверху в окошке отображается значение времени. Можно сделать так, показывать под значением времени значение тренда в этой временной точке. Например, два тренда - тренд 1 зеленый, тренд 2 красный. Отображаем время, под ним черточка зеленая и значение тренда, под ним красная черточка и значение тренда. А если нет пересечений с текущими трендами, то просто время как сейчас.
Нда, а ведь у вас уже показывается значение - просто снизу, а и не заметил. Так что просил сделать, то что уже сделано. Виноват :-[
И кстати, эта временная линия не совсем корректно отображает время, если тренд пишется, т.е. шкала внизу и тренды движутся. Я зажал лкм, время показывается. Шкала сдвинулась, время в окошке не обновляется.Отпустил лкм, снова нажал - то же время, хотя шкала уже ушла. Если нажать в другом месте все ок.
Полезным была бы возможность добавлять дополнительные линии-уровни на тренд. Например, мне нужно регулировать температуру в пределах 70 и 90 градусов. Я бы нарисовал две вспомогательные линии, они бы облегчили восприятие графика. Конечно, можно создать вирт. переменную, присвоить значение-константу и отрисовать в виде тренда. Но это все пойдет в БД.
Так же иногда, для наглядности нужно раскрасить площадь ограничиваемую трендом и осью времени.
Я приложил график, он конечно не идеал, но как по мне нагляден. Красным отображается температура в отсеке. Зеленым - состояние выхода ПИД-регулятора управляющим подачей пара и ,соответственно, закрашенная площадь показывает подачу пара. Голубым - вспомогательные линии - диапазон регулирования.
ЦитироватьИ кстати, эта временная линия не совсем корректно отображает время, если тренд пишется
Спасибо, исправляем.
ЦитироватьПолезным была бы возможность добавлять дополнительные линии-уровни на тренд
Сейчас можно быстро сделать отображение "нормальной зоны", ведь для каждой переменной задаются аварийные и предупредительные границы. При этом, если оператор будет менять их, они и в трендах будут меняться и не придется их двигать. А в будущем и доп. уровни можно добавить.
ЦитироватьТак же иногда, для наглядности нужно раскрасить площадь ограничиваемую трендом и осью времени
А с заполнением площади пока есть некоторые трудности в плане отрисовки заполнения.
Доброе утро.
Есть ли принципиальные отличия в настройке DCOM для подключения к удаленному OPC-серверу относительно версий 1.3.х ?
В версиях 1.3.х все работает.
Здравствуйте!
Никакой разницы в настройках DCOM нет. Во второй версии Вы в редакторе переменных нажимаете кнопку "Импортировать с OPC-сервера" и в поле "Имя компьютера" вводите IP-адрес удаленного ПК? Какая появляется ошибка?
Цитата: Simple_Scada от 04 мая 2016, 13:32:34Здравствуйте!
Никакой разницы в настройках DCOM нет. Во второй версии Вы в редакторе переменных нажимаете кнопку "Импортировать с OPC-сервера" и в поле "Имя компьютера" вводите IP-адрес удаленного ПК? Какая появляется ошибка?
Да, именно так и делаю.
Ошибка: "Убедитесь, что имя целевого компьютера введено верно. Если это удаленный компьютер - настройте DCOM."
Убедитесь, что ничего не блокирует работу (брендмауэр, файервол, антивиус) на удаленном ПК и на том откуда Вы пытаетесь подключиться. Неоднократно тестировали подключение к удаленным OPC-серверам - при правильных настройках DCOM все работает нормально.
Подскажите по поводу минимальной конфигурации ПК для SS2.
На сайте это процессор Intel Atom D2550 и интегрированная видеокарта Intel GMA 3650.
Вы тестировали работу на такой системе? Достаточно ли комфортно работать с такой системой, заметны ли подвисания? Может у кого-то из пользователей есть опыт работы с такой конфигурацией.
Конечно тестировали! Пять промышленных ПК с такой конфигурацией(единственое отличие 2Гб ОЗУ) сейчас работают на одном из объектов в качестве клиентов - проект на 3500 тегов. Работать комфортно, подвисаний нет. При просмотре трендов за большие интервалы времени (1-2 месяца) разница со стационарными ПК почти не заметна. Нагрузка на процессор 9-11%. При работе в качестве сервера появится небольшая дополнительная нагрузка, т.к добавится работа с БД.
Да, толковых хотелок вам накидали лет на пять работы ;=)
Здорово, что v2 уже живет на MySQL и в плане стоит web-клиент.
Тем не менее, мои 5 копеек по функционалу, на перспективу:
1. Коннектор к 1С. Лучше сразу кросс-платформенный. Технологию можно повыбирать здесь (http://v8.1c.ru/overview/Term_000000581.htm). Понятно, что одни вы это вряд ли сделаете, надо привлекать 1С-ника. Уже реализованный вариант (https://www.youtube.com/watch?v=hoFA9M9Hdhw&feature=youtu.be) - делал Nirax для ИнСАТ'а, на базе web-сервиса 1С и SOAP-технологии. Недостаток - коннектор однонаправленный, т.е. асинхронно в 1С что-то отдать можно, а вот обратно нет. Хотя при желании вопрос тоже решается, организацией симметричного web-сервиса на стороне SCADA.
2. Поддерживаю ранее изложенное по встроенному Modbus RTU и TCP.
ASCII - не факт, что нужен, если только для полноты картины.
3. Кросс-платформенность. Тот факт, что продукт сверхлегкий, не использует "тяжелые" технологии Microsoft и работает на OpenGL, создает все предпосылки. А то, что сейчас творится с MS Windows, делает задачу особенно актуальной.
4. Исходя из задачи 3 и общемирового тренда - поддержка OPC UA. Без этого о кросс-платформенности говорить бессмысленно, в Linux нет COM-технологии, OPC DA работать не будет. Разве что под Wine, но это костыли.
5. В дальней перспективе - графические отчеты, например на TeeChart. Но это не предмет первой необходимости - при наличии экспорта в Excel дальше дело техники. Да и механизм отчетов к MySQL можно прикрутить самостоятельно, на любой вкус и кошелек - те же TeeChart, Stimulsoft, CrystalReports, DreamReports etc.
По лицензированию:
1. Надо ли ограничивать количество OPC-серверов, напр., в Standart, одним OPC-сервером?
Есть много задач с небольшим количеством параметров, но большим зоопарком в плане источников данных.
2. То же по скриптам.
3. Урезанная по скриптам демо-версия, как мне кажется, очень сильно ограничит продвижение продукта. Получается, что без оплаты нельзя проверить значительную часть функционала. Самый удобный вариант - полнофункциональная среда исполнения, ограниченная по времени, напр., одним часом - по этому варианту сделаны демо iFix и MasterSCADA. Можно также ограничить её по количеству параметров, 64 тэга для изучения и тестирования вполне достаточно.
Дмитрий Анисимов, спасибо за список пожеланий, постараемся идти и в этом направлении. Хотелки пользователей мы все же рассчитываем решить значительно быстрее, чем за пять лет, т.к. большая часть это все-таки мелкие изменения. Из больших изменений это кроссплатформенность, встроенная поддержка Modbus TCP/RTU, Web-клиент, система отчетов и поддержка OPC UA. Вот с OPC UA и Modbus TCP/RTU проблем нет, т.к. для этого есть хорошие соответствующие компоненты и добавить их будет просто. Как пойдет дело с другими задачами сейчас трудно предсказать, но конечно это потребует времени.
С предложениями по лицензированию согласны, как раз обсуждали это недавно. Попробуем найти решение, чтобы демо-версия была все таки полноценной.
Возможно ли в будущем добавить к фигуре "Прямоугольник" свойство радиус скругления, по значению которого скруглялись бы его углы?
Также, хотелось бы иметь возможность рисовать наклонную линию (сейчас инструмент "Линия" рисует отрезки только под прямым углом).
При выборе цвета в Палитре цветов возможно ли добавить одну/две колонки под пользовательские наиболее часто используемые цвета, которые можно было бы один раз настроить и использовать во всех проектах?
Можно ли к объекту "Заслонка" добавить схожий элемент "Обратный клапан"? Рисуется аналогично заслонке только один из треугольников закрашен в черный цвет.
Также, не помешало бы добавить фигуру треугольник.
ЦитироватьВозможно ли в будущем добавить к фигуре "Прямоугольник" свойство радиус скругления, по значению которого скруглялись бы его углы?
да, но менять прозрачность такому прямоугольнику будет невозможно. С поддержкой прозрачности тоже можно сделать, но в этом случае скругление будет фиксированным, т.е. число вариантов скругления будет конечным. Например 4, 8, 16, 24, 32, 48 px. Подошел бы Вам такой вариант?
ЦитироватьТакже, хотелось бы иметь возможность рисовать наклонную линию (сейчас инструмент "Линия" рисует отрезки только под прямым углом)
Эта задача пока отложена на будущее.
Цитироватьколонки под пользовательские наиболее часто используемые цвета, которые можно было бы один раз настроить и использовать во всех проектах?
действительно хорошее предложение. Сделаем. Но не в ближайшем обновлении, т.к. на ближайшие обновления запланировано добавление других возможностей.
ЦитироватьРисуется аналогично заслонке только один из треугольников закрашен в черный цвет
Сделаем.
Добрый день на ближайшие дни собираемся приобрести Simple Scada v2. Сейчас разрабатываю проект в версии демо на 64 тега. Когда работал еще без подключения базы данных sql данные считывались отлично. Когда дошел до работы со сообщениями и трендами установил и подключил sql по руководству simple scada. Но заметил что данные через какое то время где то от получаса или часа перестают отображаться, вместо них NAN. Я понимаю что это что то с sql но не пойму где копать. лог сервера прилагаю и скрин
Здравствуйте!
Значения, которые отображаются в полях никак не зависят от подключения к БД и СУБД. Сейчас мы сделали несколько тестов и выявили причину ошибки. Ошибка связана с тем, что какая-то из программ на компьютере меняет десятичный разделитель (это может делать и сама ОС, например когда Вы сменяете пользователя в Windows) и скада не может правильно преобразовать вещественное значение. Она будет исправлена в ближайшем обновлении, которое выйдет уже завтра вечером. Если обновление не решит проблему, то причину нужно искать в OPC-сервере.
Цитата: Simple-Scada от 14 мая 2016, 11:51:38С поддержкой прозрачности тоже можно сделать, но в этом случае скругление будет фиксированным, т.е. число вариантов скругления будет конечным. Например 4, 8, 16, 24, 32, 48 px.
Да, такой вариант был бы наиболее оптимальным.
но какая то связь есть, на ночь удалил sql полностью, всю ночь и день данные не пропадали, сейчас вечером снова установил на сервере sql запустил проект и через минут 15 где то опять в значениях NAN, при этом тревожные сообщения о выходе за границу переменной у меня приходили, т.е. переменные все уже показывали NAN, оператор упустил давление в обратном контуре котельной, но сообщение о предупреждении в скаде о выходе за мин. границу у меня высветилось с значением 0,25 МПа. Жду обновления, еще хочу попробовать поставить другую СУБД, посмотрим что получиться. По серверу все отлично я не увидел что то плохого скрины приложил
Вполне возможно, что сама СУБД, или какие-то утилиты из её комплекта меняют разделитель. Мы сталкивались с подобным поведением при использовании TeamViewer, когда при организации связи он менял разделитель.
Обновление демо-версии в ближайший час сделаем.
beloleg86, демо-версию обновили. Можете скачать её с главной страницы сайта, открыть свой проект в Редакторе и сразу сохранить его, чтобы он перевёлся на новую версию.
Спасибо вы правы, вместо точки в вещественных числах при входе через TeamViewer на сервер скады была подстановка под запятую, сейчас зашел на объект и увидел это на мнемосхеме. спасибо
Уважаемые здравствуйте!
Ребята небольшая просьба.
Можно ли сделать выделение тегов в меню переменных чуть более явным, например как в импорте тегов из OPC (ну или какой нибудь заначек сбоку от строки добавить).
Просто не везде стоят мониторы с хорошей цвето передачей.(в принципе даже на моем AOC затруднительно разглядеть какой именно тег выделен)
Конечно, сделаем.
deldemo, обновили (http://simple-scada.com/forum/index.php?topic=145.msg1864#msg1864), теперь можно передавать параметр цвета для "системных" окон, как Вы и просили ранее. Также выделение переменных сделано более явным.
Администратор.Огромное спасибо!!!!!!!!!
P.S
А подскажите пожалуйста как задать значение цвета? а то у меня теперь скрипты не компелируются которые с системными сообщениями.
Вот так:
ShowMessageAll('Заголовок', 'Текст', clRed);
или
ShowMessageAll('Заголовок', 'Текст', $FF0000);
или
ShowMessageAll('Заголовок', 'Текст', RGB(255, 0, 0));
Что-то не выходит у меня сменить цвет сообщения. \Может как то не так пишу скрипт?
begin
if PLC1_TSM_emg_stop.ValueAsInt = 0 then
begin
ShowMessageAll('ВНИМАНИЕ!','Нажат АВАРИЙНЫЙ СТОП на TSM.' +
' Линия полностью остановлена.',RGB(255, 0, 0));
shEMG_zavod.Color := RGB(128,0,0);
shEMG_zavod.Alpha := 255;
bt_table_emg_stop.States[0].Color:= RGB(128,0,0);
end
else
begin
shEMG_zavod.Color := RGB(0,0,0);
shEMG_zavod.Alpha := 75;
bt_table_emg_stop.States[0].Color:= RGB(94,94,94);
end;
end.
deldemo, мы по ошибке обновили демо-версию не на самую последнюю. Сейчас загрузили правильную.
Здравствуйте!!!
Спасибо огромное за новое обновление!
У меня есть небольшая просьба. Можно ли как то сделать чтобы выделенный элемент не моргал постоянно.
А то получается что это ,как бы, элемент на который стоит обратить внимание.
А в остальном очень много полезных функций.
Еще раз спасибо.
deldemo, сделаем.
Подскажите пожалуйста, могу ли я сразу перейти не в меню трендов, а сразу в группу, например в меню трендах у меня есть несколько групп расход, давления и температуры. По скрипту я попадаю в меню трендов, а потом только выбираю нужную группу, а можно сделать так что бы можно было попасть в нужную группу сразу
Если Вам нужно перейти в какую-то группу со страницы/подстраницы, то используйте свойство "Группа трендов" (http://simple-scada.com/manual?section=page-panel). Если нужно перейти в группу именно скриптом, то сейчас так сделать не получится. Но мы можем расширить функции скрипта GoToTrends, чтобы можно было задавать группу.
Возможно ли добавить функции-скрипты для работы с БД. Например, возвращающие выборку из БД переменной X с ... по ... Y записей начиная с Z. А также возвращающие количество записей в этом интервале.
Да, возможно добавить такие функции. Но результат будет получен не сразу, а через время (т.е. сначала запрос отправится к БД, затем уйдет время на выполнение и возвратится результат). Можно добавить новый "системный" скрипт, который будет вызываться по выполнению запроса и будет хранить результат выполнения этого запроса. В таком скрипте можно будет работать с полученным массивом данных.
А какую именно задачу Вы хотите решить? Что предполагается делать с полученным массивом значений?
Отчетность. Экспорт в Excel это хорошо. Но во-первых хотелось бы сначала увидеть, что экспортируешь. Да и просто удобно посмотреть, что было сделано за прошлую смену, например. Кол-во замесов, расход материалов. Работа с файлами мне не кажется удобной, а вот работа напрямую с БД была бы очень удобна. Ведь там богатые возможности фильтрации и выборки. Я бы сделал окно с возможность выбора периода просмотра. Элемента таблица пока нет, но можно и с ячейками сделать вывод полученных записей. Для меня сейчас камень преткновения отчетность. Управляющий функционал давно готов, еще на этапе бета-тестирования. А вот с отчетностью беда. Благо, меня никто не торопит, проект любительский)
Добрый день, можно сделать что бы временные тренды обновлялись не слева на право а с права на лево как в постоянных трендах, что бы не создавать путаницу для операторов
TeNQ, для отчетности обязательно что-нибудь придумаем.
Цитироватьможно сделать что бы временные тренды обновлялись не слева на право а с права на лево как в постоянных трендах, что бы не создавать путаницу для операторов
Можно. Добавим такую возможность.
Здравствуйте ув. разработчики, очень (очень очень) нужно что бы кнопка в режиме без фиксации запрашивала подтверждение, оператор уже несколько раз закрывал электрокраны.
Здравствуйте!
Кнопка без фиксации записывает "значение 2" в переменную пока кнопка нажата и удерживается и возвращает "значение 1", когда Вы отпускаете кнопку. Если сюда добавить окно подтверждения, то кнопка просто никогда не будет удерживаться нажатой и смысл кнопки без фиксации теряется. Возникает вопрос: почему Вы используете именно кнопку без фиксации? Чем не подходит кнопка с фиксацией? Опишите пожалуйста задачу и принцип работы подробнее, возможно мы найдем решение (либо добавим новый тип кнопки).
Наладчик который приезжал и программировал контроллер сделал управление электроприводами таким образом, При использовании кнопки без фиксации (работает все правильно) оператор записывает при нажатии на кнопку открытие крана "импульсом" 1, кран у нас открывается, ну и при закрытии на кнопку закрытия крана записывает "импульсом" 1, кнопка стоп работает таким же образом. При использовании Фиксированной кнопки, при нажатии на открыть сигнал она фиксируется и идет постоянно 1, и видно приоритетом управления считается первый сигнал, остальные сигналы не проходят, вернее проходят в контроллер но не обрабатывается программой, и чтоб закрыть надо отжать кнопку, что оператор иногда в рабочей ситуации забывает отжать.
Если бы был бы у меня доступ в контроллер я бы изменил немного программу управления но у меня его нет только opc сервер с тегами
И еще вопросик, в simple scada первой версии я копкой мог считывать состояние переменной и кнопка менялась при чтении, возможно ли реализовать такое в simle scada 2, я пробовал но у меня не получилось, кнопка не считывает состояние, или тут это не реализовано?
beloleg86, сделаем, чтобы у кнопки без фиксации подтверждение работало таким образом. Оператор нажимает кнопку, появляется окно подтверждения и оператор подтверждает действие. После этого скада записывает в переменную кнопки значение 1 и затем сразу возвращается в него значение 0.
Цитироватьпервой версии я копкой мог считывать состояние переменной и кнопка менялась при чтении, возможно ли реализовать такое в simle scada 2
Сейчас так и работает, кнопка сама меняет свои состояния, в зависимости от значения тега.
Попробовал не получилось, сделал еще пробный проект с виртуальными переменными и не получилось не считывает кнопка
Откройте Демо-проект - Вкладка "Инструменты", седьмой пример - посмотрите как сделано там. Запустите - посмотрите как это работает из клиента. У Вас у кнопки несколько состояний?
да у меня три состояния, тип word, 0-резерв, 1- работа, 2 - остановлен,
Создал чистый проект там все отлично работает сейчас буду разбираться в своем проекте почему не работает
Пришлите проект (только папку с проектом из папки Projects) на support@simple-scada.com. Выделите рамкой кнопку, которую не получается сделать.
Сделал по новому в проекте кнопки и все заново прописал и кнопка заработала как надо, возможно я что то пропустил, извините за беспокойство :)
Подскажите!
как перенести группу сообщений из главной в подгруппу..
Сейчас в редакторе сообщений можно выделять только по одному сообщению. В следующем обновлении уже будет доступна работа с группами сообщений, поэтому лучше дождаться обновления.
спасибо!
Доброе время суток, в процессе разработки возникли некоторые вопросы, в частности -
1) Создал окно в котором находилось текстовое поле, накатал для него скрипт и в его свойствах по запарке прикрепил ему окно, убрать это окно простым способом не получилось; создал левое, переадресовал на него а потом его удалил.
2) При изменении размера окна значения на панели свойств не меняются динамически как это происходит у например кнопки, чуть не удобно ))
3) Можно ли сделать что-бы в редакторе переменных ( в группах да и не только), была возможность менять позицию переменной - просто перемещать выделенную в верх или в низ по списку, удобно для структурировании и наглядности
4) можно ли что-бы скрипты тоже можно было раскладывать по папкам, ато я миллион накатал аж теряюсь ))))))
5) В редакторе хотелось что-бы запоминало размер сетки поля, ато каждый раз заново выставлять )
Вот пока вроде у меня и все, если что я не понял сильно не бейте, еще пока не волшебник, только учусь.
Здравствуйте!
1. В самой верхней части списка окон Вы можете найти строку "Не выбрано", чтобы убрать окно с объекта.
2, 3, 4, 5. Исправим в будущем.
Здравствуйте, подскажите поправить состоянии Авария на заслонке можно, сейчас она работает так, есть состояние заслонки авария, когда переменная равна 1 то заслонка будет отображена в состоянии авария, но когда на электроприводе устранили аварию. состояние заслонки остается в аварийном состоянии при 0. Хотелось бы что бы уходила в неаварийное состояние. Я решил эту проблему скриптом убирая состояние аварии заслонки
beloleg86, спасибо, что сообщили об этом недочете. Сегодня отправим обновленную версию.
UPD: отправили обновление.
Сейчас при назначении на какую-либо кнопку без фиксации открытие отдельного окна или тренда - после закрытия этого окна она продолжает моргать.
Можно это как-нибудь поправить?
А также хотелось ввести функцию кроме моргания цветом - моргание рамкой вокруг кнопки по определенным событиям, как сейчас моргающая рамка вокруг кнопки.
Если Вы говорите о голубой рамке, которая появляется на объектах, которым передан фокус, то в обновлении Simple-Scada 2.0.1 (http://simple-scada.com/forum/index.php?topic=178.msg2022#msg2022) этот вопрос решен.
Да, теперь все отлично :)
еще вопрос - при вызове окна из уже открытого окна - оно открывается какбы за ним, настроек слоёв для окон не нашел - как это можно поправить?
stratixx, конечно, исправим.
Подскажите пожалуйста, при удалении проекта стандартным способом (через кнопку удаления в Simple Editor) что происходит с данными от этого проекта? Созданные данные в базе данных тоже удаляются или они потом просто переписываются поверх старых?
bars, нет, при необходимости Вы должны удалить БД самостоятельно. Проще всего сделать это при помощи MySQL Workbench (http://simple-scada.com/manual?section=mysql-workbench). После запуска Вы увидите список БД в левой части окна. Кликните правой кнопкой мыши по БД и выберите пункт "Drop Schema" и подтвердите действие в окне подтверждения, нажав "Drop Now".
Предлагаю на форуме сделать отдельную ветку с темами для готовых шаблонов кода по скриптам.
Думаю будет очень полезно для начинающих. (сейчас есть только 1 тема вопросов)
Например.
Сигнализации аварийных параметров:
Скрыть/Показать элемент
begin
if Sender is TM_Object then
case TM_Object(Sender).ValueAsInt of
0 : Sender.Visible := False;
1 : Sender.Visible := True;
end;
end.
Изменить цвет элемента
begin
if Sender is TM_Object then
case TM_Object(Sender).ValueAsInt of
0 : Sender.Color := clGray;
1 : Sender.Color := clLime;
end;
end.
ЦитироватьПредлагаю на форуме сделать отдельную ветку с темами для готовых шаблонов кода по скриптам.
Сделаем такую тему и будем переносить в неё полезные примеры скриптов из темы "Вопросы по скриптам в Simple-Scada 2 (http://simple-scada.com/forum/index.php?topic=145.0)", чтобы она оставалась "чистой".
Планируется ли возможность просмотра картинки с IP-камеры в реальном времени? Насколько сложна реализация?
ЦитироватьПланируется ли возможность просмотра картинки с IP-камеры в реальном времени? Насколько сложна реализация?
Пока не планируется. Возможно, только не в ближайшем будущем. Реализация сложна, т.к. видео нужно встроить в DirectX/OpenGL контекст, но выкрутиться можно.
Доброго времени суток. Спасибо за программу. Вопрос такой,вы хотели реализовать стрелочные приборы во второй версии и сделать выход на второй монитор. С уваженим к вам Владимир
Vlad580, оба пункта по-прежнему планируются. Но прежде, скорее всего, добавим более востребованные функции, например работу с отчетами.
добрый день. у меня в проекте много страниц и на каждой странице расположены разные работающие механизмы с которых считываются параметры. Можно сделать так ,чтобы если случилась авария или предупреждение на какой нибудь странице,то эта бы страница с названием помела бы цвет и начала бы мигать,чтоб было видно на какой именно странице произошла авария и быстро перейти на эту страницу. С уважением Владимир
Vlad580, здравствуйте.
Правильнее было бы, если бы такая возможность была на уровне скады, но сейчас её нет. Возможно решить задачу используя скрипты, но это не самое лучшее решение, ведь придется постоянно проверять значения множества различных переменных (которые касаются аварийных сообщений) и исходя из из состояния показывать соответствующую иконку на странице.
Можно ли ввести процедуру принудительного обновления значения поля? Я хотел бы запустить событие DataOnChange поля при не изменившемся значении. Мне это нужно для обновления через это событие связанных с данным полем значений других полей.
Например, что-то вроде Field22.Update();
TeNQ, сделаем события доступными в скриптах, чтобы можно было вызывать не только OnDataChange, но и другие события для объектов.
Здравствуйте. Когда планируется следующие обновление? Хотя бы примерно. Особенно интересуют пользовательские цветовые схемы. Добавление своих цветов, для большего эффекта ) :)
iexplorer93, помимо добавления новых возможностей в скаду занимаемся также созданием Demo-версии с ограничением только по времени, это привело к затягиванию очередного обновления. Чтобы и дальше не тянуть этот процесс - на неделе постараемся опубликовать внеочередное мелкое обновление с функциями выбора пользовательских цветовых схем + ещё несколько мелких исправлений.
Планируются ли файловые архивы трендов, сообщений и т.д? Как в СС 1й версии. Это повысило бы гибкость скады в целом.
Vladimir, нет, мы не планируем этого, т.к. файловые архивы обязательно будут более медленными, чем работа через БД. Также они будут во много раз менее функциональными, т.к. не позволят пользователю делать собственные выборки с различными зависимостями, как сейчас это возможно при работе с БД. Сейчас Simple-Scada 2 работает с СУБД MySQL, это бесплатная СУБД и пользователь не должен изучать её, достаточно проделать следующие простейшие действия:
- скачать и установить СУБД MySQL. Запомнить пароль, который Вы задали во время установки;
- открыть свой проект в Редакторе Simple-Scada и перейти в меню "Проект - Настройки - База данных";
- ввести имя БД и пароль заданный во время установки;
Это очень просто. Скада сама создаст БД и нужные ей таблицы.
Здравствуйте!
В SCADA-системе требуется реализовать вызов всплывающих окон при нажатии на изображения исполнительных механизмов (ИМ). Окна должны содержать кнопки управления ИМ и диагностическую информацию. Размер проекта достаточно велик (около 5000 OPC-тегов), но в основном объекты автоматизации однотипны.
Подскажите пожалуйста, возможно ли в Simple-Scada динамически "перепривязывать" переменные у объектов (например посредством указателей на переменные)? Очень не хотелось бы создавать отдельное окно для каждого ИМ.
P.S. Так же возможно потребуется реализовать вызов тренда при нажатии на поле показаний датчика, а таких полей будет как минимум пару сотен.
Здравствуйте.
Подмена переменных у объектов возможна, эта возможность появилась ещё в версии 2.0.1. Для этого нужно использовать свойство Variable например:
begin
// связываем поле Field1 с переменной MyVariable
Field1.Variable := MyVariable;
end.
Также в некоторых ситуациях (если переменные имеют подобные имена) может пригодиться функция GetVariableByName (описание можно найти здесь (http://simple-scada.com/scripts_manual?section=global_procedure)), которая возвращает переменную по имени, например:
var
aVar: TM_Variable;
begin
// Ищем переменную с именем "MyVariable" и результат поиска записываем в aVar
aVar := GetVariableByName('MyVariable');
if Assigned(aVar) then // если переменная с таким именем найдена
Field1.Variable := aVar; // связываем поле Field1 с найденной переменной
end;
Вопрос в том, как применить эти возможности для оптимизации Вашей задачи. Здесь можно предложить следующее решение. При создании переменных для механизмов Вы именуете их в одном стиле, например:
- Переменные для механизма 1: Var1_SP, Var1_PV, Var1_MAN;
- Переменные для механизма 2: Var2_SP, Var2_PV, Var2_MAN;
У изображений исполнительных механизмов можно использовать свойство Тег как номер механизма (или группы переменных). У одного механизма ставим Тег = 1, у другого Тег = 2. Затем пишем
универсальный скрипт по клику на исполнительный механизм:
var
aVar: TM_Variable;
aName: string;
begin
aName := 'Var' + IntToStr(Sender.Tag); // получаем приставку к имени переменной в зависимости от Тега объекта (например Var1)
aVar := GetVariableByName(aName + '_SP'); // Получаем SP переменную
FieldSP.Variable := aVar; // связываем поле FieldSP с переменной VarX_SP
aVar := GetVariableByName(aName + '_PV'); // Получаем PV переменную
FieldPV.Variable := aVar; // связываем поле FieldPV с переменной VarX_PV
aVar := GetVariableByName(aName + '_MAN'); // Получаем MAN переменную
FieldMAN.Variable := aVar; // связываем поле FieldMAN с переменной VarX_MAN
end.
Теперь можно создать множество исполнительных механизмов и у каждого выставить свой Тег (соответствующий группе переменных). Также у каждого такого механизма нужно выставить универсальный скрипт описанный выше на событие OnClick. В результате мы получаем при клике по механизму окно в котором видим переменные итого механизма. При этом нам не приходится писать отдельный скрипт для каждого механизма.
ЦитироватьP.S. Так же возможно потребуется реализовать вызов тренда при нажатии на поле показаний датчика, а таких полей будет как минимум пару сотен.
Вы говорите о временном тренде? Или постоянный тренд (который берется из БД)?
Спасибо за подробное разъяснение!
Переменные в ПЛК именуются примерно следующим образом: наименование аппарата + наименование ИМ или датчика + наименование сигнала или команды (например A202_IM2_cmdON, A202_IM2_stsOFF и т.д.). Выйти из данной ситуации можно было бы несколькими способами:
1) Получать из свойства Tag часть строки, но свойство Tag имеет тип Integer;
2) Через свойство Tag передавать окну ID переменной, но ID является свойством только для записи (так утверждает компилятор скриптов);
3) Написать функцию, возвращающую имя переменной по ее идентификатору. В теле функции описать соответствие идентификаторов и имен переменных. Вызывать функцию при переопределении переменных объекта. Но в Simpe-Scada нет возможности создавать функции.
ЦитироватьВы говорите о временном тренде? Или постоянный тренд (который берется из БД)?
Речь идет о графическом объекте "Временной тренд".
Т.е. вся проблема в том, что окну нужно передавать два параметра: "наименование аппарата + наименование ИМ или датчика"?
Цитировать2) Через свойство Tag передавать окну ID переменной, но ID является свойством только для записи (так утверждает компилятор скриптов);
А зачем вообще искать переменную по ID, если каждый объект хранит ссылку на саму переменную. Например, если исполнительный механизм представляет собой изображение, то можно выбрать у него переменную и затем передавать её куда угодно как Image1.Variable или для универсального скрипта как TM_Object(Sender).Variable.
ЦитироватьРечь идет о графическом объекте "Временной тренд".
Мы можем сделать так, чтобы у Временных трендов тоже можно было подменять переменные. Но при этом запись данных в тренд будет стартовать заново (т.к. временные тренды хранятся в оперативной памяти). Например Вы нажимаете на датчик и появляется окно с временными трендами, но они пусты и только начали записываться. Устроит ли вас такой вариант?
ЦитироватьТ.е. вся проблема в том, что окну нужно передавать два параметра: "наименование аппарата + наименование ИМ или датчика"?
Получается, что так.
ЦитироватьА зачем вообще искать переменную по ID, если каждый объект хранит ссылку на саму переменную.
Да, действительно, не сообразил. Скриптом вырезать необходимую часть имени переданной переменной и далее уже формировать имена других переменных.
ЦитироватьНо при этом запись данных в тренд будет стартовать заново (т.к. временные тренды хранятся в оперативной памяти).
Данная особенность работы временного тренда была реализована исходя из соображений экономии ресурсов ПК?
ЦитироватьСкриптом вырезать необходимую часть имени переданной переменной и далее уже формировать имена других переменных.
Да, можно связать каждый механизм со своей переменной, а затем по клику брать переменную и из её имени доставать нужную приставку. Затем на основе этой приставки получать остальные переменные и подменять их в окне.
ЦитироватьДанная особенность работы временного тренда была реализована исходя из соображений экономии ресурсов ПК?
Временные тренды это просто компонент, который пишет тренды средствами Клиента в оперативную память этого клиента, он не сохраняет их в постоянную память и соответственно не требует установки БД и соответственно не требует времени на загрузку из БД. Если таких компонентов создать много, то проблем не будет (хотя и потребует определенный объем оперативной памяти) и каждый будет писать свои данные с момента запуска проекта. Но если у них подменять переменные, то предыдущие накопленные данные придется удалить из оперативной памяти и писать заново для новых трендов.
А почему был выбран данный механизм работы временного тренда, без обращения к БД?
Потому что мы хотели создать компонент который не будет нагружать сервер, СУБД, жесткий диск компьютера и сеть. Поэтому он пишет данные средствами клиента, не требует подключения к серверу и не использует постоянную память. Для просмотра полноценных "постоянных" трендов предусмотрено меню просмотра трендов в котором есть больше возможностей: тренды можно перематывать, задавать разные интервалы времени, скрыть/показать, выбирать разные группы трендов, разбивать их на разделы, устанавливать закладки, распечатать и т.д.
В нашем случае временной тренд в таком исполнении использовать к сожалению не получится (представляю, как операторам "понравится", что тренд каждый раз обнуляется).
Еще раз спасибо за подробное разъяснение про динамическую подстановку переменных, но скорее всего такой способ тоже не устроит наших разработчиков. Когда речь идет о опасном ядерном производстве, то неявная привязка переменных к кнопкам управления исполнительными механизмами может очень дорого обойтись.
Раз уж пишу в теме "Вопросы и предложения", то хотелось бы предложить реализовать в Simple-Scada создание шаблонов. Допустим, рядом с пунктом "Окна" добавить пункт "Шаблон окна", а к графическим элементам добавить "Графический шаблон", ну или что-то похожее на это. При редактировании "шаблона окна" или "графического шаблона" использовать локальные переменные, которые видны только в момент редактирования. А при добавлении "графического шаблона" или вызова "шаблона окна" в свойствах объекта указывать какие переменные из БД будут использоваться вместо локальных переменных.
Это просто предложение. Возможно многие будут считать, что скада станет уже совсем не "симпл", но когда разрабатываются и сопровождаются большие проекты и нет подобных инструментов, вот тогда разработчику по-настоящему становится не "симпл".
Тоже стал фанатом Simpe-Scada, хотелось бы к моменту модернизации предъявить заказчику только положительные стороны перехода на вашу скаду.
Мы планируем добавить систему шаблонов в Simple-Scada 2, причем не только шаблонов окна, но и объектов и сообщений. Уже продумано как можно сделать это максимально минималистичным способом не нагружая интерфейс. Но когда именно удастся реализовать - трудно сказать, т.к. сейчас приходится решать более популярные задачи.
Очень здорово! Судя по тому, как удобно и грамотно устроен интерфейс в Simple-Scada на данный момент, думаю реализация шаблонов нисколько не усложнит процесс создание SCADA-проектов.
Что касается временных трендов, вы решили остановиться на идее отображать оперативные данные?
И еще возникла мысль, почему бы в меню выбора переменной для объекта не сделать поле настройки фильтра имен переменных, как сделано в БД (опять таки, актуально для больших проектов)?
ЦитироватьЧто касается временных трендов, вы решили остановиться на идее отображать оперативные данные?
Именно "Временные тренды" останутся такими, как сейчас, т.е. максимально упрощенные, без зависимости от БД и сервера. На будущее возможно добавим компонент "Постоянные тренды" которые будут читать данные из БД на сервере + можно будет включить перемотку по времени и смену интервалов.
ЦитироватьИ еще возникла мысль, почему бы в меню выбора переменной для объекта не сделать поле настройки фильтра имен переменных, как сделано в БД (опять таки, актуально для больших проектов)?
Фильтры постепенно добавим не только для переменных, но и для всех списков.
Планируется ли возможность выбора размера окна для каждого клиента? (options.exe)
Может пора создать тему "часто задаваемые вопросы"?) уверен таких не мало.
Планируется ли возможность выбора размера окна для каждого клиента? (options.exe)Сейчас ведь так и есть. В Options.exe, вкладка Simple-Client, список "Размер окна"
ЦитироватьМожет пора создать тему "часто задаваемые вопросы"?) уверен таких не мало.
Да, уже много популярных вопросов, обязательно сделаем.
Цитата: Simple-Scada от 19 сентября 2016, 15:08:07ЦитироватьПланируется ли возможность выбора размера окна для каждого клиента? (options.exe)
Сейчас ведь так и есть. В Options.exe, вкладка Simple-Client, список "Размер окна"
Я почему то решил что это настройки на сервере, соответственно, для всех клиентов подключенных к этому серверу.
Можно ли сделать изменение координат X и Y объекта в реальном времени при перемещении объекта курсорными стрелками, а не только с помощью мыши? Не очень то удобно прокликивать объект только лишь для просмотра координат.
Вопросы по трендам: почему только 10?) ну пусть скролится легенда или кнопку "вкл\выкл легенду". Масштабирование онлайн вроде обещали) Шрифт (описание, шкала), можно ли добавить опции настройки? (столкнулись с проблемой: на мониторе и телевизоре одного и того же разрешения проект смотрится совершенно по разному просто потому, что с 2-3м уже ничего не разобрать)
Добрый день. Спасибо вам за вашу программу. Подскажите пожалуйста можно ли сделать тренд так, чтобы когда нажимаешь на стрелку которая сдвигает временную шкалу согласно времени, можно было выбрать время за которое отображать построенный график. Мне вот например надо отображать за 24 часа и при этом чтобы временная шкала сама двигалась.
Р.С. и можно в трендах стрелочки сделать с подсказками.
ЦитироватьМожно ли сделать изменение координат X и Y объекта в реальном времени при перемещении объекта курсорными стрелками
Да, конечно. Исправим этот момент.
ЦитироватьВопросы по трендам: почему только 10?) ну пусть скролится легенда
Это специальное ограничение, позволяет обеспечить достаточную скорость отрисовки и загрузки трендов (особенно на больших интервалах). Масштабирование трендов по Y и изменение размера шрифтов планируется, но мы всё никак не выделим время на реализацию, т.к. задач уже очень много.
Цитата: int2246 от 22 сентября 2016, 15:57:29Мне вот например надо отображать за 24 часа и при этом чтобы временная шкала сама двигалась.
Это ограничение тоже сделано не просто так и касается производительности сервера и клиента и их взаимодействия. Мы уже давно работаем над обновленной системой трендов, где тренды сохраняются в несколько прореженных "слоев". Такая система позволит просматривать тренды в больших интервалах с очень высокой скоростью, не нагружая сеть. Плюс к этому можно будет снять ограничение на величину интервала в режиме "онлайн".
Цитироватьи можно в трендах стрелочки сделать с подсказками.
Изначально они были с подсказками, но вскоре мы убрали подсказки, т.к. на наш взгляд они мешали подсказывая то, что и так очевидно. Вернем подсказки в будущем.
Цитата: Simple-Scada от 10 февраля 2016, 10:40:40Цитата: toreto от 09 февраля 2016, 22:05:15Вот такой вопрос, когда то в разделе Simple-Scada 1.3.3 задавали вопрос про работу на двух мониторах, хотелось бы узнать как успехи?
Да, делали такие тесты. Всё прошло успешно. После выхода Simple-Scada 2 начнем внедрять в неё поддержку нескольких мониторов.
Планируем взять максимальную версию Вашей скады, но обязательно нужна поддержка двух мониторов. Как успехи в этом направлении, когда ожидается поддержка нескольких мониторов?
Миханик, к сожалению мы вынуждены в первую очередь выделять время на реализацию более популярных задач и исправление ошибок. Таких задач по-прежнему много. И хотя поддержка работы на нескольких мониторах является достаточно важной задачей - трудно сказать насколько быстро мы сможем добавить её, постараемся сразу, как только высвободится время, но конкретный срок сейчас под вопросом.
Здравствуйте, уважаемые разработчики!
Возник следующий вопрос: возможно ли через кнопку на мнемосхеме или кнопку "power" на системном блоке закрыть клиент и сервер симпл-скады с последующем выключением ПК? Клиент и сервер работают на одном локальном ПК.
Пробовал писать приложение, которое находит "хэндлы" клиента и сервера и посылает API команды на их закрытие. Клиент благополучно закрывается, а серверу команда WM_CLOSE ни о чем не говорит :).
Заранее спасибо за помощь!
Здравствуйте.
Сейчас это невозможно, т.к. нет соответствующих скриптов и такие скрипты были бы потенциально опасными. Нужно подумать. А для чего нужно такое завершение работы и выключение?
ЦитироватьА для чего нужно такое завершение работы и выключение?
Такое завершение работы пригодилось бы, если в Simple-Scada можно было запретить закрытие клиента обычным пользователям.
Отключаем оболочку операционной системы (explorer.exe), вместо нее запускаем клиент и сервер Simple-Scada, диспетчер задач блокируем средствами Simple-Scada. Таким образом полностью перекрываем доступ к Windows. Кнопку завершения работы делаем доступной только для администратора.
Genrosol Поддерживаю.
ЦитироватьОтключаем оболочку операционной системы (explorer.exe), вместо нее запускаем клиент и сервер Simple-Scada, диспетчер задач блокируем средствами Simple-Scada. Таким образом полностью перекрываем доступ к Windows. Кнопку завершения работы делаем доступной только для администратора.
Через
"Options.exe" -> "Simple-Client" -> "Отключить клавиши (http://simple-scada.com/manual?section=set-simple-client)" заблокируйте все сочетания клавиш, диспетчер задач и панель задач Windows. При такой блокировке и запущенном Simple-Client Вы все равно можете получить доступ к Windows? Если да, то напишите каким способом можно этого добиться.
У меня вопрос по организации обмена скады с OPC-сервером. В списке переменных в скаде нельзя выставить флаг разрешения чтения/записи переменной. Казалось бы зачем, ведь эти флаги выставляются в OPC-сервере. Но вот сегодня я пытался связать скаду и ТРМ-151 фирмы ОВЕН. И у меня возникла проблема. У прибора есть параметр R-s управляющий его работой. (Стоп - 0/пуск - 1 /пауза - 2). И он с флагом только для записи. Я импортировал переменную с OPC-сервера ОВЕНа, создал поле, присвоил полю переменную, ну и запустил проект. У поля появился значок, восклицательный знак на желтом поле - нет связи по этой переменной. То есть скада пытается ее считать игнорируя флаги OPC-сервера?. Но и записи не происходит. С другими переменными имеющими флаги чтение, чтение/запись проблем нет.
TeNQ, а какой OPC-сервер используете?
Я пробовал два, оба ОВЕН. Скачивал с их сайта. Там две версии новая бета- сильно нагружает процессор и старая для обмена по RS-485 по протоколу ОВЕН. Я остановился на ней. http://www.owen.ru/catalog/ors_drajveri_dlya_priborov_oven/opisanie
Сегодня было времени побольше и я разобрался чего происходит. Наложились и особенности работы прибора(некорректная индикация состояния на дисплее при переходе из режима паузы в работу) и особенности скады. Для переменной с флагом только запись скада выдает ошибку связи с переменной для поля связанной с этой переменной. При этом запись в переменную происходит нормально. А особенность работы скады – запись происходит только по изменению значения в поле. Например, я запускаю прибор в работу – r-S=1, параметр записался. Прибор ответил r.St=1(статус в работе). Но в поле то остается 0, потому что скада не может считать значение и оставляет его таким, какое оно было до изменения. Хочу остановить прибор, вбиваю 0 в поле и ввод. Но поскольку там и так был 0, то записи не произойдет. А если забью 00 и ввод, то произойдет событие DataChange и пройдет запись. Прибор ответит r.St=0 (стоп). Вообщем, просто введу виртуальную переменную и запись буду делать через нее, всего делов. Зря я вас побеспокоил)
ЦитироватьПри такой блокировке и запущенном Simple-Client Вы все равно можете получить доступ к Windows? Если да, то напишите каким способом можно этого добиться.
Воспользовавшись комбинацией клавиш для выхода из клиента?
ЦитироватьА для чего нужно такое завершение работы и выключение?
Для понимания лучше было бы привести конкретные примеры:
1) Имеется небольшой стенд, на котором хотелось бы реализовать включение/выключение ПК с автоматической загрузкой/завершением ОС и SCADA-системы без возможности каких-либо альтернативных загрузок. А для корректировки SCADA-проекта, OPC-сервера или ПЛК разрешить администратору закрытие клиента с последующим доступом к ОС;
2) Имеется АСУТП в составе 2 серверов и порядка 10 клиентов. Все ПК спрятаны в шкафы и закрыты на замок. Периодически обслуживающему персоналу, имеющему доступ к шкафам, необходимо обследовать и чистить системный блок ПК. Как обслуживающему персоналу без доступа к ОС выключить сервер?
3) Практически на всех наших АСУТП требуется исключить возможность программного закрытия SCADA-системы и выключения ПК для обычных пользователей. Если я правильно понимаю, запретить закрытие клиента Simple-Scada на данный момент не представляется возможным.
TeNQ, спасибо за подробное описание. Значит сделаем следующим образом: если тег только для записи, то скада всегда будет делать запись в него, даже если Вы попытаетесь ввести то же значение, которое уже (по мнению скады) в этом теге. Это и решит описанную проблему.
Genrosol, в пред. сообщениях мы забыли упомянуть о том, что для завершения работы клиента можно использовать процедуры CloseApplicationAll (http://simple-scada.com/scripts_manual?section=global_procedure) (завершение работы всех клиентов) и CloseApplicationClient (http://simple-scada.com/scripts_manual?section=global_procedure) (завершение работы заданного клиента). Но подобные процедуры для сервера сделают работу скады уязвимой, что неприемлемо для производств.
В Вашей ситуации предлагаем следующее:
- на всех клиентах через скаду блокировать все комбинации клавиш для выхода из скады. Оставить только стандартную комбинацию для выхода и выбрать например SHIFT + F5 или CTRL + F2, о которой кроме Вас, вряд ли кто-то узнает. В будущем сделаем, чтобы эти комбинации можно было тоже отключить. А завершать работу клиента (или всех клиентов) из проекта, используя CloseApplicationAll или CloseApplicationClient;
- обслуживающему персоналу выключать сервер кнопкой power на системном блоке. В этом случае сервер должен корректно завершить работу.
ЦитироватьЗначит сделаем следующим образом: если тег только для записи, то скада всегда будет делать запись в него, даже если Вы попытаетесь ввести то же значение, которое уже (по мнению скады) в этом теге.
Да, можно и так. Но это не уберет значок - нет связи по переменной с поля. И мне просто интересно, как происходит обмен. Вот если я буду пробовать изменять тег, который предназначен только для чтения, то скада будет пытаться его записывать в OPC?
Можно ли по возможности ввести элемент radio button? Если у переменной два состояния, а находится она может только в одном, то кнопки хватает. А если состояний больше, то кнопкой уже пользоваться неудобно, хотя у нее есть возможность создать много состояний.
И пока я лазил в состояниях кнопок обнаружил небольшую ошибку на проверке ввода. Если в поле номера и значения ввести одиночный символ "-" и подтвердить, то редактор вылетает. Потом стал проверять, где это еще сработает. В координатах объектов так же работает.
ЦитироватьДа, можно и так. Но это не уберет значок - нет связи по переменной с поля.
Значок конечно уберем для переменных только для записи.
ЦитироватьВот если я буду пробовать изменять тег, который предназначен только для чтения, то скада будет пытаться его записывать в OPC?
Очень просто: перед записью в тег проходит проверка, является ли он доступным для записи. Если да, то запись пройдёт. Если нет, то скада даже не будет пытаться выполнить запись в тег. Соответственно скада будет игнорировать попытку присвоения в тег для чтения.
ЦитироватьМожно ли по возможности ввести элемент radio button?
Подумаем над этим, возможно сделаем у кнопки свойство "номер группы", чтобы кнопки с одной группой работали как radio button.
Цитироватьв состояниях кнопок обнаружил небольшую ошибку на проверке ввода.
Действительно, есть такое, спасибо. Исправим!
ЦитироватьОбслуживающему персоналу выключать сервер кнопкой power на системном блоке. В этом случае сервер должен корректно завершить работу.
Попробовал выключить сервер Simple-Scada кнопкой power на ОС Windows 7 (до этого пробовали только на Windows XP), теперь ясно, почему мы друг друга не понимали: Windows 7 без всяких вопросов завершает работу сервера, а Windows XP - нет.
Во временных трендах перо движется до конца окошка и тренд уходит в историю как бы за окно направо. При этом самые "свежие" точки тренда оказываются у левого края окна. В трендах перо движется до конца окна и дальше сам тренд начинает смещаться влево. При этом самые "свежие" точки тренда оказываются у правого края окна, а история тренда уходит влево. Можно ли сделать как-то одинаково? И если в трендах движется шкала времени, то во временных трендах глазу не к чему привязаться. А если процесс меняется медленно, то сразу и не поймешь куда он разворачивается вверх или вниз, ведь все зависит от точки зрения. И тогда привычка смотреть направо в трендах сбивает столку.
И еще обнаружил небольшую ошибку. Если в редакторе скриптов выбрать название скрипта - Procedure ..., появится окно с редактированием имени скрипта и нажать ctrl+ shift, а потом закрыть это окно, то блочится переключение шрифтов в редакторе. У меня переключение стоит на alt+shift и оно уже не работает, пока не закроешь редактор.
TeNQ, в будущем сделаем у временных трендов возможность выбора направления (в любую сторону) и добавим шкалу времени.
Цитировать...то блочится переключение шрифтов в редакторе.
Спасибо за описание, проверим и устраним.
Тут уже просили(pan-nn) ввести инструмент "календарь". Я присоединяюсь. В скаде не хватает штатных средств для ввода даты и времени. В демо-проекте нет ни одного примера ввода даты или времени. Есть только вывод в инструмент типа "Текст". Тем более что в трендах календарь уже есть и используется.
Для ввода даты или времени есть только две функции StrToDate и StrToTime, для которых нужно подготовить строку определенного формата, иначе на выходе просто будет присвоено текущее дата/время. Со вводом времени проблем особых нет (устанавливаю нужный формат времени SetDateFormat; три числовых поля со шкалами 0-24, 0-60, 0-60; собираю с разделителями ':' в строку и преобразую в формат времени StrToTime). С датой посложнее, тут кол-во дней зависит от месяца. Я создал комбобокс(список) с 12 месяцами. Ввел шкалу 1-31 для дней и хотел менять максимум шкалы в зависимости от выбранного месяца. Но, во-первых, к шкале переменной как таковой нет доступа. Есть инструмент "шкала", но это другое. А во-вторых и максимум переменной невозможно изменить, это свойство только для чтения. Буду делать по-другому, но можно ли сделать возможность изменять максимум/минимум шкалы в скриптах?
Пы.Сы.
Для элемента комбобокс у строки проверяется вводимое значение в поле "Значение". Если оно совпадает с уже существующим, то ввод отменяется. Не знаю зачем на самом деле ведется эта проверка, потому что как по мне она не нужна, ведь это же не индекс строки, пусть хоть все строки имеют одинаковое значение. А при создании новой строки проверки на то, что существует строка с подобным значением не ведется. И так можно создать поля с одинаковым значением.
TeNQ, согласны с Вами по поводу календаря, без него трудно обойтись, мы уже ведем работу над календарём, т.к. он нужен для нормальной работы с отчетами. Следующее обновление скады будет включать в себя компонент календарь, начальную версию системы отчетов и новую систему трендов.
ЦитироватьЕсли оно совпадает с уже существующим, то ввод отменяется.
Это правильно. Система такая: Вы можете присвоить каждой строке определенное значение переменной. Например строка 1 = 100, строка 2 = 200. Когда переменная примет значение = 100 в списке отобразится первая строка, когда 200 - вторая. Если оставлять значения по-умолчанию, то значение переменной будет соответствовать номеру строки. А два одинаковых нельзя задать, т.к. в таком случае программа не сможет определить какую строку из двух нужно показать.
ЦитироватьА при создании новой строки проверки на то, что существует строка с подобным значением не ведется.
А это уже ошибка. Исправим.
Тогда вот еще вопрос) Я создаю виртуальную переменную со шкалой от 1 до 31. Присваиваю полю и устанавливаю свойству поля "Значение" 1. Запускаю клиент и вижу в поле 0. Как так получается?
Т.к. поле связано с переменной, то в нём отображается значение этой переменной. Все численные переменные инициализируются значением равным нулю. Поэтому когда Вы запускаете проект переменная инициализируется и ноль отображается в поле. На данный момент свойство "значение" используется только в редакторе для визуализации. В будущем при создании переменных можно будет задать значение которым нужно инициализировать переменную (вместо нуля).
Цитата: Simple-Scada от 11 января 2017, 15:26:49Т.к. поле связано с переменной, то в нём отображается значение этой переменной. Все численные переменные инициализируются значением равным нулю. Поэтому когда Вы запускаете проект переменная инициализируется и ноль отображается в поле. На данный момент свойство "значение" используется только в редакторе для визуализации. В будущем при создании переменных можно будет задать значение которым нужно инициализировать переменную (вместо нуля).
А можно инициализировать скриптом одноразовым :)
Дело ведь не в том как инициализировать переменную. И даже не в том, что переменную пока нельзя инициализировать через редактор. А в том, что присвоенное значение на этапе инициализации вышло за пределы шкалы. Т.е. отсутствует контроль за выходом переменной за пределы. Я полагал и ошибочно, что назначив шкалу, я выставил диапазон, в котором будет находиться переменная. Т.е. придет значение ниже границы, оно будет будет "обрезано" по нижней границе. Например, нижняя граница шкалы 0, придет отрицательное число и переменной будет присвоено значение 0. Однако это не так. При инициализации, при присвоении значения этой переменной в скрипте границы не соблюдаются. Шкалы это лишь контроль на ручном вводе через поле и шкала на графике. Я просто немного другого ожидал.
ИМХО еще не так. Шкала переменной передает значения(свойства) полю(объекту) с которым она связана, и при работе с этим полем в переменную уже пишем в пределах шкалы. А вот прямая работа с переменной, это уже другая пестня. То-есть шкала касается НЕ собсно переменной, а ее родителя.
Попробуйте обращаться в скрипте не прямо к переменной, а через объект к которой она привязана.
(Это досужие размышлизмы, а не оф. ответ)
предложение - вопрос к уважаемой администрации
Насколько сложно допилить просто типизированные переменные?
Не варианты, а классику, которая выступила бы глобальной для проекта.
Вот люблю я циклы и массивы, а тут никак ими воспользоваться не выходит.
Не надо блатного редактора, сортировки, папочек. Просто тип "скрипта" - объявление переменных и окошко как у скрипта, с той же проверкой орфографии. Я понимаю, что будут вопросы с их подтягиванием к другим скриптам, пусть не подтягивает, но ести надо пару сотен флажков пилить вместо массива и копипастить/править, то хочется кого-то убить.
ЦитироватьПри инициализации, при присвоении значения этой переменной в скрипте границы не соблюдаются. Шкалы это лишь контроль на ручном вводе через поле и шкала на графике. Я просто немного другого ожидал.
Здесь дело в том, что отдельной инициализации сейчас вообще нет. Когда переменная создается - она создается с нулевым значением и оно дополнительно никак не обрабатывается и не меняется и таким остается (касается только виртуальных переменных). Мы систему инициализации добавим и сделаем так, чтобы при этом проверялись границы и ниже минимума или выше максимума она уже не будет.
Цитироватьпредложение - вопрос к уважаемой администрации. Насколько сложно допилить просто типизированные переменные?
Не варианты, а классику, которая выступила бы глобальной для проекта.
На будущее возможно добавим возможность создания глобальных модулей в которых можно будет описать в том числе любые пользовательские объекты, а затем использовать их в любых скриптах. Но когда мы сможем к этому приступить сейчас трудно сказать.
А как лучше вам подавать досадные "мелочи"? письмами на сапорт, сюда? Поштучно, списками?
Типа такого:
(редактор скриптов)
- клавиша End, переводит в конец строки только если курсор стоит до последнего знака. Если дальше то не происходит ничего, а хотелось бы все-же переместится в конец.
- PgUp и PgDn не работают, что заставляет перекидывать руку на мышь, короче неудобно.
- Нет отмены, тут вообще очевидно.
- Дайте возможность в настройках отключить сообщения о удалении переменных и скриптов (лучше отдельно)
- Нет режима затирания символов при наборе. Очень злит в купе с отсутствием массивов
- Нет поиска и замены в тексте скрипта
- Увидеть конец строки которая сделана на мониторе с большим расширением невозможно, надо переносить и делать кашу из строк
- После выпадения подсказки, иногда, если ее не использовать, она пропадает, а вместе с ней возможность перемещать курсор вверх вниз. Тогда надо опять ее вызвать и ткнуть Еск шоб она пропала легально и отдала стрелки окну.
- При возврате в начало строки клавишей Home и последующем ее выделении (Shift+Up|Dn) строка выделяется не вся, а с того места откуда перед тем убрали курсор и т.д.
- RCtrl+Left|Right НЕ работает... Я уже было решил что такой функции нет, но LCtrl+Left|Right оказалось, есть и работает... Удивительно.
Кстати, чтобы не городить огород редактора, некоторые подобные проекты предлагают пользоваться внешним редактором. При нажатии такой кнопочки текст сохраняется в текстовый файл, который и открывается в Внешнем редакторе, как модальном приложении. При закрытии оного, к окошку возвращается фокус и этот же файл загружается назад во встроенный. Ну и настроечка с путем к внешнему редактору.
Это 100% решит все проблемы трудящихся. Тот-же ноутпад++ имеет подсветку паскаля, а повторять его сложно, долго и главное не нужно.
П.С. При том, что, в общем, впечатления от концепции очень позитивные, эта мелочь за неделю меня начала жутко раздражать, особенно, когда за неимением массивов, надо одну строку скопипастить и отредактировать 100500 раз.
ЦитироватьА как лучше вам подавать досадные "мелочи"? письмами на сапорт, сюда? Поштучно, списками?
Как Вам будет удобнее. Спасибо за список замечаний, часть из них уже есть в нашем списке, а часть добавим и постепенно будем устранять с выходом каждой новой версии скады.
Всегда пожалуйста.
продолжу (в перемешку с хотелками).
- неплохо бы к элементам выпадающего списка добавить поле "можно выбирать" и права. Например, если нужно выбрать режим работы чего либо, то это очень удобный элемент, но некоторые режимы НЕ предназначены для записи (например, "авария"), а некоторые не для всех (например "ручной").
- в редакторе элементов, когда выпадает поле для дополнительных свойств (например выбор переменной), картинкой начинает дико кидать по сторонам секунды 3. В общем чо на нее смотреть, если мы сейчас работаем не с ней, но все равно раздражает. Может, показать ее не слева вторым рядом, а справа? Не слишком удобно, зато ноль не потеряется.
- шрифты при смене размера элемента стремятся поменяться вместе с ним. Птичка "Подгонять размер шрифта" в опциях не помешала бы.
- оформление полей для ввода отличается от остальных элементов. При попытке собрать таблицу из разных элементов выходит кака. Может стоит добавить свойство стиль(плоский/красивый)? Аналогично у комбобокса нет рамки, а если ее убирать у всех, то элементы при одинаковых заданных размерах визуально отличаются.
- Очень не хватает настраиваемого списка гарячих клавиш для доступа к свойствам элементов. Например при клонировании строк таблицы надо поменять переменную и тег. Для этого приходится возюкать мышь туда-назад с объекта на меню, с меню на следующий объект.
- Выбор переменной. Можно не показывать список переменных, а дать возможность набрать ее имя в ручную? А для показа списка сделать кнопку "...". Опять-же, если мне только индекс поменять, то это скакание картинки в поиске своего места в жизни раздражает просто дико! Особенно если не можешь попасть мышью по скачущей кнопке/полю.
-переменные. Можно как-то маркировать переменные используемые в проекте? В идеале отдельно помечать привязанные к объектам, и пользуемые в скриптах, но просто привязанные к объектам - уже хорошо. Можно заметить провтык и оптимизировать проект, если лишнего наделал.
https://www.youtube.com/watch?v=EBW28HD2bcg&feature=youtu.be
очень хотелось бы такого не наблюдать максимально быстро.
- при вводе параметра в инспекторе надо ткнуть ентер, либо мышью на другой параметр. Если сразу тыкнуть на другой объект, то изменения параметра не сохранятся.
Чтобы такого не наблюдать нужно установить нормальный драйвер на видеокарту или попробовать сменить в Options.exe тип рендера. У Вас FPS 4-8 - установите/обновите драйвер и все станет работать быстро и плавно.
Сразу не заметил что Вы используете VirtualBox - здесь (http://simple-scada.com/forum/index.php?topic=288.msg2573#msg2573) можете прочесть как установить компоненты Direct3D для VirtualBox.
Колебания гасит прокручивание скрола вниз...
Не важно какие действия гасят колебания - в чем проблема и как ее решить Вам написали. Вы думаете, что такая картина наблюдается у всех? Посмотрите на видео (https://www.youtube.com/watch?v=bSNU1BGyCK4) как все работает в нормальном режиме.
Цитата: Simple_Scada от 14 января 2017, 18:35:52Не важно какие действия гасят колебания - в чем проблема и как ее решить Вам написали. Вы думаете, что такая картина наблюдается у всех? Посмотрите на видео (https://www.youtube.com/watch?v=bSNU1BGyCK4) как все работает в нормальном режиме.
Красивый ход с показыванием как должно быть... Если бы я так сделал на заводе, заявив что несколько тонн продукта рассыпало по цеху и поломало кучку оборудования вместо того чтобы корректно отработать внештатку, потому что в нормальном режиме так быть не должно, а у других так обычно не бывает, то, боюсь я в лучшем случае был бы уволен. %)
Теперь от лирики к делу. Поменял дрова как в ФАКе, видяха и правда на ВМ поменялась на чото другое. Но на фпс и брыкания это не мильно повлияло. Дальше 7-9 и дергается. Мало того, визуально картинка стала угловатее (это не важно вообще). При переключении в GL фпс падает до 2-3 и тормозит шотопесец.
Какие еще есть варианты? Поменять сервер? Не выйдет, клиент будет против.
Сравнение с обработкой внештатных ситуаций здесь неуместна. Любое ПО имеет определённые требования к производительности ПК. На видео виден FPS от 4 до 9 кадров/сек, который говорит о том, что программа не работает в нормальном режиме (не успевает перерисовывать кадры с достаточной частотой) и причинами могут быть:
- устаревший или несоответствующий драйвер на видеокарту;
- видеокарта, или другие комплектующие компьютера не соответствуют минимальным системным требованиям Simple-Scada 2 (описаны здесь (http://simple-scada.com/products) в нижней части страницы);
- компьютер чрезмерно нагружен другими приложениями во время работы скады;
Благодарю команду Simple-Scada за качественный продукт. В настоящий момент только начинаю работать со SCADA системами. Ваш продукт очень легок, красив и удобен для понимания. В процессе знакомства возник сразу возник ряд вопрос-предложений по юзабилити:
1. при работе в эдиторе при прокладки трубопровода или линии последний проложенный участок нельзя отменить классическим CTRL+Z. Именно отменить в процессе прокладки. Было бы очень удобно.
2. при выделении нескольких объектов, было бы здорово, если бы появлялось стандартное меню выравнивание и распределение объектов.
Работу данных паттернов можно посмотреть в любом графическом редакторе (MS Visio, Adobe Illustrator).
и еще такой вопрос по работе самой системы:
1. планируется-ли поддержка видео с IP камер?
2. планируется ли доступ по web-интерфесу или клиенты для ios и android. В Вашем примере с планшетом все же наименее распространенная операционная система (Win) для мобильных устройств.
Еще раз хочу поблагодарить за проделанную работу и вывод на рынок действительно нужного продукта. Так и хочется сказать Simpe-Scada. Simple Clever. (правда чехи из Skoda уже запатентовали этот слоган).
sa_mut, спасибо за хороший отзыв. Описанные недочеты постараемся постепенно устранить по мере выхода обновлений скады.
Цитировать1. планируется-ли поддержка видео с IP камер?
К сожалению, пока не планируется и остается только использовать сторонние приложения для вывода видеопотока.
Цитировать2. планируется ли доступ по web-интерфесу или клиенты для ios и android. В Вашем примере с планшетом все же наименее распространенная операционная система (Win) для мобильных устройств.
Да, в этом году планируем закончить разработку Web-клиента. Соответственно будет возможна работа в любых ОС. Это одна из главных задач на 2017 год. Точный срок окончания разработки трудно предсказать.
Teodor, по поводу драйверов: отправили Вам письмо на e-mail, чтобы не забивать тему лишними сообщениями.
Всю тему не читал.. может быть уже предлагали.
-При копировании объекта чтобы копировалось его имя и добавлялась цифра в конце. Например сейчас если я копирую картинку с присвоенным именем ImageLamp, то получается картинка с именем например Image8, а хотелось чтобы ImageLamp1.
-Если можно добавить какой нибудь контейнер для объектов, чтобы можно было менять свойство например видимости сразу у группы объектов.
Pavell, с именованием обдумаем, группировку и т.п. обязательно сделаем.
Можно ли сделать функцию вывода в строку сообщений и журнал сообщений вроде - ХочуВывестиСообщение ('сообщение', X), где X - это тип сообщения (предупреждение, авария и тд.)? Сейчас есть возможность вывести только фиксированное сообщение, а иногда нужно вывести сформированное по факту (с указанием времени).
И вопрос по элементу Таблица, а конкретнее по ячейке таблицы(TM_TableCell). Сейчас для ячеек не предусмотрено событий. У элемента Поле есть стандартные OnDataChange и т.д., а у ячейки таблицы пока ничего нет. Это будет меняться или так задумано?
ЦитироватьМожно ли сделать функцию вывода в строку сообщений и журнал сообщений вроде - ХочуВывестиСообщение ('сообщение', X), где X - это тип сообщения (предупреждение, авария и тд.)? Сейчас есть возможность вывести только фиксированное сообщение, а иногда нужно вывести сформированное по факту (с указанием времени).
Да, можно сделать. Но такие сообщения будут видны только в группах: "Неподтвержденные" и "Все сообщения", т.к. у них не будет своего уникального идентификатора.
ЦитироватьИ вопрос по элементу Таблица, а конкретнее по ячейке таблицы(TM_TableCell). Сейчас для ячеек не предусмотрено событий. У элемента Поле есть стандартные OnDataChange и т.д., а у ячейки таблицы пока ничего нет. Это будет меняться или так задумано?
Так задумано. Иначе пришлось бы хранить дополнительную информацию о скрипте для каждой ячейки таблицы (включая статические ячейки). "Идея" этого компонента в том, чтобы сделать его максимально легким и достаточно функциональным. Получается такой "экономный" компонент. Хотя доработка Таблицы планируется. А именно: загрузка в таблицу из БД, вставка таблицы в БД и возможность читать свойства ячеек таблицы по номеру ячейки (сейчас свойства ячеек недоступны из скриптов).
ЦитироватьДа, можно сделать. Но такие сообщения будут видны только в группах: "Неподтвержденные" и "Все сообщения", т.к. у них не будет своего уникального идентификатора.
Пойдет.
По таблице. Можно ли сделать тогда универсальный скрипт, относящийся к таблице? Такой, что когда произойдет изменение в какой-либо ячейке таблицы, вызовется этот скрипт и через него (Sender) можно будет выделить объект TM_TableCell ячейки в которой произошло изменение. А через этот объект определить в какой колонке и строке находится ячейка в таблице (индексы). Если такое возможно, то получится замена кучи скриптов OnDataChange каждой ячейки и функционал не потеряется.
И еще, сейчас столкнулся с забавной ситуацией. Я привязал виртуальную переменную к выводу сообщения. Так как вирт. переменная при запуске проекта получает значение 0, то я естественно получил сообщение со значением 0 на старте. Я создал скрипт - "Запуск проекта". Инициализировал в нем вирт. переменную. Запустил проект. И все равно получил сообщение со значением 0, а потом уже второе сообщение - с тем значением, с которым я его инициализировал. Т.е. если вы используете вирт. переменную для вывода сообщений, то вам не отвертеться от вывода ложных сообщений с 0 значением на старте проекта.
Интересует вопрос взаимодействия с ОРС сервером HDA, конкретно с Logika.HDA.2
Цитата: TeNQ от 19 января 2017, 14:52:11По таблице. Можно ли сделать тогда универсальный скрипт, относящийся к таблице?
Да, можно. Это хороший вариант.
Цитата: TeNQ от 19 января 2017, 14:52:11Т.е. если вы используете вирт. переменную для вывода сообщений, то вам не отвертеться от вывода ложных сообщений с 0 значением на старте проекта.
Верно, ведь переменная должна иметь какое-то значение после старта и она равна нулю. И если есть сообщение которое соответствует нулю, то оно будет выдано. Этот вопрос также решится если в окно создания переменной добавить поле в котором будет указываться значение, которым нужно инициализировать эту переменную.
Цитата: asnik от 20 января 2017, 11:26:02Интересует вопрос взаимодействия с ОРС сервером HDA, конкретно с Logika.HDA.2
Simple-Scada 2 работает с OPC-серверами версии DA 3.0 и ниже. Серверы OPC-HDA не поддерживаются.
Цитата: Simple-Scada от 20 января 2017, 12:23:40Simple-Scada 2 работает с OPC-серверами версии DA 3.0 и ниже. Серверы OPC-HDA не поддерживаются.
А планируется такая поддержка? Вроде два отечественных производителя
Может я хочу слишком много, но возможен ли хоть теоретически TM_control_х c несколькими переменными и соответственно с методами для них? Тогда многие задачи типа поиска дельты или еще какой простенькой математики существенно упростятся. Например типа TM_Field_х c возможностью выбора отображаемой переменной и событиями OnChange для каждой из них или любой.
В проекте у страниц есть свойство - Группа трендов, которое позволяет выбрать какие тренды будут выбраны при переходе в раздел "Тренды" с этой страницы. Можно ли сделать по аналогии свойство - группа сообщений? И ввести соответственно группы для сообщений. Как бы я хотел, чтобы это работало. Я создаю группу - системные сообщения, группу сообщений для прибора №1, группу сообщений для прибора №2 и тд. Иду на страницу управления прибором №1 и выбираю в свойствах страницы группы системные сообщения и сообщения для прибора №1. В клиенте когда я нажимаю на строку сообщений, находясь на странице управления прибором №1, в ней будут системные сообщения и сообщения для прибора №1, а остальные скрыты. Так было бы очень удобно и просто.
Сегодня столкнулся с неприятной ситуацией. Вырезав (ctrl+x) объекты с 1й страницы я вставил (ctrl+v) объекты на подстраницу и сохранился. У меня вылезло предупреждение, что N скриптов содержат ошибки. Я стал разбираться, что и почему. Оказалось что все ошибки были связаны с нумерацией имен объектов. Дело в том, что объекты при вставке были переименованы и соответственно скрипты связанные с именами объектов перестали работать. Хорошо, что у меня их было не так много. Исправление заняло минут 20. Но. Почему, при вырезании и вставке объекты меняют имя? Я создал тестовый проект и выяснил, что вставляемый объект всегда получает имя + максимальный номер существующего объекта + 1. Очень просто и вроде работает. Но. Имеем объект Field1 и Field2. Вырезаем объект Field1(ctrl+x), вставляем(ctrl+v). Получаем объект Field3 - следствие простоты. Как по мне, это надо менять. Вырезая и вставляя в 1й раз из буфера - я хочу получить объект с тем же именем. Последующие вставки это уже разумеется новые объекты, где имя должно быть другим.
И еще просьба, можно ли добавить кнопку перекомпиляция в редакторе, нажав на которую можно скомпилировать все скрипты разом. Сейчас это по сути работает при сохранении проекта. Иногда это нужно.
Рискну предположить, что вырезав объект он еще не уничтожен, потому вставляется уже не он, а новый. Посему, наверное, логичнее допилить кнопку "переместить".
Цитата: Teodor от 21 января 2017, 17:44:43Рискну предположить, что вырезав объект он еще не уничтожен, потому вставляется уже не он, а новый. Посему, наверное, логичнее допилить кнопку "переместить".
Дело было вечером..., а мне было интересно) Вообщем, проведя ряд опытов в редакторе я выяснил как формируется имя объекта. Имя объекта формируется так - базовое имя, например, Field + Cчетчик объектов типа Field. Вставляем объект. Счетчик + 1. А объект получает имя База + (Счетчик + 1) Удаляем объект. Счетчик - 1. А вот вырезание (-1) и вставка (+1) суммарно не изменяет счетчик. При вставке проверяется, существует ли объект с именем База + (Счетчик + 1). И если объект существует, то будет проверяться существует ли объект с именем База + (Счетчик + 2) и тд. Первое же свободное будет присвоено. И тут есть момент, который я сразу не понял. Счетчик при этом не меняется. Это именно счетчик объектов, он не завязан на имени объекта. Идея понятна, но не вот не всегда она работает хорошо.
В принципе, если давать имена объектам отличные от шаблонных, то при вырезании/вставке с этим и не столкнешься. Я посмотрел демо-проект и практически всем объектам были даны имена, кроме текстов. Я же ленюсь их переименовывать, да и не вижу смысла.
Пы.Сы.
Был не прав, даже если переименовать объекты, то при вырезании/вставке меняются имена на шаблонные с вытекающими. Вообщем, Teodor прав - пока, если можно, лучше запилить кнопку "переместить".
Цитата: asnik от 20 января 2017, 12:58:33А планируется такая поддержка? Вроде два отечественных производителя
Пока не планируется.
Цитата: Teodor от 20 января 2017, 13:49:33Может я хочу слишком много, но возможен ли хоть теоретически TM_control_х c несколькими переменными и соответственно с методами для них? Тогда многие задачи типа поиска дельты или еще какой простенькой математики существенно упростятся. Например типа TM_Field_х c возможностью выбора отображаемой переменной и событиями OnChange для каждой из них или любой.
Расширение функций расчетов с скаде одна из приоритетных задач. Поэтому обязательно добавим возможности, которые позволят быстро выполнять расчеты на основе множества переменных. Как именно реализовать ещё подумаем, скорее всего сделаем специальные расчетные переменные.
Цитата: TeNQ от 20 января 2017, 21:39:53Можно ли сделать по аналогии свойство - группа сообщений? И ввести соответственно группы для сообщений. Как бы я хотел, чтобы это работало.
Да, можно. Так и сделаем. А группы сообщений создавать можно и сейчас, кнопкой "Добавить новую группу" (http://simple-scada.com/manual?section=messages).
Цитата: TeNQ от 20 января 2017, 21:39:53В клиенте когда я нажимаю на строку сообщений, находясь на странице управления прибором №1, в ней будут системные сообщения и сообщения для прибора №1, а остальные скрыты. Так было бы очень удобно и просто.
Т.е. выполняется переход в меню сообщений в заданную группу в которой видны только сообщения этой группы? Если так, то сейчас в принципе так и сделано, только переход выполнятся всегда в группу "Неподтвержденные", а мы сделаем возможность выбора, как сейчас сделано для трендов.
Цитата: TeNQ от 20 января 2017, 21:39:53Вырезав (ctrl+x) объекты с 1й страницы я вставил (ctrl+v) объекты на подстраницу и сохранился.
Исправим. Последовательность "Вырезать - Вставить" не будет приводить к смене имени.
Цитата: TeNQ от 20 января 2017, 21:39:53Дело было вечером..., а мне было интересно) Вообщем, проведя ряд опытов в редакторе я выяснил как формируется имя объекта.
В принципе Вы почти всё правильно поняли. Система очень проста: берем количество полей проекта (например 10) и начиная с этого кол-ва проверяем можно ли присвоить имя: field11, если нет, то field12 и так далее, пока не присвоится. Это позволяет очень быстро генерировать имя для новых объектов, что полезно например при копировании и вставке большого количества объектов.
Очень интересует копирование групп/разделов в трендах. Пускай даже с теми-же переменными. Поправить переменную проще чем тупо тыцять создавая 60 одинаковых разделов с кучей одинаковых групп и переменными отличающимися индексом.
Если заказы еще принимают, то хотелось бы "сборные" тренды. А именно: выбираем до 10 (лучше 20) переменных, определяем цвет и строим графики (да-да, по имени переменной). Без такого сложно вообще определять зависимости, например по котельне. Тут открыли, там упало, здесь приспустилось, и т.д.
ЦитироватьОчень интересует копирование групп/разделов в трендах. Пускай даже с теми-же переменными. Поправить переменную проще чем тупо тыцять создавая 60 одинаковых разделов с кучей одинаковых групп и переменными отличающимися индексом.
В будущем сделаем это не только для трендов, но и для сообщений.
ЦитироватьА именно: выбираем до 10 (лучше 20) переменных, определяем цвет и строим графики (да-да, по имени переменной).
Мы уже сделали редактируемые группы трендов. Т.е. Вы в редакторе включаете у группы свойство "Редактируемая" и пользователь подключаясь с клиента сможет менять тренды в группе выбирая из списка переменных. В сам список выводятся имена переменных, либо описание (если оно есть).
Можно ли сделать функцию "вытаскивающую" текст из сообщения? Вроде, ReadMessage(vrX); Функция проверяла бы привязана ли переменная vrX к какому-либо сообщению, если нет возвращала пустую строку, если да - то текст сообщения с номером равным значению vrX из сообщения привязанного к vrX. Для чего. Иногда хочется отдельно (не в строке сообщений) показать на окне сообщения или или сразу ряд сообщений (в строке сообщений видно только последнее). И приходится дублировать это отдельными текстовыми переменными. А было бы удобно просто вытащить текст из сообщения и показать где нужно.
Здравствуйте Ребята. Возможно ли добавить вывод даты в панель с часами?
Странно работает копипаста строки в редакторе. Затирает следующую строку и оставляет пустой. Очень неприятно, в купе с невозможностью отменить действие.
Цитата: TeNQ от 05 февраля 2017, 11:59:11Можно ли сделать функцию "вытаскивающую" текст из сообщения?
Да, сделаем как метод для переменной и вызов будет выглядеть примерно так: vrX.GetMessage;
Цитата: deldemo от 05 февраля 2017, 22:54:02Здравствуйте Ребята. Возможно ли добавить вывод даты в панель с часами?
Да, сделаем.
Цитата: Teodor от 06 февраля 2017, 10:49:56Странно работает копипаста строки в редакторе. Затирает следующую строку и оставляет пустой. Очень неприятно, в купе с невозможностью отменить действие.
Это при редактировании скрипта? Просто если скопировать и вставить строку? Не получается воспроизвести.
Цитата: Teodor от 06 февраля 2017, 10:49:56Странно работает копипаста строки в редакторе. Затирает следующую строку и оставляет пустой. Очень неприятно, в купе с невозможностью отменить действие.
Это при редактировании скрипта? Просто если скопировать и вставить строку? Не получается воспроизвести.
[/quote]
редактор скрипта.
делаем строки:
111
222
333
444
выделяем строку 222 (курсор в начало строки, шифт+вниз), копируем, убираем выделение(вверх, вниз курсор остается в начале строки 333), вставляем..
Ожидаемый результат:
111
222
222
333
444
По факту:
111
222
222
444
строка "333" затерта, отмене не подлежит... Выходим без сохранения, начинаем сначала.
Есть просьба. По сути не сложная. В меню "вид" добавить кнопочку "В центр", по нажатии которой вид восстанавливается до начального при загрузке проекта. Я не хочу разбираться почему так происходит, но картинка просто куда-то девается. Да я такой один, но мне и правда приходится в номере готеля строить впн на офис, подключаться по РДП, там подымать тимвьювер на объект (мы ж по РДП не работаем, а тимвьювер на мир перекрыт) на 2 машины (одна из них виртуальная с редактором ибо сервер от редактора неотделим), тем временем еще и держа связь в РДП с прог.сервером, который уже подключен к самому контроллеру...
В общем, приходится сохранять, закрывать, открывать... А делать так после привязывания значения переменной к каждому(или через раз) из нескольких тысяч объектов... Раздражает до чертиков. Кнопочка мне бы ооочень помогла.
Нужно выравнивание по центру зоны проекта?
Цитироватьпо нажатии которой вид восстанавливается до начального при загрузке проекта
При загрузке проекта рабочая область выравнивается не по центру, а по левому верхнему краю зоны проекта.
Не суть важно как это называется. Пусть это будет верхний левый край(стартовый). Как вариант, центр и масштаб по занятой области проекта. Может даже не кнопка в меню, а горячая клавиша или пункт из контекстного меню. Отлично было иметь возможность "запомнить" вид (положение, масштаб, страница). Еще лучше - горячие клавиши для нескольких пользуемых видов...
Но это уже мелкие хотелки напотом. Пока просто нужно вернуть вид на место, после того как он "потерялся". Да такого случаться не должно, но есть такой я, который все делает "сложно" и это случается.
Приветствую уважаемых разработчиков. Simple Scada -великолепная программа и устраивает меня полностью, я не использую даже 1% от существующих возможностей и плюшек, т.к. скада работает в качестве монитора домашних ресурсов. Возникла идея дополнительной функции скады. Нельзя ли сделать так, чтоб при сворачивании скады где-нибудь в углу висело полупрозрачное окошко, выводящее несколько самых важных параметров, например в моём случае- температура котловой воды. Т.е. скада запущена, свернута, а в углу, поверх всех окон, болтается полупрозрачное окошко с, например, температурой, которое не мешает работе на компьютере, "прозрачно" для кликов, а при нажатии определенной комбинации клавиш, позволяло себя таскать по экрану. Нашел как это называется - Heads-up display. При разворачивании скады, окошко пропадает и мы работаем непосредственно с рабочим полем. Если такая штука сложна в реализации, то можно ли, хотя-бы один важный параметр или аварийное сообщение при сворачивании скады выводить в прямоугольник программы на панели задач.
garry, из-за особенностей движка, для реализации этой задачи потребуется внести в него большие изменения и потратить не мало времени. Поэтому мы не можем взяться за эту задачу (учитывая то, что есть много других более востребованных).
Добрый день! Подскажите, есть скрипт перехода на группу трендов по ID (как понял только группам он присваивается), есть ли возможность перехода на
конкретный тренд (по событию OnClick), или нужно создавать для каждого тренда свою группу.
Цитироватьprocedure GoToTrendsGroupAll (AGroupID: Integer);
Описание: Переход в меню трендов к заданной группе на всех клиентах.
Пример кода:
begin
GoToTrendsGroupAll (1); // перейти в первую группу трендов на всех клиентах.
end.
Временные тренды не очень удобны, нет шкалы времени и нет прокрутки.
Здравствуйте.
Цитироватьили нужно создавать для каждого тренда свою группу.
Перейти можно только к группе трендов. ID-группы можно увидеть в свойствах если выделить группу в Редакторе. Тренд можно создать только в группе. В одной группе обычно размещают несколько трендов (макс. 10).
Добрый день.
А нельзя ли добавить возможность изменения шрифта (размера, цвета) заголовков окон? У меня жесткие требования заказчика к дизайну проекта , поэтому сейчас приходится скрывать заголовок и имитировать его компонентом "текст".
Здравствуйте.
ЦитироватьА нельзя ли добавить возможность изменения шрифта (размера, цвета) заголовков окон?
Можно, добавим такие возможности.
В обновленной версии указано:
-улучшена работа камеры с низким FPS;
Где в SS2 используется камера? Я чего-то пропустил?
ЦитироватьГде в SS2 используется камера? Я чего-то пропустил?
Мы так называем перемещение зоны просмотра проекта в редакторе клавишами W, A, S, D. Сейчас поправим чтобы исключить путаницу.
Здравствуйте. Возможно ли таблицу, созданную в редакторе проекта, заполнять вручную при работе в клиенте?
ЦитироватьВозможно ли таблицу, созданную в редакторе проекта, заполнять вручную при работе в клиенте?
Здравствуйте.
Да, возможно. Для этого нужно связать каждую ячейку (которую планируется редактировать) со своей отдельной переменной. Также нужно установить у этих ячеек или у колонок свойство "Редактирование" --> "Разрешить".
Добавьте возможность запускать клиент из редактора для проверки проекта. Очень неудобно каждый раз клацать по ярлыку особенно при изучении. Спасибо.
godygadu, сделаем.
- Можно ли по аналогии с .AsSQLDateTime сделать .AsSQLTime для работы только со временем ? В принципе и сейчас работает AsSQLDateTime с колонками типа Time. MySQL видимо отбрасывает дату, иначе бы возникла проблема с устаревшей датой. Ведь если явно не инициализировать дату, то в SS2 ей будет присвоен 1899 год и ошибки в работе с MySQL.
- Можно ли доработать функцию AddMessage? Удобство ее использование сильно ограничивает возможность вывести сообщение только в папку подтвержденные/неподтвержденные. А если убрать параметр AUnconfirmed и добавить параметр типа AMessageDirectory и варианты `\Confirmed`, `\UnConfirmed`, `\UserMessageDirectory`? Если пользовательская папка будет указана с ошибкой, пусть кидает в неподтвержденные.
- Можно ли доработать объект Calendar? Сейчас, если скрыты секунды/минуты, то в переменной привязанной к этому объекту будут присвоены секунды/минуты, которыми этот объект был инициализирован при запуске проекта. А хотелось бы, чтобы были нули. Например. Я скрыл минуты/секунды. Мне нужны часы. Ввел время 17 часов, подтвердил. Смотрю, что я получил - 17 часов 45 минут 56 секунд. А хотелось бы получить 17:00:00.
ЦитироватьМожно ли по аналогии с .AsSQLDateTime сделать .AsSQLTime для работы только со временем?
Да, сделаем.
Цитироватьограничивает возможность вывести сообщение только в папку подтвержденные/неподтвержденные.
Если точнее в "Неподтвержденные" и в группу "Все сообщения" (в ней все сообщения независимо от того, были ли они подтверждены).
ЦитироватьМожно ли доработать функцию AddMessage?
Хорошая идея, но здесь будет проблема. Сообщения и группы хранятся с БД с уникальным ID-группы и ID-сообщения, по которым они и выбираются. Чтобы исключить повторения значений в индексируемых колонках, всем сообщениям добавляемым при помощи AddMessage выставляется зарезервированный ID, который гарантированно не будет использоваться при создании сообщений через редактор. Поэтому при добавлении в какую-то конкретную группу нужно чтобы пользователь (или скада) указал ID-сообщения, который никогда не повторится в будущем, а это невозможно.
ЦитироватьМожно ли доработать объект Calendar? Сейчас, если скрыты секунды/минуты, то в переменной привязанной к этому объекту будут присвоены секунды/минуты, которыми этот объект был инициализирован при запуске проекта. А хотелось бы, чтобы были нули.
Да, сейчас если нужны нули, то придется при запуске проекта установить минуты и секунды переменной в 00:00. Подумаем как лучше это реализовать в Календаре.
Здравствуйте Уважаемые разработчики. Добавьте пожалуйста возможность включения отображения даты во встроенных часах интерфейса SCADA.
Эта задача уже есть в списке, мы просто не успели включить её в последнее обновление и она появится в следующем.
Центрование по точке на сетке ближе к мышке все еще "работает". По крайней мере для перемещения, остальное не проверял.
Предложения по интерфейсу редактора:
1) В окне "Редактировать шкалу" добавить кнопку "Создать шкалу". Из верхнего меню "Шкалы" можно ее же удалить.
2) Кнопки из меню "Проект>Сообщения/Тренды/Скрипты" добавить в верхнее меню (хотя бы в виде картинок) (Задалбывает бегать по выпадающим меню)
3) "Проект>OPC серверы" можно перенести в "Переменные>OPC"
4) "Проект>Цветовая схема" менять цвет при наведении мыши.(Предпросмотр)
5) Добавить возможность менять цвет сообщений, и в журнале отображать цвет под всей строкой, а не в начальном квадрате.
6) Выделять объекты которые друг над другом Alt+Мышь.
7) Хотелось бы панель сообщений сделать в виде фигуры, с возможность настройки размеров, положения, кол-ва строк.
8 ) При выходе из редактора - запрос на сохранение.
9) Запуск клиента из редактора.
Предложения по интерфейсу клиента:
1) В трендах:
Колесо мыши > прокрутка по времени,
Ctrl+Колесо мыши > масштаб по времени ("Растягивать/Сжимать" тренд относительно того места, куда ткнул мышью)
PS
Не читал тему, может многое уже упоминалось.
Цитата: Teodor от 15 марта 2017, 12:09:56Центрование по точке на сетке ближе к мышке все еще "работает". По крайней мере для перемещения, остальное не проверял.
Сейчас координаты смещение курсора относительно точки не влияет на смещение объекта. Но если объект изначально выровнен не по сетке, то при попытке начать перемещение он будет выровнен. Чтобы игнорировать выравнивание нужно выполнять перемещение удерживая Alt.
Цитата: gtfox от 15 марта 2017, 15:27:16Предложения по интерфейсу редактора:
Не читал тему, может многое уже упоминалось.
Спасибо за список предложений. Обдумаем реализацию этих пунктов.
Не сохраняются значения масштабирования для переменной.
"Редактирование переменной > вкладка Дополнительно" параметр "Сдвиг запятой" можно переключить в режим "Масштабирования". Введенные туда значения не сохраняются и не применяются.
Я правильно понимаю, что мин/макс значения выбранной шкалы должны трансформироваться в значения мин/макс указанные в полях в режиме "Масштабирования"?
А вообще задача у меня отобразить кучу bool на одном тренде друг над другом. (примерно как на рисунке)
Из OPC приходят теги типа bool.
В настройках тега указываю тип переменной Single и масштабирование:
для 1-й: 0-10,
для 2-й: 10-20,
....
для 9-й: 90-100.
Думал что дело в преобразовании OPC-шного буля в SCAD-ный сингл,
но масштабирование не работает и для всяких word/real
ЦитироватьНе сохраняются значения масштабирования для переменной.
Действительно. Применяется только при создании новой переменной. Сейчас исправим, обновление сделаем завтра.
ЦитироватьЯ правильно понимаю, что мин/макс значения выбранной шкалы должны трансформироваться в значения мин/макс указанные в полях в режиме "Масштабирования"?
да, верно.
ЦитироватьСейчас исправим, обновление сделаем завтра.
Пользователям МонстроСКАД такое и не снилось :D
Цитата: Simple-Scada от 15 марта 2017, 16:00:38Цитата: Teodor от 15 марта 2017, 12:09:56Центрование по точке на сетке ближе к мышке все еще "работает". По крайней мере для перемещения, остальное не проверял.
Сейчас координаты смещение курсора относительно точки не влияет на смещение объекта. Но если объект изначально выровнен не по сетке, то при попытке начать перемещение он будет выровнен. Чтобы игнорировать выравнивание нужно выполнять перемещение удерживая Alt.
Спасибо, но перемещением здесь считается в т.ч. и просто повторный клик на достаточно мелком объекте (который весь попадает в зону перемещения).
Казалось бы, а зачем повторно выделять объект? А просто когда их много рядом, и надо проверить всем ли правильно проставлены переменные и теги, это происходит легко и регулярно. Благо это перемещение хоть отменить можно, и на том пока спасибо.
Можно просьбу личную?
Попробуйте проверять были-ли произведены изменения при выходе, чтобы каждый раз выходя не сомневаться, а сохранило-ли? Или хотя-бы кнопку "сохранить и выйти".
ЦитироватьПопробуйте проверять были-ли произведены изменения при выходе, чтобы каждый раз выходя не сомневаться, а сохранило-ли?
Сделаем в будущих обновлениях.
Цитата: gtfox от 15 марта 2017, 18:51:19Пользователям МонстроСКАД такое и не снилось :D
Немного затянули, но сделали лучше чем планировали. Скачать обновленную версию можно по этой ссылке (http://simple-scada.com/downloads/Simple-Scada%202.2.0.3%20(demo).rar). Если Вы уже сделали проект, то скопируйте его в папку Projects, затем откройте в обновленном редакторе и пересохраните его. Проект переведется на обновленную версию.
Для решения Вашей задачи теперь не нужно использовать масштабирование. Достаточно указать основную шкалу у переменных. В Вашем случае это Boolean переменные, а значит шкала должна быть 0-1. Масштабирование оставляем отключенным. Затем создаем тренды и включаем у них свойство "Задать положение" и вводим диапазон в свойствах "От" и "До". Например 10 и 20. Скада автоматически масштабирует шкалу и тренд будет отображен в этом диапазоне.
Цитироватьсделали лучше чем планировали
Благодарю, все получилось.
Продолжу свой список
Цитироватьhttp://simple-scada.com/forum/index.php?topic=63.msg3030#msg3030
Предложения по интерфейсу редактора:
10) Исчезает выделение строки переменной.
В окне "Редактора переменных" жмем "Изменить переменную", жмем "Отмена", выделение строки переменной сохранилось.
Если жмем "Применить", то выделение строки исчезает.
11) Предложение: сортировать список шкал и список трендов "Сверху вниз / Слева направо" - в 2 столбика (сейчас "Слева направо / Сверху вниз")
12) Предложение: при создании тренда, если поле "Описание переменной" пустое, подставлять имя самой переменной, вместо Trend(Х).
Либо, при создании переменной копировать имя переменной в поле "Описание переменной" (если оно пустое при первом сохранении). Тогда, при создании тренда, это "описание" будет само подставляться в "Название тренда".
13) Предложение: в настройках объекта "Временные тренды" (TM_TimeTrendView) выводить список созданных "Трендов"(Исторических трендов), с применением их настроек отображения(положения, цвета, шкалы).
14) Предложение: предпросмотр параметров шкалы в списке шкал. Выводить рядом с названием (мин.,макс.,ед. изм.), либо при наведении мыши.
Предложения по интерфейсу клиента:
2) В трендах:
Предложение: добавить возможность предварительной настройки (в editore) окна трендов клиента: кнопка слежения ">|", сетка, шкала, интервал времени.
(Это больше нужно при создании проекта/отладке, чем пользователю клиента. Чтобы проверить внесенные изменения, нужно постоянно натыкивать одни и те же кнопки. Если будет реализован "отладчик проекта", в котором сразу будет видно, что изменилось, то это "Предложение:", наверное, не нужно.)
gtfox, спасибо за список, предложения рассмотрим, проблему №10 поправим.
Можно ли расширить кол-во вариантов поля Время объекта Calendar? Сейчас там чч:мм:сс, чч:мм, чч. Например, ввести мм:сс.
И вопрос по работе функции ShowMessageAll(); Сейчас последнее вызванное сообщение затирает все предыдущие. То есть на экране всегда только одно последнее окно. А хотелось бы, чтобы это работало по-другому. Сколько раз вызвана функция - столько и окон с сообщениями, просто со смещением по координате, чтоб они не перекрывали друг друга. Например, лесенкой вниз вправо.
Сейчас столкнулся с проблемой. Я храню проект в папке Dropbox`а. Это такой облачный файлообменник. Когда я сохраняю проект и сервис Dropbox`a в этот момент синхронизирует файлы, то редактор у меня вываливается с ошибкой. Потому что идет борьба за права доступа к файлу и редактор предпочитает зависнуть, а потом вылететь с ошибкой. Все это заканчивалось в принципе безобидно. Останов синхронизации Dropbox`a, перезапуск редактора. Но сейчас во время такой же ситуации, редактор подвис и некорректно сохранил проект и теперь запуск этого проекта в редакторе приводит к зависанию редактора с вылетом с ошибкой - Exception EReadError in module Editor.exe at 00056D3A. Stream read error.
Для тех, кто плохо читает инструкции...
У меня отопление делится на зоны. Что входит в зону - параметр контроллера, а вот имя зоны на контроллере и не предусмотрено. В итоге надо создать что-то типа ретейн переменной. Это можно сделать проще чем сохраняя и загружая их из файла/БД?
Цитата: TeNQ от 24 марта 2017, 16:36:03Можно ли расширить кол-во вариантов поля Время объекта Calendar? Сейчас там чч:мм:сс, чч:мм, чч. Например, ввести мм:сс.
Да, конечно. Добавим.
Цитата: TeNQ от 24 марта 2017, 16:36:03И вопрос по работе функции ShowMessageAll(); Сейчас последнее вызванное сообщение затирает все предыдущие. А хотелось бы, чтобы это работало по-другому. Сколько раз вызвана функция - столько и окон с сообщениями.
Можно так сделать, но не в ближайших обновлениях, т.к. придется менять текущую систему окон.
ЦитироватьКогда я сохраняю проект и сервис Dropbox`a в этот момент синхронизирует файлы, то редактор у меня вываливается
Мы изменим процесс открытия и сохранения файлов проекта и редактор не будет вылетать с ошибкой, вместо этого будет выведено предупреждение о том, что проект не удалось сохранить. Но при этом не решится проблема с порчей проекта если Dropbox решит удалить или синхронизировать файлы при сохранении. Т.е. будет выдано предупреждение, что сохранение не удалось (из-за этого проект на жестком диске возможно будет уже испорчен) и если повторно не выполнить корректное сохранение, то проект останется испорченным.
Цитата: Teodor от 24 марта 2017, 18:21:08В итоге надо создать что-то типа ретейн переменной. Это можно сделать проще чем сохраняя и загружая их из файла/БД?
Нет, только сохраняя и подгружая из файлов или БД.
ЦитироватьНо при этом не решится проблема с порчей проекта если Dropbox решит удалить или синхронизировать файлы при сохранении. Т.е. будет выдано предупреждение, что сохранение не удалось (из-за этого проект на жестком диске возможно будет уже испорчен) и если повторно не выполнить корректное сохранение, то проект останется испорченным.
Уж лучше пусть вылетает, но не портит) Вообще можно старый проект на время сохранения убирать во временную папку и если сохранение прошло успешно, то стирать ее. А если нет, то восстанавливать из нее. Конечно все это весьма случайно и редко происходит. Но если происходит, то можно потерять изменения в проекте минимум за день. Если дисциплинированно делать копии)
ЦитироватьВообще можно старый проект на время сохранения убирать во временную папку и если сохранение прошло успешно, то стирать ее.
Думали об этом, но очень не хочется этого делать, т.к. время на сохранение проекта увеличится почти в два раза. С другой стороны, если этого не делать, то нормально организовать сохранение вместе с включенной синхронизацией Dropbox'а вряд ли удастся. Подумаем сейчас.
В целом, правильнее было бы выделять отдельную папку и её синхронизировать в Dropbox, периодически копируя в неё проект. А так, как ни крути, получается, что две программы друг с другом борются и Dropbox лезет куда не надо, а это нехорошо.
ЦитироватьА если нет, то восстанавливать из нее.
И ещё, с включенной синхронизацией восстановить скорее всего не удастся, т.к. восстанавливать придется поверх тех файлов, которые блокированы Dropbox'ом. Это ещё раз наводит на мысль о том, что для синхронизации нужно заводить отдельную папку.
Цитата: Simple-Scada от 24 марта 2017, 19:42:07Цитата: Teodor от 24 марта 2017, 18:21:08В итоге надо создать что-то типа ретейн переменной. Это можно сделать проще чем сохраняя и загружая их из файла/БД?
Нет, только сохраняя и подгружая из файлов или БД.
Так и поступил, но возник еще глупый вопрос. Файл хранится на сервере или у клиента? Точнее увидят ли 2 клиента одно и то-же?
Теперь пара вопросов по окнам. Точнее по размещению на них объектов. Я не могу объяснить что мне не так и как надо, но так как есть - совсем не то. Почему при вставке, все что не влазит в окно - сваливается в одну большую кашу. Хай бы себе вылетало за пределы, как происходит, если уже после вставки окно уменьшить. Я так понимаю, что фактически это не окно, а своего рода панеть с элементами на ней и потому скролов там не допилить. Я вот попался на то, что мне аккуратно сложило 2 последних строчки элементов, скрыв одну под второй, а ты ищи куда они делись...
В общем я не знаю как правильно, но так точно не очень.
Еще просьба из раздела "хотелось бы" по редактору визуализации. В кореловском пакете есть очень удобное решение для выравнивания объектов. Если выделяется несколько объектов, то при нажатии определенной клавиши, они все равнялись по последнему выбраному. Тут буквы клавиатуры не задействованы на этапе выделения нескольких объектов, потому тоже могли бы так использоваться. (L)еft (C)enter (R)ight - вертикаль, (T)op с(E)nter (B)ottom - горизонталь. Если можно отследить порядок выбора, то работы тут сравнительно немного, а вот юзабельности добавит тем кто выстраивает кучи компонентов.
И опять по редактору... А можно попросить при выборе переменной кнопочку "не закрывать"(зафиксировать) на допменюшке? Реально задалбывает, когда мелькает туда-сюда при массовой смене переменной. Я ее потом отожму...
Цитата: Simple-Scada от 17 марта 2017, 11:10:05Цитата: gtfox от 15 марта 2017, 18:51:19Пользователям МонстроСКАД такое и не снилось :D
Немного затянули, но сделали лучше чем планировали. Скачать обновленную версию можно по этой ссылке (http://simple-scada.com/downloads/Simple-Scada%202.2.0.3%20(demo).rar). Если Вы уже сделали проект, то скопируйте его в папку Projects, затем откройте в обновленном редакторе и пересохраните его. Проект переведется на обновленную версию.
А как быть обладателям платной версии? Необходимо запрашивать обновления самостоятельно :'(?
Или у Вас есть возможность вносить исправления не только в demo версию и оперативно направлять обновления всем покупателям Simple-Scada 2 без дополнительного запроса?
Цитата: Teodor от 25 марта 2017, 12:22:05Так и поступил, но возник еще глупый вопрос. Файл хранится на сервере или у клиента? Точнее увидят ли 2 клиента одно и то-же?
Файл хранится на сервере. Если Вы в скрипте не указали путь, то он хранится в папке "..\Simple-Scada 2\Projects\Папка_проекта\User files\". При этом все клиенты должны увидеть одно и то же, т.к. сервер автоматически отправляет изменения клиентам. Например, если Вы загружаете значение из файла во внутреннюю переменную, то на всех клиентах её значение будет одинаковым.
ЦитироватьПочему при вставке, все что не влазит в окно - сваливается в одну большую кашу. Хай бы себе вылетало за пределы, как происходит, если уже после вставки окно уменьшить.
Так и было изначально. В работе такой вариант тоже выглядит странно, а если на мнемосхеме за окном много объектов, то визуально объекты за пределами окна "смешиваются". Одно из решений - увеличить размер окна перед вставкой так, чтобы все объекты поместились без смещения, затем отредактировать их положение и размеры и уменьшить окно.
ЦитироватьЕще просьба из раздела "хотелось бы" по редактору визуализации. В кореловском пакете есть очень удобное решение для выравнивания объектов.
А можно попросить при выборе переменной кнопочку "не закрывать"(зафиксировать) на допменюшке?
Да, сделаем, но скорее всего не в самое ближайшее время, т.к. сначала нужно решить более популярные запросы.
Цитата: gendol от 26 марта 2017, 06:16:48Или у Вас есть возможность вносить исправления не только в demo версию и оперативно направлять обновления всем покупателям Simple-Scada 2 без дополнительного запроса?
Конечно. Обладателям полной версии при выходе новой версии скады сразу отправляется ссылка на скачивание (отправляется на тот e-mail с которого заказывали скаду для покупки). Если Вы приобрели скаду через какую-то организацию, то напишите на support@simple-scada.com, мы внесем Ваш e-mail в список рассылки.
Почему версия предназначенная для работы с USB-ключом не позволяет запустить даже Demo-проект без ключа? По-моему это неправильно)
Напоролся я на очередную пакость. Очередная БД отдает мне данные GET ответом в JSON. Я "подозреваю", что местными средствами вопрос парсинга порешить нельзя. Не вопрос, я накидал нужный мне парсер в лазарусе в виде консольной прилоги, который создает удобный для скады файлик.
В связи с чем возникает вопрос. Можно ли из скады запускать сторонние приложения, дабы не гонять зря шедулер и не зависеть от него? Т.к. либы все штатно лазарусовские, то можно ли как-то их скормить скаде и провести обработку внутри?
ЦитироватьПочему версия предназначенная для работы с USB-ключом не позволяет запустить даже Demo-проект без ключа?
В этом случае вся система защиты с USB-ключами потеряет смысл и у потенциального взломщика появится возможность любой проект представить скаде как демо-проект.
ЦитироватьМожно ли из скады запускать сторонние приложения, дабы не гонять зря шедулер и не зависеть от него?
Для запуска внешних приложений используется процедура RunApplication (http://simple-scada.com/scripts_manual?section=global_procedure), например:
begin
RunApplication(GetClientName, 'calc.exe', ' '); // запустить калькулятор на текущем клиенте.
end.
Цитата: Simple-Scada от 28 марта 2017, 10:05:03Для запуска внешних приложений используется процедура RunApplication (http://simple-scada.com/scripts_manual?section=global_procedure), например:
Вот спасибо, хорошо...
Тогда еще пара странных вопросов. Теперь по работе с файлами.
Все по инструкции. Создаю, сохраняю, открываю, прелесть. Усложняю игру, пытаюсь открыть сторонний файл, вываливается ошибка... Имею подозрение что прикол в разделителях и штатные #10 (#10#13) не проходят т.к. в сгенеренном скриптом файле разделитель явно другой. А какой?
Там все еще не так... Я пока экспереметирую, но буду благодарен за правильное форматирование.
А еще, если можно, подскажите как просто прочитать строку?
Цитироватьпытаюсь открыть сторонний файл, вываливается ошибка...
Вы говорите о текстовом файле, или о двоичном (бинарном)? Это имеет важное значение. Если файл текстовый, то все просто - он состоит из строк, которые, как было правильно отмечено - заканчиваются символами конца строки, только не #10#13, а #13#10 (0d0a). В текстовый файл все записывается и читается в текстовом виде. Т.е. если нужно записать число, то его нужно перевести в строку и только потом писать в текстовый файл. Если нужно считать число из файла, то сначала читаем его в виде строки, а затем переводим в число, например в Integer. Недавно мы отвечали на подобный вопрос в этой теме (http://simple-scada.com/forum/index.php?topic=344.msg3036#msg3036).
И ещё, для текстовых файлов: в зависимости от того, как был сохранен файл, в нём может быть отметка BOM (https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2). Если файл создается средствами Simple-Scada, то эта отметка не ставится.
Также есть двоичные файлы (https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB). В них нет строк и данные представлены как последовательность байтов. Плюсы в том, что не нужно приводить все к строке и можно читать и писать значения с любым типом данных, минусы - такой файл не получится просмотреть сторонними приложениями.
Simple-Scada 2 может работать и с текстовыми файлами и с двоичными. Для текстовых нужно использовать этот набор методов (http://simple-scada.com/scripts_manual?section=text-file). А для двоичных этот набор (http://simple-scada.com/scripts_manual?section=file-work-binary).
Добрый день.
А можно добавить возможность изменения цвета и размера крестика, закрывающего окна? А то после изменения цвета и размера названия окна возникает диссонанс с белым крестиком.
Добрый вечер.
Спасибо за очередное обновление. Добавлены очень полезные инструменты.
У меня есть, так сказать, небольшое предложение.
Не могли бы Вы добавить в инструмент "Список сообщений" возможность выбора выводимого списка.
Исходя из уже существующих групп:
-Неподтвержденные
-Все сообщения
-Выход за границы
ЦитироватьНе могли бы Вы добавить в инструмент "Список сообщений" возможность выбора выводимого списка.
Присоединяюсь. Только, если можно расширить возможность выбора до пользовательской группы/групп. В идеале я бы хотел, чтобы это работало так. Я создаю инструмент - > выбираю какие группы сообщений, я хотел бы в нем видеть -> в работе вижу в данном списке только сообщения из групп, которые были к нему привязаны. И еще было бы здорово, если бы были дополнительные функции у этого инструмента. Например, подтверждение всех сообщений в данном конкретном Списке сообщений. Например, отработала программа - и я очищаю весь список для конкретного прибора. Сейчас я все это делаю дублированием журнала текстовыми сообщениями на соответствующем окне и это неудобно. У меня однотипные приборы и, соответственно, однотипные сообщения, и без фильтрации в сообщениях просто каша.
И еще было бы здорово, если функцию AddMessage можно было бы применить к конкретному списку сообщений.
Можно ли как то ячейке таблицы при работе с переменной типа DateTime придать свойства инструмента Календарь. Сейчас для ввода длительности шагов программы я создал кучу объектов Календарь, а кол-во шагов, номер программы ввожу отдельно. А хотелось бы все в одну таблицу вводить - и числа, и строки, и дату/время.
Цитата: pan-nn от 28 марта 2017, 16:20:45А можно добавить возможность изменения цвета и размера крестика, закрывающего окна?
Сделаем чтобы цвет крестика зависел от цвета шрифта заголовка. Тогда все будет в гармонии.
Цитата: deldemo от 28 марта 2017, 17:19:03Не могли бы Вы добавить в инструмент "Список сообщений" возможность выбора выводимого списка. Исходя из уже существующих групп:
Цитата: TeNQ от 28 марта 2017, 20:28:04Присоединяюсь. Только, если можно расширить возможность выбора до пользовательской группы/групп... И еще было бы здорово, если бы были дополнительные функции у этого инструмента. Например, подтверждение всех сообщений в данном конкретном Списке.
Именно такая доработка компонента изначально планировалась и все описанное будет сделано в будущих обновлениях.
ЦитироватьИ еще было бы здорово, если функцию AddMessage можно было бы применить к конкретному списку сообщений.
Подумаем об этом.
ЦитироватьМожно ли как то ячейке таблицы при работе с переменной типа DateTime придать свойства инструмента Календарь.
Уточните, какие именно свойства календаря требуются? Формат времени и кнопка для отображения панели выбора даты?
ЦитироватьУточните, какие именно свойства календаря требуются? Формат времени и кнопка для отображения панели выбора даты?
Именно так - формат времени и кнопка.. Календарь ведь по-сути выполняет функцию форматированного ввода времени/даты. Но только для одного поля. Для ячейки таблицы при вводе времени/даты сейчас такого форматированного ввода нет. Поэтому я использовал календари. А все-таки правильней использовать таблицу для этого.
Ханивел решил эту проблему элементом "Sheduler".
Шедулер имеет возможность задания выходного значения по умолчанию и добавление измененного значения для событий от-до на неделю. Кроме того есть "Special Events" - Одноразовые события "от-до", например на праздники.
Добрый день.
Подскажите, пожалуйста, существует ли сейчас возможность реализации, некой, панели управления.
*В моем понимании >> Панель управления - это отдельное окно без возможности его закрытия, присутствующие на всех страницах проекта.
т.е. даже элементарные функции управления должны на этом окне отсутствовать.
Если нет возможности в данный момент реализовать данный тип окна (панели управления) будьте любезны добавьте в следующих обновлениях.
Цитата: deldemo от 29 марта 2017, 13:22:43Добрый день.
Подскажите, пожалуйста, существует ли сейчас возможность реализации, некой, панели управления.
*В моем понимании >> Панель управления - это отдельное окно без возможности его закрытия, присутствующие на всех страницах проекта.
т.е. даже элементарные функции управления должны на этом окне отсутствовать.
Если нет возможности в данный момент реализовать данный тип окна (панели управления) будьте любезны добавьте в следующих обновлениях.
Я это решал через ***у :)
Создаем переменную, поле для ввода и 2 скрипта...
1 скрипт: переменная := true.
2 скрипт: окно.ShowAll; переменная := false;
на онКолуз окна вешаем скрипт1
к полю привязаваем переменную, поле убираем из видимой области и на онДатачендж вешаем скрипт2
Тогда при закрытии окна переменная стает тру, после чего скрипт2 опять открывает его и ставит переменную в фальш. ;D
Teodor большое спасибо!!!
Может можно и проще, но мы простых путей не ищем. :)
Цитата: deldemo от 29 марта 2017, 13:22:43Добрый день.
Подскажите, пожалуйста, существует ли сейчас возможность реализации, некой, панели управления.
Пока реализацию нужно делать как предложил
Teodor. Сейчас эта функция очень слабо востребована и если будут поступать ещё предложения по реализации такой панели, то будем добавлять.
От себя добавлю что да, надо... При чем, желательно чтобы на ней было насколько "страниц"(не табов, а полностью независимых) со своими идентификаторами для быстрого перехода к ним(выбора активной). Шото типа пользовательского меню. То что я просил по поводу 3 и 4 уровня страниц вполне бы решилось с такой панели вместо страничного менеджера. Неплохо сразу предосмотреть методы "назад" (предыдущая страница), и "домой" (нулевая/первая) для навигации.
Для примера, я убираю оконный менеджер и ставлю сбоку панельку. На панельке корпуса (1,2,3). Щелчок на кнопке (скрипт) перекидывает страницу меню (прячет элементы принадлежащие предыдущей/показывает принадлежащие целевой), в результате я вижу в меню кнопки с номерами этажей. Тыкаю на этаже, вижу на панели номера и страницу с планом этажа... И т.д.
Здравствуйте.
Так уж вышло что пришлось мне плотненько поработать с инструментом "Список"
Напишу неудобства которые были обнаружены.
1.
Создаю окно в него закидываю "списки" (с лева на право с верху в низ - cmbMarsh1_home, cmbMarsh1_end, cmbMarsh2_home, cmbMarsh2_end.....)
(https://storage8.static.itmages.ru/i/17/0331/s_1490934937_8277985_a0d1622033.png) (https://itmages.ru/image/view/5608424/a0d16220)
К первому "списку" привязываю скрипт
case Marsh1_home{переменная WORD привязанная к первому "списку"}.AsInt of
0: cmbMarsh1_end{Второй "список"}.Clear;
1: begin
cmbMarsh1_end.Clear;
cmbMarsh1_end.AddItem('Не выбрано');
cmbMarsh1_end.AddItem('Силос 1');
cmbMarsh1_end.AddItem('Силос 2');
end;
2:
begin
cmbMarsh1_end.Clear;
cmbMarsh1_end.AddItem('Не выбрано');
cmbMarsh1_end.AddItem('Дмрт 110');
cmbMarsh1_end.AddItem('Биг-Бег');
end;
end;
И тут получается трабл строки которые я создаю начинаются не с нуля. Т.е. та строка которая должна была быть привязана к нулю не встает в первую строку, а встает первой в выпадающем списке. Но как мне кажется она должна сразу занять место выбранного.
(https://storage9.static.itmages.ru/i/17/0331/s_1490934957_5626767_2598d06a87.png) (https://itmages.ru/image/view/5608426/2598d06a)
(https://storage1.static.itmages.ru/i/17/0331/s_1490934975_7702622_c9c856718a.png) (https://itmages.ru/image/view/5608427/c9c85671)
2.
И еще не очень удобно создавать скриптом строки по автомату подряд,. Хотелось бы создавая новую строку указывать ей "номер" и "значение" .
И было бы вообще замечательно иметь возможность скрывать скриптом те или иные строки.
P.S прошу прощение за грамматику и орфографию."руский школа мало учился))"
ЦитироватьТ.е. та строка которая должна была быть привязана к нулю не встает в первую строку, а встает первой в выпадающем списке.
Сейчас для этого нужно чтобы прошло изменение переменной с которой связан список. Тогда строка которая соответствует значению переменной станет в список. Мы улучшим систему и сделаем чтобы эта проверка также происходила при каждом AddItem, тогда строка сама будет становиться в список.
ЦитироватьИ еще не очень удобно создавать скриптом строки по автомату подряд,. Хотелось бы создавая новую строку указывать ей "номер" и "значение" .
И было бы вообще замечательно иметь возможность скрывать скриптом те или иные строки.
Этого обещать в ближайшем будущем не можем.
Здравствуйте.
У меня вопрос: можно ли как-то сделать так, чтобы графический элемент (например, кнопка) был виден на всех страницах?
Здравствуйте!
Нет, это невозможно. Придется скопировать объект на все страницы.
Можно ли добавить функцию преобразовывающую переменную типа DateTime в строку пригодную для использования в виде имени файла. По аналогии AsSQLDateTime - AsFileName. Например, я хочу создать отчет с именем файла содержащим время начала и конца создания отчета. И разделитель времени ":" не годится для имени файла. Или добавить возможность в SetTimeFormat изменить разделитель, например, на "." или "_". В принципе я сделал уже используя существующие функции и работает, но просто был бы короче код.
aReportName := 'Отчет по КПДС-1 с ' + DateToStr(vrTRM1_StartIn.Value) + ' ' +
IntToStr(HourOf(vrTRM1_StartIn.Value)) + '.' +
IntToStr(MinuteOf(vrTRM1_StartIn.Value)) + ' по ' +
DateToStr(vrTRM1_EndAt.Value) + ' ' +
IntToStr(HourOf(vrTRM1_EndAt.Value)) + '.' +
IntToStr(MinuteOf(vrTRM1_EndAt.Value)) ;
TeNQ, да, сделаем.
Здравствуйте. Мы приобрели ПРО АНЛИМ версию программы для построения очень большой СКАДА системы взаимодействующей с OPC серверами Insat. Мне предстоит работать с большим количеством переменных и данных. СКАДА будет содержать много таблиц, отчетов и мнемосхем. Много графических объектов. Вот, что я хочу видеть в вашем редакторе:
1. Контекстное меню у объекта по правой кнопке мыши.
2. Выравнивание объектов относительно друг друга и в пространстве (наподобие WinCC).
3. Редактирование объектов по двойному клику, а не только из панели свойств.
4. Присвоение одного свойства нескольким объектам.
5. Перезапуск клиента из редактора для тестирования проекта.
6. Горячие клавиши для доступа к пунктам меню.
7. Добавьте возможность объединять объекты в группы.
8. Редактирование ячеек таблицы по двойному клику (ввод текста, а то только из свойств).
9. Возможность изменять цвет отдельных ячеек таблицы (просто или по событию).
Надеюсь, что в будущем это будет реализовано. Иначе наш проект затянется в разработке :'(
ЦитироватьЗдравствуйте. Мы приобрели ПРО АНЛИМ
Ребята это конечно не мое дело, Но! Прежде чем покупать Вы хотя бы демку попробовали.
Конечно попробовали. Сделали тест, но удобств, все же, хочется.
godygadu, часть описанных пунктов будет реализована в будущих обновлениях.
В компоненте "таблица", на сколько я понял нельзя объединить несколько ячеек?
Предполагается ли в последующих обновлениях сделать график зависимости двух переменных друг от друга, т.к. некоторое испытательное оборудование требует наличие не только трендов?
Добрый день!
Используем 2.2.0.5 standart в своем проекте. Вопрос по массивам:
есть MX OPC Server, где создан массив на 10 слов. В импорте переменных данный тип не распознается, однако возможность добавить переменную с индексом можно (чем я и пользуюсь). Дело в том, что мне нужно вывести все десять переменных единовременно (нельзя, чтобы они пришли с опозданием одна относительно другой).
Вопрос, насколько правильно назначать такие переменные и возможна ли более корректная работа с массивами?
Цитата: AutoCY от 11 апреля 2017, 09:04:12В компоненте "таблица", на сколько я понял нельзя объединить несколько ячеек?
Такой возможности нет.
Цитата: AutoCY от 11 апреля 2017, 09:04:12Предполагается ли в последующих обновлениях сделать график зависимости двух переменных друг от друга, т.к. некоторое испытательное оборудование требует наличие не только трендов?
Какая именно зависимость нужна? Нужно выполнить расчет в отдельную переменную и вывести её на экран? Или нужно вывести тренд зависимости от двух других трендов?
Цитата: igorigor07 от 12 апреля 2017, 15:22:14Вопрос, насколько правильно назначать такие переменные и возможна ли более корректная работа с массивами?
Переменные которые ссылаются на конкретный элемент массива будут работать также, как если бы они были взяты из отдельной OPC-переменной. В данный момент для работы с элементами массива, возможен только описанный Вами вариант. В будущих обновлениях будет добавлен тип "Массив" и не придется добавлять каждый элемент массива. А компоненты получат соответствующие свойства для работы с массивами.
ЦитироватьКакая именно зависимость нужна? Нужно выполнить расчет в отдельную переменную и вывести её на экран? Или нужно вывести тренд зависимости от двух других трендов?
Предполагается график зависимости двух переменных, который будет формироваться по выбранному интервалу времени. Т.е. через определенный интервал считываются значения с двух переменных и строится график по абсциссе и ординате.
В скором времени буду модернизировать разрывную машину, которая испытывает определенные материалы, так вот там необходим подобный график для наглядности зависимости прилагаемого усилия разрыва к перемещению материала. Где Y - усилие разрыва, X - перемещение.
Просмотр XY-трендов возможно будет добавлен позже, но скорее всего не скоро, т.к. приоритет сейчас у системы отчетов и web-клиента.
Цитата: deldemo от 31 марта 2017, 08:07:53И тут получается трабл строки которые я создаю начинаются не с нуля. Т.е. та строка которая должна была быть привязана к нулю не встает в первую строку, а встает первой в выпадающем списке. Но как мне кажется она должна сразу занять место выбранного.
Добавлю от себя:
После выполнения метода clear получаем пустой комбобокс. Если нажимаю на него, то вместо раскрытия происходит ошибка (закрывать приходится диспетчером). А если после clear заполнить список, то все ОК.
Спасибо за информацию о проблеме. Устранили её недавно. В ближайшее время опубликуем обновление.
Добрый день!
Возник вопрос по компонентам:
Мне нужно по какому-либо событию (не имеет значения) формировать список для того, чтобы оператор мог выбрать из него определенное значение. Этот список я беру из БД. Возник вопрос, каким компонентом пользоваться? Мне идеально бы подошла таблица, но, как я понял, ее нельзя заполнять из скриптов.
Получается, для этих целей есть только комбобокс? Он не удобен (в моем случае хочется показать полный список в отдельно окне).
Подскажите, может я что-то не понял? Чем еще можно предоставить возможность выбора по списку с заполнением этого списка скриптами?
Добрый день!
есть предложение по поводу изменения шкалы на графике в вертикальном положении, для удобства сравнивать два графика в более крупном масштабе, т.е. прокручивать шкалу вертикально, на данный момент есть только горизонтальная прокрутка без увеличения.
Здравствуйте!
ЦитироватьМне нужно по какому-либо событию (не имеет значения) формировать список для того, чтобы оператор мог выбрать из него определенное значение. Этот список я беру из БД. Возник вопрос, каким компонентом пользоваться? Мне идеально бы подошла таблица, но, как я понял, ее нельзя заполнять из скриптов.
Сейчас для этой задачи подойдет только компонент "Список". В дальнейшем возможности работы с таблицей из скриптов будут расширены, в том числе появится возможность заполнения таблицы данными из БД.
Цитироватьесть предложение по поводу изменения шкалы на графике в вертикальном положении, для удобства сравнивать два графика в более крупном масштабе, т.е. прокручивать шкалу вертикально
Такую функцию планируется добавить в дальнейшем.
Добрый день!
Еще есть некорректная история, на мой взгляд.
Создаем переменные. По умолчанию шкала отключена, все хорошо, она и не нужно (для чего она применяется, попутно вопрос?).
Создаем объект Поле и связываем с этой переменной. Так ввести больше 100 не получается. Приходится создавать шкалу до 10000 (условно) и все переменные делать с этой шкалой.
И заодно предложение: в сообщениях можно добавит кнопку "активные аварии". Не просмотренные есть, но это не то - хочется видеть список только того, что нужно устранить на данный момент (человек может просмотрел - но не устранил...)
Здравствуйте!
Каждая переменная проекта имеет
шкалу (http://simple-scada.com/manual?section=scale), которая по умолчанию устанавливается в диапазон 0-100. При создании проекта часто приходится использовать переменные, которые имеют одинаковые диапазоны значений, например переменные уровней (0-100), температур (0-120; 0-150...) и т.д. Для этого и нужны шкалы – один раз объявив шкалу ее можно использовать для всех однотипных переменных. Тренды архивируемых переменных, и временные тренды отображаются в диапазоне уставленных для них шкал. Если связать объект "Уровень" с переменной и активировать свойство "Шкала", то для уровня автоматически применится шкала установленная в переменной. Ввод данных в объекты связанные с переменными ограничен шкалой, чтобы оператор не мог случайно ввести недопустимое значение. Также, в процессе эксплуатации часто возникает необходимость, например заменить датчик температуры 0-100 градусов на 0-120, так как нет замены на аналогичный. При этом, благодаря шкалам потребуется только поменять шкалу переменной датчика - все тренды и объекты в проекте связанные с переменной автоматически обновят данные. Если бы шкал не было пришлось бы задавать диапазон мин./макс. для каждого объекта проекта вручную.
ЦитироватьИ заодно предложение: в сообщениях можно добавит кнопку "активные аварии". Не просмотренные есть, но это не то - хочется видеть список только того, что нужно устранить на данный момент (человек может просмотрел - но не устранил...)
Список активных аварий планируется добавить.
Добрый день!
Со шкалой понял, хотя, как мне кажется, лучше была бы возможность ее отключать или делать диапазоном с тип данных переменной. Перебивать кучу тагов после импорта не очень быстрое дело...
Еще вопрос: есть объект поле, с вводом чисел все в порядке. А буквы не получается вводить с клиента. При этом в editor'е можно задать значение буквенное и оно отображается...
Здравствуйте!
ЦитироватьПеребивать кучу тагов после импорта не очень быстрое дело...
В редакторе поддерживается групповое редактирование свойств переменных. Можно выделить все переменные группы (Ctrl+A), можно выделить необходимые переменные зажав Shift или Ctrl и кликая по переменным. Затем нажать кнопку "Изменить выделенные"(со значком карандаша) и установить требуемую шкалу. Также рекомендуем ознакомиться с
ответами на часто задаваемые вопросы (https://simple-scada.com/help/manual/faq.html)
ЦитироватьЕще вопрос: есть объект поле, с вводом чисел все в порядке. А буквы не получается вводить с клиента. При этом в editor'е можно задать значение буквенное и оно отображается...
Какой тип у переменной связанной с полем? Для того, чтобы вводить в поле буквы необходимо использовать переменную с типом данных "String".
Оба совета помогли, спасибо!
Есть функция GetVariableByName. Не очень она удобная - скрипты распухают и становятся нечитаемыми, но как есть. Можно ли ввести по аналогии функцию GetObjectByName для того, чтобы обратиться к объекту в универсальном скрипте.
Например
ЦитироватьGetObjectByName('Text_TRM' + aX + '_Activate').Text := 'Активирован "Стоп" - ' + DateTimeToStr(Now);
Иначе остается только работать с оператором case.
ЦитироватьНе очень она удобная - скрипты распухают и становятся нечитаемыми, но как есть.
Для читаемости кода, наверно, максимум что можно предложить, это менять подобные конструкции:
begin
Text1.Text := GetVariableByName('variable' + IntToStr(Sender.Tag)).AsStr;
end;
Такими:
var
aName: string;
aVar: TM_Variable;
begin
aName := 'variable' + IntToStr(Sender.Tag); // формируем имя
aVar := GetVariableByName(aName); // ищем переменную по имени
Text1.Text := aVar.AsStr; // используем
end;
Код растет по количеству строк, но в каждой строке выполняется отдельное простое действие, которое легко читается.
ЦитироватьМожно ли ввести по аналогии функцию GetObjectByName для того, чтобы обратиться к объекту в универсальном скрипте.
Можно, но есть важные причины по которым мы не добавили эту функцию вместе с GetVariableByName. Нужно время.
Так и буду делать, спасибо.
ЦитироватьМожно ли сделать так, чтобы они появлялись в списке через Ctrl + пробел в скрипте, если они в нем объявлены.
Да, конечно. Так и сделаем в будущих обновлениях.
Кстати, по поводу GetVariableByName, она возвращает указатель на переменную и если переменная с таким именем не найдена, то вернётся нулевой указатель "nil". Поэтому идеальный код должен выглядеть так:
var
aName: string;
aVar: TM_Variable;
begin
aName := 'variable' + IntToStr(Sender.Tag); // формируем имя
aVar := GetVariableByName(aName); // ищем переменную по имени
if aVar <> nil then // если переменная найдена
Text1.Text := aVar.AsStr; // используем
end;
Просьба по выпадающему списку... Можно добавить свойство "не показывать стрелку"?
Удобная штука в к-ве такого себе enum, если еще сделать его не активным.
У меня нарисовалась убедительнейшая просьба.
Организовать импорт/экспорт скриптов(желательно оптом), окон и страниц проекта...
Отдельное окошко где проставляются птички, что именно экспортировать, и в обратном порядке, что из этого всего мне надо сегодня.
Возможно, даже, нечто типа "библиотеки" с возможностью прозрачно добавить файлы с описаниями. В конце-концов, таким образом можна нафаршировать базовую версию скады заготовками скриптов, которые раскиданы по всему форуму.
А на уже, надо скопировать из одного проекта в другой кучу всего, при том, что там уже своего хватает.
Т.к. скриптов уже много и все они по папочкам, то после удаления "лишних" переменных, некоторые перестали компилироваться... Не, в общем понятно, НО!
1. Неплохо бы подсвечивать не только сбойный скрипт, но и все папки до самого верху где он есть.
2. Отличненько было бы добавить кнопку типа "исключить из компиляции". То-есть, я понимаю, что скрипт кривой, но он мне будет нужен позже. Как вариант - закоментировать, но тогда, по факту, скрипт есть и "вроде" исполняется. А где и какой так "исполняется" надо уже искать.
Цитата: Teodor от 17 мая 2017, 18:04:08Организовать импорт/экспорт скриптов(желательно оптом), окон и страниц проекта...
Импорт/Экспорт разных частей проекта обязательно сделаем в будущих обновлениях.
ЦитироватьКак вариант - закоментировать, но тогда, по факту, скрипт есть и "вроде" исполняется. А где и какой так "исполняется" надо уже искать.
Комментированный скрипт не будет исполняться. В будущем возможно добавим функцию быстрого включения/выключения скриптов.
Я о другом. Скрипт закоментированный закреплен за объектом и с т.з. системы все кошерно. Скрипт "исполняется", хотя по сути он пустой.
ЦитироватьСкрипт "исполняется", хотя по сути он пустой.
Вы говорите о компиляции скрипта в Редакторе? Так и пусть компилируется, на самом деле он просто будет игнорироваться во время работы проекта на сервере. Или мы снова неправильно поняли?
Цитата: Simple-Scada от 18 мая 2017, 18:46:52ЦитироватьСкрипт "исполняется", хотя по сути он пустой.
Вы говорите о компиляции скрипта в Редакторе? Так и пусть компилируется, на самом деле он просто будет игнорироваться во время работы проекта на сервере. Или мы снова неправильно поняли?
Да... В большом проекте, который, к тому-же, постоянно меняется, очень несложно забыть, что ты "закоментировал" нечто. Совсем другое дело, когда при компиляции/сохранении скрипт будет помечен пустым/отключенным и появится некое предупреждение в стиле "а зачем у тебя там и там вот этот пустой скрипт прикручен?".
А еще неплохо бы некоего "инспектора" поиметь. как по скриптам, так и по переменным. Неиспользуемые переменные, неиспользуемые скрипты, связи скриптов с переменными, скриптов и переменных с объектами. Ну и собсно то что выше.
Аналогично не плохо было-бы иметь возможность "заморозить" ОРС переменные, фактически, временно переведя их в разряд внутренних, но не перебирая их поштучно, а просто поставив соотв. птичку на выделенной группе. Когда мне необходимо было проделать такой маневр, то проще было удалить и раскопировать, а потом вспоминать где они были, т.к. линки на объектах удалились уже.
Да... А при наличии инспектора их автоматом и удалять-то не надо, т.к. это всегда можно сделать в нем.
Добрый день!
Хотел бы предложить добавить к сообщениям св-во "подпись" (или назвать по-другому, не важно). Тогда можно было бы составить набор стандартных событий и копировать сообщения, меняя только эту подпись (наименование оборудования, например). А так приходится перелопачивать все события...
И еще, если это возможно, для общих трендов хотелось бы задавать кол-во меток (как это реализовано для объекта timetrendviewer).
А что конкретно надо? Я, например, не понял.
Здравствуйте уважаемые.
Добавьте пожалуйста историю ip адресов ( в виде выпадающего списка ), если есть токая возможность.
Очень бы пригодилось при наладке.
(https://storage5.static.itmages.ru/i/17/0519/s_1495207226_3927218_cff4f3cc99.jpg) (https://itmages.ru/image/view/5749682/cff4f3cc)
Teodor, спасибо за уточнения, теперь понятно.
Цитата: igorigor07 от 19 мая 2017, 17:12:39Хотел бы предложить добавить к сообщениям св-во "подпись". Тогда можно было бы составить набор стандартных событий и копировать сообщения, меняя только эту подпись.
И еще, если это возможно, для трендов хотелось бы задавать кол-во меток (как это реализовано для объекта timetrendviewer).
Цитата: deldemo от 19 мая 2017, 18:20:51Добавьте пожалуйста историю ip адресов ( в виде выпадающего списка ), если есть токая возможность.
Спасибо. Рассмотрим данные предложения для будущих обновлений.
deldemo, не забывайте что в Options.exe, в разделе Simple-Client, можно ввести IP-адрес сервера, чтобы не вводить его каждый раз при каждом новом подключении.
Я думаю каждый пользуется выделением в скриптах, поэтому я думаю это все-таки важно.
aNTRM_State := 'TRM' + aX + '_State';
aVTRM_State := GetVariableByName(aNTRM_State);Вот такой кусок кода. Я ставлю курсор в начало верхней строки и выделяю верхнюю строку shift+end. Выделилась. Опускаюсь вниз стрелкой вниз. Строка внизу длиннее и поэтому она выделилась до символа подчеркивания. shift+end чтобы выделить оставшийся фрагмент. И выделение фрагмента сбрасывается. А выделяется оставшийся кусок строки. Потому что выделение пошло с текущего положения курсора. Ну и что скажете вы. Вернись в начало, выдели shift+end и нажми два раза вниз. Вот тебе все и выделилось. Но мозг то спотыкается на таких моментах постоянно. Потому в Word`e это работает иначе. Shift+End, стрелка вниз, Shift+End выделяет весь фрагмент. Кому Word не авторитет, то в редакторе Visual Studio выделение работает также. Т.е. какой то стандарт.
И стоило ради такой мелочи поднимать шум? Да просто тут таких мелочей много. Вот например тот же фрагмент кода. Курсор в конце нижней строки. Shift+Home, строка выделилась. Стрелка вверх. Хм.. Выделилась верхняя строка. Выделение нижней сбросилось. Опять ни в Worde, ни в Visual Studio это работает не так. А выделяется весь фрагмент.
А теперь предложение. Доработать выделение фрагментов до стандартов Word`a)
ЦитироватьА теперь предложение. Доработать выделение фрагментов
Сделаем.
Вы не рассматривали вариант постройки проги - "Обновлятора", которая сама бы подменяла файлики, с созданием резервных копий? Если честно, то хорошо что обновок много и почти все полезные... но больно уж геморно перебирать всех клиентов и их сервера. Так-же неплохо было бы отдельно пакет "клиента" иметь. Просто чтобы меньше и быстрее заливать на клиентскую машину.
Цитата: Teodor от 22 мая 2017, 11:09:13Вы не рассматривали вариант постройки проги - "Обновлятора", которая сама бы подменяла файлики, с созданием резервных копий? Если честно, то хорошо что обновок много и почти все полезные... но больно уж геморно перебирать всех клиентов и их сервера. Так-же неплохо было бы отдельно пакет "клиента" иметь. Просто чтобы меньше и быстрее заливать на клиентскую машину.
+++
ЦитироватьВы не рассматривали вариант постройки проги - "Обновлятора", которая сама бы подменяла файлики, с созданием резервных копий?
Да, рассматривали. Но мы сделали такие выводы, что с подобной программой, скорее всего, возникнет много проблем у пользователей касаемо прав доступа, файрволлов и всевозможных разрешений. Все таки она должна будет копировать файлы по сети, среди которых есть .exe файлы, что часто будет воспринято как подозрительная активность. Несмотря на это пока не исключаем, что подобную программу можно будет добавить.
Ненене... Зачем качать... Качать надо самому скаду упакованную в инсталлятор (определенной версии)... В конце-концов есть готовый софт для этого (по крайней мере когда-то был).
Хотя, да... Апдейтер, который ищет и одновляет отдельные компоненты - это еще интереснее. А качать ему ексешки вовсе не обязательно. Проще если это будут запароленные архивы определенных компонентов. А он уже разберется. Все равно-же с дефендером не дружит.
У меня возникла необходимость экспорта переменных в виде всего дерева.
Я взялся за следующий проект, а тут куча разношерстных переменных в разных папках, и не всегда помнишь как какую назвал, и вообще где какие есть.
Работа со скриптами превратилась в сплошное брожение скрипт-переменные-скрипт-переменные-скрипт... .... ....
В общем не всегда удобно. А давать переменным имена включая весь путь к ним, тоже не улыбается, т.к. потом в редакторе не видно что-куда привязано.
В общем был бы рад иметь возможность распечатать дерево и иметь его под руками...
Teodor, экспорт дерева переменных планируется, но обещать реализацию в самое ближайшее время не можем.
Добрый день. Столкнулся с очень неприятной вещью при работе с окнами: на общем экране расположил 11 вызываемых окон для управления аппаратами. Привязка - по объекту. Проблема в том что эта привязка только при первом вызове окна - далее оператор начинает таскать окно по экрану - и после закрытия вновь вызванное это же окно открывается на последнем запомненном месте (например где-то в углу или рядом с другим объектом), а не возле того объекта, от которого оно первоначально вызывалось. Это частенько порождает хаос, так как несколько окон типовые, с разными названиями исполнительных механизмов - можно по ошибке клацнуть не туда.
Второй момент - невозможность редактировать группу в которой создано окно после создания. Иногда бывает так что нужно перенести окно на другую экранку, для которой создал свою группу, а приходится его удалять чтобы создать в этой группе.
Хотелось бы расширить опции привязки окна или допнастройки в свойствах.
Спасибо за труды!
P.S.: забыл спросить - с помощью какого графического редактора вы создаёте изображения? Какие требования предъявляете своему художнику (кратное 8 пикселям соотношение это понятно, что ещё)? Я хочу сделать несколько своих объектов с анимацией - очень не хочется выбиваться из довольно лаконичного общего стиля и делать вырвиглаз-картинки в разнобой.
P.P.S.: сори если этот вопрос уже был - порыскал по поиску - не нашёл.
У окна есть свойства .X и .Y
Задайте их в скрипте и привяжите скрипт к открытию окна :)
Если не хотите плодить скрипты, то раздайте окнам теги и в кейсе меняйте ХУ окна чей тег совпал на заданные. Тогда один скрипт будет на все окна.
begin
case Sender.Tag of
1: begin
Window1.X :=10;
Window1.Y :=10;
end;
2: begin
Window2.X :=20;
Window2.Y :=20;
end;
3:..........
end;
end.
Так-же в окне можна сделать кнопку "поставить на место", задать ей соотв. тег и на нажатие вцепить тот-же скрипт :)
Я это конечно же уже сделал) объясню подход почему захотелось обойтись без скриптов и тегов:
Допустим на мнемосхеме множество управляемых устройств, они объединены в логическую схему управления и взаимосвязаны. Есть отдельная кнопка "управление", которая вызывает окно управления пятью связанными клапанами и двумя насосами. Также оператор может нажать на любой из этих клапанов или насосов на мнемосхеме - и откроется тоже самое окно (так-как объекты взаимосвязаны логикой).
Так как клапана по-разному располагаются в пространстве - удобно когда можно вызвать общее окно, которое не закроет обзор именно того клапана, из которого его вызвали. Но если переместить окно вручную за "title" - то оно откроется в следующий раз в неудобном месте, перекрывая обзор.
Использовать теги неудобно, так как у некоторых вызывающих окно объектов зачастую заняты два слота под теги, ну и самих объектов бывает много.
ЦитироватьПривязка - по объекту. Проблема в том что эта привязка только при первом вызове окна - далее оператор начинает таскать окно по экрану - и после закрытия вновь вызванное это же окно открывается на последнем запомненном месте
Мы добавим в следующих обновлениях отдельное свойство "сохранять позицию" у окон.
ЦитироватьХотелось бы расширить опции привязки окна или допнастройки в свойствах.
Также расширим функции редактирования групп и сортировки окон по группам.
Цитироватьс помощью какого графического редактора вы создаёте изображения? Какие требования предъявляете своему художнику (кратное 8 пикселям соотношение это понятно, что ещё)?
Требования простые, это должно быть изображение в формате .PNG в минималистичном стиле, кратное 8 пикселям, с глубиной цвета 32 бита. Для создания графики мы используем Adobe Photoshop. Пользователи чаще используют Gimp и Paint.NET.
Есть просьба к разработчикам:
возможно ли сделать так, чтобы при копировании и вставке какого-либо объекта в редакторе, копировалось бы также его имя с неким увеличенным индексом?
Сейчас при вставке создается объект с именем по-умолчанию.
Не работает вызов окна от объекта уровень.
Цитата: GEW от 01 июня 2017, 08:47:52Не работает вызов окна от объекта уровень.
привяжите скрипт:
Window
XX.ShowClient(GetClientName);
Спасибо за совет). Но всё равно не работает( на Button OnClick перепроверился - без проблем, на уровне OnClick - нет(.
Здравствуйте. Версия 2.2.1.2. Назрел список "хотелок":
1.Прошу Вас внести возможность добавлять более 10 трендов в группу трендов. Так же дать возможность копировать группы трендов.
2.Редактирование в "Сообщениях" сделать более комфортным, так как при большом с количестве сообщений это неудобно( открытие списка сообщения по двойному клику например). В сообщениях при длинном тексте, текст выходит за границы списка(проверьте).
3.Дайте, уже, возможность редактировать текст по двойному клику, а не из текстового поля свойств.
4.Переход по горячим клавишам не работает нигде, кроме главного окна редактора мнемосхемы.
5.Дайте возможность самостоятельно выбирать шрифт, а не пользоваться предустановленными.
6.Хочется иметь возможность вставлять скопированный элемент в место, где находится мышь, а не в верхний левый угол(косаемо окон) или под объект, если не в окне.
7.Хочется иметь возможность не только выравнивать объекты относительно друг-друга, но и приравнивать к ширине, высоте или и к тому, и к другому от оригинала.
8.Добавьте возможность соединять объекты в группу с возможностью копирования группы, а так же разъединять группу.
9.Не помешало бы иметь дерево проекта с указанием какой объект в каком окне находится для быстрого доступа к нему.
В целом СКАДА нравится. Нравится быстрая помощь от поддержки. "Живой" форум. Спасибо. :)
Цитата: Миханик от 01 июня 2017, 07:35:24Есть просьба к разработчикам:
возможно ли сделать так, чтобы при копировании и вставке какого-либо объекта в редакторе, копировалось бы также его имя с неким увеличенным индексом? Сейчас при вставке создается объект с именем по-умолчанию.
Можно, но скорее всего это замедлит копирование/вставку большого кол-ва объектов. Сейчас скада знает кол-во объектов каждого типа и благодаря этому генерирует новое уникальное имя очень быстро. Если брать за основу текущее имя объекта, то при большом количестве подобных имён придется делать перебор имён до тех пор, пока не встретится уникальное и это замедлит генерацию нового имени. Ещё подумаем, что можно сделать.
ЦитироватьНе работает вызов окна от объекта уровень.
В данный момент так и должно быть, т.к. доступ к окнам и выполнение скриптов регулируется свойством "Доступен". У Уровня это свойство отключено по-умолчанию, поэтому клик по уровню не приводит к появлению окна и также не вызывает событие OnClick. Если включить доступ, то окно будет появляться по клику, но также у Уровня появится скролл. Подумаем над тем, чтобы добавить Уровню отдельное свойство для скролла.
ЦитироватьЗдравствуйте. Версия 2.2.1.2. Назрел список "хотелок":
Спасибо за список пожеланий, обязательно учтем их. Некоторые уже есть в планах на реализацию.
Цитата: Simple-Scada от 01 июня 2017, 14:27:20Можно, но скорее всего это замедлит копирование/вставку большого кол-ва объектов. Сейчас скада знает кол-во объектов каждого типа и благодаря этому генерирует новое уникальное имя очень быстро. Если брать за основу текущее имя объекта, то при большом количестве подобных имён придется делать перебор имён до тех пор, пока не встретится уникальное и это замедлит генерацию нового имени. Ещё подумаем, что можно сделать.
Может добавить это как опцию в настройках редактора и пусть пользователь сам выбирает нужно ему это или нет?
Я думаю, иногда можно пожертвовать этим временем (а в небольших проектах это будет не сильно заметно), чтобы потом вручную не тратить это же время на переименование.
Здравствуйте, уважаемые разработчики!
Возникло несколько замечаний по поводу инструмента "трубопровод"
- не работает ctrl+Z на трубопроводе, отменяется не действие с трубопроводом, а действие с другим объектом, которое редактировалось до
- невозможно присоединить к существующему трубопроводу ответвление в любом месте, кроме как на концах трубы, при попытке присоединить кусок другого трубопровода - тот помещается на другой слой, одинаковый слой нельзя присвоить. Попытался выйти из данной ситуации созданием ответвлений в нужных местах, но при попытке чуть сдвинуть созданное ответвление оно "отвязывается" от трубопровода, и обратно прицепить его уже нельзя, хоть и слои совпадают... так же выделенное ответвление не двигается относительно трубопровода по Alt+стрелки, а смещается весь трубопровод
Здравствуйте!
Цитировать- не работает ctrl+Z на трубопроводе
В дальнейшем отмена действий будет работать и на трубопроводе.
Цитировать- невозможно присоединить к существующему трубопроводу ответвление в любом месте,
Трубопровод состоит из отрезков. Для добавления ответвления к существующему трубопроводу необходимо выбрать компонент "Трубопровод" и навести курсор на необходимый трубопровод - при этом возможные места присоединений отметятся зелеными точками(см. вложение). Если необходимо сделать ответвление например по центру какого-нибудь отрезка, то нужно выделить трубопровод укоротить необходимый отрезок, выбрать компонент "Трубопровод" и дорисовать ответвление. Если необходимо нарисовать трубопровод с разрывом, то при рисовании нужно нажать ПКМ, перенести курсор в необходимое место и продолжить рисование.
Цитироватьпри попытке присоединить кусок другого трубопровода - тот помещается на другой слой
Так и должно быть - два трубопровода это два разных объекта, которые не могут находиться на одном слое.
ЦитироватьПопытался выйти из данной ситуации созданием ответвлений в нужных местах, но при попытке чуть сдвинуть созданное ответвление оно "отвязывается" от трубопровода, и обратно прицепить его уже нельзя, хоть и слои совпадают...
Такое может произойти только если трубопровод перемещался по Alt+стрелки - при этом выравнивание по сетке сбилось. В следующих обновлениях добавим возможность двигать отрезки трубопровода по Alt+стрелки - это должно решить проблему.
Здравствуйте. Посмотрите на пример моего тренда. Скажите зачем масштабируется шкала показаний с отрицательными значениями и значениями выше, чем у шкалы(обратите внимание на шкалу с знаком "С")? Еще хочется иметь надписи на графике с названием линии. Можно выводить надпись только при печати. Печать ведется на ЧБ принтере линии трудно отличать. Спасибо.
Здравствуйте.
ЦитироватьПосмотрите на пример моего тренда. Скажите зачем масштабируется шкала показаний с отрицательными значениями и значениями выше, чем у шкалы(обратите внимание на шкалу с знаком "С")?
Видимо у трендов включено свойство "Задать положение" и задан диапазон "От" и "До"? В этом случае шкала автоматически будет увеличена так, чтобы тренд расположился в заданном диапазоне.
ЦитироватьЕще хочется иметь надписи на графике с названием линии. Можно выводить надпись только при печати. Печать ведется на ЧБ принтере линии трудно отличать.
Сделаем в будущих обновлениях.
Да свойство заданно, но я и имел ввиду, что зачем такое масштабирование шкалы значения, если я, просто, смещаю график в пространстве. Вот это меня и смущает.
Спасибо за изменения в будущих обновлениях.
Добрый день.
Во-первых огромное спасибо за проект. Относительно недавно (оклоло полугода назад) открыл его для себя, и как начинающий в вопросах автоматизации могу сказать, что своей цели вы добились, порог вхождения в simple scada самый низкий из того, что я пробовал (IWS, TraceMode).
Теперь несколько предложений:
1. Шрифты (уже было, но подтверждаю актуальность), очень неплохо было б организовать работу с ними как любом виндовс приложении.
2. Обьект Level:
2.1. у уровня есть поле, которое можно размещать в разных местах, так вот положение "по-центру справа" и просто "по центру" ничем не отличаются.
Хотелось бы чтоб "по центру" было именно по центру или добавить свободное размещение.
2.2. верхняя граница уровня берется из шкалы переменной, что не всегда удобно. Например, мне нужно взвешивать различные дозы продукта, один раз 340кг, другой 784кг, третий 516кг. Если я ставлю верхний предел как предел весов 1000кг, то при взвешивании меньшего веса уровень не заполняется до 100%. Хотелось бы, чтоб верхняя граница задавалась вручную.
3. Скрипты:
3.1. очень не хватает функции запуска скрипта по со событию изменения значения тега напрямую. Например мне нужно запустить скрипт при любом изменении значения тега, который никак не привязан к графическим обьектам, сейчас для этого нужно размещать графический элемент, делать его не видимым, назначать переменную и обрабатывать событие. Было б неплохо добавить в список вариантов запуска скриптов что-то типа "по изменению значения", при создании такого скрипта выбирать переменную, состояние которой необходимо отслеживать.
3.2. к запуску по таймеру (1 раз в час, 1 раз в секунду) было б неплохо добавить меньшие периоды 10, 20, 50, 100 мс или просто сделать вариант исполнения скрипта "по таймеру", а при его создании выбирать период запуска.
4. Уже писал кто-то, если не ошибаюсь Teodor, насчет диспетчера переменных, чтоб можно было их импортировать/экспортировать, отключать, симулировать отключенные внешние теги и т.д. и т.п.
5. Неплохо было бы, чтоб все импортированные (только те, которые применяются в проекте) ресурсы (обычто это только картинки), копировались в каталог с проектом, чтоб можно было проект переносить и не переживать, что забыл скопировать какую-то картинку.
ЦитироватьДа свойство заданно, но я и имел ввиду, что зачем такое масштабирование шкалы значения, если я, просто, смещаю график в пространстве
Простым смещением тренд нельзя разместить в заданном диапазоне. В данном случае используется смещение + масштабирование тренда. Т.е. при включенном свойстве "Задать положение" скада должна взять основную шкалу тренда и разместить её в заданном диапазоне. Для этого шкала увеличивается, меняется её мин. и макс. таким образом, чтобы основная шкала тренда была вписана в заданный пользователем диапазон. Как мы поняли, Вы хотите, чтобы на шкале не отображались значения выше и ниже основной шкалы тренда, или что-то в этом роде?
Victor_P, спасибо за список предложений. Почти все они будут реализованы в будущем.
ЦитироватьНапример, мне нужно взвешивать различные дозы продукта, один раз 340кг, другой 784кг, третий 516кг.
Судя по описанию, здесь подойдет только переменная шкала, которая может меняться из скриптов.
Да. Вы поняли верно. Оператору трудно доказать, что температура была не -36, а это "всего лишь масштабирование, чтобы красивее было". А если серьезно, то трудно "поймать" значение тренда с таким масштабированием. А еще жду возможность копировать группу трендов с сохранением цветов и настроек.
Цитата: godygadu от 06 июня 2017, 10:05:43Да. Вы поняли верно. Оператору трудно доказать, что температура была не -36, а это "всего лишь масштабирование, чтобы красивее было". А если серьезно, то трудно "поймать" значение тренда с таким масштабированием. А еще жду возможность копировать группу трендов с сохранением цветов и настроек.
Сделаем.
Спасибо.
Еще пара хотелок:
1. Добавить к фигуре прямоугольника радиус скругления углов;
2. Добавить выбор выравнивания внутри поля.
Цитата: Victor_P. от 08 июня 2017, 10:58:39Еще пара хотелок:
1. Добавить к фигуре прямоугольника радиус скругления углов;
2. Добавить выбор выравнивания внутри поля.
присоединяюсь и от себя:
Хотелось бы иметь возможность сделать заливку контура, созданного линией
И еще, думаю, самое важное из всего, что предлагал:
- сделайте, чтоб можно было получить номер строки таблицы, по которой кликнули мышей
без этого функционал таблицы сильно ограничен.
Цитата: Victor_P. от 08 июня 2017, 10:58:391. Добавить к фигуре прямоугольника радиус скругления углов;
2. Добавить выбор выравнивания внутри поля.
Цитата: Andrey1883 от 08 июня 2017, 12:20:59Хотелось бы иметь возможность сделать заливку контура, созданного линией
Данные функции возможно будут добавлены, но не в ближайшее время, из-за низкой востребованности. Сейчас есть большое количество более популярных задач. Надеемся на понимание.
Цитироватьсделайте, чтоб можно было получить номер строки таблицы, по которой кликнули мышей
Этот вопрос будет решен уже в ближайшем обновлении.
Windows Defender в последнее время удаляет Server при попытке переписать из флэшки, исключения не помогают (работает только при непосредственной загрузке с сайта). Нет выхода?
Цитата: VLAD от 08 июня 2017, 23:39:27Windows Defender .....
Аналогичная ситуация, но выход есть,- раскрывать скачанный архив только в каталоге, который в исключениях.
Там-же его (сам сервер, если нужно) можно заархивировать с паролем и переносить спокойно на флешке.
Огромная просьба изобразить автосохранение проекта. За последние 2 дря редактор вывалился 3 раза, и 2 из них очень неожиданно.
Цитата: Teodor от 09 июня 2017, 12:14:48Огромная просьба изобразить автосохранение проекта. За последние 2 дря редактор вывалился 3 раза, и 2 из них очень неожиданно.
Teodor мне кажется еще рановато для автосохранения, так как пока не реализована полноценная отмена всех действий.
Бывает очень выручает закрытие проекта ибо CTRL+Z не везде срабатывает.(Это мое ИМХО)
Ну или реализовать автосохронение в некий временный .BAK архив
Однозначно временный и спрашивать при открытии чего душа желает. Открыть сохраненку или бэкап.
Цитата: Teodor от 09 июня 2017, 12:14:48Огромная просьба изобразить автосохранение проекта. За последние 2 дря редактор вывалился 3 раза, и 2 из них очень неожиданно.
Планируем реализовать автосохранение в будущем. Ошибки вылета редактора вчера выявили и устранили. Обновление постараемся опубликовать на следующей неделе.
Сколько часов рабочего Sinple-Scada - Demo-Time ?
emoxristov, 1 час.
Для этого один час программы там каких-либо ограничений?
Это Profesional вы?
Цитата: emoxristov от 10 июня 2017, 22:48:33Для этого один час программы там каких-либо ограничений? Это Profesional вы?
Да, это Profesional версия, но работает только один час. Других ограничений нет.
А можно обнаглеть в корень и попросить увеличить к-во тегов? А то я тут столкнуля с тем, что мне надо больше одного параметра передавать скрипту, а больше пихать некуда. Пусть их будет хоть 10, а количество отображаемых в инспекторе задается настройками. Но именно сейчас вперлось в 2.
В скриптах выбирающем из регистра несколько бит и записывающем их назад Нужны 2 переменных и 2 "константы" для определенного поля. "стартовый бит" и "к-во бит" для полностью универсального скрипта под эту задачу. Я уже дошел до того что расковыриваю тег побитно(разные биты в разные параметры), что сильно не удобно.
ЦитироватьА можно обнаглеть в корень и попросить увеличить к-во тегов?
Количество тегов привязанных к объекту? Теоретически, можно, но есть причины по которым мы не добавили переменное количество тегов. А Вашу задачу не решить используя GetVariableByName для поиска 4 переменных, например по тегу объекта? Т.е. берём тег объекта и ищем на его основе нужные переменные (любое кол-во) и работаем с ними.
Есть причины, значит есть, спорить не буду, тем более, что битов в теге много :) Я просто спросил :)
Что до конкретной задачи, то вы уже ее вроде решили по другому :) а меня заинтересовали теги, как параметры процедуры/скрипта. В данном случае я с помощью тега(мне по 4 бита хватило) меняю математику скрипта, делая его "еще универсальнее".
Сегоня попался в руки трубопровод... Ощущения двойственные и, скорее негативные...
Суть. Не могу покрасить в разные цвета, разные участки трубопровода. Если делать разные трубопроводы, то они кроме как по прямой не стыкуются. Итого, мне, чтобы показать активные участки, необходимо рисовать маааленький трубопроводик, ака тройник и 3 трубопровода к нему пристыкованных. Тогда я их уже крашу по ситуации, сам тройник нейтрального цвета.
В связи с чем есть просьба изобразить нечто типа: стыковочный узел/тройник с возможностью задания ему наличия/отсутствия луча в некую сторону(верх, низ, право, лево) и его толщину. Тогда можно смело спрягать трубопроводы разных диаметров и цветов/переменных и т.д. Так-же, неплохо если-бы этот узел имел возможность пририсовать к нему заслонки для использования его в е-ве клапана (2-3-4 ходового)
ЦитироватьСуть. Не могу покрасить в разные цвета, разные участки трубопровода.
Пока вариант только создавать разные трубопроводы со стыковкой по прямой, как на скрине во вложении. В будущем попробуем как-то улучшить этот момент.
Ну, я собственно так и делал. Но, по факту, это откровенно не удобно. Начиная с того, что при попытке подвинуть контрольную точку(например нижнюю т.п. 4 ) , надо начала весь трубопровод подвинуть, чтобы увидеть маркер, подвинуть маркер, поставить т.п. на место. Кроме того, с т.з. банальной логики я рисую трубу не от тройников, а все-же от начала до конца(2-4, 3-5). Дальше, обе рву (в 1), пририсовываю тройник... А у меня 2 трубы, а не 4 и как их разрелить - я пока не понял... На схеме все просто, а вот если реальная труба идет с кучей поворотов, то перерисовывать ее задалбывает и спасает только копипаста с вытиранием половины от одной и от другой. В общем неплохо было-бы поиметь какой-то инструмент для их редактирования.
Еще возник вопрос по выравниванию в окнах. Логики я пока не понял, но... Есть 2 объекта на сетке. Один копипастим в окно, двигаем окно (по сетке), копипастим второй - сетка съехала, объекты стоят не ровно, выравниваем по сетке первый, все ок.
Еще момент. Копипаста в окне. В норме пастится в х+16/у+16. В окне не так. Если копировать содержимое окна, то запоминаются координаты относительно абсолюта, а при вставке (если координаты за пределами окна), задаются координаты 16/16, либо (если в окне есть куда) х+16/у+16, но уже относительно окна.
Добрый день, спасибо за помощь в теме со скриптами, все получилось сделать как хотелось. Возникло несколько предложений и вопросов:
1. Более удобный редактор скриптов, хотя бы отмену действий.
2. Какую нибудь возможность автоквитирования, возможно сделать так, чтобы функция addmessage возвращала определенный идентификатор, чтобы потом его использовать для квитирования сообщения.
3. При свернутом проекте или например открытом меню пуска в полноэкранном режиме, звука при авариях нет, может есть способ это исправить?
А также вопрос, в демо режиме ограничения на 64 тега. Входят ли переменные, которые используются в скриптах и добавленные в переменные в это число?
Цитата: Teodor от 16 июня 2017, 09:50:05Есть 2 объекта на сетке. Один копипастим в окно, двигаем окно (по сетке), копипастим второй - сетка съехала, объекты стоят не ровно, выравниваем по сетке первый, все ок.
Да, действительно, было неправильное смещение по Y. Исправили. Обновление завтра вечером сделаем.
Цитата: xrusteg от 16 июня 2017, 10:54:481. Более удобный редактор скриптов, хотя бы отмену действий.?
В завтрашнем обновлении уже будет повтор/отмена действий в скриптах.
ЦитироватьПри свернутом проекте или например открытом меню пуска в полноэкранном режиме, звука при авариях нет, может есть способ это исправить?
К сожалению, способа проигрывать звук когда окно не в фокусе - нет.
UPD: Начиная с версии 2.3.6.11 звук на клиентах воспроизводится всегда (независимо от состояния окна).ЦитироватьВходят ли переменные, которые используются в скриптах и добавленные в переменные в это число?
Входят только внешние переменные, которые получены с OPC-серверов. Любые внутренние переменные и переменные внутри скриптов без ограничений.
Здравствуйте.
Можно ли добавить колонку "Шкала" в редакторе переменных? Сейчас не совсем удобно прокликивать каждую переменную, чтобы посмотреть какая шкала ей присвоена.
Здравствуйте.
Да, можно добавить такую колонку. Сделаем.
Здравствуйте.
Возможно ли где-то прописать путь к своим проектам, вне стандартной папки Projects? Смысл в том, чтобы при обновлении Simple-Scada случайно не снести свои наработки. Я обычно не копирую новый дистрибутив поверх старого, чтобы не копить мусор в каталоге, а удаляю старый каталог целиком, при этом надо проследить за сохранением проектов.
Здравствуйте.
Вы ввели новые глобальные процедуры TimerStart и т.д. Это удобно, я сейчас думаю перевести учет времени выполнения программы на них. Но это все таки не таймер. Это секундомер. А можете ли вы ввести процедуру таймера? Чтобы это работало так. Я передаю этой процедуре запуска таймера уставку в виде переменной типа TDateTime, переменную типа TDateTime для текущего значения таймера, и переменную типа Boolean для выхода таймера и запускаю обратный отсчет до 0. Отработала уставка - переменная выхода таймера установилась в 1 и включился скрипт "Сработал таймер" наподобие скрипта "Выполнен SQL запрос" .
По аналогии с введенными процедурами таймер можно запустить, остановить, поставить в паузу, сбросить. Читать можно из связанной с процедурой переменной текущее значение уставки, статус таймера, статус выхода таймера.
Цитата: starmos от 19 июня 2017, 13:04:55Возможно ли где-то прописать путь к своим проектам, вне стандартной папки Projects?
Сейчас это невозможно. Добавим такую возможность в будущем.
Цитата: TeNQ от 19 июня 2017, 13:14:19А можете ли вы ввести процедуру таймера? Чтобы это работало так. Я передаю этой процедуре запуска таймера уставку в виде переменной типа TDateTime, переменную типа TDateTime для текущего значения таймера, и переменную типа Boolean для выхода таймера и запускаю обратный отсчет до 0. Отработала уставка - переменная выхода таймера установилась в 1 и включился скрипт "Сработал таймер" наподобие скрипта "Выполнен SQL запрос".
Т.е. требуется запустить таймер и только однажды (когда отсчет дойдёт до нуля) выполнить скрипт? Или нужно чтобы таймер работал циклично, пока пользователь не остановит его?
ЦитироватьТ.е. требуется запустить таймер и только однажды (когда отсчет дойдёт до нуля) выполнить скрипт? Или нужно чтобы таймер работал циклично, пока пользователь не остановит его?
Я так понимаю что таймер должен работать по аналогии с FB TON в ПЛК.
(https://storage8.static.itmages.ru/i/17/0620/s_1497940333_1200105_91fdff34a0.png) (https://itmages.ru/image/view/5843055/91fdff34)
ЦитироватьТ.е. требуется запустить таймер и только однажды (когда отсчет дойдёт до нуля) выполнить скрипт?
Именно так. У меня в проекте реализован отложенный запуск прибора. Оператор вводит время и запускает. Идет обратный отсчет и в положенное время прибор запускается. Все работает. Но если будет глобальная процедура, я ее использую. Да и другим будет полезна такая процедура.
Как
deldemo выше написал, процедура должна работать как обычный таймер в ПЛК. Только вместо входа IN отдельные процедуры. Запуск, останов, пауза, сброс.
Можете ли вы работать : Demo 64 тега — ограничен функционал, доступны 64 тега.
Что ограничено, если больше 64 тега ?
Ограничение касается только внешних тегов (с OPC-сервера). Для внутренних тегов нет ограничений. Проект не запустится, если в нём будет более 64 внешних тегов.
Цитата: TeNQ от 20 июня 2017, 10:02:29Как deldemo выше написал, процедура должна работать как обычный таймер в ПЛК. Только вместо входа IN отдельные процедуры. Запуск, останов, пауза, сброс.
Обдумаем предложение с таймерами.
Программа отлично подходит и работает очень хорошо.
Предлагаете ли вы в Болгарию Professional ?
К сожалению приобрести лицензионную версию Simple-Scada 2 сейчас можно только в России и странах СНГ. Поставка в Болгарию сейчас невозможна.
У меня есть еще один вопрос.
Demo-Time — полнофункциональная версия ограниченная часом работы Что обведено красным ?
Добрый день подскажите в будущем будете использовать такую архитектуру сети, у клиента например в SS иметь возможность отображать три объекта где установлены сервера
Тут другая логика... На сервере может бегать несколько проектов одновременно, а клиент может быть подключен к любому из проектов на любом из серверов, только чтобы был доступ по сети.
Я сейчас строю объект. Сервер пока на МОЕМ компьютере, далеко от контроллера, и вообще за ВПНом от сети с ним. На том-же сервере, пока пассивно, висят проекты других клиентов. У них свои сервера, но мне ничего не мешает запустить их параллельно с родными. Причем проекты очень даже могут быть разными и на разных версиях серверов.
Кстати, о окнах... А насколько сложно изобразить элемент "панель"? По сути - окно без управляющих элементов, привязанное к странице (открывается и закрывается с ней вместе), или нет. Принципиально чтобы этих "окон" было несколько (как состояния кнопки, в коде рид онли) и они переключались из кода, или по связанной переменной. Табулятор с названиями вкладок не обязателен (отключаемый!). Кому надо, тот сам себе слепит управление какое захочется.
Это решит вопросы с панельками кнопок, выбором видимых трендов и пр, вплоть до 3+уровня вложенности страниц.
Цитата: Teodor от 21 июня 2017, 09:39:56Тут другая логика... На сервере может бегать несколько проектов одновременно, а клиент может быть подключен к любому из проектов на любом из серверов, только чтобы был доступ по сети.
Например, у нас есть 5 мелкие КНС. На каждой имеется свой сервер связь по rs485 с плк кнс, Оператор управляет только со сервера на кнс, смотрит журналы. аварийные с компа шлются смс в случае затопления или аварии насосов. Например нужно вывести диспетчеру, да можно заморочится и преобразовать rs485 в Ethernet с плк и завести все в единый сервер со всех кнс к диспетчеру, но управление на месте оперативным не будет там нет панельки или монитора, что б посмотреть уровень стоков, расход и др. параметры, а можно установить SS на каждую КНС, и вывести все на один монитор диспетчеру. параметров там мало, и все 5 можно повесить на 1 монитор, а так каждому серверу свой клиент, почему так, просто ни кто не даст забирать с обслуживаемых кнс компы, а установить на каждую с usb ключиком SS можно и даже когда перестанем обслуживать, программу можем удалить и забрать ключик
на КНС ставите OPC сервера под 485. SS может работать с удаленными ОРС серверами, потому СС ставим одну и прикручиваем к 3-м ОРС на одном сервере в диспетчерской (+ резерв). Клиент с определенными правами у диспетчера и операторов. ВСЕ. Можно (если очень хоцца), поставить еще и операторам сервера, если есть вероятность выхода из строя сети, а система в таком виде может работать, вообще. Опять-же, т.к. параметров не много, а скада нужна больше для мониторинга, то можно им и демо поставить на 64 тега, чтобы с ключами не сражаться.
Огромная просьба к разработчикам. Очень нужна такая фишка как "глобальный поиск". Если есть некая переменная, то хотелось бы видеть список объектов (на наких странцах/окнах), и скриптов (строка) где она используется.
Например сейчас у меня есть баг в проекте (как обычно надо на вчера, а объект рабочий, потому гоним без проверок), где переменная в результате некоего действия скидывается в 0, причем логика сего действа не понятна. Баг наверняка мой, и наверняка я где-то скопировал элемент управления и не поменял ему эту переменную, что и приводит к выполнению скрипта не с тем параметром у сендера, или не того скрипта, и собсно такому результату, а перекапывать 100500 страниц и окон нереально утомительно.
Цитата: Teodor от 21 июня 2017, 14:53:58...хотелось бы видеть список объектов (на наких странцах/окнах), и скриптов (строка) где она используется.
Поддерживаю просьбу.
Цитата: beloleg86 от 21 июня 2017, 08:22:33Добрый день подскажите в будущем будете использовать такую архитектуру сети, у клиента например в SS иметь возможность отображать три объекта где установлены сервера
Нет, пока не планируем. Правильнее всего (и значительно дешевле) использовать один сервер, который подключен к множеству станций и к нему уже подключать клиентов. Как и описал
Teodor, можно создать три отдельных проекта при необходимости и подключаться к удаленных OPC-серверам (для этого требуется настроить DCOM (https://simple-scada.com/help/manual/dcom-set.html)). Если использовать один сервер невозможно, то остается только вариант с использованием трёх отдельных серверов и трёх отдельных клиентов, т.е. на клиентской стороне должно быть три компьютера.
Цитата: Teodor от 21 июня 2017, 09:51:39Кстати, о окнах... А насколько сложно изобразить элемент "панель"?
Обязательно добавим панель, а также возможности группировки объектов.
Цитата: Teodor от 21 июня 2017, 14:53:58Огромная просьба к разработчикам. Очень нужна такая фишка как "глобальный поиск". Если есть некая переменная, то хотелось бы видеть список объектов (на наких странцах/окнах), и скриптов (строка) где она используется.
Эту функцию добавим уже в ближайшем обновлении.
Здравствуйте.
Можно ли добавить функцию Find&Replace в пределах скрипта?
Цитата: TeNQ от 23 июня 2017, 09:54:04Можно ли добавить функцию Find&Replace в пределах скрипта?
поддержу, очень не хватает
Кому чего нехватает :) Мне например в тех-же целях не хватает Alt+выделение для выделения прямоугольных областей в тексте и частичной отмены выбора в редакторе графики.
Цитата: TeNQ от 23 июня 2017, 09:54:04Можно ли добавить функцию Find&Replace в пределах скрипта?
Да, добавим.
Нельзя из скриптов назначить "Переменную доступа" к объекту "Уровень" типа TM_Level.
Можете добавить?
Миханик, добавим такую возможность.
Добрый вечер.
Ребята, а Вы могли бы чуть увеличить кнопку закрытия окна. Ну или добавить на панель большую кнопку "закрыть отчет"
Уж очень не удобно на сенсорном экране.
Да, можно увеличить. Сделаем кнопку закрытия как у стандартного окна Windows.
Здравствуйте.
Уважаемые, подскажите пожалуйста как в отчетах отнять значения одного столбца от другого?
Или это лучше делать в SQL запросе?
И еще вопрос по отчетам.
Можно, как то, сделать что бы панель "переменные " можно было скрывать или изменять размер?
Не всегда под рукой Full HD монитор, а на 4:3 (1280х1024) не совсем удобно получается.
ЦитироватьУважаемые, подскажите пожалуйста как в отчетах отнять значения одного столбца от другого?
Очень просто, поставьте в бэнд компонент "Текст" (или редактируйте уже существующую ячейку), затем дважды кликните его и в открывшемся окне, в разделе "Выражение" в фигурных скобках введите нужную формулу. См. пример во вложении.
ЦитироватьМожно, как то, сделать что бы панель "переменные " можно было скрывать или изменять размер?
Добавим такую возможность.
Доброго дня! подскажите пож. как можно настроить скаду, чтобы клиент запускался на дополнительном мониторе, в то время как эдитор и другие программы запускались бы на основном.
Здравствуйте. Сейчас стандартными средствами этого не сделать и окно клиента после запуска будет располагаться на основном мониторе.
В наше время несложно собрать систему не только с одним, но и с 4-мя мониторами. сложно сделать в новой версии поддержку запуска каждого отдельного приложения скады на том рабочем столе, на котором это нужно? Было бы очень удобно работать в эдиторе в одном мониторе, в то время как в других отображаются различные клиенты.
Здравствуйте.
Столкнулся недавно со следующей проблемой - стал вносить изменения в существующий проект - пытался добавить сообщения о выходе различных параметров за установленные границы. Так вот, про стандартные средства для работы с граничными значениями знаю, там можно добавить свой текст сообщения о выходе какой либо переменной за установленные границы и границы можно ставить любые в пределах назначенной шкалы, как целые так и вещественные. Проблема в том, что этот текст будет один и тот же для множества разных переменных, будь то какая нибудь температура или уровень жидкости. Но если я хочу добавить разный текст сообщения о выходе за граничные значения для разных переменных, то есть проблема - в свойствах сообщения, в полях ввода "Значение (от)" и "Значение (до)" можно устанавливать только целочисленные значения, несмотря на то, что переменная назначена вещественная. А если мне нужно поставить не целочисленное значение границы, как быть?
Здравствуйте.
Цитата: urqagun от 09 июля 2017, 19:51:37Было бы очень удобно работать в эдиторе в одном мониторе, в то время как в других отображаются различные клиенты.
Подключение к серверу скады нескольких клиентов создаст дополнительную ненужную нагрузку на сервер. Правильнее было бы добавить поддержку многомониторного режима , тогда к серверу будет подключен только один клиент, но отображаться он будет на нескольких мониторах. Мы планируем внедрить многомониторный режим в ближайшем будущем.
Цитата: EvgeniySM от 10 июля 2017, 07:16:41А если мне нужно поставить не целочисленное значение границы, как быть?
В будущих обновлениях постараемся добавить поддержку вещественных значений. Сейчас это можно реализовать только скриптами, используя процедуры для работы с сообщениями (https://simple-scada.com/help/script/message-methods.html), например:
Создаём компонент "Уровень" и связываем его с какой-то переменной. На событие OnDataChange пишем такой скрипт:
begin
if Sender is TM_Object then
with Sender as TM_Object do
if AsFloat > 90 then // если значение больше 90
AddMessage(Now, mkAlarm, 'Превышение верхней границы!', True, True)
else
if AsFloat < 10 then // если значение ниже 10
AddMessage(Now, mkAlarm, 'Превышение нижней границы!', True, True);
end.
Спасибо за ответ, совсем забыл про процедуры для работы с сообщениями ) Но будет гораздо удобнее работать с окном свойств сообщения, ждём в будущих версиях.
Здравствуйте.
Можно ли добавить в процедуру ShowMessage цвет выводимого в сообщении шрифта?
Дело в том, что ShowMessageAll('Предупреждение!', 'Высокая температура', clRed); выводит сообщение с белым тонким шрифтом на красном фоне. И на мониторе среднего качества приходится сильно напрягать зрение, чтобы прочитать текст. А на мониторе низкого качества(LG 15``), вообще не разобрать.
TeNQ, здравствуйте. Можем сделать выбор цвета шрифта в настройках проекта для каждого из трёх типов сообщений. Это подойдёт?
Цитата: Simple-Scada от 10 июля 2017, 11:10:18TeNQ, здравствуйте. Можем сделать выбор цвета шрифта в настройках проекта для каждого из трёх типов сообщений. Это подойдёт?
Подойдет, только я не совсем понимаю как это будет работать. Ведь функция вывода сообщения не привязана к типу. Там вводится заголовок, текст и фон. Если только сделать новую функцию, которой передается заголовок, текст, тип сообщения(с настройками в проекте)?
ЦитироватьПодойдет, только я не совсем понимаю как это будет работать. Ведь функция вывода сообщения не привязана к типу.
Это мы перепутали с другими процедурами. Добавим отдельный параметр в процедуру ShowMessageAll как Вы и писали Выше.
В редакторе можно выделить имя объекта (на панели свойств объекта), вставить имя в буфер (ctrl+c) и использовать в скрипте. Это удобно. А вот имя связанной с объектом переменной нельзя выделить. Вылезает список, в списке тоже не выделишь. Можно ли как-то сделать, чтобы имя связанной переменной редактировать было нельзя, но выделить для вставки в буфер можно.
Сейчас находясь в скриптах я нажимаю стрелку в левом верхнем углу и попадаю на то же место, с которого ушел. Те же объекты в поле зрения, то же увеличение и т.д. Это удобно. Но можно ли сделать такую же стрелку для возврата в скрипты? Это было очень удобно. Сейчас обычно для меня все выглядит так. Находясь в скрипте, я хочу посмотреть на имя объекта, связи и тд. Иду по стрелке на окно, где расположены объекты. Там совершаю какие-то действия (копирую имя объекта и т.д.) и хочу вернуться в скрипт на то место, с которого ушел. Ан нет. Приходиться лезть в папки, искать скрипт, потом прокручивать скрипт, ища место. Это занимает время. И самое главное это много раз повторяется.
А если можно сделать в редакторе скриптов возможность переключаться между открытыми скриптами (закладки сверху) как в том же Notepad++ было бы просто идеально.
Предлагаю сделать простое решение: в настройках запуска(эдитор, клиент) добавьте элемент управление поле со списком, в котором будет отображаться перечень доступных рабочих столов. на выбранном в этом элементе управления рабочем столе и будет запускаться приложение. либо введите оконный режим работы приложений. тогда можно будет перетаскивать приложения в нужные рабочие столы самостоятельно.
Цитата: TeNQ от 10 июля 2017, 14:28:03Можно ли как-то сделать, чтобы имя связанной переменной редактировать было нельзя, но выделить для вставки в буфер можно.
Да, можно, сделаем.
ЦитироватьТе же объекты в поле зрения, то же увеличение и т.д. Это удобно. Но можно ли сделать такую же стрелку для возврата в скрипты? Это было очень удобно.
Можем в ближайшем обновлении сделать, чтобы при переходе в скрипты через меню "Проект - Скрипты" (или комбинацию клавиш "Alt + S" переход осуществлялся к скрипту, который редактировался последним.
Цитата: urqagun от 10 июля 2017, 16:18:45Предлагаю сделать простое решение: в настройках запуска(эдитор, клиент) добавьте элемент управление поле со списком, в котором будет отображаться перечень доступных рабочих столов. на выбранном в этом элементе управления рабочем столе и будет запускаться приложение. Либо введите оконный режим работы приложений. тогда можно будет перетаскивать приложения в нужные рабочие столы самостоятельно.
Рассмотрим этот вариант. Также обратите внимание, что клиент скады будет запущен в окне, если в Options.exe выбрать разрешение меньше чем текущее разрешение экрана.
ЦитироватьМожем в ближайшем обновлении сделать, чтобы при переходе в скрипты через меню "Проект - Скрипты" (или комбинацию клавиш "Alt + S" переход осуществлялся к скрипту, который редактировался последним.
Спасибо. Было бы здорово.
А можно сделать так? Захожу в скрипт, который хочу редактировать. Дохожу до позиции редактирования, нажимаю Ctrl + 1. Захожу во 2й скрипт, который хочу редактировать. Дохожу до позиции редактирования, нажимаю Ctrl + 2. Дальше, если я нажимаю Alt + 1 находясь в редакторе скриптов, то перемещаюсь на позицию редактирования в 1 скрипте и Alt + 2 во 2м?
TeNQ, закладки в скриптах это отличная идея. Сделаем.
Есть вопрос этического характера по демо версии (64 тега).
В общем она бесплатная - это понятно. Но насколько приемлемо, с вашей точки зрения, использование ее в комерческих целях? На сегодня, у меня есть микропроект, которому демо хватит с головой, даже безо всяких ухищрений. Понятно, что я его буду делать не забесплатно. С другой стороны, я готов купить минимальный комплект, но не хочу играться с физическими ключами, как и платить за них.
Насколько реально создание "коммерческой" версии с возможностями как у демо(64) по какой-то доступной цене, но с софтовыми ключами для коммерческого использования? Да, это бзик, но, все-же клиенту я продам не свой проект на демо движке, а полноценный продукт, который он уже при желании будет апгрейдить и допиливать.
Teodor, если Вам достаточно 64 тегов, то Вы можете использовать демо-версию с ограничением на 64 тега в коммерческих целях, мы это никак не запрещаем.
Спасибо, но все-же, я бы вам предложил тогда, хотя-бы, "для учета" их бесплатную регистрацию ввести при скачивании. А для таких упертых как я, то и немного платную. Просто за то что надпись "Демо" пропадет у конечного пользователя :)
Пока, оставлю ему демо, а там посмотрим. Тем более что СТАНДАРТ для него уже на другой (в т.ч. географически) объект куплена.
Здравствуйте.
Хотелось бы узнать как реализовано управление кнопкой.
1. Алгоритм когда кнопка в режиме без фиксации сама генерирует 1->0 это мягко говоря неправильно. Она должна посылать команду в контроллер 1, а контроллер сам должен сбрасывать команду "0" по исполнению. Могу представить ситуацию когда несколько клиентов в одно время посылают 1->0. Мягко говоря бардак.
2. Похоже что событие Onklick по кнопке руководствуется исключительно её координатами на курсоре. Мне нужно чтобы в разных режимах (авто и ручной для оборудования) кнопка либо работала, либо нет. Просто деактивировать кнопку - это логично, но нужно чтобы ещё оператор знал что кнопка неактивна. А визуально это никак не отображается, кроме отсутствия анимации клика. Пробую реализовать изменение её цвета, но как это сделать? Скриптом я этого не могу: цвет зависит от режима - в данном случае "без фиксации". Скрыть кнопку "хайдом" почему-то скриптом мне также не удалось.
3. Решаю проблему по-другому - накладываю поверх кнопки поле которое закрывает кнопки, но при клике в том месте где они находились - скрипты срабатывают! Поверх этой кнопки вторую пустую - тоже самое.😱
4. Пожелание: инструмент "заменить" в редакторе скриптов.
5. При редактировании тэгов иногда проще их удалить и заново импортировать из ОПЦ. Так например в моём случае ОПЦ забирает определённым образом структурированные тэги. Иногда эту структуру приходится менять в процессе разработки ПО нижнего уровня. Структура генерится самой ОПЦшкой. По расчётам будет более 500 тэгов. Если я удалю их, а проще удалить и заново забрать из ОПЦшки - то все подвязки тэгов на экранках удаляются... вбивать заново. А это тысячи подвязок! Нужно предоставить пользователю право выбора - удалять подвязки или нет.
Здравствуйте.
Цитировать1. Алгоритм когда кнопка в режиме без фиксации сама генерирует 1->0 это мягко говоря неправильно. Она должна посылать команду в контроллер 1, а контроллер сам должен сбрасывать команду "0" по исполнению.
Да, кнопка сама пишет в переменную 1 и 0. Способ который Вы описали можно было бы реализовать, но только по нашей статистике он не подойдет 80% пользователей, т.к. они не используют сброс на 0 на контроллере. Для Вашей задачи должна подойти кнопка
с фиксацией и
одним состоянием с значением = 1.
ЦитироватьМогу представить ситуацию когда несколько клиентов в одно время посылают 1->0. Мягко говоря бардак.
Не совсем понятно что именно беспокоит Вас в присваивании 1 -> 0. Команды поступят на OPC-сервер по-порядку и также по-порядку выполнятся.
ЦитироватьМне нужно чтобы в разных режимах (авто и ручной для оборудования) кнопка либо работала, либо нет. Просто деактивировать кнопку - это логично, но нужно чтобы ещё оператор знал что кнопка неактивна.
Допустим у Вас есть переменные: vrMode ("ручной/авто") и vrValue (переменная значение которой меняет кнопка). Тогда нужно связать основную переменную кнопки с переменной vrValue, а доп. переменную кнопки с vrMode. Теперь на событие OnDataChangeEx можно поставить универсальный скрипт (такой скрипт подойдёт и другим подобным кнопкам):
begin
if Sender is TM_Button then // проверяем, что Sender это кнопка
with Sender as TM_Button do // далее работаем с Sender'ом, как с кнопкой (тип "TM_Button")
case VariableEx.AsInt of // если значение доп. переменной кнопки равно
0 : States[0].Color := clGray; // изменить цвет на серый
1 : States[0].Color := clGreen; // изменить цвет на зеленый
2 : States[0].Color := clRed; // изменить цвет на красный
end;
end.Данный пример подробнее описан в руководстве по этой ссылке (https://simple-scada.com/help/script/buttondbl.html).
ЦитироватьСкриптом я этого не могу: цвет зависит от режима - в данном случае "без фиксации".
Вы можете изменить цвет кнопки как показано в примере выше. Кнопка состоит из множества состояний, в каждом состоянии она может принимать разный цвет. При изменении цвета кнопки через скрипты нужно менять цвет в каждом состоянии.
Цитировать4. Пожелание: инструмент "заменить" в редакторе скриптов.
Замена будет добавлена в будущих обновлениях.
ЦитироватьНужно предоставить пользователю право выбора - удалять подвязки или нет.
Эта задача есть в планах. Но быстро добавить такую возможность не получится, потребуется время. Сейчас есть возможность массового обновления свойств переменных только из CSV-файла определенной структуры. Импорт из CSV описан здесь (https://simple-scada.com/help/manual/variable-import-csv.html).
6. Забавная ситуация: на оншоу окна подвязал скрипт изменения координат объекта.
Изначально окно стоит "по-центру". Оно вызывается кнопкой и немного уходит ниже экрана. Если его вытянуть - то все размещённые объекты смещаются вниз от окна. Помню было обещание отдельной настройки для координат окна (чтобы оно всегда вызывалось от координат вызывающего объекта и при дальнейшем перетаскивании не запоминало новые координаты - открыл-потаскал-закрыл-открыл снова - положение вновь от вызвавшего объекта). Когда планируете реализовать? В данной ситуации это критично чтобы не писать скрипт на оншоу.
Про цвет кнопки по States[0] - спасибо. Это я недосмотрел). Искал через ctrl+Пробел что-то подобное, в мануал лишний раз поленился глянуть)
Доброго времени суток. Столкнулся с такой ситуацией: руками запускаю OPC-сервер, затем СКАДУ, значения принимаются скадой и передаются через OPC в контроллер.
Если сразу запустить СКАДУ (Клиент), она сама запускает OPC-сервер, чтение данных из него происходит, а вот записать из СКАДЫ в контроллер и OPC не получается.
СКАДА v2.2.2.0. OPC-сервер от производителя контроллера (Regul OPC DA Server v1.0.0.22). В их техподдержке сказали что от клиента нет запроса на запись переменной, при запуске сервера клиентом. Соединение между контроллером и OPC-сервером осуществлено по Ethernet.
С помощью arOPC возможно подключение только по modbus? Какое устройство необходимо выбрать при добавлении?
Цитата: GEW от 12 июля 2017, 12:32:27Когда планируете реализовать? В данной ситуации это критично чтобы не писать скрипт на оншоу.
В ближайшем обновлении уже будет доступно. Постараемся опубликовать как можно скорее.
Цитата: tgeka86 от 12 июля 2017, 14:05:59Столкнулся с такой ситуацией: руками запускаю OPC-сервер, затем СКАДУ, значения принимаются скадой и передаются через OPC в контроллер.
Если сразу запустить СКАДУ (Клиент), она сама запускает OPC-сервер, чтение данных из него происходит, а вот записать из СКАДЫ в контроллер и OPC не получается.
СКАДА v2.2.2.0. OPC-сервер от производителя контроллера (Regul OPC DA Server v1.0.0.22). В их техподдержке сказали что от клиента нет запроса на запись переменной, при запуске сервера клиентом.
Здравствуйте. Скада не делает никаких различий между OPC-сервером запущенным пользователем и OPC-сервером, который запустила сама. Как Вы производите запись из скады? Вводите значение через поле, или нажимаете какую-то кнопку? Вы уверены, что у скады достаточно прав на взаимодействие с OPC-сервером и что она не блокируется файрволлом/антивирусом или другим ПО? Если запускать сервер скады от имени администратора, то ничего не меняется?
ЦитироватьС помощью arOPC возможно подключение только по modbus? Какое устройство необходимо выбрать при добавлении?
Полный список протоколов можно посмотреть здесь (http://www.ardsoft.ru/protocols.html). Также можно задать вопрос разработчикам arOPC на этом форуме
в разделе arOPC (https://simple-scada.com/forum/index.php?board=9.0).
ЦитироватьКак Вы производите запись из скады? Вводите значение через поле, или нажимаете какую-то кнопку?
Ввожу значение в поле, пробовал тип BOOL и REAL, при этом тонкая рамка вокруг поля мерцает, а запись не происходит. Данные из контроллера продолжают отображаться.
ЦитироватьВы уверены, что у скады достаточно прав на взаимодействие с OPC-сервером и что она не блокируется файрволлом/антивирусом или другим ПО?
Да, так как при запуске в последовательности: ручной запуск OPC-сервера -> Сервер СКАДЫ от админа -> Клиент от админа - все работает нормально.
Если запустить Клиент от админа -> он запускает сервер СКАДЫ -> он запускает OPC-сервер, то запись не происходит (рамка вокруг поля мерцает).
ЦитироватьЕсли запускать сервер скады от имени администратора, то ничего не меняется?
Изменений замечено не было.
Здравствуйте участники форума ! Я недавно начал учиться работе с мастер-скадой и codesys . Программирую ОВЕН ПЛК100.
Программу написал , связь со скадой через ОРСсервер , который с программой codesys , визуализация через мастерскаду . Всё проверил на моём ноубуке - работает ( через Ethernet ).
Вопрос в том , как теперь установить визуализацию на комп. оператора . Нужно-ли устанавливать все программы ?
В интернете много видеороликов , но не понятно , как сделать готовый к работе проект . Чтобы оператор открыл файл на рабочем столе и работал .
На компе оператора уже есть программа визуализации завода ( какая-то из германии ) , нужно добавить узел , не связанный с основным .
Так-же знакомлюсь с Simple-Scada . Может она проще ?
tgeka86, сервер скады гарантированно отправляет значение на OPC-сервер, когда Вы вводите его в поле. Мигающая рамка говорит о том, что значение на присвоение было отправлено на OPC-сервер и ожидает ответа. По каким-то причинам OPC-сервер не получает запрос на присвоение. Значит он как-то блокируется. То, что при ручном запуске всё работает наводит на мысль о том, что дело в ограниченных правах, т.к. ОС больше доверяет таким приложениям. Уточните, в какое расположение установлена скада?
Цитата: serg от 12 июля 2017, 17:09:18Вопрос в том , как теперь установить визуализацию на комп. оператора . Нужно-ли устанавливать все программы?
В интернете много видеороликов , но не понятно , как сделать готовый к работе проект . Чтобы оператор открыл файл на рабочем столе и работал.
Здравствуйте. Для работы с Simple-Scada 2 достаточно установить саму скаду, OPC-сервер и СУБД MySQL (если нужны функции архивации трендов и сообщений) и можно приступать к разработке проекта в скаде. Кратко процесс разработки скада-проекта обычно проходит так: конфигурируется OPC-сервер и настраивается связь с конечными устройствами; создаётся новый проект в редакторе скады (Editor.exe); с OPC-сервера в проект
импортируются теги (https://simple-scada.com/help/manual/variable-import-opc.html) (или добавляются вручную); строится интерфейс проекта; запускается сервер скады (Server.exe); клиент скады (Client.exe) подключается к серверу. Полное руководство на русском языке доступно по этой ссылке (https://simple-scada.com/help/manual/index.html).
ЦитироватьУточните, в какое расположение установлена скада?
Исходя из руководства, скада установки не требует. Папка со скадой находится на рабочем столе (так же пробовал C:\Simple-Scada\). Запускать просто или от имени администратора разницы нет (по крайней мере не было замечено). Имя проекта не содержит кириллицу.
Параллельно общаюсь с разработчиками OPC-сервера, выслал им логи работы сервера. Чтоб им дополнить картину, можно где-то взять логи OPC-клиента? Чтоб подробнее понять в какой момент происходит сбой.
Добрый день. Посоветуйте что делать с FlashColor:
Нарисовал Image трёхходовой клапан (три треугольника) на основе цветов стандартного клапана. В зависимости от состояния двух DI тэгов меняю кадры (всего 4). В кадрах меняется цвет внутренней заливки на ~clLime с ~clLightGray. В состоянии когда оба DI = true все три треугольника залиты clLime. При этом нужно сигнализировать оператору жёлтым блинком что что-то не так (данный трёхходовой конструктивно без смешения компонентов). Но желтый на clLime вообще никак не бликует. Другие цвета - да, хоть и не совсем так как хотелось бы (видимо что-то с распознаванием оттенков серого). Я докрутил вместо 4 кадра два 4 и 5 с заливкой жёлтый/зелёный и скажем с помощью тэга чередую 4-5, но может есть рекомендации при редактировании картинки которые позволят избежать лишних кадров и махинаций? Какие графические примитивы стоят в очереди на разработку?
Цитата: GEW от 14 июля 2017, 12:15:27Но желтый на clLime вообще никак не бликует. Другие цвета - да, хоть и не совсем так как хотелось бы (видимо что-то с распознаванием оттенков серого).
Здравствуйте. Дело в том, что цвет накладывается поверх текстуры и происходит смешивание цветов. Если нужно добиться полной смены цвета, то текстура должна быть белой. Поэтому для создания такого клапана нужно либо использовать множество кадров с поочередной сменой для мигания, либо составлять клапан из трёх отдельных текстур белых треугольников с перекрашиванием каждого треугольник отдельно (тогда можно и стандартное мигание использовать). Но лучше всего, конечно, встроить дополнительный трехходовой клапан в скаду, такая идея есть, но пока до конца не ясно как выработать решение, которое подойдёт всем пользователям.
В итоге после экспериментов вышел из положения по-другому. Зелёный блинк на желтом клапане - работает как нужно :)
Цитата: Simple-Scada от 15 июля 2017, 11:59:56встроить дополнительный трехходовой клапан в скаду, такая идея есть, но пока до конца не ясно как выработать решение, которое подойдёт всем пользователям.
Лично я для себя нарисовал кучу картинок с вариациями открытия трёхходового, описал в универсальном скрипте все вариации индикаций в зависимости от подвязанных основной и доппеременной. Схему управления записал в тэг картинки. В итоге вставляю картинку - подвязываю два di тега и выставляю тэгом схему.
Отличное обновление! Спасибо за оперативность. Как всегда а каждом обновлении много нужного :)
И сразу вопрос: для TM_TimeViewer.Interval есть планы снять ограничение read-only?
Я что-то не заметил... А где в Шедулере задается значение... Например, до 6 утра мне надо дежать 16*, до 9 - 21, до 18 - 18... и т.д. Или тут шедулер сугубо булевый, вкл/выкл? Кроме того, неплохо бы отдельно добавить "Special Event"-ы на конкретное число/время, например праздники, запланировнный отпуск и т.д. и периодические (например раз в 2 недели прокручивать 2-3 мин. насос/мотор, чтобы подшипники не залегли).
Цитата: GEW от 19 июля 2017, 10:55:55И сразу вопрос: для TM_TimeViewer.Interval есть планы снять ограничение read-only?
Да, ограничение будет снято в будущих обновлениях скады.
Цитата: Teodor от 19 июля 2017, 15:19:47Или тут шедулер сугубо булевый, вкл/выкл?
Да, вкл/выкл, при этом можно задать значение вкл. и значение выкл. в соответствующих свойствах расписания. В будущих обновлениях мы постепенно будем дорабатывать этот компонент, как и другие компоненты. Все пожелания обязательно учтём.
Добрый день.
Последнее обновление порадовало, но как всегда есть пожелания:
1. кнопкам добавить возможность изменения цвета иконки и загрузки пользовательских иконок. Сейчас приходится измудряться картинками.
2. в редакторе скриптов добавить горизонтальный скролл. На узких мониторах или длинной строке (например, сообщения) неудобно писать скрипты
3. компонент "таблица". Добавить возможность из скрипта писать в любую ячейку. Без этой функции компонент сильно кастрированный.
4. в глобальных переменных добавить тип "массив". Хотя бы строковый. Объясняю зачем: с контроллеров ошибки, состояние работы и т.д. обычно идут в виде кодов. В скаде эти коды нужно в осмысленный вид переводить. Сейчас для этого в каждом скрипте приходится кейсы писать. А если устройств 100?
5. добавить скрипт "функция". Для выполнения однотипных вычислений под которые универсальные скрипты не подходят. Если уж используете паскалевский компилятор, так использовать на полную катушку.
Пункты 3-5 в какой-то мере пересекаются
Подскажите , как сделать таблицу с почасовым потреблением ( например электроэнергии ) чтобы или на мнемосхеме отображалась за сутки и в течении недели , или где-то на компьютере файл сохранялся . Скорость импульсов от датчика не более 1 с секунду .
рассматривали ли вы вариант поддержки запуска скады на планшетах? для этого требуется поддержка виртуальной клавиатуры и элементы управления с поддержкой сенсора. Нужны какието элементы управления в окне приложений для их закрытия и сворачивания. Сейчас скада у меня крутится на планшете, не хватает всего описанного выше.
pan-nn, спасибо за список предложений, обязательно учтем их в будущих обновлениях скады.
Цитата: serg от 22 июля 2017, 14:13:27Подскажите , как сделать таблицу с почасовым потреблением ( например электроэнергии ) чтобы или на мнемосхеме отображалась за сутки и в течении недели , или где-то на компьютере файл сохранялся . Скорость импульсов от датчика не более 1 с секунду .
Для этого можно по какому-либо событию делать пользовательский запрос к БД на выборку архивных данных, а затем в цикле проходить по результатам выборки и производить необходимые расчеты. Такой способ плох сложностью разработки и тем, что при работе с большими объемами данных (например за неделю) вычисления станут слишком медленными. Поэтому сейчас правильнее всего было бы использовать систему отчетов для этих целей и, например, по нажатию кнопки строить отчет за нужный интервал времени с таблицей. Примеры для работы с системой отчетов можно посмотреть здесь (https://simple-scada.com/help/report/index.html).
Цитата: urqagun от 22 июля 2017, 15:06:58рассматривали ли вы вариант поддержки запуска скады на планшетах? для этого требуется поддержка виртуальной клавиатуры и элементы управления с поддержкой сенсора. Нужны какието элементы управления в окне приложений для их закрытия и сворачивания. Сейчас скада у меня крутится на планшете, не хватает всего описанного выше.
Всё описанное уже давно есть в Simple-Scada 2. Включите виртуальную клавиатуру на планшете через Options.exe -> вкладка "Simple-Client" (https://simple-scada.com/help/manual/settings-simple-client.html). Кнопки закрытия и сворачивания Вы можете создать самостоятельно и разместить их где угодно. Для этого добавьте кнопку и на событие OnClick напишите следующий код:
Для сворачивания:
begin
MinimizeApplicationClient(GetClientName);
end.Для выхода:
begin
CloseApplicationClient(GetClientName);
end.Подробнее об этих функциях можно прочесть здесь (https://simple-scada.com/help/script/work-clients.html). Также обратите внимание, что вчера мы обновили демо-версии скады и как раз улучшили взаимодействие некоторых элементов с сенсорным экраном, поэтому рекомендуем скачать последнюю версию (https://simple-scada.com/download-simple-scada) и использовать её.
А еще очень не хватает метода FindComponent по аналогии с GetVariableByName.
У меня в проекте 20 абсолютно одинаковых вентустановок по 80 параметров в каждой. Использовать универсальные скрипты не могу из-за невозможности обращения к произвольному компоненту. Вот сижу, копипастю..
А в редакторе переменных здорово бы иметь возможность дублирования группы переменных, не только по-одной
Добрый день. Пытался настроить цвет шрифта в таблице. Редактировал шрифт в ячейке - не применялся. Попробовал редактировать цвет шрифта у всей таблицы - получил скрин.
pan-nn в ближайшем будущем будут добавлены функции для поиска объектов по имени.
Цитата: GEW от 24 июля 2017, 08:38:35Редактировал шрифт в ячейке - не применялся.
Здравствуйте. Он не применялся, т.к. у ячейки свойство "Шрифт" выбрано "как у колонки", а значит все свойства шрифта будут взяты у колонки. Если выбрать какой-то конкретный шрифт, то цвет и другие свойства будут меняться.
Цитата: GEW от 24 июля 2017, 08:38:35Попробовал редактировать цвет шрифта у всей таблицы - получил скрин.
Проблема повторяется если снова открыть проект и проделать те же действия? Можете ли Вы отправить нам проект c указанием проблемной таблицы на почту support@simple-scada.com?
Нет, больше повторить подобное не смог. Если проблема поверится - вышлю проект.
Уважаемые разработчики! сориентируйте пож, когда планируете реализовать возможность работы на нескольких рабочих столах. мой заказчик готов купить скаду(пока пользуется бесплатной версией), но так как лицензия будет на 1 компьютере, то необходима одновременная работа клиента и едитора(система развивается, постоянно вносятся изменения)
urqagun, в ближайшем обновлении будет такая возможность. Т.е. можно будет организовать запуск клиента на одном мониторе, а редактора на другом. Также появится поддержка многомониторного режима, когда можно будет запустить один клиент сразу на нескольких мониторах.
Также обращаем внимание, что и сейчас можно запустить клиент скады и редактор в оконном режиме и перетянуть окно клиента на один монитор, а окно редактора на другой. Для запуска в оконном режиме нужно через Options.exe в разделах "Simple-Client (https://simple-scada.com/help/manual/settings-simple-client.html)" и "Simple-Editor (https://simple-scada.com/help/manual/settings-simple-editor.html)" выбрать "Размер окна" ниже, чем текущее разрешение экрана. Другой вариант - работать с клиентом и редактором на одном мониторе, поочередно сворачивая/разворачивая окно клиента/редактора.
Спасибо за напоминание, эти варианты уже используем, но они не есть оптимальное решение поэтому ждем инфы по срокам :) хочется уже на объекте нормальную скаду :) спасибо за ваш труд!
urqagun, по срокам в ближайшие 7-9 дней обновим.
Тут люди с гетбит путбит страдают. А нельзя их в методы переменной как в СТ вписать? Типа VarX.0 (VarX.Bit0) = значение 0 бита переменной и т.д. до 64. С флоат там выйдет каша, но со всеми целочисельными типами работать станет попроще.
Уважаемые разработчики! посоветуйте пож. OPC server для modbus, который может работать на облегченных версиях линукса, работает ли simple scada c OPC Linux?
urqagun, Simple-Scada разработана под операционные системы Windows. Работа под Linux невозможна.
Добрый день! Подскажите, возможно ли в будущих обновлениях организовать импорт чертежей из автокада векторной графикой?
отличная шутка :)
Ну как минимум я должен был попробовать))) Просто стандартных средств редактора катастрофически не хватает, например невозможно нарисовать наклонную линию или у фигуры эллипс нельзя выбрать толщину границы больше 1, в противном случае вся окружность закрасится. Вот я и подумал зачем изобретать велосипед, если есть куча редакторов.
Цитироватьвозможно ли в будущих обновлениях организовать импорт чертежей из автокада векторной графикой?
нет, таких возможностей не планируется, но инструменты рисования линий и фигур со временем будем дорабатывать.
Цитата: Simple-Scada от 07 августа 2017, 18:31:46Цитироватьвозможно ли в будущих обновлениях организовать импорт чертежей из автокада векторной графикой?
нет, таких возможностей не планируется, но инструменты рисования линий и фигур со временем будем дорабатывать.
Вообще то, если вести речь о DXF, то в общем можно вести эту доработку на его основе и его же потом гонять туда-назад. Кстати, в автокаде есть такой элемент "Блок" - импортированный кусок графики, который не подлежит редактированию. В общем, импортированная DXF картинка вполне может быть таким блоком, отрисоваваясь, прямо из файла.
Прошу помочь в решении следующей задачи:
Есть поле, которое привязано к переменной (тег с ОРС) диапазон изменения переменной от 0 до 1 (овен прибор) как сделать, чтобы в моем поле отображалось число с нужным мне масштабирванием (а именно от 0 до 2500), в то время как в теге оставалось пропорциональным диапазон значений от 0 до 1 (флоат)
Здравствуйте!
Для этого можно воспользоваться режимом масштабирования. Установите у переменной шкалу (https://simple-scada.com/help/manual/edit-scale.html) 0-1. Затем перейдите на вкладку дополнительных свойств переменной (см. скриншот во вложении), включите режим масштабирования и установите мин./макс. визуальной шкалы. После этого значения переменной при отображении в поле будут преобразовываться из шкалы 0-1 в шкалу 0-2500.
Если что, и формула посложнее, то это можно и скриптами сделать.
2 переменных ОРС и внутренняя. Внутрення привязана к полю, ОРС привязана к нему-же как Ех переменная. на событие OnChangeEx цепляем скрипт виду:
begin
if not (Sender is TM_Object) then Exit;
with Sender as TM_Object do
if (Variable <> nil) and (VariableEx.IsGoodQuality=true) then
begin
Variable.Value:= VariableEx.Value*2500;
end;
end.
То есть, при изменении ОРС переменной выполнится определенная операция с переменной внутренней, которую и покажет в поле.
Собсно скрипт может быть вызван из любого к-ва полей, которые устроит данная математика...
Мой нетрезвый мозг при этом еще и пользуется параметром "Тег", на основании которого в скрипте кейс или иф (if tag=1 then...) меняет математику, которая будет использована.
Мне так удобнее т.к. я наглядно вижу что происходит :)
Здравствуйте! Прошу помочь в таком вопросе - пользовал скаду версии 1.3.3, ОРС-сервер ОВЕН все работает. По ряду причин (нужна архивация данных) решили перейти на версию 2. В редакторе (Демо-версия) обнаружилось, что он в упор не видит Овеновский ОРС, почему такое может быть?
maks448, здравствуйте. На Вашем компьютере установлены компоненты OPC-Core Components (https://simple-scada.com/download)? Если нет, то нужно установить их и перезагрузить компьютер. После этого OPC-сервер должен быть виден при импорте тегов (https://simple-scada.com/help/manual/variable-import-opc.html).
Да, установлены, Simple Scada 1.3.3 сервер видит и нормально работает.
maks448, запуск редактора скады от имени администратора что-нибудь меняет? И уточните: Вы говорите, что OPC-сервер не виден при импорте тегов (см. эту ссылку (https://simple-scada.com/help/manual/variable-import-opc.html)), или где-то ещё, например в меню "Проект -> OPC-серверы" (https://simple-scada.com/help/manual/opc-servers-set.html)?
запуск редактора от имени администратора также ничего не дал. Проект -> ОРС-серверы -> Добавить. Имя компьютера localhost, в списке ОРС-серверов - "Не выбрано", больше ничего нет. При попытке импорта тегов соответствующая кнопка изменяет цвет и более ничего не происходит.
Переустановите компоненты OPC-Core Components (https://simple-scada.com/download) и перезагрузите компьютер. Если не поможет переустановите OPC-сервер - у нескольких пользователей была такая проблема и помогла переустановка OPC-сервера. Также, возможно работу Редактора Simple-Scada ограничивает антивирусное ПО или файервол - этот момент тоже можно проверить.
Да, переустановка ОРС-сервера решила проблему. Спасибо за помощь! Попутно еще вопрос - почему-то в окне клиента не отображается кнопка трендов. Может где-то отключена, не могу найти.
У Вас в верхнем правом углу на клиенте нет кнопки трендов (см. вложение)? Может быть Вы отключили панель страниц (https://simple-scada.com/help/manual/page-panel.html)? Пришлите пожалуйста скриншот клиента.
Нет этой кнопки...
Пришлите папку с Вашим проектом (\Simple-Scada\Projects\Имя_Проекта) на support@simple-scada.com . Проверим в чем может быть проблема.
В архиве.
maks448, у Вас разрешение экрана на компьютере 1920x1080, верно? А проект сделан под разрешение 2048 на 1152. Если сменить разрешение проекта на 1920x1080, то все отображается корректно? Также уточните, у Вас в операционной системе задано дополнительно масштабирование экрана?
Оооогромная просьба как-то доработать трубопроводы. Реально, очень сложно работать с ними.
Во вложении кусок скрина. Зависимо от состояния моторов и клапанов активные участки должны подсвечиваться. Т.к. они сначала были нарисованы, то вся труба это один трубопровод. Теперь сижу, копирую, из одной копии вырезаю одно, из другой, другое, потом, опять копирую-нарезаю. Короче мрак.
Никак нельзя, например, трубопровод заменить отдельными кусками труб, которые можно самому разбирать и собирать в группы труб (трубопроводы) на свое усмотрение. Например создав невидимые для клиента элементы "трубопровод", указываемые в свойствах трубы как "родитель", от которого трубы привязанные к нему перенимают свойства и екшены? А еще тогда неплохо бы тройнички-крестовины, которые тоже относятся к разным группам. при щелчке на иконку определенного трубопровода подсвечивать все что ему принадлежит.
ЦитироватьНикак нельзя, например, трубопровод заменить отдельными кусками труб, которые можно самому разбирать и собирать в группы труб (трубопроводы) на свое усмотрение.
Большинство пользователей такой метод как раз не устраивает и занимает гораздо больше времени. Если на мнемосхеме предполагается большое количество трубопроводов, то собирать их из множества элементов не самая удобная и быстрая задача. С текущей же системой трубопроводов нарисовать большое количество трубопроводов не займет много времени - элементы трубопровода автоматически соединяются между собой.
ЦитироватьЗависимо от состояния моторов и клапанов активные участки должны подсвечиваться. Т.к. они сначала были нарисованы, то вся труба это один трубопровод. Теперь сижу, копирую, из одной копии вырезаю одно, из другой, другое, потом, опять копирую-нарезаю. Короче мрак.
Если необходимо, чтобы участки трубопровода подсвечивались, то нужно было изначально рисовать эти участки отдельными трубопроводами - тогда бы не пришлось ничего переделывать. Даже если бы Вы собрали трубопровод из отдельных элементов, то сейчас Вам все равно пришлось бы разбивать его на группы и писать скрипты подсвечивания для этих групп, а это тоже не удобно и требует времени. Поэтому, самый быстрый вариант это сразу планировать, какие участки трубопровода нужно подсвечивать и изначально рисовать их отдельными трубопроводами.
ЦитироватьМaks448, у Вас разрешение экрана на компьютере 1920x1080, верно? А проект сделан под разрешение 2048 на 1152. Если сменить разрешение проекта на 1920x1080, то все отображается корректно? Также уточните, у Вас в операционной системе задано дополнительно масштабирование экрана?
Да, дело было в масштабировании, еще раз спасибо! А как можно свернуть окно работающего клиента?
Ладно, как скажете. Но далеко не всегда можно угадать изначально, что возжелает заказчик. А с отдельными кусками я уже работал, и мне это было много удобнее. Правда там не было вообще понятия трубопровод или группа, зато было копирование свойств другого объекта.
ЦитироватьДа, дело было в масштабировании, еще раз спасибо! А как можно свернуть окно работающего клиента?
Нажать сочетание CTRL+M. Или можно сделать кнопку, по нажатию на которую клиент будет сворачиваться - для этого используйте процедуры MinimizeApplicationAll (https://simple-scada.com/help/script/minappall.html) и MinimizeApplicationClient (https://simple-scada.com/help/script/minappclient.html).
Здравствуйте.
У меня при запуске проекта выходит аварийное сообщение. Но оно у меня вызывает вопросы. Во-первых его вообще не должно быть. Если на входе прибора будет 0, а это вход датчика температуры, то тогда да. Но там не может быть нуля. Тем более что, приборов 2, одинаково все подключено, но сообщение выходит только на 2м приборе. Во-вторых - время. Сообщение вызывается из списка сообщений, поэтому я не могу задать ему время вывода. Оно должно быть как минимум не ниже Now(). А тут 1899 год. В-третьих, я квитирую его и оно исчезает. Сообщение не остается в списке - Все сообщения. Как будто его и не было вообще. Что это может быть?
Здравствуйте. Похоже на первое событие OnDataChange для тега, но странно почему даётся такая отметка времени. 31.12.1899 соответствует 0, если взять его значение как число. Мы внесём дополнительные проверки в ближайшем обновлении.
Как я могу защитить мои проект не будет открыт в редакторе ?
emoxristov, Вы можете установить пароль на проект. См. меню "Проект --> Настройки --> Пароль на проект".
Цитата: emoxristov от 13 августа 2017, 19:03:42Как я могу защитить мои проект не будет открыт в редакторе ?
Не дать доступ до редактора. Запускать клиента из папки где нету проекта.
Если, можно еще раз напомните, как работать с битами внешней переменной. Я что-то упустил что уже поправили в последней версии, а что нет.
Есть 10 кнопок меняющие биты одного внешнего тега (без каких-либо скриптов). Снаружи приходит составная переменная статуса кнопок, они подсвечваются и тут-же гаснут, т.к. переменная скидывается в 0, что вообще не есть хорошо. Контроллер, наученный что так не бывает (контрольный бит всегда в 1) восстанавливает предыдущее состояние и начинается "дискотека" с миганием.
Как, на сегодня, правильно выходить из таких случаев?
С битами как и раньше, ставится кнопка с фиксацией и у кнопки включается работа с битами и указывается номер бита. Нажатие на кнопку записывает в указанный бит 1, повторное нажатие 0.
ЦитироватьСнаружи приходит составная переменная статуса кнопок, они подсвечваются и тут-же гаснут, т.к. переменная скидывается в 0, что вообще не есть хорошо.
Кнопки могут влиять только на основную переменную. Если статусная переменная у них задана как дополнительная, то они её точно не будут сбрасывать. Может ещё в каких-то скриптах проходит сброс этой переменной?
Не, так я за то и спросил, что можно ли статусную основной делать и работать с ней прямо, или все-же доп. и основная локальная. У меня вообще цирк вышел. Я пробовал через основную и свойство бит, а скриптом отдельно выставлял контрольный бит. Но переменная в ОПС успевала передаться еще до того как контрольный бит устанавливался, и собсно отправить ее на контроллер, который восстанавливал состояние до предыдущего.
Когда требуется, чтобы кнопка при нажатии изменяла значения одной переменной и, например меняла свой цвет по другой переменной, то правильно будет сделать так, как это описано в примере "Кнопка по двум переменным (https://simple-scada.com/help/script/buttondbl.html)". Если у Вас так и сделано и при этом, как Вы писали переменная статуса(доп. переменная) по какой-то причине сбрасывается на 0, то это означает что либо она сбрасывается на контроллере, либо в каких-то скриптах. Дополнительная переменная никак не зависит от кнопки и не может менять свое значение от состояний кнопки, если только это не прописано где-нибудь в скрипте.
Нужно сделать типа базы скриптов готовых. Ну типа бибилотека. как NPM. Ну что бы можно было искать скрипт и загружать себе в бибилиотеку проекта. Что бы можно было свой скрипт опубликовать и что бы другие могли им пользоваться. Как расширения Visual Studio Code. Как менеджер макросов Segnetics SMLogix, или как менеджер макросов Owen Logic.
Я думаю сообщество пользователй Симпл Скада могло бы совместно сделать продукт более ценным добавляя свои решения в него.
Доброго дня! существует ли такая возможность разместить в среде таймер у которого были бы события, чтобы управлять объектами по времени, не прибегая к задействованию тегов
Здравствуйте. Бьюсь над проблемой по имени "CoDeSys.OPC.02 (localhost) ошибка при добавлении новых тегов: Unspecified error". Уже несколько раз - всё работает как надо, выключил компютер, на следующий день при включении с ПЛК не связывается, SCADA теги не видит. Что за наваждение?
Цитата: VLAD от 19 августа 2017, 18:29:52Здравствуйте. Бьюсь над проблемой по имени "CoDeSys.OPC.02 (localhost) ошибка при добавлении новых тегов: Unspecified error". Уже несколько раз - всё работает как надо, выключил компютер, на следующий день при включении с ПЛК не связывается, SCADA теги не видит. Что за наваждение?
Во всем виноват OPC server(если Вы конечно "родной" используете"). Нужно пересоздать соединение с проектом в CoDeSys OPC Configurator
ЦитироватьВо всем виноват OPC server(если Вы конечно "родной" используете"). Нужно пересоздать соединение с проектом в CoDeSys OPC Configurator
Я так и понимаю... на всякий случай снёс кодесис, ставлю самый свежий с их сайта. Спасибо.
Цитата: urqagun от 19 августа 2017, 14:16:20Доброго дня! существует ли такая возможность разместить в среде таймер у которого были бы события, чтобы управлять объектами по времени, не прибегая к задействованию тегов
Здравствуйте. Отдельного компонента для таймера нет и создать таймер сейчас можно только на основе тегов (можно использовать внутренние теги, они не ограничены). Вот последовательность действий для создания таймера:
1. Создаем виртуальную переменную "vrTimer" с типом данных DateTime.
2. В меню скриптов создаем новый скрипт с типом события "Прошла секунда" с таким кодом:
const
INTERVAL = 60; // Интервал таймера в секундах
var
aSeconds: Int64;
begin
{ если vrTimer ещё не инициализирована, то инициализируем её и прерываем скрипт }
if vrTimer.Value < 1 then vrTimer.Value := Now;
{ получаем кол-во секунд с последнего срабатывания таймера }
aSeconds := SecondsBetween(Now, vrTimer.AsDateTime);
{ если прошло больше, чем INTERVAL секунд с последнего срабатывания таймера }
if aSeconds >= INTERVAL then
begin
// КОД РАЗМЕЩЕННЫЙ ЗДЕСЬ БУДЕТ ВЫПОЛНЯТЬСЯ ПО ТАЙМЕРУ
vrTimer.Value := Now;
end;
end.Готов таймер с интервалом 60 секунд. Значение константы INTERVAL определяет интервал таймера в секундах.
То ,что нужно, спасибо!
Практикуете ли вы авторизацию специалистов по внедрению? если да, то выдаете ли сертификат, будет ли скидка на последующие за первой приобретенной лицензией на программу?
Здравствуйте!
ЦитироватьПрактикуете ли вы авторизацию специалистов по внедрению?
Нет, пока такой возможности нет.
Цитироватьбудет ли скидка на последующие за первой приобретенной лицензией на программу?
Отправили информацию Вам на почту.
А есть-ли, хотя-бы теоретическая, возможность при внесении изменений в проект не перезапускать ВЕСЬ проект. Например я передвинул пару элементов, поменял права, добавил сообщений и т.п., но не лез в переменные, тренды, скрипты и т.п. Очень неплохо было бы иметь возможность перезапустить не проект, а только интерфейс(отдельной кнопкой), дабы не обрывать связи с БД и OPC.
Нельзя-ли добавить к свойствам объекта "Поле" BackgroundColor ?
Того, что есть в закладке управления тревогами не всегда достаточно.
Спасибо.
:)Привет! Поковырял, может не полностью,но почему при работе с трендами (Окно Тренды) ,не показываются границы (аварии и предупреждения) ? Может не там смотрел :-[
Как посмотреть тренды за 3 дня например?
Цитата: Teodor от 08 сентября 2017, 09:54:38А есть-ли, хотя-бы теоретическая, возможность при внесении изменений в проект не перезапускать ВЕСЬ проект. Например я передвинул пару элементов, поменял права, добавил сообщений и т.п., но не лез в переменные, тренды, скрипты и т.п.
К сожалению, без полного перезапуска проекта не обойтись, т.к. новые объекты должны обязательно регистрироваться компилятором, что и происходит при перезапуске. Теоретически можно отслеживать все изменения и дорегистрировать только их, но для этого нужно разработать целую систему.
Цитата: George от 10 сентября 2017, 20:39:30Нельзя-ли добавить к свойствам объекта "Поле" BackgroundColor ?
Того, что есть в закладке управления тревогами не всегда достаточно.
Т.е. нужно менять цвет фона Поля? Используйте свойство Color. Это и есть цвет фона. Или Вы говорите о чем-то другом?
Цитата: Suse от 11 сентября 2017, 07:31:44:)Привет! Поковырял, может не полностью,но почему при работе с трендами (Окно Тренды) ,не показываются границы (аварии и предупреждения) ? Может не там смотрел :-[
Как посмотреть тренды за 3 дня например?
Выберите интервал "Пользовательский" чтобы просмотреть тренды за любой указанный интервал. Вывести аварийные и предупредительные границы в тренды пока нельзя. Меню трендов
подробно описано здесь (https://simple-scada.com/help/manual/client-trends-view.html).
:D Старость не радость) Спасибо!
Масштаб графика как увеличить?! Колесиком не получается.
P.S. Когда круглые индикаторы появится ?! :-[
ЦитироватьМасштаб графика как увеличить?! Колесиком не получается.
Масштабирование трендов осуществляется с помощью шкал трендов. Шкалы трендов можно перемещать по вертикали при помощи курсора, а масштабировать колесиком мыши (если включена опция "Масштаб и перемещение шкалы (https://simple-scada.com/help/manual/index.html?editor-settings.html#set_trends)"). При клике ПКМ по шкале произойдет возврат к оригинальному виду шкалы. Меню трендов подробно описано здесь (https://simple-scada.com/help/manual/client-trends-view.html).
ЦитироватьКогда круглые индикаторы появится ?
Каких-то сроков назвать не можем. Сейчас решаются более востребованные задачи.
ЦитироватьТ.е. нужно менять цвет фона Поля? Используйте свойство Color. Это и есть цвет фона. Или Вы говорите о чем-то другом?
Может быть я чего не догоняю, но..:
У объекта "Уровень" есть свойство - BackgroungColor (и можно управлять его цветом из скрипта)
У объекта "Поле" есть только BoderColor (можно менять цвет только границы)
И вот этот скрипт, что показан у вас на видео тоже не работает:
begin
Case Image1.ValueAsInt of
1: Image1.Colour := clRed;
2..4: Image1.Colour := clGreen;
5: Image1.Colour := clYellow;
end;
end.При компиляции сообщение - undeclared identifier Image1
Спасибо.
Объект "Поле (https://simple-scada.com/help/script/tmfield.html)" также обладает свойствами классов TM_Control (https://simple-scada.com/help/script/tm_control.html) и TM_Object (https://simple-scada.com/help/script/tm_object.html), в которые входит и свойство Color (https://simple-scada.com/help/script/color.html).
ЦитироватьПри компиляции сообщение - undeclared identifier Image1
Это значит, что у Вас в проекте нет объекта "Image1". Создайте изображение с именем "Image1" или замените в скрипте "Image1" на имя изображения, которое есть у Вас в проекте и скрипт будет компилироваться.
Цитата: Simple_Scada от 11 сентября 2017, 18:42:20Объект "Поле (https://simple-scada.com/help/script/tmfield.html)" также обладает свойствами классов TM_Control (https://simple-scada.com/help/script/tm_control.html) и TM_Object (https://simple-scada.com/help/script/tm_object.html), в которые входит и свойство Color (https://simple-scada.com/help/script/color.html).
ЦитироватьПри компиляции сообщение - undeclared identifier Image1
Это значит, что у Вас в проекте нет объекта "Image1". Создайте изображение с именем "Image1" или замените в скрипте "Image1" на имя изображения, которое есть у Вас в проекте и скрипт будет компилироваться.
Простите - затупил. :(
Разобрался.
Спасибо!
Было-бы очень удобно при наличии переменных загруженных с устройств иметь возможность выгрузить их в .csv-файл, чтобы потом можно было их отредактировать в этом выгруженном файле и потом снова загрузить.
У вас есть возможность загрузки из .csv, но выгрузка была-бы очень кстати.
Спасибо.
Поддерживаю George. Когда много тегов и нужно что-то поменять, то проще это сделать в каком-нибудь стороннем текстовом редакторе.
Недавно появились процедуры для поиска различных объектов (Level, Shape, Text, Image) по имени, но нет такой процедуры для объекта Field.
Возможно ли воспользоваться синтаксисом, представленным ниже:
var
aField : TM_Object;
begin
aField := GetObjectByName('имя поля');
if aField <> nil then
if aField is TM_Field then
with aField as TM_Field do
aField.Variable := 1;
Такая функция есть, мы просто забыли добавить её в список видимых методов. Используйте такой код:
var
aField: TM_Field;
begin
aField := GetFieldByName('имя поля');
if aField <> nil then
aField.Variable := 1;
end.
Он должен успешно скомпилироваться.
Цитата: George от 14 сентября 2017, 14:15:42Было-бы очень удобно при наличии переменных загруженных с устройств иметь возможность выгрузить их в .csv-файл, чтобы потом можно было их отредактировать в этом выгруженном файле и потом снова загрузить.
У вас есть возможность загрузки из .csv, но выгрузка была-бы очень кстати.
В ближайшем обновлении появится возможность экспорта в .csv.
Спасибо за последние обновления!
Возможно ли добавить для объекта "Временный тренд" в свойство "Интервал" такие промежутки, как: 1 день, 2 дня, 3 дня, неделя (необходимо для очень инерционных процессов)?
А также сделать это свойство доступным для изменения из скриптов.
Здравствуйте!
Для компонента "Временный тренд" такие промежутки добавить не получится, так как временные тренды хранятся в оперативной памяти. Для таких промежутков времени нужен отдельный компонент "Архивный тренд", который будет брать данные из БД. Мы планируем добавить такой компонент, но когда он появится сказать сложно - сейчас решаются более востребованные задачи.
Замечания и пожелания по результатам использования объекта "Таблица":
Возможность заполнения "Таблицы" из БД - это просто замечательно, но:
1. ПОСПЕШИЛ С ВЫВОДАМИ, доступ к системным таблицам есть. Замечание об ошибках при обращении к системным таблицам УДАЛЕНО .
2. Метод "RunSQL" не вызывает скриптов по завершению запроса или по ошибке. Для контроля завершения можно посылать "пустой запрос" (в предположении, что запросы выполняются последовательно), а различать отсутствующую или пустую таблицу дополнительным запросом.
Можно ли придать основной переменной объекта "Таблица" смысл значения размера таблицы, принимающее по завершении запроса значение размера таблицы (-1 при отсутствии таблицы)?
Фактически элемент "Таблица" представляет внешний двумерный текстовый массив с визуализацией, возможности которого желательно расширить:
1. Добавить управление подсветкой(выбором) и визуализацией из скрипта:
- для подсветки - разрешить запись в "RowIndex";
- для визуализации - отдельную переменную (смещение от первой строки таблицы до верхней видимой) или автопозиционирование подсвеченной строки в видимую часть при изменении "RowIndex".
2. Добавить для Таблицы свойство выбор ячейки - "CellIndex" = "RowIndex" * "ColumnsCount" + "ColumnsIndex"
(выбор с точностью до ячейки в одно обращение к скрипту при любых изменениях).
3. Разрешить запись в "Text" для "Ячейки" (позволит исключить запись-чтение таблицы при каждом изменении текста).
4. Добавить возможность задания цвета подсветки выбранной строки.
Объекта "Таблица" используется для хранения данных в следующих задачах:
1. Показ списка для выбора рецепта. Каждый рецепт хранится в отдельной таблице БД с комментарием, содержащим краткую информацию о рецепте. Список формируется из комментариев.
2. Контроль выполнения выбранного рецепта с помощью подсветки исполняемой строки.
3. Работа с таблицами рецептов - создание, редактирование и т.д.
Расширение свойств "Таблицы" позволит уменьшить код и количество объектов для визуализации и навигации по "длинной" (строк в таблицы больше, чем в экранной форме) таблице.
pan2000, спасибо за подробное описание. Доработка компонента "Таблица" планируется в будущих обновлениях и часть из перечисленных функций обязательно будут добавлены.
ЦитироватьМетод "RunSQL" не вызывает скриптов по завершению запроса или по ошибке.
Скрипты на события "Выполнен SQL-запрос" и "Ошибка SQL_запроса" вызываются только для
глобальной процедуры RunSQL (https://simple-scada.com/help/script/workbd.html). Для одноимённого
метода таблицы Table.RunSQL (https://simple-scada.com/help/script/trunsql.html) данные события не вызываются, но при этом текст ошибки (в случае её возникновения) отображается прямо в таблице (см. скрин во вложении).
ЦитироватьДобавить для Таблицы свойство выбор ячейки
Сейчас Вы можете обратиться к свойствам ячейки таблицы через столбец таблицы. Например обращение к ячейке во второй колонке и пятой строке будет выглядеть так:
Цитироватьvar
aCell: TM_TableCell;
begin
aCell := Table1.Columns[1].Cells[4];
end.
Сама ячейка сейчас имеет свойства
описанные здесь (https://simple-scada.com/help/script/tmtablecolumn.html).
Цитировать3. Разрешить запись в "Text" для "Ячейки"
Сейчас возможна запись, но только через переменные. Т.е. ячейка связывается с переменной и любое изменение значения переменной отображается в ячейке. В будущем постараемся разрешить смену текста без привязки к переменным.
А можно добавить промежуточный размер шрифта между 24 и 34, например, 29?
А то сейчас большой разброс.
Миханик, добавим такой размер в будущих обновлениях.
Доброго дня! практически все известные OPC серверы модбас предоставляют возможность подключения не более 32 тегов. Ваша бесплатная версия позволяет подключать 64 тега. 2 разных опс сервера запустить нельзя. натолкните пож. на мысль, с помощью каких механизмов можно запустить у клиента стартовую задачку(там надо как минимум 44 тега) именно на модбас(контроллеры у меня свои с поддержкой модбаса).
Здравствуйте!
Версия Demo 64 тега позволяет работать только с одним OPC-сервером. В версии Standard можно работать с двумя OPC-серверами. В версии Professional нет ограничений на количество OPC-серверов. Для демонстрации возможностей можно использовать версию Demo-Time, она имеет только одно ограничение - один час непрерывной работы сервера Simple-Scada.
Цитата: urqagun от 04 октября 2017, 18:54:13Доброго дня! практически все известные OPC серверы модбас предоставляют возможность подключения не более 32 тегов. Ваша бесплатная версия позволяет подключать 64 тега. 2 разных опс сервера запустить нельзя. натолкните пож. на мысль, с помощью каких механизмов можно запустить у клиента стартовую задачку(там надо как минимум 44 тега) именно на модбас(контроллеры у меня свои с поддержкой модбаса).
Вы имели в виду, что ДЕМО серверов читают не более 32 тегов... Кстати, к часовой демо в комплект взять лектус. У него тоже есть демо анлим, но по времени.
Есть 1 подленький ход :D теги word читать на OPC инт64. Тогда в 1 тег ОРС влезет 4 тега. Потом, правда на скаде придется поплясать, но то таке.
Теодор! спасибо за мысль, но у меня нет задачи наколоть когото. задача стоит продемонстрировать возможности скады на конкретном примере(там 44 тега нужно минимум). и если бы скада была ограничена 32 тегами, вопросов не было бы.
Уважаемый администратор! если все таки это возможно, ответьте на мой вопрос. существует ли вариант использования вашей бесплатной версии с устройствами модбас на все 64 тега с использованием "льготного" ОПС. может вы могли бы договориться с производителями ОПС серверов также чуток расширить функционал до 64 тегов в демо режиме(вариант на час не катит, так как клиентам нужно время увидеть и ощутить надежную работу скады на небольшом участке ).
В принципе с оборудованием Овен (с их протоколом) по всем доступным 64 тегами мне удалось систему успешно продемонстрировать клиенту, этого хочется и с модбасом проделать.
Цитироватьесли все таки это возможно, ответьте на мой вопрос. существует ли вариант использования вашей бесплатной версии с устройствами модбас на все 64 тега с использованием "льготного" ОПС. может вы могли бы договориться с производителями ОПС серверов также чуток расширить функционал до 64 тегов в демо режиме(вариант на час не катит, так как клиентам нужно время увидеть и ощутить надежную работу скады на небольшом участке ).
Разработчики OPC-серверов никак с нами не связаны, это отдельное ПО которое разрабатывают другие люди и соответственно мы не можем повлиять на их решения касаемо количества бесплатных тегов.
Решение этой проблемы существует, я нашел ОПС сервер модбас триал на 30 дней без ограничений.
Добрый день. Столкнулся с необходимостью сделать максимально обезличенный проект верхнего уровня - все данные, вплоть до названия (описания) переменных должны находиться в контроллере, а скада - забирать данные из него и заполнять все настройки (пределы, алармы и т.д. и т.п.). У меня осталась одна нерешённая проблема - невозможность менять description в настройках Tm_Variable из скрипта (read only). Это нужно для корректного отображения названий трендов (редактируемый тренд). Можно ли ожидать снятия запрета read only или существует возможность по-другому решить проблему? Описание переменой лежит в другой текстовой Tm_Variable.
И сразу дополню: у трендов есть свойство «задать положение» для диапазона и процентовки, а также у временных трендов есть минимум и максимум шкалы - при их применении данные отражаются некорректно - то есть шкалы смещаются, а сами тренды - нет. Может я некорректно понимаю назначение этих свойств, но существует следующая потребность:
Допустим шкала температуры 0-100. На разных стадиях необходимо контролировать разные участки шкалы - например на 1 этапе колеблется 15-20, потом 30-50, потом 70-80, соответственно нужно делать шкалу в районе +\- 10% от значения чтобы видеть подробности (для 15-20 разбега - шкала 10-25). На шкале 0-100 ничего не видно. Может имеет смысл сделать опцию «автодиапазон шкалы на тренде» в зависимости от, скажем, минимума и максимума на интервале (или как это сделано в WinCC) и дать пользователю возможность выставить %разбега шкалы от значения? Для нескольких трендов соотвественно по минимуму и максимуму всех отображаемых трендов.
Здравствуйте.
ЦитироватьЭто нужно для корректного отображения названий трендов (редактируемый тренд). Можно ли ожидать снятия запрета read only или существует возможность по-другому решить проблему? Описание переменой лежит в другой текстовой Tm_Variable.
А почему не подходит способ просто в редакторе задать правильное описание архивируемых переменных и затем когда на редактируемый тренд Вы будете выбирать одну из таких переменных, то скада будет брать соответствующее ей описание. Т.е. допустим есть переменная которая отображает "температуру в сборнике А". Адрес переменной нельзя менять во время работы проекта, а значит переменная всё время будет отображать именно "температуру в сборнике А". Тогда зачем менять описание этой переменной?
Цитироватьу трендов есть свойство «задать положение» для диапазона и процентовки
Это свойство работает довольно просто. Вся
область просмотра (см. ссылку) (https://simple-scada.com/help/manual/client-trends-view.html) трендов представляет собой зону от 0 до 100%. Вы можете у тренда включить свойство "Задать положение" и указать диапазон, например от 50 до 100%. Тогда скада возьмёт шкалу переменной (https://simple-scada.com/help/manual/edit-scale.html)[/b] и автоматически впишет её в заданный диапазон.
Цитироватьу временных трендов есть минимум и максимум шкалы - при их применении данные отражаются некорректно - то есть шкалы смещаются, а сами тренды - нет.
Свойства минимум шкалы и максимум шкалы у компонента временные тренды никак не влияют на отображение самих временных трендов, это просто визуальные значения для отображения шкалы. Ведь временных трендов может быть несколько и у каждого может быть своя шкала. А при отрисовке временных трендов берётся
минимум и максимум шкалы переменной (https://simple-scada.com/help/manual/edit-scale.html) и эта шкала вписывается в высоту компонента.
ЦитироватьНа разных стадиях необходимо контролировать разные участки шкалы - например на 1 этапе колеблется 15-20, потом 30-50, потом 70-80, соответственно нужно делать шкалу в районе +\- 10% от значения чтобы видеть подробности (для 15-20 разбега - шкала 10-25). На шкале 0-100 ничего не видно.
В будущих обновлениях постараемся добавить автодиапазон шкалы.
Тогда зачем менять описание этой переменной?
Не то чтобы менять, изначально оно пустое. По концепции создаваемого проекта все данные максимально обезличены и хранятся в контроллере. После запуска проекта при авторизации пользователя скриптом подгружаются данные из контроллера и раздаются по всем свойствам переменных (и по другим объектам). При этом есть возможность контролировать права пользователя и раздавать свойства выборочно. Все переменные именованы в проекте безлико - DI_001... AI_001... и т.д., связаны структурами с контроллерными словами-описаниями, в которых уже лежат название, нормировки, режимы доступа и т.д. и т.п. Человек, получивший доступ к скаде не сможет разобраться без подключения к контроллеру, это в том числе продиктовано определенными требованиями к коммерческой тайне, секретам, и т.д. и т.п.
+ проект верхнего уровня легче тиражировать при таком подходе.
Но из-за невозможности заполнить description скриптом на трендах без описания все переменные с пустыми description отражаются как DI_001 и т.п.
Не то чтобы прям критично, но хотелось бы хотя бы иметь доступ если не к описанию переменной, то к тексту тренда (оно тоже read only). Хотя первый вариант безусловно проще.
Спасибо за развернутый ответ. Откроем доступ к описанию переменной в ближайшем будущем.
Большое спасибо) 👍🏻👍🏻👍🏻
Есть ли функция, которая позволит отправить определенный отчет сразу на принтер без его предварительного просмотра?
То есть нажал кнопку в клиенте "Распечатать" и отчет сразу выходит на печать на принтер по-умолчанию.
ЦитироватьЕсть ли функция, которая позволит отправить определенный отчет сразу на принтер без его предварительного просмотра?
Нет, сейчас печать возможна только с предпросмотром, но уже в ближайшем обновлении (будет скоро) появится возможность печати без предпросмотра.
День добрый. Есть ли возможность редактором проекта подключаться к проекту по сети на сервере или необходимо править локально и копировать с заменой файлов?
Здравствуйте.
Пока такой возможности нет и нужно копировать свой проект из папки "..\Simple-Scada 2\Projects\", редактировать его и снова копировать изменённый проект с заменой.
Еще вопрос. Возможно ли группировать объекты в некий контейнер, для работы с ним как с единым целым. Или хотя бы чтоб перемещать в редакторе по рабочей области как единый объект? И очень не хватает масштабирования мнемосхемы в клиенте колесом мыши , планируется ли подобное нововведение?
Группировки нет, но это один из популярных запросов, поэтому обязательно добавим. Сейчас придется выделять несколько объектов курсором мыши и затем перемещать (можно также выделять отдельные объекты удерживая клавишу SHIFT).
ЦитироватьИ очень не хватает масштабирования мнемосхемы в клиенте колесом мыши , планируется ли подобное нововведение?
Масштабирование в стандартном клиенте скады не планируется. К концу года планируем опубликовать web-клиент для Simple-Scada Professional и в нём можно будет масштабировать страницы средствами браузера (CTRL + Колесико мыши).
Я так понял, что планируется web клиент. А как он будет продаваться и что делать с уже купленными толстыми клиентами?
+ Чтоб не повторялись многие вопросы на форуме, было бы неплохо где-то публиковать план развития и текущее состояния продукта.
Web-клиент будет доступен только в версии Professional и он будет считаться так же как и обычные клиенты. Покупать его отдельно не потребуется. Например, в версии Professional в комплекте идут три клиента, т.е. можно будет подключиться к серверу тремя клиентами одновременно, не важно web-клиент это или обычный клиент. Если требуется больше клиентов их можно будет докупить.
Нарисуйте круглые шкалы ;D
Доброго дня! столкнулся с проблемой.
. нужно отображать окно скады в минимально возможном окне(присутсвуют другие задачи у оператора). Выбрал режим 800Ч600
при этом мой проект состоит в управлении каждым из 16 выходов контроллера по индивидуальному расписанию для каждого.
Для этого создаю 16 страниц с названием выходов. но проблема в том, что в верху в названии закладки умещается только одна первая буква.
разве нельзя закладки выстроить в 2 или 3 этажа, чтобы выводились все нужные названия страниц??
Здравствуйте!
В Вашем случае можно скрыть панель страниц (https://simple-scada.com/help/manual/page-panel.html), создать необходимое количество кнопок и написать скрипты на событие OnClick кнопок, например:
begin
Page1.GoToPageClient(GetClientName); // переход на страницу Page1 на клиенте, который вызвал скрипт
end.
Если задать однотипные имена страницам, например Page1, Page2, Page3 , то можно сделать один универсальный скрипт для перехода по всем страницам. Для этого, у кнопки перехода на первую страницу устанавливаем свойство "Тэг" = 1, у кнопки перехода на вторую страницу "Тэг" = 2, у кнопки перехода на третью страницу "Тэг" = 3 и т.д. Затем, переходим в редактор скриптов и создаем скрипт с типом события "Универсальный":
var
aPage: TM_Page;
begin
{ ищем страницу с именем Page + значение свойства Тэг }
aPage := GetPageByName('Page' + IntToStr((Sender as TM_Button).Tag));
if aPage <> nil then // если страница существует
aPage.GoToPageClient(GetClientName); // то, перейти на нее
end.
Далее, этот скрипт назначаем на событие OnClick наших кнопок перехода по страницам.
Также, для максимальной компактности можно сделать только две кнопки "На следующую страницу" и "На предыдущую страницу" и написать скрипт на событие OnClick:
Для кнопки "На следующую страницу"
begin
GoToNextPageClient(GetClientName); // переход на следующую страницу на клиенте, который вызвал скрипт
end.
Для кнопки "На предыдущую страницу"
begin
GoToPrevPageClient(GetClientName); // переход на предыдущую страницу на клиенте, который вызвал скрипт
end.
Да, это выход. но вы не планируете сделать стандартное решение этой проблемы? в виде многорядных закладок?
мне очень понравилась тема с расписанием и зачастую приходится управлять большим количеством каналов.
Да, еще один вопрос, а нельзя ли в одно расписание включить несколько тегов? типа группа. конечно можно сказать, зачем нужна группа тегов в одном расписании, но это нужно в процессе наладки. и еще. вы не планируете сделать не просто включение/ыключение а задание уровня в расписании?
и еще. нельзя ли в расписании предусмотреть автомтические вещи типа графика восхода/захода солнца(чтобы бралось автоматом с какого нибудь реусрса. это нужно в управлении освещением.
Или это можно сделать только скриптами?
Здравствуйте!
ЦитироватьДа, это выход. но вы не планируете сделать стандартное решение этой проблемы? в виде многорядных закладок?
Сейчас с помощью панели страниц можно разместить в проекте 800x600 и более 16 страниц, например создав четыре страницы, на каждой из которых будет четыре подстраницы - это и есть стандартное решение. Если такой вариант Вам не подходит, то нужно скрыть панель страниц и воспользоваться способами описанными в прошлом сообщении. При этом Вы можете сделать кнопки страниц любого размера, расположить их рядами или в столбец и т.д.
Цитироватьа нельзя ли в одно расписание включить несколько тегов?
Если необходимо по расписанию менять значение нескольких тегов, то напишите скрипт на событие OnDataCahange расписания, в котором управляйте нужными тегами, например:
var
aValue: Integer;
begin
aValue := (Sender as TM_Schedule).AsInt; // берём значение основной переменной связанной с расписанием
{ присваиваем его в другие переменые }
Var1.Value := aValue;
Var2.Value := aValue;
Var3.Value := aValue;
end.
Цитироватьвы не планируете сделать не просто включение/выключение а задание уровня в расписании? нельзя ли в расписании предусмотреть автомтические вещи типа графика восхода/захода солнца?
Такой функционал не планируется.
Добрый день!
Разбираюсь с компонентом TM_Table, правильно ли я понимаю, что
1) программно невозможно изменить цвет фона ячейки;
2) нет возможности определить ввод значения в ячейку, т.к. отсутствует событие типа OnDoneInput;
Добрый день! Большое спасибо за обновление!
Протестировал возможность изменения description Tm_Variable скриптом: свойство действительно меняется, при запросе чтением скрипты выдают обновленное значение. Однако на графических объектах (пкм) клиента и в трендах свойство остаётся таким же, каким было выставлено в редакторе по-умолчанию. Похоже на ситуацию с изменением границ аварийных сообщений скриптом. Буду очень признателен если удастся поправить. ::)
Несколько пожеланий на будущее:
1) Возможно ли сделать для TM_Level режим, когда значения передаются в контроллер не по отпусканию кнопки мыши, а, например, считываются со скоростью обновления подвязанной переменной по текущим координатом курсора на уровне, то есть при перетаскивании, без отпускания, зажатой ЛКМ? Стоит задача перед технологом - нужно следить за аналоговым значением и плавно в течении 20, например, секунд повышать или понижать обороты. Можно конечно сделать кнопки +1 +5 -1 -5, но допустим где-то надо +2 или +3 в зависимости от ситуации - кнопок не напасёшься, да и работает это на кнопках не очень корректно из-за задержек (и в журнал действий тогда нужно руками писать событие), кликнул оператор 3 раза - первые два клика отправились в цикл записи, последний - на следующий цикл отложились (задержка около секунды). Оператор увидел +2 - интуитивно ещё кликнул +1 - в итоге +4, а надо было 3... Ну я думаю смысл понятен, пока не критично, работаем на кнопках, но очень пригодилось бы. (Раньше у операторов была аналоговая «крутилка», тактильно им было на ней очень удобно). Бонусом было бы возможность округлять параметры уровня до целых, сейчас это тоже делаем скриптом в кнопках.
2) Возможно ли добавить настройку толщины линий тренда и менять цвет фона в архивных трендах? Часто на тренде несколько аналоговых параметров, один из которых главный. - Хотелось бы иметь возможность выделить его не только цветом, но и толщиной линий.
3) Возможно ли отделить недоступность ввода значений, например в поле или уровень от обязательного всплывающего окна «у Вас недостаточно прав...» У нас с этими окнами (в другой скаде WinCC), блокирующими весь экран оператору была один раз беда - трясущимися руками кликнула не туда в сложной ситуации - окно вылезло, она этого не заметила, потому что была в панике и пыталась дальше кликнуть куда изначально нужно было. А управление - полностью потеряно из-за этого окна. Описывать все подробности не буду, думаю итак ясно что потом было. Но нужно иногда вывести поле, значение которого только отображаются, и не вводятся, но при этом чтобы никаких всплывающих окон).
4) Очень хотелось бы чтобы в настройках TM_MessageViewer можно было указать не только стандартные группы сообщений, но и созданные в редакторе, в идеале - выбрать несколько из списка. Так например в отдельном окне мы привыкли делать список сообщений по срабатыванию DI и DO сигналов (без квитирования). Их мы завели каждый в свою группу. Действия оператора (некоторые, которые не регистрируются стандартными способами, пришлось дописывать скриптами отдельно, тоже без квитирования) - в другую. Отдельная группа для сообщений о потере связи с переменными контроллера по качеству (quality) и по ping'у (с квитированием). Ещё группа - по срабатыванию технологических блокировок (с квитированием). Было бы удобно вывести несколько списков сообщений и чтобы в них не было «всё в кучу»). Особенно когда происходит «разбор полётов» - такой подход очень помогает).
5) Возможно ли при выдаче сообщений по изменению переменной (подвязанной в редакторе) добавить настройку не только названия переменной но и других её параметров: шкала, description, единицы измерения, и другие (из свойств переменной)?
Здравствуйте!
ЦитироватьРазбираюсь с компонентом TM_Table, правильно ли я понимаю, что
1) программно невозможно изменить цвет фона ячейки;
2) нет возможности определить ввод значения в ячейку, т.к. отсутствует событие типа OnDoneInput;
Сейчас таких возможностей нет. Возможно они появятся в будущем.
ЦитироватьПротестировал возможность изменения description Tm_Variable скриптом: свойство действительно меняется, при запросе чтением скрипты выдают обновленное значение. Однако на графических объектах (пкм) клиента и в трендах свойство остаётся таким же, каким было выставлено в редакторе по-умолчанию.
Видимо мы невнимательно прочитали Ваше прошлое сообщение с просьбой открыть запись в свойство переменной Description и не обратили внимание на то, что при этом требуется обновлять описание переменной на клиентах. К сожалению, по ряду причин это невозможно реализовать.
По остальным вопросам:
1,4. Добавление такого функционала планируется в будущем, но когда он появится сказать не можем. Сейчас основная задача - это разработка веб-клиента.
2. Обсудим это предложение.
3. Если в поле нужно только отображать значение переменной без возможности редактирования, то необходимо в Редакторе отключить свойство поля "Доступен".
5. Если Вы говорите о сообщениях о нарушении границ переменных, то они формируются по следующему шаблону: "Дата; Время;
Описание переменной или Имя переменной при отсутствии описания; Текст сообщения; Значение переменной на момент нарушения границы". Если требуется формировать не стандартные сообщения, то можно использовать процедуру
AddMessage (https://simple-scada.com/help/script/addmessage.html).
3. Тогда видимо у меня баг с отображением прав доступа по клику на поле.
P.S.: проект мигрировался в новые версии много раз, на вновь создаваемых полях такого эффекта нет. Для поля на картинке баг пропадает если выставить в свойствах поля окно, если убрать окно - вновь выдаётся сообщение. То же самое касается и некоторых других объектов (уровни). При этом все создаваемые новые поля на этой экранной форме дают такой же баг, а на новой экранной форме такого уже нет. Если скопировать поле из старой экранной формы (на которой баг) в новую экранную форму, а затем руками создать такое же поле с теми же самыми свойствами и подвязками - то на одном будет баг, на втором нет. На втором скрине окно с правами выдаётся только у среднего поля.
5. Нет, имеется ввиду любые созданные руками сообщение в редакторе сообщений, на которые подвязаны переменные. Хотелось бы чтоб хотя бы описание было добавлено в состав сообщение (у меня например - переменная DI меняется 1-0 и по ней срабатывает сообщение).
По поводу TM_Variable.Description: видимо тогда лучше обратно закрыть доступ к редактированию и дать доступ к свойствам описания трендов, или к тексту для произвольных трендов и работать с трендом по id.
Хотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения.
Поясню для чего: есть некий технологический процесс и есть система видеонаблюдения, в случае аварии или возникновения возможно какого-либо другого события было бы здорово чтобы по требованию оператора (кнопка) или же на уровне скриптов можно было вызвать ОКНО с видеопотоком (RTSP или ONVIF-протокол) прямо в скаде.
Запись я думаю ни к чему - для этого существуют отдельные решения, а вот просмотр живого видео с камер было бы я думаю очень актуально - ВСЁ ПОД РУКОЙ (и показатели и возможность визуального контроля ситуации).
Здравствуйте!
GEW, пришлите папку с Вашим проектом (\Simple-Scada 2\Projects\Имя_Проекта) на support@simple-scada.com с указанием поля, которое работает неправильно и оператора, под которым Вы проводите тесты.
Цитироватьвидимо тогда лучше обратно закрыть доступ к редактированию и дать доступ к свойствам описания трендов, или к тексту для произвольных трендов и работать с трендом по id.
Доступ к описанию трендов невозможно открыть по тем же причинам, что и к описанию переменной.
ЦитироватьХотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения.
Такой возможности не планируется.
Цитата: midnight1979 от 26 октября 2017, 13:58:04Хотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения......
С одной стороны это интересная мысль, но если поразмыслить логически, то картинка с видео потоком будет перекрывать мнемосхему тех. процесса этого узла или сопутствующих, что не позволит адекватно реагировать в сложившейся ситуации. Более того, оператору понадобятся дополнительные манипуляции для управления в момент аварийной ситуации( допустим переместить окно с видео в другое место). По мне правильно, когда видеонаблюдение находится на отдельной машине и занимается своим делом, тем более IP-видеонаблюдение достаточно требовательно к сетевым ресурсам, что будет негативно сказываться на общей производительности сервера.
Подскажите пож. как можно одной кнопкой перевести несколько кнопок в состояние нажато(к кнопкам привязаны выходы контроллера), а другой в состояние отжато. и чтобы после каждого из действий состояние снова оператор мог прозвольно менять
я имел в виду существует ли метод подобному для страниц?
var
aPage: TM_Page;
begin
{ ищем страницу с именем Page + значение свойства Тэг }
aPage := GetPageByName('Page' + IntToStr((Sender as TM_Button).Tag));и еще свойство значение и свойство номер состояния доступны только для чтения, как быть?
И еще вопрос по расписанию. Допустим система упала по какимто причинам.
Если перестартовали контроллеры а скада нет, то система читает с них теги а они в 0-х, работа по расписанию нарушается. но если перезапустить клиента, то при его старте сохраненное расписание актуализируется и контроллеры выводят правильные значения.
Возможно ли какимто способом в случае восстановления опроса с контроллеров(не важно по какой причине он пропал) атоматически кореллировать состояния расписаний на выходах контроллеров без перезапуска клиента?
Цитата: deldemo от 26 октября 2017, 14:15:46Цитата: midnight1979 от 26 октября 2017, 13:58:04Хотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения......
С одной стороны это интересная мысль, но если поразмыслить логически, то картинка с видео потоком будет перекрывать мнемосхему тех. процесса этого узла или сопутствующих, что не позволит адекватно реагировать в сложившейся ситуации. Более того, оператору понадобятся дополнительные манипуляции для управления в момент аварийной ситуации( допустим переместить окно с видео в другое место). По мне правильно, когда видеонаблюдение находится на отдельной машине и занимается своим делом, тем более IP-видеонаблюдение достаточно требовательно к сетевым ресурсам, что будет негативно сказываться на общей производительности сервера.
Для каких то проектов это возможно не очень применимо (где много мелочевки и ее можно перекрыть), но в целом это была бы полезная функция.
Что же по поводу сервера - почему он должен будет нагружаться???? - поток будет воспроизводиться клиентом и на сервер это не будет оказывать дополнительной нагрузки.
Цитата: urqagun от 26 октября 2017, 16:23:45И еще вопрос по расписанию. Допустим система упала по какимто причинам.
Если перестартовали контроллеры а скада нет, то система читает с них теги а они в 0-х, работа по расписанию нарушается. но если перезапустить клиента, то при его старте сохраненное расписание актуализируется и контроллеры выводят правильные значения.
Возможно ли какимто способом в случае восстановления опроса с контроллеров(не важно по какой причине он пропал) атоматически кореллировать состояния расписаний на выходах контроллеров без перезапуска клиента?
Я похожий вопрос задавал - в случае когда проект всегда запущен на сервере, то работа логики расписания работает корректно, и контроллер пожалуйста отключай/подключай.
Последняя версия Скады в этом плане вроде отлично доработана!
Здравствуйте!
Цитироватькак можно одной кнопкой перевести несколько кнопок в состояние нажато(к кнопкам привязаны выходы контроллера), а другой в состояние отжато
Для этого, нужно написать скрипты на событие OnClick кнопок, которые будут управлять другими кнопками.
Для кнопки, которая переводит другие кнопки в состояние "Нажато":
begin
Var1.Value := 1;
Var2.Value := 1;
end.Для кнопки, которая переводит другие кнопки в состояние "Отпущена":
begin
Var1.Value := 0;
Var2.Value := 0;
end.где, Var1,Var2 - это переменные кнопок, которыми нужно управлять.
ЦитироватьИ еще вопрос по расписанию. Допустим система упала по какимто причинам.
Если перестартовали контроллеры а скада нет, то система читает с них теги а они в 0-х, работа по расписанию нарушается. но если перезапустить клиента, то при его старте сохраненное расписание актуализируется и контроллеры выводят правильные значения.
Вы вероятно используете версию Simple-Scada 2.2.5.0 или более старую. В них запись в переменную расписания происходила единожды при входе или выходе текущего времени в заданный интервал расписания. В версии 2.2.6.0 компонент "Расписание" перезаписывает переменную, если она имеет значение отличное от того, которое должно быть в текущий момент по расписанию. Обновитесь до версии 2.2.6.0 и проблема решится.
Здравствуйте.
Уважаемые разработчики, есть небольшая просьба. Добавьте пожалуйста возможность сохранения изображений для проекта в каталог "Pictures" во вложенных папках. Было бы совсем хорошо, если в меню выбора изображения, файлы группировались согласно наименованию вложенных папок. Так будет проще манипулировать изображениями когда работаешь над несколькими проектами и с большим числом изображений.
Здравствуйте!
Хорошая идея - внесем в список на доработку.
Тоесть аналогичного метода как для страниц для кнопок не существует? Спасибо, но метод который вы предложили уже и так у меня реализован.
Теперь насчет работы расписания. Хотелось бы немного другой логики работы чем так которая есть в старой версии, и той про которую вы пишете что есть в новой версии. В моей задаче оператор должен иметь возможность вмешаться в работу по расписанию и самостоятельно на какое то время включать и отключать выходы, контролируемые расписанием. и должен быть метод типа Refresh для расписания, который я мог бы вызвать чтобы потом возобновить автоматическую работу расписания.
Здравствуйте!
ЦитироватьТо есть аналогичного метода как для страниц для кнопок не существует?
В скриптах можно использовать любые доступные
функции поиска (https://simple-scada.com/help/script/search-functions.html), все зависит от конкретной задачи и возможности применения в ней данных методов.
ЦитироватьВ моей задаче оператор должен иметь возможность вмешаться в работу по расписанию и самостоятельно на какое то время включать и отключать выходы, контролируемые расписанием. и должен быть метод типа Refresh для расписания, который я мог бы вызвать чтобы потом возобновить автоматическую работу расписания.
В следующем обновлении добавим возможность включения/отключения расписания через свойство "Enabled". Но в большинстве случаев, если требуется ручной/автоматический режим работы, то используется несколько переменных: первая для управления с ручного режима, вторая для управления с автоматического и третья служит для переключения между режимами. И уже в зависимости от выбранного режима работы происходит управление переменной исполнительного механизма. Эту логику можно реализовать на контроллере или используя скрипты скада системы.
Например, у нас имеются следующие переменные:
- vrSelect - переключение между режимами работы, которая связана с кнопкой переключения режимов;
- vrAuto - переменная автоматического управления, которая связана с расписанием;
- vrManual - переменная ручного управления, которая связана, к примеру с кнопкой;
- Out1 - переменная исполнительного механизма.
Создадим скрипт с
типом события (https://simple-scada.com/help/script/event-types.html) "Изменились переменные"(пример создания такого скрипта можно найти
здесь (https://simple-scada.com/help/script/changemulvar.html)), добавим переменные vrSelect, vrAuto и vrManual в список переменных скрипта нажав кнопку "Выбрать переменные" и напишем скрипт:
begin
if vrSelect.AsBool then
Out1.Value := vrAuto.Value
else
Out1.Value := vrManual.Value
end.Теперь, при ручном режиме можно будет управлять механизмом независимо от расписания, а при переключении на автоматический режим управление будет происходить из расписания.
Здравствуйте.
Нахожусь в поисках замены WinCC (слишком большая стоимость при избыточности функций). Перепробовал несколько SCADA (Master, Rapid, Simple, AggreGate). Только Ваша SCADA не вызвала никаких вопросов и действительно является предельно простой и понятной в освоении. Плюс ко всему она действительно интересно выглядит (отличная реализация концепции HP HMI)!
Есть несколько вопросов:
- Есть ли какой-то механизм шаблонизации для объектов на мнемосхеме?
- Можно ли сделать настраиваемым механизм подтверждения сообщения (сейчас подтверждается сбросом бита, а, скажем, Siemens Way - установкой бита в другом тэге) Для совместимости было бы очень удобно иметь такую возможность?
- Также, как уже предлагалось, хотелось бы иметь возможность настраивать группы/классы сообщений и их цвета (я, например, использую отдельные классы и цвета для сообщений о превышении верхних границ, достижении нижних границ, недостоверности показаний датчиков). Группировка сообщений позволит выводить в окне только диагностические сообщения, или же сообщения только по определённому оборудованию
- Хотелось бы иметь возможность выделить на графике область для масштабирования
- Если используется менее 7 графиков на тренде, хотелось бы увеличивать область отображения тренда за счёт свободного пространства
Здравствуйте!
ЦитироватьТолько Ваша SCADA не вызвала никаких вопросов и действительно является предельно простой и понятной в освоении. Плюс ко всему она действительно интересно выглядит (отличная реализация концепции HP HMI)!
Спасибо за хороший отзыв, стараемся.
По вопросам:
1. Такого механизма пока нет. Есть возможность подмены переменных у объектов через скрипты. Это позволяет, к примеру сделать некое шаблонное окно регулятора и при вызове этого окна из разных объектов подставлять в него нужные переменные. Таким образом, можно множество однотипных окон заменить одним(пример можно найти
здесь (https://simple-scada.com/help/script/varsubs.html)). Это применимо не только к окнам - все зависит от задачи и возможности применения в ней такого способа.
3. Пожелания учтем. Сейчас
при работе с сообщениями (https://simple-scada.com/help/manual/edit-message.html) в редакторе можно создавать группы/подгруппы сообщений и тогда при
просмотре сообщений (https://simple-scada.com/help/manual/client-message-view.html) на клиенте это позволит переключаться между группами и видеть только сообщения, принадлежащие выбранной группе. Также, это поможет легко настроить
права пользователей (https://simple-scada.com/help/manual/editor-users.html), например, разрешив пользователю просмотр групп предназначенных только для него.
2,4,5. Пожелания учтем.
По
просмотру трендов (https://simple-scada.com/help/manual/client-trends-view.html): сейчас изменять масштаб шкалы времени можно вращая колесико мыши. Шкалы трендов можно перемещать по вертикали при помощи курсора, а масштабировать колесиком мыши (если включена опция "
Масштаб и перемещение шкалы (https://simple-scada.com/help/manual/index.html?editor-settings.html#set_trends)").
Цитата: Simple_Scada от 01 ноября 2017, 15:09:23Есть возможность подмены переменных у объектов через скрипты. Это позволяет, к примеру сделать некое шаблонное окно
Отлично, значит вопрос с созданием панелек закрыт. Шаблонизацию анимации для вывода технологических параметров вчера тоже закрыл через скрипты. Но некий шаблонный объект с заранее настроенными скриптами и анимацией в любом случае будет полезен в будущем, ведь всегда полезно изменить все экземпляры объекта внеся правки лишь в одно место.
Цитироватьв редакторе можно создавать группы/подгруппы сообщений и тогда при просмотре сообщений на клиенте это позволит переключаться между группами и видеть только сообщения, принадлежащие выбранной группе.
Вот момент именно с фильтрацией при просмотре я упустил. Что ж, отличная возможность! Ну а настройку классов, думаю, несложно будет прикрутить, поле "Kind" - это ведь и есть своего рода класс?
Единственное, что я не понял, как перемещать сообщения между группами? Drag-and-drop не работает, копирование неактивно. Приходится дублировать сообщение, вырезать его и вставлять в другую группу. Как-то это нелогично) А вот группировка сообщение[состояния] очень удобна - все состояния по тэгу сгруппированы, нет огромной портянки из сообщений, как в той же WinCC.
ЦитироватьПо просмотру трендов: сейчас изменять масштаб шкалы времени можно вращая колесико мыши. Шкалы трендов можно перемещать по вертикали при помощи курсора, а масштабировать колесиком мыши
Да, это, конечно, удобно, но зачастую требуется быстро выделить именно какую-то характерную область, чтобы проанализировать в ней ход процесса, крутить "ручки наводки" в этом случае не слишком удобно, естественнее и привычнее именно выделить её мышью.
Еще в графиках мне понравился механизм левого/правого клика - удобно оставлять только один график по правому клику.
В общем, пока я всем доволен, буду пробовать сделать следующий проект на Simple SCADA!
И еще один важный вопрос -
планируется ли добавление поддержки OPC UA? Я отчего-то наивно полагал, что имеется обратная совместимость и мой OPC UA сервер сможет передавать данные в Simple SCADA =(
Уважаемый! сообщите пожалуйста где посмотреть ваш UA OPC он под линуксом работает?
Цитата: urqagun от 02 ноября 2017, 10:24:03Уважаемый! сообщите пожалуйста где посмотреть ваш UA OPC он под линуксом работает?
В моём случае, сервер, так сказать, аппаратный. Входит в состав ПЛК (SIMATIC CPU 1510SP-1 PN). А вообще можно попробовать сервер от Insat (http://insat.ru/products/?category=2350)или Matricon (http://www.matrikonopc.com/drivers/driver-types.aspx).
Здравствуйте!
Цитироватькак перемещать сообщения между группами? Приходится дублировать сообщение, вырезать его и вставлять в другую группу.
Пока переместить сообщение можно только так. В дальнейшем работа с сообщениями будет улучшена.
ЦитироватьНу а настройку классов, думаю, несложно будет прикрутить, поле "Kind" - это ведь и есть своего рода класс?
Поясните пожалуйста, какое поле "Kind" имеется ввиду? Если Kind из таблицы сообщений в базе данных, то его номер соответствует
типу сообщения (https://simple-scada.com/help/script/tm_messagekind.html): 0 - Аварийное; 1 - Предупредительное; 2 - Обычное.
Цитироватьпланируется ли добавление поддержки OPC UA?
Да, планируется. Сейчас основная задача это разработка Web-клиента, которого планируется завершить к концу года. После этого приступим к добавлению поддержки OPC UA. На данный момент работа с OPC UA возможна только через различные туннелеры/шлюзы, например
Matrikon OPC UA Tunneller (https://www.matrikonopc.com/opc-ua/products/opc-ua-tunneller.aspx),
OPC UA Client от Kepware (https://www.kepware.com/en-us/products/kepserverex/drivers/opc-ua-client/),
OPC UA CLIENT от Insat (http://insat.ru/products/?category=1604).
ЦитироватьЕсли Kind из таблицы сообщений в базе данных, то его номер соответствует типу сообщения: 0 - Аварийное; 1 - Предупредительное; 2 - Обычное.
Да речь именно об этом. Насколько я понимаю, возможно добавить возможность создания и пользовательских типов. Ну да это не первоочередная задача.
А вот с OPC UA проблема более актуальна. Insat работает только с абсолютной адресацией, а Siemens навязывает оптимизированный доступ к блокам, при котором абсолютная адресация невозможна. Ладно, пока буду тестировать без оптимизированного доступа и с Insat OPC Server.
Обнаружил интересный нюанс при отображении трендов на клиенте.
Отображение "Онлайн обновление трендов" идёт с привязкой к локальному времени клиента. Думаю, более правильно выполнять привязку ко времени сервера.
Например в моём случае, время на клиенте было больше, чем на сервере, поэтому "в будущем" для сервера рисовалась прямая линия.
(http://s018.radikal.ru/i526/1711/88/9c620730e51et.jpg) (http://radikal.ru/big/zo6rsy5i6nj98)
Strohmann, да, сейчас время между сервером и клиентом не синхронизируется. Исправим это в ближайшем обновлении.
Добрый день.
За несколько дней знакомства с Simple-Scada возникло несколько вопросов\пожеланий:
1. Тренды отображаются без учёта качества переменной. Когда связь с оборудованием теряется, тренд начинает рисоваться тонкой линией, что хорошо. Но как только связь восстанавливается, между моментами пропадания и восстановления связи рисуется обычная прямая линия, а при установке визира на этот промежуток даже отображаются какие-то значения, которые явно не будут соответствовать действительности.
2. В проекте большое число информационных сообщений, которые фиксируют нормальную работу оборудования. Они не требуют подтверждения оператора, не должны выводиться в строке сообщений и попадать в список активных сообщений, но должны сохраняться в базе данных и отображаться в общем списке сообщений. Не планируете добавить такой класс сообщений?
3. Время подтверждения сообщения оператором нигде не фиксируется и никак не отображается?
4. По заданию для отображения насосного оборудования нужен треугольник в окружности. Но треугольника нет в принципе, а нужную окружность сделать не получается, из-за того что эллипс теряет прозрачность при толщине границ больше 1.
Здравствуйте!
1. Исправим в ближайшем обновлении.
2. Сейчас это можно сделать добавляя сообщения процедурами AddMessage (https://simple-scada.com/help/script/addmessage.html)или AddMessageToGroup (https://simple-scada.com/help/script/addmessagetogroup.html). Если использовать AddMessage и установить параметр AUnconfirmed в False, то сообщение не будет появляться в строке сообщений, в списке активных и неподтвержденных. Оно будет отображаться только в группе "Все сообщения". Если использовать AddMessageToGroup и установить параметр AUnconfirmed в False, то можно, например создать в редакторе группу сообщений "Нормальная работа" и добавлять сообщения в нее. Сообщения также не будут появляться в строке сообщений, в списке активных и неподтвержденных. Они будут отображаться только в списке "Все сообщения", и в созданной нами группе "Нормальная работа". Насчет добавления такой опции к сообщениям создаваемым в редакторе подумаем.
3. Сейчас время подтверждения не фиксируется. В будущем планируется добавить такую функцию.
4. Добавление треугольника планируется в будущем. По окружности: к сожалению текущая система отрисовки примитивов не позволяет рисовать границу по-другому. Поэтому, пока остается только убирать прозрачность фона у фигуры и подбирать цвет фона так, чтобы он был равен цвету окружения (см. вложение). Тогда будет казаться, что видно только границу. Вы можете нарисовать треугольник в окружности в любом графическом редакторе, затем сохранить его в формате ".png" (с глубиной цвета 32 бита или ниже) и скопировать в папку "\Simple-Scada 2\Pictures". После этого изображение станет доступно в редакторе. Возможно Вам подойдет схематичное изображение насоса из библиотеки графики - см. вложение.
2 и 3. Такой функционал есть во всех Scada, с которыми приходилось работать. Нужно добавлять.
При покупке нескольких копий Simple-Scada для одного предприятия, тех. поддержка оплачивается для каждой отдельно?
ЦитироватьПри покупке нескольких копий Simple-Scada для одного предприятия, тех. поддержка оплачивается для каждой отдельно?
Техподдержка осуществляется в рамках
Регламента технической поддержки (https://simple-scada.com/support-reg). Доступна в течение года с момента приобретения любой версии Simple-Scada, а также при наличии действующей подписки на обновления. В течение одного года после покупки вы будете получать техподдержку и обновления Simple-Scada бесплатно. При покупке Simple-Scada можно сразу приобрести подписку на обновления на 1,2 или 3 года. Приобретать подписку для каждой версии отдельно на одном предприятии не нужно.
Цитата: toreto от 25 февраля 2016, 09:03:09Здравствуйте, такое предложение- в журнале сервера пишется время подключения и отключения клиента, неплохо было бы что бы писалась еще и дата, и еще я конечно не знаю как будет организованно разделение прав, хотелось в настройках вводить список IP адресов клиентов которым можно подключаться к серверу.
Да, хотелось бы видеть дату в журнале сервера.
Здравствуйте!
Смотрите опцию "Отображать дату в журнале" в настройках Options.exe -> вкладка Simple-Scada Server (https://simple-scada.com/help/manual/settings-simple-scada-server.html).
Добрый день!
Можно ли в Редакторе переменных список переменных отсортировать не стандартной сортировкой, а естественной (https://en.wikipedia.org/wiki/Natural_sort_order) ?
Здравствуйте.
Кликните левой кнопкой мыши по заголовку столбца "Имя" и в открывшемся окне сортировки нажмите "Ок". Список будет отсортирован естественной сортировкой ("natural sort": var1, var2, var10...) по имени. Также сортировать можно по другим столбцам.
Можно ли добавить отчетность как дополнительный платный модуль? Допустим есть несколько небольших (по кол-ву переменных участвующих в обмене) локальных проектов к которым хотелось бы прикрутить СКАДу и там требуется отчетность. Отчеты -привилегия только Professional-версии, а другие версии ею обделены. Использовать Professional-версию для 1 проекта и обмена <100 переменных это из пушки по воробьям. У вас сейчас можно подобрать версию по функционалу и по кол-ву переменных. Так почему бы не добавить возможность докупать модуль создания отчетов, как сейчас можно докупить дополнительный клиент.
Здравствуйте!
ЦитироватьМожно ли добавить отчетность как дополнительный платный модуль?
Добавление такой возможности не планируется. Если требуются отчеты, то необходимо использовать версию Professional.
:)Добрый день, начала возникать проблемма.
Работает скада, блокируем экран,при разблокировке черный экран . Если скада свернута то проблем нет.
Это связано с тем, что после разблокировки выполняется обработка за весь период пока экран был заблокирован. Это не нормальный режим для работы скады и равнозначен переводу компьютера в спящий режим при работающей скаде. В будущем попробуем реализовать приостановку процессов скады в таких ситуациях.
:) Редактор почему такой де черный экран!?
Suse, смотрите ответ выше.
:) Это не проблема моя ? Железная ? С опенджл или директх :'( Раньше проблем не было....
Если раньше проблема не возникала, значит что-то изменилось на Вашем ПК. Можно попробовать установить последнюю версию драйвера видеокарты.
Здравствуйте.
Ребята у меня есть небольшое предложение. Возможно ли сделать фильтр колонок при авто заполнение таблицы через SQL запрос?
Просто была написана процедура в SQL которая возвращает ряд колонок, а таблиц в которые эти данные должны вкладываться несколько и все отличаются по наполнению (+\- одна колонка). В связи с этим и хочется некий фильтр чтоб отключать вывод ненужных колонок при запросе (допустим 1,4,7 колонку не выводить). Это будет гораздо проще и эффективней при большом количестве однотипных запросов, не будет бардака в скриптах. Да и в SQL гораздо удобней формировать полные запросы, тут же их проверять.
Здравствуйте.
Метод RunSQL у таблиц всегда выводит результат в ту таблицу, для которой был вызван. Например:
begin
Table1.RunSQL('SELECT * FROM `my_table`', tsAll);
end.
выведет в таблицу Table1 все колонки таблицы "my_table". И если нужно вывести результат запроса в несколько таблиц, то придется повторять один запрос для каждой таблицы:
begin
Table1.RunSQL('SELECT * FROM `my_table`', tsAll);
Table2.RunSQL('SELECT * FROM `my_table`', tsAll);
end.
Если нужно разные колонки писать в разные таблицы, то задавать колонки и их порядок нужно в коде запроса:
begin
Table1.RunSQL('SELECT `id`, `timestamp`, `value` FROM `my_table`', tsAll); // три колонки выводим в первую таблицу
Table2.RunSQL('SELECT `id`, `quality` FROM `my_table`', tsAll); // две колонки выводим во вторую
end.
Т.е. нельзя выполнить запрос для одной таблицы и распределить его на несколько таблиц. Конечно можно ещё использовать глобальную процедуру RunSQL (https://simple-scada.com/help/script/workbd.html) и в отдельном скрипте проходить по результатам выборки и распределять полученные результаты по разным таблицам, но это будет очень неудобно.
Вы не совсем поняли меня.
Есть процедура exec csp_getDosingBins 'ru-RU'
1.Ее легко вписать в скрипт по сравнению с полным запросом
SELECT @l_msgstring = 'Info: started login user.'
-- EXECUTE csp_writelogmessage 'LOGIN', @l_msgstring, @l_sp
SELECT DISTINCT
RCL_RAWMATBIN_ID
,RCL_BINNUMBER
,RCL_BINNAME
,(RCL_MAXVOLUME * (AR_DENSITY/0.001)) AS RCL_MAXVOLUME
,RCL_ACTUALSTOCK
,RCL_MINSTOCK
,RCL_MAXSTOCK
,AR_ARTICLECODE
,AR_NAME
,AR_UNIT
,MUN_DESCRIPTION=dbo.svfGetTranslation(
@culture
,MUN_DESCRIPTION_EN
,MUN_DESCRIPTION_NL
,MUN_DESCRIPTION_DE
,MUN_DESCRIPTION_FR
,MUN_DESCRIPTION_SP1
,MUN_DESCRIPTION_SP2
,MUN_DESCRIPTION_SP3
,MUN_DESCRIPTION_SP4
,MUN_DESCRIPTION_SP5
,MUN_DESCRIPTION_SP6
)
FROM CFG_RAWMATERIAL_BIN
INNER JOIN CFG_RAWMATERIAL ON RCL_RAWMAT_ID = RM_RAWMAT_ID
INNER JOIN CFG_ARTICLE ON RM_RAWMAT_ID = AR_ARTICLE_ID
INNER JOIN CFG_UNIT_DEVICES ON UDS_DEVICE_ID = RCL_DEVICE_ID
INNER JOIN CFG_MEASURING_UNITS ON AR_UNIT = MUN_UNIT_ID
WHERE RCL_IN_BIN_SELECTION = 1
AND RCL_MODIFYTYPE <> 'D'
ORDER BY RCL_RAWMATBIN_ID
RETURN 0
-- Error and log
SELECT @l_error = @@error
,@l_rowcount = @@rowcount
IF @l_error <> 0
BEGIN
GOTO error_section
END2. Процедура всегда пишется одинаковая во все скрипты ко всем таблицам.
3. Хотелось, как бы спрятать колонки которые она будет выводить в таблицу , но не исключать полностью дабы использовать в последующих операциях.
Допустим в таблице я хочу видить только три колонки, но при работе с выделенной строкой мне нужна четвертая колонка в которой есть данные для последующей работы или последующего запроса. Возможно можно добавить некий пункт в меню колонок таблицы где можно поставить "птичку" показывать или скрыть колонку.
Здравствуйте!
Каким образом можно изменить всем сущевствующим переменным ОРС сервер?
В окне "ОРС Серверы" новый сервер добавил, но в свойствах переменной назначить ей другой ОРС сервер нельзя..
Создавать новые переменные не хотелось бы, т.к. прийдется перелопатить всю программу в поисках где какие использовались
stratixx, сделать экспорт в csv, там заменить, сделать импорт из csv.
stratixx, можно выделить переменные, нажать кнопку Редактировать и выбрать другой OPC-сервер. Может быть Вы используете старую версию Simple-Scada (в старых версиях редактирование OPC-сервера было запрещено)?
ЦитироватьХотелось, как бы спрятать колонки которые она будет выводить в таблицу , но не исключать полностью дабы использовать в последующих операциях.
Допустим в таблице я хочу видить только три колонки, но при работе с выделенной строкой мне нужна четвертая колонка в которой есть данные для последующей работы или последующего запроса. Возможно можно добавить некий пункт в меню колонок таблицы где можно поставить "птичку" показывать или скрыть колонку.
deldemo, обсудим такой вариант и возможно добавим свойство видимости у колонок.
Здравствуйте.
Уважаемые, а возможно ли сделать сортировку пользователей? Было бы вообще замечательно если порядок пользователей будет совпадать в выпадающем списке и меню "Пользователи".
(http://storage6.static.itmages.ru/i/17/1214/s_1513245823_1573881_04136eaf3e.png) (https://itmages.ru/image/view/6332959/04136eaf)
(http://storage1.static.itmages.ru/i/17/1214/s_1513245846_5187619_563b9a4a20.png) (https://itmages.ru/image/view/6332963/563b9a4a)
deldemo, да, добавим такую возможность в одном из будущих обновлений.
Здравствуйте.
Ребята, а можно сделать так чтоб при появлении полосы прокрутки не исчезал заголовок колонки?
(http://storage1.static.itmages.ru/i/17/1216/s_1513422618_4962353_239d6e6cf7.gif) (https://itmages.ru/image/view/6338114/239d6e6c)
Здравствуйте.
Текущая система отрисовки таблиц исключает колонку, если она не умещается в зону таблицы и нужно выделять немного свободного места для скролла на этапе разработки. В будущем постараемся избавиться от этого.
Здравствуйте.
Уважаемые разработчики. У меня опять просьба по таблицам.
При выводе смешанных значений в столбце ( со знаком после запятой и без знака ) не очень красиво получается, а точнее даже не удобно. Вероятность ошибочного чтения значения столбца увеличивается если выбрать выравнивание по правой стороне. Добавьте пожалуйста возможность выбора количества знаков после запятой.
Здравствуйте.
Количество знаков и прочие параметры вывода значений на экран определяются свойством "Формат" переменной (https://simple-scada.com/help/manual/variable-format.html). Вместо формата "0.##" (# - выводить знак, только если он значимый, т.е. число "1.50" будет выведено как "1.5") можно задать формат ""0.00" (0 - выводить знак всегда, т.е. число "1.50" будет выведено как "1.50").
Что касаемо обычного тега, я про это знаю. Меня интересует что делать при автозаполнении таблицы?
Просто обрезать или добавлять знаки после запятой на стороне сервера ни есть хорошо. Это конечно не составит большого труда, но все же мне кажется это должна делать СКАДА
Пара предложений по компоненту Field:
1. Было бы неплохо добавить варианты выравнивания внутри поля (как в его подписи), а то при редактировании строковых значений выравнивание прыгает с центра влево и потом назад,- некрасиво получается. Да и для строк чаще нужно выравнивание по левому(правому) краю.
2. Событие OnDoneInput не срабатывает если в поле ничего не поменять, хотя часто бывает нужно отследить именно выход из поля не зависимо от того, менялось там что-то или нет.
Цитата: deldemo от 18 декабря 2017, 11:45:59Что касаемо обычного тега, я про это знаю. Меня интересует что делать при автозаполнении таблицы?
Просто обрезать или добавлять знаки после запятой на стороне сервера ни есть хорошо. Это конечно не составит большого труда, но все же мне кажется это должна делать СКАДА
В данном случае скада просто выполняет запрос к БД и отображает его результаты в неизменном виде. Если требуется любой нестандартный формат отображения, то нужно указывать этот формат в запросе. Например для обязательного отображения четырёх знаков после десятичной запятой можно использовать такие выборки:
MySQL:
SELECT FORMAT(`value`, 4) AS `FormatValue` FROM `my_db`.`trends_data`;Microsoft SQL Server:
SELECT FORMAT([Value], '0.0000') AS 'FormatValue' FROM [my_db].[dbo].[trends_data]Victor_P., спасибо, рассмотрим эти предложения.
ЦитироватьАвтор: Simple-Scada
« : Сегодня в 16:24:21 » Цитата
Спасибо большое. Это было предложение. Просто опять же повторюсь в клиенте это делать удобней. Взять хотя бы "отчеты", там форматирование запроса делается в самом приложении а не на стороне сервера SQL(то есть не в запросе) что гораздо сокращает время разработки. Еще раз спасибо !
Добрый день!
Есть такое предложение: внедрить отправку аварийных сообщений, помимо e-mail и смс, в мессенджер Телеграм.
Такого, вроде, ни у кого из конкурентов нет и это было бы хорошим преимуществом вашей скады.
Цитировать.....Такого, вроде, ни у кого из конкурентов нет....
К большому сожалению уже есть. Компания ОВЕН, а точнее ее OPC сервер, уже отправляет сообщения через бота в телеграм.
ЦитироватьЕсть такое предложение: внедрить отправку аварийных сообщений, помимо e-mail и смс, в мессенджер Телеграм.
В будущем возможно добавим. Сейчас основной приоритет у разработки web-клиента.
Цитата: Simple-Scada от 16 января 2017, 09:46:46Цитировать2. планируется ли доступ по web-интерфесу или клиенты для ios и android. В Вашем примере с планшетом все же наименее распространенная операционная система (Win) для мобильных устройств.
Да, в этом году планируем закончить разработку Web-клиента. Соответственно будет возможна работа в любых ОС. Это одна из главных задач на 2017 год. Точный срок окончания разработки трудно предсказать.
Уже начало следующего года. С нетерпением ждем новостей по web-интерфесу...
JonyBest, новости скоро будут.
Здравствуйте уважаемые разработчики и жители данного форума!
Во первых, хотелось бы Вас поздравить со всеми новогодними праздниками! Всего наилучшего Вам в вашем нелегком деле!!!! и как можно больше Добра!!!
Во вторых хотелось попросить добавить небольшую функцию/опцию.
Ребята можно сделать так чтоб, в просмотре ссылок (редактора переменных) отображались переменные которые участвуют в скрипте с типом "Изменились переменные"?
deldemo, здравствуйте. Да, добавим ссылки в список.
День добрый!
Как-то я поднимал вопрос о новой опции построения графика XY. Если будет такая возможность, может в этом году рассмотрите это направление?
Здравствуйте.
Мы хотели бы добавить возможность построения XY графиков как можно скорее. Но сегодня есть значительно более популярные задачи и сначала нужно реализовать их. Это разработка web-клиента (сейчас на финальной стадии) и внедрение OPC UA.
Господа разработчики а на чем будет реализован сервер для web клиентов?
Это будет IIS или Apache?
Мы год назад смотрели на вашу систему, но поскольку не было этой опции то пока не стали рассматривать.
Лицензирование будет по количеству одновременных сессий или по тэгам?
Здравствуйте.
ЦитироватьГоспода разработчики а на чем будет реализован сервер для web клиентов?
На Websocket.
ЦитироватьЛицензирование будет по количеству одновременных сессий или по тэгам?
Лицензирование не изменится, описание версий и цены доступны здесь (https://simple-scada.com/products). Web-клиент будет доступен только в версии Professional и он будет считаться так же как и обычные клиенты. Покупать его отдельно не потребуется. Например, в версии Professional в комплекте идут три клиента, т.е. можно будет подключиться к серверу тремя клиентами одновременно, не важно web-клиент это или обычный клиент. Если требуется больше клиентов их можно будет докупить.
Здравствуйте.
Внедрение OPC UA клиента очень актуально. Сейчас тестирую связь Scada -- OPC DA Сервер (Kepware, Insat) -- S7-1500 (встроенный OPC UA Сервер), все работает, но было бы удобно подключаться к нему напрямую. Запускать проект планируется в конце февраля, начале марта.
Вопрос, на сколько реальна перспектива, что к тому времени появится встроенный OPC UA Client?
По Web клиентам. Можно ли будет выставить приоритет рабочим компьютерам или хотя бы какому-то главному операторскому месту?
Импорт из других проектов.
Не нашел возможности скомпоновать наработки из разных проектов. На форуме были только решения по перекидыванию файлов между ними, но, как я понял, это небезопасный путь.
Было бы удобно иметь возможность открыть из рабочего проекта другой в режиме (read only) для копирования элементов. Не знаю на сколько данное решение вписывается в архитектуру проекта, но вдруг.
Здравствуйте!
ЦитироватьЗапускать проект планируется в конце февраля, начале марта. Вопрос, на сколько реальна перспектива, что к тому времени появится встроенный OPC UA Client?
Сейчас активно ведется разработка Web-клиента. После его завершения можно будет приступить к добавлению OPC UA. Какие-то сроки появления OPC UA пока назвать трудно, поэтому не стоит рассчитывать на его появление в феврале.
ЦитироватьПо Web клиентам. Можно ли будет выставить приоритет рабочим компьютерам или хотя бы какому-то главному операторскому месту?
Мы подумаем над этим.
ЦитироватьНе нашел возможности скомпоновать наработки из разных проектов.
Возможности переносить объекты из проекта в проект пока нет. Можно только сохранить существующий проект под другим именем, открыть его, удалить все лишнее и на его основе разрабатывать другой проект.
ЦитироватьНа форуме были только решения по перекидыванию файлов между ними, но, как я понял, это небезопасный путь.
Производить какие-либо манипуляции с файлами в папке проекта нельзя. Это может привести к повреждению проекта.
Добрый день!
У меня есть предложение по Панели страниц.
Можно ли добавить функцию ее автоматического скрытия за верхний край экрана через определенный промежуток времени, а при наведении мышкой к верхней границе экрана снова ее показывать (аналогично панели задач в Windows)?
Либо дать возможность управлять этой панелью через скрипты.
Здравствуйте!
Добавление такого функционала не планируется.
Здравствуйте, а будет ли реализована возможность просмотра значений тренда (в окне временных трендов), при при наведении курсора показывалось имя переменной и её значение в это время. Очень информативно было бы.
Нужна функция задержки (delay, sleep или pause )
Цитата: Simple-Scada от 14 января 2018, 15:03:02Здравствуйте.
Web-клиент будет доступен только в версии Professional
Очень ждал, но -
То есть любителям домашней автоматизации придется искать другую Scadу. Очень жаль. Уже привык, да и нравится....
Цитата: asutpvit от 19 января 2018, 12:37:23Здравствуйте, а будет ли реализована возможность просмотра значений тренда (в окне временных трендов), при при наведении курсора показывалось имя переменной и её значение в это время. Очень информативно было бы.
Да, мы планируем улучшение возможностей компонента "Временные тренды" в будущем.
Цитата: mepexa от 19 января 2018, 13:11:52Нужна функция задержки (delay, sleep или pause)
Возможно в будущем добавим функцию задержки. Сейчас задержки можно реализовать только с помощью таймеров или событий.
UPD: начиная с версии 2.6.14.0 добавлена возможность запускать задержки через RunDelay (https://simple-scada.com/help/script/rundelay.html).Цитата: JonyBest от 20 января 2018, 20:58:40То есть любителям домашней автоматизации придется искать другую Scadу. Очень жаль. Уже привык, да и нравится....
Возможность удаленного подключения к серверу (https://simple-scada.com/help/manual/client.html) скады останется как и сейчас - только через стандартный клиент скады (Client.exe).
Можно ли написать скрипт, который будет работать с сокетами? Подключится с серверу (специализированный ПЛК), отправит ему ascii строку с запросом, получит данные и дальше работать с этими переменными (сохранение в БД, тренды и т.д.)
Здравствуйте. Это невозможно, функции для работы с сокетами недоступны через скрипты.
Добрый день!
А почему при операции "Вырезать" -> "Вставить" объекты на мнемосхеме имена объектов не сохраняются?
Нужно было перенести все объекты с одной страницы на другую подстраницу (там больше именованных 50 элементов) и все они потеряли свое имя, очень неудобно.
Здравствуйте.
В ближайшем обновлении эта проблема будет устранена.
Поддерживаю Миханик про вырезать/вставить. Да и при копировании неплохо бы сделать как с дублированием переменных, т.е. добавлять цифру в конце названия обьекта, а само название не менять при этом.
Цитата: Victor_P. от 24 января 2018, 10:33:54Да и при копировании неплохо бы сделать как с дублированием переменных, т.е. добавлять цифру в конце названия объекта, а само название не менять при этом.
Да, про это уже вроде была просьба.
Добрый день!
Есть еще одно маленькое предложение.
Для объекта Заслонка есть свойство "Заполнить фон", но нет свойства выбрать цвет, которым будет заполнятся фон. Возможно добавить такое свойство?
Здравствуйте.
Мы стараемся не добавлять объектам свойства без которых можно обойтись, т.к. добавление любого свойства приводит к тому, что его придется сохранять, загружать и хранить в памяти и так для каждого экземпляра объекта, даже если свойство не используется. В результате это приводит к "утяжелению" компонентов и проекта. Поэтому лучше просто отключить у заслонки заполнение фона и разместить на фоне компонент "Фигура" нужного цвета и размеров.
Добрый день.
Два предложения:
1. В журнале сообщений сделать возможность фильтрации по определённому интервалу, а не только по одному дню.
Сейчас, когда требуется сообщения за несколько минут, приходится печатать по несколько лишних листов.
2. Добавить возможность экспорта сообщений и значений переменных прямо из Журнала сообщений и окна Трендов.
Возможно сделать её доступной только в версиях Standard и Professional, как процедуру ToExcel.
Здравствуйте!
Simple Scada 2 последней версии или с обновлением до версии 2.2.8.0 по прежнему поддерживает MS SQL 2008?
То есть при конфигурации Windows XP SP3 - SP2 и MS SQL ваша скада будет работать в качестве сервера с архивированием данных ПК?
Вы где то писали что выпуск версии под Linux планируется будет ли это версия идти как обновление или её нужно будет приобретать отдельно?
Здравствуйте!
AndreiKov, рассмотрим Ваши предложения.
ЦитироватьТо есть при конфигурации Windows XP SP3 - SP2 и MS SQL ваша скада будет работать в качестве сервера с архивированием данных ПК?
Да, все должно работать нормально. Проверили на Windows XP SP3 + MS SQL 2008 - проблем не обнаружено.
ЦитироватьВы где то писали что выпуск версии под Linux планируется будет ли это версия идти как обновление или её нужно будет приобретать отдельно?
Это был один из вариантов развития. Вместо этого мы разработали
web-клиент (https://simple-scada.com/help/manual/web-client.html), который позволяет вне зависимости от ОС подключиться к проекту с любого устройства через браузер. Но, при этом работа сервера Simple-Scada возможна только на Windows. Разработка версии под Linux на данный момент не планируется.
А почему у таблиц не реализована функция подтверждения действия при изменении оператором данных в ячейках. Не планируете добавить?
ЦитироватьА почему у таблиц не реализована функция подтверждения действия при изменении оператором данных в ячейках. Не планируете добавить?
Добавим.
Сейчас, сообщения, попадающие в журнал действий оператора, для самих операторов малопонятны.
Например,
12.02.2018 15:54:07 | Таблица "Table5". [3, 9] Было "8", стало "10"
12.02.2018 16:11:50 | Кнопка "bt_ZN_stop_NA2". Было "0", стало "8192"
Если по английскому названию кнопки, ещё можно понять что было нажато. То по описанию "Table5". [3, 9] считать строки и столбцы, чтоб понять что изменил оператор, ну уж очень неудобно.
Может быть в сообщения дополнительно добавлять текст из описания привязанной переменной?
AndreiKov, добавим опцию которая позволит выбирать вид сообщений о действиях оператора.
Добрый день!
Можно ли сделать для кнопок которые работают с битами тегов макс значение бита 64 (на данный момент 32)?. Просто при работе с ПЛК у которого дискретные модули на 64 входа или выхода, весь модуль упаковываю в слово Int64 - очень удобно потом в скриптах в цикле весь модуль пробегать. А так получается при наличии пары сотен механизмов для скриптов и сообщений используются 64-битные, для кнопок 32-битные.
Здравствуйте.
Да, добавим поддержку 64-битов. Обновление опубликуем на следующей неделе.
Цитата: aleks218 от 08 февраля 2018, 19:31:16Здравствуйте!
Simple Scada 2 последней версии или с обновлением до версии 2.2.8.0 по прежнему поддерживает MS SQL 2008?
Windows XP + MS SQL 2005, пол года, полет нормальный.
Данные пишутся. Достаточно быстро выполнятся внешние запросы. Сбоев в получении данных не замечалось.
Здравствуйте!
Хотелось бы чтобы система дала возможность при вводе текста в поле Текст объекта TM_Text оставлять пробелы слева от текста, а не удалять их (сейчас пробелы слева и справа от введенного текста игнорируются).
Добрый день!
Почему в настройках редактора указано 12 цветовых схем, в списке методов редактора скриптов 11, в справке тоже 11?
Миханик, отключим авто-удаление начальных пробелов.
Ragnarok, забыли добавить новую ярко-синюю схему в константы. Пока можно использовать константу csLightBlue для этой цветовой схемы, компилятор примет её.
Добрый день!
С появлением web-доступа расширилось и число клиентов, которые могут подключиться к скаде. Так как количество одновременно подключенных клиентов ограничено, может понадобиться функция принудительного отключения ненужных клиентов на Сервере. Предлагаю в будущих версиях реализовать такую функцию.
Здравствуйте.
Уже добавили. Обновление скоро опубликуем.
Временной тренд имеет макимальную длетельность 1 час .
Можно ли сделать временной тренд с интервалом на 24 часа .
Это вопрос по Simple-Scada 2 . Если нельзя то тогда предложение по Simple-Scada 2 .
Здравствуйте!
Для компонента "Временный тренд" интервалы более 1 часа добавить не получится, так как временные тренды хранятся в оперативной памяти. Для таких промежутков времени нужен отдельный компонент "Архивный тренд", который будет брать данные из БД. Мы планируем добавить такой компонент, но когда он появится сказать сложно - сейчас решаются более востребованные задачи.
Посоветуйте программы типа CODESYS, чтобы набрать программу в виртуальном контроллере с переменными и связать ее со simplescada
Чем codesys не устраивает?
Уважаемые разработчики, здравствуйте.
Несколько дней мучаюсь с проблемой.
В проекте есть окна в которых расположены кнопки без фиксации. Так вот.... Если этот проект запустить на локальной машине, то кнопки отрабатывают отлично. Но если этот же проект я запускаю на клиенте удаленной машины, то кнопки в проекте срабатывают с задержкой в пол секунды(если удерживать кнопку), иногда вообще не срабатывают. Из уточнений: Связь между "ПК Клента" и "ПК Сервера" проходит через туннель OpenVPN. Кнопки работают с битами переменной WORD.
Приложу видео, может понятней проблема будет:
https://yadi.sk/i/aqTVMZ3w3T2Fzk
Добрый день, сегодня получил от оператора вопрос: а можно ли сделать панель с сообщениями шире и квитировать по нажатию на сообщение, а переход в меню со всеми видами аварий и сообщений по кнопке которая сейчас отвечает за квитирование. Я конечно же перепроверил в редакторе, но там все так же скудно по данной панели. сделать ничего нельзя. Будет ли реализована возможность изменения габаритов и т.д. у панели сообщений?
Здравствуйте.
Цитата: deldemo от 05 марта 2018, 08:19:29В проекте есть окна в которых расположены кнопки без фиксации. Так вот.... Если этот проект запустить на локальной машине, то кнопки отрабатывают отлично. Но если этот же проект я запускаю на клиенте удаленной машины, то кнопки в проекте срабатывают с задержкой в пол секунды(если удерживать кнопку), иногда вообще не срабатывают. Из уточнений: Связь между "ПК Клента" и "ПК Сервера" проходит через туннель OpenVPN. Кнопки работают с битами переменной WORD.
Проверьте следующее: нажимайте на кнопки и не менее чем на секунду удерживайте их нажатыми и только затем отпускайте. Всегда ли срабатывают ли в этом случае кнопки?
Цитата: asutpvit от 06 марта 2018, 11:43:13Добрый день, сегодня получил от оператора вопрос: а можно ли сделать панель с сообщениями шире и квитировать по нажатию на сообщение, а переход в меню со всеми видами аварий и сообщений по кнопке которая сейчас отвечает за квитирование. Я конечно же перепроверил в редакторе, но там все так же скудно по данной панели. сделать ничего нельзя. Будет ли реализована возможность изменения габаритов и т.д. у панели сообщений?
Стандартная панель сообщений (как и панель страниц) не имеют каких-либо доп. опций. Если нужна уникальная панель, то можно просто выключить панель сообщений и на её месте создать свою с любой комбинацией элементов. Для вывода сообщений можно разместить компонент "Список сообщений" (https://simple-scada.com/help/manual/message-viewer.html) выбрать в нём группу "Неподтверждённые" и свойство количество задать равным "1". Также можно разместить кнопку для перехода в меню сообщений. Для этого на событие OnClick можно написать такой скрипт:
begin
GoToMessagesClient(GetClientName);
end.Аналогично можно создать кнопки для подтверждения последнего сообщения или всех сообщений, а также кнопки авторизации пользователя.
Simple-ScadaЦитироватьПроверьте следующее: нажимайте на кнопки и не менее чем на секунду удерживайте их нажатыми и только затем отпускайте. Всегда ли срабатывают ли в этом случае кнопки?
Проверил на нескольких машинах. Да, действительно, если удерживать кнопку более одной секунды она всегда срабатывает.
Цитата: Simple-Scada от 06 марта 2018, 12:33:57Здравствуйте.
Стандартная панель сообщений (как и панель страниц) не имеют каких-либо доп. опций. Если нужна уникальная панель, то можно просто выключить панель сообщений и на её месте создать свою с любой комбинацией элементов. Для вывода сообщений можно разместить компонент "Список сообщений" (https://simple-scada.com/help/manual/message-viewer.html) выбрать в нём группу "Неподтверждённые" и свойство количество задать равным "1". Также можно разместить кнопку для перехода в меню сообщений. Для этого на событие OnClick можно написать такой скрипт:
Аналогично можно создать кнопки для подтверждения последнего сообщения или всех сообщений, а также кнопки авторизации пользователя.
А квитирование сообщения нажатием на него возможно сделать? самый интересный момент это квитирование нажатием по сообщению
Вопрос:
Если ячейка таблицы не связана с переменной, то сделать запись в нее из скриптов нельзя?
Цитата: deldemo от 06 марта 2018, 13:11:09Проверил на нескольких машинах. Да, действительно, если удерживать кнопку более одной секунды она всегда срабатывает.
Проблема связана с тем, что кнопка работает с битами и при быстрой смене битов "0 -> 1 -> 0" выполняются излишние оптимизации из-за чего событие OnDataChange может не выполниться. Попробуем изменить систему и добавить "задержки" на этот случай.
Цитата: asutpvit от 07 марта 2018, 06:06:31А квитирование сообщения нажатием на него возможно сделать? самый интересный момент это квитирование нажатием по сообщению
Конечно. Можно использовать любой компонент, не обязательно Кнопку. Создаёте компонент "Список сообщений" и на событие OnClick назначаете следующий скрипт:
begin
ConfirmMessage(GetClientName);
end.Цитата: Миханик от 07 марта 2018, 11:47:27Если ячейка таблицы не связана с переменной, то сделать запись в нее из скриптов нельзя?
Сейчас запись в ячейки можно выполнить только через переменную (можно использовать внутреннюю переменную).
Цитата: Simple-Scada от 07 марта 2018, 22:02:36Цитата: Миханик от 07 марта 2018, 11:47:27Если ячейка таблицы не связана с переменной, то сделать запись в нее из скриптов нельзя?
Сейчас запись в ячейки можно выполнить только через переменную (можно использовать внутреннюю переменную).
То есть, если у меня таблица 30х3, то мне нужно сделать 90 переменных?
Если значения в ячейках нужно менять во время работы проекта, то да. В будущем это ограничение будет снято.
Здравствуйте.
Возможно ли в инструмент "Поле" добавить свойство Выравнивание
И еще один вопрос:
Как в скрипте вставить в строку символ деления (÷)? Даже если я его вставляю то при запуске проекта в инструменте "Текст" вместо "÷" отображается "?".
Здравствуйте.
ЦитироватьВозможно ли в инструмент "Поле" добавить свойство Выравнивание
Внесли в список на доработку.
ЦитироватьКак в скрипте вставить в строку символ деления (÷)? Даже если я его вставляю то при запуске проекта в инструменте "Текст" вместо "÷" отображается "?"
Вероятно это из-за разницы типов у строк UTF8String и String. Чтобы прибавить к тексту символ деления нужно писать так:
begin
Text1.Text := Text1.Text + UTF8Encode('÷');
end.
Здравствуйте!
Возможно ли сделать экспорт всех скриптов в один текстовый файл? Просто иногда нужна глобальная замена переменной в скрипте , а тыкатся в каждый скрипт с ctrl+V ctrl+C дорогова стоит). Ну или в редакторе добавить функцию поиска и замены.
Цитата: deldemo от 22 марта 2018, 18:25:45в редакторе добавить функцию поиска и замены.
поддержу, давно хотел предложить.
Здравствуйте.
Функции поиска и замены будут добавлены в меню редактирования скриптов.
Добрый день, а есть возможность реализовать мигание вкладки по происшествию. Т.е. если сработал уровень по H на вкладке "1", должна мигать вкладка "1". Уже порядка 14 вкладок и можно запутаться особенно новому оператору в поиске нужной вкладки при сработке аварии и т.д.
п.с. ну и конечно же чтобы это действие генерировалось автоматом) как и аварийные сообщения по превышению границ. Галочку поставил и вуаля)
Здравствуйте.
Цитироватьп.с. ну и конечно же чтобы это действие генерировалось автоматом) как и аварийные сообщения по превышению границ. Галочку поставил и вуаля)
Автоматически в данный момент реализовать нельзя, только на основе скриптов. Т.е. расположить в области страницы какой-либо элемент и менять его цвет из скрипта , если одна из аварий страницы активна. Мы планируем добавить возможность устанавливать связь между объектами и авариями и возможность их отображения на страницах, но сначала нужно решить более популярные задачи.
эх над было этим заморочиться когда 10-20 было тэгов) Спасибо за ответ. Но буду ждать данного обновления функционала)
Здравствуйте.
Для сообщений в редакторе предусмотрена пиктограмма "Звуковой сигнал откл./вкл.". Окинув взглядом можно увидеть, в каком состоянии это свойство. А вот для свойств "Неподтвержденные" и "Активные" пиктограмм нет. И понять, что назначено можно лишь прокликав каждое сообщение. Можно ли просто добавить в ряд после пиктограммы для звука две пиктограммы галочка/крест для этих свойств?.
Можно ли добавить в режим записи архивного тренда "По изменению" запись в архив граничных значений? Например, есть задвижка с процентным открытием от 0 до 100%. Я отслеживаю ее положение пока по управляющему сигналу. Зона нечувствительности 1%. Последнее зафиксированное значение 0.78. Задвижка скорее всего закрылась, но на тренде я этого не увижу, зона нечувствительности не дает зафиксировать 0. Уменьшать зону нечувствительности смысла нет - это лишние значения и все равно можно попасть в зону нечувствительности. Вводить запись "комбинированный" и "по времени" это опять лишние значения. А информация от том, что задвижка закрылась/открылась полностью все таки важна. Решением была бы запись в архив значения, если оно достигло границы шкалы переменной игнорируя зону нечувствительности.
Список сообщений. Элемент развивается, спасибо Вам. Но я опять о своем) Можно ли таки сделать вывод на этом элементе вывод определенной группы сообщений? Ведь это локальный элемент и без возможности вывода на него локальной группы сообщений мне кажется он теряет смысл. Его отличает от глобального списка сообщений лишь возможность разместить где угодно, да показать на нем более чем 1 сообщения за раз. А вот если можно было назначить ему группу сообщений для вывода, как например для временного тренда выбрать показываемые тренды, вот это было бы дело.
Добрый день!
Можно ли добавить для полей ввода и текста атрибут горизонтальной и вертикальной ориентации? Или хотя бы сделать возможность их поворота, как это реализовано с другими объектами. Просто хочу сделать надписи на бункерах с информацией о хранимом сырье, бункеров много и их ширина всего 30 пикселей, нужен вертикальный текст :)
Цитата: Timofei от 31 марта 2018, 13:33:54хочу сделать надписи на бункерах с информацией о хранимом сырье
Как вариант сейчас можно в хинте сделать.
А так я тоже за возможность вертикальной ориентации или поворота текста.
Цитата: TeNQ от 30 марта 2018, 10:43:41А вот для свойств "Неподтвержденные" и "Активные" пиктограмм нет. Можно ли просто добавить в ряд после пиктограммы для звука две пиктограммы галочка/крест для этих свойств?
Да, добавим иконки для этих свойств.
Цитата: TeNQ от 30 марта 2018, 10:43:41Можно ли добавить в режим записи архивного тренда "По изменению" запись в архив граничных значений?
Пока трудно сказать, рассмотрим это вариант.
Цитата: TeNQ от 30 марта 2018, 10:43:41Список сообщений. Можно ли таки сделать вывод на этом элементе вывод определенной группы сообщений?
Да, эта задача уже есть в списке.
Цитата: Timofei от 31 марта 2018, 13:33:54Можно ли добавить для полей ввода и текста атрибут горизонтальной и вертикальной ориентации?
Произвольный угол наклона текст установить нельзя. Для вертикального размещения текста разделите текст пробелами и уменьшите зону текста так, чтобы каждый символ был на новой строке (см. скрин во вложении).
Цитата: Simple-Scada от 01 апреля 2018, 12:21:26Произвольный угол наклона текст установить нельзя. Для вертикального размещения текста разделите текст пробелами и уменьшите зону текста так, чтобы каждый символ был на новой строке (см. скрин во вложении).
Это всё конечно хорошо для однократной фиксированной надписи, но текст (а ещё лучше если это сразу будет окно ввода) будет изменятся оператором, не объяснять же ему что пробелами разделять каждый символ.
Добавьте, пожалуйста, вывод окна "Недостаточно прав!" для кнопки, как у поля или уровня. Сейчас при нажатии на кнопку без соответствующих прав вообще ничего не происходит, что может запутать оператора.
Цитата: AndreiKov от 05 апреля 2018, 23:23:10Добавьте, пожалуйста, вывод окна "Недостаточно прав!" для кнопки, как у поля или уровня. Сейчас при нажатии на кнопку без соответствующих прав вообще ничего не происходит, что может запутать оператора.
Сделаем.
Удаленное обновление клиента сделайте.
Доступ к клиентским компьютерам иногда проблематичен.
Добрый день!
Возможно ли менять в ячейках таблицы шрифт и его цвет из скриптов? Очень необходим данный функционал.
Здравствуйте.
В ближайшем обновлении появится возможность смены цвета шрифта внутри ячейки и цвета фона ячейки из скриптов. Смена самого шрифта пока будет недоступна.
Здравствуйте. Недавно начали использовать Simple SCADA. В целом очень удобно, просто и практично, но за время разработки выявили ряд неудобств:
1. И клиент и редактор плохо реагируют на смену монитора, на котором они отображаются. Для переноса окна на другой монитор приходится перезапускать приложение.
2. Нет элемента "график XY".
3. Очень бы хотелось иметь возможность рисовать диагональные линии.
4. Стандартный элемент "заслонка" не масштабируется
5. Нет возможности менять цвет сетки в редакторе, из-за чего её не видно в светло-серых цветовых схемах
6. Нет поиска по именам переменных при привязке
7. Нет возможности переносить уже созданные переменные и сообщения в другие группы
8. Неудобный редактор сообщений из-за невозможности импорта/экспорта
9. Нет возможности создавать пользовательские типы данных для переменных
10. При повторном импорте переменных из OPC создаются дубликаты существующих переменных. Хотелось бы иметь возможность их игнорировать
Здравствуйте!
1. В полноэкранном режиме нельзя перенести приложения редактора и клиента на другой монитор. Если Вам требуется переносить приложения между мониторами, то используйте оконный режим, задав необходимый размер окна в настройках Options.exe -> пункт "Размер окна" на вкладках "Simple-Client (https://simple-scada.com/help/manual/settings-simple-client.html)" и "Simple-Editor (https://simple-scada.com/help/manual/settings-simple-editor.html)".
4. У компонента "Заслонка (https://simple-scada.com/help/manual/valve.html)" есть свойство "Размер", с помощью которого можно задать необходимый размер заслонки.
7. Для переноса переменной в другую группу выделите необходимую переменную и нажмите на панели действий (https://simple-scada.com/help/manual/variable-editor.html) кнопку "Вырезать"(значок ножниц) или нажмите сочетание клавиш CTRL+X. Затем выделите группу, в которую необходимо перенести переменную и нажмите на панели действий кнопку "Вставить" или нажмите сочетание клавиш CTRL+V. Для перемещения нескольких переменных нужно выделить необходимые переменные, кликая ЛКМ с зажатой клавишей Shift или Ctrl. Выделить все переменные группы можно нажав сочетание клавиш CTRL+A. Таким же образом можно перемещать сообщения. Описание других горячих клавиш можно найти здесь (https://simple-scada.com/help/manual/hot-keys.html).
Остальные пожелания обязательно будут учтены.
Цитата: Simple-Scada от 01 апреля 2018, 12:21:26Цитата: Timofei от 31 марта 2018, 13:33:54Можно ли добавить для полей ввода и текста атрибут горизонтальной и вертикальной ориентации?
Произвольный угол наклона текст установить нельзя. Для вертикального размещения текста разделите текст пробелами и уменьшите зону текста так, чтобы каждый символ был на новой строке (см. скрин во вложении).
Может кому пригодится - для реализации вертикального текста сделал небольшой скрипт. Оператор вводит текст в горизонтальное поле, он отображается на бункере вертикально:{}
var
Str: UTF8String;
obj: TM_Text;
i: Integer;
l: Integer;
begin
With Sender as TM_Field do
begin
obj := GetTextByName('Name_'+IntToStr(Tag)); //Поиск объекта Текст по свойству поля "Тег" для записи результата
Str := Text; //Запись значения поля в переменную
end;
l := UTF8Length(Str); //Вычисление длины строки
for i:=2 to l+(l-1) do //Цикл вставки пробелов после каждого символа
begin
UTF8Insert(' ',Str,i);
i:=i+1;
end;
obj.Text := Str; //Запись результата в нужный объект Текст
end.
У меня очень простой проект. Есть 10 переменных и дата. Раз в день, при изменении даты, сохранить переменные в базу. По запросу пользователя выдавать отчет по данным с привязкой ко времени. Попробовал сделать с одной переменной, создал скрип, скрипт компилируется. Но не работает
var
aQuery: string;
begin
aQuery := 'INSERT IGNORE INTO `new_table` (`time`, `post_1`) ' +
'VALUES (NOW(), ' + QuotedStr( post_1.AsStr) + ')';
RunSQL(aQuery, nil, 0);
end.Я правильно понимаю, что эта идея нереализуема в демо64?
ЦитироватьЯ правильно понимаю, что эта идея нереализуема в демо64?
Здравствуйте. Да, Вы все правильно поняли. Для работы с БД Вам необходимо приобрести лицензию или воспользоватся
Demo-Time (https://simple-scada.com/download-simple-scada) версией.
Здравствуйте, уважаемые разработчики!
Очень здорово, что в обновлении 2.2.9.0 появился фильтр переменных в окне выбора переменных для графических объектов и трендов. А есть ли в планах реализация фильтра OPC-тегов по имени в окне импорта OPC-тегов?
Так же было бы неплохо осущестлвять проверку, существует ли импортируемый тег в БД или нет.
Здравствуйте.
ЦитироватьА есть ли в планах реализация фильтра OPC-тегов по имени в окне импорта OPC-тегов?
А для чего фильтровать переменные при импорте тегов? Можно просто импортировать все переменные. Те, которые уже существуют не будут добавлены повторно, а новые будут добавлены. Или Вы говорите про экспорт (из скады в .csv-файл) в CSV?
ЦитироватьТак же было бы неплохо осущестлвять проверку, существует ли импортируемый тег в БД или нет.
Такая функция не планируется.
Здравствуйте. В связи с появлением нового события и свойств для элемента Таблица, я попробовал заменить кучу элементов Календарь на таблицу. Но пришлось отказаться от этой идеи, так как нет форматированного ввода/вывода в ячейку таблицы для переменных типа DateTime. Ввести промежуточные строковые переменные с преобразованием можно, но частично потеряется смысл от введения таблицы (упрощение кода). Можно ли добавить форматированный ввод/вывод в ячейку таблицы как для поля элемента типа Календарь (например, ввести галочку для обозначения ввода в ячейку времени и выбор формата ввода - чч:мм:сс и т.д.)?
Ну и пока возился с таблицей. Нет возможности переноса слов в заголовках колонок таблицы, как, например, в надписи ячейки. Как нет и возможности индивидуальной настройки высоты строки таблицы. Допустим, для строк содержащих значения это может и не так важно, но увеличить отдельно высоту строки содержащую названия колонок и хотелось бы.
ЦитироватьА для чего фильтровать переменные при импорте тегов? Можно просто импортировать все переменные. Те, которые уже существуют не будут добавлены повторно, а новые будут добавлены.
Бывают случаи, когда необходимо добавить пару OPC-тегов, но все теги, которые имеются в OPC-сервере, в проекте не нужны. А когда тегов в OPC-сервере несколько тысяч, и они отсортированы не по алфавиту, поиск необходимого тега занимает очень много времени.
Цитата: TeNQ от 29 мая 2018, 12:02:06Можно ли добавить форматированный ввод/вывод в ячейку таблицы...
Да, добавим свойство формат для ячеек таблицы.
Цитата: Genrosol от 29 мая 2018, 16:36:00А когда тегов в OPC-сервере несколько тысяч, и они отсортированы не по алфавиту, поиск необходимого тега занимает очень много времени.
Обычно переменные разбивают на группы и подгруппы на OPC-сервере для удобства навигации по тегам, чтобы они не были все в куче. В будущем возможно добавим дополнительный фильтр по OPC-переменным.
ЦитироватьВ будущем возможно добавим дополнительный фильтр по OPC-переменным.
Спасибо, было бы удобно!
ЦитироватьМожно просто импортировать все переменные. Те, которые уже существуют не будут добавлены повторно, а новые будут добавлены.
При импорте с OPC-сервера уже существующих тегов происходит дублирование переменных. Или речь была про импорт из csv-файла?
ЦитироватьИли речь была про импорт из csv-файла?
Да, мы говорили про импорт из .csv-файла.
Приветствую,
Спасибо огромное за достойный продукт, все очень доступно и просто.
Есть пожелание, так как не нашел инфы в справке, как масштабировать страницу в окне редактора не взирая на Проект > Разрешение > ...
На 27" мониторе страница с разрешением 16:9 > 1920х1080 не помещается в видимой области редактора, приходится крутить скролл мыши а так же, если разрешение выставленное в проекте больше чем на используемом при разработке мониторе, оно не центрируется в окне редактора. Сделать примерно как в автокаде, перемещать редактируемую область под визуальный фокус проектировщика, инструмент Рука и т д.
ЦитироватьНа 27" мониторе страница с разрешением 16:9 > 1920х1080 не помещается в видимой области редактора
Используйте клавиши W, A, S, D для перемещения области редактирования. Либо нажмите колесико мыши и удерживая его перемещайте курсор. Подробнее о горячих клавишах и комбинациях клавиш смотрите здесь (https://simple-scada.com/help/manual/hot-keys.html).
Добрый день, есть сеть устройств, отправляющая данные в формате XML посредствам протоколов FTP и SMTP.
Написал небольшой парсер, он считывает данные посылок и складирует все в БД SQLite.
Интересует возможность вывода этих данных в какую либо "СКАДу". В связи с этим вопрос, подскажите пожалуйста, какие есть варианты интеграции в вашу "СКАДУ"?
Я пока вижу только один, вариант, это переводить наш парсер для работы с MySQL. Но тут также возникает один вопрос. Я обратил внимание, что на сайте, в разделе "Скачать", СУБД MySQL по какой то причине расположена только в разделе SIMPLE-SCADA 2, означает ли это, что SIMPLE-SCADA 1.3.3 не умеет работать с MySQL ?
Здравствуйте!
ЦитироватьЯ пока вижу только один, вариант, это переводить наш парсер для работы с MySQL.
Да, возможен только такой вариант.
Цитироватьозначает ли это, что SIMPLE-SCADA 1.3.3 не умеет работать с MySQL ?
Simple-Scada 1.3.3 не может работать с базами данных. Данные архивируются в ней в свои файлы и доступны только для вывода в тренды. Simple-Scada 2 может работать с СУБД MySQL и SQL Server. Работать с данными из БД можно через скрипты, используя процедуру
RunSQL (https://simple-scada.com/help/script/workbd.html). Примеры работы с БД можно найти
здесь (https://simple-scada.com/help/script/dbscripts.html). Процедура RunSQL доступна только в версиях Standard, Professional и Demo-Time.
Здравствуйте.
Есть такая procedure AddMessageToGroup(ATime: TDateTime; AKind: TM_MessageKind; AGroupID: Integer; const AText: string; AUnconfirmed, ASound: Boolean); И у меня возникла с ней проблема.
Дело в том что она обращается к группе сообщений по ID. А я, например, создал группу Прибор 1. У нее будет ID=1, Прибор 2 - ID = 2, соответственно. Все прекрасно. А потом я создал группу Прибор 3. И удалил. Случайно, не случайно неважно. А потом понадобилось добавить еще группы. И теперь создать группу для Прибора 3 я могу только с ID = 4. Потому что ID=3 когда то был использован. Править ID я не могу. Обращаться в цикле создавая сообщения в группах теперь проблема. Записывать сообщения в группу, считая что ID = номер прибора, также теперь не могу.
Можно ли добавить такую же процедуру, но с возможностью записи в группу по Позиции? Тут придется смещать номер позиции на 1, потому что первая группа начинается со 2 позиции, но в остальном все предсказуемо.
Здравствуйте.
Добавить можно, но будет ли пользоваться этой функцией кто-то ещё. И что делать потом, когда нужно будет сменить позицию группы, или удалить/добавить какую-то группу сообщений сместив позиции других групп? Тогда придется исправлять скрипт, либо отказаться от переноса групп и удаления (кроме последней). Может быть стоит создать отдельный список внутренних переменных типа Int64, например vrGroup1, vrGroup2 ... и т.д. и просто на старте проекта записать в них ID групп:
begin
vrGroup1.Value := 1;
vrGroup2.Value := 2;
vrGroup3.Value := 4;
..
end.
Затем эти переменные можно было бы использовать для прохода по группам в цикле:
var
I: Integer;
aVar: TM_Variable;
begin
for I := 1 to 3 do
begin
aVar := GetVariableByName('vrGroup' + IntToStr(I));
if aVar <> nil then
AddMessageToGroup(Now, mkMessage, aVar.AsInt64, 'Текст', True, False);
end;
end.
Либо просто для добавления по номеру прибора:
var
aVar: TM_Variable;
begin
{ получаем переменную с ID группы для третьего прибора }
aVar := GetVariableByName('vrGroup3');
if aVar <> nil then
AddMessageToGroup(Now, mkMessage, aVar.AsInt64, 'Текст', True, False);
end.
ЦитироватьДобавить можно, но будет ли пользоваться этой функцией кто-то ещё.
Я не знаю, за других гадать не буду.
Просто любая попытка автоматизировать обращение к группам приведет к необходимости создавать ту самую таблицу соответствия из-за самого принципа раздачи ID. Тогда как она уже существует в виде Позиции группы. Она всегда идет от 1 до N, группы всегда можно расположить в нужной последовательности. Нужно лишь иметь инструмент для обращения к ней. Впрочем, я не настаиваю. Это было предложение.
А что если сделать проще? Добавить процедуру выдающую ID группы по номеру ее позиции.
Почему я думаю, что это будет востребовано. Допустим у вас есть 1000 групп сообщений и задача добавить во все группы сообщение формирующееся по факту. Создавать отдельный список внутренних переменных в кол-ве 1000 шт? А имея возможность получить ID по номеру позиции - один цикл и готово.
Цитата: TeNQ от 13 июля 2018, 17:22:18...Добавить процедуру выдающую ID группы по номеру ее позиции...
Тогда уж лучше по названию.
ИМХО, номер позиции вообще ни очем.
Все таки использовать номер позиции для поиска группы это нестандартно, не очень надёжно при изменении позиций и ненаглядно в коде скрипта. Здесь же возникает вопрос где искать по позиции, ведь группы могут быть вложенными в другую группу, а если сделать поиск по позиции в корневой группе, то такой функцией не получиться воспользоваться в других группах. Поэтому сейчас также рассматриваем возможность внедрения поиска по имени, хотя и этот вариант не идеален, ведь при именовании групп сообщений допускаются одинаковые имена, но это редкость. Поиск по имени не ограничивал бы перенос групп, также его можно было бы вести по всем группам сразу (в том числе вложенным). Либо другой вариант - сделать группы отдельными открытыми объектами со своими функциями поиска подгрупп.
Добрый день!
Решил поделиться свои наблюдениями.
Предложение№1. Добавить свойство кнопки "Расположение иконки". Состояния: слева от текста, справа от текста, вместо текста
Предложение№2. Если объекты одинаковые (поле, круг и т.д.) и выделены только они можно менять их ширину, высоту.
Предложение№3. В меню создания окон добавьте функцию создания хотя бы 2 уровня групп, например как в трендах.
Предложение№4. Разработайте функцию архивирования проекта и все, что в него входит картинки, логи, звуки. Но это предложение возникло месяца 2 назад. И на форуме читал вроде Вы над этим уже работаете. Если моно просто потвержите да/нет.
Предложение№5. При удалении тренда из группы довольно часто вылетает проект с ошибкой записи в память для чтения.
Предложение№6. Элемент "Окно сообщений" сделать для отдельных групп когда они сформированы, например есть группа №1 и №2 в окне №1 отображается группа №1, а в окне 2 группа №2
Вопрос №1. Свойства кнопки перепутаны надписи?
Вопрос №2. В хелпе в описании команды SetBit написан тип int64, в эдиторе описание longint (хотя logint = int64). Наверное это опечатка?
Здравствуйте.
ЦитироватьПредложение№4. Разработайте функцию архивирования проекта и все, что в него входит картинки, логи, звуки. Но это предложение возникло месяца 2 назад. И на форуме читал вроде Вы над этим уже работаете. Если моно просто потвержите да/нет.
Начиная с версии 2.2.9.0 во время установки Simple-Scada пользователь задаёт два пути: для системных файлов (обычно "C:\Program Files\") и для пользовательских (обычно папка "Мои документы"). После установки на рабочем столе создается ярлык указывающий на папку пользовательских файлов. В этой папке хранятся все несистемные файлы скады: проекты, отчеты, пользовательские изображения/звуки/файлы импорта переменных и т.д. Для создания резервной копии достаточно просто скопировать (или архивировать) всё содержимое этой папки.
ЦитироватьПредложение№5. При удалении тренда из группы довольно часто вылетает проект с ошибкой записи в память для чтения.
Удалось повторить вылет редактора при удалении группы трендов. Исправили. В ближайшем обновлении ошибки не будет.
ЦитироватьВопрос №1. Свойства кнопки перепутаны надписи?
Нет. Первое состояние называется "Отпущена" и после запуска проекта кнопка находится в этом состоянии. При нажатии на кнопку выполняется переход ко второму состоянию "Нажата" и т.д.
ЦитироватьВопрос №2. В хелпе в описании команды SetBit написан тип int64, в эдиторе описание longint (хотя logint = int64). Наверное это опечатка?
Спасибо. Исправим. Используется тип int64.
Остальные вопросы учтём и по возможности будет реализовывать.
Добрый день!
Приятно помогать. Но одно уточнение.
ЦитироватьЦитировать
Вопрос №1. Свойства кнопки перепутаны надписи?
Нет. Первое состояние называется "Отпущена" и после запуска проекта кнопка находится в этом состоянии. При нажатии на кнопку выполняется переход ко второму состоянию "Нажата" и т.д.
Кнопка без фиксации:
Editor:
TM_Button > Состояние "Отпущена" > Значение = 1
TM_Button > Состояние "Нажата" > Значение = 0
В режиме исполнения:
Нажимаем кнопку > Переменная принимает значение = 1
Отпускаем кнопку > Переменная принимает значение = 0
Почему?
Здравствуйте.
Если навести мышь на свойство "Значение" появится подсказка: "Значение которое будет присвоено переменной". Так и происходит. Вы запустили программу, кнопка находится в состоянии "Отпущена". Когда Вы кликнете кнопку в этом состоянии в переменную будет присвоено значение 1 и она перейдёт в состояние "Нажата". Когда Вы кликните кнопку в состоянии "Нажата" в переменную присвоится значение 0 и она перейдёт в состояние Отпущена. Если необходимо, Вы можете через свойство "Имя" изменить описание состояний как угодно.
Здравствуйте.
Можно ли переделать процесс копирования переменной в редакторе переменных? Каждый раз, если долго не пользуюсь редактором скады, я ищу иконку скопировать или пробую нажать Ctrl + c и только потом вспоминаю, что нужно зайти в Изменить переменную и только там есть кнопка Дублирование. К этому можно привыкнуть и при длительном использовании не замечать, но все равно это нестандартная процедура.
Поиск по скрипту. Можно ли сделать так, чтобы нажатие на стрелку вниз/вверх автоматически подтверждало уже введенное ключевое слово, без необходимости выделять каждый раз поле ввода при смене скрипта и начинало поиск?
Вопрос. Мелочь, но все же. В русской раскладке нажимая Shift + "3", должен выйти символ №. В редакторе же почему-то выводится пробел.
Здравствуйте.
Добавим все описанные функции.
Добрый день. OPC считывает слово (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата BOOL или побитно обратиться к переменной?
Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33Добрый день. OPC считывает слово (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата BOOL или побитно обратиться к переменной?
вроде и сами понимаете что нужно делать), однако вариант быть может проще -
а в opc разложить на теги отдельные биты не рассматривали вариант 8)?
Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33Добрый день. OPC считывает слово (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата BOOL или побитно обратиться к переменной?
С помощью функции GetBit (https://simple-scada.com/help/script/getbit.html).
Будет ли в ближайших обновлениях добавлена функция экспорта/импорта событий в csv? Так было бы куда удобнее редактировать большое количество однотипных событий.
Цитата: Igor Sivakov от 16 августа 2018, 15:33:14Будет ли в ближайших обновлениях добавлена функция экспорта/импорта событий в csv? Так было бы куда удобнее редактировать большое количество однотипных событий.
Импорт/экспорт объектов, мнемосхем, скриптов, сообщений и трендов это одна из популярных задача. Но сначала добавим просмотр архивных трендов в web, т.к. это более популярная задача. Затем начнем реализацию импорта/экспорта.
Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33OPC считывает слово (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата BOOL или побитно обратиться к переменной?
Например:
begin
// извлекаем первый бит из myWordVar
myBoolVar.Value := GetBit(myWordVar.Value, 0);
end.
Есть предложение в коммерческой версии скады добавить возможность ограничивать рабочий период для клиента.
Смысл какой: иногда (не часто но бывает) заказчик не спешит проплачивать счет после запуска системы управления.
Чтоб его стимулировать к этому предлагаю в редакторе или в настройках сервера добавить пункт типа "включить триальный период".
При активации этого пункта генерируется какой-то код типа C43AF9C55F9449E00ADF1BCA1F87A0341B02E98D (или что-то подобное) для разблокировки (отключения)
этого ограничения в клиенте.
В настройках этого пункта сделать поля для ввода количества дней триального периода (или конечной даты)
и для ввода количества дней, за сколько до конца триального периода при запуске клиента будет появляться сообщение вида "Через Х дней система будет заблокирована".
Также можно сделать выбор как именно блокировать,- разрешить только просмотр или вообще закрывать клиента.
В клиенте соответственно при наступлении такого события выводить окно с сообщением о невозможности работы через Х дней и полем для ввода кода разблокировки.
Желательно счетчик дней сделать так, чтоб при смене системной даты или при переустановке скады он не обнулялся (заныкать где-то в реестре и зашифровать).
Здравствуйте!
Добавление такой возможности не планируется. Подобный функционал сейчас можно реализовать через скрипты. Вести подсчет времени можно в секундном скрипте и сохранять его в файл. При достижении какого-то заданного времени работы выдать предупреждение о том, что время вышло и например отключить всех клиентов от сервера скады. Отправили пример Вам на почту.
Здравствуйте! Есть, например, база данных. Я вывожу на дисплей усредненную информацию в виде графических примитивов (круг, ромб). Далее пользователь кликает на графический объект и выводится подробная информация по этой точке замера. Такое возможно сделать?
ЦитироватьДалее пользователь кликает на графический объект и выводится подробная информация по этой точке замера.
Здравствуйте. Какая именно информация? Примитивы связаны с какими-то переменными и нужно вывести текущие значения этих переменных? Или какая-то информация хранится в БД и нужно получить её?
Я еще не продумал до конца структуру проекта. Можно проще сформулировать вопрос -> cкрипт рисует графические примитивы. Пользователь кликает на каком-то и скрипт понимает что за объект интересует пользователя. Возможно?
Конечно. Из скриптов можно выполнить любые операции с объектами. Проще всего обращаться к объектам напрямую и менять их свойства, например Shape1.Color := clRed;. Но в этом случае придется для каждого объекта писать свой скрипт. В событие клика всегда передается параметр Sender. Он указывает на объект по которому кликнул пользователь. Поэтому можно создать множество объектов, например фигур (https://simple-scada.com/help/manual/figure.html) и назначить им на событие OnClick один универсальный скрипт, например:
var
aShape: TM_Shape;
begin
{ если объект по которому кликнул пользователь является фигурой (TM_Shape) }
if Sender is TM_Shape then
begin
{ здесь мы можем работать с любыми свойствами объекта. Например
можно вывести имя фигуры }
ShowMessageAll('Информация', 'Пользователь кликнул объект с именем ' + TM_Shape(Sender).Name);
end;
end.По этой ссылке (https://simple-scada.com/help/script/script-types.html) можно прочесть о типах скриптов.
Пароль на проект - максимальный уровень защиты? Скрипты же будут доступны для чтения, как минимум... :(
Мы поставляем систему в сборе и задача, чтобы ее нельзя было скопировать. Или, по крайней мере, трудозатраты на копирование были сопоставимы с разработкой аналогичного функционала с 0. Все идеи и алгоритмы будут в скриптах.
Добрый день,
есть ли возможность выдавать скриптами команды в com-порт? м быть не напрямую.
ЦитироватьПароль на проект - максимальный уровень защиты?
Да, но при желании можно избавиться от некомпилированных файлов используя способ описанный
pan2000.
Цитата: Олег Печёнов от 25 августа 2018, 21:50:20есть ли возможность выдавать скриптами команды в com-порт? м быть не напрямую.
Здравствуйте. Сейчас нельзя работать с COM-портами из скады.
Здравствуйте, недавно приобрели лицензию ProfEdition, тут непонятно с ограничениями. +0 extra clients, что это на такое?
Здравствуйте.
Это значит, что у Вас нет дополнительных клиентов. Поэтому к серверу скады Вы сможете подключиться максимум с трёх разных клиентов, т.к. в версию Professional входит три клиента.
Здравствуйте! Есть ПЛК, который мониторит объект и пишет в базу (mysql or sqlite) необходимые параметры. Скорость течения процессов - очень маленькая. При потере связи между скадой и плк (пару дней, недель) необходимо "синронизировать" базы в ПЛК и скаде, чтобы на трендах не было "провалов". Как это лучше сделать?
ЦитироватьЭто значит, что у Вас нет дополнительных клиентов. Поэтому к серверу скады Вы сможете подключиться максимум с трёх разных клиентов, т.к. в версию Professional входит три клиента.
Спасибо, это и хотел услышать))) Еще бы трубопровод для вентиляции добавить и картинок по больше.
Цитата: maks48 от 25 сентября 2018, 18:08:26Здравствуйте! Есть ПЛК, который мониторит объект и пишет в базу (mysql or sqlite) необходимые параметры. Скорость течения процессов - очень маленькая. При потере связи между скадой и плк (пару дней, недель) необходимо "синронизировать" базы в ПЛК и скаде, чтобы на трендах не было "провалов". Как это лучше сделать?
Заполнить тренды скады, используя тренды в ПЛК не получится. В скаде они имеют один формат и записываются в несколько слоев, а на ПЛК другой формат и один слой.
Цитата: Simple-Scada от 26 сентября 2018, 09:49:23Цитата: maks48 от 25 сентября 2018, 18:08:26Здравствуйте! Есть ПЛК, который мониторит объект и пишет в базу (mysql or sqlite) необходимые параметры. Скорость течения процессов - очень маленькая. При потере связи между скадой и плк (пару дней, недель) необходимо "синронизировать" базы в ПЛК и скаде, чтобы на трендах не было "провалов". Как это лучше сделать?
Заполнить тренды скады, используя тренды в ПЛК не получится. В скаде они имеют один формат и записываются в несколько слоев, а на ПЛК другой формат и один слой.
Если я буду формировать базу из скриптов, то тренды к этой БД вообще никак не подключить? Скриптами нельзя дописать данные в таблицы trends_data, trends_day, trends_hour, trends_minute?
ЦитироватьСкриптами нельзя дописать данные в таблицы trends_data, trends_day, trends_hour, trends_minute?
В теории это возможно. С помощью простых SQL-запросов Вы можете заполнить таблицы трендов. Но правильно их заполнить будет сложно. В таблицах слоёв данные должны быть прорежены (trends_day, trends_hour, trends_minute). В основном слое (trends_data) должны быть все данные. Также точка разрыва в тренде должна иметь качество равное 3. А первая точка после разрыва качество равное 2. И последнее, каждый график должен соответствовать ID какой-либо переменной, без привязки к переменной график вывести не получится. Если у Вас получится заполнить данные таблицы таким образом, используя пользовательские SQL-запросы, или через любое стороннее ПО, то графики можно будет просмотреть.
Большое спасибо за ответ. Последний момент - данные в базе должны быть выровнены по дате? Т.е. скада пишет данные, провал в связи, скада записала данные и потом отработает скрипт добавления данных. Система отсортирует сама данные по времени или мне нужно "вклинивать" строки в БД?
ЦитироватьПоследний момент - данные в базе должны быть выровнены по дате?
Нет, в таблицах трендов столбец времени включен в индекс, поэтому СУБД сама будет сортировать данные по времени. Это же касается и столбца ID.
Где я могу скачать?
Simple-Scada 2.0.2.0
emoxristov, версия 2.0.2.0 давно устарела. Скачать последнюю версию Simple-Scada можно на этой странице (https://simple-scada.com/download).
У меня есть проект, который можно открыть только с этой версией.
Скажите, где я могу скачать
emoxristov, скачайте и установите последнюю версию Simple-Scada. Затем откройте свой старый проект в новой версии Редактора и сохраните проект. После этого проект автоматически обновится до последней версии.
Вот проект, но не может быть открыт из новой версии.
Это проект версии 2.0.0.0 (beta 7) от 13.03.2016. Проекты beta-версии не поддерживаются, их нельзя открыть в официальных версиях Simple-Scada.
Можете ли вы отправить мне почтовую ссылку для этой версии, где ее скачать. Мне нужно много. Благодарю вас.
Пожалуйста, если у кого-то есть эта версия, отправьте мне : emoxristov@abv.bg
Состояние клапанов выводится битовой маской - т.е. каждому клапану соответствует 1 бит, выводятся только режим вкл/выкл. Различные аварии не интересуют. Как перейти от битовой маски к задвижкам? Понятно, что использовать функцию ГетБит, но хотелось бы более подробно.
Здравствуйте!
Все верно, для получения значения бита нужно использовать функцию GetBit (https://simple-scada.com/help/script/getbit.html). В Вашем случае можно сделать один универсальный скрипт. Для этого, нужно связать доп. переменную заслонок с переменной хранящей значения битов и у каждой заслонки выставить свойство "Тег" равным номеру бита, по которому должна работать заслонка. Далее, останется только написать скрипт по событию OnDataChangeEx заслонки:
begin
if Sender is TM_Valve then // проверяем, что Sender это заслонка
with Sender as TM_Valve do // приводим Sender к типу "TM_Valve"
{ если бит доп. переменной(с номером = свойству "Тэг") заслонки равен TRUE, то изменяем цвет заслонки }
if GetBit(VariableEx.AsInt, Tag) = TRUE then
Color := clGreen
else
Color := clGray;
end.
и назначить его на событие OnDataChangeEx всех заслонок, которые должны работать по биту переменной.
Проект с примером во вложении.
Спасибо за столь полный ответ.
Еще один вопрос - клиент скада-системы закрывается по нажатию клавиши "Esc", можно ли сделать как - то чтобы он требовал кое-нибудь подтверждение при закрытии клиента?
Здравствуйте!
Подтверждение сделать нельзя. Можно назначить другую комбинацию клавиш для выхода через настройки Options.exe(см. вложение).
Можна Scada работает с Windows 8.1 Mobile ? для Tablet
Здравствуйте!
Windows 8.1 Mobile не поддерживается.
Как использовать Scada для Tablet. Какая операционная система должна быть установлена.
Тот, с каким он работает ?
https://www.youtube.com/watch?v=FxmF7wFM9Ic&t=6s
Можна работать с этим:
emoxristov, можно работать с Windows 7, 8 или 10.
ЦитироватьМожна работать с этим:
Да, можно, но мы бы рекомендовали не меньше 2 GB RAM.
Администратор пришлите мне по электронной почте ссылку версии 2.0.0.0 (beta 7) от 13.03.2016
Мне действительно нужна эта версия.
emoxristov@abv.bg
emoxristov, это beta-версия, она не существует уже больше года. Открыть проект beta-версии невозможно.
Здравствуйте, столкнулся с проблемой запуска клиента на Win 10. Кнопки запуска, о программе и выхода не активны. Устанавливаю только клиентскую часть (не демонстрационная часть). Что делать, куда капать?
Здравствуйте.
У Вас к ПК подключен один монитор, или несколько?
Клиент запускаете во весь экран, или в окне?
Вы уверены, что на ПК установлен актуальный видеодрайвер? При необходимости скачайте с официального сайта производителя видеокарты драйвер и установите его.
Один монитор, но огромный. Запускаю в окне. Драйвер актуальный... В связке с DameWare Mini Remote Control может не работать?
ЦитироватьВ связке с DameWare Mini Remote Control может не работать?
Возможно, зависит от того, как DameWare перехватывает события кликов мышью. Тестировали пока только с TeamViewer, с ним проблем не возникало. Есть возможность временно отключить DameWare и проверить проходят ли клики?
Ходил по месту, то же самое. Не активны все кнопки. Может проблема с win10? Принципиально ли копировать только папку с картинками вместе с папкой проект? И будут ли такие косяки из за того что я скопировал их в обе папки скады?
Здравствуйте!
ЦитироватьХодил по месту, то же самое. Не активны все кнопки. Может проблема с win10?
Проверили на Win 10 с установленной DameWare - все работает без проблем. В предыдущем сообщении Вы писали, что на ПК используется большой монитор - возможно на данном ПК установлено ПО для разделения экрана на несколько частей, которое может влиять на координаты окна скады. Либо установлено какое-то другое ПО перехватывающее клики мыши или влияющее на позиционирование окна скады.
ЦитироватьПринципиально ли копировать только папку с картинками вместе с папкой проект?
Если Вы говорите о копировании на ПК-клиент, то при добавлении в проект новых изображений их нужно скопировать на ПК-клиенты в папку "\Simple-Scada\Pictures" или целиком скопировать папку "Pictures" с сервера на клиенты. При этом, папку с проектом копировать на клиенты не требуется. Если Вы ведете разработку проекта на одном ПК, а затем переносите его на ПК-сервер, то необходимо копировать на ПК-сервер папку с проектом и папку "Pictures".
Вопросы по объекту "Поле" TM_Field:
1) Если прописать какой-нибудь скрипт на событие OnClik, то при нажатии кнопки мыши по полю этот скрипт выполнится один раз. Если еще раз нажать по этому полю, то скрипт больше не выполнится, пока поле не потеряет фокус и снова не получит его.
2) Если "Поле" TM_Field используется только для вывода значения переменной, то я перевожу свойство "Доступен" в false, чтобы пользователь случайно не изменил его, но при этом у поля перестают работать скрипты по событию (OnClick к примеру). Как выйти из этой ситуации?
ЦитироватьЕсли прописать какой-нибудь скрипт на событие OnClik, то при нажатии кнопки мыши по полю этот скрипт выполнится один раз. Если еще раз нажать по этому полю, то скрипт больше не выполнится, пока поле не потеряет фокус и снова не получит его.
Верно, когда ввод уже начат, клики в поле будут работать на установку позиции курсора в текст. Возможно стоит разместить рядом с Полем другой компонент, например Кнопку и выполнять скрипт по клику на кнопку.
ЦитироватьЕсли "Поле" TM_Field используется только для вывода значения переменной, то я перевожу свойство "Доступен" в false, чтобы пользователь случайно не изменил его, но при этом у поля перестают работать скрипты по событию (OnClick к примеру).
В ближайшем обновлении для решения этой проблемы добавим компоненту Поле отдельное свойство "Разрешить ввод". Тогда можно будет оставить компонент доступным, но ввод запретить. Т.е. скрипты по клику будут выполняться всегда, но ввод будет запрещён.
Здравствуйте. Скажите пожалуйста, есть ли возможность в данной скаде регистрировать фазы работы установок, как например польской скаде ASIX. Фото прилагаю.
Еще такой вопрос. Есть ли здесь возможность создать свой элемент чтобы и у него были все настройки как у встроенных, например заслонка. В скаде только один вид заслонки (клапана), мне например нужен трех ходовой клапан с видимым переключением трубопроводов (см. фото). Пока я смог сделать так - два отдельных .ПНЖ рисунка, наложить один на другого и скрывать один из них по "ОНДатаЧейнж". Можно было бы и смериться с таким способом, но когда нужно редактировать мнемосхему или изменить разрешение проекта, то эти все рисунки нужно вновь перетягивать и налаживать сверх точно один поверх другого рисунка. Это очень не удобно. МОжет я не так то что-то делаю? Подскажите пожалуйста.
Цитата: Simple-Scada от 12 ноября 2018, 15:06:39Верно, когда ввод уже начат, клики в поле будут работать на установку позиции курсора в текст. Возможно стоит разместить рядом с Полем другой компонент, например Кнопку и выполнять скрипт по клику на кнопку.
Кнопка мне не пойдет, потому что по нажатию мне нужно менять цвет рамки Поля используя Sender. Но, учитывая следующее:
Цитата: Simple-Scada от 12 ноября 2018, 15:06:39В ближайшем обновлении для решения этой проблемы добавим компоненту Поле отдельное свойство "Разрешить ввод". Тогда можно будет оставить компонент доступным, но ввод запретить. Т.е. скрипты по клику будут выполняться всегда, но ввод будет запрещён.
Как будет вести себя повторное событие OnClick по Полю, у которого будет отключено свойство "Разрешить ввод"? Ведь позицию курсора в поле уже не нужно будет менять.
Здравствуйте!
ЦитироватьСкажите пожалуйста, есть ли возможность в данной скаде регистрировать фазы работы установок, как например польской скаде ASIX. Фото прилагаю.
Для получения ступенчатого графика можно у необходимой переменной на вкладке "
Архив (https://simple-scada.com/help/manual/index.html?variable-new.html#var_archive)" включить архивацию и установить свойство "Тип отрисовки тренда" -> "Ступенчатый". В этом случае тренд будет отрисовываться как у Вас на скриншоте. При этом, описания стадий размещенные у Вас на скриншоте слева и справа отобразить в области просмотра трендов не получится.
ЦитироватьЕсть ли здесь возможность создать свой элемент чтобы и у него были все настройки как у встроенных, например заслонка. Пока я смог сделать так - два отдельных .ПНЖ рисунка, наложить один на другого и скрывать один из них по "ОНДатаЧейнж"
Возможности создать свой элемент нет. В Вашем случае проще использовать одно изображение с несколькими кадрами(пример во вложении), при помощи
утилиты Pictures.exe (https://simple-scada.com/help/manual/pictures.html) разбить его на кадры и по событию OnDataChange менять кадр изображения, например:
begin
if Sender is TM_Image then // проверяем, что Sender это изображение
with Sender as TM_Image do // приводим Sender к типу "TM_Image"
{ если значение переменной (в виде целого числа),
которая связана с изображением равно 1, то }
if AsInt = 1 then
Frame := 1 // показать первый кадр изображения
else // иначе
Frame := 2; // показать второй кадр изображения
end.ЦитироватьКак будет вести себя повторное событие OnClick по Полю, у которого будет отключено свойство "Разрешить ввод"? Ведь позицию курсора в поле уже не нужно будет менять.
При отключенном свойстве "Разрешить ввод" скрипты по клику будут выполняться всегда, но ввод будет запрещён.
Цитата: Simple_Scada от 13 ноября 2018, 10:45:00При отключенном свойстве "Разрешить ввод" скрипты по клику будут выполняться всегда, но ввод будет запрещён.
Спасибо, это то, что нужно.
Цитата: kolya_asu от 12 ноября 2018, 23:51:04Здравствуйте. Скажите пожалуйста, есть ли возможность в данной скаде регистрировать фазы работы установок, как например польской скаде ASIX. Фото прилагаю.
Вот что у меня получилось. Я взял элемент "временные тренды" , растянул шкалу так, что число в переменной тренда соответствует фазе или операции (тех. процесса) а по бокам соотв. текст с самими фазами роботы.
Вопрос: возможно ли с помощью элемента "календарь" просматривать историю не переключаясь на тренды (Alt + T), а оставаясь в данном окне с растянутым элементом "временные тренды"? Если нет такой возможности, то может быть такое реализовано в новых версиях СКАДы или какую альтернативу можно придумать, чтобы выйти с положения на данный момент? Спасибо.
А форму отрисовки я выбрал ступенчатую, но она немного трапециевидная.
Здравствуйте!
Цитироватьвозможно ли с помощью элемента "календарь" просматривать историю не переключаясь на тренды (Alt + T), а оставаясь в данном окне с растянутым элементом "временные тренды"?
Нет. Компонент "Временные тренды" предназначен для просмотра
временных трендов с интервалом времени не более 1 часа. Просматривать архивные тренды через него нельзя.
ЦитироватьЕсли нет такой возможности, то может быть такое реализовано в новых версиях СКАДы или какую альтернативу можно придумать, чтобы выйти с положения на данный момент
Просматривать архивные тренды сейчас можно только через
меню просмотра трендов (https://simple-scada.com/help/manual/client-trends-view.html). Для получения ступенчатого графика можно у необходимой переменной на вкладке "Архив" включить архивацию и установить свойство "Тип отрисовки тренда" -> "Ступенчатый". В этом случае архивный тренд будет отрисовываться как у Вас на скриншоте. При этом, описания стадий размещенные у Вас на скриншоте слева и справа отобразить в
области просмотра трендов (https://simple-scada.com/help/manual/client-trends-view.html) не получится. Для решения Вашей задачи нужен отдельный компонент "Архивный тренд", который будет брать данные из БД. Мы планируем добавить такой компонент, но когда он появится сказать сложно - сейчас решаются более востребованные задачи.
ЦитироватьА форму отрисовки я выбрал ступенчатую, но она немного трапециевидная.
Свойства переменной на вкладке "
Архив (https://simple-scada.com/help/manual/index.html?variable-new.html#var_archive)" не влияют на отображение временных трендов. Они действуют только на архивные тренды. Если Вы
добавите архивный тренд (https://simple-scada.com/help/manual/editor-trends.html) по переменной, у которой свойство "Тип отрисовки тренда" -> "Ступенчатый", то при
просмотре трендов (https://simple-scada.com/help/manual/client-trends-view.html) он будет отображаться ступенчато, как на Вашем скриншоте.
Здравствуйте, а можно реализовать группировку своих изображений в под папки? устал искать и добавлять по штучно )))
Здравствуйте.
Сейчас группировка по подпапкам невозможна. Планируем добавить такую возможность, но трудно сказать когда дойдём до реализации.
А почему такая низкая скорость обновления значений переменных с OPC сервера?
В настройках проекта стоит 50мс, но на видео видно, что она намного ниже.
От OPC сервера не зависит, по крайней мере с arOPC и NAPOPC ситуация такая-же (с arOPC даже еще медленее).
видео: https://youtu.be/-En4QVsKIUo
На видео видна частота 1 сек. Вы уверены, что в окне переменной (https://simple-scada.com/help/manual/variable-new.html) выбрана "Частота опроса: по-умолчанию (как в настройках)"? Вы перезапускали проект на сервере (Server.exe) после того, как изменили частоту опроса в Настройках проекта? Вы точно изменили именно опцию "Частота опроса по-умолчанию" из меню "Проект - Настройки - Общие"?
Да, конечно, все так: в окне переменной выбрана "Частота опроса: по-умолчанию (как в настройках)", 50мс стоит в "Частота опроса по-умолчанию" из меню "Проект - Настройки - Общие".
Пробовал также в настройках переменной принудительно указывать частоту обновления,- это тоже ничего не дало.
Собственно, что такая частота обновления я не сегодня заметил (просто раньше небыло времени поэкспериментировать с разными opc),
так что сервер скады и сам компьютер перезапускался не один десяток раз с такими настройками.
Не то, чтоб это было сильно критично, но некоторые переменные хотелось бы видеть с частотой обновления хотя бы 100мс, тем более что скорость опроса устройства (около 70мс) это позволяет.
Странно, пока не получается понять как такое может быть. Для примера взяли OPC-сервер KepServerEx v4.5, создали переменную с частотой изменения 50 мс, сохранили. Создали новый проект в редакторе. Импортировали переменную с OPC-сервера и у настройках проекта выставили частоту по-умолчанию равную 50 мс. После этого на клиенте видим, что переменная действительно меняется с частотой 50 мс.
Вы используете одну из последних версий скады? 2.3.0.0 и выше?
Да, экспериментировал на версии 2.3.2.0, хотя на предидущих было аналогично.
Может с компьютером что, с понедельника попробую на ноутбуке протестировать.
А может действительно дело в opc, и далеко не все могут отдавать данные с такой скоростью,
а KepServer может, не зря же он столько денег стоит.
ЦитироватьА может действительно дело в opc, и далеко не все могут отдавать данные с такой скоростью.
Здесь дело в чем-то другом. Если в OPC-сервере можно задать частоту опроса 50 мс., значит он может отдавать данные с этой скоростью, иначе зачем нужна эта частота. Совсем не ясно что можно предложить для решения проблемы, т.к. частота опроса определяется только настройками частоты в окне редактирования переменной и в меню настройки проекта. У Вас эти переменные опрашиваются только одним проектом? Может быть есть ещё один проект в котором эти переменные опрашиваются с другой частотой?
Все-таки овеновский OPC виноват.
Попробовал на ноуте. Результат оказался аналогичным предидущему на ПК.
Потом убрал опрос всех регистров, кроме одного, период опроса поставил 100мс.
Овеновский opc не отдает данные с той-же скоростью, с какой их получает.
OWEN OPC: https://youtu.be/fFAJU1-ILDY
arOPC: https://youtu.be/zRt0EjE_Fc8
А вот когда читается много регистров, овеновский opc их опрашивает быстрее (или я опрос в arOPC не оптимально настроил), но за счет того, что отдает медленно, разница между arOPC и OWEN OPC пропадает.
Здравствуйте.
Я вновь возвращаюсь к моему вопросу. Скажите пожалуйста, в какие сроки вы могли бы добавить данную функцию в СКАДе. Ведь она важна не меньше других функций, по крайней мере она используется на многих предприятиях. А как ее заменить, пока не представляю. Я своему начальству доложил, что Вы планируете добавить данную функцию только позже, но там хотят знать поточнее, так как планируется переход из тестовой версии (пока в тестовом режиме) на стандарт (планируется расширение).
Спасибо.
Цитата: kolya_asu от 13 ноября 2018, 15:04:59Цитата: kolya_asu от 12 ноября 2018, 23:51:04Здравствуйте. Скажите пожалуйста, есть ли возможность в данной скаде регистрировать фазы работы установок, как например польской скаде ASIX. Фото прилагаю.
Вот что у меня получилось. Я взял элемент "временные тренды" , растянул шкалу так, что число в переменной тренда соответствует фазе или операции (тех. процесса) а по бокам соотв. текст с самими фазами роботы.
Вопрос: возможно ли с помощью элемента "календарь" просматривать историю не переключаясь на тренды (Alt + T), а оставаясь в данном окне с растянутым элементом "временные тренды"? Если нет такой возможности, то может быть такое реализовано в новых версиях СКАДы или какую альтернативу можно придумать, чтобы выйти с положения на данный момент? Спасибо.
А форму отрисовки я выбрал ступенчатую, но она немного трапециевидная.
Здравствуйте!
В ближайшие пол года компонент "Архивный тренд" не будет добавлен, т.к. сейчас решаются более востребованные задачи. Через пол года можно будет вернуться к этой задаче если не будет более популярных задач.
Здравствуйте, столкнулся с проблемой вывода переменных. Есть прибор "КАРАТ 307" установил Фирменный OPC сервер, в скаде вижу прибор и все переменные но! Выбрав нужные переменные и нажав добавить, ничего не добавляется и не происходит. В чем проблема? куда смотреть? Производителю написал, но ответа пока нет. Спасибо.
Здравствуйте. При импорте с OPC-DA серверов для каждого тега сначала запрашивается тип данных. Если OPC-DA сервер не возвращает тип данных, то импорт тега игнорируется (при этом вы можете вручную добавить тег, через окно создания новой переменной (https://simple-scada.com/help/manual/variable-new.html), указав тип данных и другие свойства тега самостоятельно). Так и происходит при работе с КАРАТ 307. Судя по информации "О программе" этот OPC-сервер не разрабатывается с 24.07.2012, неудивительно, что он содержит данную проблему.
Здравствуйте. Подскажите пожалуйста, как будет выглядеть скрипт который бы вызывал окно трендов с активным тегом по которому кликнули мышью (например по компоненту поле). Переменная с именем temperatur_1, или нужно обращаться к имени/названию тренда (Trend1/Trend1)?
Скрипт с демо-проекта:
begin
GoToTrendsClient(GetClientName);
end. Не понимаю куда "прикрутить" имя/название тренда.
Здравствуйте!
ЦитироватьНе понимаю куда "прикрутить" имя/название тренда.
Через скрипты перейти к просмотру тренда по его имени или ID нельзя. Процедура
GoToTrendsClient (https://simple-scada.com/help/script/gototrendsclient.html) предназначена для перехода в меню трендов на заданном клиенте. Если нужно перейти в определенную группу трендов, то можно использовать процедуру
GoToTrendsGroupClient (https://simple-scada.com/help/script/gototrendsgroupclient.html), которая позволяет перейти в меню трендов к заданной группе.
Также, имеется возможность создания
редактируемых групп трендов (https://simple-scada.com/help/manual/index.html?client-trends-view.html#edit_group). Т.е., в редакторе можно включить у группы свойство "
Редактируемая (https://simple-scada.com/help/manual/index.html?editor-trends.html#sect_prop)" и пользователь подключаясь с клиента сможет менять тренды в группе выбирая их из списка переменных. В сам список выводятся имена переменных, либо описание (если оно есть).
Добрый вечер. Пытаюсь повторить анимацию на подобие той, которую вы выложили на 65 странице. Создавал анимацию в Фотошоп, в Пайнт.нет 4.1.4, и в обоих случаях утилита Pictures отображала правильную анимацию, но только добавляю сохраненный рисунок через компонент "Изображение", то отображаются сразу два кадра!? Подскажите пожалуйста, каким образом вам удается правильно "склеить" два кадра, что бы он правильно отображался на экране.(фото свое прилагаю)
Возможно где-то есть инструкция?
И еще вопрос:
- есть ли возможность запретить закрытие работающего клиента (кн.Esc), или установить пароль на закрытие?
- как можно скопировать/экспортировать страницу с одного проекта в другой (БЕЗ ЭТОГО НЕ УДОБНО ОЧЕНЬ)
Спасибо.
Здравствуйте!
Изображение должно быть сохранено в формате ".png" с глубиной цвета 32 бита или ниже. Ваше изображение сохранено в формате ".gif". Во вложении Ваше изображение сохраненное в ".png". Откройте его в Pictures.exe, установите свойство "Кадров по ширине" = 2 и нажмите кнопку "Сохранить изменения". После сохранения настроек анимированное изображение станет доступно в редакторе. Если у Вас несколько ПК-клиентов, то необходимо скопировать папку "Pictures" на все ПК-клиенты. Инструкцию по созданию анимации можно найти
по ссылке (https://simple-scada.com/help/manual/pictures.html), также имеется подробная
видеоинструкция (https://youtu.be/IUnKmg0Fi5U).
Цитироватьесть ли возможность запретить закрытие работающего клиента
Можно изменить сочетание клавиш для выхода - см. опцию "
Комбинация клавиш для выхода (https://simple-scada.com/help/manual/index.html?settings-simple-client.html#qcontrol)" в Options.exe на вкладке "Simple-Client".
Цитироватькак можно скопировать/экспортировать страницу с одного проекта в другой
Такой возможности пока нет - в будущем планируем добавить. Сейчас можно только сохранить проект под другим именем и удалить из него все лишнее.
Здравствуйте. Картинку *GIF, я ошибочно загрузил. Вообщем я разобрался почему у меня не получалось сделать аним. картинку, ошибка в программе Pictures.exe. Попробуйте создать несколько разных анимашек подряд, а будет работать правильно лишь первая. Нужно каждый раз после создания аним. картинки, временно ее убрать из папки Pictures. Вот так все работает. Проверял на нескольких ПК.
Помогите мне пожалуйста, как правильно сделать. Картинка на три кадра (3-й, авария например).
Как переключать 1-2й кадр между собой - я разобрался. Хочу заставить включится 3 кадр по дополнительной переменной со скриптом в "ДатаЧейнжЕХ".
begin
if Sender is TM_Image then
with Sender as TM_Image do
if AsInt = 1 then
Frame := 3
else
Frame := 1;
end. Проблема: когда дополн. переменная в состоянии "1", то включается третий кадр, а когда переходит в "0" то картинка не меняется.
Для переключения 1-2 кадров скрипт:
begin
if Sender is TM_Image then
with Sender as TM_Image do
if AsInt = 1 then
Frame := 1
else
Frame := 2;
end.
Подозреваю, что это может быть из-за того что, скрипт "ДатаЧейнж" выполняется только по изменению переменной? То есть не постоянно обрабатывается. Подскажите пожалуйста как правильно подправить скрипт, чтобы прежнее состояние клапана (соотв. кадр) включался снова. Спасибо.
kolya_asu, предлагаю тебе сделать вариант который использую во всех проектах.
Допустим у тебя есть 2 переменных, числа, биты которых указывают на открытие клапана и аварию - RunValve, ErrValve. При этом 0 бит первой переменной связан с открытием клапана №1, 0 бит второй переменной - авария клапана №1 и так далее по количеству клапанов. Создай скрипт "Изменились переменные", выбери эти 2 переменные. Далее такой код:
var
wbit_run: Boolean;
wbit_err: Boolean;
obj: TM_Image;
i: Integer;
begin
for i:=0 to 15 do // обрабатываем все клапана в проекте, например 16 штук
begin
wbit_err := GetBit(ErrValve.Value,i);
wbit_run := GetBit(RunValve.Value,i);
obj := GetImageByName('valve_'+IntToStr(i));
if obj <> nil then
if wbit_err = FALSE then
if wbit_run = TRUE then obj.Frame := 2
else obj.Frame := 1
else obj.Frame := 3;
end;
Теперь достаточно назвать все клапана в проекте именами valve_0, valve_1 и т.д. в соответствии с битами переменных и одним этим скриптом будут обрабатыватьтся все клапана меняя своё состояние.
Если ты используешь просто булевые тэги для каждого клапана, тогда привязать их в скрипте и вместо GetBit искать их по GetVariableByName.
Здравствуйте!
ЦитироватьВообщем я разобрался почему у меня не получалось сделать аним. картинку, ошибка в программе Pictures.exe. Попробуйте создать несколько разных анимашек подряд, а будет работать правильно лишь первая.
Создали несколько анимированных изображений подряд - все работает корректно. Убедитесь, что для каждого нового изображения Вы не забываете установить необходимое кол-во кадров по ширине/высоте и нажать кнопку "Сохранить". Если есть возможность, пришлите видео Вашего процесса создания анимации.
ЦитироватьПроблема: когда дополн. переменная в состоянии "1", то включается третий кадр, а когда переходит в "0" то картинка не меняется.
В обоих скриптах Вы работаете со значением основной переменной, а в скрипте по OnDataChangeEx Вам нужно проверять значение доп. переменной(свойство
VariableEx (https://simple-scada.com/help/script/variableex.html)). Правильный скрипт будет таким:
begin
if Sender is TM_Image then
with Sender as TM_Image do
if VariableEx.AsInt = 1 then
Frame := 3
else
Frame := 1;
end.
Цитата: Timofei от 04 декабря 2018, 09:08:44kolya_asu, предлагаю тебе сделать вариант который использую во всех проектах.
Спасибо Вам Timofei и модераторам форума за помощь. Ваш вариант попробую позже. Второй вариант заработал! Только вот дошел до одного исполнительного устройства у которого авария (третий кадр) вызывается по двум разным переменным, а дополнительная переменная то одна!
Мне, далекому пока что от Делфи, пришла идея выйти из положения так: создать еще один внутр. тег и вписать его в поле дополнительная переменная и связать его с логическим "или" двух переменных которые вызывают аварийное сообщение.
Вообщем подскажите пожалуйста как сделать логическое "или" двух переменных (bool) с сохранением результата в третью переменную (bool) которая и будет вызывать скрипт в OnDataChangeEx. Как-то так...
Еще вопрос, посоветуйте мне пожалуйста хорошую, проверенную книгу(и) с примерами хорошо бы, возможно есть видео уроки для "чайников". Т.к. литературы много разной, а хочется начать с проверенных источников для быстрого освоения Симпл Скада. Спасибо заранее.
Еще такой вопрос. В СКАДЕ есть такая возможность, чтобы по состоянию переменной можно было бы останавливать, присваивать определенное значение или скрывать какой-либо тренд? Спасибо.
Цитата: kolya_asuТолько вот дошел до одного исполнительного устройства у которого авария (третий кадр) вызывается по двум разным переменным, а дополнительная переменная то одна!
Мне, далекому пока что от Делфи, пришла идея выйти из положения так: создать еще один внутр. тег и вписать его в поле дополнительная переменная и связать его с логическим "или" двух переменных которые вызывают аварийное сообщение.
Опять же Вам лучше в таком случае использовать один общий скрипт с типом "Изменились переменные" чем много скриптов OnDataChange для каждого объекта.
if (err1 = FALSE) && (err2 = FALSE) then // Если обе булевых аварии 0, клапан открыт или закрыт
if open1 = TRUE then valve_1.Frame := 2
else valve_1.Frame := 1
else valve_1.Frame := 3;
Упрощённый вариант прошлого кода для одного клапана, для универсальности и большого количества клапанов остаётся только добавить цикл с поиском переменных и объектов по имени, как в моём прошлом примере.
Здравствуйте!
ЦитироватьТолько вот дошел до одного исполнительного устройства у которого авария (третий кадр) вызывается по двум разным переменным, а дополнительная переменная то одна!
Если требуется отображать общую аварию исполнительного устройства, то оптимальным вариантом было бы создать на контроллере переменную общей аварии и использовать ее в скаде. Например, создать Bool переменную и записывать в нее 1 если имеется какая-либо авария или использовать целочисленную переменную, каждое значение которой будет соответствовать состоянию исполнительного устройства(к примеру: 0 - остановка, 1 - работа, 2,3 - аварийные состояния). Если возможности сделать это на контроллере нет, то можно создать скрипт по событию "
Изменились переменные (https://simple-scada.com/help/script/changemulvar.html)", добавить в него необходимые переменные аварий и записывать результат в отдельную внутреннюю переменную общей аварии:
begin
CommAlm.Value := (aVar1.AsBool) or (aVar2.AsBool);
end.ЦитироватьЕще вопрос, посоветуйте мне пожалуйста хорошую, проверенную книгу(и) с примерами хорошо бы, возможно есть видео уроки для "чайников". Т.к. литературы много разной, а хочется начать с проверенных источников для быстрого освоения Симпл Скада.
Для того, чтобы использовать скрипты не обязательно изучать Delphi. В скриптах Simple-Scada в основном используются готовые процедуры, функции и свойства объектов описанные в
руководстве по скриптам (https://simple-scada.com/help/script/script-editor.html). Обо всех командах и операторах присущих языкам Pascal/Delphi можно прочесть в интернете на сайтах связанных с языками Pascal/Delphi. Например, описание
типов данных (http://www.delphibasics.ru/1Types.php) и
ключевые слова (http://www.delphibasics.ru/1Keywords.php).
ЦитироватьЕще такой вопрос. В СКАДЕ есть такая возможность, чтобы по состоянию переменной можно было бы останавливать, присваивать определенное значение или скрывать какой-либо тренд?
Если нужно записать значение одной переменной в другую, то можно использовать свойство переменной "
Value (https://simple-scada.com/help/script/varvalue.html)". Чтобы скрыть
временный тренд (https://simple-scada.com/help/manual/time-trends.html) нужно использовать свойство "
Visible (https://simple-scada.com/help/script/ttvisible.html)". Другие доступные из скриптов свойства компонента "Временный тренд" можно найти
по ссылке (https://simple-scada.com/help/script/tmtimetrendviewer.html). Архивные тренды нельзя скрывать из скриптов.
Добрый день! Несколько вещей которые хотелось бы видеть в следующих релизах Simple-Scada:
1. Добавить к подписи поля свойство шрифт, которое изменяется независимо от шрифта самого поля, т.к. иногда нужно сделать цифры чуть крупнее чем подпись.
2. Наверное уже писали, хотелось бы иметь возможность рисовать диагональные линии или поворачивать нарисованные.
3. Добавить объект "Окно диагностики", что-то вроде консоли, в который будут писаться ошибки с сервера и можно из скриптов писать сообщения как уже реализована запись в логи. Реально было бы удобно при отладке сразу видеть что скрипт не работает из-за ошибки и выводить какие-то промежуточные данные в это окно.
4. Если это возможно, сделать поиск использования переменных и объектов проекта по всем скриптам со ссылками на их использование.
5. Изменить стандартную шкалу переменных по-умолчанию на -4294967296..4294967295, потому что при попытке записать в переменную из скрипта число более 100 (особенно при работе с битами), туда записывается 100 и, если значение никуда не выводится, это происходит неочевидно.
6. Добавить возможность скрывать не только всю панель страниц, но и отдельные вкладки панели, т.к. когда страниц много, они накладываются друг на друга, а переход на них хочется реализовать только через GotoPage(), но при этом иметь возможность открывать основные страницы кликом. Конечно можно сделать кнопками основные вкладки, а панель скрыть, но если не сложно хотелось бы видеть такую схему.
Здравствуйте.
ЦитироватьДобавить к подписи поля свойство шрифт, которое изменяется независимо от шрифта самого поля, т.к. иногда нужно сделать цифры чуть крупнее чем подпись.
Добавление свойств плохо сказывается на производительности, а именно на скорости загрузки/сохранения проекта и компиляции скриптов, поэтому мы стараемся использовать как можно меньшее кол-во свойств. Вы можете разместить вместо подписи компонент Текст с произвольным шрифтом для решения этой задачи.
Цитировать2. Наверное уже писали, хотелось бы иметь возможность рисовать диагональные линии или поворачивать нарисованные.
3. Добавить объект "Окно диагностики", что-то вроде консоли, в который будут писаться ошибки с сервера и можно из скриптов писать сообщения как уже реализована запись в логи. Реально было бы удобно при отладке сразу видеть что скрипт не работает из-за ошибки и выводить какие-то промежуточные данные в это окно.
4. Если это возможно, сделать поиск использования переменных и объектов проекта по всем скриптам со ссылками на их использование.
Эти пункты постараемся реализовать по мере выхода обновлений.
Цитировать5. Изменить стандартную шкалу переменных по-умолчанию на -4294967296..4294967295, потому что при попытке записать в переменную из скрипта число более 100 (особенно при работе с битами), туда записывается 100 и, если значение никуда не выводится, это происходит неочевидно.
Этого точно не будет, так как тренды, временные тренды и уровни зависят от шкалы и при шкале -4294967296..4294967295 практически любой тренд будет прямой линией, а менять значение через компонент Уровень станет сложно, перетягивание его на один пиксель приведёт к огромному приращению. Кроме этого нет никаких ограничений на запись значения через скрипты. Напишите пример кода при котором не удаётся присвоить значение более 100. Вот пример присвоения из скриптов:
myVar.Value := 150;Запишет значение 150 в переменную myVar, даже если у неё шкала 0..100.
Цитировать6. Добавить возможность скрывать не только всю панель страниц, но и отдельные вкладки панели, т.к. когда страниц много, они накладываются друг на друга, а переход на них хочется реализовать только через GotoPage(), но при этом иметь возможность открывать основные страницы кликом. Конечно можно сделать кнопками основные вкладки, а панель скрыть, но если не сложно хотелось бы видеть такую схему.
Сейчас скрывать страницы/подстраницы можно для отдельных пользователей (https://simple-scada.com/help/manual/editor-users.html). Т.е. можно сделать так, что один пользователь будет видеть одни страницы, а другой пользователь - другие. Также можно скрыть панель страниц и разместить вместо неё кнопки со скриптами перехода и при необходимости скрывать их через скрипты, например: myButton.Visible := False;
Здравствуйте. Скажите пожалуйста, можно как-то зафиксировать масштабирование тренда в диапазоне например от 0 до 24? Т.к. очень не удобно каждый раз его возвращать в заданный диапазон.
И еще вопрос, может быть все таки есть какой-то способ вывести информацию о значениях тренда в каком-либо месте? Спасибо.
Здравствуйте.
Масштабирование трендов сохраняется во время работы клиента, т.е., если изменить масштаб тренда, то при последующих переходах в меню просмотра трендов ранее заданный масштаб тренда будет сохраняться до перезапуска клиента. Если Ваша переменная может принимать значения от 0 до 24, то установите ей
шкалу (https://simple-scada.com/help/manual/edit-scale.html) с диапазоном 0-24, тогда в трендах всегда будет отображаться шкала 0-24 и не нужно будет ее масштабировать.
ЦитироватьИ еще вопрос, может быть все таки есть какой-то способ вывести информацию о значениях тренда в каком-либо месте?
Все доступные возможности просмотра трендов описаны
здесь (https://simple-scada.com/help/manual/client-trends-view.html). В указанной Вами на скриншоте области отображаются значения трендов согласно положению визира в области просмотра трендов. Добавить какую-либо другую информацию или объекты в меню просмотра трендов нельзя.
Здравствуйте! Примерно два года назад Вы писали, что поддержка HDA пока не планируется. Что-то изменилось за это время? Стоит ждать? :)
Цитата: Simple-ScadaНапишите пример кода при котором не удаётся присвоить значение более 100. Вот пример присвоения из скриптов:
myVar.Value := 150;Запишет значение 150 в переменную myVar, даже если у неё шкала 0..100.
С внутренними переменными работает, а вот с переменными с ОРС нет. Вот пример - на экране окно вывода связанное с переменной Tag1, которая является внешней - тип int64, шкала 0..100. Также на экране четыре фигуры со свойствами "Тэг" равными 3,8,12 и 15. На событие Onclick этих фигур написан следующий скрипт:
Tag1.Value := InverseBit(Tag1.Value,Sender.Tag);
При нажатии на первую фигуру устанавливается 3-й бит ( число 8 ), при нажатии на вторую - 8-й бит (число 256), но в переменную записывается число 100. Но если создать свою шкалу с большим диапозоном всё работет нормально.
Может сделать стандартную шкалу -32767..32767, всё равно при добавлении тегов в тренды все ставят свои шкалы обычно.
Здравствуйте, можно ли подтянуть проекты одному клиенту из разных серверов, что бы были в списке не набирая IP адреса серверов.
И как открыть EDITOR в полно-экранном режиме не на главном мониторе, а на втором мониторе?
Цитата: maks48 от 11 декабря 2018, 15:58:19Примерно два года назад Вы писали, что поддержка HDA пока не планируется. Что-то изменилось за это время? Стоит ждать? :)
Здравствуйте. Мы добавили поддержку HDA в список на разработку, но трудно сказать когда именно дойдём до реализации.
Цитата: Timofei от 12 декабря 2018, 08:52:28С внутренними переменными работает, а вот с переменными с ОРС нет.
Уберём ограничение на присваивание из скриптов для внешних переменных. Этого ограничения быть не должно, видимо по ошибке добавили его в одном из обновлений.
Цитата: Rinat от 12 декабря 2018, 10:47:36Здравствуйте, можно ли подтянуть проекты одному клиенту из разных серверов, что бы были в списке не набирая IP адреса серверов.
Здравствуйте. Так сделать нельзя. Можно создать на рабочем столе два отдельных ярлыка в каждом из которых указать свой сервер. IP-адрес сервера и порт указываются в параметрах ярлыка клиента. Также можно указать проект который нужно запустить с этого ярлыка, например: "C:\Program Files (x86)\Simple-Scada 2\Client.exe" -192.168.1.44 -8750 -"Demo-проект".
Цитата: Rinat от 12 декабря 2018, 10:47:36И как открыть EDITOR в полно-экранном режиме не на главном мониторе, а на втором мониторе?
Сейчас редактор всегда запускается на мониторе, который в ОС является основным. Поэтому можно только сделать второй монитор основным, чтобы окно редактора отображалось на нём.
ЦитироватьСейчас редактор всегда запускается на мониторе, который в ОС является основным. Поэтому можно только сделать второй монитор основным, чтобы окно редактора отображалось на нём.
На данный момент так и делаю. Но немного не удобно так как постоянно нужно сворачивать приложение что бы пользоваться другими приложениями((((
А за подсказку с ярлыками крутяк! Очень удобно! Спасибо!
Добрый день!
Заметил, что в окне трендов переменные с одинаковой шкалой группируются в одну шкалу, очень удобно. Но если из скриптов функцией SetTrendClient() подменить переменные трендов, все одинаковые шкалы выводятся отдельно, в итоге идёт дублирование для каждой переменной. Можно ли сделать чтобы при изменении переменных шкалы также группировались?
Здравствуйте. Добавим группировку при задании трендов через скрипты.
Здравствуйте. Заметил такую вещь, если выбираю свечение лампочки ярко желтым цветом clYellow($FFFF00), то при анимации цвет всегда темнее. С красным и зеленым также!? Скажите пожалуйста в чем может быть причина?
Еще, не подскажите как можно "вытащить" из переменной типа string, отдельно значения минуты- секунды?
Вот задавали уже вопрос на форуме, но решения я так и не нашел https://simple-scada.com/forum/index.php?topic=63.msg1687#msg1687 (https://simple-scada.com/forum/index.php?topic=63.msg1687#msg1687).
Цитата: kolya_asu от 19 декабря 2018, 04:23:37Здравствуйте. Заметил такую вещь, если выбираю свечение лампочки ярко желтым цветом clYellow($FFFF00), то при анимации цвет всегда темнее. С красным и зеленым также!? Скажите пожалуйста в чем может быть причина?
Скорее всего стоит Прозрачность не 255.
Прозрачность точно 255. 100%.
kolya_asu, в чистый желтый цвет будет перекрашено только чисто белое изображение. А текстура лампочки имеет светло-серый цвет внутри, поэтому она не станет полностью желтой. Благодаря этому удаётся сохранить текстуру изображения (каждый цвет в изображении перекрашивается пропорционально). И поэтому контур лампочки остаётся черным (черный при наложении цвета не меняется), а не становится желтым. Вам нужна либо текстура с белым заполнением, либо объект Фигура.
Здравствуйте. Попробовал с фигурой - не получается заставить светиться фоновым цветом, отображается черная дыра - желтый! Создал рисунок с тремя кадрами - так заработало, светит ярко!
Вот код которым переключаю кадры 1-2
begin
if Sender is TM_Image then //
with Sender as TM_Image do //
if AsInt = 1 then
Frame := 2 //
else //
Frame := 1; //
end.И тут возникло два вопроса у меня.
1. Можно как-то мигать вторым или третьим кадром? ( при активации переменной ОнДатаЧейнж)
2. Как установить высший приоритет для доп. переменной. Чтобы когда переменная ЕХ в "1", то не происходило переключение кадров при изменении основной переменной. Попробовал "осуществить" задуманное, но не проходит компиляция. Подправите пожалуйста код.
begin
if Sender is TM_Image then //
with Sender as TM_Image do //
if VariableEx.AsInt = 1 then
EXIT
if AsInt = 1 then
Frame := 2 //
else //
Frame := 1; //
end. Еще... смотрел ваши проекты и мне понравились рисунки на мнемосхемах. В какой программе Вы их создаете?
Здравствуйте.
ЦитироватьПопробовал с фигурой - не получается заставить светиться фоновым цветом, отображается черная дыра - желтый!
Не понятно, что именно не получается и что в Вашем понимании означает "отображается черная дыра - желтый"? Пример проекта с изменением цвета и миганием для объекта "Фигура" во вложении. Запустите его, посмотрите, затем откройте через редактор и посмотрите скрипты. Примеры других скриптов для изменения цвета или мигания можно найти
по ссылке (https://simple-scada.com/help/script/sample-scripts.html).
ЦитироватьЕще... смотрел ваши проекты и мне понравились рисунки на мнемосхемах. В какой программе Вы их создаете?
Это проекты, которые пользователи присылают и выкладывают самостоятельно, поэтому нам не известно какие графические редакторы использовались при создании проекта. Для создания изображений и анимации подойдет любой графический редактор поддерживающий работу с ".png" изображениями, например PaintNET, Gimp, Photoshop и т.д.
Получилось. Оказывается, что надо обязательно "заливать" фигуру каким-нибудь цветом, иначе будет черная заливка и убрать ее через стандартные свойства объекта не получится, только через скрипт закрашивать надо. Вот так работает у меня:
begin
if Sender is TM_Shape then // проверяем, что Sender это изображение
with Sender as TM_Shape do // приводим Sender к типу "TM_Image"
{ если значение переменной (в виде целого числа),
которая связана с изображением равно 1, то }
begin
FlashColor := clNone;
case VariableEx.AsInt of // если значение переменной равно:
1:
begin
Color := clSilver;
FlashColor := clYellow; // включить мигание зеленым цветом
end;
end;
end;
end.
Подскажите пожалуйста, как установить высший приоритет для доп. переменной. Чтобы когда переменная ЕХ в "1", то не происходило переключение кадров при изменении основной переменной. Хочу сделать, чтобы скрипт не выполнялся дальше при ЕХ="1". Подправте пожалуйста.
begin
if Sender is TM_Image then //
with Sender as TM_Image do //
if VariableEx.AsInt = 1 then
EXIT
if AsInt = 1 then
Frame := 2 //
else //
Frame := 1; //
end.
Ну проще всего наверное так
begin
if Sender is TM_Image then //
with Sender as TM_Image do //
if VariableEx.AsInt <> 1 then
if AsInt = 1 then
Frame := 2 //
else //
Frame := 1; //
end. Если доп переменная не = 1, тогда менять по основной
Спасибо! Теперь когда доп. переменная ЕХ в "1", а основная меняет свое состояние, кадр картинки не меняется. Но когда переменная ЕХ переходит обратно в "0" то она всегда переводит картинку в кадр№1, хотя в данный момент основная переменная уже находилась в "1" и должен отображаться кадр №2. Я так понимаю, что теперь надо что-то подправить в скрипте который вызывается по OnDataChangeEx.
begin
if Sender is TM_Image then // проверяем, что Sender это изображение
with Sender as TM_Image do // приводим Sender к типу "TM_Image"
if VariableEx.AsInt = 1 then
Frame := 3 // показать 3-й кадр изображения
else
Frame := 1 // показать 1-й кадр изображения
end.Что надо вписать в строку Frame := 1 // показать 1-й кадр изображения, чтобы туда подставлялось значение основной переменной (1-й или 2-й кадр)?
Уберите из скрипта вообще условие else
begin
if Sender is TM_Image then // проверяем, что Sender это изображение
with Sender as TM_Image do // приводим Sender к типу "TM_Image"
if VariableEx.AsInt = 1 then Frame := 3; // показать 3-й кадр изображения
end.
3й кадр будет показываться только по доп переменной, 1 и 2 когда доп = 0 и изменяется основная
kolya_asu, у Вас проблема в том, что Вы написали два скрипта для изменения кадра одного и того же изображения и поставили их на разные события: OnDataChange и OnDataChangeEx. Эти события выполняются
только при изменении переменной события.
ЦитироватьНо когда переменная ЕХ переходит обратно в "0" то она всегда переводит картинку в кадр№1,
Правильно, т.к. выполняется скрипт OnDataChangeEx по изменению доп. переменной.
Цитироватьхотя в данный момент основная переменная уже находилась в "1" и должен отображаться кадр №2.
Скрипт OnDataChange по основной переменной выполнится
только при ее изменении, а так как она не изменилась, скрипт не выполнился и кадр не сменился на второй.
Вам нужно сделать один скрипт со всеми условиями и поставить его на события OnDataChange и OnDataChangeEx изображения:
begin
if Sender is TM_Image then
with Sender as TM_Image do
if VariableEx.AsInt <> 1 then
if AsInt = 1 then
Frame := 1
else
Frame := 2
else
Frame := 3;
end.Пример проекта во вложении. В примере использовано Ваше изображение с тремя кадрами
из сообщения #985 (https://simple-scada.com/forum/index.php?topic=63.msg6402#msg6402).
Что это значит : max 72 ?
Здравствуйте.
ЦитироватьЧто это значит : max 72 ?
Это максимальное количество изменений тегов в секунду.
ЦитироватьПожалуйста, пришлите мне пример на emoxristov@abv.bg
Пример отправили.
Спасибо все работает отлично.
Есть 3G-роутер IRZ RU21 (http://www.radiofid.ru/catalog/besprovodnaya-svyaz/routery/3g-routery/router-irz-ru21w/). Могу ли я отправлять СМС из скады через него?
На сайте в дополнительных функциях указана поддержка отправки SMS через Telnet, если это поможет.
Здравствуйте.
Необходимо, чтобы GSM-модем поддерживал работу через COM. После установки драйверов модем должен определяться в диспетчере устройств как COM-порт (возможно эмулировать COM-порт). Если модем может принимать и выполнять AT-команды через COM-порт, то отправка SMS выполнится успешно.
Добрый день!
Недавно скачал для пробы Simple-Scada и собираемся купить в ближайшее время одну лицензию для тестирования в проекте.
Вроде всё симпатично, но вот оооочень не хватает массивов, структур, и массивов структур переменных.
Ведь зачастую в проектах SCADA довольно много однотипного оборудования, например, 10 вентустановок, 5 ДГУ, 20 счётчиков электроэнергии и т.п...
Все тэги для однотипных устройств одинаковые, все процедуры, алгоритмы.. одинаковые..
И очень удобно создать один раз структуру "Измеритель-х" в которую прописать нужные переменные-параметры.. Создать массив измерителей, и в коде просто обращаться по имени, индексу и полю...
Также при привязке тегов.. просто скопировал, поменял индекс и всё..
Спасибо!
Здравствуйте.
Мы планируем добавить поддержку шаблонных объектов, функции импорта и экспорта объектов между проектами. Какой-то определенный срок появления таких возможностей сейчас назвать сложно. Возможно, данные функции будут добавлять поэтапно.
Поднимал небольшой вопрос в соседней ветке https://simple-scada.com/forum/index.php?topic=145.msg6750#msg6750
Собственно разработчики молодцы что реализовали web-клиент, но было бы наверное очень здорово чтобы на базе появившегося web-сервера появился бы и какой нибудь API.
Чтобы можно было взаимодействовать со скадой из вне. Это расширило бы интеграционные возможности продукта в разы!
Цитата: Simple_Scada от 31 января 2019, 18:04:07Здравствуйте.
Необходимо, чтобы GSM-модем поддерживал работу через COM. После установки драйверов модем должен определяться в диспетчере устройств как COM-порт (возможно эмулировать COM-порт). Если модем может принимать и выполнять AT-команды через COM-порт, то отправка SMS выполнится успешно.
Добрый день уважаемые Господа разработчики
Вопрос к данному сообщению: а если на той стороне ModBus Slave устройство подключенное к удаленному модему тоже через COM порт то с ним сервер может установить соединение (дозвон) и далее запустить через это соединение обмен используя драйвер ModBus RTU ? Канал связи CSD, не путать с вариантом когда используется интернет и с обеих сторон GSM роутеры, именно дозвон, коннект и обмен через организованный таким образом COM порт
Так как организован опрос приборов в системах учета типа ЛЭРС или подобные
Здравствуйте.
Цитата: midnight1979 от 09 февраля 2019, 15:45:41...но было бы наверное очень здорово чтобы на базе появившегося web-сервера появился бы и какой нибудь API.
В ближайшем будущем API не появится, слишком много других популярных вопросов.
Цитата: zakhar81 от 10 февраля 2019, 05:53:38Вопрос к данному сообщению: а если на той стороне ModBus Slave устройство подключенное к удаленному модему тоже через COM порт то с ним сервер может установить соединение (дозвон) и далее запустить через это соединение обмен используя драйвер ModBus RTU ? Канал связи CSD, не путать с вариантом когда используется интернет и с обеих сторон GSM роутеры, именно дозвон, коннект и обмен через организованный таким образом COM порт
Так как организован опрос приборов в системах учета типа ЛЭРС или подобные
Скада может работать с GSM-модемом только через COM-порт на том ПК, на котором установлен сервер скады. Также чтение/запись переменных по Modbus или другим протоколам должны выполняться через соответствующий OPC-DA / OPC-UA сервер.
Хорошо, пусть будет OPC сервер, так он сможет работать с модемом через COM порт запуская обмен по ModBus предварительно подав серию AT команд модему на установку соединения с другим удаленным модемом? Это можно реализовать через скрипты?
zakhar81
Такую функцию должен иметь сам OPC-сервер. Он должен сам инициировать и закрывать подключение.
Поэтому я перефразировал вопрос относительно предлагаемых OPC для самого сервера
Там их два вида, может быть какой нибудь из них может поддерживать такой механизм обмена, сначала AT команды на модем посылаем, получаем подтверждение что коннект с удаленным модемом установлен и потом запускаем обмен через этот же ком порт уже без каких либо особенностей.
Здравствуйте.
arOPC не поддерживает работу с модемами. Через KepServer, насколько нам известно, также не получится реализовать описанную Вами задачу. Для уточнения такой возможности рекомендуем обратиться в техподдержку Kepware (https://www.kepware.com/en-us/support/technical-support/).
Или попробуйте написать в поддержку arOPC, возможно вам смогут добавить такой режим, лишним он точно не будет.
Вот еще народ поделился что можно использовать для решения нашей задачи
Я думаю всем будет полезно
ОРС сервер Лектус (http://lectussoft.com/opcserver.html)
Добрый день, подскажите планируется ли поддержка MQTT? Или городить через OPC?
int2246
Вот здесь Обсуждение MQTT (https://simple-scada.com/forum/index.php?topic=445.0) уже обсуждалось.
Я видел это обсуждение, но с момента последнего сообщения прошло больше года (1 год и 5 месяцев) и на сегодняшний день рынок начал наполняться скадами с поддержкой MQTT. Хотел узнать может что то изменилось.
К сожалению востребованность прямой поддержки MQTT в SCADA по-прежнему крайне мала. Вы седьмой пользователь запросивший прямую поддержку (причем из 3 из 7 пользователей хотят использовать MQTT в проектах с менее чем 64 тега для домашней автоматизации). Больше запросов даже на поддержку OPC-HDA (26 за всё время). В будущем мы планируем расширить продажи за пределы РФ и возможно добавим работу с MQTT из-за большей востребованности за рубежом.
Добрый день!
Рассматривался ли вопрос об организации активации/деактивации скриптов?
Поясню. Со временем проект разрастается. Скриптов становиться больше. Функционал добавляется. И вдруг - ошибка! Проект не компилиться.
Можно было бы выделить (приблизительно как у Вас сделано выделение трендов) один не рабочий скрипт и отлаживать только его.
Надеюсь идея понятна? Жду ответа!
Здравствуйте.
Рассмотрим внедрение кнопки активации/деактивации скриптов. Сейчас для исключения скрипта нужно заключить весь код скрипта между "begin..end." в комментарий следующим способом:
var
A, B: Integer;
begin
(*
A := 1;
B := A + 100;
*)
end.
Спасибо за ответ!
Кроме вашего способа делали отдельный проект с непонятным скриптом с заменной внешних переменных на локальные скрипта. Ну а дальше думали в чем проблема
Добрый день. Возможно ли организовать введение журнала наподобие бумажного. То есть оператору надо вводить уставки темперературы три раза в сутки для объекта. Таких объектов примерно 50 шт. Надо чтобы данные заносились в таблицу и отображались на графике.
Здравствуйте. Извините за задержку с ответом. Можно добавлять значения введённые оператором в БД, а затем отображать все значения на мнемосхеме в компоненте Таблица. Пример с записью в БД и выводом в таблицу подробно описан здесь (https://simple-scada.com/help/script/dbreciepes.html) на примере рецептов. А для того, чтобы данные отображались на графике, можно создать виртуальные переменные с включенной архивацией (https://simple-scada.com/help/manual/index.html?variable-new.html#var_archive) и пусть оператор изменяет их, как необходимо, три раза в сутки. Останется только вывести их в меню трендов (https://simple-scada.com/help/manual/editor-trends.html) для просмотра графиков.
Здравствуйте. Последнее обновление версии не порадовало. Чего-либо нового я не заметил, но то, что клиент стал тормозиться и подвисать - это очень почувствовалось и стало напрягать и раздражать. Можно ли как-то откатиться на предыдущий релиз? Он меня вполне устраивал.
Здравствуйте.
ЦитироватьЧего-либо нового я не заметил
Последнее обновление практически не содержит визуальных изменений. Полный список изменений описан здесь (https://simple-scada.com/forum/index.php?topic=178.msg6816#msg6816).
Касаемо работы клиентов были сделаны незначительные изменения. Вы уверены что клиент стал "тормозить" из-за обновления, а не из-за других причин (изменения в проекте / изменения в работе клиентского ПК или ОС / влияние стороннего ПО)? Обычно пользователи списывают любые изменения или возникающие проблемы на обновления, но в большинстве случаев выясняется, что обновление не при чем. Если есть возможность - вышлите проект для проверки на support@simple-scada.com.
ЦитироватьМожно ли как-то откатиться на предыдущий релиз?
Если вы делали резервную копию проекта перед обновлением, то достаточно установить пред. версию скады и поместить резервную копию проекта в папку "Projects\". Если резервную копию не делали, то вышлите проект на почту поддержки, мы откатим его вручную.
Цитата: Simple-Scada от 10 марта 2019, 17:47:33Касаемо работы клиентов были сделаны незначительные изменения. Вы уверены что клиент стал "тормозить" из-за обновления, а не из-за других причин (изменения в проекте / изменения в работе клиентского ПК или ОС / влияние стороннего ПО)?
Существенных изменений в проекте не было, в работе ПК и ОС также. Только обновление версии Simple-Scada.
Цитата: Simple-Scada от 01 марта 2019, 09:38:40Здравствуйте. Извините за задержку с ответом. Можно добавлять значения введённые оператором в БД, а затем отображать все значения на мнемосхеме в компоненте Таблица. Пример с записью в БД и выводом в таблицу подробно описан здесь (https://simple-scada.com/help/script/dbreciepes.html) на примере рецептов.
Добрый день. Создал проект на основе примера с рецептом. Проблема следующего плана. Не добавляются записи в таблицу по нажатию кнопки. Но если вручную заносим данные через БД, то изменения видны в скаде при перезапуске проекта.
Здравствуйте.
Это значит, что Вы либо что-то упустили в примере с рецептом, либо допустили ошибку в SQL-запросе. Подробнее про эти два варианта:
- вариант 1. После вставки значений в БД Вы забыли подгрузить изменения в таблицу. В примере для этого используется специальный скрипт с типом "Выполнен SQL-запрос" (описание в конце статьи). Он и подгружает внесённые в БД изменения в компонент Таблица.
- вариант 2. Запрос на добавление в БД содержит ошибку и на самом деле не выполняется. Это легко проверить. Запустите проект и попытайтесь несколько раз добавить данные в БД. Откройте журнал сервера (https://simple-scada.com/help/manual/server-journal.html) и убедитесь, что в нём нет ошибок. Если SQL-запросы которые Вы выполняете содержат ошибки, то эти ошибки отобразятся в журнале;
Добрый день!
Есть пара пожеланий и вопросов:
1. Удаление проекта. Я являюсь разработчиком проекта и часто бывает, что создаю тестовые проекты, которые периодически приходится их удалять. Как я понял, удаление проектов возможно только в ручную из папки с проектами. Возможно ли добавить кнопку в редакторе "удалить проект"?
2. Импорт/экспорт проектов. Часто получается, что проект разрабатывается на одном компьютере, а потом его необходимо перенести на компьютер заказчика. Приходится опять же копировать проект из папки вручную и переносить его в папку на ПК заказчика в папку со всеми проектами. Было бы весьма удобно, если бы был инструмент, позволяющий делать экспорт проекта в некий единый файл, с возможностью сохранения в любое место и потом делать импорт этого файла на другом компьютере.
3. Возможность выбора папки с проектами. Возникла ситуация при которой необходимо сменить папку, в которой хранятся проекта. Возможно ли предоставить возможность для выбора папки с проектами?
4. MySQL и MS SQL. В руководстве предоставлены примеры скриптов для работы с БД в MySQL. В некоторых случаях синтаксис запроса данных к этим базам отличается. Есть ли какие нюансы в связи с этим в Simple-Scada? Какую из данных БД лучше использовать (Подразумевается использование версии Simple-Scada Professional)?
Здравствуйте.
Цитировать1. Удаление проекта. Я являюсь разработчиком проекта и часто бывает, что создаю тестовые проекты, которые периодически приходится их удалять. Как я понял, удаление проектов возможно только в ручную из папки с проектами. Возможно ли добавить кнопку в редакторе "удалить проект"?
После вызова меню "Проект" - "Открыть" (https://simple-scada.com/help/manual/menu-project.html) (или "Сохранить как..."), в открывшемся окне напротив каждого проекта отображается кнопка удаления.
Цитировать2. Импорт/экспорт проектов.
Обязательно добавим импорт/экспорт, это востребованная задача.
Цитировать3. Возможность выбора папки с проектами.
Сейчас системная часть скады и часть с пользовательскими файлами отделены друг от друга и задаются во время установки. Системную часть рекомендуется устанавливать в "Program Files\" для безопасности. Пользовательскую часть можно установить в любую папку (открытую для чтения и записи). Пользовательская часть скады помимо папки с проектами содержит и другие папки, например "Pictures\" из которой проект может брать пользовательские изображения. Поэтому мы рекомендуем просто переносить не отдельно папку с проектами, а всю пользовательскую часть скады в удобное для Вас расположение.
Цитировать4. MySQL и MS SQL. В руководстве предоставлены примеры скриптов для работы с БД в MySQL. В некоторых случаях синтаксис запроса данных к этим базам отличается. Есть ли какие нюансы в связи с этим в Simple-Scada? Какую из данных БД лучше использовать (Подразумевается использование версии Simple-Scada Professional)?
Если у Вас проект с архивацией менее 10000 тегов, то обычно лучше использовать MySQL из-за её бесплатности и из-за наличия примеров в руководстве Simple-Scada. MS SQL сервер лучше по производительности в некоторых операциях, но заметить отличия в производительности можно только в крупных проектах (с большим количеством архивных тегов и SQL-запросов). Simple-Scada при работе с этими СУБД использует соответствующий им синтаксис (он разный для двух СУБД). Но для пользователя это не должно быть важно, ведь пользователь сталкивается с синтаксисом только при выполнении пользовательских SQL-запросов к БД через скрипты (https://simple-scada.com/help/script/workbd.html). Только при выполнении собственных SQL-запросов пользователь должен думать о синтаксисе и правильно составлять запросы.
Цитата: Simple-Scada от 27 февраля 2019, 09:49:31Сейчас для исключения скрипта нужно заключить весь код скрипта между "begin..end." в комментарий следующим способом:
var
A, B: Integer;
begin
(*
A := 1;
B := A + 100;
*)
end.
Раньше для этих целей можно было использовать фигурные скобки. У меня такое ощущение, что в последнем релизе фигурные скобки работать перестали. Неужели это так?
Во всех версиях Simple-Scada используется стандартный синтаксис Delphi/Pascal. Для однострочных комментариев "//", для многострочных допустимы "{...}" и "(*...*)".
Здравствуйте уважаемые! Еще раз спасибо вам за прекрасный продукт! Все достаточно стабильно работает - что даже писать нечего было!
Я к вам с просьбой. Возможно добавить в выпадающий список иконки? Те самые иконки что мы выбираем для кнопок.
Здравствуйте.
Рассмотрим это предложение. Если получится нормально добавить иконки спискам в web, то сможем добавить.
Добрый день!
Есть еще одно пожелание касаемо скриптов.
В данный момент времени из "периодических" скриптов есть только скрипты типов "прошла секунда" и "прошел час", выполнение которых соответственно выполняется раз в секунду и раз в час. В некоторых задачах требуется выполнение скриптов с различной периодичностью (и с периодичностью в несколько минут и с периодичностью в несколько миллисекунд).
Возможна ли реализация функции создания скрипта, периодичность которого будет задаваться вручную?
Здравствуйте.
Для создания скриптов с разной периодичностью можно использовать скрипт с типом "Прошла секунда (https://simple-scada.com/help/script/second-passed.html)". По ссылке можно посмотреть пример скрипта с произвольным интервалом выполнения - меняя константу INTERVAL можно задавать требуемый интервал. Создать скрипт с интервалом менее 1 секунды нельзя и добавление такой возможности в ближайшем будущем не планируется. Если Вам требуется выполнять какие-либо действия с частотой менее 1 секунды, то правильнее всего это реализовать на контроллере.
Добрый день.
Расскажите по подробнее про общее свойство объектов "Доступен". Если это свойство имеет состояние FALSE, то могу ли я управлять видимостью этого объекта (да и другими свойствами) из скриптов? То есть, другими словами, свойство "Доступен" запрещает только обращение к объекту пользователя из клиента или из скриптов свойства тоже становится недоступными?
Просто после перехода на версию 2.3.4.7 те объекты, у которых свойство "Доступен" имело значение FALSE перестали быть доступными из скриптов, хотя раньше всё работало. Не знаю ошибка это или так и задумано.
Здравствуйте.
Свойство "Доступен" влияет только на взаимодействие пользователя с объектом (клик мышью, двойной клик и т.п.). Скрипты никак не связаны с этим свойством.
Для эксперимента установили версию 2.3.4.7, разместили на странице по одному объекту каждого типа. У всех выключили свойство "Доступен". Написали скрипт который меняет различные свойства этих объектов (цвет, угол наклона, видимость, координаты и т.д.) и запустили проект. Смена свойств работает корректно, несмотря на выключенное свойство "Доступен". Можем предположить что у Вас либо код в скрипте не выполняется из-за каких-либо условий в скрипте, либо скрипт прерывается из-за ошибки, либо скрипт основан на локальных переменных (https://simple-scada.com/forum/index.php?topic=805.msg6943#msg6943), которые используются как глобальные, что является ошибкой.
Если не получается выявить причину, то отправьте нам на support@simple-scada.com текущую версию проекта с указанием имён проблемных объектов. Мы быстро назовём точную причину.
Спасибо за разъяснения, буду искать у себя.
Вопрос по версии 2.3.4.7: сделал все согласно инструкции, однако получил какую-то "кашу" - на схеме одни картинки пропали, другие продублировались по всему экрану. Благо, что на сей раз сохранил старую версию проекта, пришлось откатиться на версию 2.3.4.0. Что посоветуете? Очень хотелось бы обновиться на последнюю версию из-за долгожданного появления возможности создания глобальных скриптов.
Трудно что-то посоветовать кроме постепенного перехода на версию 2.3.4.7, она значительно выигрывает у всех предыдущих версий за счет компилятора. Если после перехода что-то начало работать не так как должно, значит в скриптах есть реальные ошибки с использованием локальных переменных как описано в статье (https://simple-scada.com/help/script/index.html?compilerchange.html). Если есть желание - вышлите текущую рабочую версию проекта на support@simple-scada.com, мы переведём проект на новую версию.
UPD: проблема выявлена и исправлена, связана с кэшированием изображений на клиенте. Обновленную версию можно скачать по тем же ссылкам.
Спасибо. проблема с изображениями действительно была решена (благодаря моей переписке с поддержкой). Однако, остались еще кое-какие досадные мелочи в работе скриптов, придется отлавливать. Поэтому пока откатился назад на версию 2.3.4.0.
Добрый день, уважаемые разработчики.
У меня есть предложение по улучшению объекта "Кнопка". А именно по ее действию при нажатии по ней.
Сейчас, если присвоить кнопке булевую переменную и выбрать тип "без фиксации", то при нажатии по кнопке, переменная примет значение True и в этом же значении останется после отпускания кнопки. А мне нужно чтобы при нажатии по кнопке (и ее удержании), переменная имела значение True, а при отпускании кнопки - значение False. Очень удобно в этом плане сделано в ПО EasyBuilder от Weintek - там можно назначить различные действия по нажатию кнопки (см. скрин), у них этот режим называется "Моментально".
Это конечно можно легко сделать на скриптах OnClick и OnMouseUp, но для единичных случаев это допустимо, а когда таких ситуаций много или когда приходится переназначать переменные у объекта, то удобнее иметь обозначенный функционал.
Здравствуйте.
ЦитироватьА мне нужно чтобы при нажатии по кнопке (и ее удержании), переменная имела значение True, а при отпускании кнопки - значение False.
Именно так и работает кнопка "без фиксации". Убедитесь, что точно используется кнопка "без фиксации". Также, возможно у Вашей кнопки только одно состояние, а должно быть два. Если не разберетесь, пришлите нам на support@simple-scada.com проект с указанием кнопки, которая не работает - посмотрим в чем может быть проблема.
Спасибо, разобрался.
Здравствуйте.
Возможно вопрос уже задавался, но все же. Будет ли реализована в дальнейшем возможность запуска редактора на другой машине(удаленно)?
Это крайне необходимо если сервер крутится на виртуалке.
Цитата: deldemo от 08 мая 2019, 11:48:46Здравствуйте.
Возможно вопрос уже задавался, но все же. Будет ли реализована в дальнейшем возможность запуска редактора на другой машине(удаленно)?
Это крайне необходимо если сервер крутится на виртуалке.
Это всегда можно было делать, если на сервере сделать папку с SS общей и запускать редактор оттуда.
Здравствуйте, а можно ли добавить возможность уменьшать шрифт меньше 12-тонкий для текста или для поля. Или ткните, возможно не нашел.
Добрый день.
Можно ли добавить фильтр по именам переменных при импорте их с OPC-сервера?
Здравствуйте.
Цитата: blindtt от 19 мая 2019, 21:30:59Здравствуйте, а можно ли добавить возможность уменьшать шрифт меньше 12-тонкий для текста или для поля. Или ткните, возможно не нашел.
Нет, шрифт 12 является минимально возможным.
Цитата: Миханик от 20 мая 2019, 12:33:27Добрый день.
Можно ли добавить фильтр по именам переменных при импорте их с OPC-сервера?
Фильтрация тегов на этапе импорта невозможна. Если для импорта выделена группа, то при импорте будут взяты все теги которые в неё входят, кроме тегов с недопустимыми типами данных.
ЦитироватьФильтрация тегов на этапе импорта невозможна. Если для импорта выделена группа, то при импорте будут взяты все теги которые в неё входят, кроме тегов с недопустимыми типами данных.
А было бы очень удобно. На данный момент проще создать .csv файл с новыми переменными, чем искать их в списке тегов. Не во всех OPC-серверах имеется возможность группировать теги.
Добрый день!
Не первый раз замечал, что процесс Server.exe постоянно грузит процессор на 100%. Пробовал на разных ПК. Причем проект запущен один, тегов около 100, 2 ОРС сервера. Планируется ли оптимизация потребления ресурсов сервером?
Здравствуйте.
Сервер не должен нагружать процессор. Скорее всего нагрузка является следствие какой-то ошибки. либо следствием грубых ошибок в скриптах. Проверьте почту, мы написали Вам по это проблеме.
Добрый день!
Хотелось бы обращаться к переменной не по имени, а по адресу из OPC сервера, чтоб проще было добавлять и использовать переменные в скриптах для подмены на однотипных объектах. Планируется ли такая возможность?
В OPC сервере и так создаются группы с однотипными элементами, но для подмены приходится их переназывать в СКАДЕ.
И сразу недочет: после замораживания элементов в окне разморозить не работает.
Цитата: MixMix от 31 мая 2019, 01:38:20Добрый день!
Хотелось бы обращаться к переменной не по имени, а по адресу из OPC сервера, чтоб проще было добавлять и использовать переменные в скриптах для подмены на однотипных объектах. Планируется ли такая возможность?
В OPC сервере и так создаются группы с однотипными элементами, но для подмены приходится их переназывать в СКАДЕ.
Поддерживаю. Было бы удобно, если имелась бы функция подобная GetVariableByName, только принимающая в аргумент адрес переменной в OPC.
Здравствуйте.
Адрес переменной допускает символы, которые нельзя применять в именах объектов компилятора, поэтому невозможно обращаться напрямую по адресу к переменной. Единственный вариант решения это функция поиска переменной по адресу GetVaraibleByAddress, как предложил
Neskad. Рассмотрим добавление такой функции.
Цитироватьпосле замораживания элементов в окне разморозить не работает.
Исправим в ближайшем обновлении.
Цитата: Simple-Scada от 01 июня 2019, 10:29:41Здравствуйте.
Адрес переменной допускает символы, которые нельзя применять в именах объектов компилятора, поэтому невозможно обращаться напрямую по адресу к переменной. Единственный вариант решения это функция поиска переменной по адресу GetVaraibleByAddress, как предложил Neskad. Рассмотрим добавление такой функции.
Цитироватьпосле замораживания элементов в окне разморозить не работает.
Исправим в ближайшем обновлении.
Отлично, такую функцию я и имел ввиду!
Отличная СКАДА получается, удобная и без лишних заморочек, спасибо!
Если заморозить объекты, сохранить проект, закрыть и заново его открыть, то эти объекты оказываются размороженными. Мне кажется, логичнее все-таки оставить их в заморозке, чтобы пользователь самостоятельно выбирал когда их разморозить.
bacchus1, исправим в ближайшее время.
Здравствуйте!
Уважаемые разработчики, у вас есть в планах сделать web доступ к серверу Simple-Scada?
Было-бы неплохо реализовать данный функционал.
Удаленный перезапуск проекта через браузер - весьма облегчит жизнь)
Не могу подключить ОРС codesys . CoDeSys.OPC.02 видит , но при нажатии на него выскакивает окошко - Ошибка при попытке подключения к ОРС-серверу для стения списка тегов . Обновляю список - пишет Во время поиска ОРС серверов возникла ошибка ! Убедитесь , что имя целевого компьютера введено верно .
Что посоветуете .
Цитата: serg от 05 июня 2019, 13:19:31Не могу подключить ОРС codesys . CoDeSys.OPC.02 видит , но при нажатии на него выскакивает окошко - Ошибка при попытке подключения к ОРС-серверу для стения списка тегов . Обновляю список - пишет Во время поиска ОРС серверов возникла ошибка ! Убедитесь , что имя целевого компьютера введено верно .
Что посоветуете .
Скорее всего посоветуют попробовать запустить OPC и Скаду от имени администратора. А вообще надо настраивать DCOM, особенно если OPC удаленный.
Здравствуйте.
ЦитироватьУдаленный перезапуск проекта через браузер - весьма облегчит жизнь)
Добавление такого функционала не планируется.
ЦитироватьНе могу подключить ОРС codesys . CoDeSys.OPC.02 видит , но при нажатии на него выскакивает окошко - Ошибка при попытке подключения к ОРС-серверу для стения списка тегов . Обновляю список - пишет Во время поиска ОРС серверов возникла ошибка ! Убедитесь , что имя целевого компьютера введено верно .
Если OPC-сервер находится на удаленном ПК, то как правильно написал Neskad, нужно произвести настройку DCOM. Многие пользователи сталкиваются с проблемами при настройке этого OPC-сервера. Возможно Вам поможет информация из обсуждений: ссылка (http://www.owen.ru/forum/showthread.php?t=23315), ссылка (http://www.owen.ru/forum/showthread.php?t=6520), ссылка (http://www.owen.ru/forum/showthread.php?t=16420). Также, возможно будет полезна информация из этого (https://simple-scada.com/forum/index.php?topic=63.msg4170#msg4170) сообщения.
Цитата: bacchus1 от 03 июня 2019, 08:25:45Если заморозить объекты, сохранить проект, закрыть и заново его открыть, то эти объекты оказываются размороженными. Мне кажется, логичнее все-таки оставить их в заморозке, чтобы пользователь самостоятельно выбирал когда их разморозить.
Мы исправили проблему с заморозкой объектов. Для обновления скачайте и установите повторно последнюю версию 2.3.5.0.
Спасобо за помощь . Разобрался , в чём дело . ОРС codesys не работал . Переустановил sodesys - всё заработало . Теперь разбираюсь с трендами , архивацией .
Почему переменная word в графике достигла половины значения 32767 , а не 65535 ?
Ограничение архива трендов например месяц . Это значит , что данные , записанные больше месяца будут удаляться ? Данные хранятся в компьютере ?
ЦитироватьПочему переменная word в графике достигла половины значения 32767 , а не 65535 ?
На трендах скада отображает те значения, которые она получила от OPC-сервера (а OPC-сервер с контроллера). Видимо от OPC-сервера в скаду пришло значение 32767, поэтому оно и отобразилось.
ЦитироватьОграничение архива трендов например месяц . Это значит , что данные , записанные больше месяца будут удаляться ? Данные хранятся в компьютере ?
Все архивные данные (тренды, сообщения, действия оператора) хранятся в БД на компьютере. Настройки БД задаются в меню "Проект - Настройки - База данных" (https://simple-scada.com/help/manual/index.html?editor-settings.html#set_db). Если включено ограничение на месяц, то скада периодически будет удалять из БД данные старше 1 месяца.
Часто приходится изменять несколько переменных разом, т.к. в редакторе это неудобно, то хотел сделать это через экспорт/импорт тегов.
В эксель поменял нужные параметры тегов (например, настройки архивации), пробую делать импорт, а система пишет, что тегов импортировано 0. Я удалил все теги, импортировал их это файла. Но теперь на мнемосхемах слетели все привязки. Возможно я что-то делаю неправильно, подскажите как правильно редактировать теги через эксель?
Некорректно работает Просмотр ссылок на переменные. Он правильно находит Имя элемента, но расположение указывает на другое окно. Кроме того, желательно бы добавить в эту функция указание ссылок на скрипты.
Пользуюсь версией 2.3.4.7, возможно на последней версии такого уже нет.
Здравствуйте.
ЦитироватьЧасто приходится изменять несколько переменных разом, т.к. в редакторе это неудобно
В редакторе поддерживается групповое редактирование переменных. Для этого требуется выделить нужные переменные нажатием ЛКМ с зажатой клавишей Ctrl или Shift, нажать иконку редактирования переменных(см. скриншот 1), изменить требуемые свойства и нажать кнопку "Применить". Изменения применятся ко всем выделенным переменным. Выделить все переменные группы можно используя сочетание клавиш Ctrl + A. С другими сочетаниями клавиш можно ознакомиться
по ссылке (https://simple-scada.com/help/manual/hot-keys.html).
ЦитироватьВ эксель поменял нужные параметры тегов (например, настройки архивации), пробую делать импорт, а система пишет, что тегов импортировано 0.
Если необходимо, чтобы совпадающие по имени переменные обновили свои свойства, то при импорте из CSV файла нужно нажать кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре. Для удобства, в окошке импорта имеется подсказка(см. скриншот 2).
ЦитироватьЯ удалил все теги, импортировал их это файла. Но теперь на мнемосхемах слетели все привязки. Возможно я что-то делаю неправильно, подскажите как правильно редактировать теги через эксель?
Для редактирования переменных их не нужно удалять. Отредактировать переменные можно либо через редактор переменных, либо через импорт из CSV как это описано выше.
ЦитироватьНекорректно работает Просмотр ссылок на переменные. Он правильно находит Имя элемента, но расположение указывает на другое окно.
Обновитесь до версии 2.3.5.0, там этой проблемы не должно быть.
Пара замечаний и пара предложений.
Замечания:
Функция VarType для переменных типа Variant не может отличить Single от TDateTime - для обоих выдаётся результат 5.
После ввода значения в ячейку таблицы, для повторного ввода надо трижды щёлкнуть по ячейке - так и задумано?
Предложения:
Нельзя-ли добавить в настройки трендов опцию "диапазон времени по умолчанию". Сейчас после перезапуска проекта постоянно приходится переключать тренды в масштаб 24 часа.
Ну и совсем уж прекрасно будет, если объекты с возможностью ручного ввода значений (те-же TM_Field и TM_TableCell) будут иметь свойство аналогичное Tag, только с типом TObject. Правда это уже из области "слишком больших хотелок", наверное.
Сделайте пожалуйста кнопку Скопировать для сообщений и групп сообщений.
Неудобно копировать каждое сообщение через Дублировать-Вырезать-Вставить. И причем вставить нельзя несколько раз, нужно повторять все действия заново.
Кроме того, было бы хорошо немного переработать систему сообщений. Было бы удобнее иметь несколько полей в каждом сообщений: например, объект, установка, текст сообщения. Это бы сильно облегчило жизнь, так как в большинстве случаев несколько однотипных установок и делается copypaste с исправлением изменяющихся наименований. А так приходится все сообщения исправлять вручную. Кроме того это позволит в будущем применять сортировки и т.п. по полям.
Цитата: Neskad от 13 июня 2019, 12:46:57Функция VarType для переменных типа Variant не может отличить Single от TDateTime - для обоих выдаётся результат 5.
Верно, т.к. TDateTime это Double (http://www.delphibasics.ru/TDateTime.php). Так выглядит объявление типа:
type TDateTime = type Double;Поэтому такой код является корректным:
var
V: Variant;
D: Double;
DT: TDateTime;
begin
V := 12.34;
D := 12.34;
DT := D; // или DT := V;
end.Цитата: Neskad от 13 июня 2019, 12:46:57После ввода значения в ячейку таблицы, для повторного ввода надо трижды щёлкнуть по ячейке - так и задумано?
Событие двойного клика мешало, исправили. Скачать обновленную версию 2.3.5.0 можно по прежним ссылкам.
Цитата: Neskad от 13 июня 2019, 12:46:57Нельзя-ли добавить в настройки трендов опцию "диапазон времени по умолчанию". Сейчас после перезапуска проекта постоянно приходится переключать тренды в масштаб 24 часа.
Ну и совсем уж прекрасно будет, если объекты с возможностью ручного ввода значений (те-же TM_Field и TM_TableCell) будут иметь свойство аналогичное Tag, только с типом TObject. Правда это уже из области "слишком больших хотелок", наверное.
Рассмотрим для будущих обновлений.
Цитата: bacchus1 от 14 июня 2019, 17:42:51Сделайте пожалуйста кнопку Скопировать для сообщений и групп сообщений...
Мы планируем серьезную доработку раздела сообщений в этом году. Многое будет улучшено, для однотипных сообщений можно будет использовать систему шаблонов.
Добрый день!
Не знаю ошибка это или нет, но при экспорте переменных в CSV не выгружаются два поля: "Сообщения о нарушении границ" и "Зона нечувствительности (%)".
Соответственно при импорте этих полей тоже нет. Добавьте, пожалуйста, этот функционал, а то не хочется 10000 тегов лопатить :-\
Здравствуйте.
В ближайшем обновлении добавим недостающие колонки.
Можно ли в журнале сообщений сделать отображение данных не за один день, а за выбранный период?
Сейчас возможен просмотр сообщений только по дням. Мы планируем улучшение системы сообщений в этом году, в него будет включен выбор произвольных интервалов при просмотре архивных сообщений.
Здравствуйте! Уважаемые разработчики добавьте пожалуйста интегрированный калькулятор.(Думаю это не составит большого труда)
Просто если запускать через вызов родной калькулятор винды, появляется возможность его свернуть под скаду, из-за этого через неделю около 100 запущенных процессов калькулятора.
Здравствуйте. Калькулятор в ближайшем будущем скорее всего не внедрим в скаду т.к. есть много более популярных масштабных вопросов, которые мы постараемся решить сначала.
Цитата: deldemo от 05 июля 2019, 12:55:26...
появляется возможность его свернуть под скаду, из-за этого через неделю около 100 запущенных процессов калькулятора.
...
Цитата: Simple-Scada от 10 июля 2019, 21:11:59...
Калькулятор в ближайшем будущем скорее всего не внедрим в скаду
...
Рабоче-крестьянский способ борьбы с 100500 экземплярами калькулятора:
- перед запуском удалить все прочие экземпляры:
RunApplication(GetClientName, 'TASKKILL', '/IM Calculator.exe /F /T');
- выдержать паузу для удаления всех экземпляров, иначе, с некоторой вероятностью, может уничтожится и запускаемый вновь экземпляр;
- запустить калькулятор.
При выполнении удаления на некоторое время появляется окно командной строки. Можно блокировать появление окна при помощи сценария WSH.
Пример во вложении.
pan2000 Огромное спасибо за помощь!!!.
P.S. Я правда уже накатал калькулятор в самой S-S
Добрый день , может был такой вопрос , но повторюсь , а нельзя в будущих версиях реализовать пару вещей , первое это прямое редактирование текста , таблиц и т.д., (т.е. не где то в углу , а непосредственно элемент) и второе увеличение не по центру экрана , а именно того участка где находится курсор , неудобно работать с мелкими деталями ,когда наезд есть по центру .
А почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?
Цитата: lipvasko от 01 августа 2019, 09:35:09Добрый день, может был такой вопрос, но повторюсь, а нельзя в будущих версиях реализовать пару вещей, первое это прямое редактирование текста, таблиц и т.д., (т.е. не где то в углу, а непосредственно элемент) и второе увеличение не по центру экрана, а именно того участка где находится курсор, неудобно работать с мелкими деталями, когда наезд есть по центру.
Здравствуйте. Прямое редактирование будет добавлено в будущих обновлениях. Про увеличение также рассмотрим вопрос (не забывайте, что перемещать зону просмотра можно используя клавиши W, A, S, D или удерживая нажатым колесико мыши).
Цитата: Миханик от 02 августа 2019, 09:35:03А почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?
Постараемся добавить в будущих обновлениях.
Цитата: pan2000 от 04 августа 2019, 01:20:26Во вложении пример редактирования таблицы из 50 строк (с прокруткой) с числовым и текстовым столбцами.
Если мы правильно поняли, то
lipvasko говорил о прямом редактировании текста в Редакторе, на этапе разработки, чтобы не приходилось редактировать текст через инспектор объектов (https://simple-scada.com/help/manual/object-inspector.html), а можно было просто кликнуть объект и сразу редактировать текст.
Также, касаемо таблиц, можно ведь у колонок или ячеек включить свойство "Редактирование" -> "разрешить", тогда можно будет менять значения в ячейках во время работы проекта, аналогично полям.
Цитата: Simple-Scada от 04 августа 2019, 09:56:45Цитата: pan2000 от 04 августа 2019, 01:20:26Во вложении пример редактирования таблицы из 50 строк (с прокруткой) с числовым и текстовым столбцами.
Если мы правильно поняли, то lipvasko говорил о прямом редактировании текста в Редакторе, на этапе разработки, чтобы не приходилось редактировать текст через инспектор объектов (https://simple-scada.com/help/manual/object-inspector.html), а можно было просто кликнуть объект и сразу редактировать текст.
Более актуальна, на мой взгляд, работа с таблицей на этапе исполнения:
1. Добавить метод и свойство для смещения первой строки экранной формы относительно таблицы.
2. Добавить метод и свойство для индекса подсвечиваемой строки таблицы.
3. Для объекта "Поле" ввести событие "Пользователь завершил редактирование" аналогичное OnDoneInput, но вызываемое безусловно изменения данных.
Пункт 3 позволит реализовать совмещение полей для вывода одной переменной и ввода другой.
И, для полноты счастья, добавить запросы пользователя, т.е возможность вызывать скрипт из скрипта (например, "мышинных"). Что должно позволить реализацию сложных и редко используемых "слоеных" объектов без цепочки нажатий ЛКМ.
ЦитироватьТакже, касаемо таблиц, можно ведь у колонок или ячеек включить свойство "Редактирование" -> "разрешить", тогда можно будет менять значения в ячейках во время работы проекта, аналогично полям.
Но только кроме включения свойства, еще необходимо и выбрать переменную для ячейки. Но, для большой статической таблицы это проблематично, а для динамической (загруженной из БД) - невозможно.
Постараемся в будущем дать возможность редактирования ячеек без привязки к переменным.
Цитировать2. Добавить метод и свойство для индекса подсвечиваемой строки таблицы.
Это свойство RowIndex (https://simple-scada.com/help/script/trowindex.html).
Всем привет.
На своём предприятии мы используем лицензию СС2 на 1000 тегов. Серверная часть крутится на виртуальном сервере Microsoft Hyper V. Подключаемся к нему с помощью Radmina, так как именно в нём достигается наибольшая производительность (FPS) в редакторе. Но всё равно, такая производительность не идёт ни в какое сравнение работы на физической машине. Можно ли сделать так, чтобы работу над проектом в редакторе делать на физической машине, а исполнение проекта (серверную часть) производить на виртуальном машине? Это было бы оптимально для нас и, возможно, для кого-нибудь ещё, кто использует виртуализацию.
Здравствуйте.
Можно вести разработку проекта на другом ПК используя бесплатную версию Demo-Time (https://simple-scada.com/download). После внесения изменений в проект, папку с проектом необходимо скопировать на серверный ПК и перезапустить проект на сервере Simple-Scada. Таким образом ведут разработку проекта большинство пользователей использующих виртуализацию.
В случае, если подключение клиента Demo-Time происходит к лицензионному серверу, не прерывается ли связь через час? Как вообще происходит взаимодействие Demo-Time клиента с лицензионным сервером?
"Demo-time клиент" ничем не отличается от любого другого клиента, так как учет клиентов ведет сервер, и количество подключенных клиентов зависит напрямую от приобретенной лицензии.
Допустим, если у Вас максимально возможное кол-во клиентов равно 3, а подключено всего 2 клиента, то, подключаясь через "Demo-time клиент", вы будете работать на абсолютно равных условиях с остальными клиентами. Но если у Вас подключено 3 клиента, из 3-х возможных, то Вы просто не сможете подключиться к серверу.
Если вести разработку на другой машине и потом копировать проект на удалённый виртуальный сервер, то:
1) Как быть с переменными, которые должны быть добавлены из OPC-сервера, расположенного на той же машине, где сервер скады? На другой физической машине я их просто не увижу.
2) Как быть с базой данных, которая расположена на на той же машине, где сервер скады?
Здравствуйте
Цитировать1) Как быть с переменными, которые должны быть добавлены из OPC-сервера, расположенного на той же машине, где сервер скады? На другой физической машине я их просто не увижу.
2) Как быть с базой данных, которая расположена на на той же машине, где сервер скады?
Организовать удаленное подключение к OPC серверу при помощи DCOM. https://simple-scada.com/help/manual/index.html
Это я знаю, что можно так делать. Но дело в том, что при добавлении переменных с удалённого OPC-сервера адрес у них будет начинаться с IP адреса компьютера, на котором они расположены. А если они расположены там же, где и сам сервер скады (и если их добавлять локально), то адрес будет будет начинаться с Localhost. Возникает вопрос, зачем обращаться к переменным через сеть, когда они вот, доступны локально.
Разницы по скорости Вы не заметите, да ее и не будет вовсе(смотри вложение). В удобстве, да! Тут при переносе сервера на другую машину, с другим IP, возникнут проблемы. Как вариант решения, можно переписать в редакторе путь к переменной ручками, изменив IP ###.###.###.### на localhost.
Здравствуйте.
ЦитироватьЕсли вести разработку на другой машине и потом копировать проект на удалённый виртуальный сервер, то:
1) Как быть с переменными, которые должны быть добавлены из OPC-сервера, расположенного на той же машине, где сервер скады? На другой физической машине я их просто не увижу.
2) Как быть с базой данных, которая расположена на на той же машине, где сервер скады?
1. Можно либо установить на ПК, на котором планируется вести разработку проекта тот же OPC сервер, что используется на сервере(так делает большинство пользователей), либо использовать способ с удаленным подключением предложенный Deldemo - разницы в скорости не будет - при переносе проекта на сервер, работа с OPC-сервером будет выполняться локально(т.к. IP адрес ПК и OPC-сервера будут совпадать). Как правильно отметил Deldemo, разница будет только при переносе проекта на сервер с другим IP или смене IP на сервере - тогда нужно будет вручную сменить OPC-сервер на локальный.
2. Если при разработке проекта Вам обязательно требуется актуальная версия БД, то удобнее всего вести разработку на сервере, поэтому если Вас не устраивает работа с проектом через виртуальную машину, то можно подумать о переходе на физический ПК сервер, тогда все перечисленные неудобства будут исключены. Если при разработке проекта БД требуется редко, то можно периодически копировать (https://simple-scada.com/help/manual/mysql-backup-db.html) ее на ПК для разработки проекта.
Поступили следующим образом - запускаю редактор прямо на виртуальном сервере через радмин, добавляю переменные с локальных OPC-серверов, сохраняю проект. Для дальнейшего редактирования проекта запускаю редактор уже на физической машине и редактирую проект. Переменные с сетевых OPC-серверов можно добавлять откуда угодно. Чтобы не копировать проект туда-сюда, сделали локальную символьную ссылку на сетевую папку виртуального сервера. Теперь, все изменения в проекте видны в обоих редакторах, главное, не запускать их одновременно. И необязательно использовать DEMO-time версию, установил имеющуюся лицензионную копию, всё работает и так. На физической машине я использую только редактор и клиент, сервер запускаю на виртуальной машине с USB-ключом.
Здравствуйте.
ЦитироватьЧтобы не копировать проект туда-сюда, сделали локальную символьную ссылку на сетевую папку виртуального сервера.
Следует учитывать, что при таком способе при сбоях или проблемах в сети в момент сохранения проекта, проект может быть поврежден без возможности его восстановления. Поэтому рекомендуем делать резервные копии проекта.
Добрый день.
Есть два пожелания.
1) К приложению Server, раздел Проекты добавить кнопку Обновить список. При это сканируется директория Projects на наличие новый проектов.
Зачем это нужно: например, у меня на сервере крутятся уже несколько проектов, которые нельзя останавливать (или очень не желательно), а я создаю новый проект и чтобы он увиделся сервером, приходится его перезапускать.
2) Для Клиента. Хотелось бы, чтобы при деактивации свойства Enabled у объектов, они как-то это отображали - или меняли цвет на затемненный или еще как. Я сейчас просто поверх объекта создаю Shape полупрозрачный, но это рутина - приходится писать лишние скрипты на события. Хотелось чтобы система сама все это делала.
Здравствуйте.
Добавим в будущих обновлениях.
Здравствуйте!
Подскажите пожалуйста, система отчетов больше не поддерживается Windows XP?
Здравствуйте. Новые версии системы отчетов требуют Microsoft .NET Framework не ниже чем 4.5, но в XP он не поддерживается.
:'( прийдется уходить на отдельный сервер для SS
Вопрос к разработчикам.
Планируются ли какие-либо работы с масштабированием интерфейса системы?
Поясню,- монитор 3840х2160 масштаб виндовс 200%. Все программы, даже старые, не поддерживающие нормальное масштабирование, отображаются нормально (скриншот). Окно настройки SS2 с "рыхлыми" шрифтами. Но это еще ничего, можно пережить. Аналогичная ситуация с сервером и редактором отчетов, что уже не есть хорошо. С клиентом и редактором все еще запущеннее,- выставляю в опциях разрешение, например, 1600х1024, ожидаю маленькое окно в четверть экрана, получаю большое окно почти на весь экран (предпологаю с разрешением 3200х2048). Ок, пусть будет так, выбираю "Full screen", ожидаю понятно что, получаю левую верхнюю четверть редактора(клиента) на весь экран.
Шрифты в утилите настроек / редакторе отчетов / редакторе изображений поправим и улучшим адаптацию по размерам в ближайшее время.
ЦитироватьС клиентом и редактором все еще запущеннее,- выставляю в опциях разрешение...
Клиент и редактор это нестандартные приложения с DirectX / OpenGL рендером. Поэтому лучше всего просто отключить для них масштабирование (опция масштабирования бессмысленна для DirectX / OpenGL контента). Для этого нужно кликнуть ярлык правой кнопкой мыши и открыть свойства. В окне на вкладке "Совместимость" кликнуть кнопку "Изменить параметры высокого DPI" и в открывшемся окне включить флажок "Переопределите режим масштабирования высокого разрешения" (там же рядом, в раскрывающемся списке должно быть выбрано "Приложение"). Это для Windows 10. Для других ОС могут быть незначительные отличия в именах опций.
Решает ли это проблему с редактором и клиентом? Или интерфейс становится слишком мелким? Для сервера можно попробовать то же самое.
Спасибо, так лучше.
Клиент почти все идеально, только хинты сильно мелкие.
В редакторе мелкий интерфейс, что в принципе пол-беды, скрипты мелкие, даже с увеличенным шрифтом, что намного хуже. В остальном все нормально.
В сервере при таких настройках все мелкое, вернул как было. Рыхлость шрифтов что в сервере, что в опциях особо не мешает.
В ближайшее время сделаем несколько тестов и внесём доработки во все приложения скады. Скорее всего получится сделать так, чтобы можно было обойтись без опции "Изменить параметры высокого DPI", приложения сами будут делать как нужно.
Для утилиты настроек / редактора отчётов / редактора изображений включим масштабирование по DPI. Это должно полностью решить проблему со шрифтами, да и все остальные проблемы. А вот для редактора / сервера / клиента просто "включить опцию" не получится, нужно внедрять возможность увеличения всех элементов интерфейса и чтобы при этом тексты и сами компоненты не перекрывали друг друга (в основном касается редактора). На это потребуется время. Постараемся дать решение в ближайшем обновлении.
UPD: в обновлении 2.5.9.0 появилась возможность задать масштаб интерфейса редактора.
Вопрос следующий: работает ли скада с изображениями большого разрешения или имеется какое-либо ограничение на размер картинки, которую можно загрузить в редактор, как объект "Изображение"? Как скада дружит с Photoshop?
Была такая мысль, что весь фон и прочую графику отрисовать в Photoshop и AI, а потом просто скопировать в скаду как PNG и добавить управляющие элементы. Но случился глюк, что не создавался объект "Изображение" с картинкой PNG из Photoshop разрешением около 1920х924, причем это приводило к вылету SS, т.е приходилось перезапускать редактор. Решил проверить свою гипотезу и скачал с гугла картинку градиента разрешением около 3000х2000, что-то такое. Скада вставила эту картинку как маленький прямоугольник, причем с заливкой не такой, какая должна была быть, а просто белый. Причем иконки, которые 160х160 были у меня PNG, скада вставляет хорошо и почти во весь экран) Вылета не было, но с файлами PNG из Photoshop так и не захотела работать.Собственно вопрос был озвучен выше.
Второй вопрос, а скорее предложение: добавьте в палитру цветов возможность хранить свои цветовые наборы. Становится немного запарно каждый раз вводить RGB параметры для каждого объекта, когда есть общая цветовая гамма и стиль. Конечно можно копипаст делать, но это уже совсем другая история. В эту же историю можно добавить HEX поле для ввода кода цвета. Намного быстрее тогда работа с цветом пойдет, особенно если пользуешься Adobe Color.
Здравствуйте.
Максимальный допустимый размер изображения определяется только параметрами используемой на Вашем ПК видеокарты. Чем слабее видеокарта, тем меньший максимальный размер изображения она может отрисовать на экране. Посмотреть максимальный размер для Вашей видеокарты можно в логах Simple-Scada. Откройте папку "Logs\" и посмотрите файл "Editor-log.txt" (редактор в этот момент должен быть закрыт, иначе просмотреть не получится). Найдите там строку с параметром "GL_MAX_TEXTURE_SIZE" или "D3D9_MAX_TEXTURE_SIZE". Это и есть максимальный размер изображения для Вашей видеокарты. Например на наших ПК он равен 16384, т.е. изображение не должно быть больше чем 16384x16384 пикселей.
Также, бывает что видеокарта не может работать в полную силу из-за некорректных драйверов. Следует убедиться, что у Вас установлена последняя версия видеодрайвера с официального сайта производителя видеокарты и при необходимости обновить его.
Имеется возможность добавить в редактор свои изображения и анимацию в формате ".png" (
с глубиной цвета 32 бита или ниже) в папку "\Simple_Scada\Pictures", после чего они станут доступны в редакторе. Для создания изображений можно использовать любой графический редактор поддерживающий сохранение в ".png".
Цитироватьне создавался объект "Изображение" с картинкой PNG из Photoshop разрешением около 1920х924, причем это приводило к вылету SS, т.е приходилось перезапускать редактор
Пришлите нам на support@simple-scada.com изображение, которое приводило к описанной проблеме.
ЦитироватьРешил проверить свою гипотезу и скачал с гугла картинку градиента разрешением около 3000х2000, что-то такое. Скада вставила эту картинку как маленький прямоугольник, причем с заливкой не такой, какая должна была быть, а просто белый. Причем иконки, которые 160х160 были у меня PNG, скада вставляет хорошо и почти во весь экран
Пришлите нам эти картинки для проверки.
ЦитироватьВторой вопрос, а скорее предложение: добавьте в палитру цветов возможность хранить свои цветовые наборы.
Учтем данное пожелание.
azrael454, мы проверили Ваши изображения. Одно из них имеет неправильный внутренний заголовок (PNG Header), поэтому открывается не всеми редакторами, например оно не открылось даже через Photoshop CS6. Второе имеет глубину цвета 48 бит (по 16 бит на канал), что недопустимо и бессмысленно, такое изображение только занимает лишнее место на жестком диске. Создайте обычное .png изображение с глубиной цвета 8 бит на канал (т.е. всего 32 бита) и используйте его. Либо откройте существующее изображение и измените глубину цвета на 8 бит на канал и сохраните его. В Photoshop для смены глубины цвета нужно использовать меню "Изображение" - "Режим" - "8 бит/канал". А при создании нового изображения нужно выбирать Цветовой режим: RGB -> 8 бит.
Да, спасибо, Сам подумал, что проблема в глубине цвета. Спасибо за ответ.
Думаю, что если добавить возможность к трендам прицеплять контрольные точки, которые связаны с архивируемой переменной, станет намного удобнее читать графики, т.е переменная изменяется с интервалом 5 сек, соответственно точки на тренде тоже расставляются через 5 сек на величину значения. Думаю, что это удобно.
azrael454, не совсем понятно зачем графику точки? Ведь на графике можно просто кликнуть в любое место и просмотреть значение которое принимала переменная в этой точке. Вы говорите про архивные тренды (https://simple-scada.com/help/manual/client-trends-view.html) или о чем-то другом?
Цитата: Simple-Scada от 19 сентября 2019, 15:40:36azrael454, не совсем понятно зачем графику точки? Ведь на графике можно просто кликнуть в любое место и просмотреть значение которое принимала переменная в этой точке. Вы говорите про архивные тренды (https://simple-scada.com/help/manual/client-trends-view.html) или о чем-то другом?
Я говорю про временные тренды. Так как окно для просмотра не совсем большое, то ближние друг к другу графики сложно бывает отличить. Маленькие точки могут помочь в этом. К тому же если добавить редактирование их цвета, формы, то это существенно увеличит вариативность отображения трендов.
Например, у меня есть большое количество трендов, из которых я хочу сделать циклограмму работы установки. Допустим, на циклограмме разнесены ступенчатые тренды срабатывания клапанов. Графиков достаточно много, и выбирать для каждого цвет, так чтобы это было удобно смотреть, та еще мука. На примере одного из проектов это выглядит так (см приложение). Я разделил объекты на смысловые группы, выбрал всего 6 цветов за основу, а разделение между трендами сделал точками разного цвета.
Для архивных трендов это может быть и не существенно, по выше обозначенным причинам, но для временных трендов это может пригодиться.
Добрый день.
Прошу реализовать функцию фильтрацию значений внешних тегов, например, фильтром Калмана (очень простой в реализации). Пользователь выбирает активировать функцию фильтрации или нет и задает коэффициент Калмана для каждой переменной.
Зачем это нужно:
Применяется в системах мониторинга, когда данные получаешь не с контроллера, а со сборщиков, которые не умеют обрабатывать сигнал и получается что значение очень сильно скачет.
Конкретно сейчас стоит задача измерения уровня в больших резервуарах и там уровень не может плавать плюс/минус метр.
Да частенько и температурные датчики выдают очень большой разброс значений.
Здравствуйте.
В ближайшем будущем скорее всего не реализуем, но позже - возможно. При использовании внутри скады недостаток будет в том, что при каждом перезапуске проекта фильтр будет начинать свою работу заново, хотя правильнее было бы, если бы он работал в течение всего процесса непрерывно (но это возможно только на контроллере). Хорошо применить фильтр можно было бы к накопленным архивным данным, например при отображении тренда переменной.
UPD: приняли решение в ближайшее время добавить фильтр Калмана и несколько других фильтров.
Добрый день
Есть ли возможность в СС2 реализовать следующее..для множества однотипных объектов, создать одно универсальное окно, вызываемое при нажатии ЛКМ на объекте с подстановкой индивидуальной теговой группы. Спасибо.
Добрый день.
Уже на двух объектах при настройки получателей Телеграм сообщений вываливается ошибка (скрин).
Что посоветуете, кроме VPN?
Здравствуйте.
Цитата: VladD от 02 октября 2019, 10:05:58Есть ли возможность в СС2 реализовать следующее..для множества однотипных объектов, создать одно универсальное окно, вызываемое при нажатии ЛКМ на объекте с подстановкой индивидуальной теговой группы. Спасибо.
Можно создать окно и подменять у объектов в окне переменные через скрипт (пример подмены здесь (https://simple-scada.com/help/script/varsubs.html)). Но такой подход не подойдёт для проектов с множеством клиентов, ведь окно будет одно для всех клиентов и подмена будет происходить сразу на всех клиентах. Идеальный вариант решения этой задачи - использовать шаблонные окна, которые сейчас в разработке и будут доступны в одном из будущих обновлений.
Цитата: Миханик от 02 октября 2019, 12:26:11Уже на двух объектах при настройки получателей Телеграм сообщений вываливается ошибка (скрин). Что посоветуете, кроме VPN?
Есть предположение связанное с блокировкой некоторых прокси-серверов Telegram. Мы обновили прокси сервер, обновление отправили Вам на почту. Отправка должна работать стабильно.
На почту ничего не пришло. Повторите, пожалуйста, на mvp(собака)vpa-dv(точка)ru
Отправили.
Спасибо, заработало!
Добрый день!
Есть несколько пожеланий:
1. Подумайте над тем, чтобы публиковать roadmap по внесению новшеств в СС2. Ошибки и баги, найденные пользователями разумеется включать не нужно. Сейчас, по моему мнению, есть некоторые недостатки в функционале и хотелось куда будет двигаться развитие продукта.
2. Хотелось бы принять участие в выборе направления развития продукта. Предлагаю совместно с пользователями выбирать какой функционал необходимо доработать и расставлять приоритет реализации.
Конкретно меня больше всего сейчас волнует реализация системы сообщений и отсутствие раздельной для клиентов реализации перепривязки тегов для окон.
Здравствуйте.
Цитата: bacchus1 от 07 октября 2019, 09:40:371. Подумайте над тем, чтобы публиковать roadmap по внесению новшеств в СС2. Ошибки и баги, найденные пользователями разумеется включать не нужно. Сейчас, по моему мнению, есть некоторые недостатки в функционале и хотелось куда будет двигаться развитие продукта.
2. Хотелось бы принять участие в выборе направления развития продукта. Предлагаю совместно с пользователями выбирать какой функционал необходимо доработать и расставлять приоритет реализации.
Конкретно меня больше всего сейчас волнует реализация системы сообщений и отсутствие раздельной для клиентов реализации перепривязки тегов для окон.
Мы формируем список задач по запросам от пользователей, как Вы и описали. Каждый запрос по почте или на форуме вносится в список. Затем берём самые популярные запросы, выбираем из них наиболее полезные (для всех пользователей) + учитывается также время на реализацию. В таком порядке и решаем запросы. Если появляется информация об ошибках, то они решаются в первую очередь. Публиковать список пока не планируем, возможно в будущем.
Сейчас первоочередная задача: разработка системы шаблонных объектов, окон и сообщений (с такой системой не придётся перепривязывать теги через скрипты).
Здравствуйте.
Цитата: Simple-Scada от 07 октября 2019, 09:56:48Сейчас первоочередная задача: разработка системы шаблонных объектов, окон и сообщений (с такой системой не придётся перепривязывать теги через скрипты).
А зачем? Сейчас Вами занята ниша СКАД "для программистов".
Перепривязка работает отлично. Делается шаблонное окно. Редактор автоинкрементом меняет имена.
Очень большой плюс данноё СКАДы - доступ из скриптов к системным событиям, свойствам объектов и переменным.
Хотите сделать ещё одну СКАДу "для КИПовцев"? С привязкой через клемники/автопривязкой?
По опыту работы не хватает:
1Выгрузки/загрузки страниц (подстраниц и окон)
2 Выгрузки/загрузки объектов (нарисовал объект составной, сгруппировал и поместил в библиотеку или внешний файл)
3 Выгрузки/загрузки сообщений (так же в Excel набил список сообщений и загрузил)
4 Возможности параллельной работы в редакторе нескольких человек (ускорение работы с проектом)
ЦитироватьПерепривязка работает отлично. Делается шаблонное окно. Редактор автоинкрементом меняет имена.
Подмена переменных происходит на всех клиентах одновременно. Допустим один пользователь открыл окно, в окно подставились переменные vrA1, vrA2 и пользователь работает с этим окном. К проекту подключается второй пользователь, который открывает то же окно, но с подстановкой других переменных vrB1 и vrB2. Переменные подставятся на всех клиентах и уже оба пользователя будут работать с vrB1 и vrB2, хотя первый пользователь этого не планировал. Т.е. текущая система совершенно не подходит для систем в которых больше 1 клиента и обязательно нужна система шаблонов.
ЦитироватьХотите сделать ещё одну СКАДу "для КИПовцев"? С привязкой через клемники/автопривязкой?
Будет удобная система с подменой имён. Позже опишем её подробно.
Цитата: Simple-Scada от 07 октября 2019, 11:55:20Подмена переменных происходит на всех клиентах одновременно. Допустим один пользователь открыл окно, в окно подставились переменные vrA1, vrA2 и пользователь работает с этим окном. К проекту подключается второй пользователь, который открывает то же окно, но с подстановкой других переменных vrB1 и vrB2. Переменные подставятся на всех клиентах и уже оба пользователя будут работать с vrB1 и vrB2, хотя первый пользователь этого не планировал. Т.е. текущая система совершенно не подходит для систем в которых больше 1 клиента и обязательно нужна система шаблонов.
Это если одно окно... нужно просто пересоздавать экземпляры.
Вспомнил чего ещё очень не хватает.
1 Поиска сквозного по скриптам (по тексту всех скриптов) и по переменным (при неудачном экспорте можно потерять переменную)
Цитироватьнужно просто пересоздавать экземпляры.
Если бы всё было так просто, мы бы уже давно "пересоздавали экземпляры" окон. Именно это и должна делать система шаблонов - временно (по запросу клиента) создавать отдельные экземпляры окна со своими подстановками для каждого клиента. В текущей реализации это просто невозможно, т.к. каждое окно регистрируется на этапе компиляции со своим уникальным именем которое ему дали на этапе разработки проекта (с которым к нему можно обратиться через скрипты), соответственно хранится в оперативной памяти сервера в одном экземпляре, все изменения в окне проецируются на все клиенты, т.к. это один объект (то же касается и объектов в окне). Т.е. принцип тот же что и обычных объектов на мнемосхемах. С системой шаблонов этот вопрос решается. Использовать скрипты для подстановок (как это было раньше) тоже не потребуется.
ЦитироватьПоиска сквозного по скриптам (по тексту всех скриптов) и по переменным (при неудачном экспорте можно потерять переменную)
Добавим в будущих обновлениях.
Цитата: Dmitry_Impuls от 07 октября 2019, 11:43:20По опыту работы не хватает:
1Выгрузки/загрузки страниц (подстраниц и окон)
2 Выгрузки/загрузки объектов (нарисовал объект составной, сгруппировал и поместил в библиотеку или внешний файл)
Для меня первого пункта точно не хватает, ну второй как бы и без него можно, но с ним конечно удобнее. А вот загрузка/выгрузка страниц сократит время в разы.
Цитата: Simple-Scada от 07 октября 2019, 18:54:09Цитата: Dmitry_Impuls от 07 октября 2019, 11:43:20нужно просто пересоздавать экземпляры.
Если бы всё было так просто, мы бы уже давно "пересоздавали экземпляры" окон.
Не вы. При разработке.
Делается окно. Именование объектов на окне и имена окон подбираются так, чтоб автоинкрементом можно было размножить.
Win1 -> btnOk1/btnCancel1/Text1 Копируем окна...
Win2 -> btnOk2/btnCancel2/Text2
....
WinN -> btnOkN/btnCancelN/TextN
N мало... надо I ... ;D
Cope/Paste
WinI -> btnOkI/btnCancelI/TextI
Объекты по клику вызывают окно Win(_Номер_объекта_|_Имя_объекта_+номер)
Событие OnClick
var
aObject: TM_Window;
begin
aObject := GetWindowByName('Win'+
StringReplace(Sender.Name, '_', '',[rfReplaceAll, rfIgnoreCase]));
if aObject <> nil then
aObject.ShowClient(GetClientName);
end.
у окна событие OnShow привязывает переменные к элементам окна...
Оно может быть разное для разных типов объектов и окон...
Всё...
P.S. Занятно... пока ответ писал Миханик сообщение добавил... цитату подменили...
Еще бы хотелось одну доработку: в поле выводится значение тега формата 0.##. Так вот в зависимости от дробной части после запятой может быть 0, 1 или 2 цифры. Из-за это все значения на мнемосхеме прыгают и это сильно напрягает операторов. Сделайте, чтобы число отображалось строго по формату, то есть не 5,5, а 5,50.
Цитата: bacchus1 от 09 октября 2019, 08:49:55Сделайте, чтобы число отображалось строго по формату, то есть не 5,5, а 5,50.
Сейчас так и отображается, строго в соответствии с форматом. См. описание свойства Формат в руководстве (https://simple-scada.com/help/manual/variable-format.html). Вам нужен формат 0.00
ЦитироватьЭто если одно окно... нужно просто пересоздавать экземпляры.
И сколько по Вашему нужно создать таких экземпляров, если клиентов много? Какой шанс допустить ошибку в формировании и парсинге имен переменных? Плюс дополнительная возня, если необходимо в окне что-то поменять или доработать.
И речь идет не только о шаблонах окон.
Цитировать2 Выгрузки/загрузки объектов (нарисовал объект составной, сгруппировал и поместил в библиотеку или внешний файл)
Для этой задачи возможно тоже будет удобнее использовать шаблоны.
ЦитироватьСейчас Вами занята ниша СКАД "для программистов". Хотите сделать ещё одну СКАДу "для КИПовцев"?
Какая цель преследуется? Покодить? Берем любую IDE, ставим СУБД, тащим готовые исходники OPC-клиента и программируем до посинения. Есть openSource-проекты, которые можно взять за основу.
ЦитироватьОчень большой плюс данноё СКАДы - доступ из скриптов к системным событиям, свойствам объектов и переменным.
Полностью поддерживаю!
А так же использование SQL, к которой можно обратиться как угодно и откуда угодно.
Но самый главный плюс - желание разработчиков совершенствовать свой продукт исходя из пожеланий пользователей.
Возможно ли добавить функцию получения статуса отправки последнего Телеграм-сообщения?
Чтобы понять, что произошла ошибка при отправке и отправить сообщение другим путем.
Вижу, что в логе сервера ошибка отправки отображается, значит ее статус можно получить и поработать с ним.
Миханик в ближайшее время скорее всего нет, из-за большого количества других задач. Позже постараемся добавить новые типы событий в скрипты касающиеся не только телеграм.
Цитата: Genrosol от 09 октября 2019, 11:39:37ЦитироватьЭто если одно окно... нужно просто пересоздавать экземпляры.
И сколько по Вашему нужно создать таких экземпляров, если клиентов много? Какой шанс допустить ошибку в формировании и парсинге имен переменных? Плюс дополнительная возня, если необходимо в окне что-то поменять или доработать.
И речь идет не только о шаблонах окон.
1 Продумывать шаблон надо ДО копирования.
2 Шанс допустить ошибку - 0 (ноль), т.к. идёт автоинкремент.
Пример
Окно1 содержит btn01,btn02... btn50;
Окно2 содержит btn51,btn52... btn100;
COPY/PASTE ещё 10 раз....
Окно12 содержит btn551,btn552... btn600;
Какой шанс ошибиться считая (N-1)*50?
У тех кто арифметику не прогуливал хотя бы первые два школьных года?
3 Если надо что-то переделать - удаляются ВСЕ окна и по новой копируется исходное
Для примера - 42 типовых объекта с 48 переменными (2016 привязок!!!)
416 окон для объектов с ручным управлением (Кнопки включения ручного режима, пуск и стоп) (1248 привязок!!)
832 окна для объектов с возможностью симуляции включения (тут всего лишь маска - 832 привязки)
ИТОГО
4096 привязок (минимум трижды мышью кликнуть, объект, поле выбора переменной, переменная)
А теперь подумайте как долго это делалось бы "обычным" способом?
И сколько ошибок было бы допущено?
Цитировать2 Шанс допустить ошибку - 0 (ноль), т.к. идёт автоинкремент.
Пример
Окно1 содержит btn01,btn02... btn50;
Окно2 содержит btn51,btn52... btn100;
COPY/PASTE ещё 10 раз....
Окно12 содержит btn551,btn552... btn600;
Какой шанс ошибиться считая (N-1)*50?
У тех кто арифметику не прогуливал хотя бы первые два школьных года?
Сформировать имя кнопки, поля или другого графического элемента - нет проблем. Вся сложность в имени переменной: не факт, что будет соблюдена структура имени переменной (например, если разработкой ПО занимается не один человек или даже не одна фирма), не факт, что не потребуется это имя изменить (изменили имя, начинаем вспоминать и ворошить все скрипты, где идет разбор имен переменных) и т.д.
Так же через срипт надо отслеживать, какие экземпляры окон заняты, какие нет.
Кому это будет удобно?
У тех у кого АСУ ТП состоит переменных типа var1, var2 .. var100?
Если бы в SCADA была реализована возможность привязки к объекту произвольного количества перменных, то, наверное, можно было бы из без шаблонов обойтись.
ЦитироватьДля примера - 42 типовых объекта с 48 переменными (2016 привязок!!!)
Есть объект с куда большим количеством однотипных привязок. Выкручивались написанием программки, которая через WinAPI эмулировала однотипные действия по созданию графических элементов на мнемосхеме и подставляла имена переменных из заданного списка.
У меня есть пара предложений. Столкнулся недавно с некоторыми не поддерживаемыми функциями скады.
Можете пожалуйста реализовать такие функции как:
- Возможность изменить толщину линии в трендах
- На главном (большом) тренде сделать возможность замены цвета фона Background'а и сетки соответственно
- На временных трендах сделать возможность установить отображение времени, как это сделано на главном тренде внизу
По поводу временных трендов может и можно внизу шкалу времени сделать, но в документации я ничего такого не нашел
razorqhex, в ближайшее время скорее всего не реализуем, т.к. сначала нужно решить более приоритетные вопросы. Но добавим эти задачи в очередь на реализацию.
Понимаю ,что глобально , но можно сделать
1) прямое редактирование текста , цвета и т.д.
2) очень , очень хотелось бы , что бы можно было бы увеличивать конкретный участок , а не делать зум всего
3) простое , можно ввести шрифт 10
Цитироватьпрямое редактирование текста , цвета и т.д.
Т.е. при клике по компоненту Текст (или по ячейке таблицы и т.п.) сразу переходить к редактированию текста? Если да, то такое планируется в будущих обновлениях. Про прямое редактирование цвета и др. свойств не совсем понятно как это должно выглядеть?
Цитироватьочень , очень хотелось бы , что бы можно было бы увеличивать конкретный участок , а не делать зум всего
Вы говорите про масштабирование выделенного участка при просмотре трендов? Или про масштаб в редакторе?
Добрый день.
Версия 2.3.6.2 (beta).
По одному из объектов уже два дня на приходят сообщения по Telegram.
В журнале сервера вот такие ошибки (скрин).
Здравствуйте.
Каких-либо проблем с отправкой Telegram-сообщений не обнаружили. Прокси-сервер работает стабильно, сообщения отправляются успешно (проверили только что). От других пользователей также нет информации о каких-либо проблемах.
Сообщения которые Вы видите в журнале сервера говорят об отсутствии связи между сервером скады и сервером Telegram. Такие же сообщения будут выдаваться если во время отправки Telegram-сообщений отключить ПК от интернета. Может быть на проблемном ПК действительно есть проблемы с доступом в интернет, или его скорость слишком низкая (или нестабильная)? Другие варианты: трафик блокируется сторонним ПК (антивирус / файрвол и т.п.).
Если запустить утилиту Настроек (https://simple-scada.com/help/manual/settings-simple-scada-server.html) и протестировать отправку, то сообщения отправляются?
Да, возможно, проблемы именно из-за связи, она там не стабильная.
Добрый день..вопрос по выпадающему списку..завел внутрению переменную типа int без права записи оператором..в списке 2 строки..первая, если выбрана ед изм. секунда пишется 1, если минуты пишется 60..но при запуске клиента..нет инициализации переменной значением из списка...только после переключения списка.Спасибо.
Разобрался..через скрипты
Цитата: VladD от 01 ноября 2019, 08:28:14Добрый день..вопрос по выпадающему списку..завел внутрению переменную типа int без права записи оператором..в списке 2 строки..первая, если выбрана ед изм. секунда пишется 1, если минуты пишется 60..но при запуске клиента..нет инициализации переменной значением из списка...только после переключения списка.Спасибо.
Здравствуйте. Компоненты на мнемосхеме никак не участвуют в инициализации переменных, а только подстраиваются под значение переменной. Для инициализации переменной при запуске проекта нужно в окне редактирования переменной указать свойство "Начальное значение" (https://simple-scada.com/help/manual/variable-new.html).
Возможно ли при перезагрузки клиента сохранять последнюю выбранную позицию в списке?
Список связан с переменной. Каждая строка списка связана с каким-то значением этой переменной. Когда значение переменной меняется - в списке автоматически отображается та строка, которая соответствует новому значению переменной. Поэтому перезапуск клиента никак не влияет на то, что выбрано в списке. Если переменная связанная со списком не менялась, то и выбранная строка не изменится.
Возможно у Вас в утилите настроек на сервером ПК включена опция "Деактивировать проект если у него нет клиентов" (https://simple-scada.com/help/manual/index.html?settings-simple-scada-server.html#other), тогда при отключении всех клиентов от проекта - проект будет автоматически выключаться. И при последующем запуске все внешние переменные будут считываться с OPC-сервера снова, а все внутренние переменные будут обнулены. А в списках отобразится та строка, которая соответствует значению связанной со списком переменной.
Для внутренних переменных можно включить опцию "Автоматическое восстановление" (https://simple-scada.com/help/manual/variable-new.html), тогда при перезапусках проекта значение не будет теряться, соответственно и в списке строка будет сохраняться.
Спасибо..а все таки взять значение связанной со списком переменной Combobox1.asInt (переменная типа Int) или другой вариант...просто нашел в теме про массивы, что Вы давали пример скрипта, где данное выражение применяется для извлечения номера строки списка.
Здравствуйте. Добавьте, пожалуйста, в серверную часть ПО общее количество тегов задействованных во всех проектах.
Ну что-то типа этого:
Здравствуйте. Добавим в одном из будущих обновлений.
Здравствуйте.
Возможно ли добавить в компонент "Список сообщений" выбор собственных групп сообщений?
Это было бы удобно при наличии у узла/агрегата своего окна управления. При реализации проекта с множеством не связанных между собой устройств или даже процессов. Для реализации распределенного управления несколькими операторами отличающими каждый за свой участок. Так же это применимо для реализации одного проекта для нескольких локальных точек управления.
Добрый день. Снова возникают трудности при отправке Telegram-сообщений.
Здравствуйте.
Цитата: deldemo от 19 ноября 2019, 11:20:01Возможно ли добавить в компонент "Список сообщений" выбор собственных групп сообщений?
Это один из популярных запросов. Добавим такую возможность после внедрения системы шаблонов.
Цитата: Миханик от 20 ноября 2019, 04:11:53Добрый день. Снова возникают трудности при отправке Telegram-сообщений.
У нас снова никаких проблем обнаружить не удалось. Прокси сервер работает стабильно, сообщения отправляются. Может быть Вы в последнее время добавляли отправку каких-то новых сообщений в Telegram и после этого стала возникать данная проблема? Или же проект никак не менялся, но проблема возникла? Проходит ли отправка тестового сообщения через утилиту настроек (Options)? Проблема остаётся после перезапуска сервера скады? Вышлите текущую версию проекта для проверки на support@simple-scada.com.
Цитата: Simple-Scada от 20 ноября 2019, 09:51:27Может быть Вы в последнее время добавляли отправку каких-то новых сообщений в Telegram и после этого стала возникать данная проблема?
Спасибо за ответ, нашел у себя ошибку в тексте отправки сообщения (не хватало одного знака
`).
Добрый день, хотелось бы узнать рассматриваете ли вы возможность для подключения потокового видео?
Здравствуйте. На ближайшее будущее нет планов по добавлению видео в Simple-Scada. Специализированные программы гораздо лучше подходят для этого.
Это один из популярных запросов. Добавим такую возможность после внедрения системы шаблонов.
Добрый день,
когда планируете внедрить систему шаблонов? Хотя-бы ориентировочно, очень важно для выбора системы диспетчеризации.
Здравствуйте.
Систему шаблонных объектов и окон уже разработали и сейчас она на стадии тестирования. В этом году скорее всего не будем публиковать её, закончим тестирование. Праздничные дни после НГ также отсрочат выход новой версии и скорее всего она будет опубликована в январе-феврале 2020 года.
Добрый день. Возможно ли создать тренд по времени, но при этом время вводить "руками". К примеру оператор в 20.00 прописывает, что в 6.00 было 5 бар, в 13.00-4 бар, 17.00-3,1 бар.
Здравствуйте. Для этого нужно создать в БД собственную таблицу с нужной структурой и по требованию оператора добавлять в неё новые строки через SQL-запрос на вставку (https://simple-scada.com/help/script/querytodb.html) (RunSQL('запрос на вставку')). Выводить таблицу в скаду можно в компонент Таблица, выполняя SQL-запрос на выборку данных (Table1.RunSQL('запрос на выборку')). В руководстве по скриптам есть пример работы с рецептами (https://simple-scada.com/help/script/dbreciepes.html). Оператору предоставляется возможность добавлять новые строки в таблицу, удалять их и редактировать. Вы можете сделать аналогично, только добавлять не рецепты, а строки с нужными значениями. Пример с рецептами можно посмотреть в web-демо проекте (https://web.simple-scada.com:8755/Web-demo) (страница "Скрипты" -> "Работа с БД (рецепты)").
Добрый день!
До настоящего времени доводилось только "поиграться" с демо-версией. И даже сделать пилотный проект на демо-версии. Так вот появился ряд пожеланий:
1. Импорт / экспорт проектов. Я разрабатываю систему и мне необходимо перенести на ПК заказчика проект. Вариант перенести - только руками (не совсем удобно).
2. При переносе проекта руками, также руками в папку Pictures также скопировать свои созданные изображения. (Было бы логичнее если изображение хранились в проекте, ну или же в процессе импорта / экспорта копировались бы вместе с проектом).
3. При импорте переменных из внешнего файла - система пропускает переменные с существующими именами. Было бы очень не плохо, если бы система спрашивала, заменить или пропустить. (Пример: у меня Scada работает преимущественно с внутренними тегами, значение которых получает из файлов. Так вот, в один момент времени пришлось сменить формат отображения данных с 0.# на 0.##. Ну как Вы понимаете, вручную пришлось "лопатить" все, а это более 200 тэгов, а можно было бы автозаменой через Excel изменить данные параметры. ) Как вариант данный параметр отнести в "шкалы".
4. Очень бы хотелось видеть кнопку, которая сортирует сообщения в обратном порядке. В настоящее время все сообщения расположены так: сверху старые, снизу новые. В большинстве систем используется обратный порядок. И он значительно удобнее.
5. Также касаемо сообщений. В Scade возможен перехода к конкретной группе сообщений (через скрипты по ID). Но не совсем удобно то, что отображаются там абсолютно все аварии, и которые были, которые есть. (Пример: допустим скада контролирует 20 котельных. По 5 из ним есть предупреждения и ошибки. Оператор хочет посмотреть активные сообщения по конкретной котельной. Такого функционала нет. Есть только возможность посмотреть сообщения по всем котельным активные, либо все сообщения какие были и какие есть по одной)
Здравствуйте.
Спасибо за список пожеланий, обязательно учтем их. По пункту 3 ответ можно найти в часто задаваемых вопросах - вопрос №17 (https://simple-scada.com/forum/index.php?topic=288.msg5088#msg5088). По пунктам 1,2 при переносе проекта на ПК-сервер нужно скопировать папку с проектом и изображения из папки Pictures(если используются свои изображения). На ПК-клиенты нужно скопировать только изображения, копировать папку с проектом на клиенты не нужно.
Здравствуйте.
Есть ли возможность добавлять пользователей не через Editor.exe, а в Client ?
Здравствуйте.
К сожалению, такой возможности нет. Добавлять пользователей можно только через редактор (https://simple-scada.com/help/manual/editor-users.html).
Спасибо за ответ.
Еще вопрос, таблицы message_data и action_data формируется автоматически при открытии проекта пользователем? Если добавить них какие нибудь дополнительные столбцы или переименовать их, изменить ключи и.т.п повлияет ли это на работу системы?
niyaz, эти таблицы создаются сервером скады при запуске проекта. Их ни в коем случае нельзя менять. Можно только создать собственные таблицы с произвольной структурой и работать с ними через RunSQL (https://simple-scada.com/help/script/querytodb.html).
Спасибо за ответ.
Не подскажите, как решить проблему. У меня есть таблица 'users', в котором хранится ID и ФИО оператора. Необходимо, чтобы таблица 'users' знала о таблице 'action_data', так как нужно вывести какой оператор изменил данные.
niyaz, как-то связать таблицу "action_data" с пользовательской таблицей будет сложно, ведь в проекте могут быть авторизованы сразу несколько разных пользователей с разных клиентских ПК. Любой из них может совершить действие в любой момент. В таблицу "action_data" действие записывается только когда оно уже кем-то совершено.
Да и зачем брать действия из таблицы "action_data" в другую таблицу? Ведь можно просто посмотреть журнал действий оператора (https://simple-scada.com/help/manual/client-message-view.html) и посмотреть какие действия выполнял каждый оператор.
Здравствуйте!
Хотелось бы иметь в скаде функцию GetActiveClientsNames, которая бы возвращала массив имён активных клиентов.
Для чего это может понадобиться?
Клиенты в проекте имеют порядковые индексы. По изменению значений клиентских флагов выполняются различные события с интерфейсом, к примеру смена видимости активной кнопки... Изменение значений переменной выполняется на сервере, имя клиента получить нет возможности. Поэтому приходится в цикле перебирать всех клиентов и выполнять положенные изменения.
Более верно - делать это только для активных клиентов.
Один из выходов - уйти от флажков и перейти к порядковым переменным для каждого клиента (что не всегда удобно).
Второй вариант - сделать переменную, которая бы включала флаг активного клиента один раз по событию, которое совершает клиент, например - первый переход на страницу. Отследить в этом случае, какие клиенты активны, если они выходят из системы - невозможно. Будет просто - максимальный номер заходивших клиентов.
И третий вариант - предложенная функция GetActiveClientsNames, которая бы в паре с GetClientsCount хорошо бы выполняля свою роль.
Добавлено.
Включение / отключение активного клиентского флага по событию (например, клиент находится в заданном окне, где меняются параметры объектов, которые формируются на основе комплексной оценки) - одно из хороших решений. Тогда цикл уменьшается к выполнению действию только для активных флагов (клиентов).
Здравствуйте.
Цитироватьк примеру смена видимости активной кнопки...
Клиенты просто отображают текущее состояние всех объектов проекта. Когда Вы меняете видимость кнопки или любого другого объекта на сервере, все клиенты автоматически получают это изменение.
ЦитироватьПоэтому приходится в цикле перебирать всех клиентов и выполнять положенные изменения.
Не нужно проходить в цикле по всем клиентам, это бессмысленно. Все изменения объектов на сервере автоматически передаются всем клиентам. Ведь проект один для всех, а не отдельный для каждого клиента. Например нельзя сделать кнопку красной только для какого-то избранного клиента, она станет красной для всех. Поэтому и нет смысла в функции GetActiveClientsNames.
Тут речь идёт о проекте с большим количеством однотипных вкладок, объекты на которых формируются и заполняются по индексам. Это было сделано, чтобы в случае изменений в интерфейсе просто копировать начальную вкладку. Много размышляли, остановились на этом, очень удобно.
Для каждого клиента существуют свои окна с индексированными кнопками и подобными объектами. Это тоже сократило количество окон и работы + при внесении каких-либо изменений в начальное окно, остальные окна просто копируются.
В этом случае кнопка становится красной для определённого клиента, потому что она находится в определённом окне...
Предложенная функция не архиважная - решение нашлось. Но было бы хорошо иметь её на подобные случаи.
Здравствуйте.
Будет несколько пожеланий.
1) Во вкладке "Проект - Настройки" при выборе звука аварии или звука сообщения можно было вибрать пункт "без звука" например.
2) Реализовать, если возможно, возможность отключения звука аварийного сообщения с Клиента при поможи кнопок или скриптов, а не создавать аварийное сообщение или со звуком или без во вкладке "Проект - Сообщения...".
3) Создать (если это возможно) возможность создания комбинации аварийного сообщения созданного разработчиком и возможности задавать граници аварийных сообщений (работа с верхней или нижней аварийной границей).
Здравствуйте.
1. Пожелание учтем.
2. Звук сообщений на клиенте можно отключать через скрипты используя процедуры StopSoundAll (https://simple-scada.com/help/script/stopsoundall.html), StopSoundClient (https://simple-scada.com/help/script/stopsoundclient.html).
3. Управлять границами переменной можно через скрипты используя свойства переменной HighAlarm (https://simple-scada.com/help/script/varhighalarm.html), HighWarning (https://simple-scada.com/help/script/varhighwarning.html), LowWarning (https://simple-scada.com/help/script/varlowwarning.html), LowAlarm (https://simple-scada.com/help/script/varlowalarm.html). Также, имеется возможность управления граничными значениями переменных из клиента без использования скриптов - подробнее здесь (https://simple-scada.com/help/manual/managing-bounds-var.html).
Demo - 2.3.6.5, а у Time Demo - 2.3.6.4 - исправьте пожалуйста на 6.5 тоже.
Вы что-то перепутали. Все версии на сайте (https://simple-scada.com/download) 2.3.6.4.
Версию 2.3.6.5 мы пока официально не публиковали (https://simple-scada.com/forum/index.php?topic=178.msg7861#msg7861) (она отсылалась по почте только некоторым пользователям вместе с соответствующими демо-версиями).
да, точно, речь о почте, не было ли ошибки версий в рассылке ? Слишком быстро мы обновились
Нет, ошибки не было. Для Вашей организации все обновления отправляются на почту "***". Все версии 2.3.6.5 (включая демо) были отправлены Вам в письме 23 дек. 2019. Только что отправили тоже самое повторно. Если нужно изменить почту для рассылки обновлений, то сообщите нам, можем отсылать обновления на Вашу почту.
ок, теперь верно, поставил проверил. Спасибо. емейл из сообщения выше прошу стереть
Добрый день.
Редакция ПО - Professional.
Сделал кнопочку со скриптом (OnClick)
begin
SendTelegram('тест');
end.Сообщение не приходит, хотя в Options.exe в настройках телеграм через кнопку ТЕСТ все доставляется.
Что я не так делаю?
Здравствуйте.
Какую версию скады Вы используете?
Вы после написания скрипта для кнопки сохранили проект и перезапустили его на сервере? Это нужно сделать чтобы внесённые в проект изменения вступили в силу. Если перезапустили, но сообщение не отправляется, то вышлите нам текущую версию проекта для тестов.
Версия 2.3.6.4 (06.12.2019) -Professional Edition
Проект сохранял в редакторе, после чего останавливал и запускал снова в сервере.
В проекте просто одна кнопка со скриптом выше, хотел пробовать наладить отправку сообщений телеграм. Все равно отправить вам?
-----
Попробовал на другом ПК time-demo версию - все работает. видимо сетевые настройки. Буду разбираться.
ЦитироватьПопробовал на другом ПК time-demo версию - все работает. видимо сетевые настройки. Буду разбираться.
Да, значит что-то не даёт серверу (Server.exe) передавать трафик во внешнюю сеть.
Добрый день.
У ячеек таблицы нельзя менять цвет шрифта если тип шрифта стоит "как у колонки".
При использовании для таблицы метода RunSQL ячейки форматируются по умолчанию и после этого не получается менять цвет шрифта у ячейки из скрипта.
Как можно решить данную проблему и после формирования таблицы методом RunSQL можно было менять цвет шрифта из скриптов?
Также есть еще одна проблема. При попытке изменения свойства H (высоты) объекта TM_MessageViewer (список сообщений) из скрипта, при компиляции происходит ошибка - "read-only property". Но ведь это свойство не только для чтения?
Заранее спасибо.
Здравствуйте.
ЦитироватьПри использовании для таблицы метода RunSQL ячейки форматируются по умолчанию и после этого не получается менять цвет шрифта у ячейки из скрипта.
Сделаем чтобы выставлялся конкретный шрифт, вместо "как у колонки", тогда можно будет менять свойства шрифта.
ЦитироватьТакже есть еще одна проблема. При попытке изменения свойства H (высоты) объекта TM_MessageViewer (список сообщений) из скрипта, при компиляции происходит ошибка - "read-only property".
Какой код Вы используете для смены высоты. Такой?
MessageViewer1.H := 100;
Цитата: Simple-Scada от 03 февраля 2020, 09:52:23Какой код Вы используете для смены высоты. Такой?
MessageViewer1.H := 100;
Да. Такой не работает. Работает только такой:
Sender.H :=997;
Здравствуйте.
Спасибо за информацию, исправим в следующем обновлении.
Здравствуйте!
Подскажите пожалуйста, если из OPC-сервера получена шестнадцатибитная переменная, можно ли без скриптов разобрать ее на 16 булевых?
Есть 2 переменные - одна для чтения, другая для записи. А1_r, A1_w. Нужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r. А1_r и A1_w могут не совпадать, т.к. при перезагрузке железки A1_w = 0. В идеале элемент "поле" должен являться элементом "таблицы"
Как это грамотнее реализовать? Переменных довольно много.
Здравствуйте.
ЦитироватьПодскажите пожалуйста, если из OPC-сервера получена шестнадцатибитная переменная, можно ли без скриптов разобрать ее на 16 булевых?
Компоненты "Кнопка (https://simple-scada.com/help/manual/button.html)" и "Флажок (https://simple-scada.com/help/manual/checkbox.html)" могут работать с битами напрямую - см. свойство "Бит". Также, можно работать с битами (https://simple-scada.com/help/script/work-bits.html) из скриптов.
ЦитироватьНужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r.
Поле не может работать одновременно с двумя переменными, но это можно реализовать при помощи функционала некоторых OPC-серверов, подробнее обсуждалось здесь (https://simple-scada.com/forum/index.php?topic=906.msg7714#msg7714).
Цитата: maks48 от 13 февраля 2020, 21:56:39Нужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r. А1_r и A1_w могут не совпадать, т.к. при перезагрузке железки A1_w = 0. В идеале элемент "поле" должен являться элементом "таблицы"
Поскольку требуется работа только с одной переменной, то вторую можно индицировать периодической перезаписью свойства "Text" (В версии 2.3.6.7 Simple-Scada запись в свойство "Text" приводит к отображению этого свойства на объекте).
Пример скрипта (проект во вложении) "Прошла секунда" для поля Field1 и таблицы Table1:
begin
Field1.Text := A0_r.AsStr; // Поле Field1 связано с переменной A0_w
Table1.GetCell(1,1).Text := A1_r.AsStr; // Ячейки таблицы связаны с переменными Ai_w (i = 1..3)
Table1.GetCell(1,2).Text := A2_r.AsStr;
Table1.GetCell(1,3).Text := A3_r.AsStr;
end.
Цитата: Simple_Scada от 13 февраля 2020, 22:53:01Компоненты "Кнопка (https://simple-scada.com/help/manual/button.html)" и "Флажок (https://simple-scada.com/help/manual/checkbox.html)" могут работать с битами напрямую - см. свойство "Бит".
Нет ли в планах ввести элемент "Индикатор", который бы отображал значение бита из слова или значение булевой переменной? После других скад очень уж очень муторно для каждой лампочки писать скрипт.
Еще, вопрос 2: а с чем связано решение всегда открывать окно редактора на весь экран, скрывая панель задач? Жутко неудобно. Можно ли ее отобразить?
Цитата: pan2000 от 14 февраля 2020, 12:57:34Поскольку требуется работа только с одной переменной, то вторую можно индицировать периодической перезаписью свойства "Text" (В версии 2.3.6.7 Simple-Scada запись в свойство "Text" приводит к отображению этого свойства на объекте).
Пример скрипта (проект во вложении) "Прошла секунда" для поля Field1 и таблицы Table1:
Большое спасибо за подсказку!!!
Здравствуйте.
ЦитироватьНет ли в планах ввести элемент "Индикатор". уж очень муторно для каждой лампочки писать скрипт
Добавление отдельного компонента не планируется. Для такой задачи можно использовать один универсальный скрипт (https://simple-scada.com/help/script/script-types.html) для всех лампочек. Например, имеется три лампочки которые должны менять цвет по битам переменной MyVar. Все лампочки нужно связать с переменной MyVar и у каждой лампочки в свойстве "Тэг" указать номер бита, по которому должен меняться цвет. Например, у первой установить 0, у второй 1, у третьей 2. Далее, нужно написать такой универсальный скрипт:
begin
if Sender is TM_Object then // проверяем, что Sender это объект
with Sender as TM_Object do // приводим Sender к типу "TM_Object"
if GetBit(AsInt, Tag) = TRUE then
Color := clGreen
else
Color := clRed;
end., и назначить этот скрипт на событие OnDataChange всех лампочек. Теперь, первая лампочка будет менять цвет по нулевому биту, вторая по первому биту, третья по второму биту.
Цитироватьа с чем связано решение всегда открывать окно редактора на весь экран, скрывая панель задач? Жутко неудобно. Можно ли ее отобразить?
В Simple-Scada для отрисовки используется OpenGL/DirectX рендер, поэтому в полноэкранном режиме отображать панель задач невозможно. Чтобы перейти к панели задач нажмите клавишу Win на клавиатуре. Если это Вам подойдет, можно работать в оконном режиме, установив необходимый размер окна редактора - см. свойство "Размер окна (https://simple-scada.com/help/manual/settings-simple-editor.html)".
Здравствуйте. Подскажите, планируется в будущем добавление возможности присвоения своих иконок кнопкам?
Здравствуйте. Нет, в самое ближайшее время эта возможность не будет добавлена. Мы уже долгое время готовим крупное обновление клиента скады с внедрением системы шаблонов. Только после этого мы вернёмся к второстепенным задачам.
Добрый день!
Интересует вопрос (ну и пожелание, чтобы добавили одну кнопку). Как я понял архивируемые данные хранятся в базе SQL (MSSQL или MySQL), а где хранятся данные для восстановления значений переменных при рестарте и возможно ли эти данные очистить? Если нет, то хотелось бы видеть кнопку для очистки этих данных.
Суть в том, что при разработке проекта возможно сохранение весьма нелепых или нереальных данных. Проект на рабочую станцию переносится методом копирования и соответственно уже на рабочей станции появляются эти самые некорректные данные. Хотелось бы избавлять от этих данных перед переносом на рабочую станцию.
Здравствуйте.
Начиная с версии 2.3.6.2 сохранённые граничные значения и автоматически восстанавливаемые значения хранятся
не в папке с проектом, а в папке "%AppData%\Simple-Scada 2\
Имя проекта\", поэтому копирование проекта с одного компьютера на другой никак не может повлиять на эти данные.
ЦитироватьХотелось бы избавлять от этих данных перед переносом на рабочую станцию.
Исходя из вышеописанного, если Вы используете версию 2.3.6.2 (или выше), то можно просто копировать проект на любой другой ПК, файлы с сохранёнными значениями не будут скопированы.
Если на рабочей станции проводились какие-то тесты и т.п. и сохранённые данные тоже некорректны, то можно их удалить. Для этого откройте папку "%AppData%\Simple-Scada 2\
Имя проекта\" и удалите файлы "Limits.slm", "LimitsV2.slm", "Retentive.srf" и "RetentiveStr.srf" (если они присутствуют в папке).
Скажите пожалуйста, можно ли привязывать одну переменную к другой без скриптов?
Поясняю: в той же Мастерскаде применяется т.н. принцип клеммника, когда есть внутренние переменные скады и есть внешние, например из ОРС-сервера. Мы настраиваем скрипты, взаимодействия, архивацию для внутренних переменных, а потом просто привязываем к ним внешние. Потом можно поменять хоть контроллер, хоть OPС-сервер, а скаду и скрипты это не затронет.
Здравствуйте! Функция CopyFile сможет скопировать текстовый файл с железки под управлением Linux по сети? Ну или как-то из скады запустить bat, который выполнит копирование. Можно что-то придумать?
Здравствуйте.
ЦитироватьСкажите пожалуйста, можно ли привязывать одну переменную к другой без скриптов?
Нет.
ЦитироватьМы настраиваем скрипты, взаимодействия, архивацию для внутренних переменных, а потом просто привязываем к ним внешние. Потом можно поменять хоть контроллер, хоть OPС-сервер, а скаду и скрипты это не затронет.
Имеется возможность импорта (https://simple-scada.com/help/manual/variable-import-csv.html) и экспорта (https://simple-scada.com/help/manual/export-var.html) переменных в файл/из файла. При смене контроллера, OPC-сервера и других подобных изменениях можно экспортировать переменные в файл, выполнить в нем необходимые изменения, например сменить OPC-сервер, изменить адреса переменных и т.д. После внесения необходимых изменений можно импортировать переменные обратно в проект. Чтобы переменные обновили свои свойства при импорте, нужно нажать кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре.
ЦитироватьФункция CopyFile сможет скопировать текстовый файл с железки под управлением Linux по сети? Ну или как-то из скады запустить bat, который выполнит копирование. Можно что-то придумать?
Между ПК с Windows, если ничего не будет блокировать доступ к удаленному файлу он скопируется по сети. С Linux не тестировали, Вы можете проверить это самостоятельно. Запустить bat-файл можно при помощи процедуры RunApplication (https://simple-scada.com/help/script/runapp.html).
Здравствуйте. Добавьте, пожалуйста, возможность блокировки перемещения окон. Отключая шапку, окна все равно можно перемещать цепляясь за пустые места.
Иногда в проектах нужно статическое окно(типа меню пуск).
Здравствуйте.
Добавим свойство позволяющее зафиксировать окно.
Добрый день.
Столкнулся с проблемой при импорте переменных. Импортирую несколько однотипных переменных при помощи файла xlsx. Добавляются 7 переменных с одинаковыми границами сообщений. При этом у первой добавленной переменной при превышении границ формируется сообщение и GetValueZone показывает, что границы отработали. У следующих трех добавленных переменных этого не происходит. Ни сообщения, ни изменения GetValueZone. У еще трех последующих переменных все работает. При удалении трех неработающих переменных и повторном экспорте их из того же файла работает только первая добавленная. Так методом удаления и повторного экспорта можно добиться работы границ у всех переменных
Здравствуйте.
При импорте переменных из файла следует учитывать следующее:
- По умолчанию, при импорте переменные совпадающие по имени пропускаются и добавляются только новые переменные. Если необходимо, чтобы совпадающие по имени переменные обновили свои свойства, нужно нажать кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре - подробнее см. вопрос №6 по ссылке (https://simple-scada.com/help/manual/faq-editor.html). Если открыть переменные после импорта, у них заданы границы на вкладке свойств "Дополнительные"?
- Если в настройках проекта в разделе "Другие" (https://simple-scada.com/help/manual/index.html?editor-settings.html#set_other) опция "Граничные значения переменных" установлена в "Сохранять", то границы переменных автоматически сохраняются в файл и при запуске проекта загружаются из файла, при этом границы заданные в редакторе не будут учитываться. Если нужно, чтобы границы загрузились из редактора, необходимо перейти в папку "\Users\Имя_пользователя\AppData\Roaming\Simple-Scada 2\Имя_проекта\", там можно увидеть файл "Limits.slm"- удалите этот файл. Если не требуется изменять граничные значения переменных через клиент Simple-Scada, то отключите сохранение граничных значений. В ином случае, после изменения граничных значений в редакторе необходимо удалять файл "Limits.slm". Подробнее см. вопрос №5 по ссылке (https://simple-scada.com/help/manual/faq-client.html).
Если это не поможет, пришлите нам на support@simple-scada.com текущую версию Вашего проекта, файл импорта и укажите при импорте каких переменных возникает проблема.
1. С этим все так. После импорта границы у переменной заданы.
2. После импорта пробовал менять границы переменной из клиента. Создал элемент Field и выбрал в его настройках: работать с границами. Эффекта не было.
После удаления файл "Limits.slm" переменные импортировались нормально. Проблем с границами нет. Спасибо за ответы.
Здравствуйте.
Сделайте, пожалуйста, чтобы при переходе в скрипт курсор становился в начало скрипта только в том случае, если в прошлый раз был открыт другой скрипт.
А в идеале - чтобы в каждом скрипте запоминалась позиция курсора.
И еще. Клавиши Page Up и Page Down скролируют окно, но не двигают курсор. Хотелось бы, чтобы курсор перемещался вслед за экраном.
Спасибо.
Здравствуйте. Сделаем в одном из будущих обновлений.
Здравствуйте!
В процессе работы над проектом встал вопрос с отладкой.
Для отладки необходимо видеть изменение внешних и внутренних переменных как это реализовано в других СКАДА программах в режиме реального времени.
Существует ли такая возможность в СИМПЛ-СКАДА и будет ли реализована в дальнейшем при ее отсутствии?
Здравствуйте.
В режиме реального времени просмотреть значения переменных можно только через клиент скады(Client.exe), связав необходимые переменные с объектами, например с "Полем (https://simple-scada.com/help/manual/field.html)". После внесения изменений в проект, его необходимо сохранить и затем перезапустить на сервере (https://simple-scada.com/help/manual/server-project.html), для того чтобы изменения применились. Если в настройках активна опция "Деактивировать проект, если у него нет клиентов (https://simple-scada.com/help/manual/index.html?settings-simple-scada-server.html#other)", то при выходе из клиента сервер Simple-Scada будет деактивировать проект (если нет других подключенных клиентов), а при запуске клиента активировать уже обновленный проект. Пока, каких-либо изменений в этом плане не планируется.
1. Как отправлять сообщения в Telegramm используя бота понятно. Очень просто, удобно и современно. Спасибо.
А как.. И если нет возможности, то планируется ли - принимать команды через бота?
2. Каким образом можно ограничить количество подключенных клиентов под одним пользователем? Или как можно узнать сколько клиентов подключено под конкретным пользователем и их имена?
ЦитироватьИ если нет возможности, то планируется ли - принимать команды через бота?
Нет, принимать команды от бота нельзя. В ближайшем будущем добавлять такие возможности не планируем, но в дальнейшем возможно добавим.
ЦитироватьКаким образом можно ограничить количество подключенных клиентов под одним пользователем? Или как можно узнать сколько клиентов подключено под конкретным пользователем и их имена?
В данный момент нет ограничений на количество авторизаций одного пользователя. Мы добавим функцию автоматического завершения других сеансов пользователя при авторизации.
1. Хотелось бы иметь возможность менять цвет строк ComboBox. А так же указывать выравнивание по горизонтали текста (по центру).
2. возможность кнопке с n состояниями при нажатии применять одно и тоже значение при любом состоянии.
Тут я мб не до конца понял филосифию....но кнопка имеет оч удобный функционал для отображения состояний. и при некоторых реализациях интерфейса может понадобиться указанный функционал. (например 1 переменная, 3 состояния, 3 кнопки. В зависимости от значения меняют цвет но при нажатии всегда принимает значение 1 для первой кнопки, 2 для второй и т.д.) Это в принципе можно реализовать скриптом, но вроде простой интерфейсный момент...и почти все есть для этого...но мы не можем указывать одно и то же значение для разных состояний...
Добрый день!
Рассматриваете ли Вы в будущем изменить вид кнопки и сделать ее 3D (как пример //habr.com/ru/post/137005/) (https://simple-scada.com//habr.com/ru/post/137005/))?
ЦитироватьХотелось бы иметь возможность менять цвет строк ComboBox.
Этого точно не будет в будущих версиях.
Цитироватьвозможность кнопке с n состояниями при нажатии применять одно и тоже значение при любом состоянии. Тут я мб не до конца понял филосифию...
Принцип следующий: при нажатии на кнопку берётся текущее состояние кнопки и его свойство "Значение". Это значение записывается в переменную кнопки. Также кнопка всегда автоматически принимает то состояние, которое соответствует значению переменной. Таким образом каждое состояние кнопки всегда соответствует какому-то уникальному значению переменной и присваивает уникальное значение. Если бы все состояния кнопки были привязаны к одному значению переменной, то было бы непонятно какое из состояний нужно отобразить при изменении переменной.
Цитата: Серега от 09 июля 2020, 17:29:55Рассматриваете ли Вы в будущем изменить вид кнопки и сделать ее 3D
Нет, мы используем плоский стиль для всех компонентов мнемосхемы, чтобы стиль был единым.
Цитата: Simple-Scada от 04 августа 2019, 09:56:45Цитата: Миханик от 02 августа 2019, 09:35:03А почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?
Постараемся добавить в будущих обновлениях.
Добрый день. Просто напоминаю - вдруг подзабыли :). Очень нужен, а то пол таблицы не видно.
Цитата: Миханик от 02 августа 2019, 09:35:03. . . Очень нужен, а то пол таблицы не видно.
Пока не добавлен горизонтальный скролл, можно воспользоваться примером реализации горизонтального скролла для широкой таблицы. Пример - 10 столбцов шириной по 400 с просмотром в окне шириной 1440. Одинаковый размер столбца и плавный движок (горизонтальный объект "Уровень") для скролла исключительно для простоты. Столбцы можно сделать разной ширины, а движок дискретным.
ЦитироватьПросто напоминаю - вдруг подзабыли :). Очень нужен, а то пол таблицы не видно.
Помним, но пока мы приостановили решение мелких задач в пользу крупного обновления клиентов скады и внедрения системы шаблонов. После этого вернёмся к старым задачам, в том числе и горизонтальному скроллу.
Цитата: Simple-Scada от 16 июля 2020, 17:33:52... крупного обновления клиентов скады и внедрения системы шаблонов.
Ооо, это тоже очень ждем. В этом году успеете добавить?
Да, успеем.
Добрый день!
Сделайте пожалуйста импорт/экспорт сообщений в эксель. Весь остальной функционал устраивает, но когда нужно добавить несколько сотен сообщений, то это мучение длится несколько дней.
Цитата: bacchus1 от 22 июля 2020, 16:03:45Сделайте пожалуйста импорт/экспорт сообщений в эксель.
Поддержу. Сам недавно правил под 1000 сообщений. Целый день убил.
Доработка системы сообщений и редактора сообщений одна из первоочередных задач на ближайшее будущее.
Здравствуйте. Прошу добавьте, пожалуйста, возможность отключения виртуальной клавиатуры на определенных полях ввода. Появление в.клавиатуры в окне задания рецепта жутко бесит, но в то же время на основной мнемосхеме без нее ни как.
Здравствуйте. А как осуществляется ввод рецепта без виртуальной клавиатуры? Или у Вас одновременно используется физическая клавиатура + виртуальная клавиатура?
Цитировать...Или у Вас одновременно используется физическая клавиатура + виртуальная клавиатура?
Здравствуйте. Да именно так.
Просто основную часть времени оператор следит за циклом, иногда корректируя значения используя виртуальную клавиатуру. Но в начале рабочей смены он забивает рецепты и вот там уже много печатного текста который достаточно неудобно забивать если постоянно выскакивает виртуальная клава.
Доброго времени.
Имеется ли в Simple-Scada встроенная мультиязыковая поддержка?
А именно:
У всех текстов и сообщений есть как русские, так и английские варианты. Жмём на кнопку, и все надписи/сообщения меняют язык.
Здравствуйте.
К сожалению, на данный момент мультиязыковой поддержки нет.
Добрый день.
Возможна ли реализация копирования обьектов в редакторе с помощью ALT + ЛКМ с перетаскиванием, по аналогии с граф. редакторами Adobe. Очень сильно вырастет скорость проектирования. Хотелось бы иметь возможность настраивать цвета у запрограммированных состояний задвижки.
И еще. Может уже добавили, но неплохо было бы сделать возможность настройки выравнивания значения в поле. Сейчас оно жестко привязано к середине поля, что не всегда может быть удобно.
В редакторе есть баг. При задании координат объекта, клавишей Tab можно проскочить только X, Y , W. На высоту уже не попасть табом, он деактивирует поле настройки. Если мышку использовать, приходится два раза выбирать поле редактирования.
Здравствуйте.
"ALT + ЛКМ" добавим в список на доработку. На компонент "Заслонка" уже запланированы изменения. Теперь он будет включать в себя состояния, которые можно будет настраивать, включая цвет, цвет мигания и цвет мигания половины заслонки, а также можно будет привязывать разные состояния к разным битам переменной.
Выравнивание значений в поле в ближайшем будущем скорее всего не добавим, сначала нужно решить другие задачи.
ЦитироватьНа высоту уже не попасть табом, он деактивирует поле настройки.
Да, фокус сбрасывается со строки при обновлении списка свойств. Исправим в ближайшем обновлении.
Добрый день, возможно ли запускать 2 копии редактора с разными проектами- одновременно?
Здравствуйте. Нет, это невозможно.
Здравствуйте. Скажите пожалуйста, когда будет реализация возможности изменять цвет палитры на главном тренде?
Здравствуйте. Что значит "на главном тренде"?
Здравствуйте. Есть одно наблюдение. В новой версии при отключении доступности прозрачной кнопки у нее появляется полупрозрачный контур. Возможно ли этот контур отключить?
Я так понимаю, это связанно с плоскостью деактивированных объектов.
ЦитироватьЯ так понимаю, это связанно с плоскостью деактивированных объектов.
Да, так и есть, сейчас уберём отображение контура у прозрачных кнопок.
Убрали контур и обновили скаду. Скачать можно по прежним ссылкам.
Цитата: Simple-Scada от 20 августа 2020, 20:43:11Здравствуйте. Что значит "на главном тренде"?
На большом тренде, который вызывается по этой кнопке
У каждого тренда есть свойство "Цвет" (https://simple-scada.com/help/manual/editor-trends.html?anchor=trend_prop). Через это свойство Вы можете задать любой цвет, любому тренду.
Добрый день.
Думаю, что уже когда-то предлагали. Планируется ли в среду, где пишутся скрипты добавить возможность сворачивать блоки кода по ключевым словам? Условно свернуть if..else в одну строчку. Часто встречающаяся возможность в различных средах.
Здравствуйте.
В ближайшем будущем не планируется, но возможно когда-то добавим.
Добрый день. Предлагаю добавить некий курсор, который позволяет перемещать дополнительное окно в поле главного окна в редакторе. Например, как у обьектов. Их можно перемещать , если навестить на серую точку по центру. Вот с окнами мы что-то подобное, а то не попасть адекватно в границу окна, чтобы быстро его перетащить в редакторе, а клавишами не всегда нужно перемещать.
Цитата: azrael454 от 03 сентября 2020, 11:19:35Добрый день. Предлагаю добавить некий курсор, который позволяет перемещать дополнительное окно в поле главного окна в редакторе. Например, как у обьектов. Их можно перемещать , если навестить на серую точку по центру. Вот с окнами мы что-то подобное, а то не попасть адекватно в границу окна, чтобы быстро его перетащить в редакторе, а клавишами не всегда нужно перемещать.
Здравствуйте. Постараемся добавить в будущем доп. зону для перемещения у окон со скрытым заголовком. Изменить позицию окна также можно через инспектор объектов, меняя свойства X, Y.
Здравствуйте. Возможно ли сделать так, чтобы у каждой вложенной папки с картинками был свой файл настроек (Pictures.spd)? Иначе приходится настраивать картинки на целевой машине. Что не очень удобно когда много проектов в разработке.
Здравствуйте.
Сейчас файл "Pictures.spd" содержит информацию о кадрах для изображений во всех папках и в корне папки "Pictures\". При копировании изображений на клиентские ПК нужно скопировать изображения и всю структуру папок, вместе с файлом "Pictures.spd", чтобы на клиентских ПК изображения отображались также как на серверном. Как-то отделить их дург от друга будет проблемно, т.к. папка Pictures едина для всех проектов.
Добрый день. Нашел баг в редакторе. Когда делаешь множественное выделение обьектов и хочешь у них всех поменять цвет шрифта, то при подтверждении цвета он меняется, а после закрытия окна настроек цвета снова сбрасывается на предыдущий цвет. Это актуально только, когда хочешь поменять цвет на черный (2 ячейка в таблице цветов).
Здравствуйте.
Да, при выделении разнотипных объектов инспектор объектов выставляет в строке цвета черный цвет. При смене цвета на черный инспектор объектов считает что цвет не изменился, был черный и стал черный. Поэтому изменение не применяется. Постараемся исправить в ближайшем обновлении.
Добрый день. Демо - версии включают в себя последние изменения, которые были в 2.6.4.0 и новее?
Здравствуйте.
На сайте (https://simple-scada.com/download) всегда доступны актуальные демо-версии, на данный момент это версия 2.4.0.5 (https://simple-scada.com/forum/index.php?topic=178.msg8852#msg8852).
Здравствуйте.
При подстановке шаблона свойство FlashColor переустанавливается в $FF000000. Пример во вложении.
Здравствуйте.
Спасибо за информацию и пример проекта. Исправление включили в версию 2.4.0.6. Для обновления достаточно скачать её снова и установить повторно.
Здравствуйте. Возможно ли добавить в инструмент "поле" свойство "выравнивание текста"
Добрый день!
Пару предложений для улучшения (возможно ;D) работы пользователей:
1. В примитивах "Кнопка" и "Прямоугольник" добавить свойства "Разрешить скругление" и "Радиус скругления" с указанием оного
2. В примитиве "Флажок" добавить свойство "Не реагировать на нажатие" и использовать его как элемент отображения состояния
3. В примитиве "Флажок" в свойстве "Положение подписи" добавить еще один пункт "Без подписи". При его выборе флажок перемещается в центр квадрата с размерами по дефолту 32х32 (а то сейчас как то 40х32 не смотрится, но использовать можно).
Жду ответов!
Здравствуйте.
Цитата: deldemo от 27 сентября 2020, 10:47:42Возможно ли добавить в инструмент "поле" свойство "выравнивание текста"
Да, постараемся добавить. На это свойство сейчас достаточно много запросов.
Цитата: Серега от 28 сентября 2020, 11:59:391. В примитивах "Кнопка" и "Прямоугольник" добавить свойства "Разрешить скругление" и "Радиус скругления" с указанием оного
2. В примитиве "Флажок" добавить свойство "Не реагировать на нажатие" и использовать его как элемент отображения состояния
3. В примитиве "Флажок" в свойстве "Положение подписи" добавить еще один пункт "Без подписи". При его выборе флажок перемещается в центр квадрата с размерами по дефолту 32х32 (а то сейчас как то 40х32 не смотрится, но использовать можно).
Рассмотрим предложения, но скорее всего мы не добавим такие свойства. Дело в том, что они слабо востребованы и в этом вся проблема. Не проблема добавить их, но тогда эти свойства будут сохраняться/загружаться при сохранении/загрузке проекта, а также передаваться клиентам от сервера при переходах по страницам. И так для каждого экземпляра объекта. А в 90% случаев их не будут использовать. В итоге для большинства пользователей это приведёт только к снижению производительности скады. В целом, предложений добавить какие-то свойства объектам - много (и практически все уникальные, каждому нужно что-то своё) и если бы мы добавили их все, то скада превратилась бы в жуткую систему с низкой производительностью и огромным количеством свойств.
Здравствуйте.
Не работают горячие клавиши Shift+ Tab, Ctrl+Shift+G и Ctrl+Shift+Z уменьшит отступ, разгруппировать и вернуть соответственно. В чем может заключаться проблема?
Здравствуйте.
Судя по тому, что у Вас не срабатывают сочетания с использованием клавиши Shift, то возможна она не работает, либо какое-то стороннее ПО перехватывает нажатия клавиш. Также, стоит учесть, что при использовании сочетаний клавиш они должны быть нажаты вместе, т.е. например для использования Ctrl+Shift+G нужно удерживать нажатыми клавиши Ctrl+Shift, а затем нажать G.
Здравствуйте. Возможно добавить инструмент "Текстовая область" (TMemo) ?
ЦитироватьВозможно добавить инструмент "Текстовая область" (TMemo) ?
Здравствуйте. Скорее всего добавим в компонент Таблица недостающие методы, чтобы его можно было использовать как Memo (оставив одну колонку), добавлять и удалять строки.
Здравствуйте. Есть еще одна просьба. Добавьте, пожалуйста, подсветку группы в которой есть не компилируемый скрипт. А то не очень удобно пролистывать все папки в поиске скрипта.
Здравствуйте. Добавим в одно из ближайших обновлений.
Здравствуйте!
Есть ли возможность полностью (не разово) управлять звуком при превышении граничных значений?
Нажали кнопку (вкл звук) - сообщения приходят со звуком, ещё раз нажали (откл звук) - соообщения без звука.
Цитата: MaxHari от 30 октября 2020, 10:10:16Есть ли возможность полностью (не разово) управлять звуком при превышении граничных значений?
Скачайте NirCmd (https://www.nirsoft.net/utils/nircmd.html) -это небольшая утилита командной строки, которая позволяет вам выполнять некоторые полезные задачи без отображение любого пользовательского интерфейса.
Например:
// Упрпавляем включением/выключением звука на Client1
RunApplication('Client1', 'D:\nircmd.exe', 'mutesysvolume 0'); // включаем звук
RunApplication('Client1', 'D:\nircmd.exe', 'mutesysvolume 1'); // отключаем звук
В целом хорошее решение, когда не нужен звук на компьютере. Как я понимаю, таким образом управляется звук в операционной системе.
В нашем случае скада-система установлена на отдельном сервере и служит только для визуализации происходящего.
Добрый день!
Есть инструмент в виде "Цветовая схема" и пункт "Пользовательская".
Есть свойства страницы "Цвет" и свойство "Цвет подстраницы".
Можете сделать отдельно свойство для фона подстраницы, не там где надпись, а где идет основная часть мнемосхемы.
А так получается выбираем цветовую гамму, тем самым обеспечивая нужный фон. А потом с помощью свойств меняем цвет фона надписей страниц и подстраниц. А если их этих страниц много.
Можете пояснить?
Здравствуйте.
При выборе цветовой схемы, задаётся цвет фона мнемосхемы и цвет шрифта. Панель страниц и панель подстраниц автоматически получают на 20% более тёмный цвет, чтобы не сливаться с цветом мнемосхемы. Если цвет кнопок у страниц или подстраниц не устраивает и его нужно изменить, то нужно выделить страницу/подстраницу и изменить соответствующе свойство. Это нужно сделать один раз для каждой страницы/подстраницы во время разработки проекта.
Добрый день!
Во всех генерируемых отчётах последняя строка данных всегда переносится на новую страницу. Попробовала в словаре менять свойства данных и заголовка, и итога данных - результат тот же - одна строка всегда на новой странице несмотря на то, что на предыдущей полно места.
Здравствуйте!
При большом количестве однотипных переменных удобно экспортировать их в Эксель и там менять имена. Но при импорте обратно в скаду удобнее если бы был запрос на добавление переменных либо перезапись имеющихся. В нынешнем виде работает только добавление и в таком случае переменные дублируются что не очень удобно. Возможно ли добавить такую возможность в скаду?
Вячеслав, такая возможность есть.
https://simple-scada.com/help/manual/variable-import-csv.html
ЦитироватьВажно! Если необходимо, чтобы совпадающие по имени переменные обновили свои свойства, нужно нажать кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре.
Здравствуйте уважаемые!
При выделении нескольких объектов, нам дана возможность изменять общие свойства этих объектов. Но если мы в момент изменения свойства цвета нажимаем отмена(ну передумали мы менять цвет и теперь хотим поменять другое свойство), то все выделения сбрасываются и приходится все объекты выделять по новой :o. Можно сделать чтоб такого не происходило? Пожалуйста!!!
Цитата: Елена от 19 ноября 2020, 09:41:22Во всех генерируемых отчётах последняя строка данных всегда переносится на новую страницу.
Можете выслать папку проекта для проверки на support@simple-scada.com?
Цитата: Вячеслав от 19 ноября 2020, 22:21:50При большом количестве однотипных переменных удобно экспортировать их в Эксель и там менять имена. Но при импорте обратно в скаду удобнее если бы был запрос на добавление переменных либо перезапись имеющихся.
Имена менять таким образом нельзя, т.к. сравнение идёт по ID. Т.к. две переменных с одинаковым именем не может существовать в проекте, для правильной смены имён пришлось бы сначала дать всем переменным случайные уникальные имена, а затем взять имена из .csv-файла, что существенно замедлит импорт. Поэтому в ближайшее время не планируем добавлять возможность смены имён через импорт/экспорт.
Цитата: deldemo от 20 ноября 2020, 08:41:15Но если мы в момент изменения свойства цвета нажимаем отмена(ну передумали мы менять цвет и теперь хотим поменять другое свойство), то все выделения сбрасываются и приходится все объекты выделять по новой
Исправим в ближайшем обновлении.
Добрый день.
Просьба добавить возможность автомасштабирования шкалы в трендах в зависимости от минимального и максимального значения переменной в отображаемом периоде. Сейчас очень неудобно просматривать тренды с большим диапазоном значений переменной. Например, наработка устройства в минутах. В течении года она может быть от 0 до 550000. Но если смотреть тренд этой наработки за определенный час, то с учетом такой огромной шкалы это всегда просто прямая линия. Или переменные с пиками, например, вибрация, обычное значение от 0 до 5, но редко возможны пики до 100. И если делать делать шкалу от 0 до от 5, то не видны пики, а если от 0 до 100, то текущее значение превращается практически в прямую около 0.
Здравствуйте.
Пожелание обязательно учтем. В обычном клиенте (https://simple-scada.com/help/manual/client-trends-view.html) шкалы трендов можно перемещать по вертикали при помощи курсора, а масштабировать колесиком мыши (если включена опция "Масштаб и перемещение шкалы (https://simple-scada.com/help/manual/editor-settings.html#set_trends)"). При клике ПКМ по шкале произойдет возврат к оригинальному виду шкалы. В web-клиенте такой возможности пока нет.
Цитата: Simple_Scada от 26 ноября 2020, 11:07:10В обычном клиенте шкалы трендов можно перемещать по вертикали при помощи курсора, а масштабировать колесиком мыши
Да, я знаю про такую возможность. Но если шкала достаточно большая, то крутить и таскать шкалу мышкой нужно оочень долго чтобы хоть как-то приблизить.
Добрый день, давно хотел задать вопрос по отчетам, в общем суть вопроса, предположим, я создаю отчет, и в самом низу делаю сводную строку, в которой, считается сумма по колонке, и вот в чем вопрос, заметил, что если создавать одностраничный отчет , то все в сводной строке считается, но если уйдет на вторую и последующие страницы отчета, то считает только то, что находится на одной странице со сводной строкой, также заметил, что если на последней странице 1 строка, то значения в сводной строке нулевые.
Здравствуйте.
Сводная строка расположена на бэнде "Итог данных" или на другом бэнде? Возможно у Вас в расчете суммы диапазон расчета указан: "Страница". Если нужно получить сумму по всему отчету, то в диапазоне расчета должно быть указано "Отчет". Также, если требуется рассчитать сумму и один раз вывести ее в конце отчета, то нужно использовать бэнд "Итог отчета". Если не разберетесь, пришлите проект для проверки на support@simple-scada.com и укажите, о каком отчете идет речь.
Здравствуйте!
Работаю со сборным проектом, который затем приходится резать на части для разных объектов. Каждый раз с новой версией приходится удалять вручную переменные для каждого объекта.
Могли бы вы добавить функцию удаления групп переменных по горячей клавише? Либо функцию выбора множества групп переменных при помощи Shift+?
Здравствуйте.
Да, в будущих версия постараемся упростить удаление групп переменных через горячие клавиши.
Здравствуйте.
Предлагаю при двойном клике мышкой по объекту переходить в инспектор объектов.
Сейчас это можно сделать по Ctrl+Enter, но это немного не удобно, хоть и не смертельно.
И еще при переходе в инспектор, если у объекта нет такого свойства, которое было выбрано на предыдущем объекте, делать активным не X а Имя.
Здравствуйте.
Учтем и обсудим данные пожелания.
Добрый день, подскажите скрипт, как можно открыть текстовый файл, для чтения м переместить курсор на последнюю строку, для её чтения.
Здравствуйте.
Придется читать весь файл построчно, т.к. строки текстового файла имеют переменную длину и заранее неизвестно в какой позиции начинается последняя строка.
Здравствуйте!
При создании подстраницы например subpage5 и последующим ее удалением (случайно), новая подстраница уже имеет имя subpage6 и так далее. То есть получается пропуск в нумерации. Заново вставить подстраницу subpage5 программа не дает, сообщая что такая подстраница уже существует. Но ведь на экране ее нет так как я уже ее удалил. Как мне заново вставить подстраницу с нужным мне порядковым номером?
Здравствуйте.
Если у страницы есть несколько подстраниц, то удаление подстраницы происходит полностью, имя подстраницы освобождается, объекты подстраницы удаляются. Если же у страницы есть только одна подстраница, то при нажатии на кнопку удаления подстраница не удалится, а просто скроется кнопка подстраницы (имя останется занято и объекты подстраницы тоже останутся). Причина в том, что страница не может существовать без подстраниц. Поэтому, если Вы хотите полностью удалить подстраницу, то сначала создайте новую подстраницу (чтобы у страницы их было несколько) и затем удалите ненужную подстраницу.
У страницы несколько подстраниц. Порядок хочу устроить такой: subpage 1,2,3,4,5,6,7 и так далее.. Но случайно удаленная subpage 5 теперь никак не добавляется. Добавляются подстраницы с следующими номерами 6,7.. При попытке исправить подстраницу например 7 на 5 программа пишет что 5 подстраница занята но на экране то ее нет! Как ее найти?
Значит она принадлежит другой странице (но скрыта). Выберите её в верхнем раскрывающемся списке инспектора объектов (https://simple-scada.com/help/manual/object-inspector.html) и посмотрите на какую страницу будет выполнен переход.
Чтобы лучше понять принцип создайте новый проект в редакторе и попробуйте добавлять страницы, периодически просматривая список инспектора объектов. Вы увидите, что при создании новой страницы всегда создаётся новая подстраница (скрытая). Чтобы она появилась нужно нажать кнопку добавления подстраницы. Если же не получается понять принцип, то можете прислать нам проект на support@simple-scada.com, мы укажем какой странице принадлежит подстраница "Subpage5".
Здравствуйте!
При работе над созданием "трендов" и "алармов (сообщений)" не заметил возможности группового копирования, переноса и вставки. Для нового объекта добавлять тренды приходится по одному путем дублирования, вырезания и последующей вставки. Дело это довольно однообразное и утомительное при создании похожих объектов в количестве десятков и сотен штук. Так же хотелось бы иметь возможность выделения,копирования, вставки части текста в сообщениях и "трендах". Возможно ли что это будет реализовано в будущем?
у меня есть переменная "A : integer".И есть обработчик события какого-то. В нем мне надо проверить содержание ячейки в таблице "tbl". "A" у меня оказалось равно "9", а строк в таблице оказалось "7".
Вопрос:
if (a>=0) and (a<tbl.RowCount) and (tbl.GetCell(0,a)) then
"чтото"
end;
"чтото" просто не выполнется? т.к. (a>=0) and (a<tbl.RowCount) явно не срабатывает ,
или произойдет ошибка в скрипте, т.к. (tbl.GetCell(0,a)) ячейки не существует?
Это скорее пожелание. Я понимаю, что сейчас можно скопировать в буфер обмена элементы окна,
перейти в другой проект, создать новое окно, вставить из буфера обмена элементы.
Может экспорт - импорт какой организовать. А еще проверьте Ctrl+V при отмене изменений в тексте. Такая Х недо получается.
Здравствуйте.
Вячеслав, если требуется создать множество однотипных сообщений, то можно использовать шаблонные сообщения (https://simple-scada.com/help/manual/templatemessage.html). В будущем мы также планируем добавить возможность создания шаблонных трендов. Пожелания учтем и обсудим.
dima_k, см. описание функции GetCell (https://simple-scada.com/help/script/tgetcell.html). Данная функция вернет nil, если ячейка не существует. Если требуется в скрипте работать с ячейкой полученной через GetCell, то нужно сначала проверить, что ячейка существует - см. пример №2 по ссылке (https://simple-scada.com/help/script/tgetcell.html). Если этого не сделать, то при выполнении скрипта может произойти попытка работы с несуществующей ячейкой, из-за чего возникнет исключение и выполнение скрипта прервётся. Исключение отобразится в журнале сервера (https://simple-scada.com/help/manual/server-journal.html). Пожелания учтем.
Здравствуйте!
Существует ли у элемента "Текст" возможность переноса текста на следующую строку ниже? Очень неудобно когда длинный текст не умещается в границах элемента на одной строке.
Здравствуйте.
Текст размещенный в объекте "Текст" автоматически переносится если не умещается в ширину объекта - см. скриншот во вложении. Поэтому, не совсем понятно, о каком именно переносе Вы говорите, пришлите скриншот, чтобы было понятно о чем речь.
Вот посмотрите перенос текста в данном случае отсутствует. В окнах в элементе текст перенос почему то работает. ???
Перенос осуществляется по словам. Как видно на скриншоте, у Вас в тексте нет пробелов, т.е. это по сути одно слово, а значит и переносить нечего. Можете добавить в текст пробелы, тогда перенос будет срабатывать.
Здравствуйте!
Появится ли возможность поворота элемента на 90 градусов? У меня на объектах есть трубопроводы которые нужно отразить как горизонтально так и вертикально. Если есть горизонтальный трубопровод с привязанными переменными то его проще повернуть одним движением чем заново рисовать и привязывать переменные.
Уже как-то поднимал вопрос о масштабировании, вот еще просьба появилась.
Можно в окне редактирования программ для масштабирования текста добавить еще пару плюсиков вверх, а то сейчас даже с макс увеличением все мелковатое.
Вот два скриншота с 4К с увеличением 0 и +1. +2+3 явно не помешали бы.
И еще было б неплохо редакторы программ и переменных сделать отдельными окнами,- на 27" 4К мониторе или на системе с несколькими мониторами это позволило бы эффективнее использовать свободное пространство, да и в работе удобнее чтоб все было на виду, а не переключаться между разными редакторами.
Здравствуйте.
Я переместил папку Users на другой диск, и сервер перестал видеть проект. Как можно изменить путь к папке Projects?
Здравствуйте.
Вячеслав, добавление возможности поворота трубопровода на 90 градусов не планируется.
Victor_P, под мониторы 4К необходимо адаптировать весь интерфейс, в ближайшем будущем таких изменений не планируется, в будущем возможно появятся. Редакторы программ и переменных разделять на отдельные окна не планируется.
UPD: в обновлении 2.5.9.0 появилась возможность задать масштаб интерфейса редактора.
alan54, произведите повторную установку Simple-Scada (https://simple-scada.com/help/manual/installation.html) и на шаге выбора директории пользовательских данных (https://simple-scada.com/help/manual/installation.html?anchor=setdir) укажите новый путь. После установки, скопируйте папку с проектом в указанную директорию. Если в проекте используются пользовательские изображения, то их также нужно перенести в новое расположение.
Цитата: Simple_Scada от 17 февраля 2021, 10:15:56Здравствуйте.
alan54, произведите повторную установку Simple-Scada (https://simple-scada.com/help/manual/installation.html) и на шаге выбора директории пользовательских данных (https://simple-scada.com/help/manual/installation.html?anchor=setdir) укажите новый путь. После установки, скопируйте папку с проектом в указанную директорию. Если в проекте используются пользовательские изображения, то их также нужно перенести в новое расположение.
Получилось, спасибо.
Добрый день! Имеем несколько АСУТП в разных технологических зданиях. Для диспетчеризации требуется обзорная экранная форма (видеопанель). Для каждого АСУТП и техпроцесса в редакторе проектов -> Сообщения созданы группы (папки) особо важных сообщений. Диспетчеру для межцеховой координации нескольких зданий важно параллельно в режиме реального времени наблюдать за определёнными группами сообщениями одновременно нескольких зданий. Т.е. нужно вывести несколько компонентов «Список сообщений» на мнемосхему, сообщения в списках должны выводиться только от назначенной группы (папки). Пока такого функционала нет. Дополнительно электроники, обслуживающие АСУТП давно просят раздельные списки сообщений по группам DI/DO и т.д. и т.п. Существуют ли планы и возможность ввести такой функционал на ближайшие 3-6 месяцев (система диспетчеризации пока на стадии проектирования и выбора средств)?
Здравствуйте!
Прошу подсказать решение по следующему вопросу. В проекте имеется скрипт с логическим выражением над переменными. В данный момент в строке 10 переменных и в результате этого строка не помещается в редакторе скриптов. Конец строки уже не виден и не понятно как дальше добавлять переменные к выражению. Возможен ли какой то способ деления строки или переноса на строку ниже и так далее для более удобного восприятия выражения на экране? ???
Предложение к улучшению скады:
Часто при разработке скады приходится менять свойства переменных в редакторе переменных (Шкалы, Архивация, и др. свойства). Когда переменных много, тратится очень много времени для изменения параметров по одной переменной, так как нет групповых операций с переменными. В этом случае очень удобно менять эти свойства в таблице Excel через Экспорт/Импорт переменных, но тут возникает другая проблема: Для импорта переменных необходимо удалить эти переменные из проекта, т.к скада пропускает их при совпадении имени переменной в проекте и переменной в таблице. А при удалении из проекта, переменные отвязываются от объектов скады.
В итоге остается 2 варианта:
1 - Изменять свойства переменных по одному (долго).
2 - Изменять свойства переменных в Excel через экспорт (быстро), удалять из проекта эти переменные и перепривязывать их к объектам (долго).
Решение: При импорте не только добавлять новые переменные, но и обновлять свойства (если они отличаются) при совпадении имени переменной в проекте и таблице.
Цитата: GEW от 19 февраля 2021, 08:53:41Т.е. нужно вывести несколько компонентов «Список сообщений» на мнемосхему, сообщения в списках должны выводиться только от назначенной группы (папки). Пока такого функционала нет. Существуют ли планы и возможность ввести такой функционал на ближайшие 3-6 месяцев (система диспетчеризации пока на стадии проектирования и выбора средств)?
Да, такие планы есть, и возможность выбора групп для компонента "Список сообщений" обязательно будет добавлена. Но, к сожалению, мы не может назвать точный срок, т.к. вынуждены отвлекаться на другие задачи.
Цитата: Вячеслав от 19 февраля 2021, 09:59:45Здравствуйте!
Прошу подсказать решение по следующему вопросу. В проекте имеется скрипт с логическим выражением над переменными. В данный момент в строке 10 переменных и в результате этого строка не помещается в редакторе скриптов. Возможен ли какой то способ деления строки или переноса на строку ниже и так далее для более удобного восприятия выражения на экране? ???
Что именно мешает перенести строку? Приведите пример кода. Обычно никогда не пишут код в одну строку, условия и строки всегда можно перенести.
Galkin, всё что Вы описали, уже есть в скаде.
Цитата: Galkin от 19 февраля 2021, 11:19:34Часто при разработке скады приходится менять свойства переменных в редакторе переменных (Шкалы, Архивация, и др. свойства). Когда переменных много, тратится очень много времени для изменения параметров по одной переменной, так как нет групповых операций с переменными.
Групповые операции есть. Выделите несколько переменных, нажмите кнопку "Редактировать" и измените нужные свойства. Это описано в руководстве по ссылке (https://simple-scada.com/help/manual/variable-editor.html).
ЦитироватьВ этом случае очень удобно менять эти свойства в таблице Excel через Экспорт/Импорт переменных, но тут возникает другая проблема: Для импорта переменных необходимо удалить эти переменные из проекта, т.к скада пропускает их при совпадении имени переменной в проекте и переменной в таблице. А при удалении из проекта, переменные отвязываются от объектов скады.
Не нужно удалять переменные, В разорвёте связи и потеряете ID-переменных и их архивные данные. Прочитайте текст в окне импорта. Там написано, что можно выполнить импорт удерживая клавишу SHIFT, чтобы свойства переменных обновились. Также об этом написано в руководстве по ссылке (https://simple-scada.com/help/manual/variable-import-csv.html).
Вот такой скрипт:
begin
Atten_M1.Value:=(ID1_Atten.AsBool or ID2_Atten.AsBool or ID3_Atten.AsBool or ID4_Atten.AsBool or ID5_Atten.AsBool or ID6_Atten.AsBool or ID7_Atten.AsBool or ID8_Atten.AsBool or ID9_Atten.AsBool or ID10_Atten.AsBool);
Focus_M1.Value:=(ID1_Focus.AsBool or ID2_Focus.AsBool or ID3_Focus.AsBool or ID4_Focus.AsBool or ID5_Focus.AsBool or ID6_Focus.AsBool or ID7_Focus.AsBool or ID8_Focus.AsBool or ID9_Focus.AsBool or ID10_Focus.AsBool);
end.
Чтобы код был удобочитаемым, делают обычно так:
begin
Atten_M1.Value := (
ID1_Atten.AsBool or ID2_Atten.AsBool or ID3_Atten.AsBool or ID4_Atten.AsBool or
ID5_Atten.AsBool or ID6_Atten.AsBool or ID7_Atten.AsBool or ID8_Atten.AsBool or
ID9_Atten.AsBool or ID10_Atten.AsBool
);
Focus_M1.Value := (
ID1_Focus.AsBool or ID2_Focus.AsBool or ID3_Focus.AsBool or ID4_Focus.AsBool or
ID5_Focus.AsBool or ID6_Focus.AsBool or ID7_Focus.AsBool or ID8_Focus.AsBool or
ID9_Focus.AsBool or ID10_Focus.AsBool
);
end.
Обратил внимание, что если в TM_Text.Text записать строку 'String ', то в объекте останется все, без пробелов в конце. Это очень сильно сбивает с толку и усложняет работу со строками. Пожалуйста, сделайте так, чтобы строковые проперти сохраняли свой первозданный вид.
Второе замечание/пожелание: в инспекторе объектов формировать список свойств в алфавитном порядке, как в том же делфи. Это намного упростит поиск свойств
Цитата: metamorphogenesis от 19 февраля 2021, 14:31:06...в инспекторе объектов формировать список свойств в алфавитном порядке, как в том же делфи. Это намного упростит поиск свойств
И в зависимости от языка интерфейса получить получить совершенно разное расположение свойств? Нет уж, пусть будет как есть сейчас.
А в каком порядке сейчас? Может просто не обратил внимания, но не заметил алфавитного порядка ни в русском ни в английском интерфейсе. С русского был вынужден перейти на англ., потому что инспектор объектов с русским языком диссонируют (остаточное от опыта работы в делфи) и трудно все время сопоставить русские свойства с англ. Скриптами.
В таком случае, лучшим решением была бы возможность включить сортировку свойств в настройках среды
Доброй ночи.
Подскажите, у меня в скаду из aropc приезжает пакет MQTT, как тег, вида
{"T1":70, "P1":2.5}. Как мне разобрать его скриптами на два внутренних тега.
Здравствуйте.
Цитата: master74 от 21 февраля 2021, 02:51:30... у меня в скаду из aropc приезжает пакет MQTT, как тег, вида
{"T1":70, "P1":2.5}. Как мне разобрать его скриптами на два внутренних тега.
Для выделения подстроки, содержащей значение тега, необходимо определить индексы левого и правого ограничителей подстроки.
Правым ограничителем являются одиночные символы "запятая" или "закрывающая фигурная скобка".
Левым ограничителем, в зависимости от способа выборки подстроки, может быть или "двоеточие" (последовательная выборка подстрок) или уникальное имя или часть имени тега завершающаяся символом "двоеточие" (доступ к произвольной подстроке).
Скрипт выборки подстроки по имени тега (выборка произвольной подстроки). Скрипт последовательной выборки см. пример во вложении.
function TagSubString(TagName: string; InputString: string): string;
var i: integer;
aStr: UTF8String;
begin
i := StrPos(TagName, InputString); // поиск левого ограничителя
if i = 0 then begin Result := ''; exit; end; // ОШИБКА: тега с таким именем нет
aStr := UTF8Copy(UTF8Encode(InputString), i + Length(TagName),
Length(InputString)); // обрезать строку по началу подстроки
i := StrPos(',', UTF8ToString(aStr)); // индекс правого ограничителя "запятая"
if i = 0 then i := StrPos('}', UTF8ToString(aStr)); // если "запятая" отсутствует, то проверить на "скобку"
if i = 0 then begin Result := ''; exit; end; // ОШИБКА: отсутствует правый ограничитель
Result := UTF8ToString(UTF8Copy(aStr, 1, i - 1)); // подстрока
end;
var aStr: string;
begin
aStr := TagSubString('"T1":', MQTTstring.AsStr); // выделение подстроки тега "T1":
if aStr <> '' then Tag1.Value := StrToInt(aStr); // контроль наличия тега и перевод в целое
aStr := TagSubString('"P1":', MQTTstring.AsStr); // выделение подстроки тега "Р1":
if aStr <> '' then Tag2.Value := StrToFloat(aStr); // контроль наличия тега и перевод в вещественное
end.
Добрый вечер. Спасибо за ответ, попробую.
Не сочтите за идиота, я в ООП и Делфи дервянный, чистый С + МК(AVR, STM32, ...) , для меня все что не С, все от дьявола.
1. Есть ли возможность принятый пакет привести к типу JSON и работать с ним стандартными методами. Хотя хотелось бы более полного описания классов и методов.
2. Есть ли возможность в демо64 вызвать внешнюю программу, по изменению значения внешнего тега (arOPC+MQTT), для его парсинга, с возвратом значений в виртуальные теги.
Спасибо за ответ.
Заранне объяснюсь, если дело дойдет до коммерческой реализации, экономить на Вас никто не будет, каждый должен кушать свой хлеб и нести ответственность за свою работу.
Ваш проэкт интересный, семь футов под килем и долгого плавания (я не собираюсь 100000 переменных по MQTT загнать в скаду одним тегом и пропарсить его на внутренние теги, есть заморочки с ТЗ).
Также хотелось, чтоб теги из разных групп с одинаковыми именами были аутентичными.
Парни. Еще очень не хватает возможности редактировать группирование скриптов и переменных. Перемещать из папки в паку. В процессе освоения скады и масштабирования проекта группирование часто приходится менять.
Цитата: master74 от 22 февраля 2021, 22:20:581. Есть ли возможность принятый пакет привести к типу JSON и работать с ним стандартными методами. Хотя хотелось бы более полного описания классов и методов.
Это (https://simple-scada.com/help/script/tmhttpresp-nodes.html) не оно?
Цитата: master74 от 22 февраля 2021, 22:20:581. Есть ли возможность принятый пакет привести к типу JSON и работать с ним стандартными методами. Хотя хотелось бы более полного описания классов и методов.
Встроенных функций для работы с JSON пока нет. В будущем возможно добавим. Сейчас JSON можно разбирать только вручную проходя по символам в строке и извлекая нужные части.
Цитата: master74 от 22 февраля 2021, 22:20:582. Есть ли возможность в демо64 вызвать внешнюю программу, по изменению значения внешнего тега (arOPC+MQTT), для его парсинга, с возвратом значений в виртуальные теги.
Вызвать программу можно, но получить от неё результат не получится. Если программа имеет HTTP API, то можно отправлять ей запросы и получать ответы (https://simple-scada.com/help/script/requesthttp.html).
Цитата: metamorphogenesis от 23 февраля 2021, 09:50:14не хватает возможности редактировать группирование скриптов и переменных. Перемещать из папки в паку. В процессе освоения скады и масштабирования проекта группирование часто приходится менять.
Такая возможность давно есть. Смотрите руководство по ссылке (https://simple-scada.com/help/manual/move-group.html). Группировать можно скрипты, переменные, окна и сообщения.
Новая версия 2.5.3.0 выложена на яндексклауд, в Украине яндекс заблокирован, скачать невозможно.
Victor_P., отправили ответ Вам на почту.
Добрый день.
Есть два вопроса/предложения.
1. При перезапуске "Editor" "замороженные" объекты типа "Шаблон" перестают быть такими. Приходится каждый раз, снова, из "замораживать".
2. Не нашел функций, чтобы из скриптов управлять пользователями. Так как пользователи хранятся не в базе данных, не получается вносить изменения в режиме "RunTime". У заказчика имеются требования об ограничении срока действия пароля и другие требования связанные с пользователями. Есть ли возможность редактировать пользователей не только из редактора? Если нет, планируется ли такая возможность?
Здравствуйте.
Цитировать1. При перезапуске "Editor" "замороженные" объекты типа "Шаблон" перестают быть такими. Приходится каждый раз, снова, из "замораживать".
Спасибо за информацию. Исправим в ближайшем обновлении.
ЦитироватьЕсть ли возможность редактировать пользователей не только из редактора? Если нет, планируется ли такая возможность?
Сейчас редактировать можно только через редактор. В ближайшем будущем добавлять такую возможность не планируем, но позже - возможно.
Здравствуйте.
Предложение. Сделайте у TM_ComboBox свойство, которое вызывалось бы, когда пользователь выбрал элемент из списка.
Даже, если он выбрал уже выбранный элемент. Просто нужна реакция именно на выбор пользователя, а не на изменение
привязанной переменной.
Спасибо.
И вопрос.
При вызове ShowMessageClient можно ли как-то изменить ширину окна и шрифт сообщения?
И косячок.
В редакторе скриптов, при задании поиска не происходит скролирование к первому вхождению, если оно не на экране.
Подсветка происходит, но где оно - не понятно.
Если вхождений больше одного, то хотя бы работают клавиши перехода к следующему/предыдущему вхождению.
А если одно - придется самому скролом крутить. А скрипт длинный бывает. И строка поиска короткая бывает - это выделение и не заметишь.
Здравствуйте.
ЦитироватьСделайте у TM_ComboBox свойство, которое вызывалось бы, когда пользователь выбрал элемент из списка.
Скорее всего добавим такое событие в будущих обновлениях.
ЦитироватьПри вызове ShowMessageClient можно ли как-то изменить ширину окна и шрифт сообщения?
Нет, если нужно уникальное окно, то можно создать окно и вызывать его через ShowAll (https://simple-scada.com/help/script/wshowall.html), чтобы отобразить на всех клиентах.
ЦитироватьВ редакторе скриптов, при задании поиска не происходит скролирование к первому вхождению, если оно не на экране.
Добавим скролл к первому найденному.
Можно, но оно будет не модальным. Иногда надо, чтобы пока ответа не получено, оператор не мог бы ничего сделать. А так он может управлять элементами, находящимися за окном.
Предложение:
Особенностью данной скады является то, что пространство переменных только одно и в его рамках они все должны иметь уникальные имена, что при большом количестве объектов, особенно однотипных очень неудобно, после работы с другими подобными продуктами, это очень напрягает.
Было бы гораздо удобнее, если бы области внутри разных групп не пересекались, тогда можно было бы тиражировать переменные, относящиеся к типовому объекту, просто скопировав группу. Например, есть у нас группа group1, в ней три переменные - var1, var2, var3. Мы скопировали group1, получили group2, group3 и т.д., каждая из них будет содержать все те же var1, var2, var3.
А из скриптов обращаться к ним можно через название группы - grop1.var1, group2.var1 и т.д.
Цитата: dima_k от 14 апреля 2021, 17:45:26Можно, но оно будет не модальным. Иногда надо, чтобы пока ответа не получено, оператор не мог бы ничего сделать. А так он может управлять элементами, находящимися за окном.
Да, собственное модальное окно сейчас создать нельзя. Возможно добавим модальные окна в будущем.
Цитата: strsБыло бы гораздо удобнее, если бы области внутри разных групп не пересекались, тогда можно было бы тиражировать переменные, относящиеся к типовому объекту, просто скопировав группу. Например, есть у нас группа group1, в ней три переменные - var1, var2, var3. Мы скопировали group1, получили group2, group3 и т.д., каждая из них будет содержать все те же var1, var2, var3.
К сожалению это не подойдёт практически всем пользователям, т.к. переменные будут привязаны к группам, а вложенность групп часто довольно большая и имена переменных станут чрезмерно длинными. Также после переноса переменных из группы в группу, придётся переписывать скрипты. Поэтому мы не рассматриваем такой вариант.
Названия групп можно включить в имена переменных, чтобы переменные назывались "grop1_var1", "group2_var1" и т.д. Для тиражирования и быстрого переименования переменных и групп можно использовать экспорт в Excel (https://simple-scada.com/help/manual/export-var.html) и импорт (https://simple-scada.com/help/manual/variable-import-csv.html).
А как насчет внедрения типа переменных "структура", как в объектно-ориентированных языках? Чтобы в одной переменной было некоторое множество полей, к которым можно обращаться по отдельности.
Цитата: Simple-Scada от 19 апреля 2021, 10:14:02Цитата: dima_k от 14 апреля 2021, 17:45:26Можно, но оно будет не модальным. Иногда надо, чтобы пока ответа не получено, оператор не мог бы ничего сделать. А так он может управлять элементами, находящимися за окном.
Да, собственное модальное окно сейчас создать нельзя. Возможно добавим модальные окна в будущем.
Ждем с нетерпением.
Цитата: strs от 19 апреля 2021, 13:03:13А как насчет внедрения типа переменных "структура", как в объектно-ориентированных языках? Чтобы в одной переменной было некоторое множество полей, к которым можно обращаться по отдельности.
В Simple-Scada 2 уже используется объектно-ориентированный язык, в скриптах (object pascal). При необходимости Вы можете написать любые собственные классы, структуры, создавать экземпляры этих классов и использовать их как угодно. Подробный пример для классов есть в руководстве (https://simple-scada.com/help/script/creatingclasses.html). Можно сделать структуру-контейнер для реальных переменных и работать с переменными через эту структуру. Но получится скорее всего что-то страшное, если нужна связь с переменными OPC-сервера. Если же нужны локальные структуры внутри скады, то ничего не мешает объявить их в глобальном модуле в скриптах.
В меню редактирования переменных такой функционал (встроенный каким-то образом в интерфейс, как сделано сейчас создание обычных переменных) точно не появится в ближайшем будущем.
Цитата: Simple-Scada от 24 апреля 2020, 10:00:59И если нет возможности, то планируется ли - принимать команды через бота?
Нет, принимать команды от бота нельзя. В ближайшем будущем добавлять такие возможности не планируем, но в дальнейшем возможно добавим.
Обидно конечно.
А можно получателей телеграмм сообщений группировать?
Например SendTelegram указать не ID получателя, а группу получателей?
Группы формировать, так же в настройках.
ЦитироватьА можно получателей телеграмм сообщений группировать?
Например SendTelegram указать не ID получателя, а группу получателей?
Группы формировать, так же в настройках.
Конечно, можно создать группу в Telegram и из скады отправлять сообщения в неё, вместо отдельных чатов. Также можно отправлять сообщения сразу в несколько отдельных чатов, перечисляя их ID через запятую в параметрах процедуры SendTelegram (https://simple-scada.com/help/script/sendtelegram.html).
Так безусловно можно, но надо в коде проекта перечислять ChatID. А если несколько проектов и люди там не всегда одни и теже. Они могут меняться.
И проще в настройках создать группы.
Здравствуйте! Подскажите, возможно ли написав Телеграмм боту сообщение (например) "ОТЧЁТ", в ответном сообщение приходил отчёт в ПДФ формате за сутки. У нас формирование и отправка отчёта в телеграмм бота реализована по нажатию кнопки их SCADA или по времени, но хотелось бы производить запросы из самого телеграмма. Также например, по сообщению (например) "Температура теплосети" приходила текущая температура теплосети и т.п.
Здравствуйте.
Такой возможности нет.
Было бы очень замечательно, если бы была возможность менять шрифт или хотя бы его размер в редакторе кода, а также если бы вы сделали отдельный цвет для операторов (хотя бы присваивания)
Увеличить/уменьшить размер шрифта (на +-2 пикселя) можно через меню "Действия" -> "Увеличить шрифт" / "Уменьшить шрифт", или используя соответствующие им горячие клавиши (https://simple-scada.com/help/manual/hot-keys.html?anchor=script_editor).
Цитироватьтакже если бы вы сделали отдельный цвет для операторов (хотя бы присваивания)
В редакторе кода используется стандартная подсветка синтаксиса языков Pascal/Delphi. Операторы присваивания (:=) в Delphi/Pascal обычно не подсвечиваются (как и в большинстве других популярных языков). Поэтому мы не планируем что-либо менять в плане подсветки синтаксиса.
невнимательность. Упустил из внимания возможность менять размер шрифта.
Цитата: Simple-Scada от 17 мая 2021, 12:13:09Увеличить/уменьшить размер шрифта (на +-2 пикселя) можно через меню "Действия" -> "Увеличить шрифт" / "Уменьшить шрифт", или используя соответствующие им горячие клавиши (https://simple-scada.com/help/manual/hot-keys.html?anchor=script_editor).
Ребята. Наверное, ваш продукт имеет лучшую на рынке скад (уж отечественных - так точно, если не единственный вообще) интеграцию с telegram! Бот вызывает восхищение. И у него есть все шансы стать идеальным - не хватает реализации обратной связи.
Знаю, что я не первый об этом упоминаю, но и вы знайте, что вашим пользователям эта опция весьма нужна.
На мой взгляд было бы достаточно передать в скаду строку, адресуемую боту и строку, идентифицирующую отправителя - чтобы скада знала, откуда пришло сообщение, из диалога или чата (но хотя бы только строку, идентификацию можно реализовать и синтаксисом самой строки). А что делать с полученной строкой - уже задача программиста, разрабатывающего проект.
Еще среди пожеланий:
• так же, как и в лейблах и подписях к полям, сделайте задание положение текста в самих полях, и альфаканал фона поля.
Надеемся, верим в вас и терпеливо ждем) Спасибо за Simple Scada.
Цитироватьне хватает реализации обратной связи.
В будущем, возможно, добавим скрипты для обработки команд поступающих боту, но скорее всего не в самое ближайшее время.
Цитироватьсделайте задание положение текста в самих полях, и альфаканал фона поля.
Выравнивание текста в поле будет в одном из будущих обновлений. За прозрачность фона поля отвечает свойство "Прозрачность" (Alpha).
Здравствуйте!
Когда происходит нарушение верхней или нижней границы переменной и в настройках включено отображение сообщений об этом, если у переменной есть описание, тогда в формируемом сообщении будет именно описание - это здорово, это удобно и информативно.
Но когда пользователь редактирует значение переменной или ее аварийные границы, в журнале действий оператора отображаются не описания этих переменных, а имена. Это неудобно. Можно ли сделать так, чтобы в журнале действий тоже отображались описания переменных, а не имена?
Здравствуйте.
Сейчас нельзя изменить формат сообщений о действиях оператора. Попробуем что-нибудь придумать в ближайших обновлениях.
Цитата: Simple-Scada от 03 июня 2021, 10:13:50Сейчас нельзя изменить формат сообщений о действиях оператора. Попробуем что-нибудь придумать в ближайших обновлениях.
Было бы неплохо. Еще вдогонку пожелание: дайте возможность сообщения о переходе границы относить к какой-либо группе сообщений - так было бы удобнее потом их просматиривать, пообъектно.
В редакторе кода при навигации по строке, которая не помещается на экран, с помощью стрелок либо кнопок home/end, перемещается только курсор. Пользователю также следовало бы переместиться к тому же участку строки, где курсор. Пока перемещение возможно только с помощью горизонтального скролла.
Касательно скроллов - чтобы переместить экран, нужно либо попасть на стрелочку по краям скролла, либо на сам ползунок. Попробуйте реализовать быстрый скролл по нажатию в область между стрелкой и ползунком. Например с перемещением сразу же в тот участок кода, который должен быть при перемещении ползунка в эту область скроллбара, ну или хотя бы просто обрабатывать клики по этой области и перемещать на равные интервалы в соответствующую сторону.
Внесем изменения в будущие обновления.
Есть еще одно пожелание: можно ли сделать так, чтобы при построении отчета о дискретных переменных (например отчет по времени наработки) можно было выбирать отдельный бит из архивируемой 16-битной переменной? Чтобы не городить скрипт по предварительному извлечению отдельных битов и не архивировать их по отдельности.
В ближайшем будущем такого точно не добавим. Если с переменными планируется работать отдельно, или просматривать их в виде отдельных трендов, то правильнее всего разбить их на отдельные переменные.
Простите, что пишу тут так много, но таки многих вещей мне в этой скаде не хватает после перехода с других.
Например, очень еще хотелось бы добавить сообщениям параметр "задержка", чтобы оно выдавалось не сразу, а через заданное время, если условие продолжает выполняться (антидребезг опять же). Знаю, что это можно сделать через скрипт, но когда сообщений много это очень неудобно.
Если это уже есть, а я просто не нашел, прошу прощения.
Здравствуйте.
Возможно Вы создаете сообщения по нарушению границ переменной? Если это так, то у переменой можно задать границы (https://simple-scada.com/help/manual/varextra.html), в опции "Сообщения о нарушении границ" выбрать к примеру "Для любых границ", тогда при нарушении границ переменной будут выдаваться автоматически генерируемые сообщения о нарушении граничных значений. Там же имеется возможность задать параметр "Зона нечувствительности (https://simple-scada.com/help/manual/varextra.html)" используемый для выдачи сообщений о нарушении границ переменной. Параметр предназначен для того, чтобы после выхода значения переменной из состояния аварии/предупреждения она не могла вернуться в него вследствие случайных колебаний значения переменной. В настройках проекта (https://simple-scada.com/help/manual/messet.html) имеется возможность задать свой текст для автоматически генерируемых сообщений о нарушении границ. Также, при необходимости можно управлять границами переменных (https://simple-scada.com/help/manual/managing-bounds-var.html) из клиента скады.
Цитата: Simple_Scada от 15 июня 2021, 21:11:36Здравствуйте.
Возможно Вы создаете сообщения по нарушению границ переменной? Если это так, то у переменой можно задать границы (https://simple-scada.com/help/manual/varextra.html), в опции "Сообщения о нарушении границ" выбрать к примеру "Для любых границ", тогда при нарушении границ переменной будут выдаваться автоматически генерируемые сообщения о нарушении граничных значений. Там же имеется возможность задать параметр "Зона нечувствительности (https://simple-scada.com/help/manual/varextra.html)" используемый для выдачи сообщений о нарушении границ переменной. Параметр предназначен для того, чтобы после выхода значения переменной из состояния аварии/предупреждения она не могла вернуться в него вследствие случайных колебаний значения переменной. В настройках проекта (https://simple-scada.com/help/manual/messet.html) имеется возможность задать свой текст для автоматически генерируемых сообщений о нарушении границ. Также, при необходимости можно управлять границами переменных (https://simple-scada.com/help/manual/managing-bounds-var.html) из клиента скады.
Нет, вопрос конкретно о сообщениях, которые строятся на основе дискретных переменных.
Например: в одном проекте заказчик хочет получить сообщение, если ни один из пары насосов не работает, но при этом они работают посменно и до 15 секунд отсутствия обратной связи от двух сразу (в момент смены) допустимы. Нужно выдавать сообщение, если оба насоса выключены более 30 секунд.
Другой пример: контроль связи с удаленным прибором, отсутствие связи до минуты - допустимо, если больше - требуется выдать сообщение.
Столкнулся еще с одной проблемой с сообщениями: есть крипт, который запускается по событию "изменились переменные", который разбирает 16-битную переменную на отдельные биты. С одним из них связано сообщение, если бит=0, выдать аварию. При перезапуске проекта сообщение всегда выдается, подозреваю, потому что сообщения обрабатываются раньше, чем считывается переменная из прибора и срабатывается скрипт. Задержка здесь так же помогла бы наверное.
Вообще, в скриптах я видел возможность не выдавать сообщение, пока переменная не изменится, но в интерфейсе сообщений что-то не нашел. Поправьте, если она там есть.
Здравствуйте.
Для сообщений нельзя добавить задержку - такой функции нет и ее добавление в ближайшем будущем не планируется.
Цитироватьв одном проекте заказчик хочет получить сообщение, если ни один из пары насосов не работает, но при этом они работают посменно и до 15 секунд отсутствия обратной связи от двух сразу (в момент смены) допустимы. Нужно выдавать сообщение, если оба насоса выключены более 30 секунд.
Данную задачу правильнее и проще решить на контроллере и передавать в скаду одну переменную, по которой выдавать сообщение.
Цитироватьконтроль связи с удаленным прибором, отсутствие связи до минуты - допустимо, если больше - требуется выдать сообщение.
Для контроля связи с ПЛК/устройством можно воспользоваться перечисленными ниже способами и например выводить предупреждение при потере связи.
1. Проверять качество нужных тегов - см. свойство IsGoodQuality (https://simple-scada.com/help/script/varisgoodquality.html).
2. Производить пинг ПЛК/устройства - см. процедуру StartPing (https://simple-scada.com/help/script/startping.html).
3. Использовать описанный по ссылке (https://simple-scada.com/help/script/comm-control.html) способ контроля связи.
ЦитироватьПри перезапуске проекта сообщение всегда выдается, подозреваю, потому что сообщения обрабатываются раньше, чем считывается переменная из прибора и срабатывается скрипт.
Все верно. В скрипте по событию "Изменились переменные" можно использовать функцию IsFirstChange (https://simple-scada.com/help/script/isfirstchange.html), с помощью которой можно пропустить первое изменение переменной, что позволит избежать выдачи сообщения при перезапуске проекта.
Здраствуйте, вопрос по форматированию текста - можно ли тест элемента Текст сделать полужирным? На шрифт 24пт вижу только тонкий.
Здравствуйте.
Нет, это невозможно. Все доступные варианты шрифта можно просмотреть через свойство "Шрифт (https://simple-scada.com/help/manual/text.html)".
Понимаю, что целесообразность реализации этой идеи спорна, и у нее минусов столько же, сколько и плюсов, но если в общих чертах: очень хотелось бы, чтобы изображения, используемые в проекте, переносились вместе с проектом.
Если организовать хранение ресурсов в папке проектов, то не будет общей базы своих кастомных изображений, зато можно добавить набор изображений в проект и не терять их при переносе с пк разработки на сервер и не заморачиваться над переносом помимо проекта и изображений.
Компромиссное решение: иметь возможность добавлять изображения и в общий набор (типа public), который доступен всем проектам, и в папку с проектом (типа private), доступный только этому проекту.
Ещё пожелания - компонент ListView, набор моноширных шрифтов для интерфейса и возможность постить ботом в телеграм канале (если когда-то доберётесь до бота и захотите сделать его ещё лучше).
Сможете? (Ну конечно же сможете, для разработчиков такого продукта тяжело найти что-то невозможное) :)
Возможно добавим когда-то возможность хранить изображения в папке с проектом, но не в ближайшем будущем, сейчас есть много значительно более популярных задач.
Доброго дня, коллеги.
1. (критично)
Как я понял из наблюдений, переменная в скаде обновляется только если она обновляется на ОРС сервере. А фильтрация переменной в скаде происходит только во время обновления переменной в скаде.
(https://i.ibb.co/Dr2fHB1/Screenshot-20210707-130027-INKredible.jpg)
Черным я изобразил поведение переменной в ПЛК и соответственно на ОРС. Красным я изобразил поведение фильтрованного значения скады. Как видно, после того, как исходная переменная перестаёт обновляться (например линия остановилась и скорость стала нулевой), переменная в скаде сначала немного приближается к нулевому значению, а затем так же перестаёт обновляться.
Корректнее было бы не прекращать фильтрацию даже при неизменном значении переменной ОРС, то есть реализовать поведение, изображенное зеленым цветом. Значение на выходе фильтра всегда стремится к входному значению, если оно - константа.
2. (не критично)
Также обращаю внимание (если этот момент упущен) на то, что не помещается имя переменной/не подстраивается ширина окошка
(https://i.ibb.co/gzNSCZg/Client-s-Tn2p6x-KXu-cr.png)
3. (не критично)
Также из предложений - когда-то в обозримом будущем реализовать механизм поддержки мультиязычности проекта, например, путем создания набора строк с одним именем и id языка
lang id | 0 | 1 | 2
str name | | |
---------------------------------------------------
greeting | hello | привет | привіт
warning | warning | предупреждение | попередження
error | fault | сбой | збій
...
4. (критично)
Если я привязываю шаблонное окно к барграфу, я не могу его открыть, пока не включу Enabled. Но когда я его включаю, барграф обретает ползунок регулирования и становится трекбаром. Вы могли бы как-то вывести видимость этого ползунка в отдельное свойство, либо же привязать доступность окон к какому-то другому/новому свойству барграфа вместо enabled?
metamorphogenesis, ИМХО, по первому вопросу СКАДА фильтрацию делает правильно. А вот OPC сервер настроен не верно. Видимо в нем в параметрах указано, что при ошибке опроса переменной нужно сохранять ее последнее значение. Измените этот параметр на что-то типа "сбрасывать в 0" и будет вам счастье.
Здравствуйте.
ЦитироватьА фильтрация переменной в скаде происходит только во время обновления переменной в скаде.
Да, скада никогда не создаёт отдельных периодических таймеров для обработки значения переменной и выполняет действия со значением только при изменении переменной. Если нужна постоянная регуляция значения переменной, то нужно использовать контроллер.
ЦитироватьТакже из предложений - когда-то в обозримом будущем реализовать механизм поддержки мультиязычности проекта, например, путем создания набора строк с одним именем и id языка
В будущем обязательно добавим возможности для быстрой смены языка, это уже запланировано.
ЦитироватьЕсли я привязываю шаблонное окно к барграфу, я не могу его открыть, пока не включу Enabled. Но когда я его включаю, барграф обретает ползунок регулирования и становится трекбаром. Вы могли бы как-то вывести видимость этого ползунка в отдельное свойство, либо же привязать доступность окон к какому-то другому/новому свойству барграфа вместо enabled?
Сейчас, можно создать поверх уровня прозрачную фигуру (Shape) и привязать окно к ней, чтобы решить задачу. В будущем, возможно, добавим отдельное свойство, помимо Enabled.
Цитата: Victor_P. от 08 июля 2021, 09:33:05metamorphogenesis, ИМХО, по первому вопросу СКАДА фильтрацию делает правильно. А вот OPC сервер настроен не верно. Видимо в нем в параметрах указано, что при ошибке опроса переменной нужно сохранять ее последнее значение. Измените этот параметр на что-то типа "сбрасывать в 0" и будет вам счастье.
не согласен. Скорость работы линии у меня рассчитывается на контроллере. Когда линия останавливается, она становится равной нулю и остаётся таковой до запуска линии. Никаких проблем с опросом у меня не возникает, это такое же штатное значение, как и любое другое в процессе работы. Только в процессе работы скорость, само собой, не будет постоянной и будет плавать в тех или иных пределах, а вот во время простоя нулевая скорость плавать не может.
Я ничего не говорил о фильтрации в случае, если переменная отвалилась. Я говорил о фильтрации переменной, значение которой стабилизировано, как например, нулевая скорость простаивающего оборудования. Теперь придется городить на плк костыль, чтобы нулевая скорость постоянно менялась и при этом оставалась нулевой (например циклически менять ее значение между 0.00000000001 и
0.00000000002, например)
опять же, когда применяем событие к группе объектов, событие не отображается у индивидуального объекта этой группы. Если выделить объекты в группу (даже если не все, а только два), то отображается
(https://i.ibb.co/1M41ztp/1.png)
(https://i.ibb.co/KyCf2TZ/2.png)
Цитироватьопять же, когда применяем событие к группе объектов, событие не отображается у индивидуального объекта этой группы. Если выделить объекты в группу (даже если не все, а только два), то отображается
Исправим отображение событий в ближайшем обновлении.
при нажатии кнопки Win удаляется выделенный код скрипта из редактора. Исправьте плиз.
И ещё из предложений - реализации систему групп пользователей. Чтобы применять права к группе сразу, потому что мой пример показывает, что может быть список из 10 мастеров и у каждого свой пароль, и в случае каких-то изменений в правах, их нужно делать для каждого отдельно.
Можно сделать так, чтобы каждый пользователь группы наследовал права группы, но если ему индивидуально какое-то право изменено, это изменение будет иметь преимущество перед правом группы
Цитироватьпри нажатии кнопки Win удаляется выделенный код скрипта из редактора. Исправьте плиз.
Исправили.
ЦитироватьИ ещё из предложений - реализации систему групп пользователей. Чтобы применять права к группе сразу, потому что мой пример показывает, что может быть список из 10 мастеров и у каждого свой пароль, и в случае каких-то изменений в правах, их нужно делать для каждого отдельно.
Можно сделать так, чтобы каждый пользователь группы наследовал права группы, но если ему индивидуально какое-то право изменено, это изменение будет иметь преимущество перед правом группы
Да, группы скорее всего добавим в будущем.
Пожалуйста, добавьте свойство цвета заголовка страницы.
Если под заголовком страницы Вы имеете ввиду панель на которой размещаются кнопки страниц, то у неё нет отдельного цвета, цвет берётся из цветовой схемы, заданной при разработке проекта (см. меню "Проект" - "Цветовая схема") и немного затемняется.
Цитата: Simple-Scada от 15 июля 2021, 22:43:40Цитироватьпри нажатии кнопки Win удаляется выделенный код скрипта из редактора. Исправьте плиз.
Исправили.
ЦитироватьИ ещё из предложений - реализации систему групп пользователей. Чтобы применять права к группе сразу, потому что мой пример показывает, что может быть список из 10 мастеров и у каждого свой пароль, и в случае каких-то изменений в правах, их нужно делать для каждого отдельно.
Можно сделать так, чтобы каждый пользователь группы наследовал права группы, но если ему индивидуально какое-то право изменено, это изменение будет иметь преимущество перед правом группы
Да, группы скорее всего добавим в будущем.
Добрый день!
Искала как раз информацию по пользователям в simple-scada, подскажите тогда еще, могу ли я добавлять нового пользователя уже из клиента, не из среды разработки? Например, на объекте несколько пользователей, но заранее неизвестно сколько их, какие они себе хотят логин/пароль, чтобы они самостоятельно создавали учетки и меняли пароли. И что будет в этом случае с правами доступа вновь добавленных пользователей? Так как необходимо две группы пользователей "мастер" и "оператор", у каждой группы свои права доступа на отдельные окна и элементы. Заранее спасибо
Здравствуйте. Задавал такой вопрос ранее. На данный момент создавать учетки из клиента невозможно. Только в редакторе.
Надеюсь, что все же реализуют)
Так же, очень хотелось бы иметь возможность находить по имени созданные в скрипте объекты.
Цитата: Simple-Scada от 22 июля 2021, 09:44:37Если под заголовком страницы Вы имеете ввиду панель на которой размещаются кнопки страниц, то у неё нет отдельного цвета, цвет берётся из цветовой схемы, заданной при разработке проекта (см. меню "Проект" - "Цветовая схема") и немного затемняется.
Блин, я спешу куда-то и не проверяю, что пишу. Скорее всего я хотел написать цвет мигания. Чтобы было свойство цвета заливки и цвета мигания и у page, и у subpage
(https://i.ibb.co/p13gRjs/Screenshot-20210722-122756-Telegram-X.jpg)
ЦитироватьИскала как раз информацию по пользователям в simple-scada, подскажите тогда еще, могу ли я добавлять нового пользователя уже из клиента, не из среды разработки?
Сейчас такой возможности нет, можно добавлять пользователей только на этапе редактирования проекта. В будущем обязательно добавим её, но трудно сказать когда именно.
ЦитироватьСкорее всего я хотел написать цвет мигания. Чтобы было свойство цвета заливки и цвета мигания и у page, и у subpage
Сейчас у кнопок страниц и подстраниц можно менять только цвет. Постараемся добавить цвет мигания в будущем.
Добрый день!
При запуске на ноутбуке с диагональю 17 и разрешением 4К (Win 10), работа с программой затруднена слишком мелким отображением текста и панели инструментов.
Особенно это актуально в работе на объекте, где монитор 4К с нормальной диагональю отсутствует.
Изменение параметров масштабирования при помощи Windows либо изменяет масштаб программы, сдвигая часть экрана слева в область за экран, либо оставляет как есть слишком мелким.
Запуск в оконнном режиме с разрешением 2К ситуации не меняет.
Имеется ли решение этого вопроса?
sir, я уже общался с разработчиками на эту тему (масштабирование), пока у них не в приоритетах. Немножко шрифт увеличивать можно в редакторе и на том спасибо.
Здравствуйте.
Цитата: sir от 30 июля 2021, 15:24:09При запуске на ноутбуке с диагональю 17 и разрешением 4К (Win 10), работа с программой затруднена слишком мелким отображением текста и панели инструментов.
Имеется ли решение этого вопроса?
Цитата: Victor_P. от 31 июля 2021, 10:16:59sir, я уже общался с разработчиками на эту тему (масштабирование), пока у них не в приоритетах. Немножко шрифт увеличивать можно в редакторе и на том спасибо.
Мы не планировали вносить изменения по этому вопросу в ближайшем будущем. Но, рассмотрев различные варианты, обнаружили, что есть способ реализовать масштабирование интерфейса редактора проще и быстрее, чем мы изначально предполагали. Поэтому возможность масштабирования всего интерфейса редактора появится либо в ближайшем обновлении, либо в следующем.
UPD: добавили опцию масштабирования интерфейса редактора в обновление 2.5.9.0.
Здраствуйте. Не могу найти как в демо-проекте задается изменения цвета элемента Level при выходе переменной за аварийно-предупредительные границы.
Цитата: Дмитрий_021 от 02 августа 2021, 05:34:21Не могу найти как в демо-проекте задается изменения цвета элемента Level при выходе переменной за аварийно-предупредительные границы.
Здравствуйте.
Нужно связать Компонент "Уровень" (https://simple-scada.com/help/manual/level.html) с необходимой переменной и включить свойство "Границы". Также у этой переменной свойство "Границы" (https://simple-scada.com/help/manual/varextra.html) должно быть установлено в "Только аварийные" или "Аварийные и предупредительные".
Спасибо, увидел. А можно ли предупредительные границы задавать не константой, а переменной?
У компонентов "Поле" (https://simple-scada.com/help/manual/field.html) и "Таблица" (https://simple-scada.com/help/manual/table.html) есть свойство "Работать с", а если столкнётесь с проблемой, что аварийные/предупредительные границы выводятся неверно, то см. вопрос №5 по ссылке (https://simple-scada.com/help/manual/faq-client.html?anchor=q5).
Здравствуйте!
1. Очень пользователи жалуются на непонятность журнала действий оператора. Например, оператор нажал на кнопку пуска насоса, в журнале написано:
"(время) | Вася | Кнопка "B04_N3_START", переменная "B04_DO_WRITE".4: Было 0, стало 1"
Было бы гораздо удобнее, если бы у кнопки имелось поле "описание", и если оно заполнено, то выдавалось бы сообщение вида:
"(время) | Вася | Нажата кнопка "Котельная 4 Насос 3 пуск", переменная "B04_DO_WRITE".4: Было 0, стало 1"
2. То же самое при редактировании значений переменных или их границ (хотя я об этом по-моему уже писал)
3. Когда оператор квитирует аварийное сообщение, можно ли потом где-то посмотреть, какой именно оператор это сделал?
Здравствуйте.
Сейчас мы занимаемся разработкой новой системы архивации, в которой планируем добавить возможность настройки текста сообщений о действиях оператора, с возможностью включения в него различной информации, в том числе и описания переменной. Также, в новой системе архивации в сообщениях будет отображаться оператор, который квитировал сообщение. Сейчас такой возможности нет. К сожалению, каких-либо ориентировочных сроков появления новой системы архивации назвать пока не можем.
Еще очень бы хотелось увидеть такую фичу: чтобы у полей отображения и ввода, шкал и прочих элементов, которые выводят на схему значение переменой была галочка "отображать в качестве подсказки описание переменной" - дабы не прописывать одно и тоже дважды.
Ну или так: если галочка "отображать подсказку" стоит, а поле "подсказка" не заполнено, выводить в качестве подсказки описание привязанной переменной.
ЦитироватьUPD: добавили опцию масштабирования интерфейса редактора в обновление 2.5.9.0.
Огромное Спасибо за масштабирование!!!!
Присоединяюсь к sir с благодарностями за масштабирование, но шрифт в скриптах всеравно мелкий даже на максимальном увеличении. Хотелось бы еще 2-3 ступени в +.
Цитироватьно шрифт в скриптах всеравно мелкий даже на максимальном увеличении. Хотелось бы еще 2-3 ступени в +.
Да, в будущем добавим ещё несколько размеров шрифта в скриптах.
UPD: в обновление 2.5.11.0 добавили доп. размеры шрифта в редакторе кода
Здравствуйте.
Есть пожелание, чтобы добавили возможность запуска клиента из редактора. На стадии тестирования проекта это очень ускорит процесс.
При запуске клиента уменьшить задержку проявления лого - красивости - красивостями, но при тестировании, только время отнимает и раздражать начинает.
При подключении к существующей БД дать возможность указать СКАДА, что в этой БД не надо создавать свои таблицы, что они там ненужны. Пример: у пользователя БД права, только, на чтение (SELECT), а СКАДА хочет создать свои таблицы в БД (INSERT), из-за этого происходит отключение от БД с отказом в доступе, а в настройках проверка соединения проходит корректно. Пока в логах сервера не посмотришь, не поймёшь почему скрипт SQL не работает.
Цитата: godygadu от 30 августа 2021, 09:35:28Есть пожелание, чтобы добавили возможность запуска клиента из редактора. На стадии тестирования проекта это очень ускорит процесс.
При запуске клиента уменьшить задержку проявления лого - красивости - красивостями, но при тестировании, только время отнимает и раздражать начинает.
При тестировании запустите клиент 1 раз и не закрывайте. В сервере есть кнопка Старт/Стоп проекта, можно спокойно тестировать изменения не дожидаясь перезапуска клиента. Конечно если бы кнопка старт/стоп проекта была в редакторе, было бы ещё удобнее, не нужно было бы переключаться на окно сервера, как кнопка запуска проекта в редакторе отчётов.
Еще раз, добрый вечер.
В наличии имеется огромное количество однотипных переменных.
Для того чтобы реализовать систему трендов, как я правильно понял, мне необходимо:
1. Найти в каталоге переменные, включить архивацию.
2. Повторить пункт 1 для остальных множеств каталогов.
3. Создать структуру трендов.
4. Каждый тренд вручную переименовывать
5. Для каждого тренда вручную искать и привязывать переменную.
На все про все у меня уйдет уйма времени. К тому же нижний уровень в процессе ПНР меняется,
и переменные в OPC сервере периодически обновляются...
Есть ли какой-нибудь инструмент "унификации"? наподобие шаблонов аварий.
Либо как-то оптимизировать это дело скриптами, глобальным модулем?
Update. Увидел, что проблема уже поднималась. Как скоро мы сможем увидеть реализацию? (=
Здравствуйте.
В будущем мы планируем добавить шаблоны трендов, но когда именно появится данный функционал пока сказать сложно. Сейчас, если у переменной заполнено описание, то при выборе переменной тренда оно будет автоматически подставляться в поле "Название тренда" - возможно это пригодится. Также, в редакторе переменных поддерживается групповое редактирование свойств переменных (https://simple-scada.com/help/manual/variable-editor.html).
Да групповое изменение поддерживается. Но опять же, мне вручную сначала нужно их найти и выделить.
Удобная штука "поиск". Я могу найти все переменные которые нужны для архивации, но они просто выделяются болотным цветом,
без возможности, что-либо сделать с результатом поиска. :'(
Сейчас наткнулся на то, что в web интерфейсе, анимация картинки, в свойствах которой отключена цикличность, зацикливается.
ЦитироватьСейчас наткнулся на то, что в web интерфейсе, анимация картинки, в свойствах которой отключена цикличность, зацикливается.
Добавили исправление в обновление 2.5.12.0.
Добрый день.
Не получается добиться:
"Свойство панель страниц: Окон – максимальное количество одновременно открытых окон на странице (0 – не ограничено)."
Имеется потребность на странице открывать не более одного шаблонного окна. При любом значении вышеописанного свойства ограничение отсутствует.
Или я что-то неправильно понял?
Здравствуйте. Проверили, ограничение действительно не срабатывает. Добавили исправление в обновление 2.5.13.0.
Здравствуйте. Возможно ли объединение ячеек объекта TM_Table?
Здравствуйте. Нет, объединять ячейки нельзя. Если Вам нужно объединить ячейки только в заголовке таблицы, то можно у таблицы выключить свойство "Показать заголовок" и над таблицей сделать собственный заголовок с произвольно расположенными "ячейками" из компонентов "Текст", которые визуально нельзя будет отличить от реальных ячеек таблицы.
Внесу все-таки предложение по возможности переключения проектов на клиенте через меню выбора проекта. А еще лучше если будет возможно программное переключение, тогда можно организовать менеджер проектов с автоматическим подтягиванием нужных данных из других проектов и быстрым переключением без необходимости перезапуска клиента. Да, уже предлагали использовать web-клиент, но это не то.. не всегда удобно, плюс огромная разница в отображении, масштабировании и прочее..
В редакторе условное обозначение скрипта изменилась переменная и изменились границы одинаковые, что по прошествии времени затрудняет идентификацию типа сработки скрипта если заранее не был оставлен комментарий. Можно ли изменить условное обозначение скрипта, например изменились границы?
Здравствуйте.
Rindzin, добавление таких возможностей не планируется.
Nikso, в следующем обновлении постараемся изменить обозначение скрипта "Изменились границы".
Добрый день. Возможно ли в MessageViewer, реализовать отображение сообщений только определенной группы сообщений? Сейчас доступны только варианты: "Все", "Неподтвержденные", "Активные сообщения".
Здравствуйте.
Сейчас такой возможности нет, но мы планируем ее добавить в будущем после разработки новой системы архивации.
Добрый день, при скрытии от одного из пользователей пункта "Действия оператора", он все равно отображаются у него, такая же ситуация и с "Активные сообщения"
Здравствуйте.
Спасибо за информацию об ошибке. Добавим исправление в ближайшее обновление.
Хотелось бы видеть не только время, но и дату сообщения в логах сервера SCADA. Когда сервер установлен как сервис, в web-интерфейсе только время. Если события редки, то без даты трудно определить когда это было.
Здравствуйте.
ЦитироватьХотелось бы видеть не только время, но и дату сообщения в логах сервера SCADA. Когда сервер установлен как сервис, в web-интерфейсе только время. Если события редки, то без даты трудно определить когда это было.
См. опцию "Отображать дату в журнале (https://simple-scada.com/help/manual/settings-simple-scada-server.html#:~:text=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B0%D1%82%D1%83%20%D0%B2%20%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B5)" (Options.exe -> Simple-Scada Server -> "Отображать дату в журнале").
Добрый день. Версия 2.5.12.0. MessageViewer, активные сообщения и шаблоны сообщений. Столкнулся с такой особенностью, что в шаблонах игнорируется параметр "активные" при присвоении нулевого значения переменной.
На скрине:
1 шаблон: переменная = 1, создает неподтвержденное, активное сообщение.
2 шаблон: переменная = 0, создает просто сообщение, активное сообщение созданное первым шаблоном убирается из активных.
Это работает корректно.
3 шаблон: совмещает в себе оба состояния переменной.
переменная = 1, создает неподтвержденное, активное сообщение.
переменная = 0, создает просто сообщение, но из активного не убирается. хотя переменная поменяла свое состояние на 0.
Спасибо за подробное описание и пример проекта. Исправление будет добавлено в ближайшее обновление.
Добрый день. Столкнулись с проблемой не получения проектом данных с OPC сервера.
Имеется: Scada 2.5.12.0; Рабочий проект; Тестовый проект (копия рабочего проекта) для внесения изменений; arOPC сервер.
Оба проекта запущены на одном сервере скады. Отличия настроек проекта только в имени БД.
Произошло следующее: Scada потеряла ОРС сервер, решила его перезапустить. судя по логам, ОРС перезапустился и начал получать данные.
Однако рабочий проект не получал новые данные (восклицательных (контроль качества) знаков не было), в то время как тестовый благополучно работал.
Помог перезапуск скады.
Несколькими днями ранее был похожий случай, там OPC сервер закрылся совсем, но скада продолжала видеть его.
Есть предположение что это из-за запущенного второго проекта, т.к. ранее работал только один проект, и сбоев не наблюдалось.
Здравствуйте.
Многие пользователи длительное время используют более одного проекта на сервере скады и не сообщали о каких-либо проблемах. При повторении проблемы завершите работу сервера скады (https://simple-scada.com/help/manual/server-status.html), пришлите нам на support@simple-scada.com целиком папку с логами "..\Simple-Scada 2\Logs" и укажите дату/время возникновения проблемы. Также, приложите оба проекта и конфигурацию OPC-сервера, попробуем протестировать на наших ПК.
Сейчас можно выслать нам целиком папку с логами и указать время/дату возникновения проблемы, возможно в логах есть какая-либо полезная информация. Также, уточните следующие вопросы:
1. Вы не активировали на arOPC работу в режиме службы?
2. OPC-сервер локальный или удаленный?
3. Что именно произошло с OPC-сервером? Почему он "закрылся "?
Добрый день. Отправил всю информацию на support.
Кстати, удается повторить проблему с ОРС сервером. При закрытии ОРС, в консоли скады это выглядит вот так.
Внесли несколько изменений в обновление 2.5.14.0, возможно они решат проблему переподключения по OPC-DA.
Как мне показалось для Telegrama актуальны аварийные сообщения.
И было просто замечательно при создании аварийных сигналов в меню сообщений, иметь простую галочку: "отправлять в Telegram".
Добрый день. Небольшой недочет в программе настройки. При закрытии окна крестиком, внесенные изменения сохраняются.
Хотя логичнее при закрытии по крестику: закрывать без сохранения внесенных изменений.
А по кнопке "Сохранить и закрыть" соответственно сохранять изменения и закрывать окно (или вообще сделать кнопку "применить").
Здравствуйте.
ЦитироватьИ было просто замечательно при создании аварийных сигналов в меню сообщений, иметь простую галочку: "отправлять в Telegram".
Варианты отправки сообщений E-mail/SMS/Telegram рассмотрены по ссылке (https://simple-scada.com/help/script/sendmess.html). В большинстве случаев отправка сообщений всем получателям из списка, указанного в настройках не подходит пользователям. Обычно требуется отправка разных сообщений разным получателям или группам получателей. Поэтому, простая галочка "отправлять в Telegram" не подойдет большинству пользователей. Обсудим и подумаем, возможно ли это реализовать не усложняя интерфейс и возможно в будущих обновлениях подобный функционал будет добавлен.
ЦитироватьПри закрытии окна крестиком, внесенные изменения сохраняются.
Так и задумано, любые изменения в настройках сохраняются сразу после их изменения. Приложение настроек работает таким образом еще с первой версии(2014г.) и за это время пользователи не сообщали о каких либо неудобствах в использовании настроек. Пожелание учтем и обсудим.
Цитата: Виктор К от 21 декабря 2021, 07:20:28Добрый день. Небольшой недочет в программе настройки. При закрытии окна крестиком, внесенные изменения сохраняются.
Хотя логичнее при закрытии по крестику: закрывать без сохранения внесенных изменений.
А по кнопке "Сохранить и закрыть" соответственно сохранять изменения и закрывать окно
Присоединяюсь к пожеланию. как пользователи мы просто смирились с этой особенностью :)
Вопрос.
1. Имеется список неподтвержденных аварий.
Некоторые из них активны и подтверждены.
После перезапуска сервера SS или OPC, активные аварии вновь добавляются в папку "Неподтвержденные".
Такая логика и должна быть?
P.S. Переменные, аварии по которым мы рассматриваем, имеют свойство "авт. восстановление - вкл".
Аварии добавлены через шаблоны, путем вытягивания битов из переменной.
2. Так же заметил, что имея скрипт отправки сообщения в Telegram по закрытию проекта: "Выключение проекта",
это сообщение приходит лишь только при последующем включении...
3. Для определения качества связи с OPC сервером (для дальнейшей отправки результата в Telegram)
использовал конструкцию communication_.IsGoodQuality = False.
Где переменная communication_ простая "программная" переменная созданная в OPC.
При отсутствии связи с OPC, сообщение действительно формируется, но формируется 2 раза. Притом 2 раз
практически всегда приходится на 10 цикл (секундный скрипт). Как ни старался, побороть не получилось.
Вышел из ситуации созданием задержки перед формированием аварии.
Здравствуйте.
1. Да, так и должно быть. Чтобы при перезапусках проекта сообщения не выдавались, нужно в настройках Options.exe на вкладке "Simple-Scada Server" отключить опцию "Показывать сообщения по первому изменению (https://simple-scada.com/help/manual/settings-simple-scada-server.html?anchor=other)". Если данная опция будет отключена, то сообщения при перезапусках не будут выдаваться. Не забудьте перезапустить сервер скады при изменении настроек.
2. Выполнить отправку Telegram-сообщения через скрипт "Остановка проекта" невозможно, т.к это асинхронная операция(так же как, например построение отчета, работа с БД, вызов архивных процедур и т.д.). При остановке проекта сервер не может ждать пока выполнятся все асинхронные операции, поэтому они игнорируются. Также, данный скрипт выполняется только при остановке проекта на сервере, т.е. фактически только когда его вручную остановит пользователь, поэтому такая отправка сообщения имеет мало смысла, т.к. пользователь знает что он остановил проект.
3. Если сообщение отправляется несколько раз, то нужно проверять по какому событию выполняется скрипт, проверять сам скрипт и его условия. Само по себе сообщение не будет отправляться несколько раз. Если такое происходит, значит это позволяют условия скрипта. Если используется секундный скрипт, то для однократной отправки сообщения нужно использовать доп. переменную, которая будет блокировать повторную отправку сообщения. Для более подробного ответа по данному вопросу требуется проверка проекта. Если не разберетесь, пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects" и укажите, какой скрипт нужно проверить.
Пример скрипта по третьему вопросу: создадим новую внутреннюю переменную с типом данных Int и именем "vrLinkTimer" - эта переменная будет использоваться для подсчета времени отсутствия связи с контроллером. Также, создадим внутреннюю переменную с типом данных Boolean и именем "vrLost" - данная переменная будет использоваться для того, чтобы сообщения о потере связи выдавались однократно. Далее, создадим скрипт с типом события "Прошла секунда" и напишем такой код:
const
TIMEOUT = 10;
begin
if communication_.IsGoodQuality = False then
begin
vrLinkTimer.Value := vrLinkTimer.AsInt + 1;
{ проверка на отсутствие связи }
if (vrLost.AsBool = False) and (vrLinkTimer.AsInt >= TIMEOUT) then
begin
vrLost.Value := True;
SendTelegram('Потеряна связь с OPC-сервером!');
end;
end
else
vrLinkTimer.Value := 0;
{ проверка на восстановление связи }
if (vrLost.AsBool) and (vrLinkTimer.AsInt < TIMEOUT) then
begin
vrLost.Value := False;
SendTelegram('Cвязь с OPC-сервером восстановлена!');
end;
end.
1. Понял, спасибо. Но:
Протестировал опцию "Показывать сообщения по первому изменению".
При отключенной опции сообщение действительно не формируется, но и в активных авариях пусто.
Такая ситуация еще больше вводит в заблуждение.
2. Понял, спасибо.
3. Именно так я и поступил. Создал доп. переменную. Такой вариант устроил.
К слову: "проблемный" скрипт просто представлял из себя секундный скрипт:
.....
if communication_.IsGoodQuality = False then QualityOPC.value := True else QualityOPC.value := False;
.....
Переменная communication_ программная переменная в OPC сервере (MasterOPC Universal Modbus Server),
которая принудительно устанавливается в 1 при включении OPC сервера.
Появились еще вопросики.
4. Имеется переменная Int64, каждый бит которой отвечает за ту или иную аварию.
Задача отправлять в Telegram поступающие сигналы.
Натолкнулся на проблему:
Необходимо сравнивать переменную с предыдущим значением. Смотреть какой бит поменялся и отправлять в Telegram соответствующее сообщение.
Таких переменных очень много, и создавать под каждую отдельную внутреннюю не хватит терпения. Используется универсальный скрипт.
Есть функция PrevAsInt, но она работает только с типами событий "Изменились переменные". Т.е. для каждой переменной мне необходимо создать свой скрипт, что в принципе еще сложней и затратней по времени.
Упростило бы задачу, если функция PrevAsInt работала и с универсальными скриптами. 2 строчки в скрипте заменили бы часовое добавление скриптов или внутренних переменных.
5. Имеется универсальный скрипт, который контролирует качество переменной, и в зависимости от ее состояния передает в telegram об
отсутствии или восстановлении связи с устройством. Проблема в том, что универсальный скрипт вызывается и по изменению качества переменной и собственно по изменению значения самой переменной. Если меняется только качество переменной - все работает.
Но если меняется сама переменная - так же формируется лишнее сообщение. Опять же, выход я вижу в создании доп. внутренней переменной (либо таймер, либо пред. знач.) на каждое устройство. Или иметь в PLC переменную "пустышку", которая бы никогда не изменяло свое значение.
Пункт 4 и 5 подобны. Возможна ли другая реализация?, помогите пожалуйста разобраться с вопросом.
Здравствуйте.
Цитата: Botsmall от 27 декабря 2021, 17:59:36...Необходимо сравнивать переменную с предыдущим значением. ... Используется универсальный скрипт...
Хранить предыдущее значение переменной можно в описании переменной в виде текста или в одной из границ.
Скрипт "Изменились переменные" (для переменных с однотипными сообщениями по битам):
var i: integer;
j, k: int64;
begin
with Variable do begin
k := AsInt64; // на случай, если переменная изменится во время выполнения скрипта
j := k xor StrToInt64Def(Description, k); // вектор изменений переменной, при первом вызове скрипта
// сработает Def-условие (Description = '') и вектор = 0
for i := 0 to 63 do // цикл по битам
if GetBit(j, i) then AddMessage(Now, mkAlarm, // сообщение при изменении переменной
'Переменная ' + Name + ' бит ' + IntToStr(i) + ' изменился в ' + GetBit(k,i).ToISOString,
true, false);
Description := IntToStR(k); // запомнить текущее значение как предыдущее
end;
// отладочное сообщение примера: <имя переменной> <вектор изменений>
if j<>0 then Text8.Text := Variable.Name + ' ' + IntToHex(j, 16);
end.Пример проекта, включающего оба способа хранения предыдущего значения, во вложении.
Здравствуйте.
Цитата: Botsmall от 27 декабря 2021, 17:59:36Имеется универсальный скрипт, который контролирует качество переменной, и в зависимости от ее состояния передает в telegram об
отсутствии или восстановлении связи с устройством. Проблема в том, что универсальный скрипт вызывается и по изменению качества переменной и собственно по изменению значения самой переменной. Если меняется только качество переменной - все работает.
Но если меняется сама переменная - так же формируется лишнее сообщение. Опять же, выход я вижу в создании доп. внутренней переменной (либо таймер, либо пред. знач.) на каждое устройство. Или иметь в PLC переменную "пустышку", которая бы никогда не изменяло свое значение.
Для этого нужно создать внутреннюю переменную для каждого устройства, с типом данных Boolean и именем, например "vrControl + Имя переменной устройства", а в "Описание (https://simple-scada.com/help/manual/varmain.html#:~:text=%E2%80%A2-,%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5,-%E2%80%93%20%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9%20%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9)" переменной ввести название устройства. Далее, создать скрипт с типом события "Изменились переменные (https://simple-scada.com/help/script/event-types.html)", добавить в список скрипта все переменные, которые необходимо отслеживать и написать такой код:
var
aVar: TM_Variable;
begin
// ищем переменную по имени "vrControl + Имя переменной которая вызвала скрипт"
aVar := GetVariableByName('vrControl' + Variable.Name);
if aVar <> nil then // если переменная существует
if not IsFirstChange then
begin
// проверка на восстановление связи
if (Variable.IsGoodQuality = True) and (aVar.AsBool = False) then
begin
aVar.Value := True;
SendTelegram('Cвязь с устройством ' + aVar.Description + ' восстановлена!');
end else
// проверка на отсутствие связи
if (Variable.IsGoodQuality = False) and (aVar.AsBool) then
begin
aVar.Value := False;
SendTelegram('Связь с устройством ' + aVar.Description + ' потеряна!')
end;
end else
aVar.Value := True;
end.
Большое спасибо за ответы.
to Senpai.
Как раз таки и хотел избавиться от внутренних переменных.
Вся структура проекта, описания устройств, комментарии и т.д. прописаны в шаблонах.
Идея была такова, чтобы использовать эти данные для формирования сообщения с помощью одного универсального скрипта,
который сидит в этих шаблонах, без использования внутренних переменных
(описание которых полностью дублирует данные в используемых шаблонах).
Ваш вариант решает проблему, но получается масло масляное.
to Pan2000.
Идея записи пред. знач. в описание переменной без внутренних с использованием одного универсального скрипта,
который дублируется в шаблонах мне помогла в одном случае: когда переменная, с битами которой мы работаем,
отвечает за состояние одного устройства.
Но я натолкнулся на проблему, когда переменная указывает на тип аварии, а ее биты на то или иное устройство:
в этом случае при изменении значения переменной запускается сразу несколько "экземпляров" универсального скрипта.
пред. значение необходимо записывать только после выполнения последнего "экземпляра",- это дополнительные условия.
Пришлось прибегнуть к использованию доп. переменных и скрипта типа "изменились переменные".
Повторюсь, если бы была возможность использовать функцию PrevInt в универсальных скриптах, мою задачу решила бы одна строчка.
Не знаю, насколько это реализуемо (PrevInt в универсальных скриптах).
1. На фоне вышеописанного появился вопрос. В какой последовательности выполняются скрипты?
2. Есть скрипт "изменились переменные", к нему привязаны много однотипных переменных.
Задача: определить первые два символа в названии вызвавшей скрипт переменной , по этому условию сформировать то или иное сообщение.
Функция Delete работает со String, а свойство Variable.Name - Unicode...не смог преобразовать типы...
Здравствуйте.
ЦитироватьВ какой последовательности выполняются скрипты?
См. пояснения по ссылке (https://simple-scada.com/help/script/debugscripts.html?anchor=screxec).
ЦитироватьФункция Delete работает со String, а свойство Variable.Name - Unicode...не смог преобразовать типы...
String = UnicodeString. Ничего преобразовывать не требуется. Также, начиная с версии 2.5.13.0 нет необходимости конвертировать разные типы строк, т.к. тип данных UTF8String заменён на string и больше не используется. У Вас проблема вероятно в том, что в процедуру Delete (https://simple-scada.com/help/script/delete.html)Вы передаете свойство переменной .Name, а нужно передавать отдельную строковую переменную - см. пример кода по ссылке (https://simple-scada.com/help/script/delete.html). Создайте в скрипте локальную переменную, как в примере по ссылке (https://simple-scada.com/help/script/delete.html), запишите в нее имя переменной(Variable.Name) и затем используйте эту локальную переменную в процедуре Delete. Если не разберетесь, пришлите целиком скрипт, который не компилируется сюда или на почту support@simple-scada.com.
Т.е. если на одну переменную был создан скрипт "по изменению" и скрипт универсальный (OnDataChange), они будут выполнятся в той последовательности, которые созданы? В manual`е описана ситуация с секундным скриптом.
String = UnicodeString (разобрался, спасибо, моя ошибка).
Здравствуйте.
Цитата: Botsmall от 10 января 2022, 16:27:35Но я натолкнулся на проблему, когда переменная указывает на тип аварии, а ее биты на то или иное устройство:
в этом случае при изменении значения переменной запускается сразу несколько "экземпляров" универсального скрипта.
пред. значение необходимо записывать только после выполнения последнего "экземпляра",- это дополнительные условия.
Пришлось прибегнуть к использованию доп. переменных и скрипта типа "изменились переменные".
Для разделения сообщений по устройствам можно использовать маски. Во вложении пример шаблона устройства с изменяемыми битами состояния (ошибками). Единственный параметр шаблона - это номер устройства, соответствующий номеру бита основной переменной и передаваемый через свойство Tag.
var i: integer;
j, k: int64;
begin
with Sender as TM_Object do begin
k := AsInt64;
if Hint = '' then Hint := IntToStR(k); // начальное значение
j := (k xor StrToInt64(Hint)) and Setbit(0, Tag, true); // вектор изменений переменной для выбранного устройства (маска по Tag)
if j = 0 then exit; // изменения не относятся к данному устройству
AddMessage(Now, mkAlarm, // сообщение при изменении бита переменной
'Переменная ' + Variable.Name + ' бит ' + IntToStr(Tag) + ' изменился в ' + GetBit(k,Tag).ToISOString, true, false);
Hint := IntToStR(k); // запомнить текущее значение как предыдущее
end;
end.Маски позволяют работать с полями, как-то номер устройства или небинарный код ошибки.
Спасибо большое, это именно то, что я хотел.
Моя ошибка была в том, что я пред. значение хранил в Hint самой переменной, а надо было в отдельном объекте шаблона.
Снова добрый день. И снова прошу помощи.
Появились вопросы по импорту тегов.
1. Имеется ли функция "обновить теги" в редакторе переменных?(если тег существует в SS, ничего не делать, если его нет, добавить).
Т.е. допустим в проекте уже существует набор импортированных тегов. Программа PLC меняется=> набор тегов меняется (что-то добавляется, что-то удаляется, - непрерывный процесс ((: ). С набором импортированных тегов уже произведены манипуляции (изменения свойств архивирования, период опроса и т.д.).
Наталкиваюсь на проблему: либо мне все удалять, добавлять теги заново, и опять изменять вручную их свойства, либо вручную выискивать какие-же теги добавились в PLC и добавлять их стандартным способом...с большими объемами очень тяжело, либо вручную смотреть две эксельки: до изм., после изм., тоже тяжко...
2. Есть ли функция "purge" для тегов: те теги которые никак не участвуют в проекте, удаляются. Я конечно понимаю, что это проблематично реализовать, но на всякий случай спрошу ((;
Здравствуйте.
ЦитироватьИмеется ли функция "обновить теги" в редакторе переменных? (если тег существует в SS, ничего не делать, если его нет, добавить).
При импорте переменных с OPC-сервера такой возможности нет. Поэтому, теги которые были удалены с ПЛК нужно удалить в редакторе переменных. Необходимые новые теги ПЛК нужно выбрать и импортировать с OPC-сервера. Такой функционал имеется при использовании импорта переменных из файла (https://simple-scada.com/help/manual/variable-import-csv.html). Если просто нажать кнопку "Импортировать", то существующие переменные при импорте из файла будут пропущены. Можно обновить свойства совпадающих по имени переменных нажав кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре.
Цитироватьлибо мне все удалять, добавлять теги заново
Учитывайте, что при этом будут разорваны связи переменных с объектами(если они есть) и их нужно будет вновь связывать с объектами.
ЦитироватьЕсть ли функция "purge" для тегов: те теги которые никак не участвуют в проекте, удаляются.
Такой функции нет.
Добрый день,
возможно ли импортировать теги сохраняя структуру каталогов? В больших проектах приходится сначала создавать все группы вручную и только потом импортировать теги в каждую группу по отдельности, что очень не удобно
Здравствуйте.
При импорте переменных с OPC-сервера структуру каталогов импортировать нельзя. Пожелание учтем и возможно в будущем такой функционал появится.
Жаль, была бы очень полезная функция.
Еще вопросики.
1. Имеется шаблон, в нем есть кнопка, которая в зависимости от подстановки в шаблон %название окна%, открывает шаблонное окно с именем %название окна%.
Проблема в том, что в скрипте по нажатию той самой кнопки мне не найти шаблонное окно. Функции GetTemplateObj, GetWindowByName = nil.
2. Есть шаблонное окно в шаблонном окне. Во втором шаблоне есть скрипт по событию OnInit. Его задача скрыть элементы, если привязанные к ним переменные отсутствуют в таблице переменных. Изначально все переменные были объявлены, все элементы видны. По мере удаления переменных реакция не изменяется:
GetVariableByName(Str) <> nil (для проверки в скрипте изменил GetVariableByName(Str + 'такой переменной нет') => элементы из второго шаблонного окна исчезли.)
Прошу помощи.
Здравствуйте.
Для того, чтобы лучше понять принцип работы с объектами шаблона из скриптов, рекомендуем ознакомиться с этим разделом руководства (https://simple-scada.com/help/manual/templatesandscripts.html).
ЦитироватьПроблема в том, что в скрипте по нажатию той самой кнопки мне не найти шаблонное окно. Функции GetTemplateObj, GetWindowByName = nil.
Указанные функции не предназначены для вызова окна из шаблона. Функция GetTemplateObject (https://simple-scada.com/help/script/gettemplateobject.html)позволяет обратиться к нужному объекту шаблона/шаблонного окна. Функция GetWindowByName (https://simple-scada.com/help/script/getwindowbyname.html) предназначена для поиска и работы с обычными окнами. Для вызова шаблонного окна из шаблона не требуется использовать скрипты - см. руководство по ссылке (https://simple-scada.com/help/manual/templandtemplwnd.html).
ЦитироватьЕсть шаблонное окно в шаблонном окне. Во втором шаблоне есть скрипт по событию OnInit. Его задача скрыть элементы, если привязанные к ним переменные отсутствуют в таблице переменных.
Данную задачу можно решить с помощью функции GetTemplateObject (https://simple-scada.com/help/script/gettemplateobject.html). Допустим, в шаблонном окне есть заслонка Valve1 и изображение Image1, которые нужно скрывать если они не связаны с переменной. Тогда на событие OnInit шаблонного окна пишем такой код:
var
aObj: TM_Object;
begin
aObj := GetTemplateObject('Image1');
aObj.Visible := aObj.Variable <> nil;
aObj := GetTemplateObject('Valve1');
aObj.Visible := aObj.Variable <> nil;
end.
1. В приведенном примере https://simple-scada.com/help/manual/templandtemplwnd.html (https://simple-scada.com/help/manual/templandtemplwnd.html), из шаблона вызывается одно конкретное шаблонное окно с разными вводными.
Моя же задача, заключается в том, чтобы по нажатию на насос разных экземпляров одного шаблона, в зависимости от подставновки %название окна% (обычный текст внутри шаблона), открывалось то или иное шаблонное окно (не экземпляр конкретного шаблонного окна, а именно совершенно разные шаблонные окна).
Не смог найти решения.
2. Разобрался, моя ошибка.
Здравствуйте.
Цитата: Botsmall от 18 января 2022, 11:35:45Моя же задача, заключается в том, чтобы по нажатию на насос разных экземпляров одного шаблона, в зависимости от подставновки %название окна% (обычный текст внутри шаблона), открывалось то или иное шаблонное окно (не экземпляр конкретного шаблонного окна, а именно совершенно разные шаблонные окна).
В экземпляре шаблона возможна только статическая связь объекта и шаблонного окна. Для выбора одного из нескольких шаблонных окон (при их разумном количестве) можно использовать группу одинаковых объектов, в которой каждый объект связан с уникальным шаблонным окном.
Объекты "сложены стопочкой", выбор нужного окна осуществляется посредством управления видимостью объектов при инициализации шаблона.
Во вложении пример для 3-х шаблонных окон. Имя шаблонного окна хранится в свойстве Hint объектов TM_Image с однотипными именами, имя вызываемого окна в свойстве Text отдельного объекта TM_Text.
Скрипт инициализации шаблона:
var aStr: string;
i: integer;
begin
aStr := TM_Text(GetTemplateObject('Text1')).Text; // имя вызываемого шаблонного окна
for i := 1 to 3 do
with GetTemplateObject('Image' + IntToStr(i)) as TM_Control do Visible := aStr = Hint; // видимость объекта по совпадению имен
end.
Большое спасибо за ответ.
Именно к тому выводу я пришел. Решение рабочее.
Есть еще момент.
Если я использую свойство "максимальное число открытых окон" на странице в которой есть возможность открыть окно в окне
(к примеру в моем случае двойная вложенность, - окно в окне), возникает ситуация: если я использую значение "1" этого свойства, я не могу открыть вложенное окно в окне. Если же я использую значение "2" у меня появляется возможность открыть 2 "корневых" окна, но тогда теряется смысл происходящего. Проконтролировать это дело у меня не получилось, так как не нашел возможности с помощью скрипта закрыть шаблонное окно:
ЦитироватьФункция GetWindowByName предназначена для поиска и работы с обычными окнами
Здравствуйте.
ЦитироватьМоя же задача, заключается в том, чтобы по нажатию на насос разных экземпляров одного шаблона, в зависимости от подставновки %название окна% (обычный текст внутри шаблона), открывалось то или иное шаблонное окно (не экземпляр конкретного шаблонного окна, а именно совершенно разные шаблонные окна).
Система шаблонов предназначена для создания множества
однотипных объектов. Но при этом, не следует пытаться всеми возможными способами реализовать все через один шаблон. Если объекты отличаются(или как в Вашем случае нужно вызывать из шаблона разные шаблонные окна), то проще и удобнее будет создать несколько отдельных шаблонов для каждого объекта. В некоторых случаях, когда это действительно оправдано, можно воспользоваться способом предложенным pan2000.
Цитироватьесли я использую значение "1" этого свойства, я не могу открыть вложенное окно в окне. Если же я использую значение "2" у меня появляется возможность открыть 2 "корневых" окна, но тогда теряется смысл происходящего. Проконтролировать это дело у меня не получилось, так как не нашел возможности с помощью скрипта закрыть шаблонное окно
Свойство страницы "Окон" определяет максимальное количество одновременно открытых окон вне зависимости от порядка их открытия. Шаблон/шаблонное окно и объекты в нем не являются реальными объектами. Только после запуска проекта, на основе шаблона будет создано множество реальных объектов. А на основе шаблонных окон будет создано множество реальных окон. До запуска проекта эти объекты не существуют. Поэтому, из скрипта закрыть шаблонное окно не получится.
Здравствуйте.
Цитата: Botsmall от 18 января 2022, 17:05:38Если я использую свойство "максимальное число открытых окон" на странице в которой есть возможность открыть окно в окне
(к примеру в моем случае двойная вложенность, - окно в окне), возникает ситуация: если я использую значение "1" этого свойства, я не могу открыть вложенное окно в окне. Если же я использую значение "2" у меня появляется возможность открыть 2 "корневых" окна, но тогда теряется смысл происходящего.
Частичное решение проблемы "корневых" окон это использование переменной-флажка "Открыто корневое окно" (по событиям окна OnShow, OnClose), управляющего свойством Enable объектов выбора окна, т.е. "корневое" открытое окно блокирует прочие "корневые".
Наличие глобальной переменной ограничивает доступ других клиентов. Контролировать клиентов проблематично из-за неконтролируемого отключения клиентов.
Частичное = различное поведение окон разных уровней при их вызове. Решением могла бы стать редко используемая процедура "Закрыть все неактивные окна" (возможность закрыть шаблонное окно из скрипта, в частности все окна, за исключением нового "корневого").
Пример во вложении.
Большое спасибо за ответы, будем разбираться.
Добрый день. В одной из последних версий скады видимо поменялась процедура ArchiveTimeOn.
Раньше она возвращала значение (при привязке к объекту Calendar) 30.12.1899 00:01:00 что равнялось одной минуте.
Сейчас возвращается значение 27.02.1900 22:49:26, что в переводе значения через inttostr равняется 60 (60 секунд = та же 1 минута).
Т.е. вернулись уже секунды в целой части типа tDateTime, а должны были в дробной. Чтоб получить нормальный tDateTime нужно делить значение на 86400.
С одной стороны возвращаемое значение в секундах более приемлемое. Но тогда нет смыла в процедуру ArchiveTimeOn просить в качестве выходного параметра тип tDateTime.
Собственно вопрос: исправлять проект под секунды или вернется стандартный tDateTime?
Здравствуйте.
Да, сейчас результат записывается как количество секунд, так не должно быть. Включим исправление в ближайшее обновление.
Здравствуйте. Есть ли в планах интегрировать поддержку других БД?
В цвете текущих событий с зарубежным ПО это может дать преимущество вашей СКАДА.
Спасибо.
Здравствуйте.
Да, в будущих обновлениях будет добавлена поддержка PostgreSQL.
Спасибо. Желаю успехов в развитии!
P.S. надеюсь, что в будущем вы добавите встроенные OPC - UA серверы для различных протоколов.
При смене границ переменной через клиент, наблюдается рассогласованность с автоматическими сообщениями.
MessageViewer отображает только активные сообщения.
Скрины 01, 02: Переменная вышла за границы, сформировано аварийное сообщение.
Скрины 03, 04: Поменяли нижнею аварийную границу у переменной. Переменная в "статусе" предупреждение, но аварийное сообщение так и осталось висеть, предупредительное сообщение не сформировалось.
Скрины 05, 06: Поменяли нижнею предупредительную границу. Переменная в "статусе" норма, аварийное сообщение исчезло.
Сейчас еще проверил на проекте, при изменении переменной, точно такое же поведение.
Статус сообщения в списке активных не меняется, т.к. новое сообщение не выдаётся при переходе из аварийной зоны в предупредительную. Исправим отображение в ближайшем обновлении.
Добрый день.
Появилась задача, не знаю с какой стороны подойти. Направьте, пожалуйста, на путь истинный.
Имеются, допустим 10 plc. На каждом крутится своя программа, в которой есть некая уставка (2 переменные на запись/чтение). Эти уставки (10 шт.) отвечают за один алгоритм однотипных устройств (10 шт. - 1 на каждый PLC).
Задача вывести на Scade одно "общую" уставку на все 10 plc. Так же эту уставку "общую" можно поменять и вручную на каждом PLC.
При потере связи PLC со Scadой, уставка в PLC должна работать в "ручном" режиме и меняться, получается, только для соответствующего PLC.
При восстановлении связи PLC со Scadoй уставка должна принимать "общее" значение.
Если принять во внимание, что значение общей уставки будет крутиться на сервере Scadы, как быть?
Здравствуйте.
ЦитироватьЗадача вывести на Scade одно "общую" уставку на все 10 plc.
Для записи уставки в множество переменных можно создать внутреннюю переменную уставки и по ее изменению(используя скрипт "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)") записывать уставку в требуемые 10 переменных ПЛК.
ЦитироватьТак же эту уставку "общую" можно поменять и вручную на каждом PLC.
Это условие противоречит первому. Если на ПЛК уставка может измениться вручную, то это уже не общая уставка. И тогда не понятно, как она должна отображаться в скаде и как оператор узнает, что уставка изменилась на каком-то ПЛК.
Для такой задачи проще будет вывести в скаду все уставки с 10 ПЛК и для их массового изменения использовать способ описанный выше. Тогда при их ручном изменении с ПЛК хотя бы будет видно где какие уставки используются на текущий момент. Каких-либо других способов предложить не можем. Возможные способы контроля связи с ПЛК описаны по ссылке (https://simple-scada.com/help/script/comm-control.html). При восстановлении связи можно также массово записывать уставки в ПЛК.
ЦитироватьЭто условие противоречит первому. Если на ПЛК уставка может измениться вручную, то это уже не общая уставка.
Имеется ввиду, что при изменении "общей" уставки на одном из PLC, уставки на других PLC так же приняли это значение и отобразились на SS.
А при отсутствии связи PLC c SS, уставка на PLC будет иметь локальный характер.
ЦитироватьДля такой задачи проще будет вывести в скаду все уставки с 10 ПЛК
Как раз хотел избавиться от 10 значений ввода, чтобы пользователю не вводить в 10 полей одно и тоже значение. (в действительности их больше).
Как я вижу решение этого вопроса:
1. каждые, предположим 10 сек, сервер SS будет записывать постоянно всем 10 plc значение "общей" уставки.
2. при изменении на каком либо PLC "общей" уставки, SS по скрипту "изменились переменные" отправляет в следующей итерации (10 сек.) обновленное значение "общей" уставки всем 10 plc.
3. при восстановлении связи одного из PLC, SS игнорирует, предположим в течение 30 сек, измененное от этого PLC значение "общей" уставки, тем самым позволяя записать эту уставку по пункту 2.
Если я где-то ошибся, поправьте пожалуйста.
Вы пытаетесь переложить на HMI задачу для ПЛК. Более верно как показывает практика реализовывать такие алгоритмы между ПЛК (конечно при условии, если у вас есть возможность править код на указанных ПЛК)
ЦитироватьКак я вижу решение этого вопроса:
1. каждые, предположим 10 сек, сервер SS будет записывать постоянно всем 10 plc значение "общей" уставки.
2. при изменении на каком либо PLC "общей" уставки, SS по скрипту "изменились переменные" отправляет в следующей итерации (10 сек.) обновленное значение "общей" уставки всем 10 plc.
3. при восстановлении связи одного из PLC, SS игнорирует, предположим в течение 30 сек, измененное от этого PLC значение "общей" уставки, тем самым позволяя записать эту уставку по пункту 2.
Если я где-то ошибся, поправьте пожалуйста.
Вы можете использовать такое решение. Но учитывайте, что со стороны скады не существует действительно надёжного решения описанной задачи. Предложенный Вами вариант и любые другие варианты будут всегда работать с ошибками допуская перезапись на неправильное значение и различные значения на ПЛК и в скаде. Для решения данной задачи нужно, чтобы все ПЛК и скада работали в одном потоке (синхронно) и выполняли такты одновременно, что невозможно в описанных Вами условиях.
ЦитироватьКак раз хотел избавиться от 10 значений ввода, чтобы пользователю не вводить в 10 полей одно и тоже значение. (в действительности их больше).
Для решения этой задачи см. наше пред. сообщение:
Для записи уставки в множество переменных можно создать внутреннюю переменную уставки и по ее изменению(используя скрипт "Изменились переменные") записывать уставку в требуемые 10 переменных ПЛК.
Цитировать2. при изменении на каком либо PLC "общей" уставки, SS по скрипту "изменились переменные" отправляет в следующей итерации (10 сек.) обновленное значение "общей" уставки всем 10 plc.
Чисто гипотетически может возникнуть ситуация, когда уставки будут изменены на двух PLC. Причем на разные значения. Подумайте, как SS должна обработать данную ситуацию.
Спасибо за советы, буду экспериментировать.
ЦитироватьДля решения данной задачи нужно, чтобы все ПЛК и скада работали в одном потоке (синхронно)
Могли бы вы пояснить, на каком-нибудь примере, необязательно касающегося моего вопроса. Просто чтобы привести мысли в порядок.
Как мы уже написали выше, синхронизировать между собой значения уставки на 10 ПЛК и скада системе невозможно, из-за того что это разные программы, операции в которых выполняются не синхронно. Поэтому периодически будут возникать моменты, например когда уставку изменили вручную и это совпало с моментом "предположим 10 сек, сервер SS будет записывать постоянно всем 10 plc значение "общей" уставки". В этом случае уставка установленная на ПЛК будет перезаписана на уставку из скады. То же самое может происходить и в обратную сторону. Синхронизировать программу ПЛК и скаду невозможно - это разное ПО, которое выполняется независимо друг от друга. Поэтому надежного решения описанной задачи средствами скады нет и не может быть.
Большое спасибо за развернутый ответ.
Добрый вечер.
Волей случая назвал один из скриптов именем "Delete".
Компилятор настойчиво ругался на другой скрипт, который до этого исправно работал, но в котором есть строковая функция "Delete".
Довольно долго пытался понять откуда растут ноги ((=
Здравствуйте!
Начинаю осваивать симпл скада. В проекте Demo есть некоторое количество картинок - 20 разных насосов, вентиляторы итд. Когда начинаю создавать новый проект - доступа к этим рисункам из него нет.
Как можно перенести их в свой проект?
Здравствуйте.
ЦитироватьВолей случая назвал один из скриптов именем "Delete". Компилятор настойчиво ругался на другой скрипт, который до этого исправно работал, но в котором есть строковая функция "Delete".
Большинство ключевых слов, процедур и функций добавлены в исключения и назвать ими скрипт не получится. В будущих обновлениях постараемся добавить в исключения и остальные процедуры/функций. Но даже при этом, стоит внимательно относиться к именованию скриптов, т.к. можно например создать свою глобальную процедуру/функцию, назвать скрипт аналогичным именем и получить ту же самую ситуацию.
Цитата: Юрий54 от 04 апреля 2022, 16:41:47В проекте Demo есть некоторое количество картинок - 20 разных насосов, вентиляторы итд. Когда начинаю создавать новый проект - доступа к этим рисункам из него нет.
Как можно перенести их в свой проект?
В Demo-проекте используются только стандартные изображения. Все доступные изображения библиотеки графики можно просмотреть через компонент "Изображение (https://simple-scada.com/help/manual/picture.html)" - > свойство "Текстура". Можно добавлять свои изображения и анимацию (https://simple-scada.com/help/manual/pictures.html) в формате ".png" (с глубиной цвета 32 бита или ниже) в папку "\Simple_Scada\Pictures" (перейти в папку можно через ярлык на рабочем столе (https://simple-scada.com/help/manual/installation.html?anchor=userdata)). После этого они станут доступны в редакторе.
Спасибо, получилось!
Правда доступ к библиотеке изображений через поле "текстура", которое, кстати, отсутствует у большинства стандартных изображений, нельзя считать "интуитивно понятным".
Доброго времени суток.
Вопрос про работу нескольких версий скады на одной машине (в режиме разработки).
Например:
Версия 2.5.10.0 - на ней разработаны проекты для Объектов А и Б.
Версия 2.5.14.0 - на ней разработан проект для Объектов С.
Установлены в разные директории. Папки с проектами и ярлыками (та что выводится на рабочий стол при установке) - тоже разные.
Если я открываю Editor версии 2.5.14.0 - то доступны проекты из папки версии 2.5.14.0
Если я открываю Editor версии 2.5.10.0 - то доступны проекты из папки версии 2.5.14.0...Как так?) Должны же по идее старые проекты открыться.
Здравствуйте.
Использовать на ПК несколько разных лицензионных версий(или несколько версий Demo-Time/Demo-64) нельзя. Если требуется редактировать проекты в разных версиях, то можно например установить лицензионную версию 2.5.14.0 и версию Demo-Time 2.5.10.0. После чего проекты созданные в версии 2.5.14.0 редактировать через лицензионную версию, а проекты созданные в версии 2.5.10.0 редактировать через версию Demo-Time. Но проще и лучше обновить все проекты до версии 2.5.14.0.
Добрый день!
В данный момент редактирую проект и в ручную приходиться подгонять параметры графических примитивов.
Да у Вас есть групповые операции. У Вас есть действие "копировать". Но, есть чувство ... ну не знаю как описать.
Мое предложение на рассмотрение действий "Копировать свойства" и "Обновить свойства".
Если у нас есть например заготовка объекта (единичный, без группировки), например текст. В нем настроена ширина высота цвет фона и границ. Еще ряд основных параметров (на Ваш взгляд). Накидываем с десяток текстов и редактируем не каждый по отдельности, а с примера текста - "Копировать свойства", далее гипотетически либо каждый текст отдельно либо группой делаем "Обновить свойства". Как бы все в одном стиле, далее только привязка к переменным. По поводу скриптов, ну в принципе если универсальный по изменению цвета вполне логично скопировать и его.
Возможно пользователи будут рады этой фишке.
Жду ответов и вопросов.
А можете поделиться планами по развитию проекта на сегодня, без сроков даже.
Какие 2-3 основные задачи сейчас, если коротко, у команды в приоритете? Очень интересно.
ЦитироватьМое предложение на рассмотрение действий "Копировать свойства" и "Обновить свойства".
Возможно добавим что-то подобное в будущем.
ЦитироватьКакие 2-3 основные задачи сейчас, если коротко, у команды в приоритете? Очень интересно.
поддержка архивации в PostgreSQL;
функции импорта/экспорта мнемосхем, объектов, переменных, трендов и сообщений между разными проектами;
новый источник данных в системе отчетов, для отображения произвольных списков сообщений в отчетах;
добавление компонента для вывода архивных трендов на мнемосхему;
шаблоны трендов;
Добрый день!
Интересует вопрос о Ваших планах. Рассматриваете ли Вы введение такого объекта как дуга?
Просто тут как бы несколько вариантов. Интересует не совсем дуга, а как бы реализация стрелочного прибора с настройками?
Или это отдельный объект = прибор (для цифрового есть объект поле, а для стрелочного нет ) или группа объектов (например фигура=дуга + шкала дуговая) или уровень дуговой.
Можно конечно через шаблон, но хотелось бы готовое решение.
Жду ответов и вопросов!
Здравствуйте!
Есть ли возможность произвольно изменять порядок переменных в редакторе переменных? Например, переместить одну из переменных вверх на 4 строки, а другую - вниз на 2 строки и т.п.
Когда переменных в группе много и они добавляются в разное время, то вышеописанный функционал позволил бы держать таблицу переменных в порядке.
Если такой возможности нет, то предлагаю рассмотреть ее реализацию в будущих версиях.
Вероятно, получится достичь желаемого результата при помощи экспорта/импорта через файл, но каждый раз после добавления одной-друх переменных это нерационально.
Здравствуйте.
ЦитироватьРассматриваете ли Вы введение такого объекта как дуга? Интересует не совсем дуга, а как бы реализация стрелочного прибора с настройками?
На ближайшее будущее таких планов нет. Пожелание обязательно учтем и в будущем возможно добавим такой компонент.
ЦитироватьЕсть ли возможность произвольно изменять порядок переменных в редакторе переменных?
Есть возможность сортировки. Для сортировки переменных необходимо кликнуть ЛКМ на заголовке столбца, по которому требуется произвести сортировку. Например, для сортировки переменных по имени, нужно кликнуть по заголовку столбца "Имя". Возможность переноса вверх/вниз рассмотрим для добавления в будущие обновления.
Добрый день.
Имеется ли какой-нибудь инструмент визуализации и редактирования графиков, предположим, отопления?
К примеру, как это реализовано в одноименном продукте:
(https://i.ibb.co/Q6m0Z9D/image.png)
Если нет, то каким наилучшим образом решить задачу. Заранее спасибо.
Добрый день!
Стоит задача нарисовать схематическими изображения согласно ГОСТа пневматическую и гидравлическую схемы.
Все бы было хорошо, например шаблоны или анимация. Но ...
Если делать через изображения, то Вы (Тема: Работа с изображениями) говорите, что много изображений плохо.
Если рисовать примитивами, то разные наклонные линии рисовать не можем. Возвращаться к изображениям, см. предложение выше.
На сколько просмотрел форум, данная тема затрагивалась. Поэтому хотелось бы узнать на каком уровне данный вопрос?
Возможно, как предложение делать для объекта линия угол поворота не 360 градусов, а четко определенные углы, например 30,45 и 60.
Ну очень сильно не хватает данного функционала.
Цитата: Botsmall от 09 мая 2022, 00:41:06Имеется ли какой-нибудь инструмент визуализации и редактирования графиков, предположим, отопления?
Визуализация трендов возможна только через меню Тренды (https://simple-scada.com/help/manual/editor-trends.html), компонент "Временные тренды" (https://simple-scada.com/help/manual/time-trends.html) и через систему отчетов (https://simple-scada.com/help/report/index.html). Каждый тренд записывается по какой-то переменной, на графике откладывается точка соответствующая значению переменной и моменту времени (когда переменная приняла это значение). Как-то дополнительно отредактировать линию тренда, или динамически изменять её - нельзя.
Цитата: Серега от 10 мая 2022, 13:23:13Если делать через изображения, то Вы (Тема: Работа с изображениями) говорите, что много изображений плохо.
Можно использовать любые варианты. Если Вам не подходит стандартный компонент, то вместо него можно добавить изображение на мнемосхему. В теме "Работа с изображениями" речь идёт о том, что не нужно использовать изображения когда для решения задачи подходит более простой компонент, например Shape (фигура). Если сравнивать одно цельное изображение с компонентом "Трубопровод" или "Линия", то изображение будет лучше по производительности.
Цитата: Серега от 10 мая 2022, 13:23:13Поэтому хотелось бы узнать на каком уровне данный вопрос?
Возможно, как предложение делать для объекта линия угол поворота не 360 градусов, а четко определенные углы, например 30,45 и 60.
Ну очень сильно не хватает данного функционала.
Возможность отрисовки под разными углами есть в списке задач, но она не будет реализована в ближайшее время.
Добрый день!
Спасибо за ответы. И тогда еще два предложения на рассмотрение.
1. Добавить объект типа Shape имя треугольник. Ширина и высота фигуры будут делать его либо равносторонним либо равнобедренным. Можно добавить свойство поворот на угол 90 градусов (180, 270).
2. Желание из мира фантастики. Но все таки озвучу. Если будет реализована функция наклона прямой, то в принципе можно нарисовать разные фигуры. Если 3 линии соединены между собой то это треугольник(см п.1) если 4 то это стандартная Shape:Прямоугольник и на них как бы предложение не действует. Но если в контуре объединения больше 4 линий, то преобразовывать их в Shape: Многоугольник со свойствами TM_Object и TM_Control и частью Shape (фон, толщина границы и т.д.). Или может быть какой-то отдельный простой редактор для формирования таких Shape, например как приложение по анимации. Надеюсь понятно объяснил.
Реализовано в новой версии 2.6.1.0
За группы в MessageViewer спасибо! А есть ли возможность сообщения о нарушении границ также привязать к группам?
Получается что было нарушение границы, но увидеть под объектом этого нельзя, только в общем списке сообщений.
Еще есть такое предложение/замечание. Возможно может повлиять на размер БД(на размер дампа точно влияет), быстродействие БД.
Если в свойствах переменной сделать настройку на точность сохранения данных.
Например сейчас в базе значение сохраняется как "16,873685836792", но если не нужна такая точность, то можно сохранить значение как "16,87".
Не обновляются ячейки в MessageViwer'e(завершено, длительность). Обновление происходит при смене вкладки проекта.
ЦитироватьНапример сейчас в базе значение сохраняется как "16,873685836792", но если не нужна такая точность, то можно сохранить значение как "16,87".
Размер данных в БД не зависит от формы их отображения, т.к. колонка значения имеет фиксированный тип "double" и для хранения любого значения будет выделяться одинаковое количество памяти. Поэтому форма записи может влиять только на размер дампа, т.к. у MySQL нет двоичных дампов и данные дампа хранятся в виде текста.
ЦитироватьНе обновляются ячейки в MessageViwer'e(завершено, длительность). Обновление происходит при смене вкладки проекта.
Обнаружили причину, время не обновляется для сообщений у которых выключено добавление в список "Активные". Сделаем исправление в ближайшее время.
ЦитироватьНе обновляются ячейки в MessageViwer'e(завершено, длительность). Обновление происходит при смене вкладки проекта.
Исправление включено в версию 2.6.1.0. Для обновления нужно скачать её повторно и установить.
ЦитироватьВизуализация трендов возможна только через меню Тренды, компонент "Временные тренды" и через систему отчетов. Каждый тренд записывается по какой-то переменной, на графике откладывается точка соответствующая значению переменной и моменту времени (когда переменная приняла это значение). Как-то дополнительно отредактировать линию тренда, или динамически изменять её - нельзя.
Вы меня неправильно поняли. Тренды мне не нужны.
Есть некая линейная функция, которая описана двумя (или более) координатами. Координаты точек хранятся в plc.
"Визуализация" этого графика упростило бы задачу восприятия и более "вдумчивого" редактирования этой самой функции (графика).
"Если нельзя, но очень хочется, то можно."
Цитата: Botsmall от 13 мая 2022, 22:08:58Есть некая линейная функция, которая описана двумя (или более) координатами. Координаты точек хранятся в plc.
"Визуализация" этого графика упростило бы задачу восприятия и более "вдумчивого" редактирования этой самой функции (графика).
Для отображения однозначной функции (в т.ч. и с линейной интерполяцией) используется набор точек и/или ортогональных отрезков.
1. Графическая область - набор объектов Text шириной 1, непрерывно заполняющих его по Х-координате.
2. Построение линии по алгоритму Брезенхэма, причем по углам наклона линии в 45 и менее градусов построение ведется точками (объект размером 1 х 1), а свыше 45 градусов - увеличением высоты объекта.
Пример построения линии (без должной проверки и оптимизации) во вложении.
В очередной раз большое спасибо. Вы меня поняли :-[
Не особо дружелюбно это выглядит, оставлю я эту затею ((=
Добрый день. В реализации новой системы архивации, есть возможность записать в архив значение переменной принудительно? Планируется ли такой функционал?
(например: при запуске/остановке агрегата, сохранить значения связанных с его работой переменных)
На скринах: В графике, все падения тренда должны были быть равны нулевому значению, т.к. насос был отключен. Но на трех отключениях насоса, получается что был приход воды.
Здравствуйте.
ЦитироватьВ реализации новой системы архивации, есть возможность записать в архив значение переменной принудительно?
Такой возможности нет, т.к. принудительная запись плохо влияет на производительность системы архивации.
Причина в зоне нечувствительности. У Вас она 5% (это 1.5 от шкалы переменной). Поэтому, когда значение прихода воды упало сначала на 1.462, а затем на 0, то значение 0 не записалось в тренд и БД (ведь 1.462 меньше чем 1.5). Нужно либо уменьшить зону нечувствительности до приемлемых значений, либо вовсе её убрать, если погрешность показаний не допускается.
Добрый день. При массовом изменении переменных, не применяются параметры фильтра. Версия 2.6.0
Здравствуйте. После создания отчета на клиенте или сервере окно просмотра отчета открывается одновременно и на клиенте и на сервере. Версия 2.5.15.0
Здравствуйте.
Цитата: AlexejKa38 от 29 мая 2022, 18:54:02После создания отчета на клиенте или сервере окно просмотра отчета открывается одновременно и на клиенте и на сервере. Версия 2.5.15.0
Это говорит о том, что клиент на сервере и клиент на удалённом ПК имеют одинаковое имя, или имя клиентов не задано (равно пустоте ""), т.е. получается также одинаковое имя. Задайте клиентам разные имена(см. опцию "Имя этого клиента" (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=servset)), сохраните настройки, перезапустите клиент и все будет работать правильно. Также возможно, что в качестве имени клиента в скрипте указана константа SS_ALL_CLIENTS, тогда отчет будет открываться для просмотра на всех клиентах (см. пример скрипта №4 по ссылке (https://simple-scada.com/help/script/reportbuild.html)). Если в скрипте задано конкретное имя клиента, например "my_client", на котором должен открываться отчёт, то лучше использовать функцию GetClientName (https://simple-scada.com/help/script/getclientname.html), тогда отчет будет открываться с любого клиента, который кликнет на кнопку "Построить отчёт":
var
aReport: TM_Report;
begin
aReport := ReportBuild('Отчет');
aReport.View(GetClientName);
end.
Цитата: Виктор К от 20 мая 2022, 12:12:03Добрый день. При массовом изменении переменных, не применяются параметры фильтра. Версия 2.6.0
При массовом редактировании меняются только те свойства, которые были изменены после открытия окна редактирования (они подчеркиваются желтой полосой снизу, см. скрин). Остальные свойства не затрагиваются. После выбора фильтра задайте новые значения в полях, чтобы они изменились.
Проверка изменения происходит при выходе из поля. Соответственно если хотим отставить значения по умолчанию: нужно написать другое значение->покинуть поле ввода-> вернуться обратно в поле-> ввести значение которое стояло по умолчанию.
Доброго времени суток. Создаю свой первый проект на Simple-Scada. Столкнулся с таким моментом. Я думаю было бы очень удобно иметь возможность вложенных шаблонов. Например у меня 4 почти одинаковых автоматических линии. В каждой линии есть по 2 одинаковых установки. Я бы сделал шаблон установки, а затем шаблон линии. В шаблон линии добавил бы два экземпляра шаблона установки (далее Device). Затем в проете , когда я добавляю шаблон линии, он бы у меня спрашивал например номер линии, номер устройства для 1 шаблона установки и номер установки для второго шаблона установки. И запись в переменных выглядела бы примерно так Line%НомерЛинии%_Device%Номер устройства%_frequencyTurbine. Сейчас же если я добавлю такой шаблон, то у меня появится только два поля для заполнения Номер линии и номер устройства. А номерация устройств получается не сквозная и работать не будет. Пробовал затестить, даже если все поля вбиты верно и переменная типа Line1_Device1_frequencyTurbine существует. Добавил ее отображение и в шаблон устройства и в шаблон линии. В шаблоне устройства она при изменении не отображается, а в шаблоне линии отображается. Получается, что вложенные шаблоны не работают, а было бы удобно. Очень удобно.
Еще при добавлении шаблона в проект обьекты из шаблона и рамка размещения не совпадают в редакторе. На клиенте потом вроде нормально отображаются, но при компоновке очень не удобно.
Здравствуйте.
ЦитироватьПолучается, что вложенные шаблоны не работают
Вложенные шаблоны работают. При использовании вложенных шаблонов, подстановки с одинаковым именем объединяются. Например: имеется пустой шаблон "А", а также шаблон "Б" с подстановкой "Ток насоса". Если в шаблон "А" два раза добавить шаблон "Б", то у шаблона "А" будет одна подстановка "Ток насоса", значение которой будет передано двум шаблонам "Б". Подробное описание работы "Шаблон + шаблонное окно"(что аналогично работе "шаблон + шаблон") можно посмотреть по ссылке (https://simple-scada.com/help/manual/templandtemplwnd.html).
ЦитироватьСейчас же если я добавлю такой шаблон, то у меня появится только два поля для заполнения Номер линии и номер устройства.
Все верно, т.к. подстановки с одинаковым именем объединятся. Вы же хотите, чтобы для каждого экземпляра вложенного шаблона можно было заполнять отдельные подстановки. В текущей версии реализовать такое не получится. Обсудим и подумаем, что можно сделать в этом направлении и возможно в одном из будущих обновлений такой функционал появится.
ЦитироватьЕще при добавлении шаблона в проект обьекты из шаблона и рамка размещения не совпадают в редакторе. На клиенте потом вроде нормально отображаются, но при компоновке очень не удобно.
Данная ошибка исправлена в версии 2.6.1.0. Если используется более старая версия, то обновитесь до актуальной версии. Если используется версия 2.6.1.0, то скачайте и установите её повторно.
Здравствуйте!
Подскажите, для справки, что значат эти параметры в логах ? Interval, LifeTime, KeepAlive, Count ?
Здравствуйте.
Это параметры подписки, подробно описаны в спецификации OPC-UA по ссылке (https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.1/). Краткое описание ниже:
- Interval (он же PublishingInterval) - определяет, как часто UA-сервер отправляет уведомления по этой подписке;
- LifeTime - определяет, сколько раз может истечь PublishingInterval без отправки данных или сообщений KeepAlive, прежде чем сервер удалит подписку. Чем больше значение, тем дольше подписка будет жить при разрыве связи;
- KeepAlive (он же MaxKeepAliveCount) - если нет данных для отправки UA-сервер отправит пустое сообщение KeepAlive через PublishingInterval * MaxKeepAliveCount. Используется для поддержания активности подписки когда нет данных для отправки;
- Count - количество переменных, добавленных в подписку.
Спасибо за ссылку! прочитал, более менее ясно. параметр LifeTime (в мс) определяется параметром "долгий/короткий" временем жизни подписки, из выпадающего списка в редакторе настроек ОРС сервера в проекте, верно ?
Да, опция "Срок действия подписок" (https://simple-scada.com/help/manual/opcuanew.html?anchor=uapar) влияет на параметры LifeTime и KeepAlive. А Interval определяется частотой опроса переменных. Нужно также учитывать, что UA-сервер может переопределить эти параметры по своему усмотрению.
Пожелание обратить внимание на кнопку tab (а может и ошибка) - при нажатии кнопки "tab" после ввода имени пользователя в настройках ОРС сервера курсор делает пробел (часто не заметный), а не переходит на следующее поле ввода пароля. Хотелось бы чтобы как обычно, tab перебирал доступные элементы в окне. Версия 2.6.1.0
Добрый день.
Вопрос.
По ряду обстоятельств в OPC сервере переменная int, хранится в формате string [0.######]. Изменить этот формат нельзя.
В SS есть поле, которая взаимодействует с этой переменной (чтение/запись).
Проблема в том, что как я бы не объявлял эту переменную в SS (string, int, single и т.д; менял формат в свойствах переменной) на входе я имел [0.######].
Все бы ничего, но пользователь в итоге, в редактируемом поле SS видит число, допустим, 35.00000, а должен просто 35.
Помогите разобраться.
Добрый день. Версия 2.6.1.0 (22-05-2022).
Шаблон. При повороте изображения, не правильно рассчитываются предельные границы для перемещения. Повернутое изображение на скрине находится в максимально верхнем положении. Эта проблема была и в предыдущих версиях.
Цитата: Eugene_ от 28 июня 2022, 11:28:52Пожелание обратить внимание на кнопку tab (а может и ошибка) - при нажатии кнопки "tab" после ввода имени пользователя в настройках ОРС сервера курсор делает пробел (часто не заметный)
Цитата: Виктор К от 29 июня 2022, 07:03:19При повороте изображения, не правильно рассчитываются предельные границы для перемещения.
Добавим исправления в одно из ближайших обновлений.
Цитата: Botsmall от 29 июня 2022, 05:52:02По ряду обстоятельств в OPC сервере переменная int, хранится в формате string [0.######]. Изменить этот формат нельзя.
Если переменная передаётся в скаду как строка, то тип данных выбранный в скаде смысла не имеет, она в любом случае будет отображаться как строка. Формат тоже не повлияет на неё, ведь формат используется для чисел, а не для строк.
Если Вы хотите работать со строкой как с числом, то придётся делать дополнительную конвертацию. Например, создать отдельную переменную типа Single с именем "vrSingle". Затем по событию OnDataChange строковой переменной копировать в неё значение переведённое в число, например:
begin
vrSingle.Value := StrToFloatDef(vrStr.AsStr, 0);
end;, где vrStr - это строковая переменная.
Теперь значение строковой переменной будет в виде числа копироваться в vrSingle.
Еще пожелание. У TM_Calendar реализовать свойство "подтверждение", аналогичное как у TM_Field.
Рассмотрим для добавления в будущие обновления.
Здравствуйте. Спасибо за отличную программу.
Необходимо в отчете суммировать последние значения колонок данных одного источника. Оператор перед построением будет выбирать значения каких колонок будут включены в отчет и суммироваться.
Если бы в итог включались всегда одни и те же значения, то можно просто написать выражение: {Источник1.Переменная1_Последнее + Источник1.Переменная2_Последнее + Источник1.Переменная2_Последнее}. Задачу наверное можно решить с помощью функции IIF, но выражение такого вида выдает ошибку: {IFF(Переменная1_Включить_в_Отчет, Источник1.Переменная1_Последнее, 0)+(Переменная1_Включить_в_Отчет, Источник1.Переменная1_Последнее, 0)}. Вопрос как сложить значения двух функций IFF? Выражение с одной функцией IFF работает. Прикладываю проект как это примерно должно выглядеть.
Еще вопрос почему для Источника_1 с интервалом 0 и Источника_2 с интервалом 10 секунд за один и тот же промежуток времени выдаются разные первые и последние значения одних и тех же переменных. А выражение {Источник2.Время.AddSeconds(-Источник2_Интервал)} влияет только на отображение времени. Получается, что перед генерацией отчета надо из Начала и Конца периода вычитать число секунд Интервала.
Здравствуйте.
Извините за задержку с ответом, пропустили уведомление с Вашим вопросом. Сложить результат нескольких условий можно таким способом:
{
(double)(IIF(vrOn1==1, (double)Данные.Value1, (double)0)) +
(double)(IIF(vrOn2==1, (double)Данные.Value2, (double)0)) +
(double)(IIF(vrOn3==1, (double)Данные.Value3, (double)0))
}ЦитироватьЕще вопрос почему для Источника_1 с интервалом 0 и Источника_2 с интервалом 10 секунд за один и тот же промежуток времени выдаются разные первые и последние значения одних и тех же переменных. А выражение {Источник2.Время.AddSeconds(-Источник2_Интервал)} влияет только на отображение времени. Получается, что перед генерацией отчета надо из Начала и Конца периода вычитать число секунд Интервала.
В колонке "Время" по-умолчанию отображается время на конец интервала. Если нужно, то можете сместить его выражением, которое Вы привели, это никак не повлияет на работу типов обработки. Принцип работы периодических источников и типы обработки описаны здесь (https://simple-scada.com/help/report/periodicsourcework.html).
Добрый день.
Есть ли возможность вывода web-страницы произвольного сайта непосредственно в окне Simpla-scada? Если конкретнее, то есть руфтопы, у которых встроенная в ПЛК web-визуализация. Заказчик пожелал видеть визуализацию этих руфтопов не в отдельном окне браузера, а непосредственно в SCADA-системе.
Здравствуйте.
ЦитироватьЕсть ли возможность вывода web-страницы произвольного сайта непосредственно в окне Simpla-scada?
Такой возможности нет.
Здравствуйте.
Использую Demo версию программы для разработки проектов.
Недавно редактор отчётов начал ругаться, что "Срок Вашей пробной версии истек".
Переустановка не помогла. Что делать?
Здравствуйте.
Цитата: dima_k от 14 июля 2022, 07:57:43Использую Demo версию программы для разработки проектов. Недавно редактор отчётов начал ругаться, что "Срок Вашей пробной версии истек". Переустановка не помогла. Что делать?
Скачайте с сайта текущую демо-версию (https://simple-scada.com/download) и установите ее. После обновления окно "Срок вашей пробной версии истек" не должно выдаваться.
Почему-то на главной странице текущей версией является 2.6.1.0, а не 2.6.2.1
По ошибке не опубликовали на сайте новость о версии 2.6.2.1, поэтому она не отображается в разделе "Новости". При выходе дальнейших обновлений новости будут публиковаться как обычно. Для скачивания (https://simple-scada.com/download) сейчас доступна последняя версия 2.6.2.1.
Здравствуйте.
Можно ли как-то в скриптах получить наличие/количество аварийных/предупредительных сообщений?
Здравствуйте.
Цитата: alex29 от 19 июля 2022, 13:47:26Можно ли как-то в скриптах получить наличие/количество аварийных/предупредительных сообщений?
Для получения количества активных сообщений проекта можно использовать функцию SysGet (https://simple-scada.com/help/script/sysget.html)с константой SYS_ACTIVE_COUNT. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа (https://simple-scada.com/help/manual/index.html?edit-message.html#prop_sost): Сообщение, Предупреждение, Авария.
Цитата: Simple Scada от 19 июля 2022, 15:01:39следует учитывать, что данная функция возвращает количество всех активных сообщений проекта
жаль.
Еще вопрос. Скада может реагировать на пересечение границ переменной. И даже выдавать сообщения. Всё классно, готовый функционал.
Сигнал аварии идет в колонки компутера.
Но, что бы включить аварийный/предупредительный сигнал где-то ... , то как это сделать? ( может где-то не дочитал, но честно - искал)
Хотелось бы использовать готовый функционал и не реализовывать это в контроллере.
Может добавить где-нибудь настройку(в свойствах сообщений, например) где указать переменные или номер бита для привязки к авариям и предупреждениям.
или сделать доступ из скриптов к "наличию предупредительного/аварийного звука".
Если при нарушении границ определенных переменных требуется записать значение в переменную ПЛК(например, которая включает сирену), то для этого можно создать скрипт с типом события "Нарушена граница (https://simple-scada.com/help/script/borderviol.html)", добавить в список скрипта(как это описано здесь (https://simple-scada.com/help/script/changemulvar.html)) требуемые переменные и написать такой скрипт:
begin
if not IsFirstChange then // пропускаем первое изменение, чтобы скрипт не срабатывал при перезапусках проекта
if Variable.GetValueZone <> 0 then // если нарушена любая граница любой переменной из списка скрипта, то..
MyVar.Value := 1; // включаем сирену
end.В данном скрипте, при нарушении любой границы любой переменной из списка скрипта в переменную будет записываться значение 1. При необходимости, можно включать сирену только в случае нарушения определенных границ - см. описание функции GetValueZone (https://simple-scada.com/help/script/getvaluezone.html).
Спасибо. Но хотелось бы чуть другой логики. После подтверждения сообщений, на компе со скадой звук выключится, а в случае Вашего примера скрипта сирена подключенная к плк продолжит орать, пока значение за границами находится. Нужно все равно обрабатывать это как-то дополнительно.
В идеале было бы доступ к событиям "воспроизводится звук сообщения", "воспроизводится звук предупреждения", "воспроизводится звук аварии"
ЦитироватьВ идеале было бы доступ к событиям "воспроизводится звук сообщения", "воспроизводится звук предупреждения", "воспроизводится звук аварии"
Пожелание учтем и возможно подобный функционал появится в будущем.
Можно ли поменять общий принцип поведения системы в работе с ключом лицензии ?
Scada установлена как сервис, версия 2.6.1.0. на виртуальной машине. В настройках проекта режим "запущен всегда" . Туда по USB_over_Ethernet проброшен USB ключ лицензии.
Неудобство и проблема: когда вытаскиваешь (или пропадает связь SCADA - ключ) то вместо очевидной и ожидаемой остановки всех проектов с ошибкой в логе "не найдена лицензия" - останавливается вся служба Scada. После включения ключа нужно вручную запускать службу. Соответственно нужен админ для запуска проекта, полевые инженеры сделать этого не могут по модели доступа предприятия, и нет в логах сообщений что был потерян системой ключ.
Можно переделать поведение системы в будущих релизах ? при потере ключа остановка проектов и периодическая последующая проверка ключа, если найдет - возврат в предыдущее состояние проектов (согласно их настроек запуска)
Здравствуйте.
Остановка проектов без завершения процесса сервера снизит уровень защиты и упростит взлом ПО, поэтому система проверки ключа скорее всего не изменится в ближайшем будущем. Если Вы пробрасываете ключ по локальной сети, то рассмотрите возможность прямого проброса из основной машины (на которой запускается и работает виртуальная машина), как описано по этой ссылке (https://simple-scada.com/help/manual/electronic-usb-key.html?anchor=virtual-key) (пункт №1).
Добрый день.
Появился вопрос.
Имеются переменные, которые при нулевом своем значении должны инициализировать сообщение об аварии.
Соответственно, для того чтобы журнал аварий не забивался сообщениями при потери связи с устройствами, в настройках проекта стоит галка "игнорировать переменные с плохим качеством...".
Одновременно с этим существуют переменные (Bacnet переменные), которые наоборот инициализируют сообщения при значении отличном от нуля. Но, эти переменные при возникновении аварии
меняют свое качество на "sensor_failure". Появляется дилемма:
при выключенной опции: "игнорировать переменные с плохим качеством..." журнал будет забиваться сообщениями от первого списка аварий при потере связи.
при включенной опции: "игнорировать переменные с плохим качеством..." журнал не будет забиваться сообщениями, но от второго списка не будет вообще никаких сообщений.
наверно предложите создать на каждую внешнюю переменную внутреннюю и обрабатывать аварии с помощью них. Но их кол-во запредельно для ручного заполнения.
(к тому же, если я ошибаюсь, пожалуйста, поправьте, внутренние переменные "кушают" точки лицензии?). Как быть?
Здравствуйте.
1. Чтобы подобных проблем не возникало, рекомендуем не использовать для выдачи сообщений нулевые значения переменных. Тогда обрывы связи не будут приводить к выдаче сообщений по нулевым значениям.
2. Возможно в OPC-сервере для тегов, у которых при возникновении аварии качество изменяется на "sensor_failure" можно отключить смену качества.
3. Возможно в OPC-сервере можно настроить поведение при обрыве связи. Например, в arOPC можно задать опцию "Значения тегов при отказе" = "Оставить последнее достоверное значение"(см. скриншот во вложении). Тогда при обрыве связи значения переменных не будут обнуляться и соответственно не будут выдаваться сообщения по нулевым значениям. Возможно подобные настройки имеются в Вашем OPC-сервере.
Со стороны скада-системы описанный вопрос решить не получится.
Цитироватьнаверно предложите создать на каждую внешнюю переменную внутреннюю и обрабатывать аварии с помощью них. Но их кол-во запредельно для ручного заполнения.
Такой способ целесообразен только если подобных переменных немного.
Цитироватьк тому же, если я ошибаюсь, пожалуйста, поправьте, внутренние переменные "кушают" точки лицензии?
Считаются только внешние переменные, которые добавлены с OPC-сервера. Количество внутренних переменных не ограничено. В редакторе переменных (https://simple-scada.com/help/manual/variable-editor.html) на верхней панели отображается общее количество переменных проекта, а также количество внешних переменных(которые учитываются в лицензии) в скобках.
Будет ли организована, красивая поставка данных из БД, с их первоначальным типом, в таблицу в SCADA, а также в честь этого добавить свойство ячейке - value для понятного дела зачем?
Здравствуйте.
ЦитироватьБудет ли организована, красивая поставка данных из БД, с их первоначальным типом, в таблицу в SCADA, а также в честь этого добавить свойство ячейке - value для понятного дела зачем?
Таких изменений не планируется.
Добрый день!
Хотелось бы видеть в списке локализаций также белорусский язык. Я сделал перевод в файлах конфигурации, переделал локализацию English в белорусскую. Перевод по большей части автоматический, но весь текст прошел глазами и исправил вручную несоответствия, так что если ошибки будут, то минимум. Надеюсь на вашу поддержку этого "фанатского" перевода путем переименования файлов конфигурации в Belorussian и добавления соответствующего пункта в выпадающем меню выбора языка.
Также во время перевода я обнаружил несколько опечаток в русской локализации, вынес их в отдельный файл Russian_errors, который тоже прилагаю.
Здравствуйте.
Спасибо, внесли исправления. Белорусскую локализацию добавим в ближайшее обновление.
Цитата: Timothy Clement от 22 августа 2022, 10:51:39Добрый день!
Хотелось бы видеть в списке локализаций также белорусский язык...
Timothy Clement, ай как классно! Тоже хотел предложить реализацию этой темы.
Очень актуально. Спасибо за труд!
Ещё б немецкий и польский в будущем и выходить на новые рынки 8)
Здравствуйте.
1. Возможно ли в палитре цветов добавить подсказку с наименованием константы цвета? Или в справке по скриптам в описании констант цветов добавить рядом в колонке как он выглядит? А то только в скриптах можно посмотреть.
2. У TM_Table заголовок при форматировании "слева" или "справа" имеет отступ, а у остальных объектов (например, TM_Field) текст он при этом же форматировании "липнет" к границе объекта. Может есть возможность немного его "оттащить"? Или параметр ввести "отступ от края"? Не критично, но всё же... Ненарядно )
Даже при форматировании "сверху" или "снизу" есть небольшой отступ....
3. А ещё по скриптам: когда разворачиваем список скриптов, переходим в скрипт - остальной список скриптов сворачивается. Можно ли не сворачивать список? при переключении между двумя скриптами потом опять ищешь то место предыдущего скрипта.
Спасибо.
Цитата: Nomad от 14 октября 2022, 20:45:191. Возможно ли в палитре цветов добавить подсказку с наименованием константы цвета? Или в справке по скриптам в описании констант цветов добавить рядом в колонке как он выглядит? А то только в скриптах можно посмотреть.
Константы цветов отличаются от цветов палитры. Если нужно перенести цвет в скрипты, то можно взять из палитры параметры цвета и подставить их в функцию RGB, например:
begin
txtA1.Color := RGB(100, 125, 20);
end.Цитата: Nomad от 14 октября 2022, 20:45:19Может есть возможность немного его "оттащить"? Или параметр ввести "отступ от края"?
В ближайшее время такой возможности не появится.
Цитата: Nomad от 14 октября 2022, 20:45:193. А ещё по скриптам: когда разворачиваем список скриптов, переходим в скрипт - остальной список скриптов сворачивается. Можно ли не сворачивать список? при переключении между двумя скриптами потом опять ищешь то место предыдущего скрипта.
Да, компонент групп сейчас допускает только одну развёрнутую группу. Изменим в будущих обновлениях.
Добрый день!
С каждым выходом новой версии работать в редакторе становиться все приятнее!
При редактировании простых элементов (например текст, фигура, поле) и последующей их привязки к переменным в принципе все хорошо.
Но когда (чисто субъективное мое мнение) много элементов и надо проверить привязку к переменным, само поле, где выбирается переменная прыгает вверх вниз от элемента к элементу.
Данное действие начинает растягиваться по времени. Начинаешь уставать. Но ... работа не ждет.
Так же не совсем понятно распределение свойств например прозрачность или цвет у прямоугольника.
Если идут параметры геометрии пусть будут только ширина высота и координаты х и у выделены в группу как сейчас. На мой взгляд эти параметры более основные чем прозрачность.
А прозрачность с цветом в отдельную группу доп. свойств.
Маленькое предложение по распределению свойств в окне свойств:
1 группа - геометрия (координаты, ширина, высота)
2 группа - доступ (имя, видимость, доступность)
3 группа - привязка (полностью как сейчас)
дальше как и сейчас.
Как бы предлагаю сделать такую "лакировку" свойств. Надеюсь это не сложно и многим из пользователей Вашим продуктом это понравиться.
И в дополнение. Это касается не всех элементов. Это ближе всего к первым 6 элементам панели выбора элементов.
Добрый день!
Было бы очень удобно, если бы на сайте рядом с версией стояла дата ее выхода.
Здравствуйте.
ЦитироватьМаленькое предложение по распределению свойств в окне свойств...
Пожелание учтем и посмотрим, что можно сделать в этом направлении.
UPD: изменили порядок свойств объектов в обновлении 2.6.4.0.
ЦитироватьБыло бы очень удобно, если бы на сайте рядом с версией стояла дата ее выхода.
Историю версий с датами выхода можно найти в руководстве по ссылке (https://simple-scada.com/help/manual/whats-new.html).
ЦитироватьИсторию версий с датами выхода можно найти в руководстве по ссылке (https://simple-scada.com/help/manual/whats-new.html).
Добрый день!
Это неявное местоположение информации. :) На нее нет нигде ссылки из основных окон по версиям.
Совсем несложно добавить эту дату на основной экран или хотя бы на страницу с описанием новшеств версии.
Лично я обращаю внимание на дату, когда хочется понять "живой" ли продукт предлагается или насколько я отстал от жизни :).
ЦитироватьСовсем несложно добавить эту дату на основной экран или хотя бы на страницу с описанием новшеств версии.
Добавили отображение даты в нижней части страницы новостей. При публикации последующих обновлений будем добавлять дату в название новости.
Добрый день. Предложение: при любом количестве тегов было бы очень удобно, если бы в редакторе переменных и в списке выбора переменных в окне редактора, переменные уже имеющие привязку к объектам выделялись другим цветом.
Присоединяюсь к запросу. Это было бы предельно удобно, чтобы найти не используемые теги в проекте. И еще лучше чтобы одним цветом выделялись привязанные только к объектам (кнопка, фигура), а другим цветом упомянутые и в скриптах и привязанные к объектам.
Добрый день!
Добавлю и со своей стороны одно предложение. Хорошо бы выделить переменные с привязкой, которые используются для записи.
Здравствуйте.
Добавим отображение количества ссылок в меню переменных в одном из будущих обновлений.
Доброго времени суток!
Есть пара предложений.
1) Временные тренды. Вижу, вопрос уже поднимался. Всё-таки хотелось бы либо иметь возможность изменять диапазоны тэгов из скриптов, либо иметь среди инструментов тренд, который можно отобразить на нужном окне и который отрисовывает графики с масштабированием к указанным минимуму и максимум шкалы. То есть, я могу скриптами для шкалы временного тренда задать минимум и максимум шкалы, но сам график рисуется в поле тренда от минимума до максимума из диапазона тэга, и график в итоге не соответствует шкале.
Можно конечно и с пересчётами через дополнительные внутренние переменные делать, но это опять же лишние тэги и лишние действия.
2) Сообщения. Есть в настройках сообщений опция "Сброс", которая записывает в триггер тэг (или триггер бит) для данного сообщения 0. В моём случае, квитирование алармов производится через контроллер, поэтому очень не хватает переменной квитирования. Крайне удобным был бы механизм работы такой, что при квитировании в эту переменную записывался 0 (или 1, не столь важно), и так же изменение со стороны контроллера этой переменной на 0 (или 1) распознавалось системой сообщений как квитирование.
Здравствуйте.
1. В будущем мы планируем добавить отдельный компонент "Архивный тренд", который по функционалу будет соответствовать окну просмотра архивных трендов. Но когда такой компонент появится сказать сложно, т.к. имеется ряд более популярных задач, которые должны быть решены в первую очередь.
2. Если квитирование сообщений требуется производить через "переменную квитирования" с ПЛК, то можно скрыть штатную панель сообщений (https://simple-scada.com/help/manual/edit-zone.html) и создать свою(для этого лучше всего использовать шаблон (https://simple-scada.com/help/manual/template.html)). Вместо панели сообщений можно использовать компонент "Список сообщений (https://simple-scada.com/help/manual/message-viewer.html)". Смену пользователя можно реализовать через кнопку и скрипт по событию OnClick используя процедуру ChangeUser (https://simple-scada.com/help/script/changeuser.html). Переход в меню сообщений можно реализовать используя скрипты для навигации (https://simple-scada.com/help/script/navigation.html). Для квитирования сообщений можно использовать кнопку и процедуру ConfirmMessage (https://simple-scada.com/help/script/confirmmessage.html). К кнопке подтверждения можно привязать "переменную квитирования" с ПЛК и записывать в нее требуемое значение. Для записи фиксированного значения при нажатии на кнопку, оставьте у кнопки только одно состояние (https://simple-scada.com/help/manual/button.html) и задайте в нем требуемое значение.
Добрый день! Подскажите куда смотреть чтобы создать журнал событий на мониторе (_повернул ключ-время, сработал концевик-время и.т.д.) Не могу понять с чего начать, а если есть пример вообще было бы хорошо. Спасибо.
Здравствуйте.
Сообщения можно добавлять/редактировать через меню сообщений (https://simple-scada.com/help/manual/edit-message.html). Для создания множества однотипных сообщений можно использовать шаблонные сообщения (https://simple-scada.com/help/manual/templatemessage.html). Для просмотра сообщений на клиенте (https://simple-scada.com/help/manual/client-message-view.html) необходимо кликнуть по панели сообщений (https://simple-scada.com/help/manual/client.html#:~:text=4.-,%D0%9F%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9,-%2D%20%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D0%B5%D1%82%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%BD%D0%B5%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5) в нижней части экрана. Если требуется вывести сообщения на мнемосхему, то нужно использовать компонент "Список сообщений (https://simple-scada.com/help/manual/message-viewer.html)".
Добрый день! Вот какая проблема,есть несколько переменных которые получаю с контролера (температура масла, ток двигателя, угол наклона печи. Все три принимаются и работают в проекте без проблем. Для температуры масла настроил работу с аварийными и предупредительными границами - текущее значение меняет цвет при привышении указаных порогов. Попытался сделать тоже самое по образу и подобию с остальными двумя - ничего не получается, цвет не меняется, десятки раз перепроверил_ не работает. Для эксперимента создал 3 внутринни переменные чтобы проверить работу с границами - это работает , а вот с двумя из трёх значений получаемых из контроллера ни как не хочет.
Что необходимо поправить чтобы оживить функционирование границ?
Здравствуйте, см. вопрос №5 по ссылке (https://simple-scada.com/help/manual/faq-client.html?anchor=q5).
Спасибо,заработало,мазоль натер уже на своей репе.
Добрый день! Будет ли осуществлен следующий функционал в обозримом будующем:
1. Использование шрифтов Windows
2. Сохранение или экспорт и импорт скриптов из существующего проекта и желательно других объектов (окна, страницы)
3. Рисование линии по диагонали, другие графические примитивы, кроме прямоугольника и эллипса
4. Получение отдельного бита из переменной word без использования скриптов (к примеру привязать 1 бит к одной картинке, 2 бит к другой картинке и т.п.) по аналогии с кнопками
Здравствуйте.
ЦитироватьБудет ли осуществлен следующий функционал в обозримом будущем
1. Нет;
2. Да, это одна из основных задач сейчас;
3 и 4. Только после решения более популярных задач.
Точный срок реализации назвать, к сожалению, не можем.
Цитата: Миханик от 15 июля 2020, 12:03:33Цитата: Simple-Scada от 04 августа 2019, 09:56:45Цитата: Миханик от 02 августа 2019, 09:35:03А почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?
Постараемся добавить в будущих обновлениях.
Добрый день. Просто напоминаю - вдруг подзабыли :). Очень нужен, а то пол таблицы не видно.
Ну добавьте уже, пожалуйста, горизонтальную прокрутку для Таблицы. С 2019 года жду :(
Есть очень много более популярных задач, они решаются в первую очередь. Горизонтальный скролл в таблицах до сих пор слабо востребован.
Добрый день! Не соглашусь, что не востребованная функция. У меня почти в каждом проекте есть таблица по 30-35 столбцов. Чтобы данные вошли в такие ячейки нужно делать шрифт 8 и то еле входит, так как значения с запятой.
Поэтому было бы очень неплохо иметь горизонтальный скролл.
Здравствуйте
Цитата: ??? от 19 января 2023, 14:13:52Добрый день! Не соглашусь, что не востребованная функция. У меня почти в каждом проекте есть таблица по 30-35 столбцов. Чтобы данные вошли в такие ячейки нужно делать шрифт 8 и то еле входит, так как значения с запятой.
Поэтому было бы очень неплохо иметь горизонтальный скролл.
Ссылка на пример горизонтального скролла таблицы. Пример исправлен для таблицы с различной шириной столбцов.
Цитата: pan2000 от 16 июля 2020, 13:44:01Пока не добавлен горизонтальный скролл, можно воспользоваться примером реализации горизонтального скролла для широкой таблицы.
Рассмотрите, пожалуйста, добавление новых пунктов у объекта Field свойство "Положение подписи":
- слева сверху;
- справа сверху;
- слева снизу;
- справа снизу.
Добрый день!
Возникла необходимость переноса проекта на другой сервер, нужно также сохранить внутренние переменные с автоматическим восстановлением. В прошлых версиях они лежали в файле Retentive прямо в папке с проектом, где искать в версии 2.6.3.3 и старше?
Здравствуйте.
ЦитироватьРассмотрите, пожалуйста, добавление новых пунктов у объекта Field свойство "Положение подписи"
Пожелание обязательно учтем, но пока добавление такой возможности не планируется. При необходимости, вместо подписи можно использовать компонент "Текст (https://simple-scada.com/help/manual/text.html)".
ЦитироватьВ прошлых версиях они лежали в файле Retentive прямо в папке с проектом, где искать в версии 2.6.3.3 и старше?
Значения переменных с автоматическим восстановлением сохраняются на серверном ПК в папку с именем проекта расположенную в директории "%ProgramData%\Simple-Scada 2" в файлы "Retentive.srf" и "RetentiveStr.srf".
Добрый день. На основных трендах очень не хватает масштабирования с помощью лупы, например как веб версии. Планируется поставить проект в 19 дюймовую стойку там нет мыши с колесиком, а без него нет возможности менять масштаб шкалы переменных.
Здравствуйте.
На устройствах с сенсорным экраном для масштабирования шкал трендов необходимо использовать жесты увеличения (https://www.winpedia.ru/index.php/bazovye-ponyatiya/336-zhesty-ekrana-uvelichenie-razmera-masshtaba) и уменьшения (https://www.winpedia.ru/index.php/bazovye-ponyatiya/335-zhesty-ekrana-umenshenie-razmera-masshtaba). Для возврата к оригинальному виду шкалы необходимо выполнить клик с удержанием, после чего сместить палец вверх или вниз.
Мы не подключаем сенсорный экран. У нас клавиатура с тачпадом и не получается изменить масштаб
На устройствах с тачпадом данные жесты тоже работают. При использовании тачпада, для масштабирования трендов удобнее использовать следующий способ: убедитесь, что курсор мыши расположен над "Шкалой трендов (https://simple-scada.com/help/manual/client-trends-view.html)", затем прикоснитесь двумя пальцами к тачпаду и не отрывая проведите в нужную сторону по вертикали. Если данные жесты не работают на Вашем ПК, то убедитесь, что для тачпада установлены корректные драйвера. Кроме того, жесты могут быть отключены в настройках тачпада – проверьте это и включите необходимые жесты.
Здравствуйте. Возможно ли рассмотрение добавления поддержки Linux arm за отдельную плату? Очень бы хотелось Вашу скаду на небольших проектах на ОС Linux (Raspberry PI)
Здравствуйте.
Если появятся планы по переводу приложений на Linux, то мы обязательно создадим новость о таких планах. Сейчас работа сервера Simple-Scada (https://simple-scada.com/help/manual/server.html) доступна только под Windows. На Linux и других ОС можно использовать web-клиент (https://simple-scada.com/help/manual/web-client.html), который работает через браузер и не зависит от используемой ОС.
UPD: в обновление 2.6.7.0 добавлена поддержка Linux. Подробные инструкции см. по этой ссылке (https://simple-scada.com/help/manual/linuxwine.html).
Я имею ввиду платный заказ. Т.е наша компания заказывает у Вас версию скады для линукса.
К сожалению, такой возможности нет.
Здравствуйте!
В WEB проекте не корректно отображаются буквы (цвет )
версия Professional. Chrome Version 111.0.5563.64 (Official Build) (64-bit)
Прилагаю снимки экранов на клиенте и в web приложении
Здравствуйте.
А какие свойства заданы? Это компонент "Текст" (https://simple-scada.com/help/manual/text.html)? Используете последнюю версию скады? Выделите объект в редакторе и сделайте скрин инспектора объектов (https://simple-scada.com/help/manual/object-inspector.html). Либо отправьте проект из папки "Projects\" на support@simple-scada.com (http://support@simple-scada.com).
Версия последняя
Объект Кнопка
Это из-за прозрачности кнопки. В web, для улучшения производительности кнопка отрисовывается как единый компонент и прозрачность кнопки влияет на фон и текст (в обычном клиенте они отрисовываются отдельно друг от друга). В данном случае Вы можете убрать прозрачность и задать нужный цвет (такой, как если бы кнопка была прозрачной). Во вложении пример свойств. Если планируете использовать web-клиенты, то рекомендуем везде (где возможно) прозрачность выставлять 255 (без прозрачности) и выбирать подходящий цвет. Тогда браузер сможет быстрее выполнять отрисовку.
Благодарю! Не обратил внимание на то, что параметр также меняется.
Добрый день
На время принятия решения о покупке Simple SCADA, пользовались демо версией с системой архивации v1. Сейчас, после покупки, хотелось бы сохранить накопленные архивные данные и перейти на v2. Однако, я так и не нашел инструкции или описания о переносе данных. Только переход с потерей. Если останусь на пару лет с версией v1, как бы не получилось, что в очередном обновлении решат отказаться от v1 напрочь и тогда уж точно потеряются данные насовсем. Какие есть варианты перенести данные с v1 на v2?
Здравствуйте.
При необходимости можно оставаться на v1, все будущие версии Simple-Scada 2 будут поддерживать старую систему архивации. Системы архивации v1 и v2 имеют разные структуры таблиц, из-за чего перенести данные из одной системы в другую невозможно. По возможности рекомендуем перейти на систему архивации v2, т.к. она имеет ряд преимуществ - подробнее см. по ссылке (https://simple-scada.com/help/manual/archsysv2.html). Также, следует учитывать, что некоторые будущие изменения будут работать только с системой архивации v2.
Добрый день. Возник вопрос при обработке тега BAD у переменной OPC. Изменение качества тега при том же значении не считается за изменение переменной и скрипт по изменению не срабатывает. Планируется ли добавить возможность срабатывания скрипта по изменению качества?
Здравствуйте.
Цитата: Banzai от 21 марта 2023, 11:08:55при обработке тега BAD у переменной OPC. Изменение качества тега при том же значении не считается за изменение переменной и скрипт по изменению не срабатывает. Планируется ли добавить возможность срабатывания скрипта по изменению качества?
Начиная с версии Simple-Scada 2.4.0.10 от 06 ноября 2020 скрипты OnDataChange (к которым относится событие "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)") срабатывают даже если значение переменной не менялось, а изменилось только её качество.
Если используется более старая версия, то нужно обновиться до актуальной или более новой версии. Актуальные демо-версии доступны на сайте по ссылке (https://simple-scada.com/download). Если дело не в этом, то пришлите нам на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите, какой скрипт нужно проверить.
Здравствуйте!
Работаем на последней версии simple-scada. Скажите пожалуйста, есть ли возможность изменять размер окна в работающем проекте, например как в windows с помощью мышки, перетягивая границы? оператор хочет открыть несколько окон рядом, а все не помещается.
Здравствуйте. Такой возможности нет.
Добрый день!
Есть множество шаблонных объектов (резервуары), один из параметров - это Обозначение резервуара, которое пользователь может изменять на свое усмотрение. Обозначение вынесено в переменные. Можно ли реализовать из среды исполнения смену имени тренда согласно названию резервуара (при отображении трендов в штатном окне трендом)?
Сейчас удалось это сделать только по запуску проекта:
Trend1.Caption := NameTank_1.Value;
Trend2.Caption := NameTank_2.Value;
Trend3.Caption := NameTank_3.Value;Также это работает по OnInit шаблона, но приходится приходится обращаться к каждому тренду Trend1.Caption :=, Trend2.Caption := и т.д. Напрашивается то-то вроде GetTrendByname("ххх" + N).Caption :=....
Здравствуйте.
Данную задачу можно реализовать с помощью процедуры "SetTrendAll (https://simple-scada.com/help/script/settrendall.html)". Для этого у компонента "Поле", через которое задается "Обозначение резервуара", в свойство "Переменная" нужно указать переменную с подстановкой "vrNameTank_%№%", а в свойство "Доп. переменная" указать переменную с подстановкой (например "vrMyVar_%№%") у которой требуется изменить подпись в трендах. Соответственно, все переменные должны иметь однотипные имена. Также подстановку "%№%" нужно указать в свойство "Тег". Далее на событие "OnDataChange" данного поля написать скрипт:
begin
if Sender is TM_Object then
with Sender as TM_Object do
SetTrendAll(0, Tag, VariableEx.ID, Variable.AsStr);
end.Теперь при изменении "Обозначения резервуара" будет меняться и имя соответствующего тренда. Но данный способ будет работать только с одной группой трендов (в примере с "ID группы трендов" = 0). При необходимости "ID группы трендов" можно указывать через свойство "Подсказка/Hint (https://simple-scada.com/help/script/hint.html)".
Спасибо!
А возможно ли изменить имя трендна через GetTimeTrendViewerByName('имя штатного вивера').Trend[номер объекта].Caption := vr.Value; Неизвестно только 'имя штатного вивера' чтобы его искать.
Здравствуйте.
Функция GetTimeTrendViewerByName (https://simple-scada.com/help/script/getttvbyname.html) предназначена для поиска объекта "Временные тренды (https://simple-scada.com/help/manual/time-trends.html)" и никак не связана с архивными трендами.
Воспользовался SetTrendAll
по onInit шаблонного объекта:
SetTrendAll (1, iNmb, GetVariableByName('CalcVolTank_' + sNmb).ID, GetVariableByName('NameTank_' + sNmb).Value); // задаем тренду новое имя iNmb и sNmb номер объекта.
Протестировал на трех экземплярах объекта
По каким-то причинам эта подмена не всегда срабатывает при старте проекта: то не заменит имена вовсе, то заменит часть, то все заменит.
ЦитироватьПо каким-то причинам эта подмена не всегда срабатывает при старте проекта: то не заменит имена вовсе, то заменит часть, то все заменит.
Если клиент успеет подключиться к серверу до вызова SetTrendAll, то всё будет работать корректно. Если клиент ещё не подключен, то вызов SetTrendAll ни к чему не приведёт. У Вас так и получается, если повезёт и клиент подключится до вызова SetTrendAll, то всё работает, иначе - не работает.
SetTrendAll - просто говорит всем подключенным (в момент вызова!!!) клиентам о том, что нужно заменить указанные тренды. Поэтому нет смысла вызывать SetTrendAll по OnInit шаблона, ведь клиенты в этот момент могут быть совсем не подключены к серверу. SetTrendAll обычно используется в редких случаях по требованию клиента, например когда пользователь нажал кнопку на мнемосхеме: меняем тренды в группе N и переходим в эту группу.
Также непонятно зачем вообще использовать SetTrendAll на этапе инициализации, если можно просто в редакторе создать нужные группы с нужными трендами и не использовать скрипты вовсе.
Кажется мы неправильно поняли Ваш вопрос в предыдущей переписке. Если Вы хотите с помощью скриптов автоматизировать создание/замену групп трендов, то это невозможно, такой функции в Simple-Scada на данный момент нет. Можно попробовать обмануть систему и вызывать SetTrendAll в скрипте с типом "Клиент подключен", такой вариант может работать корректно, но это плохое решение.
Добрый день!
Обнаружил некорректное отображение таблицы в web: содержимое ячейки съезжает вправо за пределы таблицы
Здравствуйте.
Цитата: KANT от 16 мая 2023, 06:48:32Обнаружил некорректное отображение таблицы в web: содержимое ячейки съезжает вправо за пределы таблицы
Скорее всего, проблема в том, что ширина второй колонки уходит за габариты таблицы (см. скриншот во вложении). Вам необходимо увеличить размер таблицы так, чтобы край таблицы не заходил на ячейки, либо уменьшить ширину второй колонки. Если дело не в этом, то пришлите нам для проверки на support@simple-scada.com текущую версию Вашего проекта из директории (..\Simple-Scada 2\Projects\).
Спасибо. Исправил
В следующих весиях хотелось бы снять ограничение в 10 графиков для одного раздела в трендах. И регулировать толщину самого графика.
Здравствуйте. В редакторе изображений плохо читаются длинные наименования путей к файлам. В связи с этим крайне тяжко найти нужный объект.
Здравствуйте.
Увеличим ширину раскрывающегося списка в ближайшем обновлении.
Добрый день!
Просто на подумать.
Для объекта "Поле" для свойства "Подпись" может быть добавить параметр "Длина подписи"? А то выставляется автоматом в зависимости от длины текста. И ни как не отрегулировать.
Или как вариант, расширить перечень параметров как это сделано у объекта "Уровень" для свойства "Поле".
Можете прокомментировать?
Спасибо!
Здравствуйте.
1) Как мне задать для шрифта кнопки именно тот цвет шрифта, который мне нужен. Я пробую сделать черный фон кнопки - получается, задаю белый цвет шрифта, а он все равно не белый, а сероватый. Ровно и наоборот, делаю фон кнопки белый, а цвет шрифта выбрают чёрный, но он всё равно не чёрный.
Как сделать так, чтобы то, что я в редакторе выбираю - то и применяется?
2) И почему рядом с выбранным цветом отображается непонятная цифра, например 255, что это значит? 255 чего? Или 179, когда я выбрал цвет (255 255 255)?
179 - это прозрачность шрифта, раньше была отдельным пунктом настроек но в последних версиях совместили с цветом. Если хотите четкий цвет без смешивания ставьте прозрачность 255 - то есть полностью непрозрачный
Спасибо за ответ, действительно, всё так. Получилось 🙏
Здравствуйте.
ЦитироватьДля объекта "Поле" для свойства "Подпись" может быть добавить параметр "Длина подписи"? А то выставляется автоматом в зависимости от длины текста. И ни как не отрегулировать.
Или как вариант, расширить перечень параметров как это сделано у объекта "Уровень" для свойства "Поле".
Можете прокомментировать?
Добавлять дополнительные параметры для компонента "Поле (https://simple-scada.com/help/manual/field.html)" не планируется. Если штатная подпись для поля не подходит, то в качестве подписи можно использовать компонент Текст (https://simple-scada.com/help/manual/text.html).
Цитата: Simple_Scada от 20 июля 2022, 12:31:26ЦитироватьВ идеале было бы доступ к событиям "воспроизводится звук сообщения", "воспроизводится звук предупреждения", "воспроизводится звук аварии"
Пожелание учтем и возможно подобный функционал появится в будущем.
Здравствуйте. Есть ли какие сдвиги по этому вопросу?
Здравствуйте.
ЦитироватьЕсть ли какие сдвиги по этому вопросу?
В обозримом будущем добавление такого функционала не планируется.
Цитата: Simple_Scada от 02 сентября 2023, 09:36:09В обозримом будущем добавление такого функционала не планируется.
насколько я понял на данный момент, если нужно нужно вывести звук аварии где-то в другом месте отличном от динамиков компа, нужно отдельно обрабатывать все переменные в коде скады или контроллера и штатные возможности(вложение) не помогут.
может есть у кого идея или готовый костыль. поделитесь
Цитата: Обновление SIMPLE-SCADA 2.6.8.0добавлены текстуры с анимацией кругового и арочного индикатора. Примеры реализации индикаторов добавлены в Demo-проект (страница Компоненты - Радиальный индикатор);
круговой и арочный индикатор - огонь!
спасибо за добавление функционала по визуализации, будем использовать.
Добрый день.
Планируется ли добавить такой функционал как:
1. Запуск симулятора среды исполнения из редактора
2. Перетаскивание окна редактора на другой монитор
3. Открытие нескольких проектов в разных окнах редактора
4. Подсветка синтаксиса скриптов как в нормальном редакторе (типа VS Code или Notepad++)
5. Возможность не искать переменную или метод в окне скриптов через CTRL+Пробел, а их подстановку при вводе имени
6. Генерацию окон скриптов и переменных не перекрывая главный экран и возможность их перетаскивания
7. Ввод значение и с экранной клавиатуры и с обычной, а не как сейчас или то или то
Я просто перешел с WinCC и отсутствие таких базовых вещей ужасно не удобно.
Заранее спасибо за ответы.
Здравствуйте.
Цитировать1. Запуск симулятора среды исполнения из редактора
Да, планируем добавить быстрый запуск клиента из редактора, в том числе в режиме симуляции.
Цитировать2. Перетаскивание окна редактора на другой монитор
Начиная с версии 2.6.14.0 можно выбрать монитор на котором будет запущен редактор (в полноэкранном режиме).
Перетаскивать окно редактора можно только в оконном режиме, как обычное окно. Чтобы редактор (или клиент) запускался в оконном режиме нужно в утилите настроек (https://simple-scada.com/help/manual/settings-simple-editor.html) задать размер окна по ширине и высоте ниже чем разрешение экрана (например, для монитора 1920x1080 выбрать размер окна 1600x900).
Цитировать3. Открытие нескольких проектов в разных окнах редактора
Цитировать6. Генерацию окон скриптов и переменных не перекрывая главный экран и возможность их перетаскивания
Не планируется. Для переноса данных между проектами добавим отдельное меню импорта.
Редактирование скриптов и переменных возможно только через соответствующие меню. Для быстрого перехода с мнемосхемы к переменной можно кликнуть ПКМ в инспекторе объектов (https://simple-scada.com/help/manual/object-inspector.html) имя переменной.
Цитировать5. Возможность не искать переменную или метод в окне скриптов через CTRL+Пробел, а их подстановку при вводе имени
Когда Вы открываете список методов через Ctrl+Пробел (или вводите текст после нажатия Ctrl+Пробел), то в этом списке остаются только строки, которые соответствуют ранее введённому тексту (см. скрин во вложении), остальные удаляются, чтобы не пришлось искать в полном списке из тысячи строк. Или Вы просто хотите чтобы при вводе любого текста автоматически открывался список методов, без нажатия CTRL+Пробел?
Цитировать7. Ввод значение и с экранной клавиатуры и с обычной, а не как сейчас или то или то
Сейчас при включении экранной клавиатуры, ввод
текста (имени пользователя/пароля, или значения любых строковых переменных) возможен и с неё и с обычной клавиатуры. Для ввода чисел используется маленькая экранная клавиатура, и она не позволяет использовать обычную клавиатуру. Так не должно быть, исправим в одном из ближайших обновлений.
Цитата: Simple-Scada от 19 января 2023, 11:08:59Есть очень много более популярных задач, они решаются в первую очередь. Горизонтальный скролл в таблицах до сих пор слабо востребован.
Поднимаю тему!
Когда планируется внедрение?
Пример скрипта, предложенный выше не совсем подходи для решения задачи.
Каких-то конкретных сроков реализации горизонтального скролла в таблицах - нет.
Добрый день.
Не планируется ли разрешить доступ на запись к функциям интервала времени и частоты обновления временных трендов через скрипты? Хотя бы на те значения, которые возможны в редакторе?
Зачастую имею многочасовые процессы и скоротечные в несколько минут. При возможности менять вышеописанные параметры, можно сверстать один шаблонный временный тренд со всеми зависимостями и скриптами управлять. Щас же приходится плодить кучу временных трендов, накладывать их друг на друга, скрывая и показывая нужные в данный момент.
Здравствуйте.
Задач очень много, поэтому сейчас мы ничего не обещаем, постараемся добавить такую возможность когда появится время.
Добрый день! Посмотрел новое обновление 2.6.9.0. Появилось много интересного в скриптах и само меню скриптов - удобно!
Но все-таки очень нужный инструмент: появится ли эскпорт-импорт самих скриптов?
Здравствуйте.
Да, в одной из будущих версий будет добавлен импорт скриптов и других компонентов из проекта в проект.
Добрый день.
Несколько вопросов и предложений:
1. Можно ли как-то вызвать универсальный скрипт из другого скрипта?
2. У кнопок и полей есть полезное свойство подтверждение. Хотелось бы добавить такое свойство всем объектам у которых есть событие OnClick
3. Нет возможности сделать вертикальный текст. Нужно чтобы например подписать стоящие рядом вертикальные трубопроводы.
4. У объектов есть подсказки которые можно включать и отключать. Если сделать подсказки для большого числа объектов, то куда не передвинь курсор мышки постоянно показываться подсказка, закрывая тем самым интерфейс скады. Поэтому отображение подсказок приходится отключать. А вот в информации отображаемой при нажатии ПКМ на объектах нет текста подсказки. Хотелось бы добавить показ подсказки в окне информации отображаемой по ПКМ в клиенте, с выделением текста подсказки например жёлтым цветом. Или отображать подсказки при какой-нибудь зажатой клавише Alt, Shift или Ctrl.
5. Удобно, что во время редактирования часть объектов можно временно вынести за границы страницы. Но при редактировании шаблонов, окно редактора шаблона нельзя вынести за границы страницы. Окно редактора шаблонов и окон вообще лучше располагать справа или слева от области страницы, чтобы они не перекрывали рабочую область страницы
6. Поле описания переменной слишком короткое. Описание обычно длиннее, а в поле прочитать можно только 2-3 слова
7. Объединение переменных в группы в редакторе переменных удобно. Но иногда приходится менять свойства однотипных переменных в разных группах. Приходится поочередно заходить в каждую группу и редактировать поочередно по одной переменной. Хотелось бы возможность отключать группировку переменных, чтобы они отображались одним списком.
8. Поле найти при выборе переменной в свойствах объекта работает как фильтр и все переменные, не содержащие искомого текста, не отображаются. Хотелось бы такого же поведения при поиске в редакторе переменных и в редакторе скриптов.
9. Есть горячие клавиши для перехода в редактор переменных, трендов, скриптов и т.п. А для перехода в редактор страниц нет. Была бы удобна комбинация Alt-E.
10. Для создания резервной копии тоже нужна горячая клавиша (подошла бы комбинация Ctrl-Shift-S, но она уже занята) или добавить создание резервной копии в меню "Файл". Может сделать создание резервной копии по времени.
11. Меню "Пользователи" и "Переменные" состоят из одного подпункта "Редактировать". Можно сделать сразу переход в соответствующие редакторы без выбора подпункта. Еще перенести бы вызов редактора скриптов так же в главное меню. Или сделать в виде иконок справа от кнопок "Свернуть" и "Закрыть" редактор.
12. В параметры ярлыка клиента добавить ключи с именем пользователя и паролем. Т.к. при отладке приходится часто запускать клиент для проверки работы для каждого пользователя и постоянно вводить пароли.
13. После последних обновлений в редакторе отчетов нельзя изменить ширину окна свойств и окна выбора переменных проекта. Рабочая область редактора фактически занимает меньше половины экрана.
14. В одном из проектов я вместо нескольких отчетов сделал один, но на несколько страниц. При генерации проекта отключал доступность страниц. Так намного быстрее создавать отчеты, не надо в каждый проект добавлять одни и те же переменные и источники. Но заметил, что генерация многостраничных отчетов занимает очень много времени. Можно ли как-то оптимизировать генерацию многостраничных отчетов. Может для класса TM_Report добавить свойство содержащее информацию с номерами страниц, (до 8) включаемыми в отчет. И при генерации отчета получать данные из БД только для источников из включенных страниц. Многостраничные отчеты быстрее создавать, чем несколько отдельных.
15. В окно просмотра трендов слева от названия тренда добавить кнопки переключения следующий/предыдущий раздел и следующая/предыдущая группа.
16. Не раз уже писали на форуме, что нужна возможность редактирования шкалы переменной из скриптов.
17. С помощью универсальных скриптов можно менять цвета объектов, но для каждого цвета необходимо писать отдельный скрипт.
Можно добавить объектам свойство ColorList состоящее из массива типа Cardinal. Тогда для изменения цветов можно написать один скрипт, а в редакторе свойств объекта только выбирать нужные цвета. Так же можно добавить свойство TextList состоящее из массива String. В текст лист можно записывать различные тексты, работать с различными числовыми значениями.
// Пример как мог бы выглядеть скрипт
// по изменению цвета объекта при превышении определенного значения
begin
// Проверка, что свойства объекта заполнены
if TextList[0]=nil OR
TextColor[0]=nil OR
TextColor[1]=nil then
exit;
// Изменение цвета
if Sender is TM_Object then
with Sender as TM_Object do
If AsInt>TextList[0].AsInt then
Color := ColorList[0]
else
Color := ColorList[1];
end.
Здравствуйте.
Пожелания обязательно учтем и рассмотрим. Ниже комментарии по некоторым пунктам:
ЦитироватьМожно ли как-то вызвать универсальный скрипт из другого скрипта?
Такой возможности нет. Если нужно выполнять один и тот же код из разных скриптов, то в глобальном модуле (https://simple-scada.com/help/script/globalmodule.html) можно создать собственную процедуру и вызывать ее в нужных скриптах.
ЦитироватьНет возможности сделать вертикальный текст.
На данный момент текст можно расположить вертикально только способом описанным по ссылке (https://simple-scada.com/help/manual/faq-editor.html?anchor=q9).
ЦитироватьОбъединение переменных в группы в редакторе переменных удобно. Но иногда приходится менять свойства однотипных переменных в разных группах. Приходится поочередно заходить в каждую группу и редактировать поочередно по одной переменной.
Возможно Вам подойдет редактирование переменных через импорт (https://simple-scada.com/help/manual/variable-import-csv.html)/экспорт (https://simple-scada.com/help/manual/export-var.html)переменных в файл Excel.
ЦитироватьЕсть горячие клавиши для перехода в редактор переменных, трендов, скриптов и т.п. А для перехода в редактор страниц нет.
Для возврата на основной экран используйте клавишу Escape.
ЦитироватьДля создания резервной копии тоже нужна горячая клавиша. Может сделать создание резервной копии по времени.
Имеется возможность настроить автоматическое создание резервных копии при внесении изменений в проект - см. описание опции "Создавать резервные копии проектов (https://simple-scada.com/help/manual/settings-simple-editor.html)".
ЦитироватьВ одном из проектов я вместо нескольких отчетов сделал один, но на несколько страниц. При генерации проекта отключал доступность страниц. Так намного быстрее создавать отчеты, не надо в каждый проект добавлять одни и те же переменные и источники. Но заметил, что генерация многостраничных отчетов занимает очень много времени.
Это плохой способ. Чем больше источников и переменных добавлено в отчет, тем больше выборок будет производиться из БД, что конечно скажется на скорости построения отчета. Если требуется строить однотипные отчеты, то нужно использовать "Динамический отчет (https://simple-scada.com/help/report/dyn-rep.html)".
Спасибо за ответы.
ЦитироватьНа данный момент текст можно расположить вертикально только способом описанным по ссылке (https://simple-scada.com/help/manual/faq-editor.html?anchor=q9).
Тогда наверное лучше сделать фоновую картинку с вертикальным текстом. Можно узнать какой шрифт используется для отображения?
ЦитироватьВозможно Вам подойдет редактирование переменных через
Импорт/экспорт удобен для внесения больших изменений в переменные проекта.
ЦитироватьДля возврата на основной экран используйте клавишу Escape.
По Escape не всегда удобно переходить. Если к примеру из редактора переменных перешел в поле редактирования скрипта, то приходиться нажимать Escape три раза. Всегда надо нажимать разное число раз. А если проект только что сохранился, то можно случайно нажать лишний раз и вообще выйти из редактора проекта.
ЦитироватьМожно узнать какой шрифт используется для отображения?
Используется шрифт Roboto.
ЦитироватьА если проект только что сохранился, то можно случайно нажать лишний раз и вообще выйти из редактора проекта.
Возможно Вы используете очень старую версию Simple-Scada. В текущих версиях выйти из редактора при нажатии клавиши Escape нельзя. Для выхода из редактора используется сочетание клавиш Shift + Escape.
Здравствуйте. После обновления на версию 2.6.9.0 перестали отображаться в поле данные с opc.da. (ибп подключен) в самой опс данные видно, скада видит опс, но висят восклицательные знаки. До обновы все работало. Куда посмотреть? Перепривязывал заново, не помогло.
Здравствуйте.
ЦитироватьПосле обновления на версию 2.6.9.0 перестали отображаться в поле данные с opc.da.
В работу с DA-серверами изменения не вносились с 2018г. С возможными причинами и рекомендациями по данному вопросу можно ознакомиться по ссылке (https://simple-scada.com/help/manual/faq-other.html?anchor=q7). Если не разберетесь, то пришлите для проверки на support@simple-scada.com текущую версию Вашего проекта из директории (..\Simple-Scada 2\Projects\), целиком папку с логами "..\Simple-Scada 2\Logs", файл конфигурации OPC-сервера и укажите переменные, с которыми имеются проблемы.
Цитата: Simple_Scada от 08 ноября 2023, 09:05:17В работу с DA-серверами изменения не вносились с 2018г.
Спасибо, решил вопрос, при переустановке слетели настройки opc da в плане пароля учетной записи. О требовании пароля в инструкции прям в шапке написано. Спасибо за инструкцию, уже не раз выручала)
Добрый день.
Вопрос по графическим примитивам.
Вы планируете расширить список доступных изначально, добавив например ромб и треугольник?
Также не плохо было бы сделать свойство скругления углов для квадратов\прямоугольников.
Ну и наверное самое больное: почему нельзя поворачивать прямую? т.е. вести ее по диагонали например или вообще на произвольный угол?
Здравствуйте.
С версии 2.6.14.0 добавлена возможность отрисовки ромба и треугольника.
Остальные пожелания также учтем, но пока таких изменений не планируется.
Здравствуйте,
В настоящий момент файл логов перезатирается в момент рестарта серверной части скады. Было бы удобно если при каждом рестарте серверной части начинал писаться новый лог.
Здравствуйте.
Лог сервера скады не перезатирается, а перемещается в папку "...\Logs\Backup\" и хранится там в течение недели.
Добавьте пожалуйста данную информацию в руководство по SCADA системе, так как она там отсутствует, но весьма полезная.
Было бы здорово, чтобы такие вещи можно было узнавать не из форума, а просто изучив справку.
Добрый день!
Заметил у себя на ноуте (на рабочем стационарном РС нет возможности сейчас проверить), что при отображении подсказки в клиенте в верхней левой части, если условно экран разделить на ровные части по вертикале и горизонтали, то указатель мышки закрывает часть подсказки. С учетом того, что в начале идет код устройства, есть некоторые проблемы с пониманием, что написано в подсказке. Можете у себя проверить? Может можно как то дать смещение подсказке.
Здравствуйте.
Можете уточнить какое разрешение экрана на проблемном ПК, используется ли масштабирование в Windows (если да, то сколько %) и какой размер указателя мыши (стандартный, или больше стандартного).
Так
1. разрешение экрана : 2560х1440 (рекомендованное)
2. масштабирование : 200% (рекомендованное)
3. размер указателя мыши: 1, стандартный
Спасибо за информацию. Добавим исправление в ближайшее обновление.
Еще раз здравствуйте!
Отлично.
Тогда еще вопрос.
Берем создаем окно. Заголовок окна, шрифт 15 средний.
Добавляем примитивы. Кратность 8 - класс. Рисунок 1.
Меняем шрифт (неважно уменьшаем или увеличиваем). Рисунок 2. Как бы все поплыло согласно концепции кратности 8.
Считал что размер (в частности высота) заголовка меняться не будет. И заметил это совсем не давно. Хотя окон море.
Можете пояснить это фича и меняться не будет. Или можно что то поправить например добавить параметр высота заголовка (кратность 8 ), а шрифт текста уже внутри объекта будет меняться.
Можете у себя проверить и пояснить.
Размер заголовка зависит от размера шрифта. Чем больше шрифт, тем больше заголовок (чтобы текст всегда умещался в заголовок и не выходил за пределы). Не касается web-клиентов, в них размер шрифта и заголовка всегда одинаковый.
Вопрос с отображением цвета в компоненте Флажок.
Здравствуйте! Планируется ли в следующих версиях Скады возможность изменения цвета в компоненте Флажок.
Суть проблемы в следующем - в проекте необходимо обращаться к битам переменных и в компоненте Флажок этот способ есть, но не хватает также изменения цвета самого компонента.
То есть изменилась переменная - изменился цвет. В компоненте Фигура такой возможность тоже нет - обращаться сразу к битам, и при большом количестве разных обьектов с многими параметрами это занимает много времени ( написание скриптов). Шаблоны не подходят так как обьекты разные.
Спасибо!
Здравствуйте.
ЦитироватьПланируется ли в следующих версиях Скады возможность изменения цвета в компоненте Флажок.
Менять цвет объектов в зависимости от значения связанных с ними переменных можно через скрипты (https://simple-scada.com/help/script/colorchange.html). Каких-либо изменений не планируется.
Цитироватьв проекте необходимо обращаться к битам переменных и в компоненте Флажок этот способ есть, но не хватает также изменения цвета самого компонента. То есть изменилась переменная - изменился цвет.
Для изменения цвета компонента "Флажок (https://simple-scada.com/help/manual/checkbox.html)" создайте новый скрипт (https://simple-scada.com/help/script/via-script-editor.html) с типом события "Универсальный скрипт (https://simple-scada.com/help/script/universal-event.html)". В примере кода ниже, выполняется проверка состояния флажка (свойство "Checked") и в зависимости от состояния изменяется цвет.
begin
if Sender is TM_CheckBox then // проверяем, что Sender это флажок
with Sender as TM_CheckBox do // приводим Sender к типу "TM_CheckBox"
if Checked then // если флажок установлен, то
Color := clRed // меняем цвет на красный
else // иначе
SetInitialColor; // вернуть объекту изначальный цвет (цвет на момент запуска проекта)
end.Данный скрипт универсальный, его можно назначить на событие OnDataChange всех требуемых флажков(создавать отдельные скрипты для каждого флажка не нужно).
Цитироватьпри большом количестве разных обьектов с многими параметрами это занимает много времени ( написание скриптов)
Нужно использовать универсальные скрипты (https://simple-scada.com/help/script/script-types.html), тогда не потребуется писать отдельный скрипт для каждого объекта. Примеры часто используемых скриптов можно найти в руководстве по ссылке (https://simple-scada.com/help/script/sample-scripts.html). Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и опишите, что именно не получается сделать.
Да со скриптами все понятно, вопрос был в том что этих переменных на одном экране слишком много иногда, и при параметрировании гораздо быстрее в инспекторе обьектов изменять бит переменной для каждого состояния обьекта. Соответственно в скрипте приходится изменять адрес переменной в слове состояния. Универсальный скрипт не очень подходит. Можно
запутаться так как придется постоянно смотреть какая переменная в скрипте и количество скриптов будет конкретно у меня в районе 500. Гораздо быстрее как в обьекте Флажок менять бит.
ЦитироватьДа со скриптами все понятно
ЦитироватьМожно запутаться так как придется постоянно смотреть какая переменная в скрипте и количество скриптов будет конкретно у меня в районе 500.
Вы явно не поняли, как работают универсальные скрипты. Для задачи, которую Вы описали можно использовать один универсальный скрипт. При желании, Вы можете прислать текущую версию Вашего проекта и указать, для каких именно объектов требуется написать скрипт, мы сделаем пример универсального скрипта в Вашем проекте.
Отправил Вам на почту
Использование шаблонов облегчает и ускоряет разработку,
но когда используешь шаблон, например заслонка с номером, то на форме все заслонки будут с надписью %Номер%.
Если номер не задан, то выводится маркер, а когда все номера проставлены, то их не видно.
Было бы удобно если б подстановки в текст отображались в редакторе.
И очень раздражает постоянное смещение экрана при вызове шаблонов.
Добрый день.
Хотелось бы иметь возможность настраивать видимость колонок в компоненте "Список сообщений" независимо от настроек Сообщений в проекте.
Я что-то не могу сообразить, какими средствами мне реализовать вывод строк по индексу? Простой пример, режимы работы установки: останов, работа, авария, ... И переменная имеющая значения 0, 1, 2, ... При том, или ином значении выводится та, или иная строка. И я не пойму как это сделать, какой элемент использовать? Поле? Но оно вроде только для цифровых данных? Или нет?
Здравствуйте.
Для вывода текста нужно использовать компонент "Текст (https://simple-scada.com/help/manual/text.html)". См. пример №4 по ссылке (https://simple-scada.com/help/script/changetext.html).
Добрый день, уважаемые Разработчики!
Ваша скада очень хороша, всем её рекомендую.
Но очень хочется иметь возможность доступа к границам интервалов в расписании.
время начала интервала и время конца, для более простого и гибкого управления.
Добавьте, пожалуйста, такую возможность. Молю вас )))
PS
еще очень хочется переноса по словам в ячейках таблицы
Добрый день, уважаемые Разработчики!
Мы очень довольны Вашем продуктом!
Используем его как по России так и за рубежом в Атомной отрасли.
При использование Вашей скады в наших проектах часто встречается требования вывода не менее 12 трендов на график, но у вас стоит ограничение в 10.
Могли бы вы реализовать данную возможность в следующих релизах или подсказать как это сделать самостоятельно?
Здравствуйте.
Пожелание обязательно учтем, но добавление такого функционала не планируется. Возможно Вам подойдет использование редактируемых групп трендов (https://simple-scada.com/help/manual/client-trends-view.html?anchor=edit_group).
Здравствуйте. Не нашел как "привязаться" к штатной сигнализации нарушения границ.
Т.е. если надо "бибикать" где-то еще кроме колонок.
Может рассмотрите вариант как на скрине, добавить поля для указания битовых переменных которые будут принимать "1" при воспроизведении звуков и соответственно сбрасываться в "0" при остановке воспр.
Здравствуйте.
Вы можете использовать скрипт по событию "Нарушена граница (https://simple-scada.com/help/script/borderviol.html)". Можно создать один универсальный скрипт и добавить в список скрипта требуемые переменные - пример скрипта см. по ссылке (https://simple-scada.com/help/script/borderviol.html#:~:text=%D0%B0%20%D0%BD%D0%B5%20%D1%83%D1%85%D1%83%D0%B4%D1%88%D0%B8%D0%BB%D0%B8%D1%81%D1%8C).-,%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0,-%D0%94%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B8%D0%BC%2C%20%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C).
И как то связать с квитированием сообщений?
Есть же готовое решение и без скриптов, мне кажется добавив поля с переменными избавит от кучи костылей
ЦитироватьИ как то связать с квитированием сообщений?
Возможности отследить квитирование определенных сообщений нет. При необходимости с помощью функции "SysGet (https://simple-scada.com/help/script/sysget.html)" и константы "SYS_UNCONFIRMED_COUNT" можно отслеживать общее количество неподтвержденных сообщений проекта(например в скрипте с типом события "Таймер (https://simple-scada.com/help/script/second-passed.html)") и сбрасывать переменную внешней сигнализации при отсутствии неподтвержденных сообщений. Либо использовать отдельную кнопку, по нажатию на которую будет сбрасываться переменная, отвечающая за вкл/выкл внешней сигнализации.
ЦитироватьЕсть же готовое решение и без скриптов, мне кажется добавив поля с переменными избавит от кучи костылей
Пожелание обязательно учтем, но добавление такого функционала не планируется.
Добрый день, планируется ли (или есть какая-то существующая возможность) редактировать размер шрифта сообщений? Имеется сенсорная панель с ограниченным кол-вом разрешений экрана, и текст сообщений не помещается полностью (всего 60 символов) Функционала, как-то выделить это сообщение чтобы посмотреть его полностью, я не нашел, при этом редактор проекта дает возможность создавать сообщения значительно-большей длины.
Здравствуйте.
Размер шрифта сообщений редактировать нельзя. Сейчас можно либо сократить сообщение, чтобы оно умещалось на используемом экране, либо использовать дисплей с большим разрешением экрана. В ближайшем обновлении добавим возможность просмотра полного текста сообщения при клике по сообщению в меню "Сообщения" (https://simple-scada.com/help/manual/client-message-view.html).
Добрый день!
В редакторе, в инструменте по работе с переменными есть функция "Просмотр ссылок". Классная функция.
Пару предложений на рассмотрение.
Указатели на элементы мнемосхемы и сообщений работают отлично.
Есть указатели на скрипты. Но как бы перехода нет.
У Вас есть механизм поиска переменной в скриптах и механизм отображает все скрипты, где используется данная переменная. Указывать все совпадения в функции "Просмотр ссылок" может быть сложно, но вот перейти по указателю в инструмент скриптов и при этом имя переменной в строке поиска и далее по механизму уже существующему отобразить скрипты - думаю было бы нам пользователям удобнее. Надеюсь предложение мое понятно объяснил.
И как бы вопрос-предложение. Для экземпляров шаблона можно сделать такую же функцию поиска переменной?
Можете дать комментарий?
Здравствуйте.
ЦитироватьЕсть указатели на скрипты. Но как бы перехода нет.
В одно из будущих обновлений добавим переход по ссылке к скриптам, связанным с переменной. Также скорее всего добавим ссылки, если переменная используется в тексте скрипта.
UPD: Добавили ссылки на скрипты и возможность перехода к ним в обновление 2.6.14.0.ЦитироватьИ как бы вопрос-предложение. Для экземпляров шаблона можно сделать такую же функцию поиска переменной?
Да, но там подстановки могут мешать поиску. Скорее всего тоже добавим.
1. Существует ли какой-то рекомендуемый способ включения проектов Simple-Scada в систему контроля версий? В частности - не хватает возможности сравнения текстов скриптов разных версий.
2. Существует ли возможность создания библиотек (скриптов, шаблонов) для использования в разных проектах?
Здравствуйте.
1. Такой возможности нет.
2. Такой возможности нет. В будущем мы планируем добавить функции импорта/экспорта между проектами - это один из популярных запросов. Но какой-то определенный срок появления такой возможности сейчас назвать сложно.
Добрый день!
В настройках проекта есть галочка группировать/не группировать шкалы трендов, если они одинаковые. Если стоит не группировать, то шкалы отнимают где-то 1/3 пространства в зависимости от параметров экрана.
Возможно ли сделать объединение шкал в клиенте, например через Shift+клик по нужной шкале при условии, что шкалы одинаковые?
Конечно сверхмечта объединять любые шкалы и масштабировать тренд по самой маленькой. Но... это мечта.
Несколько пожеланий по редактору переменных.
1. Удобный инструмент "Групповое переименование", но он работает только с именем переменной. Ещё бы добавить три галки "Применить для имени", "Применить для адреса", "Применить для описания".
2. Также неудобно, что значения полей ввода окна "Групповое переименование" не сохраняются при повторном открытии.
3. Добавить шаблоны переменных. Возможность в полях имя, адрес и описание писать подстановку %Имя группы%.
4. При копировании переменной новым переменным добавляется постфикс _1, _2, _3 и т.д. Лучше бы, если имя переменной содержит число, то увеличивать это число на 1 (если адрес и описание содержат точно такое же число, то увеличивать число и в адресе с описанием).
5. Сделать окно редактора свойств переменной немодальным и добавить кнопку применить. Чтобы можно было сохранять свойства переменной не закрывая окно и сразу выбирать следующую переменную для редактирования. Так работает редактирование тегов в KepWare OPC Server, намного удобнее и быстрее.
6. Поля "Описание" и "Адрес" в окне свойств переменной слишком узкие. Может сделать окно выше на одну строку, тогда эти поля можно будет сделать во всю ширину окна. Или сделать окно свойств переменной в виде нижней панели.
7. Возможность отключать группировку переменных, чтобы они отображались одним списком. Неудобно изменять свойства однотипных переменных из более 150 групп. Приходится поочередно заходить в каждую группу.
8. Добавить переключатель для поля найти в режим "Фильтр", чтобы все переменные не содержащие искомый текст просто не отображались. Как это работает при выборе переменной в инспекторе объектов.
9. При добавлении новой переменной она создается со шкалой "Не выбрано 0-100%". Добавить стандартные шкалы для Integer, Word, Single и при создании новой переменной устанавливать ей шкалу в зависимости от типа.
10. В таблице переменных колонка "OPC сервер" не самая важная, редко используется много OPC серверов лучше сделать ее крайней правой, чтобы она не занимала полезное рабочее пространство.
Здравствуйте.
Серега, пожелание обязательно учтем, но в ближайшем будущем добавление такого функционала не планируется.
AlexejKa38, пожелания учтем, часть из них планируем добавить в будущем.
ЦитироватьПри копировании переменной новым переменным добавляется постфикс _1, _2, _3 и т.д. Лучше бы, если имя переменной содержит число, то увеличивать это число на 1 (если адрес и описание содержат точно такое же число, то увеличивать число и в адресе с описанием)
Дважды кликните по требуемой переменной и в окне редактирования переменной нажмите кнопку "Дублировать" (или сочетание Ctrl + D). При дублировании, число в конце имени и в адресе переменной будет увеличиваться на 1.
Здравствуйте.
Не подумав обновил Демо-версию (на которой ведётся разработка) до версии 2.6.13 и сохранил проект. На лицензии версия 2.6.12.
Возможно ли как-то пересохранить проект на младшую версию ?
Может можно подправить в файле Hex-редакторе цифру "3" на цифру "2" ?
Цитата: Simple_Scada от 13 августа 2024, 12:48:25Дважды кликните по требуемой переменной и в окне редактирования переменной нажмите кнопку "Дублировать" (или сочетание Ctrl + D). При дублировании, число в конце имени и в адресе переменной будет увеличиваться на 1.
Это в версии 2.6.13.0 добавили? В 2.6.12.0 не работает.
Еще одно пожелание. Возможность использовать в именах переменных русские имена и пробелы. В скриптах имена таких переменных можно записывать в кавычках. TIA Portal, большинство ПО для разработки программ ПЛК и OPC серверы поддерживают такие имена, а Simple Scada нет. Это наверное сложно будет реализовать, просто пожелание на будущее.
Здравствуйте.
ЦитироватьВозможно ли как-то пересохранить проект на младшую версию ?
Такой возможности нет. Проект, сохраненный в новой версии, невозможно открыть или пересохранить в более старую версию. Проверьте вкладку "Резервные копии" как описано по ссылке (https://simple-scada.com/help/manual/projectsandbackups.html). Если Вы ранее вели разработку проекта в версии 2.6.12.0, то, возможно, там есть резервная копия проекта в нужной версии.
ЦитироватьМожет можно подправить в файле Hex-редакторе цифру "3" на цифру "2" ?
Вносить изменения в файлы проекта нельзя - это может привести к повреждению проекта, без возможности восстановления.
ЦитироватьЭто в версии 2.6.13.0 добавили? В 2.6.12.0 не работает.
Данный функционал доступен практически с самого начала создания Simple-Scada 2. Проверьте еще раз, нажав кнопку "Дублировать" (см. скриншот во вложении). Либо пришлите на support@simple-scada.com пример проекта и укажите переменную, для которой это не работает.
Спасибо большое за добавление группового переименования адреса и описания. Но вместо выпадающего списка лучше сделать галки: "Имя", "Описание", "Адрес". Чтобы можно было переименовывать одновременно имя, описание и адрес. А выпадающий список оставить для выбора того что будет отображаться в таблице предварительного просмотра результата.
Можете поделиться описанием формата файла скриптов (*.ssc)?
Непривычно оказаться без системы контроля версий в 21 веке ))
Хочется набросать для нее адаптер.
Пока не привык, позволю себе несколько предложений в редактор скриптов.
1) Щелчок по сообщению об ошибке должен открывать скрипт и устанавливать курсор на строку, о которых сообщается.
2) Всплывающая цветная плашка с сообщением о наличии ошибок заслоняет название скрипта и первую строку. Представляется более уместнымм поместить, например, к сообщениям о местах ошибок.
ЦитироватьМожете поделиться описанием формата файла скриптов (*.ssc)?
Это двоичный файл, у него нет строгого формата, он разный в зависимости от опций проекта и версии скады.
ЦитироватьПока не привык, позволю себе несколько предложений в редактор скриптов.
Постараемся добавить в будущие обновления.
Пожелания по скриптам:
1. Реализовать класс TM_Window, как любой иной визуальный компонент, т.е. с возможностью управлять из скрипта его положением, размером и т.п., а так же с "отсечением" не умещающихся в окне частей объектов
2. Реализовать возможность поиска и управления всеми объектами страницы, включая шаблонные
3. Реализовать глобальное свойство ActivePage, содержащее ссылку на текущую активную страницу
4. Реализовать свойство Owner : TM_Object для класса TM_Component, содержащее ссылку на "владельца" компонента, т.е. на шаблон, окно или страницу (чтобы можно было отследить цепочку вида Поле->Экземпляр шаблона ->Экземпляр окна ->Страница)
5. Реализовать функцию Format, как в настоящем паскале
Пожелания по редактору скриптов:
1. Сделать возможность импорта-экспорта всех скриптов из/в текстовые файлы (*.pas)
2. Сделать автоотступ, автодобавление end после ввода begin и т.п. привычный для программиста сервис
Пожелания вообще:
1. Сделать настройку шрифта по умолчанию для всего проекта, а значения размера шрифта отдельных элементов делать относительно размера шрифта по умолчанию (т.е. заголовки +2pt, а, например(!) хинты -2pt). А то размеры текста просто огромные и приходится все вручную править...
2. Размеры по умолчанию всех элементов, содержащих (показывающих) текст сделать относительно размера шрифта этого элемента. Т.е. сделали размер шрифта 10, и высота поля уменьшается до 14. Сделали 24 - увеличивается до 28. А если надо иное - тогда в рукопашную.
3. Сделать возможность управлять прозрачностью (сильно желательно) и цветом (если не сложно) фона всплывающих подсказок
ЦитироватьРеализовать глобальное свойство ActivePage, содержащее ссылку на текущую активную страницу
Такого точно не будет. Активная страница на каждом клиенте может быть разной, а в многомониторном режиме на одном клиенте все страницы могут быть активны одновременно.
ЦитироватьРеализовать свойство Owner : TM_Object для класса TM_Component, содержащее ссылку на "владельца" компонента, т.е. на шаблон, окно или страницу...
У объектов есть метод GetOwner (https://simple-scada.com/help/script/getowner.html), но от окна до страницы дойти не получится, т.к. одно окно может быть открыто на любом количестве страниц.
ЦитироватьРеализовать класс TM_Window, как любой иной визуальный компонент, т.е. с возможностью управлять из скрипта его положением, размером и т.п., а так же с "отсечением" не умещающихся в окне частей объектов
Управлять положением можно через стандартные свойства окна, либо через скрипты (https://simple-scada.com/help/script/setposclient.html), см. методы SetPos... SetPosByObject... Изменение размера через скрипты не имеет смысла в проектах с несколькими клиентами и на наш взгляд является плохим решением по части интерфейса.
Остальные предложения рассмотрим.
Поясните пожалуйста: если одно и то же окно открыто на двух разных клиентах, и на первом его перетаскивают - на втором оно что, тоже будет ездить по экрану? Судя по всем Вашим объяснениям о размерах окна, на всех клиентах отображается один и тот же экземпляр окна, а не разные, значит, и таскать его можно сразу на всех... Так или нет?
Если на одном клиенте я открыл окно, а на втором клиенте Вам оно помешало и Вы его его закрыли, это означает, что я уже поработал достаточно и окно мне не нужно, потому у меня оно будет закрыто? Так или нет?
ЦитироватьПоясните пожалуйста: если одно и то же окно открыто на двух разных клиентах, и на первом его перетаскивают - на втором оно что, тоже будет ездить по экрану?
Об этом писали в другом ответе по ссылке (https://simple-scada.com/forum/index.php?topic=145.msg13016#msg13016).
Цитата:
ЦитироватьТо же самое касается окон (кроме координат и видимости, они на каждом клиенте могут быть разными).
Т.е. каждый клиент может как угодно перетаскивать, открывать и закрывать окно и другие об этом не узнают. Но если он изменит, например, цвет, то все это увидят. На самом деле клиент при перетаскивании не меняет свойства окна и не отправляет запросы на сервер, он просто запоминает где окно было в последний раз и отображает его там (поэтому другие ничего не замечают).
Еще пожелание по редактору:
- Сделать вместо окна поиска переменной окно фильтра с возможностью подстановочных символов ? (для любого символа) и * (для любого количества символов). Ну или в дополнение к окну поиска сделать окно фильтра. По-моему, фильтр удобнее для работы, чем просто поиск.
Добавим фильтр в одно из будущих обновлений.
Если я в проекте не задал для переменной, предположим, контроль границ, а затем в скрипте задал этот контроль, сохранится ли эта настройка при следующем запуске проекта?
То есть суть в том, чтобы оператор мог управлять настройками контроля границ и др. параметрами переменных. Это реализуемо?
Еще вопрос: по какой причине невозможно сделать страницу видимой в зависимости от прав пользователя? Собственно, даже не саму страницу, я ярлычок для её активации?
ЦитироватьТо есть суть в том, чтобы оператор мог управлять настройками контроля границ и др. параметрами переменных. Это реализуемо?
Автоматически сохраняться и загружаться границы (и их тип) будут только если включена опция сохранения граничных значений (https://simple-scada.com/help/manual/othersset.html).
Начиная с версии 2.6.10.0, для смены типа границ можно использовать компонент "Список" (без скриптов). Работа с границами подробно описана в этой статье руководства (https://simple-scada.com/help/manual/managing-bounds-var.html).
Цитироватьпо какой причине невозможно сделать страницу видимой в зависимости от прав пользователя? Собственно, даже не саму страницу, я ярлычок для её активации?
Для скрытия страниц от отдельных пользователей используется система прав (https://simple-scada.com/help/manual/editor-users.html). Нужно выделить пользователя, в списке выбрать "Страницы (видимость)" и скрыть нужные страницы от пользователя.
Цитата: Simple-Scada от 13 сентября 2024, 10:09:29и скрыть нужные страницы от пользователя.
Пожалуйста, измените иконку на кнопке, интуитивно текущий символ ассоциируется с "Обновить", а не "Переместить".
Предложения:
1. Добавить возможность в подстановку вставлять ссылки на имеющиеся переменные так же, как это сделано для свойства "Переменная". Т.е. чтобы кликом на поле ввода подстановки можно выбрать имя переменной из открывшегося списка, а потом, если нужно, отредактировать его.
Возможность редактировать значение подстановки после такого ввода - это отличие от того, как подставляется имя переменной обычно.
2. При размещении шаблона (т.е. при таскании его мышкой по странице) полупрозрачно выводить содержимое шаблона, а не только его границы, т.к. в шаблоне часто находятся элементы, которые надо точно позиционировать, а их не видно в этот момент.
3. Если подстановка в шаблоне уже сделана, то сразу выводить её содержимое на странице, а не название подстановки с процентами.
Комментарий Simple-Scada:Вопрос по ошибке добавления тега перенесён в отдельную тему (https://simple-scada.com/forum/index.php?topic=1872.0).
ЦитироватьДобавить возможность в подстановку вставлять ссылки на имеющиеся переменные так же, как это сделано для свойства "Переменная". Т.е. чтобы кликом на поле ввода подстановки можно выбрать имя переменной из открывшегося списка, а потом, если нужно, отредактировать его.
Данная возможность уже реализована. Если нажать на иконку "...", то откроется список переменных проекта (см. скриншот во вложении). Вы можете выбрать нужную переменную и затем указать необходимую подстановку в имени переменной.
ЦитироватьЕсли подстановка в шаблоне уже сделана, то сразу выводить её содержимое на странице, а не название подстановки с процентами.
Это невозможно. Множество объектов могут подставлять в один шаблон разные значения подстановок.
Цитата: Simple-Scada от 16 сентября 2024, 12:52:04Данная возможность уже реализована. Если нажать на иконку "...", то
Извините, если я недостаточно точно выразился.
При вводе подстановки такой кнопочки нет, а я прошу её как раз добавить!
И, после ввода переменной этой кнопочкой изменить руками её значение нельзя, а для подстановки надо сделать, чтобы было можно и руками менять.
Цитата: Simple-Scada от 16 сентября 2024, 12:52:04Это невозможно. Множество объектов могут подставлять в один шаблон разные значения подстановок.
У нас один шаблон с подстановкой %FFF%. Мы ставим на страницу три таких шаблона, и назначаем этой подстановке, соответственно, значения "111", "222" и "333".
Движок редактора начинает рисовать экземпляры шаблонов, берет первое вхождение, и когда собирается выводить %FFF%, вместо этого в дебрях (где-то же
до компиляции и запуска на сервере значения подстановок хранятся? и хранятся явно связанными с экземпляром шаблона!) движка ищет, назначена ли подстановка этому экземпляру шаблона или нет? Если назначена, то рисует "111", "222" или "333", если нет - рисует, как сейчас.
По-моему, это реализовать совершенно не сложно. Зато это кардинально облегчит процесс разработки мнемосхем!
ЦитироватьУ нас один шаблон с подстановкой %FFF%. Мы ставим на страницу три таких шаблона, и назначаем этой подстановке, соответственно, значения "111", "222" и "333".
Движок редактора начинает рисовать экземпляры шаблонов
Теперь понятно. Выше мы отвечали о подстановках в самих шаблонах (не в экземплярах шаблона). В экземплярах шаблонов отображение значений вместо подстановок уже запланировано для будущих обновлений.
Очень не хватает возможности править объекты, шаблоны, скрипты и т.п. в текстовом виде. Например, переименование подстановки в уже сделанных шаблонах и окнах - это просто кошмар! В тексте можно было бы "Найти и заменить все" - 1 секунда работы! Кроме этого, в больших проектах сложно уследить, где и что сломается, если в каком-то месте меняешь скрипт или подстановку... В тексте сразу можно было бы найти связанные сущности простым поиском... В качестве идеи - формы Delphi: они хранятся в текстовом виде и можно править их вручную. Про файлы со скриптами я уже предлагал. Дополнительный плюс: миграция между проектами становится в разы проще, если есть импорт текстовых версий окон/шаблонов.
Еще предложения:
1. Сделать возможность рисовать линии под произвольными углами с сохранением возможности помечать их края стрелками. Без этого нарисовать стрелку под углом, отличным от 90 градусов - это просто дикий геморой!
2. Добавить графический примитив "полигон".
3. При включении вывода единиц измерения в поле добавить пробел между значением и единицей измерения.
4. В объекте "Поле" реализовать возможность сделать "резиновую" ширину, которая увеличивалась бы автоматически в сторону, противоположную выравниванию, так, чтобы содержимое помещалось целиком. Чтобы избежать такого, как на скриншоте.
5. Добавить возможность "зеркалирования" объектов-изображений
6. При копировании и вставке сделать вставку в текущую позицию курсора, а не в то место, где копируемый объект находился.
ЦитироватьОчень не хватает возможности править объекты, шаблоны, скрипты и т.п. в текстовом виде.
Скрипты возможно (не в ближайшем будущем). Остальное точно нельзя будет менять через файлы.
Цитировать3. При включении вывода единиц измерения в поле добавить пробел между значением и единицей измерения.
Всем нужно по-разному. Если Вам нужен пробел, то добавьте его, указав в настройках шкалы " об/мин" вместо "об/мин".
Цитировать5. Добавить возможность "зеркалирования" объектов-изображений
"Зеркалирование" отличается чем-то от имеющихся у "Изображения" свойств "Отразить по X" / "Отразить по Y" (https://simple-scada.com/help/manual/picture.html)? Если да, то просьба уточнить что понимается под "зеркалированием"?
Остальные предложения рассмотрим.
Цитата: Simple-Scada от 19 сентября 2024, 09:56:48Если Вам нужен пробел, то добавьте его, указав в настройках шкалы " об/мин" вместо "об/мин"
Удобненько...
А как быть с процентом "по умолчанию"?
Кстати, почему шкала "по умолчанию" нередактируемая? Разве "всем нужно по-разному" здесь не работает?
Про зеркалирование - прошу прощения, ступил.
Шкала "не выбрано" искусственная, её нет в шкалах проекта. Если у переменной шкала не задана, то переменная берёт (не из шкалы, а сама по себе) диапазон 0..100 и единицу %, как наиболее распространённые. Если у переменной должна быть шкала 0..100%, то создайте такую шкалу и назначьте нужным переменным. В идеале в проекте не должно быть переменных у которых не выбрана шкала.
Что её нет, очевидно. Вопрос был в том, что "всем надо разное", например, у меня в проекте единицы переменных в %, а практически все - SINGLE. Ну да ладно, это мелочи.
Пожелания очередные:
1. При выборе переменной всплывает подсказка с адресом на OPC-сервере, а по-моему мнению, было бы удобнее, если бы всплывало её описание. Можно такое реализовать? Если "другим надо другое", то опционально, в настройках редактора выбирать, что показывать.
2. Ранее говорил о фильтрах переменных, добавлю: при выборе переменной фильтр вроде бы есть, но в нем нельзя подставлять * - можно реализовать фильтр с "не жадной" подстановкой любого количества любых символов и, разумеется, подстановкой ? - один любой символ.
3. Изменить поведение масштабирования иконки кнопки: при уменьшении кнопки не уменьшать размер иконки до тех пор, пока она умещается в кнопке.
4. Или расширить ассортимент иконок, или добавить возможность использования пользовательских иконок (второе предпочтительнее).
ЦитироватьЧто её нет, очевидно. Вопрос был в том, что "всем надо разное", например, у меня в проекте единицы переменных в %, а практически все - SINGLE. Ну да ладно, это мелочи.
Мы уже не знаем как ещё можно объяснить такой примитивный вопрос. Да, всем нужно по разному отображать единицы измерения. Кому-то нужно отображать пробел перед единицей измерения, а кому-то нет. Поэтому выше мы написали, что если Вам нужен пробел, то добавьте его. Те пользователи, которым он не нужен, не будут его добавлять. Скада не имеет ограничений на пробелы в единицах измерения и позволяет разным пользователям делать как они хотят (добавлять, или не добавлять пробелы).
Непонятно причем здесь тип данных Single. Вы можете создать любую шкалу с любыми единицами измерения и назначить её любым переменным проекта. Также можно назначить одну шкалу всем переменным. Здесь также нет ограничений. Как мы писали выше, если никакая шкала не будет назначена, то переменная возьмёт для себя минимум 0, максимум 100 и единицу % (без пробелов), т.к. угадать нужную шкалу скада не сможет. Тип данных Single ничего не говорит о шкале. Одна Single-переменная может использовать диапазон 0-1, другая 0-1324, третья весь диапазон Single. Поэтому для каждой такой переменной пользователь может создать отдельные шкалы и назначить их этим переменным.
Если так тоже непонятно, то извините, мы не знаем что ещё можно добавить по шкалам.
ЦитироватьПри выборе переменной всплывает подсказка с адресом на OPC-сервере, а по-моему мнению, было бы удобнее, если бы всплывало её описание. Можно такое реализовать? Если "другим надо другое", то опционально, в настройках редактора выбирать, что показывать.
Уточните о какой именно подсказке речь. При выборе переменной отображается описание (если оно есть у переменной), см. скрин во вложении. Вроде бы больше нигде подсказки не отображаются при выборе переменной.
При редактировании групп трендов столкнулся с неудобствами:
1. Невозможно выделить несколько трендов, чтобы вырезать-вставить (кстати, почему только вырезать, где скопировать?!), хотя подсказка на кнопках "вырезать выделенные" как бы намекает, что такое должно быть возможно;
2. Невозможно переместить и/или скопировать группу трендов из раздела в раздел;
3. Сделать свойства OnXXXXXXX доступными для чтения-записи. Для чего: чтобы можно было в шаблонах управлять поведением объектов. Например, для большинства экземпляров шаблона по клику надо переходить на страницу с номером, заданным в свойстве Tag, но некоторые экземпляры шаблона в Tag подставляют -1, и тогда в OnInit шаблона реакция на клик отключается:
if Sender.Tag = -1 then TM_Object(Sender).OnClick := NIL;Проверять Tag в самом OnClick не вариант, т.к. если OnClick задано, то объект выделяется рамкой при наведении мышки, и отсутствие реакции на клик будет противоречием. Аналогично можно настроить и поведение других событий, если соответствующие свойства доступны для записи.
4. Сделать возможность перемещать объект по слоям не только на самый верх или самый низ, но и "на 1 уровень" выше/ниже.
И очень сильно напрягает однооконный интерфейс редактора! Насколько было бы удобнее работать, если бы в одном окне (на одном мониторе) видеть, предположим, мнемосхему техпроцесса, а во втором окне/мониторе работать с трендами или скриптами... Так же при работе со скриптами возможность открыть два или более скриптов одновременно - это неоспоримое удобство! Нет ли планов переработать интерфейс в привычный многооконный? Даже тот факт, что панели задач на мониторе по умолчанию не видно, уже создает проблемы...
ЦитироватьНевозможно переместить и/или скопировать группу трендов из раздела в раздел;
Перемещать можно и группы и разделы, см. пример в руководстве (https://simple-scada.com/help/manual/move-group.html). То же касается групп сообщений, переменных, скриптов и их групп.
Для создания копии группы трендов выделите группу и нажмите кнопку "Дублировать выделенную группу".
ЦитироватьСделать возможность перемещать объект по слоям не только на самый верх или самый низ, но и "на 1 уровень" выше/ниже.
Объектам можно задать любое значение слоя. См. свойство "Слой" (https://simple-scada.com/help/manual/general-properties.html).
ЦитироватьДаже тот факт, что панели задач на мониторе по умолчанию не видно, уже создает проблемы...
Если Вы работаете в полноэкранном режиме и нужно отобразить панель задач Windows, то можно нажать клавишу Win на клавиатуре.
ЦитироватьНет ли планов переработать интерфейс в привычный многооконный?
Нет.
Цитата: Simple-Scada от 25 сентября 2024, 09:25:07Перемещать можно и группы и разделы, см. пример в руководстве (https://simple-scada.com/help/manual/move-group.html). То же касается групп сообщений, переменных, скриптов и их групп.
Для создания копии группы трендов выделите группу и нажмите кнопку "Дублировать выделенную группу".
А, извиняюсь, это такая специальная фича сделать не так, как принято во всех остальных windows-программах? Как-то неочевидно всё...
Есть же де-факто стандарт на операции копирования-вставки, и всё, что можно перетаскивать, можно и копировать-вырезать-вставлять. Но не здесь...
Цитата: Simple-Scada от 25 сентября 2024, 09:25:07Объектам можно задать любое значение слоя.
Вы и в самом деле не видите разницы между тем, что можно сделать через одно место и тем, что прошу я? Я прошу кнопочки (горячие клавиши) для инкремента/декремента этого самого слоя, только и всего. Обнуление же вы сделали отдельной кнопкой...
Цитата: Simple-Scada от 25 сентября 2024, 09:25:07Если Вы работаете в полноэкранном режиме и нужно отобразить панель задач Windows, то можно нажать клавишу Win на клавиатуре.
Спасибо, кэп.
Можно реализовать в будущих версиях группы пользователей?
Чтобы раздавать права именно группам, а пароли для входа уже индивидуально по членам групп.
Добрый день!
Возникла идея по шаблонам.
В шаблоне, если точно знаешь, что будет использоваться полностью имя переменной (внешнюю/внутреннею), указать например префикс %var_user% (или как сейчас %Переменная%) и тогда при привязке экземпляров шаблонов в данной строчке использовать стандартный инструмент выбора переменной.
Возможно это сложно сделать. Но было бы классно!
ЦитироватьА, извиняюсь, это такая специальная фича сделать не так, как принято во всех остальных windows-программах? Как-то неочевидно всё...
Рекомендуем перед использованием изучить руководство, чтобы не удивляться стандартному функционалу скады. Если не всегда есть доступ к интернету, то оффлайн версии руководства можно найти в папке со скадой. Это также позволит не изобретать заново то, что можно решить стандартными средствами и выбрать наиболее оптимальные пути во время разработки проекта.
ЦитироватьМожно реализовать в будущих версиях группы пользователей?
Да, в одном из ближайших обновлений будет множество изменений в системе прав, включая группы пользователей и возможность добавления пользователей через клиенты скады.
Цитата: Серега от 26 сентября 2024, 09:25:45В шаблоне, если точно знаешь, что будет использоваться полностью имя переменной (внешнюю/внутреннею), указать например префикс %var_user% (или как сейчас %Переменная%) и тогда при привязке экземпляров шаблонов в данной строчке использовать стандартный инструмент выбора переменной.
Скорее всего добавим возможность выбора переменной (помимо обычного ввода) при задании значений для подстановок.
Цитата: Simple-Scada от 26 сентября 2024, 09:43:24Скорее всего добавим возможность выбора переменной (помимо обычного ввода) при задании значений для подстановок.
Можно и для поля выбора переменной не в шаблонах добавить возможность вручную писать имя переменной как в шаблонах. Например, когда переменные с похожими именами находятся в разных группах, то долго приходится кликать и переходить из группы в группу. Иногда проще вручную с клавиатуры поправить имя переменной. Например имена переменных: Groupe101_Var, Groupe102_Var, Groupe103_Var иногда проще поправить вручную, особенно если таких групп около 150. Плюс будет работать Copy/Paste для поля переменных.
ЦитироватьМожно и для поля выбора переменной не в шаблонах добавить возможность вручную писать имя переменной как в шаблонах.
Рассмотрим такой вариант.
Предложение:
Можно для ячеек таблицы добавить в "работать с" еще вариант "С описанием"?
ЦитироватьМожно для ячеек таблицы добавить в "работать с" еще вариант "С описанием"?
Возможно в будущих обновлениях.
Можно ли добавить в будущих обновлениях галочку "заблокировать" в настройках пользователей проекта ? чтобы при попытке входа на клиенте с таким логином и паролем выдавалось предупреждение соответствующее. Сейчас если пользователь есть, но ему не назначен на доступ ни один экран - клиент SCADA зависает очевидно. В логах/статусе сервера видно, что клиент подключен, но page --, что тоже верно.
Иногда требуется включить-отключить доступ с каким либо логином, не удаляя его из системы.
ЦитироватьМожно ли добавить в будущих обновлениях галочку "заблокировать" в настройках пользователей проекта ?
Да, сейчас делаем крупное обновление системы пользователей, будет добавлено много новых возможностей, включая временную блокировку.
Добрый день!
Хотел бы попросить уменьшить прозрачность выделенной строки в таблице, потому что объективно её плохо видно. При выделении строки в клиенте она подсвечивается тем же цветом, который настроен для фиксированных строк и столбцов, но по ощущениям прозрачность около 50. Может есть смысл привязать прозрачность выделения к прозрачности фиксированного цвета.
Небольшой недочёт: в редакторе всплывающая подсказка отображается только внутри рабочего поля, в результате может быть частично или полностью скрыта панелями кнопок, закладками и другими элементами интерфейса.
На прилагаемом скриншоте подсказка вроде есть, но текста не видно.
Здравствуйте.
Цитата: Timothy Clement от 04 октября 2024, 11:41:18При выделении строки в клиенте она подсвечивается тем же цветом, который настроен для фиксированных строк и столбцов, но по ощущениям прозрачность около 50. Может есть смысл привязать прозрачность выделения к прозрачности фиксированного цвета.
Добавим какое-то решение для смены прозрачности выделенной строки.
Цитата: ARV от 04 октября 2024, 13:37:52Небольшой недочёт: в редакторе всплывающая подсказка отображается только внутри рабочего поля, в результате может быть частично или полностью скрыта панелями кнопок, закладками и другими элементами интерфейса.
Переместим в верхний слой в ближайшем обновлении.
Здравствуйте!
1) У нас 60 станков, которые могут производить разные виды продукции и для каждого вида на пример температура имеет свои границы. Очень облегчит жизнь исли границы переменных, тоесть границы шкал можно было изменять динамически через скрипты, на пример по изменению значения переменной. Тогда Скада бы сама подстраивалась под продукцию. Можно конечно задать максимально возможные границы, но нам важно следить за десятками градусов и когда открываешь тренды - первое что мы делаем начием колесиком увелить в максим маштам шкал. Если же сделать динамическое изменение границ шкал, то можно выставлять минимальные границы и тогда при открытие графика шкала будет сразу удобного для просмотра маштаба. Очень просим реализовать данный функционал если у вас есть такая возможность.
2) Было бы удобно перемещаться между трендами с помощью стрелочек на клавиатуре.
3) Добавьте пожалуйста возможность менять цвета кнопки открытия трендов, а то менять цвета кнопак страниц и подстраниц дали, а кнопки трендов нет
То ли вопрос, то ли предложение: иной раз было бы полезно иметь возможность перебрать все имеющиеся переменные.
То есть не по имени находить, а по принципу перебора:V := FindFirstVar(Filter);
while V <> NIL do begin
// some code with V
// ...
V := FindNextVar(Filter);
end;В принципе, наличие Filter не принципиально, можно и самостоятельно уточнить, та ли это переменная или нет. но если бы был такой параметр отбора - еще лучше.
Цитата: Simple-Scada от 20 июля 2017, 09:55:43Цитата: GEW от 19 июля 2017, 10:55:55И сразу вопрос: для TM_TimeViewer.Interval есть планы снять ограничение read-only?
Да, ограничение будет снято в будущих обновлениях скады.
Добрый день.
Планируется снять ограничение read-only с TM_TimeViewer.Interval или это можно как-то обойти?
Цитата: Lordhmen от 10 октября 2024, 08:40:141) У нас 60 станков, которые могут производить разные виды продукции и для каждого вида на пример температура имеет свои границы. Очень облегчит жизнь исли границы переменных, то есть границы шкал можно было изменять динамически через скрипты, на пример по изменению значения переменной...
После внедрения новой системы прав планируем добавить возможность изменения шкал переменных во время работы проекта.
Цитата: Lordhmen от 10 октября 2024, 08:40:142) Было бы удобно перемещаться между трендами с помощью стрелочек на клавиатуре.
Вы говорите о группах трендов? Переключаться на другую группу?
Цитата: ARV от 18 октября 2024, 16:50:21иной раз было бы полезно иметь возможность перебрать все имеющиеся переменные.
Перебор объектов и переменных скорее всего не будет добавлен в обозримом будущем, т.к. пользователи в основном используют подобные функции неправильно (например, для переноса задач ПЛК на скаду, либо для создания систем, которые уже есть в скаде) и не понимая, как это влияет на производительность. В результате получается проект который бесполезно нагружает процессор и переполняет очередь скриптов. А т.к. пользовательские скрипты в скаде всегда выполняются синхронно, то перебор переменных в цикле имеет смысл, например, единожды, при запуске проекта для инициализации каких-то свойств/связей и т.п. В остальных случаях
периодический перебор переменных в больших проектах скорее всего приведёт в вышеописанным проблемам.
Цитата: karpeka от 20 октября 2024, 01:03:07Планируется снять ограничение read-only с TM_TimeViewer.Interval или это можно как-то обойти?
Если Вам нужен произвольный интервал, или интервал больше чем 1 час, то такой возможности нет (и не будет в будущем для временных трендов). Временные тренды хранятся в оперативной памяти (теряются при выключении проекта и записываются с нуля при очередном запуске), поэтому имеют ограничение по времени. В будущем планируем добавить компонент архивных трендов (как в меню просмотра трендов (https://simple-scada.com/help/manual/client-trends-view.html)), которые читает данные из БД и может работать с любыми интервалами.
ЦитироватьПосле внедрения новой системы прав планируем добавить возможность изменения шкал переменных во время работы проекта.
Огромное вам спасибо, начальство будет в восторге. +- Подскажите, пожалуйста, когда ждать это нововведение, в этом году?
ЦитироватьВы говорите о группах трендов? Переключаться на другую группу?
Да, и о группах трендов, и о самих трендах. У вас всё управление трендами реализовано через мышку, я про перемещение по временной шкале, изменение масштаба и так далее, всё через мышку. Было бы удобно, если с помощью стрелочек вверх/вниз переключались группы трендов, а с помощью стрелочек влево/вправо переключались сами тренды. Если вам по какой-либо причине необходимо оставить перемещение по временной шкале через стрелочки влево/вправо, то можно это реализовать через какую-нибудь комбинацию клавиш, например с зажатым Ctrl. А еще удобнее будет, если вместо этого будет реализовано движение линии на графике (я про ту линию, которую ты выставляешь, чтобы посмотреть значения переменных в конкретный момент времени). Так вообще удобно будет. С зажатым Ctrl с помощью стрелочек влево/вправо перемещается, к примеру, по одной секунде эта линия, если линия выходит за временную шкалу, отображенную на мониторе, то и временная шкала перемещается. Это позволит более детально просматривать тренды и быстро. Возвращаясь к нашим 60 станкам — на каждый станок по два графика, человек, который с утра приходит на смену, должен просмотреть все графики, сейчас это геморой и занимает продолжительное время.
Также было удобно, если бы помимо названия тренда также отображалось название группы тренда.
Цитата: Simple-Scada от 20 октября 2024, 10:28:56перебор переменных в цикле имеет смысл, например, единожды, при запуске проекта для инициализации каких-то свойств/связей и т.п.
Именно так! А так же при решении задач переноса данных между базами.
ЦитироватьИменно так! А так же при решении задач переноса данных между базами.
Даные можно переносить между базами и не через скаду, я через python с базы данные дастую. В будущем в планах написать api для работы с базой данных скады и настроитить сихранизацию информации с другим ПО
Цитата: ARV от 18 октября 2024, 16:50:21То ли вопрос, то ли предложение: иной раз было бы полезно иметь возможность перебрать все имеющиеся переменные.
...
В принципе, наличие Filter не принципиально, можно и самостоятельно уточнить, та ли это переменная или нет. но если бы был такой параметр отбора - еще лучше.
Можно создать таблицу с переменными (встроенными средствами simple scada в настройках проекта). И затем, с помощью SQL запроса к БД, получать имена переменных с любым фильтром или без фильтра, после чего с помощью функции GetVariableByName получать нужные переменные.
Можно и так, и этак... Но как удобнее?
Вопрос не в том, как можно, обходные решения и так найдены, мысль была упростить в будущем подобное.
Предлагаю добавить в редактор возможность ввода цвета сразу в формате #RRGGBBAA, чтобы можно было копипастить значения, а не вводить составляющие поотдельности.
ЦитироватьПредлагаю добавить в редактор возможность ввода цвета сразу в формате #RRGGBBAA, чтобы можно было копипастить значения, а не вводить составляющие поотдельности.
Полностью потдерживаю
Есть просто гениальное предложение: для назначения переменной тренду выводить список только архивируемых (и еще не назначенных) переменных :)
Еще, в противоречие к предыдущему, можно автоматически включать архивацию тем переменным, которые добавляются в тренды.
Даже не знаю, что лучше... Вроде первое...
Я считаю что тут менять ничего не нужно.
В первом случае не будет видно переменных у которых не включена архивация, может я хочу настроить архивацию позднее, когда добавлю ещё несколько переменных в проект.
Во втором случае вообще, недостаточно же просто включить архивацию. Нужны доп настройки по типу архивации, все равно лезть в переменный надо, смысла нет.
Для решения таких вопросов есть понятие "опция". Поставил галочку - на тебе так, снял галочку - вот тебе этак.
Добрый день! Вопрос по авторизации пользователей, точнее по времени бездействия. Возможна ли реализация автоматического входа пользователя "по умолчанию", если вышло время бездействия другого пользователя? Я так понимаю, сейчас такой опции нет, а она довольно полезна, особенно при пуско-наладке: не прерывая тех процесса (в фоне) переключать на пользователя, который отмечен как пользователь "по умолчанию". И сделать не просто время бездействия, а время с момента авторизации.
Цитата: ARV от 21 октября 2024, 10:37:53Предлагаю добавить в редактор возможность ввода цвета сразу в формате #RRGGBBAA, чтобы можно было копипастить значения, а не вводить составляющие поотдельности.
Добавим в список задач.
Цитата: ARV от 24 октября 2024, 08:51:37Есть просто гениальное предложение: для назначения переменной тренду выводить список только архивируемых (и еще не назначенных) переменных :)
Еще, в противоречие к предыдущему, можно автоматически включать архивацию тем переменным, которые добавляются в тренды.
Такие изменения точно не будут добавлены. В сообщении
Timothy Clement описаны именно те причины, по которым выбор переменных для трендов реализован как сделано сейчас. Если у переменной выключена архивация, то на тренде отобразится восклицательный знак с подсказкой.
Цитата: Anastasia от 24 октября 2024, 13:35:40Возможна ли реализация автоматического входа пользователя "по умолчанию", если вышло время бездействия другого пользователя?
Для десктоп-клиентов можно задать логин и пароль пользователя (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=login) под которым нужно автоматически авторизоваться. В этом случае, сразу после подключения к проекту будет выполнена автоматическая авторизация с указанными данными. Если во время работы под другим пользователем выйдет время бездействия, то сервер отключит клиента и пользователь увидит окно об отключении. Достаточно будет нажать кнопку "Переподключиться" и после переподключения автоматически выполнится вход под заданным в настройках пользователем.
1. Можно добавить такую фичу: если был создан скрипт по изменению переменной(ых), а потом в силу каких-то действий этот скрипт потерял связь с переменной (или одной из ранее назначенных), то помечать группу, в которой этот скрипт находится? Т.е. сейчас скрипт помечается восклицательным знаком, но если он в группе, то этого не видно.
То же самое и для других элементов системы, которые могут группироваться и терять связь со своими переменными (сообщения, тренды и др.).
2. При выделении нескольких шаблонных объектов предоставлять возможность редактирования общих подстановок в этих объектах так же, как и общих свойств группы простых объектов. Т.е. чтобы можно было задать одинаковые подстановки сразу группе шаблонных объектов.
3. Можно сделать свойство RowCount в таблице доступным для записи, чтобы появилась возможность управлять количеством строк таблицы из скриптов?
Цитата: ARV от 25 октября 2024, 11:35:011. Можно добавить такую фичу...
2. При выделении нескольких шаблонных объектов предоставлять возможность редактирования общих...
3. Можно сделать свойство RowCount в таблице доступным для записи...
По возможности добавим в будущих обновлениях.
Цитата: Simple-Scada от 26 сентября 2024, 09:43:24ЦитироватьМожно реализовать в будущих версиях группы пользователей?
Да, в одном из ближайших обновлений будет множество изменений в системе прав, включая группы пользователей и возможность добавления пользователей через клиенты скады.
Очень ждал в сегодняшнем обновлении изменения в системе прав... Какие планы на этот счет?
Планы не изменились и не изменятся, в одном из ближайших обновлений будет добавлена новая система прав.
Я как бы интересовался, на какой срок намечена реализация планов... :-[
Срок не можем назвать. Если пользователи сообщают об ошибках, то мы решаем их в первую очередь, приостанавливая разработку других задач. И иногда в первую очередь добавляем то, что можно добавить быстро. Например, практически все изменения из обновления 2.6.15.0 мы добавили отсрочив разработку системы прав. Изначально мы вообще не планировали делать это обновление.
Что ж, буду с нетерпением ждать. И удачи вам в решении наших проблем :)
Пожалуйста, сделайте что-нибудь с позиционированием сегментов трубопроводов! При помощи клавиатуры попиксельный сдвиг не работает, движется целиком трубопровод, а не выделенный сегмент. А мышкой трудно попасть...
И обязательно надо "толерантность" попадания в конечные точки необходимо расширить, ибо пристыковать к трубопроводу, размещенному не точно по сетке, новый отрезок - это ужас нерожденного!
Здравствуйте! Планируется ли регистрация симпл скады в реестре отечественного ПО?
Цитата: ARV от 09 декабря 2024, 10:08:57Пожалуйста, сделайте что-нибудь с позиционированием сегментов трубопроводов! При помощи клавиатуры попиксельный сдвиг не работает, движется целиком трубопровод, а не выделенный сегмент. А мышкой трудно попасть...
Внесём изменения.
Цитата: Вячеслав от 10 декабря 2024, 11:37:32Планируется ли регистрация симпл скады в реестре отечественного ПО?
Simple-Scada внесена в реестр отечественного ПО ещё в 2018 году, см. эту ссылку (https://reestr.digital.gov.ru/reestr/305695/?sphrase_id=3409193).
Здравствуйте! Есть ли возможность добавить прозрачность на цвет Окна / шаблонного окна?
Здравствуйте. Нет, у окон нет прозрачности и добавление такого свойства не планируется.
Предлагаю рассмотреть возможность использования в качестве числовых значений свойств объектов в редакторе (например, Кадр для картинки или Тег для любых) констант, описанных в глобальном модуле.
Поясняю, чем это предложение обосновано.
Поле тег используется в качестве скрытого параметра для передачи информации, доставить которую иначе слишком сложно. И в редакторе в это поле приходится писать какое-то безымянное число, например, 7. Когда кто-либо смотрит на такой проект, он понятия не имеет, что это "7" означает - номер бита, номер элемента массива или вес в граммах. Если вместо "7" было бы написано, предположим, id_Array - это лучше воспринималось бы, да? Соответственно, и в скрипте была бы использована эта константа, что сделало бы скрипт более читабельным.
То есть я здесь пытаюсь озвучить всем известное правило хорошего стиля программирования "не используйте магические числа".
Здравствуйте.
Есть необходимость использования клиента симплскады на мониторе с разрешением 2560x1440 в вертикальном расположении. т.е. необходимо запускать клиент симпл скады с разрешением 1440x1280 внизу экрана монитора с разрешением в 1440x2560.
Каким образом можно организовать запуск клиента с таким разрешением в данном случае?
Здравствуйте.
Можно переключить десктоп-клиент (https://simple-scada.com/help/manual/client.html) в оконный режим – см. опцию "Размер окна (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=general)" и выбрать один из доступных размеров окна, например 1400x1050. После чего можно перемещать окно клиента путем перетаскивания за заголовок окна в любую область экрана. Задать произвольные настройки разрешения и положения окна клиента возможности нет. Пожелание учтем и возможно в будущем добавим дополнительные настройки размера окна клиента.
Добрый день.
У вас в руководстве https://simple-scada.com/help/manual/postgresql.html указано, что рекомендуется использовать версию postgres 12 и выше.
С какими техническими ограничениями мы можем столкнуться при использовании postgres 11?
Т.к. в основном репозитории Astra Linux присутствует только 11 версия postgres, а дополнительный репозиторий, где есть 14 версия, в нашей ситуации не может быть использован.
Здравствуйте.
ЦитироватьУ вас в руководстве https://simple-scada.com/help/manual/postgresql.html указано, что рекомендуется использовать версию postgres 12 и выше. С какими техническими ограничениями мы можем столкнуться при использовании postgres 11? Т.к. в основном репозитории Astra Linux присутствует только 11 версия postgres, а дополнительный репозиторий, где есть 14 версия, в нашей ситуации не может быть использован.
Как и указано в руководстве (https://simple-scada.com/help/manual/postgresql.html), поддерживается работа с версиями PostgreSQL от v12 и выше. Версии PostgreSQL 11 и ниже - не поддерживаются. Если нет возможности установить необходимую версию PostgreSQL, то рекомендуем использовать СУБД MariaDB - инструкция по установке на Astra Linux Special Edition доступна по ссылке (https://simple-scada.com/help/manual/astrase-install-mariadb.html). Рекомендуем всегда устанавливать последнюю версию любой СУБД.
К сожалению MariaDB находится в расширенном репозитории Astra Linux https://wiki.astralinux.ru/pages/viewpage.action?pageId=147162400
А как я уже писал выше, у нас нет возможности использовать расширенный репозиторий. В расширенном репозитории также есть и postgres 14 :)
Начиная с версии Astra Linux Special Edition 1.7.4 полноценная версия СУБД MariaDB перенесена в базовый репозиторий (base) (https://clck.ru/3FuLMj). Если есть возможность, то подключите базовый репозиторий (base) и выполните установку из него. Повлиять на наличие необходимой версии СУБД в основном репозитории ОС мы не можем.
Добрый день! Иногда возникают ситуации, когда свойств Переменная и Доп. переменная не хватает для реализации нужного функционала в скриптах. Спасает свойство Тег, в которое можно поставить доп. значение.
Но, Тег может принимать только числовое значение, а иногда есть необходимость передать строку или больше одного значения. Тут выручает свойство Подзказка (Hint), но её использование для передачи строки в скрипт выглядит как костыль.
Может есть смысл сделать свойство Тег строковым? А в скрипте уже преобразовать в число если необходимо. Или оставить Тег числовой, но добавить свойство Теги - массив строк, к которому можно будет обращаться в скрипте - Tags[0]... Надеюсь понятно донёс суть предложения.
Поддерживаю. Тоже так делаю - использую свойство Hint.
Подскажите, а почему при групповом переименовании в поле Найти и Заменить нельзя использовать знак "."? Или это только у меня так? Например, я вложил один объект в другой объект и мне нужно добавить уровень вложенности в имеющиеся тэги. Удобнее всего это было бы делать через групповое переименование. А сейчас приходится через экспорт/импорт.
Цитата: Timothy Clement от 28 января 2025, 13:36:42Может есть смысл сделать свойство Тег строковым?
В будущих версиях возможно добавим доп. свойства.
Цитата: Дмитрий К от 29 января 2025, 15:54:32Подскажите, а почему при групповом переименовании в поле Найти и Заменить нельзя использовать знак "."?
Потому что в именах переменных нельзя использовать "." и ряд других символов. Но при групповом переименовании описания и адреса таких ограничений быть не должно. Добавим исправление.
Не помню, была ли уже такая просьба или нет: Добавить фильтр по шаблону (т.е. с подстановочными символами или regexp) для импорта переменных с OPC-серверов.
то есть чтобы не все подряд переменные из группы импортировать, а только удовлетворяющие шаблону.
Здравствуйте, начал работу с проектом.
Версия 2.6.15.0
Появились вопросы, на которые я не нашел ответа в мануале.
Если решений нет, прошу считать эти вопросы предложением по апгрейду ПО:
РЕДАКТОР
-как перемещать строки в таблице вверх/вниз? Сохраняя ссылки на переменные.
-как разделить таблицу на две? Сохраняя ссылки на переменные.
-как массово создать группу трендов на основе ссылок на переменные в ячейках?
-как массово создать тренды на основе переменных по маске? Например, для однотипных переменных , в имени которых есть "Volume".
-в группе создаются только 10 трендов. Как обойти ограничение?
РЕДАКТОР ПЕРЕМЕННЫХ:
-при поиске переменных в поле Найти, переменные подсвечиваются, но кнопки действий с переменными неактивны. Интересует Редактирование и Вырезание.
При прощелкивании мышью подсвеченных при поиске переменных кнопки не активируются.
-при групповом изменении окно "Изменить переменные" не видит тип архивации, хотя они заданы одинаково в переменных.
Пример:Окно "Изменить переменные" показывает Тип архивации - Не архивировать(по факту-10 мин), Формат по умолчанию 0.##(по факту 0,00). Нажимаем применить после внесения изменений на других вкладках и настройки архивации и форматирования слетают.
КЛИЕНТ:
-автомасштабирование тренда по мин/макс за выбранный период, а не по шкале.
На дисплее прибора учета 7 регистров. Соответственно шкала от 0 до 9999999. Показания 10 теряются внизу тренда. Как настроить автомасштаб, чтобы за выбранный период на графике было от мин_за_период до макс_за_период? С настраиваемым отступом сверху/снизу.
Заранее благодарю за ответ.
Здравствуйте.
Цитироватьпри поиске переменных в поле Найти, переменные подсвечиваются, но кнопки действий с переменными неактивны. Интересует Редактирование и Вырезание.
Поиск только подсвечивает переменные, выделения не происходит. Чтобы выполнить действия с переменными, их нужно сначала выделить кликнув указателем мыши. Удерживая Ctrl можно добавлять в выделение по одной переменной. Удерживая Shift можно выделить множество переменных. Комбинация "Ctrl + A" выделяет все переменные.
ЦитироватьПри прощелкивании мышью подсвеченных при поиске переменных кнопки не активируются.
Не удалось повторить. Какую версию скады Вы используете? Просьба после выбора переменной сделать и прикрепить скрин, чтобы было видно выделенную переменную и неактивные кнопки.
Цитироватьв группе создаются только 10 трендов. Как обойти ограничение?
В одной группе нельзя создать более 10 трендов.
Цитироватькак массово создать группу трендов на основе ссылок на переменные в ячейках?
как массово создать тренды на основе переменных по маске? Например, для однотипных переменных , в имени которых есть "Volume".
Такой возможности нет.
Цитироватьпри групповом изменении окно "Изменить переменные" не видит тип архивации, хотя они заданы одинаково в переменных.
Когда Вы открываете окно редактирования переменных, во всех полях отображаются значения по-умолчанию. Если изменить значение в каком-либо поле/списке, то оно подсветится снизу (см. скрин во вложении). После нажатия на кнопку "Применить" у переменных обновятся только те свойства, которые были изменены. Остальные свойства проигнорируются.
ЦитироватьНажимаем применить после внесения изменений на других вкладках и настройки архивации и форматирования слетают.
Это невозможно, если Вы не меняли настройки архивации и форматирования. Как описано выше, у переменных обновляются
только те свойства, которые были изменены. Если Вы открыли окно редактирования и не меняли формат, то после нажатия на кнопку "Применить" он не изменится.
Цитироватьавтомасштабирование тренда по мин/макс за выбранный период, а не по шкале.
Автомасштаб трендов сейчас не поддерживается, в будущем будет добавлен. Сейчас каждой переменной должна быть назначена соответствующая шкала. Если реальный диапазон значений у переменной в пределах 0 - 1000, то у неё должна быть выбрана шкала 0-1000. Если диапазон значений 0-1, то и шкала должна быть 0-1. При отображении трендов будет взята шкала переменной.
Здравствуйте.
На скрине:
-введено слово в поле поиск (Скрин 1)
-строка 1 - с зажатым Ctrl один клик ЛКМ (Скрин 2)
-строка 5 - с зажатым Ctrl два клика ЛКМ (Скрин 2)
Версия Scada 2.6.15.0
Теперь понятно. При кликах по найденным строкам удерживая Ctrl - повторяется проблема. Добавим исправление. Также добавим возможность быстрого выделения всех найденных.
UPD: Исправление включено в обновление 2.7.1.0.
Здравствуйте!
Планируется ли в будущем добавить возможность импорта переменных напрямую без ОРС серверов по протоколу Modbus ASCII/RTU/TCP ?
Либо устройств работающих посредством Modbus драйвера с Simple Scada.
Очень актуально.
Благодарю!
Здравствуйте.
В ближайшем будущем точно не планируется, т.к. не видим в этом смысла. Если бы между чтением с OPC и чтением напрямую из скады была заметная разница в производительности, то добавили бы чтение напрямую. Но разницы нет даже при опросе большого количества переменных (более 60000). То же касается опроса через MQTT. Поэтому сейчас для Modbus / MQTT / SNMP и т.п. рекомендуем использовать arOPC (https://simple-scada.com/aropc).
Как задать формат для TM_Field ?
По умолчанию он использует для вещественных чисел 0.##
И еще у Подписи зачем-то алтримятся пробелы (удаляются с переди и с зади).
Список Трендов выводится с лева на право.
Приходится задавать их через один, чтоб получились столбцом, не удобно.
Здравствуйте.
ЦитироватьКак задать формат для TM_Field ?
Формат задаётся не у компонента, а у переменной – см. свойство "Формат" (https://simple-scada.com/help/manual/varextra.html).
ЦитироватьИ еще у Подписи зачем-то алтримятся пробелы (удаляются с переди и с зади).
Список Трендов выводится с лева на право. Приходится задавать их через один, чтоб получились столбцом, не удобно.
Пожелания обязательно учтем и рассмотрим. Если штатная подпись не подходит, то можно использовать вместо нее компонент "Текст (https://simple-scada.com/help/manual/text.html)" с необходимыми отступами.
Спасибо, нашел формат (просто сам немного затупил).
Именно Текстом и пользуюсь.
Я заметил, что его можно задать в Подписи, но отсутствие регулировки отступа и удаление пробелов мне не подошло.
Возник вопрос по TM_TimeTrendViewer.
Одна переменная OPC через некоторое время перестает выводиться на тренде.
График обрывается, хотя на Lectus Modbus OPC она имеет значение и качество Good.
Для проверки сделал вывод значения и качества этой переменной на экран.
Они соответствуют значениям OPC, а на тренде она исчезает.
У нас SCADA 2.6.11.0 подскажите как обновить до 2.7.0.0 ? Нужно писать на супорт ?
Год со дня покупки Professional на 500 тегов прошел, но у нас есть годовая подписка на обновления.
Здравствуйте.
ЦитироватьОдна переменная OPC через некоторое время перестает выводиться на тренде.
Для корректного отображения на трендах, переменная должна иметь шкалу (https://simple-scada.com/help/manual/edit-scale.html) соответствующую диапазону, в котором она изменяется. Например, если переменная изменяется в диапазоне 0-1000, то в скада-системе должна использоваться шкала 0-1000. Какая шкала используется для проблемной переменной и какое значение имеет переменная когда перестает отображаться на временном тренде?
Если дело не в шкале переменной, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects" и укажите временный тренд (и имя переменной), который нужно проверить.
ЦитироватьУ нас SCADA 2.6.11.0 подскажите как обновить до 2.7.0.0 ? Нужно писать на супорт ?
Вопросы связанные с покупкой, подпиской, получением обновлений и т.д. необходимо направлять на почту price@simple-scada.com. По данному вопросу написали Вам на почту.
На счет обновления понял.
Нам поставили скаду ООО Сибтехинжиниринг <info@sib-te.ru>
Буду выяснять у них про почту и прочее...
На счет тренда:
Я сделал копию с переменной Delta, изменил ей тип на внутренняя переменная.
В скрипт расчета суммарного расхода добавил присвоение этой переменной значения переменной ОРС.
Очистил все таблицы в базе.
В настраиваемой группе выбрал эту переменную и...
Она появилась на тренде, а переменной ОРС - нет.
Ну вобщем как устранить эту ошибку нашел... :)
В общем достала меня эта ошибка.
На графике переменная рисуется, а вот в базу не сохраняется.
После перезагрузки проекта линия пропадает и чертится по новой.
Задавал сохранение по времени 10, 5, 3, 2 сек не помогло.
Только с 1 сек сохраняется.
Другие переменные Ток и Частота насоса пишутся только когда он работает.
При остановке 0 А и 0 Гц не пишутся (стоит прочерк) хотя качество ХОРОШЕЕ !!!
ЦитироватьЗадавал сохранение по времени 10, 5, 3, 2 сек не помогло.
Тип архивации "по времени" обычно используется чтобы проредить данные. См. описание в руководстве (https://simple-scada.com/help/manual/vararchive.html). Рекомендуем использовать архивацию по-изменению, как и сказано в руководстве.
ЦитироватьПосле перезагрузки проекта линия пропадает и чертится по новой.
Если данные действительно не попадают в БД, то причина скорее всего в некорректном завершении работы сервера скады. Вы Выключаете сервер штатно, через кнопку "Остановить и выйти" (https://simple-scada.com/help/manual/server.html)?
Если самостоятельно разобраться с причиной не получается, то можете выслать текущую версию проекта из директории "..\Simple-Scada 2\Projects на support@simple-scada.com (http://support@simple-scada.com), мы проверим его.
Стоит архивация по времени потому, что эта переменная заносится оператором и может не меняться несколько суток.
Я не останавливаю сервер потому, что на нем работает еще и другой проект.
Я просто останавливаю свой проект, вношу и сохраняю изменения и с нова запускаю клиент.
Сделал новый тестовый проект (всего 5 переменных в тренде).
Проект и логи выслал.
ЦитироватьСтоит архивация по времени потому, что эта переменная заносится оператором и может не меняться несколько суток.
Ещё раз: для этого случая нужно использовать тип архивации "по изменению".
Архивация по-времени никакого смысла в данном случае не имеет. Описание типов архивации можно прочесть в руководстве, ссылки даны в предыдущем ответе. Если Вы думаете, что архивация по времени будет через равные интервалы вносить данные в БД, то это не так. Такого типа архивации не существует, скада никогда не дублирует в БД повторяющиеся данные (только изменения), т.к. в этом никогда нет необходимости.
ЦитироватьПроект и логи выслал.
Проверим и напишем Вам на почту.
УРА !!! ЗАРАБОТАЛО !!! (Матроскин)
По вашей рекомендации поставил в проекте для OPC-серверы Метку времени - компьютер и тренды появились.
Кто бы знал, что это подарочек от 'Lectus Modbus OPC and DDE server'.
Добрый день.
Добавьте, пожалуйста, свойство "Скрыть стрелку выпадающего списка" в редакторе для Списка (TM_Combobox).
Будет очень полезно для случаев, когда нужно только выводить информацию для оператора.
Стрелка занимает место, и как бы указывает на то, что можно выбирать, хотя это не предусмотрено изначально.
Да, можно использовать текст, но здесь (в Списке) есть целое меню для создания позиций прямо в редакторе + не нужны скрипты.
Добавьте, пожалуйста, больше иконок для кнопок.
Не хватает базовых для элементарных операций: для копирования, редактирования, поиска, сортировки и т.п.
Эти иконки часто нужны, например, при работе с таблицами рецептов.
Ещё хотелось бы, чтобы добавили возможность использовать иконки кнопок в качестве изображений в элементе TM_Image
Добавьте, пожалуйста, рамки для окон с возможностью настройки их цвета, прозрачности и толщины.
Здравствуйте.
Спасибо, предложения рассмотрим.
ЦитироватьСтрелка занимает место, и как бы указывает на то, что можно выбирать, хотя это не предусмотрено изначально.
Возможно для этого лучше подойдёт компонент "Кнопка" (https://simple-scada.com/help/manual/button.html) с выключенным свойством "Доступен".
Здравствуйте! Первый проект на данной платформе. Заказчик попросил, чтобы при возникновении критических аварий, всплывало окно с аварийным оповещением. Подскажите как это можно реализовать? ShowMessageAll не подходит
Здравствуйте.
Имеются следующие способы открыть окно при изменении переменной (возникновении аварии):
1. Используя процедуры "ShowMessageAll (https://simple-scada.com/help/script/showmessageall.html)" или "ShowMessageClient (https://simple-scada.com/help/script/showmessageclient.html)" (с указанием имени конкретного клиента – задаётся в настройках Options.exe на вкладке "Simple-Client (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=servset)").
2. Создать собственное окно (https://simple-scada.com/help/manual/windows.html) и для его открытия использовать процедуры "ShowAll (https://simple-scada.com/help/script/wshowall.html)" или "ShowClient (https://simple-scada.com/help/script/wshowclient.html)" (с указанием имени клиента).
3. Для web-клиентов (https://simple-scada.com/help/manual/web-client.html) подойдут только процедуры "ShowMessageAll (https://simple-scada.com/help/script/showmessageall.html)" и "ShowAll (https://simple-scada.com/help/script/wshowall.html)", т.к. имя web-клиента генерируется автоматически и его нельзя получить в скрипте по изменению переменной.
В перечисленных выше случаях можно использовать скрипт с типом события "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)". Чтобы скрипт с типом события "Изменились переменные" не выполнялся после запуска/перезапуска проекта, в нем можно пропустить первое изменение переменной после старта проекта – см. функцию IsFirstChange (https://simple-scada.com/help/script/isfirstchange.html).
Если требуется открывать окно при нарушении граничных значений переменной (https://clck.ru/3MSfM2), то можно использовать скрипт с типом события "Нарушена граница (https://simple-scada.com/help/script/borderviol.html)".
Здравствуйте.
Цитата: PeninAndrey1996 от 04 июня 2025, 14:03:33... Заказчик попросил, чтобы при возникновении критических аварий, всплывало окно с аварийным оповещением ...
Всплывающее окно может содержать гораздо больше информации чем сообщение. В примере индикатором аварий выступает вектор аварий у которого каждая авария связана с определенным битом.
При возникновении любой аварии открывается окно с мигающей рамкой (в примере для всех клиентов, т.к. авария это серверное событие, но для многопользовательского проекта окно должно быть связано именно с пользователем и необходимо селективное открывание окна, например только для первого присутствующего из списка пользователей).
Каждой из трёх аварий соответствует сообщение о причинах аварии и кнопка "Подтверждение" для сброса бита аварии.
Окно закроется только после подтверждения всех аварий.
Возможны дополнительные действия/сообщения при некоторой комбинации аварий, например при всех трех.
Добрый день! Добавьте пожалуйста возможность отправлять PUT-запросы.
Добрый день подскажите пожалуйста , как можно добавить и настроить UA OPC SERVER используя ПЛК 200 ОВЕН
Здравствуйте.
ЦитироватьДобавьте пожалуйста возможность отправлять PUT-запросы.
Пришлите на support@simple-scada.com ссылку на описание API сервиса, с которого нужно получать/отправлять данные и пример PUT-запроса, который нужно выполнить.
Цитироватьподскажите пожалуйста , как можно добавить и настроить UA OPC SERVER используя ПЛК 200 ОВЕН
Пример настройки OPC-UA для ПЛК200 (210) рассмотрен в этом видео (https://clck.ru/3MeF79). После настройки UA-сервера можно добавить его в проект Simple-Scada по следующей инструкции (https://simple-scada.com/help/manual/opcuanew.html). Процесс импорта переменных с UA-сервера рассмотрен по ссылке (https://simple-scada.com/help/manual/variable-import-opcua.html).
Добрый день. Полное описание сервиса отсутствует.
Запрос методом Put http://192.168.16.200:8080/R2500~std~DT7AJBL/process-command
заголовки:
Accept: application/json,
Content-Type: application/json,
Connection:keep-alive,
Cookie: sid=...,
Expect: 100-continue.Тело запроса:
{"command' : "pause", "delay": null}или
{"command' : "start", "delay": null, "phase" : 8}
Ответ: Response code: 200
Тело ответа:
{
"ticket": "325c9a32-085a-43b6-9c23-fc1b8aef3dca"
}
ЦитироватьПолное описание сервиса отсутствует.
А откуда Вы взяли информацию о PUT? Если тот же запрос выполнить через POST (либо даже GET), то HTTP-сервер не отвечает?
При отправке PUT-запроса все работает нормально.
На такой же POST-запрос сервер отвечает: 501 - Not Supported
На GET-запрос - ответ 500 - Server Error
Спасибо за информацию. Постараемся в ближайшее обновление добавить отправку PUT запросов.
UPD: поддержка PUT запросов добавлена в обновлении 2.7.2.0
Здравствуйте. Концептуальный вопрос. 15 вентсистем(однотипных). У каждой вентсистемы 16 аварийных булевых переменных. Два пути реализации сообщений. Через 16 шаблонов и тупа в лоб. Шаблоны выглядят заманчиво, но придется открывать папку с каждой вентсистемой, открывать каждый шаблон и вписывать руками префиксы. А в случае "в лоб" это все спокойно партируется в excel, заменяется,протягивается и тд. Скажите, мб я что-то не учел, какой способ будет более оптимальным?
Здравствуйте.
При однотипном наименовании переменных и текста сообщений, проще и быстрее будет создать сообщения через шаблоны (https://simple-scada.com/help/manual/templatemessage.html). Дополнительно, при использовании шаблонных сообщений появится ряд преимуществ:
1. Если потребуется изменить текст сообщений или добавить новые состояния, то можно будет внести изменения только в шаблон сообщения, а не редактировать каждое сообщение по отдельности.
2. При создании сообщений на основе шаблона их можно дублировать с автоинкрементом подстановок, используя комбинацию "Ctrl + Shift + D". Если имена переменных однотипные, то таким образом можно быстро создать требуемое количество сообщений из шаблона.
3. В подстановках шаблонных сообщений можно использовать спец. значения (https://simple-scada.com/help/manual/templusefultips.html#templ1).
В настройках Компоненты можно задать цвет при плохом качестве параметра.
Но признак качества вроде бы доступен только для OPC переменных и его нельзя изменить.
Когда есть дублирующие параметры. Например два датчика давления, расхода или уровня...
То на экран выводится значение общей локальной переменной, которой присваивается значение основного или дублирующего датчика в зависимости от их достоверности.
Как в этом случае задать плохое качество переменной при недостоверности этих двух ?
Сейчас мне приходится удваивать переменные, одна - значение, вторая - качество, которое я не могу использовать в настройках компоненты.
Здравствуйте.
ЦитироватьНо признак качества вроде бы доступен только для OPC переменных и его нельзя изменить.
Качество переменной можно получить только с OPC-сервера. Задать качество для внутренних, локальных или глобальных переменных (https://simple-scada.com/help/script/var-types.html) возможности нет.
ЦитироватьКогда есть дублирующие параметры. Например два датчика давления, расхода или уровня... То на экран выводится значение общей локальной переменной, которой присваивается значение основного или дублирующего датчика в зависимости от их достоверности. Как в этом случае задать плохое качество переменной при недостоверности этих двух ?
Как указано выше, задать качество внутренней переменной нельзя. В данном случае можно:
1. В скрипте, в котором выполняется запись из внутренних переменных во внешнюю, проверять качество переменных и самостоятельно подсвечивать необходимые компоненты.
2. Вместо перезаписи значений из внешних переменных во внутреннюю, можно использовать метод с подменой переменных у объекта – ссылка (https://simple-scada.com/help/script/varsubs.html). Тогда объект всегда будет связан с одной из внешних переменных.
2. интересное решение.
В этом случае при не достоверности основного будет подставлен дублирующий и недостоверность второго будет означать недостоверность двух.
1. именно так я и делаю, для единообразия и чтоб не зависеть от типа переменной.
Все зависит от структуры TM_Variable.
Если она хранит значение и качество, то тогда не должно быть проблем с обеспечением чтения/записи качества переменной.
А на нет и суда нет и туда нет.
P.S.
В МастерСкада является правилом хорошего тона дублировать ОПС переменные (аппаратная часть) в локальные переменные (логическая часть).
Чтоб не было зависимости работы логики программы от аппаратного обеспечения.
При смене регистров, битов управления, инверсии сигналов это отражается только на логике присвоения переменных.
А вся остальная часть программы не зависит от этого.
т.е. ОПС регистр в котором 16 бит сигналов присваивается 16 логическим переменным в зависимости от подключения и инверсии.
и работа ведется с единообразными логическими переменными без аппаратной привязки.
Добрый вечер.
1. В Windows 10 если панель задач расположена слева, то иногда при переключении между приложениями и возврате назад к редактору или клиенту позиция курсора мыши теряется. Клик мыши сдвигается по горизонтали на ширину панели задач вправо. Пример на скриншоте (пытался выделить прямоугольную область мышью).
2. Еще пожелание. Ваша скада установлена на компьютерах с сенсорными экранами. Иногда необходимо внести небольшие правки в проект прямо на объекте. Стандартная сенсорная клавиатура Windows в редакторе не работает, а пользоваться сторонними программами неудобно. В клиенте есть удобная виртуальная клавиатура. Пожелание, чтобы вы добавили виртуальную клавиатуру также и в редактор. Включение и отключение клавиатуры лучше сделать из меню редактора.
Есть возможность как-то обработать event opc ua сервиса самостоятельно.
Например, opc ua server regul https://reglab.ru/uploads/Material/AstraIDE/Documents/OPC_UA_User_Guide_DPA_302_6_v1_7_rus.pdf (страница 30)
генерирует event'ы при загрузке нового приложения в контроллер. Хотелось бы иметь возможность обрабатывать эти евенты, например, журналировать или выполнять скрипты.
Здравствуйте.
ЦитироватьХотелось бы иметь возможность обрабатывать эти евенты, например, журналировать или выполнять скрипты.
К сожалению, нельзя отследить события OPC-сервера, можно только подписаться на изменения переменных, импортировав переменную с UA-сервера.
Цитата: AlexejKa38 от 23 июля 2025, 21:15:591. В Windows 10 если панель задач расположена слева, то иногда при переключении между приложениями и возврате назад к редактору или клиенту позиция курсора мыши теряется. Клик мыши сдвигается по горизонтали на ширину панели задач вправо. Пример на скриншоте (пытался выделить прямоугольную область мышью).
Спасибо за информацию, добавим исправление в одном из ближайших обновлений.
В текущей версии Simple-SCADA 2.7.2.0 имеется необходимость уменьшения высоты отдельного окна менее 92 пикселей. Editor не позволяет этого сделать удерживая курсор за правый нижний угол окна и перемещая его уменьшая размер окна. Однако можно вручную в свойствах окна сделать меньше его высоту, но при этом появляются дополнительные тени по сторонам от редактируемого окна. Можно ли убрать эти тени или каким образом можно уменьшить размер окна скажем до размера 256x60?
Подскажите пожалуйста а есть возможность влиять на состояние кнопки не только от оператора? Ну например по биту из ПЛК убирать фиксацию кнопки?
Здравствуйте.
ЦитироватьВ текущей версии Simple-SCADA 2.7.2.0 имеется необходимость уменьшения высоты отдельного окна менее 92 пикселей. Editor не позволяет этого сделать удерживая курсор за правый нижний угол окна и перемещая его уменьшая размер окна. Однако можно вручную в свойствах окна сделать меньше его высоту, но при этом появляются дополнительные тени по сторонам от редактируемого окна. Можно ли убрать эти тени или каким образом можно уменьшить размер окна скажем до размера 256x60?
Такой возможности нет, минимальная высота окна равна 92 пикселя. Отключить тени нельзя. Пожелание учтем и возможно добавим такой функционал в будущих обновлениях.
ЦитироватьПодскажите пожалуйста а есть возможность влиять на состояние кнопки не только от оператора? Ну например по биту из ПЛК убирать фиксацию кнопки?
Если "Кнопка (https://simple-scada.com/help/manual/button.html)" связана с переменной (https://clck.ru/3NUpQV), то изменение значения этой переменной будет приводить к переключению кнопки в состояние (https://simple-scada.com/help/manual/button.html?anchor=btnsost), соответствующее значению переменной. При этом не важно, откуда именно инициировалось изменение значения переменной: из скады или ПЛК.
Если требуется работать с битами переменной, то кнопка может работать с битами напрямую без использования скриптов – см. свойство "Бит (https://clck.ru/3GJ359)". Если имеется в виду что-то другое, то опишите более подробно, что именно требуется.
Добрый день!
Предстоит проект в котором будет около 20 однотипных страниц. Все страницы совпадают процентов на 75. Имена переменных у всех объектов отличаются только номером.
Была мысль сделать один большой мега шаблон для страницы. Но т.к. используются собственные шаблоны кранов, насосов и т.д.(таких шаблонов больше 50 на странице), а использовать шаблоны внутри шаблонов нельзя, этот вариант не подходит.
Поэтому приходится делать одну страницу, а потом копировать все элементы на другую страницу. И ручками менять переменные у всех кранов, насосов, труб и т.д. Элеменов много, на одну страницу уходит очень много времени.
Появилась мысль. Было бы удобно если бы у страниц были свои собственные подстановки как у шаблонов. Выделил группу объектов, скопировал на другую страницу. Останется только изменить значение подстановки на странице. Сэкономило бы очень много времени. Думаю такая функция была бы востребована во многих проектах.
Здравствуйте.
Все описанное можно реализовать при помощи системы шаблонов (https://simple-scada.com/help/manual/template.html).
ЦитироватьНо т.к. используются собственные шаблоны кранов, насосов и т.д.(таких шаблонов больше 50 на странице), а использовать шаблоны внутри шаблонов нельзя, этот вариант не подходит.
Использовать шаблоны внутри шаблона можно - см. пример проекта во вложении. В нем, в шаблоне Template1 используются шаблоны Template2, Template3, Template4. При использовании шаблона внутри другого шаблона, подстановки с одинаковыми именами будут объединяться.
Возможно, вместо шаблона Вы создали шаблон окна и пытаетесь вставить его в шаблон. Либо возникает рекурсия шаблонов (https://simple-scada.com/help/manual/templusefultips.html?anchor=templ3), что недопустимо. Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта для проверки и укажите, какой шаблон и куда не получается вставить.
Цитата: Simple_Scada от 13 августа 2025, 10:33:37При использовании шаблона внутри другого шаблона, подстановки с одинаковыми именами будут объединяться.
Проблема как раз в том, что одинаковые подстановки шаблонов объединяются.
Например, на скриншоте во вложении у меня используются свои собственные шаблоны емкостей, насосов и кранов. У кранов и насосов еще по 2 шаблонных окна управления, а у каждой емкости по 8 шаблонных окон управления (нагреватель, миксер, весы и т.д.)
Объединить это всё в один шаблон не получится, т.к. объединятся подстановки и краны будут одинаковыми.
Моё пожелание, чтобы у страницы были свои собственные подстановки и их можно было писать в поля основной и доп. переменных, тегов, подстановку шаблонов и т.д. Как на скриншоте, у подстановки Valve можно было бы написать "K%Номер страницы%_3" вместо "K207_3". Тогда при копировании этих объектов на другую страницу достаточно будет только поменять подстановку %Номер страницы% с 207 на 208 и у всех объектов поменялись бы свойства.
Это только небольшой пример. В проекте на каждой странице будет больше одинаковых шаблонов: по 20 емкостей, 20 насосов и 90 кранов. Плюс другие элементы управления. Свойства в основном будут отличаться только цифрами 207, 208, 209... Менять всё это ручками очень долго. :-\
Здравствуйте. Планируется ли добавить "мышиное" событие OnMouseOver? Это здорово оживит интерфейс скады. Или можно реализовать "мышь над объектом" через скрипт?
Здравствуйте.
Не планируется, т.к. его не получится использовать в проектах с несколькими клиентами. Например, если менять цвет объекта при наведении мыши, то смена цвета будет видна всем клиентам.
В будущем возможно добавим стили при наведении курсора, которые будут применяться только на том клиенте, который навел курсор на объект.
Очень хотелось бы в редакторе сообщений сделать возможность настройки отправки по e-mail и т.д. Сейчас, через скрипт, это же двойная работа - приходится дважды забивать сообщение
dimensy, добавим возможность автоматической отправки сообщений в одном из будущих обновлений.
Добрый день!
При назначении скриптов на события OnClick, OnDblClick и OnMouseUp, вокруг объектов в запущенном исполнении, появляется рамка. Возможно ее убрать?
Здравствуйте.
За это отвечает опция "Выделять мышью активные объекты (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=qcontrol)". Вы можете отключить данную опцию и перезапустить десктоп-клиент.
Здравствуйте, подскажите работу с тех. процессом начинаем с отрисовки интерфейса и главная задача это общий прогрессбар этого процесса.
Возможно готовый проект с красивым прогрессбаром.
Зы: спасибо за первую версию, после работы в Simple-Scada 1.3.3 работодатель согласился приобрести дальнейшую и главное работать в ней было приятно. Выбрали верную стратегию.
Здравствуйте.
Цитироватьглавная задача это общий прогрессбар этого процесса.
Для этого в проекте должна быть переменная, которая отвечает за то, в какой стадии находится тех. процесс. Если такой переменной нет, то её необходимо создать. Тогда можно будет использовать компонент "Уровень (https://simple-scada.com/help/manual/level.html)" расположив его горизонтально (см. свойство "Положение") и связав с переменной определяющей стадию тех. процесса. Не забудьте правильно настроить шкалу (https://simple-scada.com/help/manual/edit-scale.html) переменной.
Здравствуйте. Существует ли возможность переключения отображения активных, неподтверждённых сообщений в компоненте "список сообщений" для отдельных групп? В данный момент при выборе отдельной группы отображаются ВСЕ сообщения данной группы, что очень неудобно. Такой функционал необходим для реализации журналов активных событий в отдельных окнах, для отдельных агрегатов.
Доброго времени суток, подскажите приобретена лицензия на Лицензионная версия Simple-Scada 2.7.3.1 Проф. полный функционал. Имеем в штате 2 программиста. Могут ли они работать над одним проектом одновременно?
Дополню. Заготовка проекта имеется и будет развернута на сервере. Нужно одновременно производить изменения.
Здравствуйте.
ЦитироватьСуществует ли возможность переключения отображения активных, неподтверждённых сообщений в компоненте "список сообщений" для отдельных групп?
На данный момент вывести в список сообщений (https://simple-scada.com/help/manual/message-viewer.html) активные/неподтверждённые сообщения только из определённой группы нельзя. Постараемся добавить такую возможность в будущих обновлениях.
Возможно подойдет следующая настройка: если проектом управляют несколько операторов, то можно создать несколько групп пользователей (https://simple-scada.com/help/manual/new-user.html) и настроить им видимость необходимых страниц (https://simple-scada.com/help/manual/newusergroup.html?anchor=pagevis) и групп сообщений (https://simple-scada.com/help/manual/newusergroup.html?anchor=mess). Тогда при просмотре групп "Активные сообщения" или "Неподтверждённые", каждая группа пользователей будет видеть активные/неподтверждённые сообщения только из доступных ей групп.
Цитироватьв штате 2 программиста. Могут ли они работать над одним проектом одновременно?
Вести одновременную разработку одного проекта на разных ПК возможности нет. В будущем мы планируем добавить функции импорта/экспорта между проектами – это один из популярных запросов. Но какой-то определенный срок появления такой возможности сейчас назвать сложно.
Здравствуйте. Создал по примеру периодический отчёт с сохранением на диске. Однако при попытке создания директории (Путь формируется конкатенацией корневой папки и наименованием новой) файл сохраняется не в папке, а в корневой директории, и к началу файла приписывается наименование директории (скрины во вложении). Если задавать адрес без использования переменных - тот же результат. Можете что-то сказать по этому поводу?
Здравствуйте.
При указании пути в конце обязательно должен быть символ "\".
Добрый день!
Планируется ли расширение видов графиков? Очень не хватает таймлайнов (например, для отображения состояния оборудования под графиком изменения параметров) и баров (столбики для потребления ресурсов).
Здравствуйте.
Пожелание обязательно учтем и рассмотрим, но в обозримом будущем таких изменений не планируется. Если это требуется для отчетности, то можно использовать систему отчетов (https://simple-scada.com/help/report/index.html) - в ней имеются различные типы диаграмм (https://www.stimulsoft.com/ru/documentation/online/user-manual/report_internals_charts.htm).
Добрый день!
Ситуация следующая. Настраивая видимость галочками тех или иных колонок в настройках проекта (далее пункт "Сообщения", далее пункт "Колонки в меню сообщений"), формируем состав сообщения как для стандартного инструмента отображения сообщений, так и для элемента "Список сообщений". Эти настройки применяются для обоих элементов.
Но если элемент "Список сообщений" по размеру меньше половины экрана получается вообще не информативно. Мы используем шаблон "Система. Оборудование. Текст что произошло". И в списке мы как бы видим набор систем, но что конкретно там произошло мы не видим.
При этом если убрать галочки, то информацию во сколько закончилось событие или кто подтвердил не видно в обоих инструментах.
Вопрос №1. Если галочка не стоит в настройках, то эта информация не пишется в БД?
Предложение №1. Может быть разделить настройки для глобальной системы отображения сообщений и элемента "Список сообщений".
Предложение №2. Ну и как следствие оставить все как есть, но ввести все таки возможность изменения ширины колонок.
Предложение №3. При показе сообщения выдается дата и время. Для анализа дата нужна. Для текущего момента в течении текущего дня достаточно времени. Может быть дополнительно к видимости колонок добавить вид отображения даты и времени ("отображать дату и время" и "отображать только время"). НО при записи в БД пусть пишется все и дата и время, вне зависимости от настроек.
Надеюсь понятно изложил свои мысли.
Жду ответов и предложений!
Добрый день! Имеется предложение/пожелание к функционалу: при выделении нескольких объектов в контекстном меню (Вырезать, Копировать и т.д.) добавить Кнопку формирования перечня всех тегов в выделенных объектах (в идеале с учетом подстановок в шаблонах/скриптах) и возможностью замены тега. При ручном копировании подобного объекта и исправлении тегов бывает что то пропускаешь на объектах скрытых другими объектами. Подобный функционал есть в Intouch. Если добавите будет очень удобно
Здравствуйте.
Цитата: Серега от 26 февраля 2026, 12:46:15Вопрос №1. Если галочка не стоит в настройках, то эта информация не пишется в БД?
Настройки колонок влияют только на отображение. Вся информация всегда пишется в БД.
Цитата: Серега от 26 февраля 2026, 12:46:15Предложение №1. Может быть разделить настройки для глобальной системы отображения сообщений и элемента "Список сообщений".
Возможно добавим отдельные настройки в будущем.
Цитата: vorobev22rus от 03 марта 2026, 09:12:11предложение/пожелание к функционалу: при выделении нескольких объектов в контекстном меню добавить Кнопку формирования перечня всех тегов в выделенных объектах и возможностью замены тега
Планируем добавить подобное в будущих обновлениях.
Здравствуйте.
У меня вопрос по графикам.
Можно ли построить двумерный график на экране SCADA-системы не по времени, а для двух величин?
Мне нужно вывести на экран, как менялось усилие (кгс, ось Y) при растяжении образца (мм, ось X).
Потом в идеале этот график оформить в отчёт.
Спасибо.
Здравствуйте.
К сожалению, средствами скада-системы такой график создать не получится, но его можно создать, используя систему отчетов (https://simple-scada.com/help/report/index.html)(полноценная система отчетов доступна в версии Professional). Пример создания X/Y тренда в отчете см. по ссылке (https://simple-scada.com/help/report/xytrend.html).
Добрый день!
Подскажите, пожалуйста, подгружаются ли архивные тренды и сообщения в Simple-Scada? Необходимо старые данные с проекта отобразить на новом компьютере. Как это можно сделать? База данных - MySQL
Здравствуйте.
Не совсем понятно, что Вы имеете в виду.
1. Если Вы переустановили сервер Simple-Scada на другой ПК и требуется перенести архивные данные с одного ПК на другой, то следуйте инструкции по ссылке (https://simple-scada.com/help/manual/mysql-backup-db.html). Время создания резервной копии и время восстановления из резервной копии напрямую зависит от размера БД и производительности ПК.
2. Если Вы подключаетесь к серверу Simple-Scada (https://simple-scada.com/help/manual/runproject.html) с другого ПК, то удаленный клиент будет получать все данные с сервера.
Если имеется в виду что-то другое, то опишите более подробно, что именно требуется.
Спасибо!
Еще возник вопрос:
Как распределяются адреса при подключении к удаленному серверу по OPC UA? Например, у тега адрес ns=0; i=50123.
Изменится ли адрес при подключении еще одной SCADA-системы с другого АРМа к удаленному OPC UA серверу?
Вопрос исходит из того, что нам необходимо действующий проект на OPC DA скопировать на другой ПК, подключаясь к серверу через OPC UA. Чтобы привязки переменных не слетали, хотим поменять только адрес и тип сервера. Не получится ли так, что при подготовке проекта, адреса поменяются при подключении?
Здравствуйте.
Адреса переменных формируются на UA-сервере. Скада-система на них никак не влияет. Адрес переменной в редакторе (https://simple-scada.com/help/manual/varmain.html) должен соответствовать адресу на UA-сервере.
Добрый день!
Так как сейчас мы можем на отдельной подстранице расположить элемент "Сообщения" и отобразить в нем конкретную группу сообщений может быть есть возможность добавить квитирование отдельных групп сообщений, типа ConfirmGroupMessages(GetClientName, NameGroup). Тогда разные операторы с разным доступом к разным подстраницам будут квитировать только свои сообщения, тем самым не убирая все сообщения из поля видимости.
Как Вы считаете?
Здравствуйте.
Цитироватьможет быть есть возможность добавить квитирование отдельных групп сообщений, типа ConfirmGroupMessages(GetClientName, NameGroup)
Добавление такой возможности не планируется.
ЦитироватьТогда разные операторы с разным доступом к разным подстраницам будут квитировать только свои сообщения, тем самым не убирая все сообщения из поля видимости.
В настройках прав пользователей можно задать видимость (https://simple-scada.com/help/manual/newusergroup.html?anchor=mess) нужных групп сообщений для каждой группы пользователей. Дополнительно можно настроить разрешение на квитирование сообщений (https://simple-scada.com/help/manual/newusergroup.html?anchor=messset). Таким образом, каждая группа пользователей будет видеть и квитировать только свои сообщения.
Добрый день. Планируется ли расширение функционала работы с Max? Команды управления, запросы, вывод графиков и пр.
Здравствуйте.
Будет ли когда-нибудь реализована возможность импорта-экспорта шаблонов из проекта в проект? Когда проект большой, и шаблонов много - не очень удобно стартовать с проекта с шаблонами, удаляя все теги, все вкладки и прочее, уже после формируя новые теги для нового проекта.
Здравствуйте.
ЦитироватьПланируется ли расширение функционала работы с Max? Команды управления, запросы, вывод графиков и пр.
Пожелание обязательно учтем, но добавление таких возможностей не планируется.
ЦитироватьБудет ли когда-нибудь реализована возможность импорта-экспорта шаблонов из проекта в проект?
Добавление функций импорта/экспорта между проектами есть в планах. Но какой-то определенный срок появления такой возможности назвать, к сожалению не можем.
Добрый день. Нужна помощь. Имеется колонка в которой необходимо посчитать удельный расход топлива на 1 ГКАЛ.
Имеется 3 переменных:
(Word)расход газа {Данные.Расход_газа_м3_ч}
(Single)отпущенная тепловая энергия СН {Данные.Отпущ__тепл__энергия_СН * 0.2388}
(Single)отпущенная тепловая энергия ТС {Данные.Отпущ__тепл__энергия_ТС * 0.2388}
Умножение на 0,2388 необходимо для того, чтобы перевести переменную из ГДж в ГКал.
Нужно посчитать удельник, тоесть: расход газа / (отпущенная тепловая энергия ТС + отпущенная тепловая энергия СН)
Так же хотел узнать, будет ли отличаться формула для разных отчетов, по типу часовой/суточный/месячный
Спасибо ;D
Здравствуйте.
ЦитироватьНужно посчитать удельник, тоесть: расход газа / (отпущенная тепловая энергия ТС + отпущенная тепловая энергия СН)
{Данные.Расход_газа_м3_ч / (Данные.Отпущ__тепл__энергия_СН * 0.2388 + Данные.Отпущ__тепл__энергия_ТС * 0.2388)}Если не разберётесь, то пришлите для проверки на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите отчет, который нужно проверить.
ЦитироватьТак же хотел узнать, будет ли отличаться формула для разных отчетов, по типу часовой/суточный/месячный
Отличий не будет.
Привет.
У операторов на компе (на клиенте) стояло неправильное время (больше реального).
В результате графики на трендах немного не доходили до правого конца.
Когда я установил правильное время, то с права исчез зазор.
Операторы возмущены и требуют вернуть зазор для видимости концов линий графиков.
Как мне это сделать?
Я могу установить время на клиенте на час больше (или сдвинуть часовой пояс), тогда будет зазор и минуты будут совпадать...
А есть решение лучше?
Здравствуйте.
ЦитироватьОператоры возмущены и требуют вернуть зазор для видимости концов линий графиков.
Каких-либо настроек "зазора" трендов нет. При просмотре трендов (https://simple-scada.com/help/manual/client-trends-view.html) имеется небольшой отступ от шкал, его хорошо видно на интервалах менее часа. При просмотре трендов с включенной опцией автоматической прокрутки (https://clck.ru/3T5Cf3), тренды автоматически обновляются, концы линий трендов всегда видны и хорошо читаются. Для того чтобы увидеть последние значения, достаточно установить визир в крайнее правое положение.
Чтобы избежать возможных смещений трендов, установите для OPC-сервера настройку "метка времени" = компьютер. Для DA-сервера настройку можно найти по ссылке (https://simple-scada.com/help/manual/opcdanew.html#:~:text=%E2%80%A2-,%D0%9C%D0%B5%D1%82%D0%BA%D0%B0%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8,-%2D%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D1%82%20%D0%B8%D0%B7%20%D0%BA%D0%B0%D0%BA%D0%BE%D0%B3%D0%BE), для UA-сервера по ссылке (https://simple-scada.com/help/manual/uaservparam.html#:~:text=%E2%80%A2-,%D0%9C%D0%B5%D1%82%D0%BA%D0%B0%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8,-%2D%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D1%82%20%D0%B8%D0%B7). В этом случае при архивации, отметки времени будут браться с ПК, что исключит возможные проблемы, когда на OPC-сервере или ПЛК время будет отличаться от установленного на ПК.
ЦитироватьЯ могу установить время на клиенте на час больше
В этом случае на клиенте будет отображаться некорректное время, что может привести к путанице при просмотре архивных трендов, сообщений, отчетов и т.д. К тому же, с включенной опцией автоматической прокрутки (https://clck.ru/3T5Cf3) будет невозможно просматривать тренды с интервалом менее 1 часа.
Цитироватьили сдвинуть часовой пояс
Начиная с версии Simple-Scada 2.6.11.0 (https://clck.ru/3T5FhH), клиенты учитывают смещение времени по UTC при просмотре трендов, сообщений и в компонентах "Расписание". Поэтому, при изменении часового пояса на ПК-клиенте, тренды будут отображаться с учетом смещения.
Добрый день!
В отчетах для трендов не работает логорифмическая шкала. Или как отобразить тренд в логорифмическом виде?
У нас графики выводились в трейсмоде. Там концы трендов можно установить хоть на половине экрана.
Операторы работают на часовом (а некоторые на двухчасовом) интервале и несколько миллиметров с права для них просто не о чем...
Все архивы и события пишутся на сервере с правильным временем и проблем несоответствия нет.
У нас пока нет сервера домена и время не синхронизируется.
Можно задать любое смещение, но я установил часовое смещение времени на клиенте в расчете на будущую синхронизацию за счет пояса.
Графики рисуются до текущего времени, а шкала (в конце пустая) на час больше.
Операторы в восторге. Сила привычки - великая сила... :)
Здравствуйте.
Цитата: Witek13 от 14 апреля 2026, 09:28:13В отчетах для трендов не работает логорифмическая шкала. Или как отобразить тренд в логорифмическом виде?
В Simple-Scada используется система отчетов Stimulsoft Reports (https://www.stimulsoft.com/ru). К сожалению, в данной системе отчетов есть ряд ограничений, связанных с отображением логарифмических шкал в диаграммах, а именно:
1. Логарифмическая шкала работает только в диаграммах с типом "Точечная"(см. скриншот во вложении), для остальных типов включение опции не даст результата.
2. На одной диаграмме нельзя разместить логарифмический тренд и обычный. Все тренды в диаграмме должны быть либо логарифмическими, либо обычными (без смешивания).
3. Работать как логарифмическая может только левая шкала Y. Правая шкала Y может отображаться как логарифмическая, но она не влияет на отображение самого тренда.
Здравствуйте.
В отчётах происходит какая-то магия.
В генераторе отчётов формирую таблицу (просто из прямоугольников), размещаю переменные, ниже график, на котором оси корректно подписаны. Просмотр - всё ОК.
Но если сохраняю как PDF, то табличная часть куда-то улетает (причём зеркально перевёрнуто), графики получаются побитыми.
Скрины во вложении.
Подскажите пожалуйста, в чём может быть проблема?
* Лицензию купили, уже едет.
Здравствуйте.
Цитироватьесли сохраняю как PDF, то табличная часть куда-то улетает
Пришлите для проверки на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите отчет, который нужно проверить. Дополнительно приложите некорректно сформированный отчет в PDF. Если в проекте имеются конфиденциальные данные, то создайте копию проекта, удалите все лишнее, проверьте, что проблема повторяется и пришлите нам полученный проект. Либо создайте новый проект, воспроизведите проблему в нем и пришлите нам для проверки.
Добрый день! Как постоянный пользователь SCADA систем разных производителей в фармацевтическом производстве хотел бы предложить к рассмотрению следующие функции (Возможно они есть в функционале у Simple SCADA, не достаточно изучил):
Из-за жестких требований EuGMP и CFR21 острая проблема авторизации и взаимодействия большего числа сотрудников имеется необходимость:
1) Запроса смены пароля через определенный интервал.
2) Проверка пароля для соответствия требованиям защиты (буква, заглавная, спец знак)
3) Возможность авторизации по RFID метке (личный пропуск сотрудника), даже с WWW терминалов
4) Запись любых изменений (Audit Trail) кто с какой публикации WWW внес изменения, куда зачем, когда. Требуется всплывающее окно где сотрудник пишет причину вмешательства в уставки или процесс.
Прошу простить если это уже есть, я не до конца еще изучил функционал программы.
Здравствуйте.
С доступными настройками прав групп пользователей можно ознакомиться по ссылке (https://simple-scada.com/help/manual/editor-users.html).
ЦитироватьЗапроса смены пароля через определенный интервал.
См. свойство группы пользователей "Срок действия пароля (https://clck.ru/3TG7iv)".
ЦитироватьПроверка пароля для соответствия требованиям защиты (буква, заглавная, спец знак)
См. свойство группы пользователей "Использовать сложный пароль (https://clck.ru/3TG7sr)".
ЦитироватьЗапись любых изменений (Audit Trail) кто с какой публикации WWW внес изменения, куда зачем, когда.
Имеется журнал авторизации пользователей (https://clck.ru/3TGLGo) и журнал действий оператора (https://clck.ru/3TGLFS).
ЦитироватьВозможность авторизации по RFID метке (личный пропуск сотрудника), даже с WWW терминалов
ЦитироватьТребуется всплывающее окно где сотрудник пишет причину вмешательства в уставки или процесс.
Таких возможностей нет. Пожелания обязательно учтем и рассмотрим.
Здравствуйте. Возможно ли сделать обьекты не являющиеся самостоятельными, а ссылками на существующие? Допустим есть объект типа Image, который меняет цвет в зависимости от состояния переменной. Цвет меняю в групповом скрипте. Теперь этот обьет я хочу использовать на другой странице. -> меняется имя обьекта и надо делать изменение в скрипте. Обьектов много, изменений много -> ручная правка = ошибки. Либо уходить от групповых скриптов, подвязывать переменную к обьекту и цвет менять по событию OnChange. Но тогда будет множество маленьких скриптиков. И то и то решение мне не нравится. Идеальным и удобным решением было бы внедрение ссылок на обьекты. Т.е. скопированный обьект будет зеркальной копией обьекта (ссылкой). Скопировал, вставил ссылку и все.
Здравствуйте.
ЦитироватьДопустим есть объект типа Image, который меняет цвет в зависимости от состояния переменной. Цвет меняю в групповом скрипте. Теперь этот обьет я хочу использовать на другой странице. -> меняется имя обьекта и надо делать изменение в скрипте. Обьектов много, изменений много -> ручная правка = ошибки. Либо уходить от групповых скриптов, подвязывать переменную к обьекту и цвет менять по событию OnChange. Но тогда будет множество маленьких скриптиков. И то и то решение мне не нравится.
Для описанной задачи, нужно привязать требуемую переменную к объекту и использовать
один универсальный скрипт (https://simple-scada.com/help/script/script-types.html) - см. примеры №2 и 4 по ссылке (https://simple-scada.com/help/script/colorchange.html). Тогда не потребуется писать отдельный скрипт для каждого объекта. Также, для создания однотипных объектов, окон, страниц и сообщений в Simple-Scada можно использовать систему шаблонов (https://simple-scada.com/help/manual/template.html).
Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта и укажите изображения и скрипты, о которых идет речь.
Добрый день.
Вопрос по спискам и переменным, привязанным к ним в окне, отмеченном "использовать как форму ввода", а именно:
Действия:
1) создал список;
2) создал переменную типа integer;
3) указал эту переменную в графе "переменная" в свойствах списка;
4) создал поле, к которому также привязал эту переменную.
Результат: При выборе строк из 'списка' вижу значения в 'поле', соответствующие номеру строки. Все хорошо. Но если окно, в котором проделывается этот тест отметить "использовать как форму ввода", то значение в 'поле' не передается, т.е. переменная не меняется, событие OnDataChange в 'списке' не выполняется соотв.
Вопрос: можно ли каким то образом считать изменения (получить значение/номер выбранной строки) списка внутри формы до отправки формы (в моем случае для доступности соседнего поля ввода текста внутри формы)?
На форуме и мануале, к сожалению, не нашел ответа, возможно плохо искал.
Здравствуйте.
Цитата: Дмитрий_Д от 07 мая 2026, 16:54:15Вопрос: можно ли каким то образом считать изменения (получить значение/номер выбранной строки) списка внутри формы до отправки формы
Такой возможности нет. Формы ввода (https://simple-scada.com/help/manual/inputforms.html) используются для одновременной работы нескольких пользователей, т.е. чтобы каждый пользователь мог ввести свои данные и не мешать другим. В формах ввода не выполняются изменения переменных через компоненты, изменения свойств объектов и т.п. Данные из формы ввода передаются на сервер только после заполнения и отправки формы.
Использую v2.7.1
В шаблоне сообщений задается текст аварии или предупреждения (активные, неподтвержденные),
а так же простое сообщение (не активное, не неподтвержденное для контроля) когда параметр возвращается в норму.
При перезапуске проекта получается куча сообщений в списке о том, что все в норме.
Нельзя ли их как-то блокировать ?
Здравствуйте.
Чтобы сообщения не выдавались при перезапусках проекта, в настройках Options.exe (https://simple-scada.com/help/manual/settings.html) на вкладке "Simple-Scada Server" нужно отключить опцию "Показывать сообщения по первому изменению (https://simple-scada.com/help/manual/settings-simple-scada-server.html?anchor=other)". После изменения настроек не забудьте перезапустить сервер Simple-Scada (https://simple-scada.com/help/manual/server.html?anchor=stopserv).
Если дело не в этом, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите сообщения, которые нужно проверить. Если в проекте имеются конфиденциальные данные, то создайте копию проекта, удалите все лишнее, проверьте, что проблема повторяется и пришлите нам полученный проект. Либо создайте новый проект, воспроизведите проблему в нем и пришлите нам для проверки.
здравствуйте! есть ли возможность писать комментарии к аварии при квитировании аварий в окне просмотра сообщений и дальнейшем отображении этих комментариев?
Здравствуйте.
Цитироватьесть ли возможность писать комментарии к аварии при квитировании аварий
Такой возможности нет.
Добрый день!
Можно ли сделать всплывающее окно "Изменить переменную" или более широким или дать возможность пользователю его расширить за угол до нужных размеров пользователю? Эта просьба касается только вкладки "Основные". А то есть некоторое неудобство при редактировании названия или адреса переменной.
Здравствуйте.
Пожелание обязательно учтем и рассмотрим.
я еще не опытный пользователь, подскажите - есть ли возможность или функция "скопировать формат"? или "групповое редактирование"?
Грубо говоря - есть 10 однотипных полей, и возникло желание их "перекрасить", через стандартный интерфейс тыкать в несколько полей - это очень долго и непродуктивно.
и еще - есть функция "Распределить по горизонтали", работает. Но расставляет объекты на одинаковом расстоянии, считая по середине объектов
Но результат работы хороший только при равноширинных объектах. А если объекты разной ширины - получается плохо. интервалы между объектами получаются разными и выглядит это некрасиво, приходится расставлять в ручном режиме. Хотелось бы (по возможности) увидеть функционал типа "равномерные интервалы между объектами"
и еще момент.
Редактор переменных. работает и групповое редактирование и поиск, и сортировка.
не хватает только возможности включить фильтр по найденым значениям. чтобы отображались ТОЛЬКО попадающие под условия поиска, те которые выделяются цветом.
Здравствуйте.
Цитироватья еще не опытный пользователь, подскажите - есть ли возможность или функция "скопировать формат"? или "групповое редактирование"?
Грубо говоря - есть 10 однотипных полей, и возникло желание их "перекрасить", через стандартный интерфейс тыкать в несколько полей - это очень долго и непродуктивно.
1. Поддерживается групповое редактирование свойств однотипных объектов и свойств переменных. Для этого выделите нужные объекты или переменные – теперь при изменении свойств они будут применяться для всех выделенных объектов. Чтобы выделить несколько объектов, можно зажать клавишу "Shift" и кликать ЛКМ по нужным объектам. Ознакомиться с другими горячими клавишами можно в руководстве по ссылке (https://simple-scada.com/help/manual/hot-keys.html).
2. Для создания однотипных объектов, окон, страниц и сообщений в Simple-Scada можно использовать систему шаблонов (https://simple-scada.com/help/manual/template.html). Для работы с шаблонами необходимо использовать однотипные имена переменных, тогда для создания шаблонного объекта можно будет указать, например, только одну цифру. Для быстрого редактирования свойств множества переменных можно использовать групповое редактирование (https://clck.ru/3MBiAs) или возможности импорта (https://simple-scada.com/help/manual/variable-import-csv.html) / экспорта (https://simple-scada.com/help/manual/export-var.html) переменных в файл Excel. Рекомендуем изучить статьи, которые относятся к работе с шаблонами (https://simple-scada.com/help/manual/template.html) – это значительно упростит разработку проекта и поиск допущенных ошибок.
ЦитироватьХотелось бы (по возможности) увидеть функционал типа "равномерные интервалы между объектами"
Цитироватьне хватает только возможности включить фильтр по найденым значениям. чтобы отображались ТОЛЬКО попадающие под условия поиска, те которые выделяются цветом.
Пожелания обязательно учтем и рассмотрим.
Для быстрого редактирования свойств множества переменных также можно использовать импорт (https://simple-scada.com/help/manual/variable-import-csv.html) / экспорт (https://simple-scada.com/help/manual/export-var.html) переменных в файл Excel. В Excel можно сортировать данные по заданным условиям. Но следует учитывать, что через импорт/экспорт из файла не получится изменить имя переменной, т.к. при импорте имя используется как ключевой параметр.
Пожелание:
при запуске клиента SCADA выводить где либо текущую версию клиента, а также текущую версию сервера SCADA куда клиент будет подключаться. Например напротив имени найденного проекта на сервере подключения. Чтобы можно было сравнить версии (узнать текущую версию сервера SCADA) не заходя на саму Windows машину где сервер SCADA и не входя в проект (подключаясь к найденному) клиентом
Здравствуйте!
Делаю проект с активным использованием шаблонных окон и наткнулся на пару странностей и расхождений с документацией. Хочу поделиться наблюдениями.
1. Мерцание элементов в OnShow и ограничение OnInit
Хотел настроить динамическое скрытие полей в шаблонном окне (в зависимости от заголовка Title). Изначально пошел в OnInit, но выяснил, что для этой задачи он не подходит: в момент OnInit проверка (Sender is TM_Window) не проходит, да и свойства самого экземпляра еще толком не подтянулись. Пришлось перенести логику в OnShow. Всё заработало, но вылезла эстетическая проблема: окно сначала появляется на клиенте в обычном виде из редактора, и только потом срабатывает скрипт. Из-за этого скрываемые элементы успевают «мигнуть» на 1-2 кадра при открытии. Вот к какому коду в OnShow в итоге пришлось прийти:
var
idx : Integer;
SaveButton : TM_Button;
begin
if (Sender is TM_Window) then
begin
with (Sender as TM_Window) do
begin
if (Title <> 'Настройки ВКТ')then
for idx := 0 to 2 do
(GetTemplateObject('Flow' + IntToStr(idx)) as TM_Control).Visible := True
end;
end;
end.
Было бы здорово иметь какое-то событие перед самой отрисовкой экземпляра на клиенте (что-то вроде OnBeforeShow или OnTemplateInit), либо дать возможность полноценно работать с контекстом конкретного клиента еще на этапе OnInit, чтобы избежать мерцания UI.
2. Небольшой пропуск в справке по TM_TemplateWindow
Искал в документации класс для работы с шаблонными окнами, но в разделе Свойства объектов (https://simple-scada.com/help/script/object-properties.html) про TM_TemplateWindow ничего нет. Через (Sender is TM_Window) подсмотрел, что во время исполнения просто создаётся обычный TM_Window. Если добавить эту мелкую деталь в справку (что шаблоны приводятся к TM_Window), это сэкономит кучу времени тем, кто пытается приводить типы через as TM_TemplateWindow.
3. Опечатка в документации: TM_ComboBox.ItemIndex
На странице справки по TM_ComboBox.ItemIndex (https://simple-scada.com/help/script/cmbitemindex.html) написано, что свойство работает только на чтение. Решил поэкспериментировать и обнаружил, что запись туда отлично работает - выбранный пункт без проблем переключается из скрипта. Надеюсь, что это просто неточность в описании, а не «фича», которую закроют в следующих обновлениях.
4. Баг отображения значений на Тренде в Веб-клиенте (пропадают нули при 10, 100 и т.д.)
Наткнулся на баг, который воспроизводится строго на Web-клиенте (на десктопе всё отображается корректно, скриншоты приложил ниже). Если переменная на тренде принимает значение ровно 10 или 100, то в таблице значений под графиком на Веб-клиенте отображается цифра 1 - как будто просто отбрасываются нули. При этом сама линия тренда отрисовывается на правильном уровне. Как только значение немного меняется (например, опускается до 99.9 или 9.9), подпись под графиком сразу приходит в норму. Похоже на ошибку форматирования числа или маски вывода именно в веб-модуле при работе с круглыми десятками и сотнями.
Здравствуйте.
Цитата: Pavel от 14 августа 2026, 14:31:49... в момент OnInit проверка (Sender is TM_Window) не проходит, да и свойства самого экземпляра еще толком не подтянулись.
К моменту события OnInit шаблонного окна все его объекты уже определены. Проблема состоит в том, что ссылка на экземпляр не приводится к типу TM_Window (возможно будет обновление-исправление). Однако работает ссылка как на владельца любого объекта окна.
var
idx : Integer;
SaveButton : TM_Button;
begin
if (TM_Window(GetTemplateObject('Flow1').GetOwner).Title <> 'Настройки ВКТ')then
for idx := 0 to 2 do
GetTemplateObject('Flow' + IntToStr(idx)).Visible := True;
end.Цитировать...эстетическая проблема...
эстетическая проблема должна исчезнуть после первого открытия окна, т.к. конфигурация объектов уже установилась.
Здравствуйте.
ЦитироватьВот к какому коду в OnShow в итоге пришлось прийти
Не рекомендуем использовать привязку к строковым значениям (к Вашем случае к заголовку окна). Вместо этого назначьте объектам в шаблонном окне (которым нужно менять видимость) на свойство "Тег" подстановку "%Видимость%". Затем указывайте в эту подстановку значение 1 (чтобы показать объект) или 0 (чтобы скрыть). Тогда скрипт OnInit шаблонного окна будет максимально простым и на этапе разработки будет сразу понятно что эта подстановка отвечает за видимость. Вот скрипт OnInit шаблонного окна:
var
I: Integer;
aFlow: TM_Object;
begin
// меняем видимость объектов Flow0, Flow1, Flow2
// в зависимости от значения в их Теге
for I := 0 to 2 do
begin
aFlow := GetTemplateObject('Flow' + IntToStr(I));
aFlow.Visible := aFlow.Tag = 1;
end;
end.Если Вы решили любой ценой привязываться к названию окна, то скрипт OnInit должен быть таким:
var
I: Integer;
aFlow: TM_Object;
aOwnerWindow: TM_Window;
begin
aFlow := GetTemplateObject('Flow0');
if TM_Window(aFlow.GetOwner).Title <> 'Настройки ВКТ' then
for I := 0 to 2 do
GetTemplateObject('Flow' + IntToStr(I)).Visible := True;
end.Цитироватьно в разделе Свойства объектов про TM_TemplateWindow ничего нет.
Его нет, т.к. шаблоны не существуют во время работы проекта, в этом суть шаблонов. Шаблон - это не реальный экземпляр окна, а просто схема на основе которой может быть создано множество реальных окон. То же касается шаблонов сообщений. Поэтому в скриптах нет никакого смысла пытаться работать с TM_TemplateWindow.
ЦитироватьНа странице справки по TM_ComboBox.ItemIndex написано, что свойство работает только на чтение.
Оставили возможность записи только для совместимости со старыми версиями (в будущем возможно заблокируем запись). Каждая строка раскрывающегося списка связана со своим значением. Для изменения значения используйте свойство Value, например: "ComboBox1.Value := 1;"
ЦитироватьБаг отображения значений на Тренде в Веб-клиенте (пропадают нули при 10, 100 и т.д.)
Спасибо за информацию, проверим. А какой "Формат" задан в настройках этих архивируемых переменных? Стандартный "0.##"?
ЦитироватьА какой "Формат" задан в настройках этих архивируемых переменных? Стандартный "0.##"?
Задан формат "0.#"
Протестировали с несколькими проектами, проблема с форматом не воспроизводится. Вы используете последнюю версию 2.7.5.1, или одну из старых версий? Если используется последняя версия скады, то просьба выслать на support@simple-scada.com проект в котором повторяется проблема.
Цитата: Simple-Scada от 17 августа 2026, 15:29:34Вы используете последнюю версию 2.7.5.1, или одну из старых версий?
Да, используется именно последняя версия 2.7.5.1.
Проблема воспроизводится при следующем сочетании настроек:
- Переменная имеет тип Single;
- В настройках переменной задан формат 0.#;
- В переменную записывается значение 9.9823.
В результате на десктопном клиенте под трендом корректно отображается 10, а на веб-клиенте подпись округляется до 1 (при этом сама линия графика отрисовывается на уровне 10).
Спасибо за уточнение, причину выявили, в ближайшем будущем опубликуем обновление с исправлением.
UPD: исправление включено в обновление 2.7.6.0
Коллеги, добрый день.
В процессе разработки и сопровождения проектов на Simple-SCADA у нас накопился ряд предложений и замечаний по работе со средой. Большая часть из них появилась непосредственно в ходе практической эксплуатации и разработки достаточно крупных проектов.
Понимаем, что часть описанных возможностей, возможно, уже реализуется другими средствами либо имеет определённые технические ограничения. Поэтому будем благодарны как за рассмотрение предложений, так и за рекомендации по существующим способам решения этих задач.
Версия Simple-SCADA, которую мы используем сейчас 2.7.3.1
Наши предложения:
1. Определение текущей открытой страницы на клиенте
Добавить механизм определения, какая страница сейчас открыта на конкретном клиенте.
Такая информация необходима для построения более гибкой логики интерфейса, уведомлений и различных клиентских сценариев.
2. Экспорт и импорт элементов между проектами
Добавить возможность экспорта и импорта скриптов, шаблонов и окон между проектами.
Это значительно упростит повторное использование уже готовых наработок, обмен решениями между разработчиками и сопровождение типовых проектов.
3. Настройка цветов сообщений
Добавить возможность настройки цветов для сообщений.
Для аварий и предупреждений стандартные цвета понятны и привычны, однако для обычных информационных сообщений хотелось бы иметь возможность задавать собственные цвета в зависимости от назначения и важности сообщения.
4. Доработка цветовых схем
Хотелось бы расширить возможности цветовых схем.
При использовании схем, отличных от серой, некоторые вспомогательные и системные окна остаются не полностью настраиваемыми. Особенно это заметно в окне сообщений, главном окне трендов и различных диалоговых окнах.
Было бы удобно, если бы выбранная цветовая схема применялась более полно ко всем элементам клиента.
5. Скругление углов объектов
Добавить возможность скругления углов у объектов, в первую очередь у таблиц, полей и прямоугольных фигур.
Это позволило бы создавать более современные и визуально привлекательные интерфейсы средствами самой Simple-SCADA.
6. Дополнительные возможности для линий и кривых
Добавить для объекта «Линия» свойство угла поворота.
Также было бы полезно добавить отдельный объект «Кривая» для построения более гибкой графики на мнемосхемах и создания сложных схем без необходимости использования внешней графики.
7. Функция «Найти и заменить» в редакторе скриптов
Доработать редактор скриптов, добавив функцию «Найти и заменить».
При работе с большими проектами часто возникает необходимость массового переименования переменных, объектов и других идентификаторов. Наличие штатной функции поиска и замены существенно упростило бы сопровождение проектов.
8. Стабильная символьная адресация переменных
Добавить полноценную символьную адресацию переменных как стабильный пользовательский идентификатор, не зависящий от внутреннего ID и отображаемого имени переменной.
Сейчас система позволяет просматривать места использования переменной, однако при переименовании переменной в редакторе явные обращения к ней в скриптах не обновляются. Из-за этого после переименования проект может перестать компилироваться, а разработчику необходимо вручную искать и изменять обращения к переменной.
Отдельно возникают вопросы при импорте переменных из XLS/XLSX/CSV.
Если в файле экспорта у существующей переменной остаётся прежний ID, а изменяется только имя переменной, логично ожидать обновление имени существующей переменной. Однако такая переменная может импортироваться как новая и получить новый ID, при этом штатно изменить или восстановить ID переменной невозможно.
Из-за этого сопровождение и развитие крупных проектов становится более рискованным, чем могло бы быть при наличии стабильной символьной адресации либо механизма безопасного переименования переменных с сохранением существующих связей.
9. Группировка объектов в редакторе
Добавить возможность группировать и разгруппировывать объекты в редакторе.
При создании сложных мнемосхем часто необходимо перемещать, выравнивать, копировать и редактировать несколько объектов как единый элемент. Штатная группировка объектов заметно упростила бы разработку интерфейсов.
10. Настройка объекта «Список сообщений»
Добавить дополнительные возможности редактирования объекта «Список сообщений».
В частности, хотелось бы иметь возможность:
изменять ширину колонок;
скрывать и показывать отдельные колонки;
при возможности — изменять порядок расположения колонок.
Это позволило бы более гибко адаптировать список сообщений под конкретный проект и разрешение экрана.
11. Отображение трендов за длительный период
Добавить возможность отображать графики на странице сразу за длительный период времени, например за месяц.
При анализе технологических процессов иногда необходимо видеть общую картину за несколько недель или месяц без последовательного переключения между короткими временными диапазонами.
Если отображение большого количества архивных данных ограничено производительностью, возможно, для таких диапазонов можно использовать прореживание или агрегацию отображаемых значений.
12. Дополнительное поле для описания сообщений
Добавить для сообщений отдельное текстовое поле, например «Описание».
Если описание заполнено, хотелось бы отображать его при выборе аварийного или предупредительного сообщения вместе с уже существующей информацией:
Объект:
Время:
Завершено:
Подтверждено:
Длительность:
Пользователь:
Описание:
В таком поле можно было бы размещать дополнительную информацию о сообщении, возможной причине возникновения события либо рекомендуемых действиях оператора.
Будем благодарны за обратную связь по этим предложениям. Возможно, часть описанных задач уже можно решить существующими средствами Simple-SCADA - в таком случае также было бы интересно узнать рекомендуемый вариант реализации.
Здравствуйте.
Спасибо за список предложений, обязательно учтем и рассмотрим. Ниже комментарии по некоторым пунктам.
ЦитироватьФункция «Найти и заменить» в редакторе скриптов
Такой функционал уже имеется – ссылка (https://clck.ru/3VLh4q). Переключать интерфейс "поиска и замены" можно через меню "Действия -> Найти / Заменить" или используя сочетание клавиш (https://simple-scada.com/help/manual/hkscripteditor.html) "Ctrl + Н" и "Ctrl + F".
ЦитироватьОтдельно возникают вопросы при импорте переменных из XLS/XLSX/CSV. Если в файле экспорта у существующей переменной остаётся прежний ID, а изменяется только имя переменной, логично ожидать обновление имени существующей переменной. Однако такая переменная может импортироваться как новая и получить новый ID, при этом штатно изменить или восстановить ID переменной невозможно.
Через импорт/экспорт из файла нельзя изменить имя переменной, т.к. при импорте имя используется как ключевой параметр. Если имя не совпадает ни с одной из существующих переменных, то будет создана новая переменная с новым ID. Для массового изменения имен переменных используйте групповое переименование (https://simple-scada.com/help/manual/bulk-renaming.html).
ЦитироватьГруппировка объектов в редакторе
Такой функционал уже имеется – см. меню "Действия" (https://clck.ru/3VLhuX). Также, для создания однотипных объектов можно использовать систему шаблонов (https://simple-scada.com/help/manual/template.html).
ЦитироватьНастройка объекта «Список сообщений»
Внешний вид компонента "Список сообщений" зависит от выбранной в настройках БД (https://simple-scada.com/help/manual/dbset.html) системы архивации. При выборе системы архивации v2 (https://simple-scada.com/help/manual/archsysv2.html) компонент повторяет ту же структуру колонок, которая задана в настройках проекта (https://simple-scada.com/help/manual/messet.html?anchor=messcol) для меню сообщений. Каких-либо изменений пока не планируется.
ЦитироватьОтображение трендов за длительный период
Для десктоп-клиента (https://simple-scada.com/help/manual/client.html) в меню трендов (https://simple-scada.com/help/manual/client-trends-view.html) можно задать любой интервал времени просмотра трендов – см. кнопку "Интервал времени просмотра (https://clck.ru/3VLjcQ)". Для web-клиента (https://simple-scada.com/help/manual/web-client.html) интервал просмотра ограничен 1 годом.
На мнемосхемах сейчас можно использовать только компонент "Временные тренды (https://simple-scada.com/help/manual/time-trends.html)" ограниченный 1 часом. В будущем мы планируем добавить новый компонент "Архивные тренды", который позволит выводить тренды на мнемосхему с функционалом, аналогичным просмотру архивных трендов (https://simple-scada.com/help/manual/client-trends-view.html). Но когда появится такой компонент, пока сказать сложно.
Добрый день. Который год сталкиваемся с проблемой, которую никак не можем решить.
Есть ряд объектов, которые летом не эксплуатируются, и их могут полностью обесточить. Соответственно опрос OPC-серверами заканчивается массовыми ошибками и существует два варианта, либо ОРС-сервер виснет, либо SimpleScada, что приходится завершать процесс через диспетчер задач. Сейчас выкручиваемся только так: удаляем все тэги неактивных объектов, а по наступлению отопительного сезона загружаем полную версию проекта.
Собственно вопрос, можно ли добавить функционал по типу одной кнопки, чтобы скада не проводила опрос группы тэгов? Или уже есть какой-то встроенный функционал для этого?
Здравствуйте.
1. В меню OPC-серверов (https://simple-scada.com/help/manual/opc-servers-set.html) можно отключить целиком OPC-сервер.
2. Создать отдельные конфигурации для OPC-сервера - с полным набором переменных и с удаленными из конфигурации отключенными ПЛК/устройствами. Далее в зависимости от ситуации, загружать необходимую конфигурацию. Тогда в конфигурации OPC-сервера не будет отключенных ПЛК/устройств и он будет работать стабильно.
Каких-либо других способов нет.
Предложения по развитию функционала Simple SCADA
Здравствуйте.
Хотелось бы поднять вопрос не об отдельных небольших улучшениях, а о фундаментальном функционале Simple SCADA, которого сейчас не хватает для построения более крупных, гибких и сопровождаемых проектов. При работе с системой возникает ощущение, что многие возможности ориентированы прежде всего на создание конкретного проекта в рамках уже существующего функционала, тогда как для серьёзной долгосрочной разработки хотелось бы видеть больше возможностей для повторного использования компонентов, расширения системы, автоматизации разработки и работы с данными. Ниже перечислю основные функции, которых, на мой взгляд, сейчас не хватает.
1. Единая библиотека для всех проектов
Сейчас отсутствует полноценная возможность иметь одну общую библиотеку компонентов/шаблонов, доступную сразу для всех проектов Simple SCADA. Например, если разработчик создал собственный набор:
- шаблонов;
- групп;
- графических элементов;
- элементов управления;
- стандартных компонентов интерфейса;
- собственных визуальных решений,
, то хотелось бы иметь возможность сохранить их в общей библиотеке и использовать в любом проекте. Зачем это необходимо: при наличии нескольких проектов приходится фактически поддерживать одинаковые элементы отдельно в каждом проекте. Общая библиотека позволила бы:
- повторно использовать готовые компоненты;
- централизованно обновлять их;
- поддерживать единый стандарт оформления;
- значительно ускорить разработку новых проектов;
- уменьшить количество дублирования.
Особенно актуально это становится для интеграторов и разработчиков, которые работают одновременно с несколькими SCADA-проектами.
2. Полноценный отладчик
Одним из наиболее заметных ограничений является отсутствие полноценного debugger/отладчика. При разработке сложной логики приходится фактически отлаживать систему «вживую», что значительно усложняет поиск ошибок.
Было бы полезно иметь хотя бы базовые возможности:
- точки останова;
- пошаговое выполнение;
- просмотр значения переменных;
- просмотр состояния объектов;
- просмотр стека вызовов;
- выполнение кода по шагам;
- логирование;
- возможность остановить выполнение в определённой точке;
- просмотр причины возникновения ошибки.
Для разработчика это существенно упростило бы создание и поддержку сложных проектов.
3. Динамическое изменение изображения/анимации во время работы
Сейчас хотелось бы иметь возможность не просто проигрывать кадры одной анимации, а динамически выбирать различные изображения или анимации в зависимости от значения переменной.
Например: есть два состояния оборудования:
- насос работает;
- насос остановлен.
Для каждого состояния используется отдельная анимация. В зависимости от значения переменной SCADA должна иметь возможность переключаться между этими анимациями:
Variable = 0 → Animation A
Variable = 1 → Animation B
При этом хотелось бы иметь возможность использовать не только два состояния, но и несколько вариантов. Это позволило бы создавать гораздо более информативную визуализацию оборудования без необходимости создавать большое количество отдельных объектов.
4. Изменение размера и угла шаблонов и групп
Хотелось бы иметь возможность изменять:
- ширину;
- высоту;
- масштаб;
- угол поворота;
- положение
для шаблонов и групп. Особенно полезно это было бы для универсальных компонентов. Например, один шаблон можно было бы использовать для оборудования разных размеров или ориентации, не создавая отдельную версию каждого элемента. Также это значительно расширило бы возможности создания динамических интерфейсов.
5. Кастомное наследование от базовых классов TM
Хотелось бы получить возможность создавать собственные классы/шаблоны на основе существующих базовых классов TM. Например: "BaseObject → Pump → CustomPump → ProjectPump", где каждый последующий уровень наследует функциональность предыдущего и может её расширять. Это позволило бы создавать собственную архитектуру компонентов внутри проекта. Например, разработчик мог бы создать базовый шаблон насоса, определить в нём:
- стандартный внешний вид;
- основные свойства;
- обработку состояний;
- анимации;
- стандартные элементы управления;
, а затем на его основе создавать специализированные варианты. Это особенно полезно при разработке крупных проектов, где один и тот же тип оборудования используется десятки или сотни раз.
6. Экспорт текущих данных в пользовательском формате
Хотелось бы иметь возможность экспортировать все необходимые текущие данные из SCADA в пользовательском/кастомном формате для дальнейшей обработки сторонними инструментами. Речь не только об обычном экспорте исторических данных.
Интересна возможность получать структурированные данные, например:
- значения переменных;
- состояния оборудования;
- аварии;
- события;
- временные метки;
- параметры объектов;
- пользовательские данные;
- другие доступные данные SCADA.
И экспортировать их, например, в JSON / CSV / XML / другой пользовательский формат / API.
Отдельно хотелось бы отметить перспективу работы с ИИ. Такие данные можно было бы использовать для:
- анализа работы оборудования;
- поиска аномалий;
- прогнозирования неисправностей;
- формирования отчётов;
- анализа производительности;
- работы внешних AI/ML-систем.
Например, SCADA могла бы предоставлять структурированный набор данных внешнему аналитическому модулю, который уже выполнял бы их обработку. Поэтому наличие удобного API или механизма кастомного экспорта данных кажется особенно перспективным направлением развития.
7. Минимальные возможности кастомизации объектов
Сейчас разработчик достаточно сильно ограничен существующим набором возможностей объектов. Хотелось бы иметь значительно больше возможностей для адаптации стандартных объектов под конкретные задачи.
Например:
- добавление собственных свойств;
- создание собственных событий;
- изменение поведения объекта;
- добавление пользовательской логики;
- создание собственных состояний;
- изменение визуального представления;
- добавление дополнительных параметров;
- расширение стандартных объектов.
Иными словами, хотелось бы иметь возможность не только использовать готовые объекты Simple SCADA, но и создавать на их основе собственные специализированные компоненты.
8. Массовая вставка шаблонов
Отсутствует удобная возможность массовой вставки шаблонов. При работе с большим проектом может потребоваться разместить десятки или сотни одинаковых либо однотипных элементов. Вручную добавлять каждый шаблон становится крайне неудобно и значительно увеличивает время разработки.
Хотелось бы иметь возможность:
- выбрать несколько шаблонов и добавить их одновременно;
- массово вставлять шаблоны на страницу;
- создавать несколько экземпляров одного шаблона;
- задавать параметры при массовой вставке;
- по возможности автоматически связывать экземпляры с соответствующими переменными.
В перспективе было бы особенно полезно иметь возможность создавать элементы из таблицы или списка.
Например:
№ Тип Имя Переменная
- ----- ------- ----------
1 Насос Насос 1 Pump_01
2 Насос Насос 2 Pump_02
3 Насос Насос 3 Pump_03
И на основании этих данных автоматически создавать необходимые экземпляры шаблонов. Это могло бы существенно ускорить создание больших SCADA-проектов.
9. Возможность самостоятельно разрабатывать и расширять функционал
Один из наиболее важных вопросов - возможность расширения Simple SCADA самим разработчиком. Сейчас при отсутствии определённой функции пользователь в значительной степени зависит от того, будет ли эта функция когда-либо реализована разработчиками Simple SCADA. Хотелось бы иметь официальный механизм расширения системы.
Например:
- SDK;
- API;
- систему плагинов;
- пользовательские модули;
- пользовательские компоненты;
- возможность создавать собственные элементы интерфейса;
- возможность расширять существующие объекты;
- возможность добавлять собственные свойства и методы;
- возможность взаимодействовать с API Simple SCADA из внешних приложений.
В идеале хотелось бы иметь архитектуру, при которой разработчик может самостоятельно решить определённую задачу, даже если соответствующего функционала пока нет в ядре Simple SCADA. Это особенно важно для нестандартных промышленных задач, поскольку невозможно заранее реализовать абсолютно все возможные сценарии использования SCADA.
10. Более гибкая работа со шрифтами
В текущем функционале также хотелось бы видеть более широкие возможности настройки текста. В частности, отсутствует возможность:
- выбирать различные шрифты;
- задавать толщину шрифта;
- использовать различные начертания;
- более гибко настраивать текстовые элементы.
Например, хотелось бы иметь возможность использовать:
- Light;
- Regular;
- Medium;
- SemiBold;
- Bold;
- другие доступные начертания.
Также желательно иметь возможность выбирать сам шрифт для конкретного объекта или группы объектов. Это кажется небольшой функцией, однако для современных SCADA-интерфейсов типографика достаточно сильно влияет на читаемость и визуальное восприятие интерфейса. Особенно это актуально при создании больших мнемосхем, операторских панелей и современных HMI-интерфейсов.
Общая проблема
Если рассматривать все перечисленные функции вместе, то они относятся не столько к отдельным возможностям интерфейса, сколько к вопросу расширяемости и масштабируемости Simple SCADA.Сейчас разработчик в значительной степени работает внутри возможностей, которые заранее предусмотрены разработчиками системы. При появлении нестандартной задачи часто приходится искать обходные решения вместо того, чтобы расширить существующий функционал самостоятельно.
На мой взгляд, особенно перспективными направлениями развития могли бы стать:
Общая библиотека → Шаблоны → Наследование → Кастомные объекты → API/SDK → Плагины → Отладчик → Расширенная работа с данными. Это позволило бы превратить Simple SCADA не просто в набор готовых инструментов, а в более открытую платформу, которую разработчики могли бы адаптировать под конкретные промышленные задачи.
Что хотелось бы узнать от администрации
Хотелось бы получить не просто ответ «данная функция рассматривается», а более конкретную информацию.
По каждому из перечисленных пунктов хотелось бы понимать:
№ Функция Статус Планируется Приоритет Ориентировочные сроки
-- ----------------------------------------------- ------ ----------- --------- ---------------------
1 Общая библиотека для всех проектов ? ? ? ?
2 Полноценный отладчик ? ? ? ?
3 Динамическая смена изображений/анимаций ? ? ? ?
4 Изменение размера и угла шаблонов/групп ? ? ? ?
5 Кастомное наследование от базовых классов TM ? ? ? ?
6 Расширенный экспорт данных/API ? ? ? ?
7 Расширенная кастомизация объектов ? ? ? ?
8 Массовая вставка шаблонов ? ? ? ?
9 SDK/API/плагины для самостоятельного расширения ? ? ? ?
10 Выбор шрифта и толщины начертания ? ? ? ?
Также хотелось бы понимать:
- что из этого уже находится в разработке;
- что находится в планах;
- что находится только на стадии обсуждения/исследования;
- что не планируется;
- какие функции имеют высокий приоритет;
- какие технические ограничения препятствуют их реализации.
Почему важен roadmap
Также хотелось бы предложить администрации рассмотреть возможность создания публичного roadmap развития Simple SCADA. Не обязательно указывать точные даты выхода каждой функции. Даже информация в формате "Исследуется → Запланировано → В разработке → Тестирование → Выпущено", уже позволила бы пользователям значительно лучше понимать направление развития продукта. Особенно важно это для пользователей, которые строят на Simple SCADA долгосрочные проекты и принимают решение, насколько система подходит им для дальнейшего развития. Хотелось бы понимать не только, какие небольшие улучшения появляются в очередном обновлении, но и какие фундаментальные возможности планируется добавить в систему в перспективе года, двух и более лет.
Также хотелось бы видеть не только список будущих функций, но и общую концепцию развития платформы:
- будет ли развиваться система расширений;
- появится ли полноценный SDK/API;
- будет ли улучшаться работа с шаблонами;
- планируется ли развитие объектной модели;
- будет ли расширяться работа с данными;
- появится ли полноценная среда разработки и отладки;
- насколько в дальнейшем пользователь сможет самостоятельно расширять возможности Simple SCADA.
Сейчас некоторые функции, о которых пользователи ранее уже видели сообщения как о находящихся в разработке, спустя 2–3 года всё ещё отсутствуют.
Поэтому хотелось бы получать не просто формальные ответы вроде «функция рассматривается», а информацию, которая действительно позволяет понять, куда и в каком направлении развивается Simple SCADA.
Полагаю, что такой roadmap был бы полезен не только текущим пользователям, но и самой администрации, поскольку позволил бы пользователям понимать стратегию развития продукта и планировать свои проекты на несколько лет вперёд.
Заранее спасибо за подробный ответ.
Здравствуйте.
Краткий ответ: мы формируем список задач по запросам от пользователей. Каждый запрос по почте/на форуме вносится в список на доработку. Затем из списка выбираются наиболее популярные запросы + учитывается время которое потребуется на реализацию. И в этом порядке они решаются в идеальном варианте. Но, если появляется информация об ошибках, то они решаются в первую очередь, а остальные задачи ставятся на паузу. Множество задач связаны друг с другом и их обязательно нужно решать в определённом порядке. Например, мы несколько раз откладывали реализацию функции импорта/экспорта данных между проектами из-за того, что другие задачи сильно влияют на структуру проекта и если сначала сделать импорт экспорт, то его практически сразу придётся переделывать. Таких связей очень много. Также со временем появляются задачи связанные с поддержкой огромного количества уже имеющихся функций: новые коннекторы для баз данных и новые функции СУБД, уязвимости в SSL, новые требования к шифрованию, сертификатам, новые требования к новым версиям ОС, новые требования в браузерах, блокируется Telegram и вдруг всем становится нужен Max, меняется API сторонних систем (telegram / max / популярных http-серверов), этот список очень длинный.
Исходя их вышеописанного:
рекомендуем ориентироваться только на текущие возможности скады. Если они не удовлетворяют требования к разработке проекта, то использовать другие системы, в которых такие возможности есть, пока необходимый функционал не появится в скаде.
Цитировать1. Единая библиотека для всех проектов
В первую очередь будет добавлена возможность импорта экспорта данных между проектами. Затем возможно добавим интерфейс в виде общей библиотеки для всех проектов.
Цитировать2. Полноценный отладчик
Отладчик не будет добавлен обозримом будущем, т.к. есть ряд гораздо более востребованных задач, а также по той причине, что массовые скрипты в 90% случаев пишут при переносе функционала ПЛК на скаду.
Цитировать3. Динамическое изменение изображения/анимации во время работы
Сейчас это можно реализовать меняя видимость нескольких компонентов "Изображение" с разными текстурами. Т.е. одно изображение скрывается через "Image1.Visible := False", а второе отображается через "Image2.Visible := True" в зависимости от значения переменных и наоборот. Если Вам нужно во время работы загружать разные изображения из файлов, то такой возможности нет и её добавление не планируется.
Цитировать4. Изменение размера и угла шаблонов и групп
10. Более гибкая работа со шрифтами
Уже есть в планах.
Цитировать5. Кастомное наследование от базовых классов TM
9. Возможность самостоятельно разрабатывать и расширять функционал
Добавление таких возможностей не планируется.
Цитировать6. Экспорт текущих данных в пользовательском формате... Интересна возможность получать структурированные данные, например: значения переменных, состояния оборудования...
Часть данных можно получить выполняя экспорт через excel / систему отчетов / http-запросы, либо подключившись UA-клиентом к серверу скады. Остальное возможно реализуем, но не в ближайшем будущем.
Цитировать7. Минимальные возможности кастомизации объектов
Сейчас можно менять/программировать поведение многих компонентов через скрипты. Пользовательские свойства возможно добавим в будущем.
Цитировать8. Массовая вставка шаблонов
Возможно добавим в будущем.
Просьба не дублировать один и тот же вопрос в личные сообщения. Это никак не влияет на скорость ответа.
Доброго времени суток.
Хотелось бы формирование отчётов (логов) после импорта переменных/сообщений из xlsx файлов.
Делаешь экспорт/изменение/импорт с опцией "обновить существующие", возникает индикация об изменениях в куче тегов (на порядок большем, чем откорректированное количество , по крайней мере в версии 2.6.15). Всегда присутствует волнение относительно того как распарсился файл (и не внёс ли сам лишних изменений).
Было бы спокойнее, если бы можно было посмотреть лог изменений, чтобы быть уверенным, что не поломал что-либо уже работающее.
Так же хочется окно с текущими значениями переменных в режиме исполнения. В идеале видеть внешнии / внутрении переменные (теги), а так же значения глобальных/локальных переменных в скриптах. Мне кажется, это сильно упростит отладку проектов.
"Если нельзя, но очень хочется, то можно"
Здравствуйте.
Цитата: WestWind от 05 октября 2026, 01:24:03Так же хочется окно с текущими значениями переменных в режиме исполнения. В идеале видеть внешнии / внутрении переменные (теги), а так же значения глобальных/локальных переменных в скриптах. Мне кажется, это сильно упростит отладку проектов.
Текущие значения внешних/внутренних переменных можно просматривать/изменять добавив к существующему проекту окно просмотра, пару-тройку скриптов, несколько внутренних переменных для хранения конфигураций окон и настроив вызовы единственного скрипта для объектов окна.
Для выбора окна просмотра в нужной конфигурации используется выпадающий список окон (индекс или описание переменной хранения конфигурации). Самый первый элемент списка "Новое окно"- пустое. Заполнение окна происходит по нажатию кнопки "Обновить окно".
Предусмотрены два режима работы с окном - изменение конфигурации ("Замочек открыт") и просмотр/изменение переменных ("Замочек закрыт"). В режиме изменения конфигурации выбор поля осуществляется нажатием ЛКМ, отмена выбора - повторным нажатием. Выбранное поле можно удалить (кнопка "Корзина"), а при отсутствии выбранного можно добавить новое поле(кнопка "+").
Для выбора/изменения переменной и заголовка у выбранного поля появляется поле редактирования заголовка и селектор выбора переменной. Если у поля уже есть переменная, то селектор устанавливается именно на эту переменную. По умолчанию заголовком является описание переменной, в случае длинного описания его можно заменить на более короткое изменив поле редактирования заголовка. Перезапись в заголовок поля по завершению ввода. Выбор переменной по селектору завершает конфигурирование поля.
Скрипт "Запуск проекта" содержит константы числа строк окна и размеры поля переменной. По мере добавления полей окно расширяется вниз, по достижении заданного числа строк окна, окно расширяется вправо.
Изменение количества полей для переменных - при изменении количества необходимо обеспечить непрерывность индексов полей. Для объектов динамически изменяющих положение (поля переменных и редактирования заголовка, селектор выбора переменной) геометрия окна в редакторе не важна.
Последовательность действий добавления окна просмотра в проект:
1. Создать новое окно в проекте. Увеличить его размер, отключить и очистить заголовок. Выбрать и скопировать все объекты из окна примера (Ctrl/A - Ctrl/C). Вставить в окно проекта и сместить вверх-влево к границам окна. Включить заголовок (иначе в редакторе окно не переместить).
2. Перенести скрипты примера в отдельную группу отлаживаемого проекта.
3. Настроить вызовы универсального скрипта: "поля окна", "кнопки", "выпадающий список окон" - OnClick, "поле редактирования заголовка" - OnDoneInput, "выпадающий список переменных" - OnDataChange.
4. Добавить в отдельную группу переменные конфигураций в необходимом количестве.
5. Настроить вызов окна просмотра, либо скрипт клавиатуры, либо объект с привязанным окном.
После отладки проекта можно удалить компоненты примера или отключить скрипты.
Для просмотра переменных из скриптов, увы, необходимо править скрипты проекта (что крайне не желательно) на перезапись этих переменных в дополнительные теги, с последующим просмотром в окне.
Хотелось бы увидеть возможность установки пароля на некоторые скрипты (подобно тому, как устроено в tia portal - know-how protection).