NodeJS и контроллер Segnetics Trim5

Возможно, NodeJS всех достал, всем приелся, не нужен, опасен и так далее. Существуют и альтернативные мнения. Зачем ставить ноду на плк - это вообще вопрос для отдельных философствований. Тем не менее, я это сделал и сейчас расскажу как.

NodeJS и контроллер Segnetics Trim5 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 (их у меня больше всего) вам интересна - плюсуйте, я выкачу и другие интересные возможности! Пожелания приветствуются!