网口---Fins (Cmnd 指令)

2026-01-26 00:42:22
Avatar for adminadmin

1.硬件接线:2.FINS协议介绍3.程序4.案例程序

制作日期:2020/02/25硬件配置:CJ2M-CPU31 , CJ2M-CPU31 软件配置:CX-Programmer实现功能:通过网口用Cmnd通信,实现CJ间的数据读写 (也可以用于CP系列网口通信)

1.硬件接线:
![image.png](https://cdn.nlark.com/yuque/0/2020/png/974473/1582680571459-5ca3bc17-1741-483c-b254-5f6d88ca9f52.png#align=left&display=inline&height=581&margin=%5Bobject%20Object%5D&name=image.png&originHeight=581&originWidth=975&size=120619&status=done&style=none&width=975)

主站

从站

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

Copyright © 2088 龙战世纪玩家中心_MMORPG活动_跨服竞技 All Rights Reserved.
友情链接