系列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. 其他报错优先检查接线设置即可