|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
17.05.2020, 18:21 | #1 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Modbus функция 22 (16h)
Здравствуйте. По долгу службы я связан с автоматикой тепловых пунктов в г. Москве.
Так вот тут в основном применяются модульные контроллеры одного "известного в узких кругах" московского производителя. Сам контроллер никто кроме производителя не ремонтирует и не программирует - отсюда цены на ремонт у них космические. Предположил я, что эти контроллеры общаются со своими модулями по протоколу modbus. Просканировал и оказалось что да, обычный modbus. Только вот беда - некоторые модули пишутся функцией 22 (16h). Можно ли научить контроллеры Сегнетикс писать функцией 22? Больно уж хочется выкинуть все эти контроллеры, оставив только их модули и связать их, например, с Тримом. |
18.05.2020, 00:59 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.05.2020, 01:51 | #3 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Я не силён в этих дебрях. Википедия вот что говорит : 22 (0x16) — запись в один регистр хранения с использованием маски «И» и маски «ИЛИ» (Mask Write Register).
Запрос выглядит так : 41 16 00 02 FF F0 00 01 7A 11 Ответ повторяет запрос. В результате включается один из дискретных выходов модуля. При таком запросе отключается: 41 16 00 02 FF F0 00 00 BB D1 |
18.05.2020, 06:52 | #4 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 175
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
|
|
18.05.2020, 11:14 | #5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
LordN дело говорит.
Я ещё добавлю, что то, что говорит Вики совсем необязательно в таком виде поддерживается модулями. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
18.05.2020, 11:42 | #6 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Всё, что советует LordN я уже перепробовал в самом начале своего пути... Дело в том, что остальные модули (дискретного ввода, аналогового ввода, дискретного вывода с электронными выходными ключами я довольно быстро "нащупал" и они все читаются функцией 3 и пишутся функцией 16, соответственно Тримом я с ними связываюсь без проблем. А вот с с модулем 4 релейных выхода что только не перепробовал. Потом уже просканировал сеть на работающем приборе и увидел эту 22 функцию... Попробовал в программе-терминале сам вручную повторить такие запросы с функцией 22 - всё записывается, релюшки щёлкают.
Обидно получается, что все модули победил, а только эти нет. Нельзя ли реализовать эту 22 функцию в сегнетиксе? Вдруг это не так уж сложно)). |
18.05.2020, 12:05 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
https://dl.segnetics.com/PRODUCTS/TRIM5/C/ __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.05.2020, 13:18 | #8 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
То, что реализовать это можно, я не сомневаюсь. Дело в том, что я не обладаю для этого достаточными знаниями. В противном случае и писать бы сюда не стал.
Сформулирую вопрос иначе: Кто нибудь из форумчан готов взяться за реализацию этой самой 22 (16h) функции, в частности в контроллере Trim-5? С удовольствием рассмотрю ваши предложения, разумеется не за спасибо. |
18.05.2020, 13:55 | #9 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
1) Придётся писать собственный полный драйвер modbus. Просто "добавить" не получится - порт используется ядром SMLogix. Средняя по сложности задача. 2) Выполнить перехват трафика по интерфейсу с подменой некоторых функций - работы гораздо меньше, но квалификация требуется предельная. Программисты такого уровня недёшевы. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.05.2020, 13:59 | #10 | |
Senior Member
Регистрация: Jul 2009
Сообщения: 250
Благодарил(а): 0 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
|
|
18.05.2020, 22:38 | #11 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Программисты такого уровня, думаю, найдутся в компании Сегнетикс. Я ж ведь не какой то эксклюзивный протокол вам предлагаю запилить, а всего лишь расширить стандартный modbus. Подумайте, повторю, БОЛЬШИНСТВО тепловых пунктов в Москве собрано на этом оборудовании. Мне кажется многие согласились бы вместо того, чтобы выкладывать 50к за ремонт контроллера (который через год опять просится в ремонт) заменить его на что то более открытое и привлекательное для пользователя, например на контроллер от Сегнетикс.
Сохранив при этом все модули ввода-вывода, не переделывая вовсе шкаф автоматики. Мне кажется это может быть выгодно и вам, не в последнюю очередь. |
18.05.2020, 22:47 | #12 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Modbus функция 22 (16h)
Вы правда не знаете почему так?
__________________ RTFM |
18.05.2020, 22:59 | #13 | |
Senior Member
Регистрация: Jul 2009
Сообщения: 250
Благодарил(а): 0 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Может вам замутить переделку на сових теплопунктах и перейти на Сигнетикс полностью. Вы бы хоть фото выложили этих модулей, может кто-то уже занимался. |
|
19.05.2020, 09:45 | #14 |
Senior Member
Регистрация: Oct 2019
Адрес: Курск
Сообщения: 474
Благодарил(а): 11 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
поддержу! тем более топикстартер говорит что у него не завелся только один единственный модуль с 4 релейными выходами! пусть не полностью. но один модуль можно добавить и выбрать его такой конфигурации, чтобы заменить максимум существующих, если они рядом стоят. если вы что-то модернизируете, то скорее всего оно уже не новое. ввязываться в эту авантюру (с разбором модбас) для старого оборудования, которое в любой момент может крякнуть - это не есть правильный путь.
|
19.05.2020, 11:22 | #15 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 175
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
|
|
19.05.2020, 14:58 | #16 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
Это не выгодно никому.
1. Заказчик тратит деньги на техобслуживание - это накладные расходы. Не увеличивается капитализация. Не списывается старое оборудование. 2. Подрядчик зависит от предыдущего подрядчика и его качества работ. 3. Старый производитель оборудования теряет деньги на обслуживании. 4. Новый производитель оборудования не получает прибыль от продаж нового оборудования. Больше всего это не выгодно Вам. Полная ответственность за минимальные деньги. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
21.05.2020, 13:32 | #17 |
Новичок
Регистрация: Oct 2018
Сообщения: 20
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus функция 22 (16h)
Арсений, мне кажется, что вы как никто хорошо себе представляете объём работ для решения моей задачи. А соответственно можете назвать стоимость этого решения. Если не трудно, озвучте сумму в рублях.
Или какие то принципы вам не позволяют этого сделать? |
21.05.2020, 13:37 | #18 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Т.к. заранее понятно, что дорабатываться ничего не будет по экономическим причинам, смысла в исследовании нет. Цифру взять не откуда. Модуль FMR точно дешевле будет купить. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.05.2020, 20:47 | #19 | |
Senior Member
Регистрация: Dec 2015
Сообщения: 119
Благодарил(а): 22 раз(а)
Поблагодарили:
4 раз(а) в 4 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Потому что даже заплатив за программу, будучи находясь в мухосранске, что то там отлаживать может стать отличным геморроем. Ведь в худшем случае придётся отлаживать свою программу и ещё другого программиста. А как показал этот форум, левые программы могут быть ещё и через задницу написаны. В моём случае был ASCII и вместо того что бы разбираться с написанием ПО под Линукс , я взял плк который с ним работает из одной среды разработки со всем остальным. Потому что звонить специалисту с разницей в часовых поясах +7 как то не очень. |
|
22.05.2020, 03:58 | #20 | |
Сотрудник Segnetics
Регистрация: Dec 2008
Адрес: Оракул отдела продаж ООО"Сегнетикс"+7(812)564-50-01
Сообщения: 411
Благодарил(а): 90 раз(а)
Поблагодарили:
28 раз(а) в 27 сообщениях
|
Ответ: Modbus функция 22 (16h)
протокол на заказ как контроллер на заказ )
https://forum.segnetics.com/showthread.php?t=2159 Добавлено через 1 минуту Цитата:
проясните вопрос вам быстрее и ответят |
|
30.05.2020, 00:19 | #21 | ||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
И не так много там работы. Не с нуля же писать. 22-я и 23-я функция очень бы не помешали устройству претендующему на совместимость с modbus. Тем более 23 функция у Вас по сути реализована для R/W(out) привычным способом через назад. Хотя иногда лишнее вычитывание и мешает. Кстати 8-я функция для ECHO тоже реализована хоть и не в полном объеме. Да и 13-ю сделали ведь зачем-то для своих нужд. Ответы в стиле нам оно не надо конечно очень оригинальны. Modbus_Application_Protocol Цитата:
Да и протокол в характеристиках заявлен. Последний раз редактировалось ATS, 30.05.2020 в 00:42 |
||
01.06.2020, 11:18 | #22 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Принцип разумной достаточности: с 2004 года это первый запрос на функции 22/23. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
01.06.2020, 13:33 | #23 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
|
01.06.2020, 14:25 | #24 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Если честно, я вообще в душе не понимаю, почему там релюхи через маски включаются. Средний автоматчик мозг сломает, пока нормально ими управлять научится.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
01.06.2020, 15:16 | #25 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Маски очень хорошо работают там, где программист начинал с LD и ГОСТовских аппаратно-зависимых языков автоматизации в 80-90-х (таких еще немало, и их уровень зачастую выше, чем у молодежи). Чуется, оттуда же родом и поддержка этих функций в Modbus'е... |
|
01.06.2020, 15:32 | #26 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Явно огород делали для себя и почему не использовали 23-ю где все идет за одну транзакцию непонятно. |
|
01.06.2020, 15:38 | #27 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
01.06.2020, 15:46 | #28 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
Функция 15 (0x0F) Write Multiple Coils. Записываются все релюхи за один запрос. Один запрос, но невозможно пропустить релюху. Функция 22 (0x16) Mask Write Register. Можно записать одним запросом одну выборочную релюху а остальные не трогать. Можно еще сначала прочитать все релюхи, затем модифицировать свою, затем записать все. Но при мультимастерном доступе (как такое организовать на RTU тема отдельная, а на TCP так вообще запросто) происходят коллизии, когда один прочитал, второй в это время модифицировал, первый вернул на место. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|
01.06.2020, 15:49 | #29 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
А вот зачем это отдельному модулю с маленьким количеством, да ещё одновременно без R/W C/R - я этого не понимаю. Тем более, в вентиляшке. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
01.06.2020, 16:08 | #30 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Modbus функция 22 (16h)
Цитата:
На планерке программисту поставили задачу сделать просто, универсально. Времени выделили до обеда вместе с тестированием. И чтобы все работало и ничего не ломалось. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|