ZHMI - ссылочная переменная

Автор sokave, 05 апреля 2016, 16:00:40

« назад - далее »

sokave

Добрый день
Вопрос в следующем, в редакторе проекта создаем ссылочную переменную например Hour2 (Чтение и запись, Целый знаковый", которая в строке "Переменная для чтения"  берет текущее значение из системной переменной $Hour и нам необходимо к ней прибавить "1" для того,чтобы получилось значение "текущий час+1". если написать в строку "Выражение": ($Hour+1), то в переменную Hour2 запишется значение текущего часа, а не на 1 больше.
Что я делаю не так ?
спасибо

Artem

В выражении нужно писать переменную Z. Вместо нее будет подставляться значение переменной. Поподробнее написано в документации, в разделе 5.1.5 Ссылочная переменная

sokave

да, все спасибо, заработало, просто не совсем понял описание переменной
а как можно сделать следующее - запуск и остановку вентиляции в определенное время, например в 12:00:00 - запуск, в 14:00:00 остановка, но при этом еще реализовать выбор времени через выпадающее меню (выбираются часы - 0,1,2, 3 и т.д.?
в самом объекте выпадающего меню можно в качестве параметров переменной указать только числа, а не любые значения переменной, например присвоить при выборе в меню "02" переменной Time1 02:00:00, как тогда это можно сделать ?

mike

zHMI - устаревшая версия нашего ПО и на ней не все получится сделать.

Сформулируйте, пожалуйста, точнее задачу.

sokave

точнее...
Давайте тогда локально, с конкретным примером, как это должно быть:
Есть группа 2-х выпадающих меню с выбором времени включения и выключения установки по часам (в каждом можно выбрать часы - 0,1,2,3...23), таких групп 3, тоесть за сутки мне необходимо 3 таких интервала включения-выключения установки.
Можно ли это реализовать в этой системе ? или может как то по другому это можно сделать, не с выпадающими меню ?
Еще вопрос: не очень понял как сделать в выражении ссылочной переменной проверку вида, например: если z = 10 то 1 иначе 0, я пишу (z=10?1:0) - естественно выдается ошибка, что я не так пишу ?

поподробннее бы где узнать по этим всем выражениям, в документации маловато информации...

Artem

Синтаксис выражений такой-же как в языке C. Для сравнения используется оператор ==. У вас =, поэтому ругается.

sokave

а если не нужно использовать тернарный оператор, тоесть чтобы выражение было не вида "если а = 100 то в= 10 иначе в=20", а просто "если а = 100 то в = 10", тогда как это написать ? В Cи по моему только используется оператор "if" для этого

sokave

Цитата: mike от 06 апреля 2016, 08:25:53
zHMI - устаревшая версия нашего ПО и на ней не все получится сделать.

Сформулируйте, пожалуйста, точнее задачу.
а что есть из "нового" ПО взамен устаревшего ?

mike

Взамен есть программно-аппаратное решение zWorkbench+N450EV

sokave

#9
Цитата: mike от 06 апреля 2016, 12:22:11
Взамен есть программно-аппаратное решение zWorkbench+N450EV
и я так понимаю в этом варианте нельзя использовать существующий проект в формате GFD и наш существующий контроллер  , нужно все переделывать ?

mike


Artem

Цитата: sokave от 06 апреля 2016, 11:51:48
а если не нужно использовать тернарный оператор, тоесть чтобы выражение было не вида "если а = 100 то в= 10 иначе в=20", а просто "если а = 100 то в = 10", тогда как это написать ? В Cи по моему только используется оператор "if" для этого
Нет, операторы типа if не работают. Это не совсем скрипт, а обычное выражение. Поэтому для условия можно использовать только тернарный оператор

sokave

мда... значит то что мне нужно, сделать невозможно в старом софте, а в новом не сделать, потому как никто не будет менять контроллеры и заново переписывать полностью проект

mike

Вот к чему это "мда"?
Я понимаю, если бы мы хоть рупь с вас поимели, тогда можно было бы сказать "мда".

sokave

"мда" - здесь в следующем контексте "жаль что нет совместимости с новыми версиями ПО"