欧姆龙NJ控制器通过Modbus RTU与变频器通信

硬件设备: NJ301-1100( ), NX-ECC201( Ethercat耦合器), NX-CIF105( NX

系列422/485模块), 3G3MX2-AB002-ZV1

软件: Sysmac Studio

案例简介: 使用NX_ModbusRtuCmd指令对读写。

1. 系统概述,硬件搭建和接线

NX-CIF105 的 485 管脚如下图所示:

NX-CIF105 与 3G3MX2 的接线如图所示:

如果从站有终端电阻,把 A3 B3 短接即可,本例 3G3MX2 默认无终端电阻不需要短接。
2. 操作步骤
① 软件设置
NJ 通过 Ethercat 口连接 NX-ECC201,节点号 8。

ECC201 后面直接带 NX-CIF105 模块。

双击软件中 CIF105 模块图标,进行设置:

Event level 为发生报错的反应,无需改动默认即可; event4 下面从上往下依次为:缓存允许,波特率, 422/485 切换, 8 位数据位,奇偶校验为无校验,停止位 1 位,流控功能关闭,收发允许,接受最大数据缓存为 1000*0.1=100 个字节。缓存一定要有否则 Modbus 从站不能正常反馈。
② 变频器设置
A001 A002 设为 03,其他默认,从站站号为 1, NJ 侧与变频器的通讯格式一致即可。

③ 程序编程
用 MODBUS 指令时会用到 CIF105 的端口 在 IO 映射里面右键 CIF105 模块,选择显示
节点位置端口:

创建设备变量:

NX_ModbusRtuCmd 指令说明:

相关变量说明和数据类型说明:
A. DevicePort——本案例中,设置 ABC 为 DevicePort 的结构体变量。

“ DeviceType”变量指定设备种类。用 NX-CIF 单元要设定为_DeviceNXUnit。

“ NXUnit”用之前 IO 映射中创建的节点位置信息变量放入即可。
“ EcatSlave”、“ OptBoard”可以不使用。
“ PortNo”指定端口编号: 1 代表端口 1; 2 代表端口 2。本案例中用端口 1。
ST 语言编程直接赋值如下图所示:

B. SlaveAdr——本案例中在 DEF 变量中设置从站站号,这里设置站号为 1。
3. 现象和结论
①写变频器频率: CmdDat 里的命令数据依次为 06 00 01 0F A0, CmdSize 设为 5 个
字节, 代表写变频器频率 40Hz。

RespDat 里的反馈数据依次为 06 00 01 0F A0,代表通讯成功。

②控制变频器运行: CmdDat 里的命令数据依次为 05 00 00 FF 00, CmdSize 设为 5
个字节,导通指令后,变频器运行灯亮,同时在 RespDat 看到反馈, 代表通讯成功。

4.注意事项
指令报错代码如下:

1. 0400, 0407: 变量范围超出,比如字节数没写或者过大就会报 0400 或 0407
2. 0C0B:从站无法识别,检查接线设置, devicetype 端口指定
3. 0C0C:一般为从站不支持功能码或者报文格式不正确
4. 其他报错优先检查接线设置即可

欧姆龙NJ控制器通过Modbus RTU与变频器通信

相关文章:

你感兴趣的文章:

标签云: