Добрый день уважаемые коллеги.
Разработал я платку на основе AtMega 328P для управления скоростью вращения двух сервомоторов (намоточный станочек). Сервомоторы (драйвера точнее) управляются аналоговым сигналом 0 - 10В, плюсом там еще кучка дискретных сигналов - в общем обычное ПЛК и ПР не подошли либо по возможностям либо по бюджету.
Плата подключается по RS485 к ИПП120. Приступил к написанию программы. И вот тут несколько вопросов появилось.
1. В документации на ИПП 120 написано следующее: Прибор в режиме Slave поддерживает:
чтение значений из нескольких регистров флагов;
чтение значений из нескольких регистров хранения;
чтение значений из нескольких регистров ввода.
Насколько я понимаю, это команды 0х02,0х03,0х04, протокола ModbusRTU. Верно?
Отсюда возникает вопрос: Если я в проекте который крутится на ИПП создаю на экране поле ввода целочисленной переменной и связываю ее с регистром (например: Переменная Y[520]) - какой именно командой ModbusRTU мне нужно обратится к этому 520му регистру что бы данные взять?
2. Мне нужно отображать на ИПП данные с датчика - целочисленные величины. Какой командой я должен положить данные в регистр связанный с переменной (например: Переменная X[512]). Я полагаю что должна быть команда 0х06 ModbusRTU
3. Можете ли посоветовать устойчиво работающую библиотеку поддержки ModbusRTU в режиме master для Ардуино? Пересмотрел несколько вариантов, но все либо слишком замудреные либо просто не запускаются.
Благодарю. Хороших выходных!