Добрый день. Подскажите, в AgavaPLC, какой функцией через скрипт осуществить смену отображаемой композиции?
Объявление
Свернуть
Пока нет объявлений.
Смена отображаемой композиции в скрипте
Свернуть
X
-
В текущей версии 1.2 смена композиций из скриптов пока не реализована. Эта возможность вместе с полной объектной моделью проекта будет реализована в версии 1.3.
Полный перечень доступных функций доступен в описании: http://docs.kb-agava.ru/view/Описани...2B_в_AgavaPLC, см. раздел 8.Последний раз редактировалось Таушканов Константин; 03-05-2023, 05:05 AM.
-
Суть вопроса как бы в смене отображаемой композиции через определенное время после совершения последнего события на экране (нажатие на кнопку, изображение и т.д.) я попробовал решить это следующим образом: каждое событие обновляет флаг и запускает Task (разовый) который запускает таймер. По выполнению таймера запускается смена композиции. Разовый Task запускается и останавливается как по скрипту (void StartNode(string strNodePath) так и через "действие "Команда узлу" . Таймер при этом запускается но счетчик дальше не считает и выполнения смены композиции не происходит. А при повторном вызове Task композиция меняется сразу. я предположил, что можно менять текущее значение счетчика, сдвигая его по каждому событию на время задержки, значение счетчика я получаю по GetNodeValueAs<> или связав таймер с виджетом "текстовая метка", но при попытке передать таймеру значение по SetNodeValueAs отслеживая значение в виджете, он новое значение отображает, но дальше продолжает отсчитывать по тому значению как было. При попытке запускать таймер по Task (периодический), если не останавливать Task то смена композиции происходит, Task один раз останавливается, и при попытке его снова запустить программа AgavaPLC закрывается.
Комментарий
-
А вот такой вопрос, конструкция типа Если значение Constant1 больше Constant2 то Constant3 равно например 50, может быть решена средствами операций в Signals или только через скрипт? и второй вопрос, в TaskPLC при попытке создать блок "Условие" отображается сообщение "Узел не создан". С чем это связано? Для создания такого блока требуются какие то условия?
Комментарий
-
Описанную вами конструкцию простым способом можно реализовать только через скрипт. Если вы хотите сделать ее через задачу ПЛК, тогда необходимо преобразовать значение Блока "Больше чем" в int с помощью Блока "Конвертер", затем умножить его на 50 и это подать на вход Блока "Установка значения". Это сложно и неудобно.
Блок "Условие" не предполагается к использованию в Задаче ПЛК. Рекомендую пользоваться только Панелью блоков, включить которую можно нажав ПКМ по надписи "Свойства" в правом верхнем углу экрана и отметив галочкой соответствующий пункт. Блоки из данной панели можно перетаскивать на поле задачи ПЛК.Последний раз редактировалось Лазарев Михаил; 03-05-2023, 10:40 AM.
Комментарий
Комментарий