+4
Voltooid

Пожелания к модулю Modbus TCP для i3 lite

SMH 8 jaar geleden in Modules bijgewerkt door Slava Zhuravlev (expert) 5 jaar geleden 52

После недели тестирования модуля Modbus TCP для i3 lite у меня оформились следующие пожелания, надеюсь их несложно будет реализовать.

1. Обязательная возможность смены иконки в виджете, хотя бы из существующего набора для макросов.

2. В виджеты "button" и "relay" добавить (опционально) обратную связь - чтение регистра состояния устройства.

2.1 Нажал на "button" - регистр устройства изменил состояние - виджет изменил цвет и надпись с "OFF" на "ON". Если подтверждения не пришло, цвет и надпись не менять!

2.2 Нажал на "relay" - регистр устройства изменил состояние - виджет изменил цвет с серого на зелёный. Если подтверждения не пришло, цвет не менять!

3. В настройки виджета "dimmer" также ввести (опционально) обратную связь - чтение регистра Word = положение ползунка.

4. В настройках "display" добавить положение десятичной точки для отображаемых целых чисел.

5. В настройках "value input" добавить поле "units" - аналогично, как сделано на виджете "display". В настройках добавить положение десятичной точки для вводимых целых чисел.

6.1 Добавить виджет "сигнальная лампа", с логикой работы аналогично виджету "binary sensor", но выглядеть он должен, как меняющая цвет при наступлении события сигнальная лампа. Цвет должен выбираться.

и/или

6.2 Добавить виджет "сигнальная лампа", цвет которой задаётся привязанной к ней Word переменной.

7. Добавить виджет "переключатель на несколько положений", либо с выбором количества положений через настройки, либо фиксированных на 2, 3, 4 и 5 положений. На выходе - Word переменная.

8. Добавить виджет "текстовый дисплей", с изменяемым текстом, в зависимости от значения Word переменной.


Это пока минимальное, чего не хватает для комфортной работы с данным модулем.

Спасибо за внимание. )

-1

9. Распаковку и запаковку битовых сигналов в переменную Word конечно ещё забыл!

В настройках дискретного виджета, если выбран "register", нужно дополнительное поле для задания номера бита.

-1
Under review

Здравствуйте.

1. Выставили этот вопрос на голосование: http://support.iridiummobile.net/topics/11897-/

2. Поставим в очередь на разработку, в Relay и Dimmer можно будет задать адрес для чтение отдельно.

2.1. Вы говорите о том, чтобы изменить внешний вид элемента Button, чтобы на нём была видна обратная связь? Сейчас у нас в элементе Button нет On/Off надписей. Пока что не вижу смысла для добавления адреса чтения в кнопке. Если нужен триггер с обратной связью то в этом случае используется реле.

2.2. Звучит логично, это сейчас так и работает, но без возможности задать адрес для чтения отдельно.

3. Сделаем (ответил в п. 2).

4. Можете привести пример как это выглядит и для чего нужно?

5. Нужен пример использования: в каких случаях вам нужно вводить значение в строку таким образом. Value input изначально был сделан как тестовый элемент управления, для того чтобы можно было задать любое значение на любое адрес и проверить работоспособность.

6. Обсудим с дизайнером. Но хотелось бы подробностей: изначально лампа серая? И также пример использования.

7. Как при переключении режимов? В таком случае вам нужна будет возможность задать строку для каждой кнопки.

8. Что если мы сделаем элемент Custom display, в которую через экшены можно задать любую строку. Таким образом через рутины можно будет написать любую строку на элементе, в завимисимости от значения, которое пришло. Это решит вашу проблему?

9. Сделаем




-1

Добрый день. Порадовала неожиданно быстрая реакция на мои пожелания.

Спасибо.

1. Честно говоря, не понимаю, зачем голосование. Иконка – она для чего вообще? Для красоты и информативности, как я понимаю. А если интерфейс целиком построен на Modbus виджетах, то все иконки одинаковые - ни красоты, ни информативности.

2. Тут вот какую деталь важно не упустить. В Relay – переключение тумблера производить по нажатию, и только изменение цвета – по приходу подтверждения. В Dimmer всё сложнее – перемещение ползунка и цифровое значение над ним нужно оставить так, как есть. А виджет дополнить ещё одним элементом – подтверждённым значением (зелёный на рисунке).

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

Кроме того, в настройках Dimmer есть установка минимального и максимального значений, это замечательно, но вот что сделано, на мой взгляд, неправильно – отключение тумблера над ползунком приводит к установке минимального значения на выходе Dimmer, а не 0, как было бы логично (это же выключатель).

И как-то бы ещё поконтрастней виджет Dimmer сделать, какой-то он невзрачный.

2.1.По поводу обратной связи в Button. Между Button и Relay существенная разница, как Вы понимаете. Button это кнопка без фиксации, Relay – с фиксацией на уровне виджета. Обратная связь для Button необходима, если фиксация сделана на программном уровне ПЛК. В моём конкретном случае освещением управляют физические выключатели без фиксации, подключенные к дискретным входам ПЛК. Нажал – свет включился, повторное нажатие – выключился. Аналогичным образом хотелось бы получить управление и с панели – нажал – свет включился, повторное нажатие – выключился, и при этом видеть результат своего действия и текущее состояние в одном виджете, а не в разных.

4. Вообще, если по уму делать, то туда не только десятичную точку для отображения переменных Word нужно ввести, а масштабирование переменной. Нужно это для чтения данных с самых разных Modbus устройств, не умеющих работать числами с плавающей точкой и передающих данные в «условных единицах» в формате Word. К их числу относятся все известные мне преобразователи частоты, многие ПЛК, измерительные модули, теплосчётчики и счетчики электроэнергии. Выглядит это так: читаем переменную Word = 4367 с аналогового входа 4-20мА. Задаём ей шкалу 2000 = 0, 10000 = 16 (шкала подключенного ко входу датчика давления в кгс/см2). На выходе имеем число 4.734 с плавающей точкой, которое и отображаем в виджете с заданным количеством знаков после точки = 4.7.

5. Пример использования – ввод каких-либо параметров в устройства, описанные в пункте 4. Например, заданного значения давления, поддерживаемого преобразователем частоты. Тут также нужно масштабирование, вводим, например, 4,7 кгс/см2, на выходе получаем 4350 Word для записи в регистр устройства.

6.1. Изначально лампа серая (с возможностью инверсии сигнала), если это вариация существующего виждета Binary sensor. При чтении 1 – цвет на выбор. Применение – тоже, что и у Binary sensor, для внесения понятности в интерфейс. Например: «фильтр засорён» - лампа жёлтого цвета, «насос в работе» - лампа зелёного цвета и т.п.

6.2. Большой интерес представляет использование виждета сигнальной лампы с цветом, задаваемым переменной Word по 16bit шкале. Очевидное применение: в системах управления RGB освещением и в системах сигнализации (серый – отключено, зелёный – норма, жёлтый – внимание, красный – авария).

7. Переключатель режимов – это тот же Dimmer, с возможностью задания верхнего и нижнего значений 0-100, только без верхнего тумблера и символов "солнышка".

Этот же виджет может использоваться для коррекции температуры, скорости и других параметров.

Строка для каждого положения описывается в Custom display, предложенном Вами в 8 пункте, вместо «текстового дисплея».

8. Что если мы сделаем элемент Custom display, в которую через экшены можно задать любую строку. Таким образом через рутины можно будет написать любую строку на элементе, в зависимости от значения, которое пришло.

Честно говоря, я не понял, что такое «экшены» и «рутины» применительно к I3Lite.

Можете пояснить?


И ещё, ранее не озвученные пожелания не к виджетам, а к настройкам самого модуля.

