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

Передача внутренних переменных ADAMa на

 Ответить Ответить Страница  <12345>
Автор
Сообщение
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Передача внутренних переменных ADAMa на
    Опубликовано: 25 Июль 2005 17:56

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

Вы не встречались с ситуаций описанной в вопросе со скриншотом?

Не встречался. Со стороны клиента никаких настроек нет?

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

И еще вопрос, каким OPC сервером Вы предпочитаете пользоваться?

Сейчас использую  WAGO. У них со средой программирования CoDeSys встроенный и OPC- и DDE-сервера.

Наверх
compm2001 Смотреть выпадающим
Участник
Участник


Присоединился: 09 Июнь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 78
Свойства публикации Свойства публикации   Ответить, цитируя автора - compm2001 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Июль 2005 19:44
Первоначально опубликовано Petrov


Неужели получилось?



Еще бы!!! ADAM пингуется, программы компилируются без ошибок, пишу на С++ а не на С. Есть "OPC клиент" для Дельфи. Получилось "менять переменные на контроллере с ПК". Что еще надо для счатья? Конечно еще не очень понимаю как передать по Modbus'у строку, плохо представляю себе модбасные регистры и много чего еще не понимаю, но все таки... Чувство радости налицо! Всем большое спасибо за поддержку!!! Естественно это еще не все...
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Июль 2005 01:16

Ну строку вряд ли получится, только если Модбас самостоятельно реализовать. В принципе, это возможно. Но это уже, недокументированные возможности...  

 

 

Наверх
compm2001 Смотреть выпадающим
Участник
Участник


Присоединился: 09 Июнь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 78
Свойства публикации Свойства публикации   Ответить, цитируя автора - compm2001 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2005 20:54
Добры день! Наконец-то появился Advantech Modbus/TCP OPC Server (PCLS-OPC/MTP). Можно ли им подключаться к модулям ввода вывода ADAM'а на манер как в ADAM OPC сервере? Т.е. напрямую? Без написания кода на стороне контроллера. Сколько не пробовал ничего не вышло... Подскажите пожалуйста как быть.
Наверх
KozlovKS Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 21 Июнь 2003
Online Status: Offline
Публикации: 432
Свойства публикации Свойства публикации   Ответить, цитируя автора - KozlovKS Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 10:27
Этот OPC-сервер поддерживает по Ethernet устройства, имеющие встроенный протокол Modbus/TCP. Например, ADAM-5000/TCP или серия ADAM-6000.
Наверх
compm2001 Смотреть выпадающим
Участник
Участник


Присоединился: 09 Июнь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 78
Свойства публикации Свойства публикации   Ответить, цитируя автора - compm2001 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 10:34
Первоначально опубликовано KozlovKS

Этот OPC-сервер поддерживает по Ethernet устройства, имеющие встроенный протокол Modbus/TCP. Например, ADAM-5000/TCP или серия ADAM-6000.


ADAM-5510E/TCP в эту категорию не входит?
Наверх
KozlovKS Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 21 Июнь 2003
Online Status: Offline
Публикации: 432
Свойства публикации Свойства публикации   Ответить, цитируя автора - KozlovKS Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 10:41
ADAM-5510E/TCP в эту категорию входит. Но тут надо руками дописывать сервер на модуле, я имел ввиду контроллеры с жесткой логикой и аналогия была с модулями серии 4000/5000.
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 11:27

А что там дописывать?  Сигналы на модулях ввода/вывода должен поддерживать.

Наверх
compm2001 Смотреть выпадающим
Участник
Участник


Присоединился: 09 Июнь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 78
Свойства публикации Свойства публикации   Ответить, цитируя автора - compm2001 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 13:04
В OPC servere можно указывать только адреса.
Объясните пожалуйста, как нужно их понимать.
Input Coil - 010001 (read only)
Output Coil - 000001
Input Reg   - 030001 (read only)
Output Reg - 040001
Т.е. что такое Input Coil и прочее...
И вот еще одно. В примере для контроллера пишут:
unsigned int Share_Mem[4000];
Создаем OPC сервер:
ADAMTCP_ModServer_Create(502,5000,10,(unsigned char*)Share_Mem,4000).
В функции сначала порт, потом тайм-аут, макс. кол-во клиентов, потом указатель на память и размер памяти.
Далее пишут Share_Mem[0]=что-то // Write что-то to adress 40001
А как это, пишем в первый элемент массива а написано что по адресу 40001?
А затем в мануале пишут что я должен подключиться OPC сервером к адресу 010001 (Coil Input). И все работает. Мне еще нужно изменять состояние выходов модулей на контроллере через OPC тэги на ПК, как это сделать? Т.е. чем я должен воспользоваться (Input Coil, Output Coil, Input Reg, Output Reg)... Ничего не понимаю. Подскажите пожалуйста направление в котором мне нужно двигаться.
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Июль 2005 13:36

Все что начинается с 0х (0001,0002,0003, ....) - адреса ваших дискретных выходов на модулях вывода, по порядку. По порядку учитываются только дискретные выходы.

Все что с 1х (10001, 10002, 10003, ...) - то же самое но для дискретных входов.

Все что с 3х - аналоговые входы.

Для 0х, 1х - в модбасе единица это 00FF (или FF00, точно не помню), ноль - это 0000. Хотя ОРС-сервер это все сам разруливает. Автоматически.

Для 3х, 4х - адрес 30001 - адрес двухбайтного регистра, который содержит текущее значение входа (или выхода).

Для 4х внутренних переменных учитывайте длину ваших данных. Например, если в 40003 лежит float (4 байта), то следующий тэг будет с адресом не 40004, а 40005.

A c Share_mem, похоже, что Вы задаете длину 4000 байт (2000 регистров). Или не так?

В share_mem[0] лежит первый регистр из 4х. Поэтому 40001.

Как менять состояние выходов: В ОРС заводим тэг с адресом 0001 (первый по порядку дискретный выход). Далее из клиента просто пишем ему 0 или 1. (или -1?)

Наверх
 Ответить Ответить Страница  <12345>

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

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