Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

И снова MODBUS

 Ответить Ответить Страница  <12
Автор
Сообщение
lamerok Смотреть выпадающим
Участник
Участник


Присоединился: 12 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 61
Свойства публикации Свойства публикации   Ответить, цитируя автора - lamerok Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: И снова MODBUS
    Опубликовано: 12 Октябрь 2004 18:42

Самый надежный способ определить конец сообщения только по таймайту на 3.5 символа, правильно делать как сказал sysvat.

Кроме того реализация такого определения конца кадра на микроконтроллере проще. Просто, например, по прерыванию таймера. И какое переполнение буфера??? Если у вас в сети все время вата, и нет дырки в 3.5  символа вы все равно не сможете ничего послать и ничего принять путного. Счетчик байт он в осноном для последующего анализа после срабатывания таймера.... Чтобы определить действительный конец сообщения где находится контрольная сумма.

Наверх
cutter Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Октябрь 2004
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - cutter Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Октябрь 2004 11:50

Хух! Приемопередатчик готов, теперь осталось протестировать его работу...

Люди, кто-нить знает - есть ли ПО, которое позволяет оттестить клиента MODBUS на компьютере, не прошивая МК? Я честно говоря вообще с трудом себе этот процесс представляю, т.е. есть откомпиленный файл под Atmel AT89, код реализует MODBUS - и как теперь проверить этот код, т.е. как завязать его с тестером MODBUS (при условии, что он существует)... Вообщем, скорее всего несу бред, но так не хочется отлаживать программу, постоянно перепрошивая МК-ку.... :(

Может кто-нить че-нить посоветует?

Наверх
lamerok Смотреть выпадающим
Участник
Участник


Присоединился: 12 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 61
Свойства публикации Свойства публикации   Ответить, цитируя автора - lamerok Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Октябрь 2004 14:04

Можно написать прогу на Писюке, на Си, используюя те же самые функции, что и в контроллере, все там отладить, а потом их один к одному перекинуть на компилятор Си для микропроцессора. Придется переделать только драйвер   UARTA,  а все функции прикладного уровня легко переносятся на микроконтроллер. Так делал, например для  HART...

Хотя если есть отладчик для микроконтроллера, зачем так делать, берете отладчик, емулятор по JTAG, среду разработки например IAR и сидите там отлаживаете, накройняк можно подцепить идикатор и через принтф выводить все посылки....

 И в реальном времени отлаживаете, не вижу проблем с прошиванием вообще никаких...

Есть проги Slave MOdbus  и MAster Modbus, если надо могу послать....

Наверх
leo@intek Смотреть выпадающим
Новичок
Новичок


Присоединился: 27 Сентябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 4
Свойства публикации Свойства публикации   Ответить, цитируя автора - leo@intek Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Октябрь 2004 16:02

Могу посоветовать утилиты от WinTech (ModScan32 - Modbus сервер и ModSim32 - симулятор Modbus клиента); к сожалению, действие всех Trial версий ограничено 3 минутами.

http://www.win-tech.com/html/demos.htm

Еще похожие программы можно найти здесь:

http://www.modbustools.com/

 

Наверх
cutter Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Октябрь 2004
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - cutter Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Октябрь 2004 18:45

Первоначально опубликовано lamerok

Хотя если есть отладчик для микроконтроллера, зачем так делать, берете отладчик, емулятор по JTAG, среду разработки например IAR и сидите там отлаживаете, накройняк можно подцепить идикатор и через принтф выводить все посылки....

Круто дал! :) Попытаюсь сначала переварить эту информацию, а потом уже спрашивать... Слишком много неизвестного - JTAG, IAR и т.д. У меня все что есть - Keil и все...

Наверх
sysavt Смотреть выпадающим
Участник
Участник


Присоединился: 15 Январь 2004
Online Status: Offline
Публикации: 46
Свойства публикации Свойства публикации   Ответить, цитируя автора - sysavt Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2004 21:04

Первоначально опубликовано leo@intek


