Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 09.06.2015, 12:10   #1
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Modbus TCP клиент

Прикрутил к LwIP-стеку протокол Modbus-TCP (пока только функцию 0x03 (Read Holding Registers)), свой софт для ПК еще не писал (сначала нужно реализовать поддержку требуемых функций на стороне микроконтроллера).
Попробовал TCP-клиент Ananas32.exe, эта функция в нем работает не правильно: при запросе "прочитать регистры с 0 по 3" отправляет четыре запроса "прочитать один регистр" при этом в каждом запросе инкрементирует адрес на единицу. Т.о. результат правильный, но получен он не совсе правильно, ведь достаточно одного запроса.
Попробовал эту же функцию из проекта Modbus TCP class (на C# с сайта CodeProject).
Отладочную информацию вывожу в UART с помощью printf(), просматриваю в hiperTerminal.
Скриншоты прилагаются.
Почему пишу? Может кто тоже занимается, будет у кого спросить.

PS: Стек допускает подключение несколько клиентов к одному прибору (число задается в коде), если читать данные, то все понятно (читайте сколько хотите), а если писать, то как разделять права доступа? Знает кто?
Миниатюры
Три запроса вместо одного.PNG   Функция 0x03 корректно.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2015, 12:57   #2
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Неплохо сделан тот проект (с CodeProject) - даже документация в виде файла справки сделана. Я вот на Модбас TCP ничего не делал, но вот сдается мне про то что спрашиваешь, что такие вещи должны уже все в протоколе быть учтены. Сразу несколько подключенных клиентов и конфликты от них.
AleksBak вне форума   Ответить с цитированием
Старый 09.06.2015, 14:07   #3
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Неплохо сделан тот проект (с CodeProject) - даже документация в виде файла справки сделана. Я вот на Модбас TCP ничего не делал, но вот сдается мне про то что спрашиваешь, что такие вещи должны уже все в протоколе быть учтены. Сразу несколько подключенных клиентов и конфликты от них.
Со стеком при чтении никаких проблем нет, при записи тоже: к одному устройству с IP 192.168.1.100 на порт 502 могут подключаться до 10 клиентов (столько задано #define) и читать из прибора данные. А вот записывать в прибор должен один клиент (например), права у клиентов разные должны быть: кто-то только читает, кто-то может редактировать. Можно разрешить подключаться только одному клиенту, он читает и пишет, но хочется сделать два: один читает, второй редактирует. Не знаю, как это делается.
Смотрел OPC-сервера, так у них Modbus TCP через переходники Ethernet-to-RS485...Соответственно запрос в формате Modbus TCP преобразуется в Modbus RTU, получается весь функционал ограничен возможностями Modbus RTU. А я предполагаю, что у прибора этот переходник внутри (аппаратный модуль в микроконтроллере и PHY LAN8720).
Есть вообще приборы с встроенным сервером Modbus TCP без всяких коробок типа Modbus TCP-to-RTU?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2015, 15:09   #4
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Со стеком при чтении никаких проблем нет, при записи тоже: к одному устройству с IP 192.168.1.100 на порт 502 могут подключаться до 10 клиентов (столько задано #define) и читать из прибора данные. А вот записывать в прибор должен один клиент (например), права у клиентов разные должны быть: кто-то только читает, кто-то может редактировать. Можно разрешить подключаться только одному клиенту, он читает и пишет, но хочется сделать два: один читает, второй редактирует. Не знаю, как это делается.
Смотрел OPC-сервера, так у них Modbus TCP через переходники Ethernet-to-RS485...Соответственно запрос в формате Modbus TCP преобразуется в Modbus RTU, получается весь функционал ограничен возможностями Modbus RTU. А я предполагаю, что у прибора этот переходник внутри (аппаратный модуль в микроконтроллере и PHY LAN8720).
Есть вообще приборы с встроенным сервером Modbus TCP без всяких коробок типа Modbus TCP-to-RTU?
LECTUS OPC позволяет запросы слать в формате TCP или RTU over TCP.
Про клиентов - в лоб не получится: у modbus нет авторизации. Я делал пароль на запись
__________________

Vanizma вне форума   Ответить с цитированием
Старый 09.06.2015, 15:37   #5
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Vanizma Посмотреть сообщение
LECTUS OPC позволяет запросы слать в формате TCP или RTU over TCP.
Про клиентов - в лоб не получится: у modbus нет авторизации. Я делал пароль на запись
Понятно, что в протоколе нет авторизации, но можно её добавить функциями пользователя. А как сделал пароль? Запрос с паролем и, если он совпал, то получаем доступ на некоторое время? И в приборе отчет ведется (фиксируется кто-там что отправлял), или смысла нет?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2015, 15:51   #6
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Понятно, что в протоколе нет авторизации, но можно её добавить функциями пользователя. А как сделал пароль? Запрос с паролем и, если он совпал, то получаем доступ на некоторое время? И в приборе отчет ведется (фиксируется кто-там что отправлял), или смысла нет?
да, некоторое время. Если надо закрыть доступ сразу - записываем неправильный пароль.

А функциями пользователя... это уже я не знаю как. Как в http не получится, тут же 1 запрос - 1 квант информации.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 09.06.2015, 15:57   #7
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Vanizma Посмотреть сообщение
да, некоторое время. Если надо закрыть доступ сразу - записываем неправильный пароль.

А функциями пользователя... это уже я не знаю как. Как в http не получится, тут же 1 запрос - 1 квант информации.
Доступ должен автоматом закрываться через некоторое время, не ждать команды (может там забыли). Придумываешь собственную функцию (дополняешь протокол своими функциями) и внутри неё шлешь что хочешь (пароль, команды).
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2015, 16:01   #8
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Доступ должен автоматом закрываться через некоторое время, не ждать команды (может там забыли). Придумываешь собственную функцию (дополняешь протокол своими функциями) и внутри неё шлешь что хочешь (пароль, команды).
так я написал... "да, некоторое время", а плюсом - ввод неправильного пароля.

Какая разница как отправлять пароль? Спокойно в строковом виде за несколько регистров отправляется, функцией 0x10. Остальное будет в любом случае излишнем и к удобству не приведет.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 16.06.2015, 15:19   #9
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Неплохо сделан тот проект (с CodeProject) - даже документация в виде файла справки сделана. Я вот на Модбас TCP ничего не делал, но вот сдается мне про то что спрашиваешь, что такие вещи должны уже все в протоколе быть учтены. Сразу несколько подключенных клиентов и конфликты от них.
Какой-то умный товарищ проект слепил, причем в VisualStudio, а не в Visual Studio Express. Проверял его exe-шником свои функции 0x03, 0x02, 0x01.Читает правильно. Захотел проект пересобрать с IP 192.168.1.100 вместо его 192.168.100.1, думаю, дел на минуту, а он не открывается даже. Некоторые другие проекты, созданные в VisualStudio у меня открываются и собираются.

Не может быть, чтобы такому простому проекту была необходима полная версия VisualStudio. Итого: товарищи, делитесь проектами, которые можно открыть.
Миниатюры
Message.PNG   Unavailable.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 16.06.2015, 15:29   #10
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Я вот на Модбас TCP ничего не делал, но вот сдается мне про то что спрашиваешь, что такие вещи должны уже все в протоколе быть учтены. Сразу несколько подключенных клиентов и конфликты от них.
Как раз, не учтены... конфликтов никаких нет - каждому клиенту по своему сокету (если есть лишние ))) ). Тут нет никаких сессий или чего-то еще. Только запрос - ответ. Есть свободный сокет - клиент подключился, отправил данные в формате ModBus/TCP (и не более того), дождался (или нет) ответа. Отключил соединение, освободив сокет (или не отключил - тогда сокет им занят). Всё.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 17.06.2015, 22:07   #11
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Какой-то умный товарищ проект слепил, причем в VisualStudio, а не в Visual Studio Express. Проверял его exe-шником свои функции 0x03, 0x02, 0x01.Читает правильно. Захотел проект пересобрать с IP 192.168.1.100 вместо его 192.168.100.1, думаю, дел на минуту, а он не открывается даже. Некоторые другие проекты, созданные в VisualStudio у меня открываются и собираются.

