|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
19.02.2009, 00:01 | #1 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
ModBus функции - совместимость
Когда-то тему уже подымал, но на форуме ее уже вытерли.
Какие функции ModBus доступны у SMH для работы с этим протоколом? Поскольку есть ряд устройств (к таким и SMH относится), которые нижеприведенный перечень полностью не поддерживают. Возникает вопрос о совместимости с устройствами ModBus сторонних производителей и устройств производства Segnetics. (выдержка из http://www.segnetics.com/images/Modbus/pi_mbus_300.pdf) 01 Read Coil Status 02 Read Input Status 03 Read Holding Registers 04 Read Input Registers 05 Force Single Coil 06 Preset Single Register 15 Force Multiple Coils 16 Preset Multiple Registers |
19.02.2009, 15:22 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совсметисоть
Доступны все из перечисленных. Как в SMH2010, так и в Pixel.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
19.02.2009, 23:07 | #3 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совсметисоть
Разве?
Наличие функций 1,2,3,4, 15,16 проверил следующим образом: создал карту памяти, а потом ее сконвертил вашей програмкой в конфигурацию ОРС Lectus и там посмотрел. А как тогда задать функцию "05 Force Single Coil" и "06 Preset Single Register "? Только не говорите, что 15 и 16 функции с единичной величиной группы (Coil и Register, соответственно) их заменяют. Как быть тогда с устройствами понимающими только 05 и 06 функции? |
23.02.2009, 11:51 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совсметисоть
Цитата:
Нужно снять галку "групповые запросы" в карте памяти такого устройства. Вместо функций 15 и 16 будут использованы 05 и 06. Если говорить об SMH2010 и Pixel как о "slave", то весь этот набор поддерживался с самого рождения. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
24.02.2009, 15:15 | #5 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совсметисоть
Благодарю. Как-то выпустил из виду галочки по групповым запросам.
|
06.03.2009, 15:10 | #6 |
Member
Регистрация: Dec 2006
Сообщения: 43
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Имеется ИК-модуль стороннего производителя, который якобы работает по modbus (производитель так заявляет).
Но в описании к нему имеем интересную ситуацию. ИК-пакет вычитывается функцией 02 с параметрами адрес = 1, n = 1. Но вот в ответе приходит n != 1 и вообще заранее неизвестно каким оно будет, это n. А за ним будет следовать n бит (уже как по спецификации). Передо мной поставлена задача вычитать ИК-пакет, используя SMH2010 как мастер. Очевидно, что тривиального или же просто "человеческого" решения тут нет. Но может, есть какая-то хитрость (кроме программирования на Си ), используя которую можно всё-таки вычитать такой вот пакет неизвестной длины, при этом отправляя запрос на вычитку всего одного дискретного входа? |
06.03.2009, 17:37 | #7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Нереально. На запрос к устройству "1" должен придти ответ от устройства "1".
Всё остальное скипается скорее всего ещё на уровне драйвера. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
19.11.2009, 17:53 | #8 |
Новичок
Регистрация: Apr 2008
Сообщения: 26
Благодарил(а): 11 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ModBus функции - совсметисоть
Как раскладываются в памяти эти самые блоки "выход" для карты памяти модбасовой?
Перевожу: обещал людям выдать по запросу F3 (Read Holding Registers), а карта памяти говорит, что это Input Registers. Данными ,которые передаю в "выход" являются результаты вычислений (в частности, у меня там побитовое ИЛИ). Как их превратить в холдинги? |
19.11.2009, 19:34 | #9 | |
Новичок
Регистрация: Apr 2008
Сообщения: 26
Благодарил(а): 11 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ModBus функции - совсметисоть
Цитата:
А все от того, что привык по-другому пользовать модбас (и, по-видимому, многие люди пользуют его упрощенно, судя по наличию обсуждений этого момента на данном форуме). Или можно? Последний раз редактировалось mcleon, 19.11.2009 в 19:48 |
|
20.11.2009, 10:31 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совсметисоть
Цитата:
Чтение холдингов в модбасе существует исключительно для контроля того, что вы записали в "регистры аналоговых выходов", но никак не для того, чтобы получать информацию о том, какое внешнее напряжение приходит на эти выходы Модбас - аппаратно-зависимый протокол, подходить к нему мерками ЛВС не стоит. Обратите внимание на названия областей мамяти: Coil - катушка, Hold - защёлка... Coil status - состояние катушки, Input status - состояние входа... . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
20.11.2009, 10:42 | #11 |
Новичок
Регистрация: Apr 2008
Сообщения: 26
Благодарил(а): 11 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ModBus функции - совместимость
Спасибо.
Вот нравится мне, что вы быстро реагируете. UPD - хелпы обновите, пожалуйста |
27.11.2009, 11:14 | #12 |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Имеется контроллер SMH-2010. Необходимо выходы как и входы настроить так, чтоб их можно было читать функцией 03h.
Странно то, что при создании проекта и при первой загрузке получилось входа и выхода организовать по-порядку и читать одним запросом функцией 03h. Но после изменения проекта и загрузке по-новой выхода читаются только функцией 04h. |
27.11.2009, 13:14 | #13 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Затолкайте значения состояний входов-выходов в одну переменную типа int, задайте ей фиксированный адрес.
|
27.11.2009, 13:50 | #14 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Например: у меня есть датчик уровня, сигнализатор состояния и кнопка. Дискретные сигналы я перевожу bool->int и int->bool. И пронумеровал по-порядку 40960, 40961 и 40962. Скриншот прилагается. Первые два входа читаются только функцией 04h, а последний выходной только 03h. Мне как-то удалось раньше настроить, что все одним запросом читало функцией 03h, а сейчас никак не получается. Работа стала... |
|
02.12.2009, 12:04 | #15 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2009, 12:08 | #16 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Решения вашей проблемы не существует. Попробуйте всё же читать input registers предназначенной для этого командой. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.12.2009, 02:48 | #17 | |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Вот и запакуйте в одну переменную int значение AI с желаемой точностью и значения bool. А в приемнике распакуйте. Это и подразумевалось по "затолкать" |
|
03.12.2009, 19:58 | #18 | ||
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Цитата:
А вот ещё проблема, кстати, касаемая того же проекта, что тут выкладывал раньше. Есть устройство сигнализирования при загазованности (БПС-21М). Данные можно читать по Modbus RTU. Имеется 11 каналов. Адрес каждого канала 0, 2, 4, 6... и так далее. Но запрос должен состоять из опроса каждого канала отдельно по 2 регистра... Если больше или меньше, то возвращает ошибку. Как правильно составить таблицу адресов? - Если таблица состоит из 11 записей и стоит галочка группировать, то оно создаёт один запрос на всё. И соответственно не работает. - Если убрать галочку группировки, то лоджик не хочет компоновать, пишет памяти не хватает. - Если поставить на каждую запись разный период опроса, то попеременно некоторые значения получаются, некоторые нет. |
||
04.12.2009, 14:31 | #19 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
05.12.2009, 00:57 | #20 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
|
|
06.12.2009, 15:09 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
06.12.2009, 22:27 | #22 | ||
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Последний раз редактировалось Arsie, 07.12.2009 в 09:59 |
||
07.12.2009, 09:59 | #23 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
"Одноразовый" запрос - это запрос с нулевым временем цикла. Создание нескольких слейвов ничего не изменит во времянках. Разве что если в сети больше одного подчинённого устройства и тогда можно перемежать слейвов с разными адресами. Опять же, сами по себе времянки не изменятся, но контроллер будет их опрашивать слейвов попеременно, что улучшит ситуёвину. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
07.12.2009, 22:50 | #24 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Цитата:
Ещё вопрос: есть в устройстве переменная "уставка", я её должен читать и по надобности менять. Но чтобы я не делал, при запуске она обнуляется. Как мне сделать, чтоб она не обнулялась? Есть примерчики? |
|
08.12.2009, 03:01 | #25 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Нулевое время цикла означает, что период (цикличность) опроса равен 0. Действительно, если на появившийся дополнительный вход переменной с нулевым циклом не подавать дискретный сигнал "опрос", то опрос происходить не будет.
В самой же программе реализуете удобный Вам и управляемый программно период опроса. На счет уставки. Наверняка, если макрос записи в параметр написан Вами, то при первом тике происходит запись значения "0" в переменную (например не успевает вычитаться значение из памяти, а при первом тике оно равно "0"). Если же используете запись с "0"-м циклом , то сможете отследить при подаче команды на запись какое же значение будет записано в переменную. |
27.09.2016, 01:03 | #26 |
Senior Member
Регистрация: Apr 2013
Сообщения: 117
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Здравствуйте,имеется пульт daikin с модбас...в описании: 0х03- read holding register,0х04- read input register,0х10- write multiple register...
с 1-16 - региcтры R, c 50-60- регистры R/W....в итоге все данные считываю,а послать ничего не получается....прикрепил карту памяти,где может быть ошибка? |
27.09.2016, 11:22 | #27 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
Попробуйте отключить групповые запросы.
И подробнее надо писать. Что за пульт, ссылку на мануал, и т.д. ... __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
27.09.2016, 11:27 | #28 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ModBus функции - совместимость
Поддерживаю предыдущего оратора. Мало информации. Инструкцию прикрепите к сообщению. попробуем помочь разобраться!
__________________ В сегнетиксе не работаю с самого начала 2019 года. Последний раз редактировалось Gromov, 27.09.2016 в 12:22 |
27.09.2016, 13:41 | #29 |
Senior Member
Регистрация: Apr 2013
Сообщения: 117
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
без проблем....прикрепляю...групповые пробовал отключать..не помогло
|
27.09.2016, 15:19 | #30 |
Senior Member
Регистрация: Apr 2013
Сообщения: 117
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ModBus функции - совместимость
вот сама прога
|