Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2010, 08:04   #1
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Заказчик просит полный модбас

В процессе поставки опытной партии установок, в которой система управления реализована на smh2010C, заказчик обратил внимание на отсутствие поддержки стандартных функций modbus-rtu.
В данный момент в smh2010С реализованы 3,4 и 16 функции modbus-rtu и нет поддержки функций 1, 2, 5 которые необходимы заказчику. Будет ли сделано это и в какие сроки?
Письмо заказчика отправлено Фролову Руслану.
avas вне форума   Ответить с цитированием
Старый 25.10.2010, 10:46   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
В процессе поставки опытной партии установок, в которой система управления реализована на smh2010C, заказчик обратил внимание на отсутствие поддержки стандартных функций modbus-rtu.
В данный момент в smh2010С реализованы 3,4 и 16 функции modbus-rtu и нет поддержки функций 1, 2, 5 которые необходимы заказчику. Будет ли сделано это и в какие сроки?
Письмо заказчика отправлено Фролову Руслану.
Все эти функции поддерживаются контроллером SMH2010 уже лет шесть, если не дольше. Короче, с момента своего создания.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.12.2010, 10:42   #3
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Потестил.
Вопрос: почему на обращение с третьей функцией по адресу вне доступных переменных, контроллер возвращает нормальный ответ с нулевыми значениями регистров, а не ошибку с кодом недоступности адресов?
avas вне форума   Ответить с цитированием
Старый 02.12.2010, 11:09   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Потестил.
Вопрос: почему на обращение с третьей функцией по адресу вне доступных переменных, контроллер возвращает нормальный ответ с нулевыми значениями регистров, а не ошибку с кодом недоступности адресов?
Потому что в ОЗУ на этих местах записаны нули. Недоступность возвращается тогда, когда вы попадаете в запрещённую область ОЗУ.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.12.2010, 15:08   #5
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

а что такое "запрещенная область ОЗУ"? Вроде всегда при обращении к несуществующим (не описанным) адресам переменных это и должно происходить.
avas вне форума   Ответить с цитированием
Старый 02.12.2010, 15:25   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
а что такое "запрещенная область ОЗУ"? Вроде всегда при обращении к несуществующим (не описанным) адресам переменных это и должно происходить.
Слова "несуществующие" и "неописанные" не являются тождественными.

Запрещёнными являются только системные области ОЗУ. Область пользовательских данных доступна полностью.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.12.2010, 15:56   #7
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

А можно получить распределение системных и пользовательских областей памяти?
Если что можно будет дать эту ветку чтобы с вами пообщались инженеры АСУ Сургутнефтегаза насчет этого? Мне прислали письмо по этому поводу.
Не хочется быть "испорченным телефоном".
avas вне форума   Ответить с цитированием
Старый 02.12.2010, 16:21   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
А можно получить распределение системных и пользовательских областей памяти?
Да не вопрос: см. картинку.



Цитата
Сообщение от avas
Если что можно будет дать эту ветку чтобы с вами пообщались инженеры АСУ Сургутнефтегаза насчет этого? Мне прислали письмо по этому поводу.
Не хочется быть "испорченным телефоном".
Если это те самые люди, которые не нашли упомянутых вами функций modbus, то постарайтесь убедить их, что информация о размещении системных областей никак им не поможет в разработке софта и тратить ваше и моё время ради удовлетворения любопытства как минимум несерьёзно.

У них есть чёткая таблица, показывающая где и что лежит. Если им нечем заняться, то у меня около подъезда снега намело немало

А ссылку на ветку конечно же можете дать, форум у нас открыт для всех.


.
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.PNG
Просмотров: 511
Размер:  69.6 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.12.2010, 16:32   #9
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

В лоджике возможно переменной назначить произвольный адрес - если адрес будет находиться в системной области думаю ничего хорошего не произойдет. Вот и пытаюсь выяснить эти допустимые границы.
avas вне форума   Ответить с цитированием
Старый 02.12.2010, 17:00   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
В лоджике возможно переменной назначить произвольный адрес - если адрес будет находиться в системной области думаю ничего хорошего не произойдет. Вот и пытаюсь выяснить эти допустимые границы.
В лоджике невозможно поместить переменную в системную область.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.12.2010, 23:00   #11
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата Если им нечем заняться, то у меня около подъезда снега намело немало
Arsie ЖЖОТ !
vladun вне форума   Ответить с цитированием
Старый 27.01.2011, 16:09   #12
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Пытаюсь прописать регистр с адресом 0x100 16-й функцией (preset regs).
Контроллер в ответ на запись выдает нормальный ответ. Читаю затем 4-й в ответ одни нули.
В чем может быть проблема?
И есть какие-то правила в плане диапазона адресов, количества разрешенных областей для опроса, максимального количества регистров?
avas вне форума   Ответить с цитированием
Старый 27.01.2011, 16:53   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Пытаюсь прописать регистр с адресом 0x100 16-й функцией (preset regs).
Контроллер в ответ на запись выдает нормальный ответ. Читаю затем 4-й в ответ одни нули.
В чем может быть проблема?
Holding Registers читаются фукнцией 03h.


