Передача внутренних переменных ADAMa на |
Ответить | Страница <12345> |
Автор | ||
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
Опубликовано: 25 Июль 2005 17:56 |
|
Не встречался. Со стороны клиента никаких настроек нет?
Сейчас использую WAGO. У них со средой программирования CoDeSys встроенный и OPC- и DDE-сервера. |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Еще бы!!! ADAM пингуется, программы компилируются без ошибок, пишу на С++ а не на С. Есть "OPC клиент" для Дельфи. Получилось "менять переменные на контроллере с ПК". Что еще надо для счатья? Конечно еще не очень понимаю как передать по Modbus'у строку, плохо представляю себе модбасные регистры и много чего еще не понимаю, но все таки... Чувство радости налицо! Всем большое спасибо за поддержку!!! Естественно это еще не все... |
||
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
||
Ну строку вряд ли получится, только если Модбас самостоятельно реализовать. В принципе, это возможно. Но это уже, недокументированные возможности...
|
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
Добры день! Наконец-то появился Advantech Modbus/TCP OPC Server (PCLS-OPC/MTP). Можно ли им подключаться к модулям ввода вывода ADAM'а на манер как в ADAM OPC сервере? Т.е. напрямую? Без написания кода на стороне контроллера. Сколько не пробовал ничего не вышло... Подскажите пожалуйста как быть.
|
||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||
Этот OPC-сервер поддерживает по Ethernet устройства, имеющие встроенный протокол Modbus/TCP. Например, ADAM-5000/TCP или серия ADAM-6000.
|
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
ADAM-5510E/TCP в эту категорию не входит? |
||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||
ADAM-5510E/TCP в эту категорию входит. Но тут надо руками дописывать сервер на модуле, я имел ввиду контроллеры с жесткой логикой и аналогия была с модулями серии 4000/5000.
|
||
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
||
А что там дописывать? Сигналы на модулях ввода/вывода должен поддерживать. |
||
Участник Присоединился: 09 Июнь 2005 Категория: Russian Federation Online Status: Offline Публикации: 78 |
||
В 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)... Ничего не понимаю. Подскажите пожалуйста направление в котором мне нужно двигаться. |
||
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
||
Все что начинается с 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> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |