NodeJS и контроллер Segnetics Trim5
Возможно, NodeJS всех достал, всем приелся, не нужен, опасен и так далее. Существуют и альтернативные мнения. Зачем ставить ноду на плк - это вообще вопрос для отдельных философствований. Тем не менее, я это сделал и сейчас расскажу как.
Пока у меня был доступ к этому контроллеру, который, кстати, является новинкой российского рынка, я экспериментировал с ним.
Производители поддерживают написание приложений на С/С++ для предыдущего своего контроллера на линуксе, а для этого, судя по всему, не подготовлен тулчейн. Да и приклад на с++ на контроллере - это не новость. Впрочем, нода - это тоже не новость для многих читателей.
Свой веб-сервер у контроллера уже есть. Своя веб-морда есть. Но всё это работает "не так как я хочу". Вспомнив о том, что в линуксе можно всё - я занялся подключением NodeJS.
Прежде всего, у контроллера не настроены dns. Это не сложно. Открываем /etc/network/interfaces и добавляем строку "dns-nameservers 8.8.8.8".
Затем добавить репозиторий в /etc/apt/sources.lost строка:
"deb http://ftp.de.debian.org/debian/ jessie main contrib non-free"
Установка node js: apt-get install nodejs
Установка npm: apt-get install npm
Вот, собственно, и всё, среда установлена, можно подключать модули и запускать скрипты.
Сразу несколько предупреждений:
1. У контроллера ограничена оперативная память. Надо оптимизировать код и исключать утечки памяти.
2. Для запуска скрипта в фоне - понадобится менеджер процессов. я использовал pm2.
О передачи данных в проект:
Стандартная среда программирования для этого контроллера - поставляемая производителем (бесплатная) SMLogix. В этой программе реализована возможность всесторонней передачи данных через механизм Shared Memory (разделяемая память). К сожалению, у меня было недостаточно времени для экспериментов, чтобы наладить связь скрипта с лоджиком. Ограничивает отсутствие в широком доступе адекватных библиотек для этого.
Тем не менее, способы лёгкого взаимодействия со скриптом есть.
Уважаемые читатели, если тема нестандартного использования заводских контроллеров на примере Segnetics (их у меня больше всего) вам интересна - плюсуйте, я выкачу и другие интересные возможности! Пожелания приветствуются!