Могу посоветовать утилиты от WinTech (ModScan32 - Modbus сервер и ModSim32 - симулятор Modbus клиента); к сожалению, действие всех Trial версий ограничено 3 минутами.

http://www.win-tech.com/html/demos.htm

В этих утилитах реализованы только функции 1...4. :((

Для реализации других функций я делал пульт на TRACE MODE 5 Протокол полностью прописан, разобраться на примерах и запустить простенький пульт можно за 3-4 часа.

Наверх
cutter Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Октябрь 2004
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - cutter Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Октябрь 2004 11:20

Привет всем! Ну вот и дожил до тестирования приемопередатчика... Появился еще более интересный на мой взгляд вопрос:

1. Если, допустим, клиент вообще не ответил на запрос сервера - как сервер будет себя в этом случае вести? Будет ли он автоматически, без вмешательства оператора, снова генерить аналогичный запрос?

Просто от этого сильно зависит реакция клиента, например, на приход нового байта, при условии, что прикладное ПО клиента еще обрабатывает предыдущий пакет. Т.е. пусть клиент прикданая часть клиента забрала пакет из приемного буфера, пришел новый байт нового пакета, а прикладная часть еще не обработала предыдущий пакет или вообще отморозилась (в случае глюков) - как вести себя приемнику согласно MODBUS?

Наверх
sysavt Смотреть выпадающим
Участник
Участник


Присоединился: 15 Январь 2004
Online Status: Offline
Публикации: 46
Свойства публикации Свойства публикации   Ответить, цитируя автора - sysavt Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Октябрь 2004 18:36
Первоначально опубликовано cutter

клиент вообще не ответил на запрос сервера - как сервер будет себя в этом случае вести? Будет ли он автоматически, без вмешательства оператора, снова генерить аналогичный запрос?

Master должен по тайм-ауту сгенерить ошибку связи (может после нескольких пропущенных запросов - определяется из особенностей системы) и для восстановления взаимодействия со slave с заданным интервалом слать запросы 

Первоначально опубликовано cutter

На приход нового байта, при условии, что прикладное ПО клиента еще обрабатывает предыдущий пакет.

Об этом можно сообщить master'у через исключительные ситуации - 05 (ACKNOWLEDGE) или 06 (BUSY, REJECTED MESSAGE)

 

Наверх
cutter Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Октябрь 2004
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - cutter Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 01 Ноябрь 2004 10:53

УРААААААА!!! Все работает!!! Рулез!!! В среде Keil нашел включение режима перенаправления ввода/вывода на реальные COM порты, дальше, на своей тачке поставил клиента, на ноутбуке MODSCAN32, завязал кросом - все работает!!! :))) Сегодня буду прошивать!!! Спасибо всем профессионалам!!! МУЖИКИ МОЛОДЦА!!!

Кстати, MODBUS предполагает либо биты либо слова (по 2 байта) информации для COIL/REGISTER соответсвенно. А как, например, передать данные другого типа? Я начальнику посоветовал задействовать несколько регистров и описать это в спецификации, а он говорит, что это плохо, типа - подумай еще... :( А как еще? Как сделать хорошо? ... если, как я понял MODBUS был изначально заточен под МК-ры MODICON...

Наверх
Vad74 Смотреть выпадающим
Новичок
Новичок


Присоединился: 31 Май 2004
Категория: Belarus
Online Status: Offline
Публикации: 29
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vad74 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 01 Ноябрь 2004 11:29

>Я начальнику посоветовал задействовать несколько регистров и описать это в спецификации.

Направление мысли правильное. Так действительно делают. Например аналоговые измерения в цифровой защите фирмы Alstom занимают 4 байта. Так они описали их как записи из 2х слов. И сказали что читать можно только чётное кол-во слов.

MODBUS это транспортный протокол. Так что передавать можно всё что нужно. Главное что бы клиент на ПЭВМ понимал этот формат и переводил в другой стандартный.

Касперский Вадим
Наверх
 Ответить Ответить Страница  <12

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz