cpu13.ru - форум OMRON
http://cpu13.ru/

MODBUS-RTU
http://cpu13.ru/viewtopic.php?f=9&t=460
Страница 1 из 1

Автор:  storm_tpv [ Вт янв 13, 2009 16:25 ]
Заголовок сообщения:  MODBUS-RTU

Я хочу принять данные от инвертора.
В литературе написано, если использовать MODBUR RTU то ответные данные от инветора будут приходить в зарезервированные ячейки памяти области DM32350-DM32399.
У меня поставлена задача:имеется 17 инверторов, нужно знать какой из инверторов в ошибке или не отвечает. Написано, что в ответных данных области DM32352 отводится код ошибки. Я не понимаю какой именно код будет написан, и где эти коды найти, какой чему соответствует. Мне нужно узнать инвертор активен или нет, т.е. регистр 20h бит 2 (Drive Ready) как им воспользоваться используя данный протокол.
Спасибо за помощь

Автор:  Олег [ Ср янв 14, 2009 00:25 ]
Заголовок сообщения: 

DM32352 выводится ошибка связи, её код нужно искать в описании модбаса в мануале на контроллер. Контроллер поддерживает этот протокол, т.е. это не значит что он заточен для связи с инвертором, скорее для связи с любым устройством работающем на этом протоколе. Чтобы узнать адрес ячейки с нужными данными, достаточно запустить CX-Drive, и для нужного инвертора на вкладке "Мониторинг" найти в четвёртом столбике адрес параметра, кстати одной посылкой можно считать почти всё состояние инвертора.

Автор:  storm_tpv [ Ср янв 14, 2009 12:06 ]
Заголовок сообщения: 

так не получится. у меня нет ничего другого, кроме как тупого соединения через MODBUR-RTU ведомое устройство. управление могу осуществлять только с помощью зарезервированных слов DM области. Другого в литературе не нашел. Я соединил инвертора RS-422 и просто использовал зарезервированные области. тут даже CRC-16 не нужно высчитывать, все происходит автоматически.
И вот я в тупике, нужно показать на панели "Готовность инвертора". В инверторе есть регистр, отвечающий за Drive Ready. (Inverter V1000) Но как к нему подойти через этот простой протокол я не знаю.
Спасибо.

Автор:  Олег [ Ср янв 14, 2009 13:29 ]
Заголовок сообщения: 

ошибки связи в D32352, из инструкции W450 для CP1H, подойдут и для CP1L.

Code Name Description
0x00 Normal end Not an error.
0x01 Illegal address The slave address specified in the parameter is illegal (248 or higher).
0x02 Illegal function code The function code specified in the parameter is illegal.
0x03 Data length overflow There are more than 94 data bytes.
0x04 Serial communications mode error The Modbus-RTU Easy Master function was executed when the serial communications mode was not the Serial Gateway Mode.
0x80 Response timeout A response was not received from the Servo.
0x81 Parity error A parity error occurred.
0x82 Framing error A framing error occurred.
0x83 Overrun error An overrun error occurred.
0x84 CRC error A CRC error occurred.
0x85 Incorrect confirmation address The slave address in the response is difference from the one in the request.
0x86 Incorrect confirmation function code The function code in the response is difference from the one in the request.
0x87 Response size overflow The response frame is larger than the storage area (92 bytes).
0x88 Exception response An exception response was received from the slave.
0x89 Service being executed A service is already being executed (reception traffic congestion).
0x8A Execution canceled Executing the service has been canceled.
0x8f Other error Other FINS response code was received.

Читай один регистр начиная с 004B, переноси его в область памяти с которой можно работать по битам, бит 5 то что тебе нужно, рядом по битам ещё куча информации.

А так попробуй читать одной командой все регистры с 0040 по 004B, там почти всё состояние инвертора.

Автор:  storm_tpv [ Чт янв 15, 2009 16:37 ]
Заголовок сообщения: 

