• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MB2HAL c esp8266+mega

daiman444

New member
Здравствуйте. некоторе время бьюсь над решением одной задачи.
Задача заключается в том чтобы подружить LinuxCNC c платой RobotDyn Mega + ESP8266 по modbus.
Для LinuxCNC есть компонент реального времени для подключения устройств по modbus, в том числе и ардуин, в том числе и по TCP/IP. на стороне LInuxCNC есть уже примерное понимание куда копать, по сути там все не так сложно: добавляется компонент, указывается количество пинов и вуаля, видим в сниффере как linuxcnc ищет заданный ip и пытается слать на него мастер-пакеты.
Проблема с esp8266 и ардуиной в целом: знаний не хватает, а любимый метод тыка не работает.
По сути esp8266+mega должна стать безпрофодным пультом.
Алгоритмов реализации может быть несколько:
1. linuxcnc отправляет пакет, esp его получает, сичтывает состояние пинов с mega и отправляет пакет в linuxcnc
2. linuxcnc отправляет пакет, esp его транслирует в mega, mega пакет обрабатывает, считывает состояние пинов, и отправляет через esp в linuxcnc.
3. другие варианты тоже могут быть, увы не силен знаниями в этом направлении.
Из вышеизложенного вопрос: может кто то помочь, подсказать как должно быть, подсказать где найти полезную информацию?
За ранее благодарен за любую полезную помощь.

Компонент реального времени в LInuxCNC:
Моя тема по этому же вопросу на форму по cnc:
Тема с протестироваными и рабочими инструкциями для подключения ардуино по модбас, но через ethernet.По этому примеру хотелось бы запустить и по wi-fi через esp8266:
 

daiman444

New member
пока что нашел такую инструкцию http://en.trialcommand.com/blog/esp8266-slave-modbus-tcpip-no-libraries/ .
загрузился светч, заработала esp. через modbus master simulator удалось поморгать диодами. так же LCNC видит esp и общается с ней, но они друг друга похоже не понимают. еще одно НО! в этом примере реализовано чтение/запись holding registers. это не совсем подходит, т.к. нужно чтобы выполнялись fnct_15_write_multiple_coils и fnct_02_read_discrete_inputs т.к. они создают digital pins в компоненте MB2HAL.
разбираемся дальше.
 
Сверху Снизу