Передача внутренних переменных ADAMa на |
Ответить | Страница 123 5> |
Автор | ||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
Опубликовано: 21 Июль 2005 08:45 |
|
Здравствуйте! Подскажите пожалуйста такой вопрос. Как сделать чтобы OPC сервер на ПК видел внутренние переменные контроллера (т.е. переменные программы на С++). К Адаму прилагается библиотека функций на С++, в том числе там есть функции касающияся ModbusOPC Server`а и ModbusOPC клиента. Уважаемый Petrov сообщил что "Надо будет переменные положить в определенные ячейки памяти, доступные по Модбасу. Входы/выходы должны быть уже там." Не могли бы Вы поподробнее рассказать про это. Заранее огромное спасибо. |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Если это невозможно или Вы с таким не сталкивались, то подскажите как управлять выполнением программы на контроллере с ПК?
|
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 24 Февраль 2004 Категория: Russian Federation Online Status: Offline Публикации: 185 |
||
Я никогда не работал с вашим контроллером, и сейчас постараюсь просто порассуждать логически. У него должен быть какой-то механизм, для программистов, для обмена данными по Модбас. Какой это механиз? Очевидно, что или резидентный драйвер, или библиотека, которую необходимо компоновать со своим приложением. Если это так, то наверняка должно быть описание, какой интерфейс имеет драйвер или библиотека - по другому просто не может быть! И наверняка кроме описания будет еще и пример. Поищите на диске, который прилагался к контроллеру, наверняка найдете. Вообще вижу ваши постоянные вопросы, и создается впечатление, что вы совсем не читате документацию. Многие люди программили этот контроллер - и наверняка находили ответы в ней. контроллеры делает серьезная фирма, у них вся документация должна быть. Я сам работал с серией i7188 - там куча материала прилагается на диске, документация, примеры. Нужно только посидеть вдумчиво, поизучать. По поводу компилятора Borland С++ 3. Если сказано, что библиотека предназначена для Turbo C++ 3, то и надо использовать только его, ничего с этим не поделаешь. У борландовских компиляторов в досовские времена были вопросы по поводу несовмести библиотек от разных компиляторов. В первую очередь это было связано с библиотекарем, а не с самим компилятором. Я, помню, вытаскивал объектники из библиотек, декомпилировал в ассемблер, потом собирал заново библиотеку. И напоследок. Я уже говорил ранее - пишете свою программу, так какие могут быть вопросы по поводу того, как с ней контактировать извне. Все зависит только от вас. Вам предложили вариант использования Модбас - почитайте доку, как работать с этой библиотекой, изучите заголовочный файл, примеры. Если этого не делать - как тогда можно писать программу? |
||
Александр Бурмистров,
www.entels.ru |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Здравствуйте ув. Remint! Очень рад вашему сообщению.
Я прочитал 490 стр. документации по ADAMу. Там есть всё. Начиная от того как его крепить и заканчивая рассмотрением каждой функции прилагаемой библиотеки с примером использования. В этой библиотеке имеются функции для реализации на стороне контроллера как ModbusTCP server так и ModbusTCP клиент. Еще загвоздка в том что у меня пока нет OPC сервера Modbus/TCP чтобы поэкспериментировать. Тот что на ftp у прософта не поддерживает TCP (очень долго мучался). Но время терять не хочется (ждать пока доставят OPC) вот я и спрашиваю как это вообще теоретически. Чтобы быть к этому готовым. Как я правильно понимаю и как сказал ув. Petrov, нужно переменные положить в определенную область памяти и тогда OPC сервер на ПК их увидит... Можно хоть немного растолковать это, уверен что этот вопрос мучает не только меня... |
||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||
www.google.com, поиск "modbus/tcp"+demo - думаю, можно подобрать. |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 24 Февраль 2004 Категория: Russian Federation Online Status: Offline Публикации: 185 |
||
Что "это"? Экспорт данных из своей программы, которые можно увидеть снаружи через библиотеку ModbusTCP? Так вы же просмотрели описание всех функций библиотеки адама - разве там нет ответа на этот вопрос? |
||
Александр Бурмистров,
www.entels.ru |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Библиотека для написания программ на стороне контроллера. Ответа я не нашел. Есть функция ADAMTCP_ModServer_Create Description: Create a Modbus/TCP Server. Syntax: int ADAMTCP_ModServer_Create(int Host_port, unsigned long waittimeout, unsigned int numberConns, unsigned char * ptr_mem, int size_mem); Host_Port - The port for Midbus/TCP server Waittimeout - Time out value, 0~0xfffffffff milli-second NumberConns - Maximum connections for client ptr_mem - Share memory size_mem - The size of share memory Пример: ADAMTCP_ModSrever_Create(502,5000,20,(unsigned char *)Share_Mem,sizeof(Share_Mem))) Насколько я понимаю это как раз то что нужно? Все что мне нужно это управлять ходом выполнения программы на контроллере с ПК. Т.е. хотелось бы менять значения переменных (С++ программы) на контроллере. Как это обычно делают я не знаю. Вот решил попробовать при помощи OPC сервера для контроллера. Потому что он (OPC сервер) у нас будет. Подскажите как это делаете Вы. |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 24 Февраль 2004 Категория: Russian Federation Online Status: Offline Публикации: 185 |
||
Только одна функция, и все? Больше ничего нет для того, чтобы как-то передавать данные Модбас-серверу? Ясно, что вы должны как-то организовать массив переменных для него, который, видимо, можете читать/писать сами из своей программы, и с которым будет работать Модбас-сервер. Но можеть быть и по другому, конечно. Если других функций нет, то значит надо как-то использовать ту память, что вы ему передаете через указаталь и ее размер. Есть какое-нибудь описание, зачем серверу передается эта память, для чего она ему? Может - как раз ее он будет использовать для массива переменных? И нет ли там еще каких процедур для того, чтобы выделять процессорное время Модбас-серверу? В ДОСе часто так делается, это же не Windows, в ответ на функцию инициализации тут не получится запустить новый поток. |
||
Александр Бурмистров,
www.entels.ru |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||
Эта функция запускает сервис Modbus/TCP на 502 порте, с поддержкой до 20 клиентов. Вы передаете ей указатель на разделяемую область памяти, которая будет доступна клиентам по протоколу Modbus/TCP. Что за данные Вы там будете хранить - дело Ваше. Проверить работу можно любым бесплатным OPC сервером Modbus. |
||
Инженер-системотехник
+7 (916) 477 3925 |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Т.е. при помощи этой функции можно предоставить OPC серверу на ПК мои переменные? Если да, то можно небольшой пример показать, в первый раз всетаки... |
||
Ответить | Страница 123 5> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |