 | |
Предыдущие результаты
Как сконфигурировать модуль для работы в локальной корзине? Контроллер 1756 Controllogix. RSlogix ver.19.1
|
Всем привет! Только начал работу с ПЛК, поэтому возникают определенные сложности.
Подключился к голове расходомера СУРГ-1.000 Ех через модуль MVI56-MCM по MODBUS, протокол RS485. Адрес Сург в сети-3. Данные читаю с помощью функции read holding registers, номер функции 3.
Данные вроде идут, но на этом этапе и возникли сложности ввиду отсутствия опыта. В частности не совсем понятно как обработать поступающие данные. Например в карте МОДБАС к Сург написано, что время храниться в регистре 15, формат unsigned long. Т.е. если я правильно понял, время дожно храниться в регистрах 21 и 22, т.е. в ReadData[21] и ReadData[22].
Конфигурация порта:
[URL=http://radikal.ru/F/s018.radikal.ru/i526/1208/89/b4e910970e34.jpg.html][img:791c832a39]http://s018.radikal.ru/i526/1208/89/b4e910970e34t.jpg[/img:791c832a39][/URL]
Команда выглядет так:
[URL=http://radikal.ru/F/s47.radikal.ru/i118/1208/57/a9e1003f9159.jpg.html][img:791c832a39]http://s47.radikal.ru/i118/1208/57/a9e1003f9159t.jpg[/img:791c832a39][/URL]
Данные идут в следующем виде:
[URL=http://radikal.ru/F/s42.radikal.ru/i095/1208/54/6157d9a3b226.jpg.html][img:791c832a39]http://s42.radikal.ru/i095/1208/54/6157d9a3b226t.jpg[/img:791c832a39][/URL]
Собственно вопросы
1) Каждый пункт массива ReadData это данные с отдельного регистра?
2) Как обрабатывать данные? Если мне нужно выдернуть время например, номер регистра 15h, формат unsigned long. Где его я должен увидеть в ReadData?
3) Кто нибудь, объясните популярно, что такое DevAddres и с чем его едят?
4)Ну и самое главное, работает только функция 3, читать регисты, никакие другие не работают. Пытался получить данные о продукте, использовав функцию 17(11h), настройки команды теже, что и для функции 3, но безуспешно. другие функции так же не работают. В чем может быть загвоздка?
|
Привет всем.
Скажите пожалуйста, возможно ли читать архив от Floboss 407 через MVI56-MCM?
|
[quote:3ff767622e="Eraser"]ведь при использовании функции 3 в сеть уйдет запрос на чтение того адреса, что указан в DevAddres + 40001. Или не так?
[/quote:3ff767622e]
откуда такая информация?
Еще раз, из мануала MVI56-MCM:
[quote:3ff767622e]
"With Modbus, to read an address of 40001, what will actually be transmitted out port is Function Code 03 (one byte) with an address of 00 00 (two bytes)."
[/quote:3ff767622e]
На человеческом языке это:
Чтобы считать адрес 40001 по модбасу, из порта, в действительности, будет передаваться функция 3 с адресом 0 (в двух байтах).
|
[quote:0f340934fe="Eraser"]Чем бы вычитать правильно эти данные в ControlLogix? [/quote:0f340934fe]
MVI-MCM - это оптимальный вариант. Можно также использовать MVI-GSC или MVI-ADM.
[quote:0f340934fe="Eraser"]По заверению разработчиков - протокол modbus, НО не modiconовский (т.е. данные будут лежать не в области начиная с 40001, а в какой то другой, в какой - еще точно не знаю).
...
Через MVI-MCM? Но насколько я вычитал из документации, при применении функции 3 (чтение), вычитка начинается с 40001 (devaddr). Как изменить не нашел.
[/quote:0f340934fe]
Согласно спецификации modbus, доступ к регистрам ввода (также как и к дискретным входа, выходам и регистрам хранения) осуществляется с помощью 16-битного адреса. Это значит, что вы указываете адрес требуемого регистра в диапазоне от 0 до FFFF. А формат адресации вида "40001" придуман для логического разделения дискретных входов, выходов, входных регистров и регистров хранения. Он используется на бумаге (в документации). В железе - просто 16-битный адрес.
Так что, если эти разработчики используют 16-битный адрес, то данные вы считаете без проблем.
Мануал со мной тоже согласен: :)
[quote:0f340934fe="User manual MVI56-MCM, page 47"]
DevAddress specifies the Modbus Slave address for the registers associated with that command. This is the offset address for the Modbus Slave device. With Modbus, to read an address of 40001, [u:0f340934fe]what will actually be transmitted out port is[/u:0f340934fe] Function Code 03 (one byte) [u:0f340934fe]with an address of 00 00 (two bytes)[/u:0f340934fe]. This means that to read an address of 40501, use Func 3 with a DevAddress of 500.[/quote:0f340934fe]
[quote:0f340934fe="Eraser"]
Через MVI-GSC (или MVIe-GCS)? Но там вроде как прийдется как-то прописывать весь этот протокол (что в общем то лень), да и потянет ли он работу в удаленных шасси?
[/quote:0f340934fe]
Да, придется реализовывать модбас протокол на релейной логике. Это лишняя трата времени.
MVI-GSC "потянет работу в удаленном шасси" точно также, как и MVI-MCM. У них одинаковые размеры тегов входа/выхода модуля.
Из личного опыта: два MVI-GSC с RPI = 30мс в удаленных шасси нормально работают в одном сегменте controlnet. К тому же, в этой сети еще шасси с сигнальными модулями работают.
Если время обновления данных не критично, то можно смело размещать MVI-MCM в удаленном шасси. Если требуется максимальная скорость обновления данных, то может стоит использовать MVI-ADM, размещенный в локальном шасси. Можно сэкономить несколько десятков миллисекунд :)
|
[quote:23e25b3394="Aleksky"]А по MVI MCM модулям есть русские мануалы??[/quote:23e25b3394]
Нет, насколько мы знаем, их ещё никто не переводил.
[quote:23e25b3394]MVI модуль вообще можно ставить в удаленную корзину??? [/quote:23e25b3394]
[url=http://www.prosoft-technology.com/prosoft/support/bulletin_board/inrax/mvi56_mcm_vs_mvi56_mcmr]Да, можно. Но лучше туда ставить специально для этого существующий модуль MVI56-MCMR.[/url]
|
Какой именно у вас модуль MVI56 (какой протокол) ?
судя по MCM.ModDef скорее всего MVI56-MCM
обратите внимание на значения следующих тэгов
MCM.ModDef.ReadStartReg по умолчанию в примере стоит 600 - это смещение внутренней адресации
соответственно, чтобы увидеть данные в MCM.ReadData[0] нужно в конфигурации команды прописать
MCM.P1Cmd[0].IntAddress = 600
|
Есть модуль mvi56-mcm по порту 1 в режиме мастера опрашивает 6 slave опрос идет все нормально, при добавлении второго мастера по порту 2 опрос по порту 2 не идет, команды порта 2 выдают ошибку -44. конфигурировалось аналогично первому порту, в чем может быть проблема, примера с двумя мастерами не нашел.
|
Спасибо большое. Конфигурационный файл я загрузил с диска в модуль MVI56-MCMR и он был сконфигурирован как Master, а FloBoss в данным случае как Slave. После загрузки конфигурационной программы в память модуля MVI56-MCMR с помощью Prosoft Configuration Builder, у меня выводиться что "Module is Running". Далее я открываю RSLogix 5000, создаю проект, перехожу в режим онлайн и подключаю FloBoss 107 через конвертер RS-485/232 в модуль MVI56-MCMR в разъем "P1 Application". В режиме онлайн данные с FloBoss 107 должны выводиться в поле Local:6:I.Data[41]?
Правильно ли я Вас понял?
|
Ребята всем огромное спасибо. Но у меня следующий такой вопрос:
Теперь я хочу подключить к блоку MVI56-MCMR компьютер расхода газа FloBoss 107(Emerson Process Management). Подключаю к блоку MVI56-MCMR через конвертер RS-485/232, в программе RSLinx 5000 перехожу в режим онлайн. Проблема состоит в том, что при переходе в режим онлайн, я захожу в Controller Tags, что бы предварительно просмотреть данные от посланного FloBoss 107,но я не знаю в каких тегах следует просмотреть эти данные?
Например, в модуле 1756-İF8H, что бы просматреть данные я кликаю Controller Tags, далее Local:1:I, далее Local:1:I.HART.
А в случае MVI56-MCMR как быть?
|
Предыдущие результаты
Ещё результаты |
|
| |
|