Не может быть, чтобы такому простому проекту была необходима полная версия VisualStudio. Итого: товарищи, делитесь проектами, которые можно открыть.
Вчера писал кое чего тут с дому, но пока отвлекся на требующего внимания ребенка (мультик ему включи/попить дай/дай ручку и бумагу чтобы порисовать т.к. художник и т.д. и т.п. ), то когда уже нажал кнопку "Ответить", то все пропало, что писал. Оказывается через некоторое время уже нельзя так отвечать и нужно заново обновить страницу (просто информация может кому поможет и еще смайлики когда Backspase-ом удаляешь тоже все пропадает). Вроде у тебя VS2012 раньше была? А если удалить/переименовать файл решения и открыть уже именно файл проекта, то как? Видно, что "старый" проект т.к. класс формы не поделен от кода дизайнера. Можно просто посмотреть бегло как чего реализовано и самому свое написать. А может эту непонятную директорию, что в ошибке указана, удалить из дерева решения? У меня открывается сразу, без какой-то конвертации, в VS2012. Обычно бывает конвертация решения от старой студии в новой когда открываешь, а тут ничего не было.
AleksBak вне форума   Ответить с цитированием
Старый 17.06.2015, 22:17   #12
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Vanizma Посмотреть сообщение
Как раз, не учтены... конфликтов никаких нет - каждому клиенту по своему сокету (если есть лишние ))) ). Тут нет никаких сессий или чего-то еще. Только запрос - ответ. Есть свободный сокет - клиент подключился, отправил данные в формате ModBus/TCP (и не более того), дождался (или нет) ответа. Отключил соединение, освободив сокет (или не отключил - тогда сокет им занят). Всё.
Будем знать. (я вот, уже второй день пошел как не открываю даже проект с гармонией т.к. тоска пошла от этого и депрессия даже - столько инфы и многие вещи все равно не понятны пока. RTOS со стеком запускал/проверял/разбирался с их примеров - работает. Сложно они (мягко говоря) сделали. И много ошибок имеется - хотя релиз уже не малый. Просто решил поделиться/поплакаться.)
AleksBak вне форума   Ответить с цитированием
Старый 17.06.2015, 22:27   #13
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Вчера писал кое чего тут с дому, но пока отвлекся на требующего внимания ребенка (мультик ему включи/попить дай/дай ручку и бумагу чтобы порисовать т.к. художник и т.д. и т.п. ), то когда уже нажал кнопку "Ответить", то все пропало, что писал. Оказывается через некоторое время уже нельзя так отвечать и нужно заново обновить страницу (просто информация может кому поможет и еще смайлики когда Backspase-ом удаляешь тоже все пропадает).
Я тоже про "куда-то текст пропадает" знаю, поэтому копирую хотя бы в буфер обмена, а лучше в отдельный файл. Не раз было.
Цитата:
Сообщение от AleksBak Посмотреть сообщение
Вроде у тебя VS2012 раньше была? А если удалить/переименовать файл решения и открыть уже именно файл проекта, то как? Видно, что "старый" проект т.к. класс формы не поделен от кода дизайнера. Можно просто посмотреть бегло как чего реализовано и самому свое написать. А может эту непонятную директорию, что в ошибке указана, удалить из дерева решения? У меня открывается сразу, без какой-то конвертации, в VS2012. Обычно бывает конвертация решения от старой студии в новой когда открываешь, а тут ничего не было.
У меня Visual Studio Express 2010. Способ переноса файлов *.cs пробовал, иногда помогает, здесь пока не пробовал. Сходу не получилось, не критично пока, IP поправлю и работаю.
Там похоже два проекта (или как их там, может решения, в терминах могу путаться), в одном собирается ModbusTCP.dll, а в другом собирается exe-шник, который использует эту dll-ку. Но проект хороший, приятно посмотреть. Работает.

PS: На CodeProject нашел проект DrawTool графического редактора на C# с исходниками, как раз то, что искал, ООП. А то у одного программиста нашел, но у него на Delphi и без ООП (ссылается на давность работы) и то думает, что его код ценность представляет. Не хотят делиться ничем мои соотечественники.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 17.06.2015, 23:19   #14
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
А если удалить/переименовать файл решения и открыть уже именно файл проекта, то как? Видно, что "старый" проект т.к. класс формы не поделен от кода дизайнера. Можно просто посмотреть бегло как чего реализовано и самому свое написать. А может эту непонятную директорию, что в ошибке указана, удалить из дерева решения? У меня открывается сразу, без какой-то конвертации, в VS2012. Обычно бывает конвертация решения от старой студии в новой когда открываешь, а тут ничего не было.
Все было создано в VS2010 (не Express версия), поэтому у тебя сложностей не возникло. Проект ModbusTester отдельно открылся в VSE2010, IP я изменил, проект собрался. dll-ка и её исходники в другом каталоге (решении). Эта dll-ка в настройках VS2010 прописана (ссылка на неё), в коде ModbusTester-а (*.cs) она не упоминается. А у версий Express и не Express ограничения. Зачем так замудрено сделали - не знаю. Я с такими решениями, где несколько проектов, есть ещё позднее связывание (мне про него рассказали, что очень полезная штука при развитии программ) еще не работал.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 17.06.2015, 23:24   #15
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
...
Там похоже два проекта (или как их там, может решения, в терминах могу путаться), в одном собирается ModbusTCP.dll, а в другом собирается exe-шник, который использует эту dll-ку...
Ну да - два проекта. А готовую dll-ку нужно помещать рядом с exe-шником (либо, если в другом месте она, указать явно ссылку на нее при сборке). А проект для "демонстрации" (который с dll-кой работает) можно было конечно ужать (код сократить) и например один универсальный обработчик сделать для кнопок и т.п., но для наглядности наверно так сделал автор. А что касается проекта графического редактора, что ссылку сейчас привел, то там есть сбоку, на странице проекта, колонка "Related Articles" и там бывают ссылки на похожие проекты. Я оттуда много чего сохраняю часто (в последнее время правда что-то из-за депрессии немного забросил), но вот темой про графический редактор не интересовался, а то бы "подбросил" ссылки бы еще. Еще можно подписаться на новости от них по почте. Еще paint.net есть и его исходники в открытом доступе (на C#), но он уже не такой простой уже.
AleksBak вне форума   Ответить с цитированием
Старый 17.06.2015, 23:32   #16
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Пока писал - уже ты успел ответить. Еще бывает полезно такое решение, где несколько проектов, когда делаешь установочную версию программы. Чтобы у пользователя потом она устанавливалась с диска и пр. (с овсякими лицензиями, кнопками "Принять"/"Ok" и пр.) Навроде проекта с бутлоадером и проектом из жизни контроллеров. В студии легко установщик реализуется.
AleksBak вне форума   Ответить с цитированием
Старый 18.06.2015, 07:13   #17
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/107
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от Pridnya Посмотреть сообщение
...Эта dll-ка в настройках VS2010 прописана (ссылка на неё), в коде ModbusTester-а (*.cs) она не упоминается...
Еще добавлю - есть ссылка на dll-ку в этом "демонстрационном" решении (оно состоит из одного проекта вообще-то), а вот студия при сборке проекта этого решения сама помещает эту dll-ку рядом с исполняемым файлом (посмотри выходные каталоги проекта: bin\Debug или bin\Release)
AleksBak вне форума   Ответить с цитированием
Старый 18.06.2015, 08:08   #18
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Будем знать. (я вот, уже второй день пошел как не открываю даже проект с гармонией т.к. тоска пошла от этого и депрессия даже - столько инфы и многие вещи все равно не понятны пока. RTOS со стеком запускал/проверял/разбирался с их примеров - работает. Сложно они (мягко говоря) сделали. И много ошибок имеется - хотя релиз уже не малый. Просто решил поделиться/поплакаться.)
плакайся, плакайся..... я ещё в старой версии tcp стека ошибки периодически нахожу)))) Вот в snmp недавно совсем нашлась.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 18.06.2015, 10:20   #19
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Еще добавлю - есть ссылка на dll-ку в этом "демонстрационном" решении (оно состоит из одного проекта вообще-то), а вот студия при сборке проекта этого решения сама помещает эту dll-ку рядом с исполняемым файлом (посмотри выходные каталоги проекта: bin\Debug или bin\Release)
Создал в VSE2010 два новых проекта:
1) для сборки dll-ки (нужен один файл *.cs, заменил созданный по умолчанию на оригинальный), проект собрался успешно, dll-ка создалась.
2) приложение WinForm. По умолчанию VSE создает два файла Program.cs и Form1.cs, оба удаляем и добавляем в проект оригинальный файл frmStart.cs. Какая-то другая структура проекта: один файл *.cs 790 строк, ну да ладно. Еще добавляем в этот проект ссылку на собранную dll-ку. Собираем и все работает.
Т.е. этому проекту не требуется VisualStudio, достаточно VisualStudioExpress.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 08.09.2015, 20:35   #20
pic_fan
Junior Member
 
