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

отправка-получение данных через WAGO 750-653

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


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: отправка-получение данных через WAGO 750-653
    Опубликовано: 15 Июль 2011 17:52
Есть контроллер WAGO 750-841. Один из модулей, прицепленных к нему - 750-653 (RS485). По 485-му интерфейсу подключены приборы, Powerlogic PM820, понимающие modbus. 
Есть установленный OPC-сервер (KEPware, но это неважно, можно и другой поставить). При составлении конфигурации слотов контроллера KEPware для модуля 750-653 зарезервировала два тега AI и два AO. 
Подскажите, пожалуйста, чайнику, что нужно записать в AO1 и АО2 и в каком порядке, чтобы прочитать в AI, скажем, содержимое регистра 1120 с прибора с адресом 01? 
Я так понимаю, в AO нужно последовательно (побайтно? пословно?) передать: 
адрес устройства (0x01);
номер функции - чтение holding-регистра (0x04);
какие-то данные, где будет указан номер регистра, который я хочу прочесть и, возможно, количество регистров, если я хочу получить информацию сразу из нескольких;
возможно, еще контрольная сумма, (как ее вычислять?)

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


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Июль 2011 18:06
Кстати, в другом источнике вычитал, что чтение holding-регистра - это функция 03. Кому верить?
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Июль 2011 20:50
Чтение hold  регистров - это команда 03. Но разработчики делают так: не разделяют регистры на hold  и  input и делают доступ и к тем и к тем через команду 3, просто запись в input  регистры будет в пустоту.  И дельше поступают так: разрешают доступ ко всем этим же регистрам со всеми теми же адресами 4 командой (чтение  input  регистров).
Это уменьшает путаницу, т к не надо помнить какой это регистр  input  или  hold -  они все в одним адресном пространстве и нет такого адреса, который был бы у  input  и  hold регистров.
 
А чтобы не гадать попусту зайдите на  modbus.org и посмотрите команды модбас обмена.  А то как вы собираетесь работать с модбасом, если по командам ответы на форуме ищете?
При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
falkovsky Смотреть выпадающим
Новичок
Новичок


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 17 Июль 2011 00:12
Спасибо за ответ. Теперь с последовательностью, которую нужно передать на прибор, более-менее ясно. Составлен необходимый пакет длиной 8 байт.
Осталась нерешенной другая проблема. Я даю SCADA-системе 8 байт, которые нужно передать на прибор. У нее есть инструмент - OPC-сервер, в котором интерфейсному модулю WAGO 750-653 соответствуют два тега аналогового вывода. Как 8 байт записать в эти теги? Присвоить тегам тип DWORD, разбить 8 байт на две части по 4 и просто записать в AO1 и AO2? И как будут получены 8 байт ответа от прибора? А если этих байт будет не 8, а больше?
И с другой стороны - в описании на 750-653 сказано, что для отправки нужен байт управления (control) и максимум 5 (в моей модификации модуля - 3) байт данных. Как это соотнести с нашими 8 байтами? Или этим согласованием занимается OPC и мне в это лезть не нужно?
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Июль 2011 18:04
Контроллер Wago не является шлюзом из Modbus/TCP в Modbus RTU. Такую функциональность необходимо реализовывать в программе контроллера. От нее зависит, что нужно передать, и нужно ли вообще.
Инженер-системотехник
+7 (916) 477 3925
Наверх
falkovsky Смотреть выпадающим
Новичок
Новичок


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Июль 2011 17:55
Используя CoDeSys в поставке Wago I/O Pro и библиотеку Modb_l05.lib с сайта wago, можно получить и обработать нужную информацию с устройств, подключенных по Modbus к 750-653. Не подскажете, каким образом можно передать полученные данные на уровень выше, на SCADA-систему (конкретно - Iconics Genesis32) для диспетчера?

PS. Кстати, спасибо за Ваши статьи на wago.su - много полезного узнал.
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Июль 2011 20:32
Отвечу вкратце. Если разместить получаемую от устройств информацию в область выходных сетевых переменных, которая расположена с %QW256 по %QW511, а передаваемую на эти устройства информацию получать из области входных сетевых переменных, которая располагается по адресам с %IW256 по %IW511, то эти данные станут автоматически доступны по протоколу Modbus/TCP для верхнего уровня. Подробную информацию о соответствии адресов Modbus адресам в контроллере можно узнать из краткого руководства пользователя и руководства пользователя.
Детализированный пример я планирую написать позже, когда будет время.
Инженер-системотехник
+7 (916) 477 3925
Наверх
falkovsky Смотреть выпадающим
Новичок
Новичок


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Июль 2011 23:30
Спасибо, Вы очень помогли. В итоге система обмена выглядит так:
контроллер получает данные от приборов (программа, использующая библиотеку modb_l05.lib), и размещает их в переменных %QW256-%QW511. А OPC-сервер - WAGO OPC или KEPware -считывает их оттуда с помощью тегов ввода, нацеленных на адреса 300257-300512 - адрес равен номеру переменной QW плюс 300001 (именно так, со сдвигом на 1 ячейку).
Кстати, попутно еще вопрос: в описании  контроллера 750-841, ссылку на которое Вы давали, есть упоминание еще одного пула переменных %QW1276-%QW1531. Но как можно использовать эти переменные для обмена и можно ли это сделать вообще, я не нашел. Вы не пробовали их использовать?
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2011 12:06
Да, с адресацией в Modbus известная путаница. Адрес может быть указан в десятичном виде или в шестнадцатеричном, и начинаться адреса могут с 0 или с 1. А еще иногда бывает, что первый адрес 1, но единичку надо добавить все равно :)

Смущает людей и первая циферка в адресе, которая к адресу регистра вовсе не относится, а определяет код области памяти и соответствующие функции, которые используются для доступа к ней. Разумеется, для чтения области "3..." нужно использовать функцию 4, и наоборот, для области "4..." функцию 3 :)

Адреса %QW1276-%QW1531 через Modbus не видны. Эта область памяти предназначена для обмена по протоколу Ethernet/IP. Его удобно использовать, например, для подключения к Allen-Bradley. Пример есть на сайте Wago.
Инженер-системотехник
+7 (916) 477 3925
Наверх
falkovsky Смотреть выпадающим
Новичок
Новичок


Присоединился: 15 Июль 2011
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - falkovsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2011 12:41
В итоге я все сделал и оно уже работает. Пришлось немного повозиться с CoDeSys, пока понял, чем программа для контроллера отличается от программы для компьютера. И, поскольку адресов %QW256-%QW511 мне не хватило, я еще прихватил %MW. Они тоже видны OPC-серверам через Modbus в адресах 312289-... и 412289-... Еще раз большое спасибо за помощь.
Есть еще один вопрос, который я пока не смог победить: как программу CoDeSys сделать загрузочной, чтобы контроллер хранил ее в энергонезависимой памяти и при перезагрузке, например, по отключению питания автоматически ее запускал. Делаю все, как написано в мануале по CoDeSys (в его Wago-вской редакции), но не получается. У меня почему-то пункт Download в меню Online недоступен (серый). Пока обошелся тем, что при пропадании ввода с приборов (т.е. подозрении, что контроллер прекратил выполнение программы по какой-то причине) запускается батник, который перезаливает программу с компьютера. Но это, конечно, извращение.
Наверх
 Ответить Ответить Страница  12>

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

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