асинхронный параллельный Modbus-последовательный узел JS - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь с этим кодом, но не могу получить значение, кто-нибудь может мне помочь? извините, потому что я новичок в NodeJS. Я не понимаю, почему код не может вернуть значение.

const ModbusRTU = require("modbus-serial");

var client = new ModbusRTU();

client.connectRTUBuffered("COM3", { baudRate: 9600 });

var async = require("async");

setInterval(function(callback) {

async.parallel({

        async_modbus_1_1: function(clbk) {

            client.writeFC3(1, 4103, 2, function(err, data) {

                console.log(data);

            });

        },

        async_modbus_1_2: function(clbk) {

            client.writeFC3(1, 4106, 2, function(err, data) {

                console.log(data);

            });

        },

        async_modbus_2_1: function(clbk) {

            client.writeFC3(3, 4103, 2, function(err, data) {

                console.log(data);

            });

        },

        async_modbus_2_2: function(clbk) {

            client.writeFC3(3, 4106, 2, function(err, data) {

                console.log(data);

            });

        }
    },
    function(error, result) {

        if (error) {
            console.log(error);
        }

        if (result) {
            console.log(result);
        }

    });

}, 1000);

Я пытаюсь подключиться к ведомому Modbus с этим кодом, когда я пытаюсь запустить, я не получаю возвращаемое значение от ведомого устройства Modbus, а в ведомом устройстве Modbus я просто получаю это значение без значения Tx

000781-Rx: 01 03 10 07 00 02 71 0A 01 03 10 0A 00 02 E0 C9 03 03 10 07 00 02 70 E8 03 03 10 0A 00 02 E1 2B

Изображение для ответа от ведомого устройства Modbus

1 Ответ

0 голосов
/ 06 августа 2019

Не знаю, если вам все еще нужна помощь, но эта проблема вызвана попыткой отправить команды параллельно. Поскольку вы используете последовательную связь Modbus, вы должны дождаться ответа, прежде чем отправлять другую команду. Вы не можете использовать Async, поскольку он будет отправлять команды параллельно через последовательное соединение.

...