#136 assigned задача
Удаленное изменение настроек ЧРП
Сообщил: | san | Владелец: | alx |
---|---|---|---|
Приоритет: | низкий | Этап разработки: | 2-я очередь |
Ключевые слова: | Копия: | alx, Art_M, andrei, san |
Описание (последним изменил )
Ещё одно предложение от Art_M:
Рассмотреть возможность удаленного "считывания" и изменения любых уставок ЧРП, пусть даже если это будет происходить в каком-нибудь, упрощенном текстовом режиме.
История изменений (31)
comment:4 by , 6 лет ago
Артем, если этот тикет повторяет ТЗ " Приложение 2. Настройки для записи в ЧРП.", то может закроем его? Зачем в двух местах одно и тоже?
В приложении нужно еще добавить уставки ЧРП, которые нужно читать.
Куда только мы столько информации денем?
comment:5 by , 6 лет ago
Этот тикет не повторяет то что в тз.
Здесь Артём предлагает дать возможность пользователю считать/записать любую настройку(регистр) ЧРП, а по ТЗ мы читаем/пишем только малую часть настроек.
comment:6 by , 6 лет ago
Мне кажется странным что Артем в двух местах предлагает различные решения))))
comment:7 by , 6 лет ago
Это не различные решения одной задачи, это разные задачи.
- В ТЗ указано какие значения в какие регистры ЧРП должен записать контроллер
- А здесь Артём предлагает инструмент позволяющий пользователю, подключенному удаленно к контроллеру, считывать и записывать любые значения в любые регистры ЧРП.
comment:8 by , 6 лет ago
Задача понятна.
Как вариант: Отдельная вкладка в веб-интерфейсе с парой полей для ввода и кнопки считать, записать.
Пока это не самая интересная проблема.
следующий: 11 comment:9 by , 6 лет ago
На мой взгляд нет необходимости выносить этот функционал в веб-интерфейс.
в каком-нибудь, упрощенном текстовом режиме
Думаю что, для решения задач Артёма, достаточно будет команд работы с модбас через консоль.
comment:10 by , 6 лет ago
Если это требуется только для Артема, то да. И приоритет тогда не средний, а низкий.
comment:11 by , 6 лет ago
Replying to san:
Думаю что, для решения задач Артёма, достаточно будет команд работы с модбас через консоль.
При работающем процессе smarthdcd посторонним процессам лезть в шину modbus нельзя. На шине может быть только один мастер. Так как smarthdcd постоянно ведет обмен сообщениями по шине modbus (то есть сообщение отправлено и ожидается ответ на него), отправка в это же время "постороннего" сообщения нарушит логику работы шины.
Работоспособный вариант - это если внешняя команда будет передавать запрос не прямо в шину, а процессу smarthdcd через какой-то специальный интерфейс, а smarthdcd, в свою очередь, поставит этот запрос в общую очередь. Но если все равно делать дополнительный интерфейс, то почему это не должен быть web-интерфейс?
comment:12 by , 6 лет ago
все равно делать дополнительный интерфейс
В таком случае согласен, пусть будет в веб-интерфейсе.
comment:13 by , 6 лет ago
Тогда предварительное решение:
Отдельная вкладка в веб-интерфейсе. Два поля для ввода значений: адрес регистра и содержимое. Кнопки ОТПРАВИТЬ и СЧИТАТЬ.
ОТПРАВИТЬ отправляет содержимое в регистр. СЧИТАТЬ считывает содержимое указанного регистра.
Возражения?
comment:14 by , 6 лет ago
У меня нет возражений, но я бы ещё добавил какой-то индикатор успешности/неуспешности записи или чтения.
comment:15 by , 6 лет ago
Владелец: | изменён с | на
---|---|
Копия: | added |
Приоритет: | средний → низкий |
Состояние: | new → assigned |
Тип: | улучшение → задача |
С индикатором согласен.
Передаю тикет Алексею.
следующий: 30 comment:16 by , 6 лет ago
С учетом того, что предложено читиать/писать "сырые" данные (то есть фактически реализовать две функции Modbus), мне показалось, что реализовать это будет очень просто. Но потом я столкнулся с неожидинной проблемой.
Cейчас HTTP-сервер реализован так, что предполагает немедленное выполнение любой принятой команды API и отправку ответа. В данном же случае после получения команды API генерируется запрос Modbus, который ставится в очередь на отправку в шину, после чего соответствующий HTTP-поток должен заснуть, так как ответа на запрос еще нет. И только после получения ответа от ЧРП (или таймаута) дложен быть сгенерирован ответ, и поток HTTP разбужен для отправки ответа.
Пока для быстрого теста функция реализована частично: при получении запроса на запись соответствующий запрос ставится в очередь - и все, никакого ожидания ответа от ЧРП нет (см. r711).
Далее (это я пишу скорее сам для себя) необходимо доработать внутренний интерфейс между сервером и командами API:
- добавить обработчику возвращаемое значение, по которому определять, была ли команда выполнена полностью или требуется "усыпить" HTTP-поток;
- кроме запроса/ответа обработчику команды передавать еще и идентификатор HTTP-потока;
- сделать функцию пробуждения HTTP-потока по его идентификатору, когда будет готов ответ.
Должно получиться как-то так:
следующий: 18 comment:17 by , 6 лет ago
Небольшое замечание по внешнему виду
Для пользователя удобней было бы задавать не адреса регистров а номера параметров, предлагаю добавить поле "Номер параметра" в интерфейс. Например, если пользователь хочет записать чтото в параметр 05-01, он введёт в это поле 501, и дальше в зависимости от типа чрп значение будет записано в нужный регистр. Если же поле "Номер параметра" не заполнено, то запись/чтение производить по адресу регистра из поля "Адрес".
comment:18 by , 6 лет ago
Replying to san:
Для пользователя удобней было бы задавать не адреса регистров а номера параметров...
предлагаю добавить поле "Номер параметра" в интерфейс.
А еще им было бы удобнее, например, задавать ток в Амперах (120.5 А), а не "сырое" значение в сантиамперах или еще непонятно в каких единицах. :) И мы возвращается к вопросу, который мы уже недавно обсудили устно - на каком уровне должна работать эта функция - на низком (уровень функций шины Modbus) или высоком (уровень настроек ЧРП)...
comment:19 by , 6 лет ago
Да, всё правильно функция должна работать на низком уровне.
Но суть предложения в том что незначительное усложнение функции даст пользователю значительное увеличение удобства использования.
comment:20 by , 6 лет ago
По крайней мере Амперы в сантиАмперы я могу в уме перевести, а для перевода из HEX в DEC еще и не каждый калькулятор подойдет)))
Но для быстроты можно и оставить, я приспособился.
следующий: 22 comment:21 by , 6 лет ago
Можно ограничиться добавлением в таблице ТЗ с параметрами десятичного адреса.
А тикет закрыть, т.к. задача выполнена.
следующий: 23 comment:22 by , 6 лет ago
comment:23 by , 6 лет ago
comment:24 by , 6 лет ago
Артем просит: кроме просмотра и записи уставок ЧРП через веб-интерфейс нужно иметь возможность сбросить ошибку. Например если в случае ввода вне диапазона получили СЕ4
следующий: 26 comment:25 by , 6 лет ago
Артем просит: кроме просмотра и записи уставок ЧРП через веб-интерфейс нужно иметь возможность сбросить ошибку.
Это не имеет отношения к данному тикету
Руки прочь от ТЗ :)
Зря ты так
Ну добавь, мне не жалко, только эта информация к тз не относится
comment:26 by , 6 лет ago
Ну добавь, мне не жалко, только эта информация к тз не относится
Хоть где-то останется информация доступная и легко находимая.
Для этого тикета осталось научиться считывать регистры из ЧРП.
comment:27 by , 6 лет ago
Опыт показал - проблема у нас есть - не умеем записывать уставку номинального тока мотора 1-24 в чрп данфосс.
comment:28 by , 6 лет ago
Так же опыт показал, а ответ поддержки удостоверил, что введенные уставки Danfoss хранятся только в оперативной памяти. Необходимые действия для записи в энергонезависимую память Danfoss направил на почту Саше.
следующий: 31 comment:30 by , 6 лет ago
Replying to alx:
С учетом того, что предложено читиать/писать "сырые" данные (то есть фактически реализовать две функции Modbus), мне показалось, что реализовать это будет очень просто. Но потом я столкнулся с неожидинной проблемой.
Алексей, директор просил задать тебе вопрос. Выполняю его просьбу.
Каковы примерные сроки реализации этого тикета в Алексее-часах?
comment:31 by , 6 лет ago
Replying to san:
Каковы примерные сроки реализации этого тикета в Алексее-часах?
Могу оценить это в 25-40 Алексея-часов.
Если не затруднит, давайте скорректируем, путем добавления слова "считывания"
Рассмотреть возможность удаленного "считывания" и изменения любых уставок ЧРП, пусть даже если это будет происходить в каком-нибудь, упрощенном текстовом режиме.