苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

【一起摸鱼】1.2Node.js上位机应用开发-Modbus通讯实现

[复制链接]
7 211
刘艳琴 2022-8-12 15:29:35 | 显示全部楼层 |阅读模式

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1 创建 Node.js 项目

接上回书说到,我们成功创建了一个简单的 Node.js 程序,下一步我们要开始创建一个能与 Modbus TCP Server 通讯的项目,那么最先需要用到的就是 npm 命令。
1.1 NPM 包管理

安装 Node.js 时,应该已经同时安装了 npm,它是 Node.js 最广泛使用的包管理和分发工具。
打开终端,输入 npm -v,如果得到以下返回,则说明 npm 已经安装成功。
> npm -v6.14.141.2 初始化项目

首先创建一个项目文件夹,在终端中进入该文件夹,然后输入 npm init,随后按照下图配置项目。(# 后为注释)
> npm initDebugger attached.This utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sensible defaults.See `npm help init` for definitive documentation on these fieldsand exactly what they do.Use `npm install <pkg>` afterwards to install a package andsave it as a dependency in the package.json file.Press ^C at any time to quit.package name: (2-modbus-tcp with h5u) h5u-modbus-tcp-client # 项目名version: (1.0.0) # 版本description: This is a modbus client for inovance h5u plc # 描述entry point: (modbus-client.js) # 入口文件test command: node modbus-client.js # 测试命令git repository: # git仓库keywords:author: mingiii # 作者license: (ISC)About to write to package.json:{  "name": "h5u-modbus-tcp-client",  "version": "1.0.0",  "description": "This is a modbus client for inovance h5u plc",  "main": "modbus-client.js",  "scripts": {    "test": "node modbus-client.js"  },  "author": "mingiii",  "license": "ISC"}Is this OK? (yes)自此项目初始化完成。
2 下载 modbus-serial 库

NPM官网 我们可以看到一个比较活跃的,由纯 JavaScript 实现的 Modbus-RTU / TCP 库 “modbus-serial”
这里我们就直接使用这个库进行与 H5U 的通讯
打开终端,在我们的项目文件夹下输入指令 npm i modbus-serial
如果在安装时遇到问题,请尝试 npm i modbus-serial --unsafe-perm --build-from-source
> npm i modbus-serial+ modbus-serial@8.0.5added 55 packages from 43 contributors and audited 55 packages in 9.946s20 packages are looking for funding  run `npm fund` for detailsfound 0 vulnerabilities上图所示代表下载成功。
如果由于网络环境无法成功下载的,可以尝试使用国内镜像 NPM MIRROR
3 创建一个 Modbus TCP Client

完成了依赖下载,我们新建一个 modbus-client.js 文件来完成我们的 Modbus TCP 客户端。
H5U 的 Modbus 地址请参考 《H5U系列可编程逻辑控制器 编程与应用手册》5.5.2 功能码与地址
// 创建一个空的modbus客户端var ModbusRTU = require("modbus-serial");var client = new ModbusRTU();// 连接TCP,192.168.1.88为 H5U 默认 IPclient.connectTCP("192.168.1.88", { port: 502 });client.setID(1);// 每1000ms将1、2、3、4、5分别写入D0到D4,之后回调read函数setInterval(function () {  client.writeRegisters(0, [1, 2, 3, 4, 5])    .then(read);}, 1000);function read () {  // 读取并打印D0到D4  client.readHoldingRegisters(0, 5)    .then(console.log);}4 读写 H5U PLC

在 H5U 中定义 D0 到 D4 共计5个变量。
1.png

连接网线至 PLC 并下载程序,然后将 PLC 置 run。
在电脑上打开终端,在项目文件夹下输入 npm test, 即可见到如下输出(按 ctrl + c 中止程序)
> npm test> node modbus-client.js{  data: [ 1, 2, 3, 4, 5 ],  buffer: <Buffer 00 01 00 02 00 03 00 04 00 05>}{  data: [ 1, 2, 3, 4, 5 ],  buffer: <Buffer 00 01 00 02 00 03 00 04 00 05>}...此时可见 PLC 监控值变为我们所定义的值,Node.js 与 PLC 的 Modbus TCP 已经成功实现。
2.png

5 参考文献


  • modbus-serial document / kzamir, 2021
  • H5U系列可编程逻辑控制器 编程与应用手册 / 汇川,2021.08
6 讨饭用附件

附件不包含依赖,使用前请输入npm i安装
给点给点

【一起摸鱼】1.2Node.js上位机应用开发-Modbus通讯实现.pdf (199.38 KB, 下载次数: 1)

2-modbus tcp with h5u.7z (6.2 KB, 下载次数: 0)


免责声明:内容为网友自行发布或者来自互联网资源或者参考文献,如果侵犯了您的权益,请联系站长 1304546267@qq.com,我们会及时删除侵权内容,感谢您的理解!
回复

使用道具 举报

123458410 2022-8-12 17:43:13 | 显示全部楼层
提醒一下,论坛的markdown解析器有时候会把小于号解析成< 大于号解析成>复制代码的话要注意一下
回复

使用道具 举报

内容丰富,感谢分享
回复

使用道具 举报

彭城射天狼黑 2022-8-13 09:49:02 | 显示全部楼层
内容丰富,感谢分享
回复

使用道具 举报

挣扎的烟头寥 2022-8-15 08:23:37 | 显示全部楼层
顶一顶 1.jpeg
回复

使用道具 举报

南瓜宝匪 2022-8-18 07:20:38 | 显示全部楼层
感谢分享
回复

使用道具 举报

ChatGPT机器人28 2022-8-18 08:04:50 | 显示全部楼层
内容详细,感谢分享
回复

使用道具 举报

关键词:Node.js、Modbus通讯、npm包管理、Modbus-serial库、Modbus TCP Client、H5U PLC

文章大纲:
1. 简介
    1.1 Node.js和Modbus通讯简介
    1.2 使用npm进行包管理
2. 创建Node.js项目
    2.1 初始化项目
    2.2 下载modbus-serial库
3. 创建Modbus TCP Client
4. 读写H5U PLC

正文:

1. 简介
   1.1 Node.js和Modbus通讯简介
   在本文中,我们将以Node.js为平台,使用Modbus通讯协议与H5U PLC进行通信。Node.js是一个基于Chrome V8 JavaScript引擎构建的JavaScript运行时,它提供了一种轻量级的、事件驱动的I/O模型,非常适合用于构建网络应用程序和服务器端。而Modbus通讯是一种常用的工业设备通讯协议,常用于PLC(可编程逻辑控制器)等设备之间的数据交互。

   1.2 使用npm进行包管理
   在使用Node.js开发项目时,我们可以使用npm(Node Package Manager)来管理和分发我们的项目依赖包。npm是Node.js内置的包管理工具,它能够帮助我们快速安装、更新、卸载项目所需的各种依赖包。

2. 创建Node.js项目
   2.1 初始化项目
   首先,我们需要使用npm命令初始化一个新的Node.js项目。在终端中进入项目文件夹,并执行`npm init`命令,根据提示填写项目的相关信息,比如项目名、版本、描述等。完成后,会自动生成一个package.json文件,用于记录项目的依赖包和其他配置信息。

   2.2 下载modbus-serial库
   在项目中,我们需要使用modbus-serial库来实现与Modbus TCP Server的通讯。在终端中执行`npm i modbus-serial`命令来安装该库。如果遇到安装问题,可以尝试添加`--unsafe-perm --build-from-source`参数进行安装。

3. 创建Modbus TCP Client
   在项目中创建一个新的文件`modbus-client.js`,用于实现我们的Modbus TCP Client。首先,我们需要引入modbus-serial库,然后创建一个新的ModbusRTU实例代表一个空的modbus客户端。接着,通过调用`client.connectTCP()`方法来连接到Modbus TCP Server,其中传入IP地址和端口号。设置client的ID为1,然后通过`setInterval`函数每隔一秒向D0到D4分别写入1、2、3、4、5,之后通过回调函数read进行读取并打印D0到D4的值。

4. 读写H5U PLC
   在与H5U PLC进行通讯时,我们需要了解H5U的Modbus地址。根据《H5U系列可编程逻辑控制器 编程与应用手册》中的5.5.2章节,我们可以了解到D0到D4共计5个变量的地址。通过调用`client.readHoldingRegisters()`方法来读取D0到D4的值,并使用`console.log`打印出来。

以Node.js为平台,使用Modbus通讯协议与H5U PLC进行通信,在项目中使用npm进行包管理,通过安装modbus-serial库实现Modbus TCP通讯,创建一个Modbus TCP Client,读写H5U PLC的D0到D4变量。通过以上步骤和操作,我们可以实现与H5U PLC的数据交互,并对其进行读写操作。

总结:
本文介绍了使用Node.js开发Modbus通讯应用的过程。首先,我们通过npm命令初始化了一个新的Node.js项目,并使用npm包管理工具下载了modbus-serial库。然后,我们创建了一个Modbus TCP Client,并通过modbus-serial库实现了与H5U PLC的通讯。最后,我们可以通过读写H5U PLC的D0到D4变量,实现与PLC的数据交互。通过本文的介绍和实例代码,读者可以快速上手使用Node.js进行Modbus通讯应用开发。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节615课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节615课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部