PortNotOpenError при подключении к Modbus

Я пытаюсь подключиться к Modbus TCP, используя библиотеку modbus-serial для JavaScript. Я подтвердил, что использую правильный IP-адрес и порт. В моей сети нет брандмауэра, а если и есть, то, используя две другие альтернативы, я смог подключить свой Modbus к устройствам и заставить другие устройства выполнять множество задач. Однако я все еще получаю эту ошибку:

ПортNotOpenError { имя: 'PortNotOpenError', сообщение: «Порт не открыт», ошибка: 'ECONNREFUUSED' }

Вот мой код:

const ModbusRTU = require("modbus-serial");
console.info("Imported Library");

const client = new ModbusRTU();
console.info("Defined Client");

client.connectTCP("", { port: });
console.info("Connected to Modbus TCP server");

console.info("");

client.writeCoil(2000, 0x01, function (err) {
  if (err) {
    console.error(err);
  } else {
    console.info("Coil successfully set!");
  }
});

Я удалил IP и порт в этом вопросе.

Я ожидал, что код включит кондиционер в моем зале, но он показал ошибку.

Кроме того, первое приложение было слишком дорогим, поэтому я не мог его использовать, а второе приложение было бесплатным, но его графику нельзя было настроить, и мне пришлось прибегнуть к моему текущему варианту — NodeJS (v20.10.0) и некоторым дополнениям к нему. настроить вид.

Кроме того, я пробовал использовать как 2000, так и 2001. Я не знаю смещения этой библиотеки (как это проверить)?

https://github.com/yaacov/node-modbus-serial/issues/115 - Здесь они используют RS485. Я использую TCPIP.

Может ли это быть связано с тем, что я временно использую Replit? Должен ли я использовать другую библиотеку JS (Какую библиотеку, как ее использовать?)? Мой код неверен (я нашел код в библиотеке и отредактировал его)?

Пожалуйста, подтвердите, как вы запускаете приложение (если оно работает на восстановленных серверах, оно не сможет получить доступ к чему-либо в вашей локальной сети). Хотя я понимаю, почему вы скрываете IP-адреса, это усложняет ответ (пожалуйста, подтвердите, находится ли устройство в локальной сети или имеет общедоступный IP-адрес).

Brits 30.03.2024 21:12

Спасибо за ваш ответ! Устройство Modbus находится в локальной сети.

Adenosine Triphosphate 31.03.2024 09:11

И где вы запускаете код? (вы упоминаете Replit в своем вопросе, одна из его функций — запуск кода на облачном сервере, который не сможет получить доступ к чему-либо в вашей локальной сети).

Brits 31.03.2024 11:13

Мне очень жаль, что я забыл ответить тебе.

Adenosine Triphosphate 18.04.2024 16:56

Не беспокойтесь, просто хотел закрыть это, чтобы другие не тратили время, пытаясь помочь. Если ответ действительно объясняет проблему, пожалуйста, рассмотрите возможность его принятия.

Brits 18.04.2024 20:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
128
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При запуске кода в Replit он будет работать на их серверах, а не на вашем ПК. Это означает, что он не сможет напрямую получить доступ к вещам в вашей локальной сети.

Другие вопросы по теме