PDA

Просмотр полной версии : ИПП 120, ModbusRTU и Arduino



Дмитрий Александрович
25.06.2022, 00:03
Добрый день уважаемые коллеги.
Разработал я платку на основе 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 для Ардуино? Пересмотрел несколько вариантов, но все либо слишком замудреные либо просто не запускаются.

Благодарю. Хороших выходных!

Дмитрий Александрович
25.06.2022, 14:28
В общем подумал я подумал... И решил - пусть ИПП будет мастером. Благо плата вполне успевает обрабатывать запросы. Так что вопрос снимается, тему можно закрывать. Всем отличного отдыха.

игорь68
25.06.2022, 16:19
Люблю я наших DiYвайщиков. Нормальные люди берут СИ30 и делают станок. Diyвайщики изобретают "велосипед на ардуино " не посмотрев что есть в магазине велосипедов. Притом кроме Си30 нужна пара реле( пускатели) . Пара кнопок ( пуск стоп). Датчик для счета импульсов.

kondor3000
25.06.2022, 18:53
Моторчик постоянного тока, редуктор от какого то часового механизма, регулировка скорости напряжением и механический счётчик. Собрал такой намоточный станочек почти 30 лет назад.
Сейчас заменил бы счётчик на электронный, всё, больше ничего не надо.

keysansa
25.06.2022, 23:30
2. Мне нужно отображать на ИПП данные с датчика - целочисленные величины. Какой командой я должен положить данные в регистр связанный с переменной (например: Переменная X[512]). Я полагаю что должна быть команда 0х06 ModbusRTU

3. Можете ли посоветовать устойчиво работающую библиотеку поддержки ModbusRTU в режиме master для Ардуино? Пересмотрел несколько вариантов, но все либо слишком замудреные либо просто не запускаются.


2. Зайдите в конфигуратор ИПП, сконфигурируйте ее в slave, далее перейдите в сетевые переменные, там все интуитивно.
3. Берите замороченную.

Дмитрий Александрович
26.06.2022, 10:49
Люблю я некоторых комментаторов с форума.
Не зная задачи и особенностей - давать советы как и что делать.

Так вот. Я не дийвайщик. И задача - коммерческая. Всех деталей, ТЗ и особенностей разглашать не могу. Ибо NDA. И уверяю вас - моторчики от будильника и редуктор из часов... Туда не подойдут. Равно как и Си30.

Дмитрий Александрович
26.06.2022, 10:50
Спасибо. Разобрался с регистрами, но сделал панель мастером. А слэйв реализуется достаточно интуитивно.

игорь68
27.06.2022, 09:01
Дмитрий. Надеюсь это не будет стоять где то ВПК.

keysansa
28.06.2022, 17:33
И задача - коммерческая. Всех деталей, ТЗ и особенностей разглашать не могу. Ибо NDA. И уверяю вас - моторчики от будильника и редуктор из часов... Туда не подойдут. Равно как и Си30.

Я понимаю kondor300.
Не DIY проект, не экономили на панели, не экономили на двигателях и редукторах - но сэкономили на контроллере. Который RTS умеет только через пень-колоду, и с отладкой (особенно удаленной) - совсем беда.