|
|
  |
RS 232 - RS 485, Опять я, опять с глупым вопросом.... |
|
|
|
Jan 11 2006, 14:07
|
Частый гость
 
Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416

|
В общем сразу к делу - надумал я научить компьютер общатся с некиеми датчиками. В принципе есть всё - конвертер 232-485 (правда нерабочий), есть Билдер Си++, есть сами датчик с рабочим 485-ым интерфейсом. Но я не знаю с чего начать... Протокол обмена написан, но он собственного сочинения, который ни на один существующий протокол не похож (этому были свои причины). Так вот, есть ли у кого-нибудь опыт в этом деле? Если есть, то меня интересуют несколько вопросов:
1. Есть ли для билдера какие-нибудь компоненты для работы с ком-портом (стандартные нехочу, ибо слишком много возни)? 2. Есть готовые исходники рабочей программы обмена данных через ком-порт (только не сильно нагруженных, мне надо пересылать пакеты по одному-двум байтам)? 3. Есть ли схема конвертера 232-485 с опторазвязкой, способной выдержать нарузку в 32 датчика?
Вроде пока всё, если ещё чего, то я напишу позже...
|
|
|
|
|
Jan 11 2006, 19:35
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 978

|
Цитата(UniBomb @ Jan 11 2006, 17:07)  В общем сразу к делу - надумал я научить компьютер общатся с некиеми датчиками. В принципе есть всё - конвертер 232-485 (правда нерабочий), есть Билдер Си++, есть сами датчик с рабочим 485-ым интерфейсом. Но я не знаю с чего начать... Протокол обмена написан, но он собственного сочинения, который ни на один существующий протокол не похож (этому были свои причины). Так вот, есть ли у кого-нибудь опыт в этом деле? Если есть, то меня интересуют несколько вопросов:
1. Есть ли для билдера какие-нибудь компоненты для работы с ком-портом (стандартные нехочу, ибо слишком много возни)? 2. Есть готовые исходники рабочей программы обмена данных через ком-порт (только не сильно нагруженных, мне надо пересылать пакеты по одному-двум байтам)? 3. Есть ли схема конвертера 232-485 с опторазвязкой, способной выдержать нарузку в 32 датчика?
Вроде пока всё, если ещё чего, то я напишу позже... Главное не задавайтесь целью управлять RTS. Этим должен заниматься преобразователь. Любой преобразователь в RS485 работает на 32 нагрузки, это минимальная опция стандарта. Обратие внимание на состояние шины перед транзакцией, желательно передать в начале пару раз байт 0FFh для очистки приемника от мусора. Либо растягивать шину в 1.
|
|
|
|
|
Jan 12 2006, 07:22
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696

|
Цитата Программирование COM порта можно осуществлять используя API функции Windows. Если Вы это освоите, то не станите зависить от прочих существующих библиотек и будете все делать самостоятельно с теми особенностями которые Вам необходимы (читайте статьи из архива COM.rar). Если вы не хотите набить себе кучу шишек ковыряясь во внутренностях WinAPI, а за разумное время получить желаемый результат, то рекомендую воспользоваться библиотекой ComPort Library. Мы с удовольствием используем этот продукт в своих проектах.
|
|
|
|
|
Jan 12 2006, 20:31
|
Частый гость
 
Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416

|
BVU, спасибо за предоставленные материалы, но я как раз хотел уйти от винапи... В данный момент я нахожусь в учебном отпуске, за который хотелось бы сделать что-то дельное. А винапи мне предстояло бы изучать и изучать... Конечно это совсем не значит, что я лентяй или лодырь, просто сейчас мне интересней что-либо попроще. Вот когда мне предстоит работа посеръёзней чем переслать пару байт, вот тогда я с головой и окунусь в винапи. Но всё равно спасибо з предоставленный материал!
vm1 спасибо за дельные советы, но на этом я уже набил себе много шишек...
aforestmanспасибо. я ещё не скачал, но думаю это то, что мне надо....
|
|
|
|
|
Oct 14 2006, 20:21
|
Местный
  
Группа: Новичок
Сообщений: 493
Регистрация: 18-06-06
Пользователь №: 18 143

|
Цитата(vm1 @ Jan 11 2006, 23:35)  Главное не задавайтесь целью управлять RTS. Этим должен заниматься преобразователь. А почему? У меня всегда все работает нормально по RTS. Во многих компиляторах вообще заложена стандартная процедура этого - подключаете опцию и все дела.
|
|
|
|
|
Oct 14 2006, 23:11
|

учащийся
    
Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249

|
Цитата(lks @ Oct 14 2006, 23:21)  Цитата(vm1 @ Jan 11 2006, 23:35)  Главное не задавайтесь целью управлять RTS. Этим должен заниматься преобразователь.
А почему? У меня всегда все работает нормально по RTS. Во многих компиляторах вообще заложена стандартная процедура этого - подключаете опцию и все дела. Проблема в том что в виндоз невозможно найти конец передачи, хотя это легко решается по другому - чтением переданных байтов из порта после записи всех байтов в передающий буфер. Это можно с одним условием - приемная часть 485 драйвера должна быть всегда включена для приема и cвоего эха и удаленного девайса. Во всяком случае на моем компютере без проблем работает
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
|
Oct 15 2006, 07:24
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
Цитата(UniBomb @ Jan 11 2006, 17:07)  3. Есть ли схема конвертера 232-485 с опторазвязкой, способной выдержать нарузку в 32 датчика? Конвертер, удовлетворяющий требованиям MAX1480 . Библиотеку и примеры для PC можно взять здесь MOXA
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Jan 16 2007, 09:51
|
Частый гость
 
Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416

|
Прошёл год, а воз и ныне там. Я досканально изучил все ВинАпишные функции, понял что они мягко говоря неидельны. Иными словами дядюшка Гейтс обеспечил все возможное для торможения процесса созидания)) Выходов всего три - работать в нулевом кольце, работать в два потока с распределением задач и использовать готовыве компоненты. Первые два (особенно первый) варианта самые лучшие, но долгие и там есть свои подводные камни. Всё дело в том, что времени на вылизывание такого рода проекта времени нет. Остаётся только одно - использовать сторонние компоненты((
Отсюда вопрос - какие есть и где взять? Если кто работал с такими, то просьба написать отзывы и линки на них))
ЗЫ:. tyro, спасибо, но я ещё не смотрел, сейчас качаю))
|
|
|
|
|
Jan 16 2007, 10:15
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(UniBomb @ Jan 16 2007, 09:51)  Остаётся только одно - использовать сторонние компоненты((
Отсюда вопрос - какие есть и где взять? Если кто работал с такими, то просьба написать отзывы и линки на них)) После возни с ВинАпи(так и не понял как создать событие приема байта в буффер) попробовал TMS Async32. Ощущения положительные. Сейчас откозался от него в пользу протокола WAKE - недавно про него писал на форуме в этой ветке.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jan 22 2007, 16:09
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 2-06-06
Пользователь №: 17 720

|
Делал опторазвязанный преобразователь RS232-485, вот схемка и плата (он для подключения к контроллеру, а не посл. порту компьютера) : www.umup.narod.ru/rs485_conv.zip Из библиотек для связи по RS232/485 наиболее мощный - Turbo Power Async Professional, им и пользуюсь (сначала тоже пользовал TMS Async32) : http://sourceforge.net/projects/tpapro Вот программа на Delphi3 для тестирования сети modbus (протокол RTU), легко можно адаптировать для Builderа : http://umup.narod.ru/modbus_test.zip Есть еще полноценная программа опроса приборов в сети Modbus. Также почти закончен проект кросплатформенной клиент-серверной системы на Python для работы с Modbus и Owen приборами (с базой данных, отображением графиков, возможностью работы в режиме сервера с генерацией Html страниц). Пришлось написать так как под Linux такого не нашел, а коммерческие SCADA системы слишком дорогие, сложные. При желании можно добавить и Wake.
Сообщение отредактировал umup - Jan 22 2007, 16:21
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|