硬件设备: 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 或 04072. 0C0B:从站无法识别,检查接线设置, devicetype 端口指定3. 0C0C:一般为从站不支持功能码或者报文格式不正确4. 其他报错优先检查接线设置即可

