首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异步并行modbus-串行节点js

异步并行modbus-串行节点js
EN

Stack Overflow用户
提问于 2018-05-03 12:23:20
回答 1查看 395关注 0票数 0

我试着用这段代码,但不能得到值,有人能帮我吗?对不起,因为我是NodeJS的新手。我不明白为什么代码不能返回值。

代码语言:javascript
运行
复制
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从站返回的I‘t get value时,在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

Image for respon from modbus slave

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 11:12:36

不知道您是否仍然需要帮助,但此问题是由于尝试并行发送命令而导致的。由于您正在进行Modbus串行通信,因此在发送另一个命令之前,必须等待接收到响应。您不能使用异步,因为它将通过串行连接并行发送命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50146939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档