10.1. Во время подключения модуля Modbus TCP из магазина, запрашиваются IP и порт подключения. После этого, нигде эти параметры изменить нельзя. Это как-то несерьёзно. Вот подключил я модуль, насоздавал внутри кучу сабдевайсов, расставил по комнатам, короче, создал интерфейс. А на объекте, по каким-либо причинам, IP другой, или порт занят – всё, что-ли, заново делать?

10.2. После создания сабдевайса, нет возможности его удалить, а есть только отключить. Я понимаю конечно, что такая работа дисциплинирует (почти как у сапёра - без права на ошибку), но было бы неплохо всё-же иметь возможность удалять ошибочно созданный или ненужный сабдевайс.

10.3. Ввести в настройки модуля Modbus TCP возможность работы через Modbus TCP to RTU.

-1

По пункту 2.1 всё еще есть недопонимание. Вы можете использовать элемент Relay, нужно лишь на включение и выключение сделать отправку одного и того же значения. Таким образом вы сможете переключать свет нажатием и при этом видеть результат.

-1

Проведённый эксперимент показал, что это не так. Если в Reley на включение и выключение поставить отправку значения 1, после однократного переключения он вообще перестаёт работать.

Что, собственно, и неудивительно. Ведь физическим аналогом Reley с такими настройками является выключатель, у которого контакты между собой от искры сварились ). Если в Reley на включение и выключение поставить отправку значения 0, он просто не работает, что тоже вполне логично. Управлять чем-либо при помощи таких вариантов настроек невозможно. Странно, что Вы этого не понимаете.

Кнопка (Button) - это однократная, во время нажатия, запись значения 1 в регистр. Сняли нажатие - пишет 0 в регистр.

Выключатель (Reley) - это запись значения 1 с фиксацией. Нажали - записал и продолжает писать 1 после снятия нажатия. Для записи 0 требуется повторное нажатие.

-1

Я не уточнил: пока нет возможности задать адрес для чтения отдельно это очевидно невозможно. Но когда добавим такую возможность вам же ничего не помешает использовать реле.

Когда вы жмете на реле отправляется, например 1, переключается свет и переменная для чтения соответственно меняет значение и реле меняет состояние.

Но для этого кейса нужно будет также разделить значения записи и значения фидбека, а не только адреса.

Дело в том, что кнопка, если добавим на неё отображение состояния технически будет работать точно также.

-1

Что-то мы совсем друг друга запутали. ) Придётся картинки рисовать.

Вот как это работает сейчас.

Нужно, чтобы отправка значений работала ТОЧНО ТАКЖЕ, как есть сейчас.

А виджеты "Подтверждённое Button" и "Подтверждённое Relay" разместить внутри "Button" и "Relay" соответственно.

Например, вот так:

Что-то типа вот таких виджетов хотелось бы в итоге увидеть.

Ещё раз акцентирую внимание:

1. Положение тумблера, изменение оттенка кнопки во время нажатия - это ОТПРАВЛЕННЫЕ ЗНАЧЕНИЯ.

2. Зелёный цвет тумблера, смена цвета и текста надписи OFF-ON - это ПОДТВЕРЖДЁННЫЕ ЗНАЧЕНИЯ.

Так понятно?

-1

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

Но вопрос возник именно по пункту 2.1. О том, что вам нужно отображение текущего состояния фидбека на кнопке. Но элемент "кнопка" как раз и задумывался как простой элемент, который не зависит от фидбека (например запуск сцены). Да, мы дали возможность опционально задать отправку значения и на релиз, но в первую очередь это просто кнопка.

В вашем же случае получается некое подобие триггер кнопки, чем по сути и является реле.

Давайте представим, что мы реализовали такую кнопку. Вы в параметрах задаёте адрес для записи и адрес для чтения (естественно они разные в этом случае). На релиз задаёте отправку значения "1" в адрес для записи и задаёте еще отдельными полями значения, которые соответствуют состоянию on и off и которые мы ждём от адрес для чтения.

Таким образом мы сделали фидбек триггерный, но управление не триггерное.


