|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
25.10.2010, 08:04 | #1 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Заказчик просит полный модбас
В процессе поставки опытной партии установок, в которой система управления реализована на smh2010C, заказчик обратил внимание на отсутствие поддержки стандартных функций modbus-rtu.
В данный момент в smh2010С реализованы 3,4 и 16 функции modbus-rtu и нет поддержки функций 1, 2, 5 которые необходимы заказчику. Будет ли сделано это и в какие сроки? Письмо заказчика отправлено Фролову Руслану. |
25.10.2010, 10:46 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2010, 10:42 | #3 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Потестил.
Вопрос: почему на обращение с третьей функцией по адресу вне доступных переменных, контроллер возвращает нормальный ответ с нулевыми значениями регистров, а не ошибку с кодом недоступности адресов? |
02.12.2010, 11:09 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2010, 15:08 | #5 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
а что такое "запрещенная область ОЗУ"? Вроде всегда при обращении к несуществующим (не описанным) адресам переменных это и должно происходить.
|
02.12.2010, 15:25 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Запрещёнными являются только системные области ОЗУ. Область пользовательских данных доступна полностью. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2010, 15:56 | #7 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
А можно получить распределение системных и пользовательских областей памяти?
Если что можно будет дать эту ветку чтобы с вами пообщались инженеры АСУ Сургутнефтегаза насчет этого? Мне прислали письмо по этому поводу. Не хочется быть "испорченным телефоном". |
02.12.2010, 16:21 | #8 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Цитата:
У них есть чёткая таблица, показывающая где и что лежит. Если им нечем заняться, то у меня около подъезда снега намело немало А ссылку на ветку конечно же можете дать, форум у нас открыт для всех. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
02.12.2010, 16:32 | #9 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
В лоджике возможно переменной назначить произвольный адрес - если адрес будет находиться в системной области думаю ничего хорошего не произойдет. Вот и пытаюсь выяснить эти допустимые границы.
|
02.12.2010, 17:00 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2010, 23:00 | #11 | |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
|
|
27.01.2011, 16:09 | #12 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Пытаюсь прописать регистр с адресом 0x100 16-й функцией (preset regs).
Контроллер в ответ на запись выдает нормальный ответ. Читаю затем 4-й в ответ одни нули. В чем может быть проблема? И есть какие-то правила в плане диапазона адресов, количества разрешенных областей для опроса, максимального количества регистров? |
27.01.2011, 16:53 | #13 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Цитата:
Адреса любые, которые можно задать в лоджике. Про области мы с вами уже поговорили в этой теме. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
28.01.2011, 13:42 | #14 | ||
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Цитата:
|
||
28.01.2011, 14:46 | #15 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
К тому же никто вам не запрещает перейти на новый тип карты памяти (снять галку "Старая карта"), будет вам отлуп в большинстве случаев. Если за адресами уследите, конечно. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.01.2011, 16:04 | #16 | |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Старая карта не устраивает из-за невозможности задавать явно нужный базовый адрес карты адресов. Иногда верхний уровень имеет ограничение по диапазону адресации и старую карту с базовым адресом 0xa000 невозможно использовать. |
|
28.01.2011, 16:54 | #17 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Просто примите это как данность и всё. PS. Я, например, считаю что в нашей стране налоги несправедливы. И все мои знакомые тоже так считают. Мир вообще несправедлив . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
01.02.2011, 13:16 | #18 |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Ну это не моя блаж. Тестовую прошивку по телемеханике отправил инженерам по тм заказчика для тестирования. В ближайшие пару месяцев планируется сделать с полсотни установок с smh2010, видимо придется аналогично отвечать на подобные вопросы, что это особенность данного контроллера. Поэтому донимаю. На мой взгляд конечно ерунда. Если завернут, придется предлагать иное решение. А в пикселе модбас реализован аналогично?
|
01.02.2011, 14:12 | #19 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Поясню на более простоми примере: наш контроллер не может быть запитан от сети 220 вольт. Ему нужно 24 вольта. У заказчика есть и 24 вольта и 220 вольт, но при этом заказчик буквально рыдает от невозможности подключиться к 220В, хотя источник питания на 24В у него есть и ничем не нагружен. Другими словами - нужные данные читаются? Читаются. Нужные функции есть? Есть. В чём проблема-то заключается? Что при попытке прочесть ненужные данные прочитаются нули? А проблема ли это, если ненужные данные никогда не будут читаться? . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.02.2011, 11:48 | #20 | |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
|
|
02.02.2011, 12:07 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Протоколом никак не ограничен состав передаваемых данных. Протоколом НЕ описывается, когда возвращаются нули, когда единицы, когда ошибки. Проблема в том, что вы пытаетесь возложить на протокол те задачи, которые от него никак не зависят и применять правила протокола к этим задачам в корне неправильно. Вы правы, проблема именно психологическая. Контроллеры работают чётко в рамках протокола. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.02.2011, 15:09 | #22 | |
Senior Member
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
02 ILLEGAL DATA ADDRESS Адрес данных указанный в запросе не доступен данному подчиненному. |
|
02.02.2011, 15:16 | #23 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
Это указание на возможность проинформировать об ошибке. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.02.2011, 15:40 | #24 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Заказчик просит полный модбас
Пардон, что вмешиваюсь в интеллектуальную беседу уважаемых донов, но тем не менее хочу немного рассказать про популярный протокол фирмы Модикон, известный как Модбас.
Этот протокол создавался в те давние времена, когда далеко не в каждом даже крутом программируемом контроллере использовались микропроцессоры. Поэтому коммуникационный протокол разрабатывался с учетом того, что обрабатываться он будет во-первых, не нагружая основной процессор, во-вторых, не программно, а аппаратно. Кстати в то время даже основной процессор чаще всего представлял собой автомат состояний, собранный на горсти мелкосхем низкой степени интеграции. А если и стоял микропроцессор, то очень тормозной, всего несколько сотен тысяч операций в секунду... Ну не было тогда возможности контролировать выход адресов за диапазон. Аппараные автоматы это слишком сильно усложняло, а мелкопроцессоры не успевали выполнять более важные задачи. Была возможность выставить на шину адреса значение из коммуникационного пакета и записать/прочитать значение из памяти во время нужной фазы тактового генератора. Если в контроллере нет платы памяти с таким адресом, то прочитаются нули. Или единицы, смотря какая память и куда притянута шина данных. Так что формировать ошибку выхода адреса за диапазон формировать было просто некому. А потом протокол в таком виде прижился и менять его не стали... |
02.02.2011, 15:56 | #25 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Заказчик просит полный модбас
Ой, неправду написал.
Тогда память что на ферритах, что полупроводниковая, была ненадежной и всегда использовался как минимум бит четности (а то и избыточность с восстановлением ошибок кодом Хемминга, например). Поэтому отсутствующая плата памяти должна была вызвать ошибку 2 "такого адреса нет". А вот если память есть, но часть ячеек никем не используются (т.е. ситуация, про которую avas писал), то никаких ошибок нет. Если ячейки исправны, разумеется. |
02.02.2011, 16:29 | #26 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Заказчик просит полный модбас
Цитата:
И не мимо адреса, а вне банка данных, т.е. если, положим, 10..15 биты адреса не использовались, то приход единицы на любой из этих битов транслировался в старший бит ответа. Всего одна "мелкосхема" OR. А вообще изначально ответ ошибки должен формироваться при занятости устройства. Т.е. пришла команда включить выход и за ней ещё одна такая же - вторая получала "отлуп". . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.02.2011, 17:26 | #27 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Заказчик просит полный модбас
Уважаемые Доны ваши ответы на вопросы только вызывают новые вопросы.
А если задать адрес заведомо выходящий за границы памяти, отведенной в контроллерах Segnetics под хранение Holding Registers, что будет в ответном сообщении. А если туже самую операцию проделать с другими типами запросов. А откуда вы знаете какая аппаратура будет спрашивать у контроллера данные, а что она будет делать если получит нули, а как сообщить этой аппаратуре что она вообще-то не туда обращается, а почему у вас из незаписанной ячейки ПЗУ читается Nan, а не нули. И позвольте откуда такие точные данные что было вначале с протоколом, а что было потом, вы что присутствовали в команде разработчиков? Предьявите ссылки на документы, выдержки из предыдущего выпуска стандарта MODBUS. Если таковых нет надо опираться на существующий стандарт 1.1b. А если протестировать всю вашу аппаратуру на предмет поддержки протокола да с результатами ознакомить. |
03.02.2011, 21:28 | #28 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Заказчик просит полный модбас
Поищите в том же документе MODBUS Application Protocol Specification V1.1b указание на то что для неописанных в карте памяти (но существующих!) регистров должен возвращаться код ошибки. Такого указания нет, зато есть наводящее на размышления об уровне "интеллектуальности" Modbus, описание соседнего кода ошибки, 03 - ILLEGAL DATA VALUE.
PS: как пример, в документации на частотники фирмы Schneider-Electric, нынешнего владельца фирмы-разработчика протокола Modbus есть прямой запрет записи по неописанным в документации адресам, с указанием что это может вывести частотник из строя. |
03.02.2011, 22:04 | #29 | ||
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Заказчик просит полный модбас
Цитата:
Цитата:
|
||
04.02.2011, 06:57 | #30 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Заказчик просит полный модбас
1. Если задать адрес заведомо выходящий за границы памяти, отведенной в контроллерах Segnetics под хранение Holding Registers, что будет в ответном сообщении?
2. Если туже самую операцию проделать с другими типами запросов? Прошу ответить и на эти вопросы. |