Jump to content
Форум по продукции MOXA

iLogik 1210 - доступ по Modbus


Recommended Posts

Добрый день! :-)

Возникла необходимость использования прибора iLogik 1210 под Линуксом (Ubuntu).

Отлично, что на сайте есть библиотека - в принципе, там ничего сложного - бери и используй, даже не заморачиваясь протоколом Modbus.

Но протокол Modbus новый для меня и поэтому для полноты понимания (да и просто ради интереса) есть несколько вопросов по его реализации в этом устройстве:

1. Обращение происходит в режиме вопрос-ответ - передается номер функции, назад передается результат. Судя по описанию, по умолчанию, чтобы получить состояние входа, передается номер функции 0x02. В ответ передается один байт? Значение счетчика - функция 0x04. В ответ приходит двойное слово? Но состояние всех входов - так же функция 0x04. Как отличить их друг от друга? Нет полного описания функций протокола Modbus для этого прибора. Или это закрытая информация и нужно использовать именно имеющуюся библиотеку?

2. Не могу понять, зачем используются User-Defined Start Address и Reference Address? Какое отношение они имеют к протоколу Modbus? Как использовать эти адреса при доступе к конкретному прибору?

3. Что такое Modbus Mapping, зачем он нужен и как его использовать? Там как раз User-Defined Start Address и Reference Address и используются.

 

Прошу извинить, если вопросы слишком дилетанские.

Link to comment
Guest Stepashkin

Добрый день!

 

Ответ на функцию 0x02 имеет размер 2 байта, биты которого соответствуют дискретным входам. При отсылке функции мы также указываем, какие входы нам нужно опросить (номер первого опрашиваемого входа и кол-во опрашиваемых входов). Насчет функции 0x04 – нет необходимости различать DI Counter Value (Double Word) и DI Value All Channel (Ch0-Ch15) – что Вам нужно, то и используете.

Reference Address – это точный порядковый регистра, а при обращении к регистру по Modbus используется User-Defined Start Address.

Modbus mapping – это возможность вручную задавать User-Defined Start Address – например, чтобы не вносить изменения в код программ при замене железа, у которого Start Address имели другие значения.

 

Modbus- протокол широко распространен и найти его описание не составляет проблем, поэтому в инструкции к ioLogic нет детального его описания.

Link to comment
  • 2 months later...

пробую записать передать функцию 0x02 с помощью примера на C#, устройство - E1210 в ответ выдает ILLEGAL_DATA_ADRESS . Куда копать ? адрес начальный задал 0001, кол-во каналов счит. - 4 В самой моксе включил Enable User-defined Modbus Addressing

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...