你的位置: 首页 > 工业控制 > 欧姆龙plc

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

2019-10-24 20:35:20 | 人围观 | 评论:

硬件设备: NJ301-1100( plc), 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. 其他报错优先检查接线设置即可





标签:[db:tags]