Настройка ADAM 5510/TCP + SCADA Citect 6.0 |
Ответить |
Автор | |
Новичок Присоединился: 19 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 7 |
Опубликовано: 21 Март 2007 21:28 |
Здравствуйте, Имеется контроллер фирмы Advantech 5510/TCP (подключенные модули - ADAM-5017, ADAM-5050). Через утилиту ADAM-5510 Series Utility связь с контроллером есть. При настройке IP адреса указываю статический IP. В документации по настройке IP необходимо указывать Gateway и DNS. Подскажите, пожалуйста, что именно писать в этих полях. До настоящего времени ничего не указываю. По IP адресу он пингуется. Далее я создаю проект на SCADA Citect 6.0. SCADA должна иметь связь с модулями данного контроллера по протоколу MODBUS через TCP/IP. При запуске проекта, SCADA модули не видит. Обращалась за помощью к поставщикам SCADA – в проекте все настройки верны. Пожалуйста, подскажите, как правильно настроить данный контроллер для работы по TCP/IP. Заранее благодарна за ответ. Оксана. |
|
Новичок Присоединился: 25 Январь 2006 Категория: Belarus Online Status: Offline Публикации: 16 |
|
Здравствуйте!
Извините, но мне кажется, что ADAM-5510 не поддерживает аппаратно протокол modbus. Для этого существует ADAM-5511 |
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Зато поддерживает "программно" Для Модбас TCP есть библиотека MBTCPх.LIB. Смотрите примеры, которые при установки утилит ставятся. Должен быть инициализирован сервер Modbus TCP функцией ADAMTCP_ModServer_Create. Gateway - это то же, что маска подсети. Обычно 255.255.255.0 DNS server - ничего не указывайте или указывайте тот, который у вас в сети установлен. |
|
Новичок Присоединился: 19 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Спасибо большое за ответы. Нашли пример программы (из тех, которые при установке утилит поставились). Теперь её дописываем. Только не совсем понятно как обращаться к памяти при записи данных. SCADA обращается к контроллеру по Modbus адресам (в частности, у нас стоит в слоте "0" модуль 5017(адреса 40001-40008)). В свою очередь программа на контроллере считывает данные с модуля и записывает их в адресное пространство, которое будет доступно клиентам по протоколу Modbus/TCP. На форуме уже обсуждалась эта тема - всё понятно, кроме того, как всё же обращаться к памяти, указатель на которую передаётся в функции ADAMTCP_ModSrever_Create(502,5000,20,(unsigned char *)Share_Mem,sizeof(Share_Mem))). Будем выяснять на практике как оно на самом деле.
|
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Как к обычному массиву, например Share_Mem[10] |
|
Новичок Присоединился: 19 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Да, обращение как к массиву. Например, прочитали значение с нулевого канала модуля аналогового ввода и теперь необходимо поместить это значение в память, чтоб затем SCADA считала его по адресу 40001. Как узнать по какому индексу массива Share_Mem[] обратиться, чтобы значение было записано именно по этому адресу? В комментарии их программы написано следующее Share_Mem[0]= LocalDIO;// Write to adress 40001 Получается, что для записи значений 0-7 каналов модуля необходимо записывать в массив по индексам Share_Mem[0] - Share_Mem[7], что будет соответствовать адресам 40001-40008. Далее, если у нас появиться ещё один модуль в слоте «1», то у него будет уже другой диапазон Modbus-овских адресов. Какой же тогда диапазон индексов массива будет соответствовать диапазону его адресов?
|
|
Действительный член Присоединился: 09 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 187 |
|
Share_Mem[0]- 400001, Share_Mem[1]- 400002, Share_Mem[2]- 400003, и т.д. |
|
Новичок Присоединился: 19 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Попробовали записывать в массив по индексам Share_Mem[0] - Share_Mem[7] (соответствие адресам 40001-40007) - всё получилось. Осталось проверить чтение значений с дискретных входов. Спасибо за помощь.
|
|
Новичок Присоединился: 22 Май 2011 Online Status: Offline Публикации: 3 |
|
Share_Mem[0]= LocalDIO;// Write to adress 40001 А каким образом записывать и получать данные по адресам 10001 30001 00001? |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |