Ответы в темах
-
АвторЗаписи
-
RomanPertsev
УчастникПри нажатии на динамический рисунок кнопки отправляется команда на канал «1000» (расчетно-выходной), у канала «1000» входная формула «1», а выходная формула «2», в таблице текущих значений вижу у канала «1000» значение «1h», нажимаю на кнопку в таблице текущих значений у канала «1000» ничего не меняется (скорее всего изменения не успевают отразится) значение «1h», а в журнале последних команд регистрируется запись «канал 1000, Val=2,000», в модуле автоматического управления триггер настроен на изменение значения канала с «1» на «2», но он не срабатывает, в логах журнала работы модуля видно что триггер стоит в ожидании.
Я думаю что триггер не успевает ловить у канала «1000».RomanPertsev
УчастникНе-е-е тумблер имеет черезвычайно убогий дизайн и его никак не заменить, можно лишь внутрь него вставить картинку. 🙂
RomanPertsev
УчастникДа дело в том что чтобы включить устройство нужно послать «1» на один регистр, а чтоб выключить нужно послать «1» но на другой регистр, делать рядом две кнопки одна для вкл, а другая для выкл это глубо, я сделал две кнопки и настроил им видимость чтоб они исчезали, но беда в том что они даже невидимые доступны для нажатия, а если их расположить одна над другой то вообще та что сверху видимая и не видимая всегда нажимается. Чтоб это решить я сделал третий канал (1000), но и через него нельзя. Несколько дней сижу над такой ерундой как вкл и выкл.
RomanPertsev
УчастникОчень необходимая функция чтоб кнопка импульсом присваивала значение каналу, неужели эту задачу невозможно решить стандартными и даже платными модулями?
RomanPertsev
УчастникПосоветуйте как можно подправить.
-
Ответ изменён 1 год, 3 месяца назад пользователем
RomanPertsev.
RomanPertsev
УчастникPulseSetVal – имя класса;
.InPulse() / .OutPulse() – методы;
Оба метода объявлены public static, значит доступны отовсюду.
RomanPertsev
УчастникЗдесь опять какие то скрытые ньансы, недокуметированные и т.п.?
RomanPertsev
УчастникВроде простой скрипт, но не работает, ошибка компеляции.
RomanPertsev
УчастникВходная формула канала 1000 PulseSetVal.InPulse()
Выходная формула канала 1000 PulseSetVal.OutPulse()RomanPertsev
УчастникЕсли в выходную формулу канала 1000 вписать вызов этоко скрипта, то при нажатии кнопки должен отработать этот код, который будет менять 1 на 2 и обратно.
Так же должно получится?using System;
public static class PulseSetVal
{
// сколько проходов держим 2 (измените при необходимости)
private const int HoldCycles = 3;
private static int cnt = 0;/* ———- ВЫХОДНАЯ формула канала 1000 ———- */
public static double OutPulse()
{
// любая пришедшая команда запускает импульс
cnt = HoldCycles;// пишем двойку в канал 1000, статус сохраняем
SetVal(1000, 2);// вернуть 2 – это и будет Val канала в данный момент
return 2;
}/* ———- ВХОДНАЯ (расчётная) формула канала 1000 ———- */
public static double InPulse()
{
if (cnt > 0) // ещё держим 2?
{
cnt—;
return 2; // Val остаётся 2
}
else
{
// импульс закончился – вернуть 1
// и сразу записать 1 в «текущие данные»,
// передав при этом прежний статус
SetVal(1000, 1);
return 1;
}
}
}RomanPertsev
УчастникПока думаю
-
Ответ изменён 1 год, 3 месяца назад пользователем
RomanPertsev.
RomanPertsev
УчастникЯ пытался написать скрипт чтоб при нажатии кнопки (активации канала 1000) в канал писалось значение -2, а через пару циклов сбрасывалось и по умолчанию писалась -1, но у меня нет пока понимания как через макрос читать и отправлять значения Val в канал 1000, особенно при поступлении управления.
-
Ответ изменён 1 год, 3 месяца назад пользователем
RomanPertsev.
-
Ответ изменён 1 год, 3 месяца назад пользователем
RomanPertsev.
RomanPertsev
УчастникЯ подключил доп модул «Автоматическое управления» и настроил его «триггер по двум каналам 1000 и 1061». Триггер не срабатывает потому что у канала 1000 на входе всегда пусто, кнопка лишь активирует команду на отправку выходной формулы, но не присваивает ему значение Val. Я пробовал на входе ему ставить формулу — «1», но так триггер всегда сработанный и это не работает. Триггер на команду канала мне не подходит так как в условиях сработки должны участвовать два канала, а не один. Навернека с этой проблемой сталкивались многие, как же решить эту проблему?
Может кто пришлет скрипт для примера. Мне на моем уровне пока не хватает опыта чтоб это придумать.RomanPertsev
УчастникВот теперь понял как этим пользоваться. Теперь всё получилось. Спасибо.
RomanPertsev
Участникможет какую то библиотеку нужно?
-
Ответ изменён 1 год, 3 месяца назад пользователем
-
АвторЗаписи