Я же предлагаю вам сделать тоже самое, но для реле (вы просто зададите отправку 1 на On и отправку 1 на Off если у вас тоггл, но значения для чтения будут 0 и 1 например), а кнопку оставить без отображения фидбека, потому что как я и написал ранее, кнопка - это простой элемент.

-1
Я же предлагаю вам сделать тоже самое, но для реле (вы просто зададите отправку 1 на On и отправку 1 на Off если у вас тоггл, но значения для чтения будут 0 и 1 например)

В этом случае в RELAY нужно реализовывать переход через противоположное значение при переключении. Т.е., в обсуждаемом случае, 1 - 0 - 1. Иначе ничего переключаться не будет. Я не до конца понимаю, как это будет визуально выглядеть. Движок RELAY будет фиксироваться и в правом, и в левом состоянии, как сделано сейчас?

-1

Как вы и писали мы друг друга просто не поняли )

Вы сделаете кнопку таким образом, что на нажатие будет отправляться единица, а на отпускание - ноль (или наоборот как вам удобнее). И при каждом переходе с 0 на 1 у вас переключается свет. Тут вы полностью правы, реле для такого случая не подойдёт.

Подумаем над этим сценарием вновь.

-1

Здравствуйте.

По пунктам 2, 2.1, 6.1., 6.2., 10.2. мне нужно обсудить с дизайнером. Как будет решение я вам его озвучу и скажу когда его ожидать в приложении.

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

8. Извиняюсь за необщепринятые понятия. Рутины это правила, которые вы создаёте в i3 lite. Экшены - это действия, которые можно использовать в рутинах. Мы предлагаем вам тип устройства Custom display, в котором вы принимаете значение с указанного адреса (но на виджете по умолчанию оно не отображается), а надпись на виджете вы делаете с помощью действия. Пример правила: Если от устройства Custom display пришло значение 0, запиши мне "System OK" в этот же Custom display. Так вы можете завязывать этот Custom display с другими устройствами (Если значение диммера больше 80% запиши мне "Too bright").

10.1. Возможность изменить параметры модуля уже в стадии тестирования. Вы сможете опробовать её в ближайшее время.

10.3. Можем добавить, но это будет отдельный модуль.


По вопросам 4 и 5 дам ответ чуть позже.

Спасибо за активное участие в тестировании.



-1

7. Да-да, совершенно верно. Без тумблера и иконок света, так как это не диммер.

Но с обратной связью через дополнительный элемент "подтверждённое значение", как я предложил выше.

8. Насколько я Вас понял, это хорошее решение.

10.1. Спасибо, очень хорошо. А то я паниковать раньше времени начал. )

10.3. Да пусть отдельный, разницы нет, наверняка будет востребован.


Спасибо, что терпеливо выслушали. )

-1

Вам спасибо за то что помогаете делать наш продукт лучше -)

-1

По поводу пункта 1. Чем бы не закончилось голосование (пока там, к сожалению, только мой голос), хотя аналогичное предложение было также в этой теме:

http://support.iridiummobile.net/topics/11793-not-possible-to-change-icon-for-button-in-modbus/

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

По 4, 5: идею утвердил, добавим параметры в Display и Input value, которые позволят вам масштабировать значения.

-1

Замечательно!

Поставили в очередь на разработку:

1) Введение адреса для чтения отдельно

2) Отображение ожидания ответа на реле и диммере

3) Масштабирование значений

4) Возможность использовать бит регистра для бинарного сенсора


Остальные пункты пока находятся на стадии формирования задачи.

Сообщим вам когда будут изменения в модуле.

-1

Очень хорошо!

4) Возможность использовать бит регистра для бинарного сенсора

А на управление? На RELAY & BUTTON эта функция тоже крайне актуальна!


-1

Давайте мы сначала добавим для сенсоров, если эта функция будет корректно работать - мы также добавим её и для управления.

-1

Хорошо. Главное, чтоб "не забылось".

Обновили модуль Modbus TCP.

Добавили:

1) Введение адреса для чтения отдельно

2) Возможность использовать бит регистра для бинарного сенсора

3) Возможность ввести Units для Value input

То, что в очереди (описано выше), но не сделано сейчас, будет в скором времени.


В RELAY не работает адрес для чтения (версия модуля 1.18.0).

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

В данный момент реле действительно не синхронизируется с данным с адреса чтения. Этот минус будет устранён когда мы добавим отображение ожидания ответа от устройства на реле.

Planned

Актуализируем тему.


Что сделано:
1) Отображение ожидание ответа от устройства на Relay и Dimmer.

2) Настройка масштабирования значения для Display и Value input.

3) Возможность поменять параметры модуля.

4) Возможность удалять сабдевайсы.

5) Элемент Text display, чтобы с помощью правил можно было записать произвольную строку на виджете.

6) Настройка количества символов после точки для Display и Value input. 


Какие задачи всё еще не выполнены:

1) Элемент для режимов. Вы просили сделать диммер без тумблеров, но для режимов больше подойдёт мультистейт кнопка. Такую кнопку вскоре добавил в модбас модуль.

2) Задание номера бита для Relay и Button. 

3) Элемент сигнальная лампа.

4) Отображение фидбека на элементе Button.


Каждую из невыполненных задач актуализируем и поставим в очередь.

Наверняка за это время у вас появились еще пожелания - будем рады услышать!

Обновление по оставшимся задачам:

1) Выполнено. Элемент Multibutton.

2) Выполнено. Настройка Bit number.

3) Выполнено. Элемент Color display, позволяет выставить произвольный цвет через правила.

4) В очереди. 


Также хочу вас оповестить, что добавили возможность импорта из csv документа. Пока что документация не готова, но если интересно могу описать что нужно сделать.

Bit number корректно не работает.

Создал 16 RELAY с записью битов в один holding register и чтением битов из другого.

Расставил в одну комнату в проекте и управляю по очереди и хаотично.

Реле могут включиться, могут не включиться, при включении одного могут отключить ранее включенное другое или включить несколько сразу, включение 15 реле вызывает засветку 14 реле, 7 реле вообще отказалось включаться, вобщем не работает.



Спасибо за обратную связь!


Могу я вас попросить подробнее описать из какого бита происходит чтение? Если для записи и чтения использовать один и тотже бит, всё работает корректно? Удобнее всего если сделаете скриншот параметров любого из реле, будем пробовать повторить и править. 

Обновление по 4 пункту. В скором времени выполним и эту просьбу. Решили расширить настройки для элемента Relay, чтоб можно было задавать отдельно отправляемые значения и ожидаемые. 

Здравствуйте! Голосую за п.10.3, очень хотелось бы иметь поддержку RTU over TCP. Спасибо)

Добрый день!

Для этой цели в iRidium store доступен модуль "Modbus TCP to RCU".

Доброе утро! Удалось ли настроить RTU over TCP?

Under review

4) Обновили модуль Modbus TCP. Теперь можно задать раздельно значения для управления и для обратной связи.

По 4 пункту не понял. В Button всё ещё нет адреса для обратной связи. Или это только для Relay сделали, а для Button ещё нет? Ожидать в скором времени или как-то выкручиваться?

Добрый день! 


Проблему, которую вы описывали, мы решили исправить с помощью Relay. Вы теперь можете сделать, что при управлении у вас всегда будет отправляться значение 1, но для обратной связи 0 - это выключено, и 1 включено. Если мы вас верно поняли то это решит проблему для решения которой вы предлагали изменить Button. 

Так вроде бы обсудили это год назад. Не будет так работать! В этом случае нужно, чтобы значение через 0 переходило, иначе, что это за отправка 1? Это как залипший выключатель получается.

Проверил только-что, так и есть - не работает.

Прошу прощения, упустили этот момент. Давайте сделаем так: если значение на он и офф в записи одинаковое, то предварительно перед указанным значением будем отправляться 0, как при вкл., так и при выкл. ? 

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

Если на запись на ON и OFF - 1, при переключении отправляется 0.

