Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  


Предыдущие результаты



Предыдущие результаты



Предыдущие результаты

 OPC сервер от фирмы wonderware как то некорректно читает данные из контроллера а именно module-defined-тэги. например CNBR_01:1:C.Ch0Config.LowEngineering...записывает корректно, а прочитать не может (или отображает как то неправильно) User-defined-тэги читает нормально

 [quote:6ad0ab520f="Roland"]Если бы было предупреждение, что версия ОС контроллера и версия ОС программы не совпадают или, что прогрузка программы может привести к отключению порта, я бы, естесственно, не стал прогружать программу. В том то все и дело, что она прогрузилась как обычно. Возможно, есть функция проверки и у меня она не активна? Если да, подскажите пожалуйста, где она находится.[/quote:6ad0ab520f] Странно как-то. В несоответствующий контроллер программу загрузить не получится, если попробуешь через модуль памяти тоже самое - выполнять не станет, перейдет в ошибку с соответствующим кодом. Сбрось в Default - замкни конденсатор возле разъема батарейки. Без батарейки AB гарантирует 20 (или 30) минут, но был удивлен когда контроллер отключенный от сети в понедельник, в субботу начал выполнять программу (батарейки и ПЗУ не было).

 [b:3dde50b4cc]2Roland [/b:3dde50b4cc] Правильно ли я Вас понял - Вы не прошивали новый контроллер с помощью ControlFlash, а просто попытались залить в него программу, перекомпилированную под новый тип процессора с помощью RSLogix500?

 Попытайтесь [url=http://vdt-automation.de/files/slc_defaults.pdf]сбросить процессор в заводские установки[/url]. Не очень надейтесь, что это поможет, но мало ли, вдруг оживёт хотя бы один порт.

 Добрый день! Функционировала ли эта система ранее? Если да, можете ли Вы установить, после чего нарушилась функциональность? Если нет, то прежде всего, я бы порекомендовал сделать update этого софта до актуальной версии или хотя бы [url=http://rockwellautomation.custhelp.com/app/answers/detail/a_id/35680]RSView SE 4.00.00 Patch Roll-up[/url].

 [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:bc3a35fb23]Если разработчики указали адрес 38950, а также указали, что считывать надо из регистров хранения, то вам надо считывать данные функцией 3 из регистра хранения по адресу 38950. [/quote:bc3a35fb23] если функцией 3, то что при этом указать в DevAddres? ведь при использовании функции 3 в сеть уйдет запрос на чтение того адреса, что указан в DevAddres + 40001. Или не так? Думаю, что это все же должно сработать [quote:bc3a35fb23]Если вам разработчики расходомера указали адрес 38950, это значит, что вам надо считывать данные функцией 4 из регистра чтения по адресу 8949. [/quote:bc3a35fb23]

 [quote:e83d966153="AlexV"]...там лежит файл ModbusMaster.ACD В нем готовая реализация протокола на ладдере через встроенный COM-порт процессора. :wink:[/quote:e83d966153] У RS232 скорость передачи данных меньше и помехозащищенность хуже. ИМХО не годится он для серьезных решений в автоматизации. А также нарушается принцип модульности АСУ ТП. Горячей замены коммуникационного модуля после возможного замыкания сети модбас на силовую сеть уже не получится :( Но при ограниченном бюджете можно воспользоваться этим вариантом. [quote:e83d966153="Eraser"] необходимо на одно шасси приводить 3 разных сети от 3-х шкафов с расходомерами, так что нужны дополнительные порты. [/quote:e83d966153] В принципе, сети можно объединить через повторители, если по количеству хостов влазите в 247 штук и не требуется высокая скорость обмена данными. [quote:e83d966153="Eraser"][quote:e83d966153]Мануал со мной тоже согласен: Smile[/quote:e83d966153] что то мне кажется что мануал не очень то согласен :). В мануале то как раз и прописано, что чтение при посылке байтов 00 00 будет идти с 40001, а если я хочу скажем считать с 38950 ? что мне записать в тэг DevAddress? Отрицательные значения?[/quote:e83d966153] Вы не поняли то, что я написал. В сеть (модбас слейву) передается адрес регистра в диапазоне от 0 до 65535. Это традиционное представление адреса. В "нетрадиционном" представлении модбас адресов типа "40001" ведущая цифра "4","3", "1", "0" определяет как бы "тип данных". "4" - это регистры хранения, "3" - регистры чтения, "1" - входные биты "0" - выходные биты. А число образованное оставшимися 4мя цифрами минус один это как раз адрес из диапазона 0-FFFF. Вот его то и надо посылать слейву. А "тип данных" в отсылаемой модбас телеграмме определяется функцией, которую вы указали. Если вам разработчики расходомера указали адрес 38950, это значит, что вам надо считывать данные функцией 4 из регистра чтения по адресу 8949. Если разработчики указали адрес 38950, а также указали, что считывать надо из [u:e83d966153]регистров хранения[/u:e83d966153], то вам надо считывать данные функцией 3 из регистра хранения по адресу 38950. Вот такая путаница в модбасе. :o И опять уже Википедия со мной согласна: :D [quote:e83d966153="Wikipedia - Modbus"] Следует отметить, что со способом адресации данных связана определённая путаница. Modbus был первоначально разработан для контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация. Например, первому регистру ввода соответствовал номер ячейки 30001, а первому регистру хранения — 40001. Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40108 контроллера. Хотя такое соответствие адресов больше не является частью стандарта, некоторые программные пакеты могут автоматически «корректировать» вводимые пользователем адреса, например, вычитая 40001 из адреса регистра хранения.[/quote:e83d966153] Вот здесь спецификация модбаса. [url]http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf[/url]

 [quote:d0c06e8070]В нем готовая реализация протокола на ладдере через встроенный COM-порт процессора. Wink[/quote:d0c06e8070] необходимо на одно шасси приводить 3 разных сети от 3-х шкафов с расходомерами, так что нужны дополнительные порты. [quote:d0c06e8070]Мануал со мной тоже согласен: Smile[/quote:d0c06e8070] что то мне кажется что мануал не очень то согласен :). В мануале то как раз и прописано, что чтение при посылке байтов 00 00 будет идти с 40001, а если я хочу скажем считать с 38950 ? что мне записать в тэг DevAddress? Отрицательные значения? И еще вдогонку, в конце при посылке надо добавлять СRC. Так вот MVI-MCM будет сам добавлять это к каждому запросу? Или мне нужно это еще высчитывать дополнительными командами?

 [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, размещенный в локальном шасси. Можно сэкономить несколько десятков миллисекунд :)



Предыдущие результаты


Ещё результаты



Предыдущие результаты



Предыдущие результаты



Предыдущие результаты



Предыдущие результаты




  
RA & VDT GmbH


Облако тэгов
Automation Fatal Error RSLogix ControlLogix sound FTView Control Logix MVI56-104S 1734-AENTR Altivar Add-on Instruction MVI46MCM Ethernet PLC-5 SLC-500 1757-SRM Firmware ComactLogixL32E 1756-L75 1756-RM2 Controlnet cable Promass Client Memory 1769-L32E execution minutes seconds Windows Build 00000d5c Unspecified terminate geehrter automa

Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.128 секунды