Ответы в темах
-
АвторЗаписи
-
MZ
УчастникНе смог разобраться(
Каналы для кнопок — (output) 106 и 107, в них выходные формулы
SetVal(109, Val(109) + 1)
SetVal(109, Val(109) — 1)Уставка — канал 109 (calculated/output) с выходной формулой
SetData(109, Val(109), 1)Кнопки в представлении работают. Вижу, что значение канала 109 меняется при нажатии.
Но при этом команда в модбас не выдается.
Смотрю лог в коммуникаторе, там команды такого вида (без номера канала):
Val=1
Val=2
..Сравнил с командами с кнопки, которая с поп-апом, но записывает в устройство:
Code=109, Val=1Подскажите, как правильно сделать, что бы по изменению значения канала отправлялась команда на устройство?
MZ
УчастникДа, получилось, спасибо.
А что бы записывать измененную таким образом уставку на внешнее устройство, необходим модуль автоуправления? По-другому никак не сделать?MZ
УчастникУстановил параметр EventCount = 0, события(строки) не отображаются, но сама панель «события» осталась, пустая. Можно ли её убрать/скрыть совсем?
MZ
УчастникНастройки нашел, спасибо.
Не понял только как отключить «события» внизу страницы. понятно, что можно свернуть, но хочется убрать совсем.
Подскажите пожалуйста, как это сделать.-
Ответ изменён 3 года, 3 месяца назад пользователем
MZ.
MZ
УчастникВсё заработало при записи в такой форме:
Val(197)==0?Val(200):Val(Convert.ToInt32(200+Val(197)))Спасибо!
-
Ответ изменён 3 года, 4 месяца назад пользователем
MZ.
MZ
УчастникКоллеги, добрый день!
По своей задаче уже близок к завершению, но столкнулся с проблемой.
Из mysql значения для выходной команды забрал, кладу по порядку в выделенный диапазон каналов(200-299).
Циклический таймер написал (выдает импульсы раз в заданный интервал времени).
Счетчик шагов (импульсов) сделал, когда превышает количество строк в базе, скидывается в 0.Теперь нужно в финальном выходе прописать что-то типа Val(197)==0?Val(200):Val(200+N),
где
197- текущий шаг выполнения
200- первое значение из базы данных
N-значение «счетчика» циклических импульсов, канал
200+N — подразумевается значение выхода для текущего шага из базы.Пробовал записать таким образом, не работает:
Val(197)==0?Val(200):Val(Val(200)+Val(197))
получаем:
Ошибка при компилировании исходного кода формул:
Строка 693, колонка 78: error CS1502: The best overloaded method match for ‘Scada.Server.Engine.CalcEngine.Val(int)’ has some invalid arguments
Строка 693, колонка 82: error CS1503: Argument 1: cannot convert from ‘double’ to ‘int’
Для ознакомления с исходным кодом см. файл C:\SCADA\ScadaServer\Log\CalcEngine.cs
Нормальная работа программы невозможнаПодскажите пожалуйста, как правильно записать номер канала в виде переменной, что бы можно было его динамически менять в алгоритме?
Спасибо.
MZ
УчастникОтправляем команду сразу, ждем паузу(тоже вопрос, как ее задавать при помощи считанной переменной), отправляем следующую команду, ждем следующую паузу и т.д.
MZ
УчастникДа, последовательно все строки, потом сначала.
-
Ответ изменён 3 года, 3 месяца назад пользователем
-
АвторЗаписи