реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> Modbus RTU со стороны PC под Windows, Как реализовать протокол
tyro
сообщение Mar 6 2011, 08:11
Сообщение #1


Любитель Кошек
*****

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



Возникла задача пообщаться с приборами по протоколу Modbus RTU при помощи PC из под Windows (скорее 7 чем XP - лицензионные нынче требования sm.gif) через RS485. Поскольку у этого протокола (Modbus RTU) достаточно жесткие требования на времянку, то подозреваю, что использование фрейма длиной больше чем буфер (аппаратный для RS232 порта) не прокатит, а размер его (фрейма) будет скорее больше, чем меньше. Подскажите please, каким путем решить эту задачу. (Предполагаю, что есть драйвера - ткните где взять). Заранее спасибо (хотя бы за то, что прочитали) sm.gif.


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 14 2011, 16:41
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Преобразователь USB<->RS485 - одна штука.
Мануал на WinAPI (Files + Threads + Timers + Mutex) - одна штука
Мануал на Modbus over serial line - одна штука
Ну и на закуску мануал на написание OPC-server'а

и от месяца до трёх ежедневной работы в зависимости от экспириенса.


А если задача лишь пощупать прибор, то обращайтесь к его производителю, он вам должен помочь в вашем начинании.

Удачи!


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
tyro
сообщение Mar 14 2011, 19:00
Сообщение #3


Любитель Кошек
*****

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



Цитата(demiurg_spb @ Mar 14 2011, 19:41) *

Спасибо за ответ и пожелания.
Если есть ссылка на описание применения OPC-server'а, выложите please (остальное из перечисленного имеется sm.gif).
Собственно самый неясный для меня (на сегодня) вопрос, как средствами Windows проконтролировать время между приходящими байтами для того, что бы выделить фреймы (компьютер в этом случае в роли ведомого, скажем занимается "прослушкой").


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 14 2011, 20:44
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(tyro @ Mar 14 2011, 22:00) *
Если есть ссылка на описание применения OPC-server'а, выложите please...
OPC-server - это универсальная прослойка между SCADA-системой или любым другим приложением и потёмками приборного уровня со всем многообразием протоколов и интерфейсов как физических так и логических.
Это по сути масло приклеивающее к куску хлеба одинаково приятно как сыр, так и колбасу и даже икру.
Вся эта кулинария гуглится на OPC-fondation.
Цитата
Собственно самый неясный для меня (на сегодня) вопрос, как средствами Windows проконтролировать время между приходящими байтами для того, что бы выделить фреймы...
PerformanceTimer нам в помощь дан для таких вот задачек.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
tyro
сообщение Mar 15 2011, 05:46
Сообщение #5


Любитель Кошек
*****

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



Цитата(demiurg_spb @ Mar 14 2011, 23:44) *
OPC-server - это прослойка между SCADA-системой или любым другим приложением ...по сути масло приклеивающее к куску хлеба одинаково приятно как сыр, так и колбасу и даже икру.

Если возможно в двух словах: насколько эта связка инерционная, то есть, можно ли ее использовать в системе авто регулирования, например в системе стабилизации переменного тока промышленной частоты?
Цитата
PerformanceTimer нам в помощь дан для таких вот задачек.

За это отдельное спасибо. sm.gif


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 15 2011, 06:36
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(tyro @ Mar 14 2011, 22:00) *
Если есть ссылка на описание применения OPC-server'а, выложите please (остальное из перечисленного имеется sm.gif).

http://lectussoft.com/
Удобный и недорогой, сам пользуюсь
Цитата
Собственно самый неясный для меня (на сегодня) вопрос, как средствами Windows проконтролировать время между приходящими байтами для того, что бы выделить фреймы (компьютер в этом случае в роли ведомого, скажем занимается "прослушкой").

В ВинАПИ эсть такая структура dcb, в которую заносятся все параметры комм. порта.
В том числе таймауты приёма. То есть можно задать таймаут и ловить соответствующий эвент.
А можно воспользоваться готовой библиотекой, NModbus, к примеру


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 15 2011, 09:40
Сообщение #7


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(tyro @ Mar 15 2011, 08:46) *
Если возможно в двух словах: насколько эта связка инерционная, то есть, можно ли ее использовать в системе авто регулирования, например в системе стабилизации переменного тока промышленной частоты?
Не уверен что Modbus вообще пригоден для такой задачи. Как собственно и Windows вообще.
На модбасе строятся системы сбора данных ну а для динамических систем управления он впринципе не пригоден, т.к. реплай-таймаут может достигать секунды.
Для приводов и ПЧ CAN рулит...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
tyro
сообщение Mar 15 2011, 13:13
Сообщение #8


Любитель Кошек
*****

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



Цитата(MrYuran @ Mar 15 2011, 09:36) *
http://lectussoft.com/
Удобный и недорогой, сам пользуюсь

Спасибо.
Цитата
В ВинАПИ эсть такая структура dcb, в которую заносятся все параметры комм. порта.
В том числе таймауты приёма. То есть можно задать таймаут и ловить соответствующий эвент.
А можно воспользоваться готовой библиотекой, NModbus, к примеру

Если есть проверенная и не секретная ( и не платная sm.gif) библиотека, выложите please.


Цитата(demiurg_spb @ Mar 15 2011, 12:40) *
Не уверен что Modbus вообще пригоден для такой задачи. Как собственно и Windows вообще.

Про Windows того же мнения, но заказчик всегда прав sm.gif.
Цитата
Для приводов и ПЧ CAN рулит...

В этой же задаче есть пара MITSUBISHI FR-D700, там как раз MODBUS RTU (а CAN нет).



--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 15 2011, 13:20
Сообщение #9


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(tyro @ Mar 15 2011, 16:13) *
Если есть проверенная и не секретная ( и не платная sm.gif) библиотека, выложите please.

Так я ж говорю, NModbus.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
tyro
сообщение Mar 15 2011, 13:56
Сообщение #10


Любитель Кошек
*****

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



Цитата(MrYuran @ Mar 15 2011, 16:20) *
Так я ж говорю, NModbus.

Спасибо. Теперь бы еще номер версии, который проверен в бою. (Судя по количеству версий глюки там имеются) sm.gif


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 15 2011, 14:03
Сообщение #11


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(tyro @ Mar 15 2011, 16:56) *
Спасибо. Теперь бы еще номер версии, который проверен в бою. (Судя по количеству версий глюки там имеются) sm.gif

Крайняя sm.gif
Проверена в бою, причём не только на ПЦ, но и на борде под WinCE 5.0
Особых глюков не отмечено, кроме того, что с каждого чиха надо ловить и утилизировать эксепшены


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Mar 15 2011, 18:46
Сообщение #12


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(tyro @ Mar 15 2011, 16:56) *
Спасибо. Теперь бы еще номер версии, который проверен в бою. (Судя по количеству версий глюки там имеются) sm.gif

Я бы сделал переход RS485+MODBUS/RTU->USB.
Смысл мероприятия в следующем.
Переход на любом МК с бортовым USB переводит телеграммы из Modbus/RTU в Modbus/ASCII.
И передает их в PC.
И наоборот.
Переход получает телеграммы по USB в Modbus/ASCII и передает их на улицу в Modbus/RTU.
В этом случае программулина приема/передачи может быть написана достаточно быстро и прозрачно средствами WIN API.
Go to the top of the page
 
+Quote Post
tyro
сообщение Mar 16 2011, 06:03
Сообщение #13


Любитель Кошек
*****

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



Цитата(Прохожий @ Mar 15 2011, 21:46) *
Я бы сделал переход RS485+MODBUS/RTU->USB.

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


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016