Регистрация: 12.08.2015
Сообщений: 7
Вес репутации: 100/0
pic_fan will become famous soon enoughpic_fan will become famous soon enough
Отправить сообщение для pic_fan с помощью Skype™
По умолчанию Re: Modbus TCP клиент

Привет знатокам,

борюсь с такимже проектом. Для начала создал в LabWindows проект ModBusTCP Client. Заработало сразу. Сервер откликнулся сразу. Описание адресов, регистров, коилс было под рукой, поэтому стащил все данные регитров и битов а также смог их устаноить.
Затем взялся за клиент со стороны PIC32. Сгрузил MLA библиотеку прокомпилировал Demo проект, потом сгрузил PIC ModBus Server. Ввел в проект MODBUSTCPServer.c, .h и заменил MainDemo.c. Для Client написал еще один файл myMODBUSClient.c, .h. Ну вот начались проблеммы.
TCPOpen возвращает MySocket=0x02. Затем чтобы начать писать в сокет необходимо проверить соединение: if(!TCPIsConnected()) эта функция всегда возвращает FALSE. Подключил Sniffer и увидел что ARP запроса после вызова TCPOpen нет, однако при открытии сокета в LabWindows ARP запрос наблюдается. В функции TCPOpen() есть какой-то неявный вызов ARP, но на шине я его не вижу. Написал в Microchip Support Ticket может помогут.
Если кто-то знает в чем проблема, прошу помощи.
pic_fan вне форума   Ответить с цитированием
Старый 08.09.2015, 20:51   #21
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от pic_fan Посмотреть сообщение
Привет знатокам,