это все конечно замечательно, спасибо за помощь.
как воспринимать эти коды ошибки?
что значит 0x00 и т.п.
0 это что регистр, а 00 это биты?
тогда 0 это и есть d32352?
а 5 бит, получается за что вообще отвечает?
с этими кодами не очень понятно написано.
помоги тебе пожалуйста разъяснить. спасибо большое

Автор:  storm_tpv [ Чт янв 15, 2009 16:51 ]
Заголовок сообщения: 

почитал я, нашел эти коды ошибок, но не понимаю как они получаются...

Автор:  Олег [ Пт янв 16, 2009 11:39 ]
Заголовок сообщения: 

0x00, 0x8A один из общепринятых способов отображения в мануалах значений в HEX формате. d32352 к состоянию инвертора никакого отношения не имеет. только состояние связи, если в d32352 после посылки запроса появляется любое значение отличное от ноля, значит связь или вообще не работает или идёт с ошибками, коды ошибок нужны только для диагностики состояния связи и поиска ошибки если связи нет.

Опроси в инверторе регистр 004B, бит 5 в ответном сообшении и будет "Готов к работе".
Я не пользовал CP1 для связи с инвертором, связывался через CJ1W-CSU, читатл одной командой все регистры с 0040 по 004B, и вытаскивал только нужные мне данные:
Заданная частота
Выходная частота
выходной ток
Выходная мощьность
Входное напряжение клемма А1
Входное напряжение клемма А2
клемма S1
клемма S2
клемма S3
клемма S4
клемма S5
клемма S6
Клемма 1 MA
Клемма 1 P1
Клемма 1 P2
Run
Zero speed
Reverse
Reset signal input
Согласование скорости
Готов к работе
Незначительная ошибка
Авария

Автор:  storm_tpv [ Пт янв 16, 2009 15:51 ]
Заголовок сообщения: 

а у меня нет специального модулька, я не пользуюсь cx-protocol.
я не могу опросить инвертор, так как это можно в сх-protocol, я могу знать только посылку и ответные данные, но в ответных данных вообще не указывается где находится регистр 004B данного инвертора. есть только ошибки связи. а overrun подойдет как за аварию инвертора, если придет такая ошибка связи? потому что других способов нет.

Автор:  storm_tpv [ Пт янв 16, 2009 16:24 ]
Заголовок сообщения: 

а если пользоваться командами RXD TRX получится прочесть регистр инвертора? и Где бы найти примеры по их использованию?

Автор:  Олег [ Пт янв 16, 2009 22:38 ]
Заголовок сообщения: 

Если есть ошибка связи, значит связи с инвертором нет, где-то что-то напутал.

Кстати, один мой товарищ как-то пытался связатся таким способом с инвертором, по русской и инструкции W07E-RU нихрена не вышло, там какая-то ошибка в описании, т.е. пример из инструкции не работает, нужно копать английский вариант.

Автор:  storm_tpv [ Вс янв 18, 2009 22:21 ]
Заголовок сообщения: 

просто ошибка связи - не есть ошибка внешяя инвертора, к примеру произошла перегрузка по току инвертора, ведь ошибка связи это не покажет ((((
я наверное буду пользоваться инструкциями TXD RXD и попытаться так же тупо отсылать данные и принимать, завтра проверю

Автор:  Олег [ Пн янв 19, 2009 12:37 ]
Заголовок сообщения: 

Если есть ошибка связи, значит связи с инвертором нет и никакие данные с него не получишь.

идёшь сюда http://support-omron.fr/MultiwayE.php качаешь эту прогу, цепляешь комп с этой прогой к CP1L вместо инвертора, и смотришь какие посылки уходят в порт, на сколько они соответствуют протоколу. Прога может работать и как слейв, т.е. т.е. отвечать на запросы.

Страница 1 из 1 Часовой пояс: UTC + 3 часа (Russia: MSK)
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/