Перейти к содержанию
    

Еще бы посоветовал, для отладки со стороны сети CommView.

 

О да, без этого - как без рук. Давно пользуюсь с удовольствием.

 

К сожалению, это все не совсем то, что я просил. Я просил рабочий эмулятор модбас-устройства с последовательным портом. И терминал для MODBUS-TCP, который умеет создавать и посылать именно пакеты модбас. Я, конечно, могу скрипты понаписывать, но не хотелось бы ошибиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О да, без этого - как без рук. Давно пользуюсь с удовольствием.

 

К сожалению, это все не совсем то, что я просил. Я просил рабочий эмулятор модбас-устройства с последовательным портом. И терминал для MODBUS-TCP, который умеет создавать и посылать именно пакеты модбас. Я, конечно, могу скрипты понаписывать, но не хотелось бы ошибиться.

Лучше взять реальное устсройство, например Deif или счетчик СЭТ-4ТМ или что-то (от родоначальника Modicon). Для Sepam 1000+ серии 40 Merlin Gerin пакеты расписаны с CRC.

На все есть хорошие pdf.

Не ошибетесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В NModbus был эмулятор слейва

 

А можно мордой лица ткнуть? Ссылку в смысле...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под Win невозможно слейв сделать (или какой-то страшный драйвер придётся писать). Дело в непредсказуемых задержках. А тут задержки в доли милисекунды нужны. Даже переключать приём-передачу в RS485 и то проблема. Я эту проблему в Win обходил использованием драйвера CAN (вместо драйвера RS485). Драйвер CAN только 0 передаёт, а 1 за счёт резисторов устанавливается. Уровни-то у CAN и RS485 не сильно отличаются - на короткой линии всё работает. Т.е. передатчик 1 выставил и приём - это одно и тоже. Т.е переключать приём и передачу вообще не нужно. Конечно самопереданные байты приходится принимать, а потом отбрасывать. Но вобщем мастера реализовать можно, а вот со слейвом проблема. Быстро ответить не получится - время не гарантируется. Кстати с переключением между передачей и приёмом RS485 у контроллера тоже проблемка есть. После передачи последнего байта запроса мастером надо СРАЗУ-ЖЕ на приём переключаться. Иначе, если слейв СРАЗУ-ЖЕ отвечать начнёт, в сети RS485 2 устройства одновременно передавать будут. Причём одно 1 (стоп-бит и паузу после него), а другое 0 (стартовый бит). Я эту проблему управлением приёмом-передачей с помощью таймера решаю. Когда последний байт в передачу пишу - таймер в соответствии со скоростью/форматом запускаю. И он (таймер) своим выходом автоматом с передачи на приём RS485 драйвер переключает.

Кстати рекомендую Rst7 платку с учётом этого разводить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если слейв СРАЗУ-ЖЕ отвечать начнёт

Зачем-то существуют обозначенные паузы, являющиеся маркерами фрейма RTU

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О да, без этого - как без рук. Давно пользуюсь с удовольствием.

 

К сожалению, это все не совсем то, что я просил. Я просил рабочий эмулятор модбас-устройства с последовательным портом. И терминал для MODBUS-TCP, который умеет создавать и посылать именно пакеты модбас. Я, конечно, могу скрипты понаписывать, но не хотелось бы ошибиться.

Может ModbusPoll_4.3.1 подойдёт?

ModbusPoll_4.3.1.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем-то существуют обозначенные паузы, являющиеся маркерами фрейма RTU

И устройства существуют, творцы коих про существование этого не знают.

Вообще с паузами в модбасе полный бардак. Я встречался как с такими устройствами, которые при скорости 115200 в режиме слейва через 16 милисекунд отвечает. И с такими которые через 50 микросекунд отвечает. Но заявлять "это устройство нестандартное - поэтому мы с ним работать не будем" глупо. Ты работать не будешь - купят у того кто будет.

А вобще про модбас я в этой теме уже своё мнение высказывал: убогий протокол. Поэтому в своих разработках на CAN перехожу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под Win невозможно слейв сделать (или какой-то страшный драйвер придётся писать). Дело в непредсказуемых задержках.

Если я понял Вас правильно, речь идет про преобразователи RS232-RS485.

На самом деле, все наоборот. Проблем со слейвом как раз нет. А для мастера есть, когда переключать направление передачи на прием (рано плохо - не ушла еше вся инфа, поздно плохо - можно пропустить начало передачи от слейва).

Рекомендую использовать преобразователи с автоматическим определением направления передачи. Эту тему уже муссировали основательно. Я узнал об этом у Сергея Борща (еще раз ему спасибо за это).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Иначе, если слейв СРАЗУ-ЖЕ отвечать начнёт, в сети RS485 2 устройства одновременно передавать будут. Причём одно 1 (стоп-бит и паузу после него), а другое 0 (стартовый бит).

 

Суть таких устройств - пионерская поделка, разработчику такого софта - апстену с разбега. Применять такое - так лучше сразу застрелиться. Посему, т.к. в спецификации написан минимальный интервал 3.5символа, значит так и будем делать.

 

 

Может ModbusPoll_4.3.1 подойдёт?

 

О, замечательно. То, что доктор прописал.

 

www.nmodbus.com

 

Ага, щас будем смотреть...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Друзья. возможно я невнимательно прочитал ветку, тогда извините, просто хотел добавить и "свои пять копеек".

А разве нельзя использовать устройство, в котором все в одном флаконе: туннель, преобразователь 232-485, TCP/IP и Modbus?

Ведь есть версия XPort-Modbus XP1001000M-03R

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ведь есть версия XPort-Modbus XP1001000M-03R

 

Есть. от $75. А тут все затевалось "задешево" ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наша контора сейчас использует Moxa NPORT 54501.

На борту уже 4 RS232/RS485 (это, на мой взгляд, перебор). Про цену тоже ничего не скажу.

Но по идее каждый порт RS485 на борту снижает цену (и с трафиком по сети, наверное, поспокойнее). Но uC в контроллере, конечно, должен быть более шустрым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...