<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Node.js скрипт для мониторинга PLC сигналов ЧПУ с Telegram алертами]]></title><description><![CDATA[<p dir="auto">ЧПУ-станки в цеху глючат, датчики молчат, а оператор только утром заметит сбой. Node.js-скрипт решает это: мониторит PLC-сигналы в реал-тайм и шлет алерты в Telegram. Экономит часы простоя, когда один пропущенный сигнал - и партия брака.</p>
<p dir="auto">Подключаешься к Modbus или OPC UA, парсишь I/O-точки и настраиваешь пороги. Никаких остановок цеха, всё по сети. Полезно для Fanuc, Siemens или KEBA - где угодно, где PLC рулит ЧПУ.</p>
<h2>Почему мониторинг PLC через Node.js - это не прихоть</h2>
<p dir="auto">PLC в ЧПУ обрабатывает тысячи сигналов: от концевиков до термодатчиков. Оператор не уследит, а скрипт на Node.js сканирует их каждые секунды по Ethernet. Если X5 - датчик упал, алерт в Telegram прилетает мгновенно, пока станок не встал.</p>
<p dir="auto">В цехах на металлообработке типично: привод Y10 не сработал, фреза в воздух рубит. Без мониторинга ждешь, пока мастер шкаф вскроет. С Node.js - лог в консоль, график в дашборд, алерт по SMS-подобке. Легко масштабируешь на 10 станков одним скриптом.</p>
<ul>
<li><strong>Реал-тайм парсинг</strong>: Modbus TCP читает discrete inputs за 50мс, без нагрузки на PLC.</li>
<li><strong>Умные алерты</strong>: Не спам - только на порогах, с историей последних 10 циклов.</li>
<li><strong>Интеграция с MES</strong>: Экспорт JSON для аналитики, без доп.шнуров.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Протокол</th>
<th>Скорость чтения</th>
<th>Поддержка ЧПУ</th>
</tr>
</thead>
<tbody>
<tr>
<td>Modbus TCP</td>
<td>50-100мс</td>
<td>Fanuc, Haas</td>
</tr>
<tr>
<td>OPC UA</td>
<td>20-50мс</td>
<td>Siemens, KEBA</td>
</tr>
<tr>
<td>Ethernet/IP</td>
<td>100мс</td>
<td>Allen-Bradley</td>
</tr>
</tbody>
</table>
<h2>Настройка подключения к PLC</h2>
<p dir="auto">Сначала цепляешь Node.js к PLC по IP. Устанавливаешь node-modbus или opcua для клиента. Конфиг в JSON: адрес, порт, регистры I/O. Тестишь на эмуляторе - не трогаешь боевой станок.</p>
<p dir="auto">Пример: Fanuc с PLC по Modbus, читаешь inputs 0-15. Если input 5 (концевик) = false дольше 5 сек - алерт. Node.js асинхронный, так что 100 станков не нагрузит. Добавь cron для логов в файл.</p>
<pre><code class="language-javascript">const ModbusRTU = require('modbus-serial');
const TelegramBot = require('node-telegram-bot-api');

const client = new ModbusRTU();
client.connectTCP('192.168.1.10', { port: 502 });
const bot = new TelegramBot('YOUR_TOKEN', { polling: true });

setInterval(async () =&gt; {
  client.readDiscreteInputs(0, 16).then((inputs) =&gt; {
    if (!inputs.data) { // X5 off
      bot.sendMessage('CHAT_ID', 'Alert: Концевик X5 отключен!');
    }
  });
}, 1000);
</code></pre>
<ul>
<li><em>Проверь firewall</em>: PLC часто блочит 502 порт - открой в роутере.</li>
<li><strong>Таймауты</strong>: Добавь reconnect при обрыве - Node.js cluster поможет.</li>
<li><strong>Логи</strong>: Winston в файл, ротация по дням - найдешь, когда глюк случился.</li>
</ul>
<h2>Алерт-система в Telegram</h2>
<p dir="auto">Telegram Bot API - бесплатно, без серверов. Создаешь бота у @BotFather, кидаешь токен в env. Скрипт шлет не только текст, но и фото дашборда или график сигналов.</p>
<p dir="auto">Настраиваешь чат-группу для смены: алерт придет всем. Фильтры: критичные (стоп) - пинг, предупреждения - mute. Интегрируй с Grafana - скриншот дашборда в сообщение.</p>
<ul>
<li><strong>Уровни алертов</strong>: Критический (красный), warning (желтый), info (зеленый).</li>
<li><strong>Каналы</strong>: Личный чат, группа, канал для истории.</li>
<li><strong>Автоответ</strong>: Бот подтверждает прием - не потеряешь.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Уровень</th>
<th>Текст алерта</th>
<th>Emoji</th>
</tr>
</thead>
<tbody>
<tr>
<td>Критический</td>
<td>Станок #3: Y10 off!</td>
<td><img src="https://forum.investsteel.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/1f6a8.png?v=28605f7e2f1" class="not-responsive emoji emoji-android emoji--rotating_light" style="height:23px;width:auto;vertical-align:middle" title="🚨" alt="🚨" /></td>
</tr>
<tr>
<td>Warning</td>
<td>Темп. 85C, предел 80</td>
<td><img src="https://forum.investsteel.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=28605f7e2f1" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️</td>
</tr>
<tr>
<td>Info</td>
<td>Цикл завершен</td>
<td><img src="https://forum.investsteel.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=28605f7e2f1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
</tbody>
</table>
<h2>Деплой и масштабирование</h2>
<p dir="auto">Запускаешь на Raspberry Pi у станка или VPS в облаке. PM2 для daemon - рестарт при краше. Docker-контейнер: один образ на флот ЧПУ.</p>
<p dir="auto">Масштаб: кластер Node.js на 50 PLC, балансировка по CPU. Мониторинг самого скрипта - Prometheus + Grafana. Бэкап конфигов в Git - разворачиваешь на новом станке за 5 мин.</p>
<ul>
<li><strong>PM2 команда</strong>: <code>pm2 start script.js --name plc-monitor</code>.</li>
<li><em>Безопасность</em>: API-ключи в .env, HTTPS для OPC UA.</li>
<li><strong>Бэкап</strong>: MongoDB для истории алертов - аналитика простоев.</li>
</ul>
<h2>Что меняет скрипт в цеховой рутине</h2>
<p dir="auto">Скрипт ловит 80% сбоев до остановки: от датчиков до перегрева. Оператор фокусируется на Г-коде, а не на шкафах. Внедрил - и OEE прыгнет на 5-10%.</p>
<p dir="auto">Осталось доработать: ML для предикта сбоев по трендам или интеграцию с SCADA. Но базовый мониторинг закроет 90% болей ЧПУ-цехов прямо сейчас.</p>
]]></description><link>https://forum.investsteel.ru/topic/3572/node.js-skript-dlya-monitoringa-plc-signalov-chpu-s-telegram-alertami</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 13:54:04 GMT</lastBuildDate><atom:link href="https://forum.investsteel.ru/topic/3572.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Apr 2026 08:05:18 GMT</pubDate><ttl>60</ttl></channel></rss>