Если на запись на ON и OFF - 0, при переключении отправляется 1.

Получается имитация НЗ и НР контакта соответственно. Так должно работать.

Planned

Спасибо, так и сделаем.

Добрый день. Реализовали это требование и оно доступно в модуле Modbus TCP. Есть ли у вас возможность попробовать этот функционал?

Добрый день! Удалось ли вам проверить новую версию модуля? 

Добрый день. Есть ли новости? 

Добрый день. 

Хочу вам напомнить, что обновили модуль Modbus TCP таким образом, что одинаковые значения на ON и OFF теперь обрабатываются с предложенной вами логикой. Надеюсь, что у вас найдется время проверить этот модуль, нам важно ваше мнение. 

Добрый день. Тестируем модуль Modbus TCP.

Как раз требуется функция включения/выключения с одной кнопки, по аналогии с задачей от SMH.

Протестировали решение с реле, когда отправляется одно и то же значение но с переходом через ноль.

Данное решение не очень удобное, по причине того, что в любом состоянии реле (выкл или вкл) в регистр записывается одно значение - 1. Т.е. в программе контроллера в этом регистре постоянно будет 1, меняющаяся на 0 в момент нажатия. Это несколько усложняет программу в контроллере, нужно отдельно обрабатывать такие регистры, вместо того чтобы например использовать их по логике ИЛИ. Но в целом это работоспособно.

Работать с button с отображением статуса дополнительного регистра было бы гораздо удобнее.

Как и говорил SMH все таки на button не хватает отображения статуса какого-либо регистра. 

Почему бы не добавить опционально например зеленую/красную точку/кружок/квадрат или что то подобное?

Добрый день, Юрий!

"Данное решение не очень удобное, по причине того, что в любом состоянии реле (выкл или вкл) в регистр записывается одно значение - 1. Т.е. в программе контроллера в этом регистре постоянно будет 1, меняющаяся на 0 в момент нажатия."

Объясните, пожалуйста, в чем разница такой реализации через реле с предлагаемой вами кнопкой? Мы готовы всеми силами помочь вам реализовать необходимый функционал, но пока до конца непонятна проблема. 

Сейчас, если в ON и OFF для реле задать одинаковые значения - будет переключаться переменная в регистре (1-0-1). Да, вернется значение 1. Но и для кнопки вы зададите значение 0 на нажатие и 1 на отпускание, по итогу в регистре остаётся значение 1.

Спасибо за ваш интерес к модулю Modbus TCP и к приложению i3 lite в целом. 

Добрый день.

1 Я использовал на запись на ON и OFF - 1, при переключении отправляется 0. Попробую использовать на запись на ON и OFF - 0, при переключении отправляется 1. Это более похоже на физическую кнопку.

Не хватает более детального описание функций. Я бы не узнал о функции кнопки для реле, если бы не наткнулся на данную ветку.

2. Наблюдается проблема: при перезагрузке/перезапуске проекта на панели, сразу не обновляются статусы, пока не изменят своего значения. 

Добрый день.

1) Документацию сделаем как только убедимся, что функционал работает как нужно Вам. Хорошо, ждем обратную связь. 

2) Иридиум сервер используете в проекте? Версия клиента и сервера (если он есть) какая? 

Сервер не используется, клиент 1.3.2:16292.

Находил на форуме описание такой же проблемы, там рекомендовано было это решать через правила и режимы. Пока не пробовал.

Клиент должен сам получать статусы при запуске. Проверим, чуть позже отпишу вам. Реализовывать это через правила и режимы некорректно.

Добавил Modbus TCP и виджет реле в версии 1.3.2. Статусы при запуске успешно получаю, правда я пробую через эмулятор модбас сервера, но разницы, наверно, нет. 
Быть может дело в модбас контроллере либо в каком-то конкретном виджете? После запуска проекта виджет Connection status показывает Online? 

Under review

Добрый день, Юрий. Есть ли новости? В последнем сообщений задал вам пару вопросов, которые могут помочь в решении проблемы.

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