борюсь с такимже проектом. Для начала создал в LabWindows проект ModBusTCP Client. Заработало сразу. Сервер откликнулся сразу. Описание адресов, регистров, коилс было под рукой, поэтому стащил все данные регитров и битов а также смог их устаноить.
Затем взялся за клиент со стороны PIC32. Сгрузил MLA библиотеку прокомпилировал Demo проект, потом сгрузил PIC ModBus Server. Ввел в проект MODBUSTCPServer.c, .h и заменил MainDemo.c. Для Client написал еще один файл myMODBUSClient.c, .h. Ну вот начались проблеммы.
TCPOpen возвращает MySocket=0x02. Затем чтобы начать писать в сокет необходимо проверить соединение: if(!TCPIsConnected()) эта функция всегда возвращает FALSE. Подключил Sniffer и увидел что ARP запроса после вызова TCPOpen нет, однако при открытии сокета в LabWindows ARP запрос наблюдается. В функции TCPOpen() есть какой-то неявный вызов ARP, но на шине я его не вижу. Написал в Microchip Support Ticket может помогут.
Если кто-то знает в чем проблема, прошу помощи.
вот нифига не понятно. тебе на пике модбас tcp сервер надо или клиент?
__________________

Vanizma вне форума   Ответить с цитированием
Старый 09.09.2015, 09:41   #22
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от pic_fan Посмотреть сообщение
Привет знатокам,

борюсь с такимже проектом. Для начала создал в LabWindows проект ModBusTCP Client. Заработало сразу. Сервер откликнулся сразу. Описание адресов, регистров, коилс было под рукой, поэтому стащил все данные регитров и битов а также смог их устаноить.
На стороне компа клиент и сервер?

Цитата:
Сообщение от pic_fan Посмотреть сообщение
Затем взялся за клиент со стороны PIC32. Сгрузил MLA библиотеку прокомпилировал Demo проект, потом сгрузил PIC ModBus Server. Ввел в проект MODBUSTCPServer.c, .h и заменил MainDemo.c. Для Client написал еще один файл myMODBUSClient.c, .h. Ну вот начались проблеммы.
TCPOpen возвращает MySocket=0x02. Затем чтобы начать писать в сокет необходимо проверить соединение: if(!TCPIsConnected()) эта функция всегда возвращает FALSE.
Теперь Modbus TCP клиентом на стороне микроконтроллера подключаетесь к тому Modbus TCP серверу на компе?
Цитата:
Сообщение от pic_fan Посмотреть сообщение
Подключил Sniffer и увидел что ARP запроса после вызова TCPOpen нет, однако при открытии сокета в LabWindows ARP запрос наблюдается. В функции TCPOpen() есть какой-то неявный вызов ARP, но на шине я его не вижу. Написал в Microchip Support Ticket может помогут.
Если кто-то знает в чем проблема, прошу помощи.
Вообще-то, ARP запрос должен быть в самом начале (комп 192.168.1.10 спрашивает "кто такой 192.168.1.100", а клиент отвечает "это я, мой MAC-адрес такой-то") и далее комп знает кто к нему подключен, а затем идут TCP запросы на установку TCP-соединения, а затем Modbus TCP запросы.
Цитата:
46 141.318579000 AsrockIn_e1:68:4a Broadcast ARP 42 Who has 192.168.1.100? Tell 192.168.1.10
47 141.318656000 02:00:00:00:00:00 AsrockIn_e1:68:4a ARP 60 192.168.1.100 is at 02:00:00:00:00:00
...
54 151.213954000 192.168.1.10 192.168.1.100 Modbus/TCP 66 query: trans: 3; unit: 0, func: 3: Read multiple registers
55 151.214173000 192.168.1.100 192.168.1.10 Modbus/TCP 127 response: trans: 3; unit: 0, func: 3: Read multiple registers
Есть пожелания посмотреть ваш клиент и сервер у меня. Выложите exe-шники посмотреть, что там ваш клиент шлет и кто его написал.
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 09.09.2015 в 09:54.
Pridnya вне форума   Ответить с цитированием
Старый 12.09.2015, 21:40   #23
pic_fan
Junior Member
 
Регистрация: 12.08.2015
Сообщений: 7
Вес репутации: 100/0
pic_fan will become famous soon enoughpic_fan will become famous soon enough
Отправить сообщение для pic_fan с помощью Skype™
Smile Re: Modbus TCP клиент

Добрый день Pridnya, Vanizma

мне нужен Client в PIC.
ModbusTCP Server в сети на каком-то крупном процессоре, возможно там Linux, факт что он открылся, и у меня полное описание Reg и Coils. Захожу в него с другого LapTop win7, тоже в сети IP-static отличается от IP-Server на два знака. Тут у меня LabWindows NI. В нем классная TCP библиотека. В LabW написал Client. Все просто: открываю socket, заготавливаю фреймы TID,PID Numb, FUNC...... и вызываю APIфункции LabW писать в socket, далее пишу CallBack-и для приема ответов Servera. Распаковываю фрейм и отображаю на экране. Думаю тут не очень интересно.
В сети у меня еще Explorer16-Microchip. Develop. Board. В нем у меня PIC32MX360F512L Для него в том же LapTop инсталлирована MLA-библиотека с Demo. Там полный проект для PIC32MX360F512L. Компилируется слету. В нем и добавил ModbusTCP Server и добавил Client. Процедура должна быть таже: установить TCP соединение Socket=TCPOpen(...) и писать в него. Пока Socket возвращается правильный а далее не видит соединения. Microchip на мой запрос пока не отвечает. Выложу Client для PIC exe когда буду на работе.

