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

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

SMLogix нещадно глючит (по крайней мере версия, которая была рабочей летом). Пропадают связи между блоками. Проявляется непредсказуемо. Производитель идёт в несознанку.

Shared memory не работает, если Вы используете внешний преобразователь RS485 (логично, потому что пересылка - это функция мастера).

А так, у них неплохие железки.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Про пропадание связей - да, натыкался на такое, особенно обидно, когда вся графика из проекта исчезает. Кстати, когда отключил бэкапы - стало намного стабильнее!


А вот про rs485 не понял... Shmem работают, только, как мне объяснили в техподдержке, нельзя сразу пробрасывать переменную shmem на выход modbus. типа надо промежуточный блок воткнуть. Так и делал.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку