信捷plc使用modbus rtu和信捷变频器通讯
0.1:要求:plc和变频器都支持modbusRTU的
1:modbus和rs485的区别
modbus是一种串行通讯协议,而rs485是硬件接口,大多数的modbus都是通过串口485进行的,485又分全双工和半双工,区别是全双工是双绞线的分别是A和B,半双工是四线的分别是A+ A-和B+ B-
2:modbus通讯协议分几种
modbus通讯协议分三种,分别是modbus TCP,modbus RTU,modbus ASCII
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验 RTU和ASCII用得比较多的,它们在数值数据表示不同和协议细节上略有不同,其中用得最多的是RTU本文中也是使用modbus RTU3:modbus RTU
3.1 modbus RTU功能就是对单个或多个寄存器读或者写,在寄存器前面可加控制3.2数据帧10位,1个起始位,8个数据位,1个停止位,无校验,波特率:9600;19200
3.3格式
1 2 3 4 5 6 7 8
01H 06H 20H 00H 00H 01H CRC1 CRC2
第1字节 ADR : 从机地址码(=001~254)
第2字节 03H : 读寄存器值功能码
第3、4字节 : 要读的寄存器开始地址要读FCC下挂仪表,
第5、6字节 : 要读的寄存器数量
第7、8字节 : CRC校验可以用CRC校验计算器算从机接送到正确的会回复一个一样的………………………………………………………………………………………… 以上就是一些关于modbusRTU相关的概念
以下就是本文中的信捷plc和信捷变频器通讯plc是信捷的XC2 变频器是信捷V5 两者采用的是用485全双工
设定PLC与变频器的通讯参数,数据长度为8位,偶校验,1位停止位,波特率为19200bps。
变频器的频率给定通道P0.01:4; (串行口给定)
运行命令通道选择P0.03:2;( 串行口运行命令通道)
通讯配置P3.09:064;( 6:1-8-1格式,无校验. 4:19200BPS)
本机地址P3.10:001;本机地址1
程序如下
LDP X0 ADD D0 K1000 D0 频率加10
LDP X1 SUB D0 K1000 D0 频率减10
LDP X2 MOV K2 D100 正转
LDP X3 MOV K7 D100 停止
LDP X4 MOV K3 D100 反转
LD M8002 SET M0 置位M0
LD M0 OUT T0 K5 计时5毫秒
LDP T0 REGW K1 H2001 D0 K2 从 PLC 写数据到变频器
RST M0 复位M0
SET M1 置位M1
LD M1 OUT T1 K5 计时5毫秒
LDP T1 REGW K1 H2000 D100 K2 从PLC写数据到变频器
RST M1 复位M0
SET M2 置位M2
LD M2 OUT T2 K5 计时5毫秒
LDP T2 REGR K1 H2103 K6 D200 K2 从变频器读数据到PLC
RST M2 复位M2
SET M0 置位M0 循环发送
注意 :CRC校验码在plc中可以plc自己算出来的 问什么要计时5毫秒 因为modbusRTU是单个指令发送 一起发送的话 不算单个指令 只能接受到一个
关于regw和regr指令REGW是寄存器读指令,REGW S1 S2 S3 D1 D2 简单来讲就是:
S1从机地址
S2参数地址(可以参考变频器手册中的通讯协议参数定义)
S3寄存器个数
D1寄存器地址
D2串口编号(一般是K1~K3)
REGR也是差不多的,区别就是反过来了,从变频器读回来 存放到寄存器中