欧姆龙CJ1W-SCU模块通过串口网关功能实现Modbus RTU通信

实验设备:CJ2M-CPU33CJ1W-SCU21-V1XW2Z-200S-CV、Modbus RTU从站助手

实验目的:SCU模块通过串口网关功能实现Modbus RTU主站功能

1.系统概述和硬件搭建

系统概述:

       本次实验通过SCU模块的串口网关功能,使用FINS Command #2804功能码将FINS命令转换为Modbus RTU命令通过CMND指令发送给从站,接受从站的响应。

       串口网关的实质就是通过FINS Command (2804Hex2803Hex2805Hex)FINS协议分别转换为Modbus RTUModbus ASCIICompoWay/F协议。在发送区域加上相应的功能码时,PLC串口在发送数据时会根据功能码自动的去掉FINS的头代码、功能码和校验码,将数据区Modbus RTUModbus ASCIICompoWay/F协议的命令发送出去,从而实现协议的转换,原理图参考注意事项。

硬件接线:

2.相关设置

I/O表和SCU模块设置,创建I/OSCU模块单元号为8,串口设置Serial Gateway,如图:

Modbus Slave从站助手设置如下:

3.程序编写

本次实验通过SCU主站往从站0001Hex地址写入#1234,使用功能码为06,程序如下:

4.实验现象

触发W1.00执行CMND指令,可以看到数据写到了从站0001Hex地址中,并且可以通过从站助手监视到串口数据的交互,如图:

PLC响应地址D400-D404接收到的数据,如图:

5.注意事项

(1)发送区数据:

① #2084表示FINS CommandFINS协议转换为Modbus RTU

不需要写校验码,只要写到校验之前就行了;

本次实验Modbus RTU命令为:01 06 0001 1234(校验不要写),向从站的0001hex地址写入#1234

④ Modbus RTU响应数据为:01 06 0001 1234(校验不接收)

2响应区数据:

CMND响应区实际接收到的数据为:2084 0000 01 06 0001 1234(校验不接收),在响应区域里会多四个字节,分别为FINS CommondError code各占两个字节;

#2084 FINS Command

#0000 FINS Error code#0000表示正常结束;此Error code也可以通过A203-A210查看(对应8个逻辑端口)。

3C控制字——端口指定

CMND指令发送区域的数据是从哪个端口发出的,由C+2C+3两个控制字决定,端口指定方式有两种:

C+208-11位为#00,不使用时:那么发送数据的端口由C+300-07位决定,方法如下:

SCU端口180 Hex + 04 Hex ×单元号,单元号为880 Hex + 04 Hex × 8 = #A0(本次实验使用的是端口1,即C+3 = #00A0

SCU端口281 Hex + 04 Hex ×单元号

C+208-11位不为#00时,那么发送数据的端口由C+208-11位和C+300-07位共同决定决定,方法如下:

C+300-07位为:10 Hex + 单元号

C+208-11位为1表示端口12表示端口2

使用的SCU单元号为8,端口1,即C+300-07位为#18C+208-11位为#1

(4)路由表说明:

如果SCU端口做了路由表的话C+2的00-07位设置为端口的网络号,如下:

注意:在做了路由表的情况下C+2的00-07位写#00也是可以发送数据的;

5FINS 功能码说明:

       只有SCU或者SCB串口网关才支持下面几种FINS功能码,CJ本体自带的串口或者外设口只支持将FINS转换为CompoWay/F(2803Hex功能码)。如果用CJ自带的口做Modbus RTUModbus ASCIIHostlink时,执行CMND指令是无法是发送数据的,串口的灯都不亮。在使用CJ本体做CompoWay/F时,CMNDC+300-07位设置为FDFC分别指定发送端口为外设口和RS-232

       串口网关的实质就是通过FINS Command (2804Hex2803Hex2805Hex)FINS协议分别转换为Modbus RTUModbus ASCIICompoWay/F协议。在发送区域加上相应的功能码时,PLC串口在发送数据时会自动的去掉FINS的头代码、功能码和校验码,将数据区Modbus RTUModbus ASCIICompoWay/F协议的命令发送出去,从而实现协议的转换。

Modbus RTU Slave从站助手百度云下载链接:

百度网盘 请输入提取码   提取码:zyk6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

M_qsqsqsq

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

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

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

打赏作者

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

抵扣说明:

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

余额充值