Цитата
Сообщение от avas
И есть какие-то правила в плане диапазона адресов, количества разрешенных областей для опроса, максимального количества регистров?
Размер буфера передачи 128 байт у самого "слабого" контроллера.

Адреса любые, которые можно задать в лоджике.

Про области мы с вами уже поговорили в этой теме.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.01.2011, 13:42   #14
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от Arsie
Holding Registers читаются фукнцией 03h.
.
Поспробовал - заработало. Правда осадок все же остался (см. ниже)



Цитата:
Сообщение от Arsie
Размер буфера передачи 128 байт у самого "слабого" контроллера.

Адреса любые, которые можно задать в лоджике.

Про области мы с вами уже поговорили в этой теме.
.
Насчет областей у кого из знакомых не спрашивал, у всех понимание аналогичное моему: если адреса по которому происходит обращение с функциями 3,4 в карте регистров нет - должна возращаться ошибка, а не нормальный ответ с нулевыми значениями.
avas вне форума   Ответить с цитированием
Старый 28.01.2011, 14:46   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Поспробовал - заработало. Правда осадок все же остался (см. ниже)
Насчет областей у кого из знакомых не спрашивал, у всех понимание аналогичное моему: если адреса по которому происходит обращение с функциями 3,4 в карте регистров нет - должна возращаться ошибка, а не нормальный ответ с нулевыми значениями.
Т.е. если у меня есть карта с тысячей значений, а я вам дал описание всего одного нужного вам адреса, то с какой стати по остальным должен даваться отлуп?

К тому же никто вам не запрещает перейти на новый тип карты памяти (снять галку "Старая карта"), будет вам отлуп в большинстве случаев.

Если за адресами уследите, конечно.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.01.2011, 16:04   #16
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от Arsie
Т.е. если у меня есть карта с тысячей значений, а я вам дал описание всего одного нужного вам адреса, то с какой стати по остальным должен даваться отлуп?

К тому же никто вам не запрещает перейти на новый тип карты памяти (снять галку "Старая карта"), будет вам отлуп в большинстве случаев.

Если за адресами уследите, конечно.


.
Если на поляне установлены 16 выходов + 1 вход в карте регистров настроены их адреса на нужные области, какие тут "тысячи регистров". Должны быть 16-ть разрешенных адресов по чтению и 1 по записи/ чтению. Или я что-то не понимаю в вашей интерпритации модбаса.

Старая карта не устраивает из-за невозможности задавать явно нужный базовый адрес карты адресов. Иногда верхний уровень имеет ограничение по диапазону адресации и старую карту с базовым адресом 0xa000 невозможно использовать.
avas вне форума   Ответить с цитированием
Старый 28.01.2011, 16:54   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Или я что-то не понимаю в вашей интерпритации модбаса.
Собственно, модбас тут никак невиновен. За сим спор завершаю.

Просто примите это как данность и всё.


PS. Я, например, считаю что в нашей стране налоги несправедливы. И все мои знакомые тоже так считают. Мир вообще несправедлив


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 01.02.2011, 13:16   #18
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Ну это не моя блаж. Тестовую прошивку по телемеханике отправил инженерам по тм заказчика для тестирования. В ближайшие пару месяцев планируется сделать с полсотни установок с smh2010, видимо придется аналогично отвечать на подобные вопросы, что это особенность данного контроллера. Поэтому донимаю. На мой взгляд конечно ерунда. Если завернут, придется предлагать иное решение. А в пикселе модбас реализован аналогично?
avas вне форума   Ответить с цитированием
Старый 01.02.2011, 14:12   #19
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Ну это не моя блаж. Тестовую прошивку по телемеханике отправил инженерам по тм заказчика для тестирования. В ближайшие пару месяцев планируется сделать с полсотни установок с smh2010, видимо придется аналогично отвечать на подобные вопросы, что это особенность данного контроллера. Поэтому донимаю. На мой взгляд конечно ерунда. Если завернут, придется предлагать иное решение. А в пикселе модбас реализован аналогично?
Я до сих пор не понимаю, зачем инженеры читают что-либо вне предоставленой карты переменных и почему это является ограничивающим фактором?

Поясню на более простоми примере: наш контроллер не может быть запитан от сети 220 вольт. Ему нужно 24 вольта. У заказчика есть и 24 вольта и 220 вольт, но при этом заказчик буквально рыдает от невозможности подключиться к 220В, хотя источник питания на 24В у него есть и ничем не нагружен.