Последний раз редактировалось pic_fan; 12.09.2015 в 21:59.
pic_fan вне форума   Ответить с цитированием
Старый 13.09.2015, 09:32   #24
pic_fan
Junior Member
 
Регистрация: 12.08.2015
Сообщений: 7
Вес репутации: 100/0
pic_fan will become famous soon enoughpic_fan will become famous soon enough
Отправить сообщение для pic_fan с помощью Skype™
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от pic_fan Посмотреть сообщение
В нем и добавил ModbusTCP Server и добавил Client.
Тут я не совсем ясно написал. У Microchip есть AN1568
http://ww1.microchip.com/downloads/e...s/0001568A.pdf
Объясняют как ввести MB-Server. Вот я его и ввел чтобы со Steck-ом разобраться. Потом вместо вызова Server в main-цикле вставил свой вызов моего Client. Так что в PIC у меня только Client, который пока не работает.
Каким Sniffer-ом вы пользуетесь? У меня Wireshark. Такое впечатление что он показывает не все телеграммы
pic_fan вне форума   Ответить с цитированием
Старый 14.09.2015, 10:13   #25
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Modbus TCP клиент

Цитата:
Сообщение от pic_fan Посмотреть сообщение
Тут я не совсем ясно написал. У Microchip есть AN1568
http://ww1.microchip.com/downloads/e...s/0001568A.pdf
Объясняют как ввести MB-Server. Вот я его и ввел чтобы со Steck-ом разобраться. Потом вместо вызова Server в main-цикле вставил свой вызов моего Client. Так что в PIC у меня только Client, который пока не работает.
Каким Sniffer-ом вы пользуетесь? У меня Wireshark. Такое впечатление что он показывает не все телеграммы
Понятно. Вы пытаетесь из примера "Modbus TCP server for PIC32 MCU" сделать "Modbus TCP client for PIC32 MCU", а опыт у вас нулевой. Иначе бы вы детально расписали "какие ответы приходят, какие не приходят". До этого вы пользовались коммерческим софтом от National Instruments, создали в нем клиент, а теперь решили то же самое на пике сделать.
Можно написать письмо в National Instruments и попросить версию LabWindows для PIC32.
Я пользуюсь сниффером Wireshar, он все показывает, там фильтры есть и можно выбрать нужные пакеты.
Уточняю, что у меня Modbus TCP client написан на C# (мною), работает под Windows и используется для контроля (есть соединение, и что какой ответ получен от сервера). Есть еще несколько чужих примеров клиентов с исходниками (под Windows), есть программа Hercules, она может ASCII-строку в HEX виде отправлять на нужный IP и порт. А Modbus TCP server у меня на STM32 и я использую стек LwIP. Чуть изменил проект TCP echo server. У меня эхо-сервер стал Modbus TCP сервером.
Может вам Vanizma поможет.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация структуры C32 pic32 smart_pic Продукция MICROCHIP 38 05.11.2014 21:37
Modbus TCP/IP NeoKlin Cетевые протоколы и технологии 13 02.08.2012 09:34
Кто-нибудь работает с Modbus TCP из delphi? Вова Cетевые протоколы и технологии 4 29.07.2011 17:13
PIC32 реализация Modbus RTU c DMA Otuck Продукция MICROCHIP 5 09.07.2010 08:33
modbus and ccs picc gladkih Вопросы начинающих 1 03.10.2008 09:34


Часовой пояс GMT +3, время: 19:43.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot