1.硬件接线:2.FINS协议介绍3.程序4.案例程序
制作日期:2020/02/25硬件配置:CJ2M-CPU31 , CJ2M-CPU31 软件配置:CX-Programmer实现功能:通过网口用Cmnd通信,实现CJ间的数据读写 (也可以用于CP系列网口通信)
1.硬件接线:

主站
从站
IP:192.168.250.2
IP:192.168.250.3
节点号:2
节点号:3
注意:必须把PLC节点号设为和IP地址最一位一样,否则会连接不上;
2.FINS协议介绍 FINS通信中则是运用网络号、节点号以及单元号来对不同设备(包括PLC、PC等现场设备)执行地址定义的,FINS有FINS/TCPFINS/UDP两种方式。
Fins格式如下:
从ICF到SID属于Fins的报头CMND功能块会自动删除,不需要用户填写,用户只需要确认后面的格式
命令帧格式:
1) Command Code:功能码,用于读写内存数据,两个字节2) Memory area code:内存区域码,用于指定D区,CIO等内存,一个字节3) 开始读写的首地址,三个字节4) 读写通道的数量,两个字节5) 用写入功能码时,需要的数据,字节数根据通道数量乘2
响应帧格式:
1) Command Code:功能码,用于读写内存数据,两个字节2) End Code: 结束码,表示通信是否异常3) 读取数据,如果用的是写入功能码;则不会有这几个数据,字节数根据读取的通道数乘2 常用的功能码:0101 读,0102 写内存区代码:82 D区,30 CIO区 功能码和内存区代码,详细请看Fins通信说明END CODE 为00时通信正确,详细错误代码请看Fins通信说明
3.程序 用到的功能块 本案例指令 保存地址开头是D100通道,响应保持地址开头D200 D300 为功能块控制数据 详细请看CP/CJ指令手册 如:读取节点号3 D0一个通道 命令指令 01 01 82 00 00 00 00 01 触发后可以看到D200 收到数据 响应**指令** 01 01 00 00 00 17
将以上数据从D100开始填入 根据CP/CJ指令手册D300 填入发送字节数,D301接收字节数
D302 #0000 第一个0固定,第二位不实用串行端口,目标地址填 00,D303 #0300 目标单元地址就是指从站的节点号,后面一个字填00
触发前从D200往后3个通道都是0
第三个通道的未读取数据和节点3 PLC的D0数据一致 D201为00 00 证明读取正常 如:写入节点号3 D0一个通道 命令指令 01 02 82 00 00 00 00 01 02 20主站响应区收到 响应指令 01 02 00 00
触发通信前从站D0为0 触发通信后,从站D0 变为#0220
4.案例程序 Cmnd网口.zip