Другими словами - нужные данные читаются? Читаются. Нужные функции есть? Есть. В чём проблема-то заключается? Что при попытке прочесть ненужные данные прочитаются нули? А проблема ли это, если ненужные данные никогда не будут читаться?


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.02.2011, 11:48   #20
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от Arsie
Я до сих пор не понимаю, зачем инженеры читают что-либо вне предоставленой карты переменных и почему это является ограничивающим фактором?

Поясню на более простоми примере: наш контроллер не может быть запитан от сети 220 вольт. Ему нужно 24 вольта. У заказчика есть и 24 вольта и 220 вольт, но при этом заказчик буквально рыдает от невозможности подключиться к 220В, хотя источник питания на 24В у него есть и ничем не нагружен.

Другими словами - нужные данные читаются? Читаются. Нужные функции есть? Есть. В чём проблема-то заключается? Что при попытке прочесть ненужные данные прочитаются нули? А проблема ли это, если ненужные данные никогда не будут читаться?


.
Проблема в психологии. Если что-то сделано не в рамках протокола, хоть и мелочь, то это будет заноза. Ладно хватит флуд разводить.
avas вне форума   Ответить с цитированием
Старый 02.02.2011, 12:07   #21
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
Проблема в психологии. Если что-то сделано не в рамках протокола, хоть и мелочь, то это будет заноза. Ладно хватит флуд разводить.
Протокол описывает взаимодействие клиента и сервера: заголовок пакета, его структуру, методы контроля и способ передачи.

Протоколом никак не ограничен состав передаваемых данных. Протоколом НЕ описывается, когда возвращаются нули, когда единицы, когда ошибки.

Проблема в том, что вы пытаетесь возложить на протокол те задачи, которые от него никак не зависят и применять правила протокола к этим задачам в корне неправильно.

Вы правы, проблема именно психологическая. Контроллеры работают чётко в рамках протокола.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.02.2011, 15:09   #22
avas
Senior Member
 
Регистрация: Aug 2008
Сообщения: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от Arsie
Протоколом НЕ описывается, когда возвращаются нули, когда единицы, когда ошибки.
.
На мой взгляд описывается. При попытке чтения/записи по недоступному адресу в ответе возвращается функция с установленной 1 в старшем ее разряде + код ошибки 02.

02 ILLEGAL DATA ADDRESS Адрес данных указанный в запросе
не доступен данному подчиненному.
avas вне форума   Ответить с цитированием
Старый 02.02.2011, 15:16   #23
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата
Сообщение от avas
На мой взгляд описывается. При попытке чтения/записи по недоступному адресу в ответе возвращается функция с установленной 1 в старшем ее разряде + код ошибки 02.

02 ILLEGAL DATA ADDRESS Адрес данных указанный в запросе
не доступен данному подчиненному.
В том-то и дело, что адрес доступен!

Это указание на возможность проинформировать об ошибке.


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.02.2011, 15:40   #24
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Заказчик просит полный модбас

Пардон, что вмешиваюсь в интеллектуальную беседу уважаемых донов, но тем не менее хочу немного рассказать про популярный протокол фирмы Модикон, известный как Модбас.
Этот протокол создавался в те давние времена, когда далеко не в каждом даже крутом программируемом контроллере использовались микропроцессоры. Поэтому коммуникационный протокол разрабатывался с учетом того, что обрабатываться он будет во-первых, не нагружая основной процессор, во-вторых, не программно, а аппаратно. Кстати в то время даже основной процессор чаще всего представлял собой автомат состояний, собранный на горсти мелкосхем низкой степени интеграции. А если и стоял микропроцессор, то очень тормозной, всего несколько сотен тысяч операций в секунду...
Ну не было тогда возможности контролировать выход адресов за диапазон. Аппараные автоматы это слишком сильно усложняло, а мелкопроцессоры не успевали выполнять более важные задачи. Была возможность выставить на шину адреса значение из коммуникационного пакета и записать/прочитать значение из памяти во время нужной фазы тактового генератора. Если в контроллере нет платы памяти с таким адресом, то прочитаются нули. Или единицы, смотря какая память и куда притянута шина данных. Так что формировать ошибку выхода адреса за диапазон формировать было просто некому.
А потом протокол в таком виде прижился и менять его не стали...
Sergey Cherevko вне форума   Ответить с цитированием
Старый 02.02.2011, 15:56   #25
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Заказчик просит полный модбас

Ой, неправду написал.
Тогда память что на ферритах, что полупроводниковая, была ненадежной и всегда использовался как минимум бит четности (а то и избыточность с восстановлением ошибок кодом Хемминга, например).
Поэтому отсутствующая плата памяти должна была вызвать ошибку 2 "такого адреса нет".
А вот если память есть, но часть ячеек никем не используются (т.е. ситуация, про которую avas писал), то никаких ошибок нет. Если ячейки исправны, разумеется.
Sergey Cherevko вне форума   Ответить с цитированием
Старый 02.02.2011, 16:29   #26
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от Sergey Cherevko
Ой, неправду написал.
Тогда память что на ферритах, что полупроводниковая, была ненадежной и всегда использовался как минимум бит четности (а то и избыточность с восстановлением ошибок кодом Хемминга, например).
Поэтому отсутствующая плата памяти должна была вызвать ошибку 2 "такого адреса нет".
А вот если память есть, но часть ячеек никем не используются (т.е. ситуация, про которую avas писал), то никаких ошибок нет. Если ячейки исправны, разумеется.
Вот сейчас чуть-чуть мимо: первоначальная редакция подразумевала только установку бита ошибки. Чтобы выдать код ошибки нужно сделать слишком много телодвижений и т.д. по вашему первому письму

И не мимо адреса, а вне банка данных, т.е. если, положим, 10..15 биты адреса не использовались, то приход единицы на любой из этих битов транслировался в старший бит ответа. Всего одна "мелкосхема" OR.

А вообще изначально ответ ошибки должен формироваться при занятости устройства. Т.е. пришла команда включить выход и за ней ещё одна такая же - вторая получала "отлуп".


.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 03.02.2011, 17:26   #27
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Уважаемые Доны ваши ответы на вопросы только вызывают новые вопросы.
А если задать адрес заведомо выходящий за границы памяти, отведенной в контроллерах Segnetics под хранение Holding Registers, что будет в ответном сообщении. А если туже самую операцию проделать с другими типами запросов. А откуда вы знаете какая аппаратура будет спрашивать у контроллера данные, а что она будет делать если получит нули, а как сообщить этой аппаратуре что она вообще-то не туда обращается, а почему у вас из незаписанной ячейки ПЗУ читается Nan, а не нули.
И позвольте откуда такие точные данные что было вначале с протоколом, а что было потом, вы что присутствовали в команде разработчиков? Предьявите ссылки на документы, выдержки из предыдущего выпуска стандарта MODBUS. Если таковых нет надо опираться на существующий стандарт 1.1b.
А если протестировать всю вашу аппаратуру на предмет поддержки протокола да с результатами ознакомить.
ujin вне форума   Ответить с цитированием
Старый 03.02.2011, 21:28   #28
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

Поищите в том же документе MODBUS Application Protocol Specification V1.1b указание на то что для неописанных в карте памяти (но существующих!) регистров должен возвращаться код ошибки. Такого указания нет, зато есть наводящее на размышления об уровне "интеллектуальности" Modbus, описание соседнего кода ошибки, 03 - ILLEGAL DATA VALUE.

PS: как пример, в документации на частотники фирмы Schneider-Electric, нынешнего владельца фирмы-разработчика протокола Modbus есть прямой запрет записи по неописанным в документации адресам, с указанием что это может вывести частотник из строя.
AlexG вне форума   Ответить с цитированием
Старый 03.02.2011, 22:04   #29
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Заказчик просит полный модбас

Цитата:
Сообщение от ujin
А откуда вы знаете какая аппаратура будет спрашивать у контроллера данные, а что она будет делать если получит нули, а как сообщить этой аппаратуре что она вообще-то не туда обращается
Какая аппаратура ведущего будет опрашивать - ведомому без разницы. У ведомого есть карта адресов, вот к этим перечисленным в карте адресам и должен обращаться ведущий. Если ведущий своевольничает, то делает это он на свой страх и риск. Если лезет куда попало, то и получает в ответ что попало
Цитата:
Сообщение от ujin
а почему у вас из незаписанной ячейки ПЗУ читается Nan, а не нули.
Вообще-то не факт, что предыдущее значение незаписанной ячейки ПЗУ будет именно Nan. Предыдущее значение может оказаться абсолютно любым.
Sergey Cherevko вне форума   Ответить с цитированием
Старый 04.02.2011, 06:57   #30
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Заказчик просит полный модбас

1. Если задать адрес заведомо выходящий за границы памяти, отведенной в контроллерах Segnetics под хранение Holding Registers, что будет в ответном сообщении?
2. Если туже самую операцию проделать с другими типами запросов?

Прошу ответить и на эти вопросы.
ujin вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление картой Модбас chif.com Связь с внешним миром 9 14.08.2019 20:25
Заказчик просит подтверждение беспроблемности использования 2Gi avas Вопросы о SMH-2G(i) 3 17.03.2016 12:27


Часовой пояс GMT +4, время: 19:07.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023