|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
01.06.2020, 16:16 | #31 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Вентустановкой управляют 2-3-4-5 контроллеров? Пока не могу понять проблемы, если контроллер один.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
01.06.2020, 16:24 | #32 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
|
01.06.2020, 16:44 | #33 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Мы соответствуем древнему Rev J. стандарта. Про неё там:
DescriptionДругими словами, имеет право и не быть. В отличии от функций 05/06. Там в стандарте вообще много всего необязательного есть, в том числе и пересылка файлов. Хорошо, ИТП. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
01.06.2020, 17:11 | #34 | ||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Цитата:
|
||
01.06.2020, 17:39 | #35 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
А на деле, выходит - всё-таки только вентиляшка, ага? P.S. Градирня открытого типа (производителя из очень южной азии умолчим), 12 клапанов, 6 насосов - все управляется через реле. Чем управление отдельными клапанами или насосами при изменении производительности не задача для 22-й функции? P.P.S. А вот обязательность чтения ппосле операции записи - надо убирать, как страшный сон. Даже в ревизии J этого "улучшизма" не наблюдается, а нервы он портит регулярно, стоит только сделать шаг влево или шаг вправо от возможностей Конструкторов... |
|
01.06.2020, 17:48 | #36 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Управляется несколькими контроллерами? Каков аргумент использования именно 22?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
01.06.2020, 17:54 | #37 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
А аргумент - возможность управления каскадами "по наработке", независимо друг от друга (ну как в ротации насосов) баз извращений с вычиткой, маскированием и обратной записью ради закрытия клапана или запуска насоса. UPD: Да, я в курсе, что возможен и порегистровый вариант. |
|
01.06.2020, 18:20 | #38 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Я ж писал ранее, в мультимастере в задаче управления тем же освещением вопросов нет. Выключатель пишет бит по маске и по адресу и в душе не чает, что там с остальными битами и кто сейчас их пишет. Это несомненно удобно. Хотя другой вопрос, что там и обычных битов хватает. Как и в вашем примере. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
01.06.2020, 19:55 | #39 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Дайте свои 5 копеек вставлю, а то развел тут костёр...
Меня бы устроил такой вариант: не дополнять драйвер или что там ещё, не знаю тонкостей, для полноценной реализации функции 22 с её "масками" и прочими сказками, а лишь сделать так, чтобы в запросе на запись функцией 16 на конкретный адрес вместо 16 (10h) во втором байте отправлялось 22(16h) с корректным вычислением контрольной суммы запроса. Проверил, так тоже получается управлять этим модулем, хоть и не так, как задумал производитель. Это сложно сделать? |
01.06.2020, 22:28 | #40 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Modbus функция 22 (16h)
Этого категорически НЕЛЬЗЯ делать, т.к. появляется неопределенность в поведении миллионов устройств, использующих функцию 16 в соответствии со стандартом.
P.S. А в вашем случае, чем извращаться с поддержкой древней железки, проще (и, скорее всего, дешевле) будет поменять её на новую, знающую о функциях 6 и 16. Даже для госструктуры это проще. Добавлено через 8 минут Цитата:
Хех, схожую задачу решал (таки тоже по освещению - вот же ж вы угадали!). Без мультимастера, но с местным управлением - тыкнул кнопочку - включилось, тыкнул еще - отключилось. И таких кнопочек - 6 каналов на УСО, поддерживающих только запись регистров целиком, вот прям обратный случай железяки топикстартера (и никогда не знаешь, что там включено вручную, что отключено. Но вот что-то надо включить сейчас скадой, или отключить). Приходилось вычитывать состояние, маскировать, и записывать взад. Последний раз редактировалось ailcat, 01.06.2020 в 22:39 |
|
01.06.2020, 23:00 | #41 | |||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Для двух масок она по структуре и будет как 16-я при передаче двух регистров. Запросы и ручками в контроллере подправить можно, но mbs их не понимает. Цитата:
Причем есть еще две её сестрицы которые функции 6 и 16 вполне понимают... Цитата:
Другими словами некоторые Модиконы 25 лет назад уже понимали эту функцию... Современным видимо не дано. Последний раз редактировалось ATS, 01.06.2020 в 23:21 |
|||
02.06.2020, 01:29 | #42 | |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Цитата:
Конечно глупо. И конечно не подвину. Но отчего ж не попробовать... Добавлено через 15 минут И ведь правда, Арсений, отчего ж вашим программистам не лень по несколько раз в году выпускать лоджик новой версии? Может таки в новой-новой версии вместо подтирания косяков версий предъидущих немного расширить функционал? Это я про 22 функцию))) Тем более, как показала тема, не один я проявил к этому интерес. |
|
02.06.2020, 11:33 | #43 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 341
Благодарил(а): 0 раз(а)
Поблагодарили:
255 раз(а) в 251 сообщениях
|
Ответ: Modbus функция 22 (16h)
Позвоните в отдел продаж, сделайте заказ на N-контроллеров, скажите, что в них нужна 22 функция. Дальше по ситуации
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
02.06.2020, 14:19 | #44 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Всего-то проблем добавить обработку 22-й в mbs по аналогии с 16-й. Слейву 2 регистра из шаредов отправить и ответ проверить. При наличии исходника там копипаста на полчаса. Ядро лоджика даже трогать при этом не надо. А уж запросики для слейва ручками подправим и лишние чтения выбросим. |
|
02.06.2020, 16:34 | #45 | |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 341
Благодарил(а): 0 раз(а)
Поблагодарили:
255 раз(а) в 251 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
|
02.06.2020, 20:26 | #47 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Возможность изменения битов регистров хранения.
Код:
The function’s algorithm is: Result = (Current Contents AND And_Mask) OR (Or_Mask AND (NOT And_Mask)) For example: Hex Binary Current Contents= 12 0001 0010 And_Mask = F2 1111 0010 Or_Mask = 25 0010 0101 (NOT And_Mask)= 0D 0000 1101 Result = 17 0001 0111 |
02.06.2020, 21:49 | #48 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 175
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
|
|