Полная версия этой страницы:
RS-485(MODBUS)
VitalyS
Apr 25 2011, 08:00
Есть:
- 3 устройства с ModBus/Ascii - покупные
- 3 устройства с ModBus/RTU - покупные
- контроллер (Master) - свой
Хотелось бы объединить в рамках одной сети. Возможно это?
Если нет, то почему?
Ruslan1
Apr 27 2011, 21:21
Цитата(VitalyS @ Apr 25 2011, 11:00)

Есть:
- 3 устройства с ModBus/Ascii - покупные
- 3 устройства с ModBus/RTU - покупные
- контроллер (Master) - свой
Хотелось бы объединить в рамках одной сети. Возможно это?
Если нет, то почему?
ASCII и RTU протоколы имеют абсолютно разный подход к "пакетообразованию": определению начала-конца пакета, тайминги, заголовки и контрольные суммы.
Если мастер ваш личный и не боитесь трудностей то можно попробовать запустить это все на общей веревке, при обращении к устройствам ASCII протокола устройства с RTU будут воспринимать это как мусор(помехи в линии) и наоборот. Но если система выполняет сколько-нибудь ответственные функции, то это стратегически неправильно. Годится только для тестов или студенческих проектов для "попробовать". Ну или для случаев "данные пропали-ну и фиг с ними"
Harbinger
Apr 28 2011, 02:34
Цитата(Ruslan1 @ Apr 28 2011, 00:21)

Но если система выполняет сколько-нибудь ответственные функции
Тогда конвертор ASCII->RTU.
Или из Мастера вывести 2 RS485 линии. Одну для Modbus-ASCII и одну для RTU
Цитата(XVR @ Apr 28 2011, 10:57)

Или из Мастера вывести 2 RS485 линии. Одну для Modbus-ASCII и одну для RTU
Согласен с этим утверждением, пытаться сэкономить на кабеле пытаясь запихнуть это всё в одну линию приведёт мягко говоря к серьёзному головняку, который впоследствии выйдет боком. В реальных условиях, даже разные устройства которые работают на одном протоколе RTU или ASCII вешаем на разные линии. В последствии при пусконаладочных работах все это оправдывается.
kiriluk75
Sep 2 2011, 08:11
Добрый день! Может поможете мыслью.
Есть программа "MASTER", которая по COM порту или по TCP одновременно связывается (MODBUS) со SLAVE устройствами различных ID и отображает их оперативное состояние.
Одно SLAVE устройство есть в железе.
Задача,
Что б оттестировать программу "MASTER" для работы с многими SLAVE устройствами различных ID, нужно написать или найти готовое решение:
нужно смоделировать нескольких SLAVE устройств для которых можно было б автоматически изменять значения регистров и видеть эти изменения в нашей программе "MASTER". Автоматически - это из Делфи программы, файла или БД, или чего-то подобного.
Есть много решений, например Modbus for Windows 95/98/NT/2000/XP (Version 3.54 download), или другие slave servers, у которых значения регистров можно менять только оперативно, в ручную. Так делаем, все работает. Но нужно именно автоматически. Может из какой БД или с какого файла. Что б этот slave servers 2-4 раза в секунду считывал значения регистров с них.
А уже этот файл или БД формировать из Делфи программы.
demiurg_spb
Sep 2 2011, 09:03
modbus OPC-server...
kiriluk75
Sep 2 2011, 11:38
demiurg_spb
Спасибо, а какой из них? Их такое множество... Lektus в режиме SLAVE не поддерживает 8ю функцию. А нужны именно 8я, 3я и 16я
demiurg_spb
Sep 2 2011, 12:18
Ну не знаю даже. Пробуйте, ищите, ведь их и правда много, более того у нас свой самописный.
kiriluk75
Sep 2 2011, 12:35
Я бы тоже написал, но пока не представляю как. С такой задачей еще не сталкивался
dimochka64
Sep 5 2011, 10:12
У кого-нибудь есть пример такого SLAVE устройства на Делфи?
Или подскажите, с чего начинать написание?
Спасибо
demiurg_spb
Sep 5 2011, 11:24
Своё только за вознаграждение могу предложить.
А из бесплатного посмотрите на Си библиотеку freemodbus.
dimochka64
Sep 5 2011, 12:02
Цитата(demiurg_spb @ Sep 5 2011, 14:24)

Своё только за вознаграждение могу предложить.
А из бесплатного посмотрите на Си библиотеку freemodbus.
Увы, из вознаграждения пока только пиво, но в Питер ой как далеко везти
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.