Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: Serrk от 19 Сентября 2024, 15:54:21
-
Доброго дня. Мне требуется выполнять непрерывно некий код. Лучше, чем использовать Timer с периодом 1 сек. не придумал. Все работает, но ощущается секундная задержка. Не подскажете , есть ли способ организовать более быстрый цикл?
-
Здравствуйте.
Максимально подробно опишите задачу, которую Вы пытаетесь решить и приложите текущий код скрипта.
-
Проверяется ток на допустимость, при превышении меняется бит переменной , и отключается контактор. Так же отслеживается биты переменной для изменения элементов визуализаций. Код более ста строк, не знаю как весь скопировать.
-
Код более ста строк, не знаю как весь скопировать
Нажать сочетание клавиш Ctrl + A (выделить все) и Ctrl + C (копировать). Но в этом случае лучше пришлите на support@simple-scada.com текущую версию проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипт, который нужно проверить.
-
Не используйте таймеры и другие периодические скрипты в задачах, в которых можно обойтись без них. В большинстве случаев пользователи используют таймеры для переноса функционала контроллера на скаду (т.е. скада решает задачи, которые должен решать ПЛК), что является очень плохим решением.
Проверяется ток на допустимость, при превышении меняется бит переменной , и отключается контактор.
Это хороший пример неправильного использования скады вместо ПЛК. Именно ПЛК должен проверять ток на превышение и выключать контактор. Если эту задачу перенести на скаду, то при перезапусках скады / серверного ПК / сбоях ПК или сети между ПК и ПЛК, контактор не будет отключен по превышению тока. Поэтому проверять ток и выключать контактор нужно в программе ПЛК, а в скаду отправлять текущее состояние контактора и при необходимости отображать его на мнемосхеме.
Так же отслеживается биты переменной для изменения элементов визуализаций.
Биты также не имеет смысла отслеживать в периодических скриптах. Гораздо правильнее проверять их только по изменению переменной (например в событии OnDatachange). Таймеры будут выполняться всегда (даже если переменная не менялась) и просто растрачивать ресурсы.
-
Это испытательный стенд. На нижнем уровне нет ни одного ПЛК, ПР. Все делается СКАДой. Велено сделать на СКАДе, я делаю. Разрешили бы сделать на CodeSys, ни какая скада была бы не нужна. Так, что без цикла с кодом, видимо не обойтись.
-
На нижнем уровне нет ни одного ПЛК, ПР. Все делается СКАДой. Велено сделать на СКАДе, я делаю. Разрешили бы сделать на CodeSys, ни какая скада была бы не нужна. Так, что без цикла с кодом, видимо не обойтись.
Скада для таких задач не предназначена, поэтому обычные циклы (в пределах одного скрипта) работать не будут.
Можно либо импортировать с OPC-сервера в проект постоянно меняющуюся переменную с частотой опроса 20 мс. и по событию OnDatachange выполнять какой-то код (т.е. в результате он будет вызываться каждые 20 мс.), либо вызывать выполнение через задержку (функция RunDelay) с минимальной частотой 16 мс.