Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Настройка ADAM 5510/TCP + SCADA Citect 6.0

 Ответить Ответить
Автор
Сообщение
Oksana Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Oksana Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Настройка ADAM 5510/TCP + SCADA Citect 6.0
    Опубликовано: 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.

 

Заранее благодарна за ответ.

 

Оксана.

Наверх
adam Смотреть выпадающим
Новичок
Новичок


Присоединился: 25 Январь 2006
Категория: Belarus
Online Status: Offline
Публикации: 16
Свойства публикации Свойства публикации   Ответить, цитируя автора - adam Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 29 Март 2007 16:03
Здравствуйте!

Извините, но мне кажется, что ADAM-5510 не поддерживает аппаратно протокол modbus.
Для этого существует ADAM-5511

Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Март 2007 08:12

Первоначально опубликовано adam

Здравствуйте!

Извините, но мне кажется, что ADAM-5510 не поддерживает аппаратно протокол modbus.
Для этого существует ADAM-5511

Зато поддерживает "программно"

Для Модбас TCP есть библиотека MBTCPх.LIB. Смотрите примеры, которые при установки утилит ставятся.

Должен быть инициализирован сервер Modbus TCP функцией ADAMTCP_ModServer_Create.

Gateway - это то же, что маска подсети. Обычно 255.255.255.0

DNS server - ничего не указывайте или указывайте тот, который у вас в сети установлен.

Наверх
Oksana Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Oksana Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Апрель 2007 10:10

Спасибо большое за ответы.

Нашли пример программы (из тех, которые при установке утилит поставились). Теперь её дописываем.

Только не совсем понятно как обращаться к памяти при записи данных. SCADA обращается к контроллеру по Modbus адресам (в частности, у нас стоит в слоте "0" модуль 5017(адреса 40001-40008)).

В свою очередь программа на контроллере считывает данные с модуля и записывает их в адресное пространство, которое будет доступно клиентам по протоколу Modbus/TCP.

На форуме уже обсуждалась эта тема - всё понятно, кроме того, как всё же обращаться к памяти, указатель на которую передаётся в функции ADAMTCP_ModSrever_Create(502,5000,20,(unsigned char *)Share_Mem,sizeof(Share_Mem))).

Будем выяснять на практике как оно на самом деле.

 

Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Апрель 2007 11:51
Первоначально опубликовано Oksana

На форуме уже обсуждалась эта тема - всё понятно, кроме того, как всё же обращаться к памяти, указатель на которую передаётся в функции ADAMTCP_ModSrever_Create(502,5000,20,(unsigned char *)Share_Mem,sizeof(Share_Mem))).

Как к обычному массиву, например Share_Mem[10]

Наверх
Oksana Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Oksana Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Апрель 2007 13:23

Да, обращение как к массиву.

Например, прочитали значение с нулевого канала модуля аналогового ввода и теперь необходимо поместить это значение в память, чтоб затем SCADA считала его по адресу 40001.

Как узнать по какому индексу массива Share_Mem[] обратиться, чтобы значение было записано именно по этому адресу?

В комментарии их программы написано следующее Share_Mem[0]= LocalDIO;// Write to adress 40001

Получается, что для записи значений 0-7 каналов модуля необходимо записывать в массив по индексам Share_Mem[0] - Share_Mem[7], что будет соответствовать адресам 40001-40008.

Далее, если у нас появиться ещё один модуль в слоте «1», то у него будет уже другой диапазон Modbus-овских адресов. Какой же тогда диапазон индексов массива будет соответствовать диапазону его адресов?

 

Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Апрель 2007 13:50

Share_Mem[0]- 400001,

Share_Mem[1]- 400002,

Share_Mem[2]- 400003,

и т.д.

Наверх
Oksana Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Oksana Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Апрель 2007 18:13

Попробовали записывать в массив по индексам Share_Mem[0] - Share_Mem[7] (соответствие адресам 40001-40007) - всё получилось.

Осталось проверить чтение значений с дискретных входов.

Спасибо за помощь.

 

Наверх
gradient Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Май 2011
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - gradient Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Май 2011 15:47

Share_Mem[0]= LocalDIO;// Write to adress 40001

А каким образом записывать и получать данные по адресам 10001 30001 00001?

Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz