NJ+SCU42做Modbus RTU从站

NJ+SCU42做Modbus RTU从站

实验时间:2023.2.28

硬件设备:NJ501-1300,CJ1W-SCU42

软件:Sysmac Studio,Commix串口调试助手

案例简介:发送Modbus RTU命令读取NJ里的数据

1. 系统概述 264

​ 本次实验使用Commix串口调试助手作为主站发送ModbusRTU命令读取NJ PLC的指定变量的数据。SCU42模块作为从站需要指定Coils Area、Input Registers Area、Holding Registers Area对应的地址区域(本次案例中分别指定为CIO、CIO、DM),然后通过该模块规定好的功能码进行读取。由于NJ PLC编程时使用的变量,所以还需要分配地址将变量和内存地址相关联起来。

2. 硬件接线

在这里插入图片描述

电脑的485口RDA-和RDB+分别和SCU42的PORT1口的RDA-和RDB+对接,模块上的2-4拨码拨到2侧表示485接线,TERM拨码拨到OFF表示不使用终端电阻。

3. 参数设置

SCU42模块参数设置

将串口设置改为User Settings,串口通信模式设置为MODBUS-RTU slave,波特率19200,停止位2 bit,无校验

在这里插入图片描述

Coils Area、Input Registers Area、Holding Registers Area三个区域分别指定为CIO、CIO、DM区,站号设置1

在这里插入图片描述

创建变量并分配地址

全局变量表中创建三个变量并分配地址,保持区的变量要勾选“保持”

在这里插入图片描述

Commix串口调试助手配置

将串口基本的通信参数和SCU42模块设置成一致的,再将校验设置为CRC16(Modbus RTU),然后打开串口即可

在这里插入图片描述

4. SCU模块支持的功能码

在这里插入图片描述

01 读取多个线圈(Read Coils)

在这里插入图片描述

02 读取多个CIO区线圈(Read Discrete Input)

在这里插入图片描述

03 读取多个保持寄存器(Read Holding Registers)

在这里插入图片描述

04 读取多个输入寄存器(Read Input Registers)

在这里插入图片描述

05 写入单个线圈(Write Single Coil)

在这里插入图片描述

06 写入单个寄存器(Write Single Register)

在这里插入图片描述

08 测试通信(Diagnostic)

在这里插入图片描述

0F 写入多个线圈(Write Multiple Coils)

在这里插入图片描述

在这里插入图片描述

10 写入多个保持寄存器(Write Multiple Registers)

在这里插入图片描述

在这里插入图片描述

5. 实验现象

① 功能码01,读取CIO 0.00-0.07线圈的状态:

命令:01 01 0000 0008 + 校验

在SysmacStudio中将coil_cio[0]-[7]数组变量赋值:

在这里插入图片描述

Commix发送命令:

在这里插入图片描述

读到的线圈状态为3F,转换为2进制11111100即为CIO 0.00-0.07线圈的状态

② 功能码02,读取CIO 0.00-0.07线圈的状态

命令:01 02 0001 0005 + 校验

在SysmacStudio中将coil_cio[0]-[7]数组变量赋值:

在这里插入图片描述

Commix发送命令:

在这里插入图片描述

读到的线圈状态为3F,转换为2进制11111100即为CIO 0.00-0.07线圈的状态。与01功能码的区别为该功能码只能读取CIO区的线圈。

③ 功能码03,读取D0-D2保持寄存器

命令:01 03 0000 0003 + 校验

在SysmacStudio中将holding_registers_dm[0]-[2]数组变量赋值:

在这里插入图片描述

Commix发送命令:

在这里插入图片描述

④ 功能码04, 读取CIO 1-3 输入寄存器

命令:01 04 0001 0003 + 校验

Commix发送命令:

在这里插入图片描述

⑤ 功能码05, 将CIO 0.08置位

命令:01 05 0008 FF00 + 校验

注:0000 hex表示OFF,FF00 hex表示ON

Commix发送命令:

在这里插入图片描述

在SysmacStudio中查看写入CIO 0.08的状态

在这里插入图片描述

⑥ 功能码06, 将D8写入0064hex

命令:01 06 0008 0064 + 校验

Commix发送命令:

在这里插入图片描述

在SysmacStudio中查看写入D8的值

在这里插入图片描述

⑦ 功能码08, 通信状态测试,发送什么返回什么

命令:01 08 0000 8888 + 校验

Commix发送命令:

在这里插入图片描述

⑧ 功能码0F, 将CIO 0.00-0.15全部置位

命令:01 0F 0000 0010 02 FFFF + 校验

Commix发送命令:

在这里插入图片描述

在SysmacStudio中查看CIO 0.00-0.15的状态

在这里插入图片描述

⑨ 功能码10, 将D0-D2地址分别复制0006hex、0007hex、0008hex

命令:01 10 0000 0003 06 0006 0007 0008 + 校验

Commix发送命令:

在这里插入图片描述

在SysmacStudio中查看写入D0-D2的值

在这里插入图片描述

注意事项:

  1. ModbusRTU 线圈地址,以Coils Area为CIO区为例,CIO 0.00为0开始依次往后排列,如下图:

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_qsqsqsq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值