
00001 00003 00004 2103
从站 + 功能吗 + 字节数 + 地址 + 数据
写数据是在D1300____D1349开始的通道;
读数据是在D1350____D1399开始的通道。
D1300 从站地址 完整命令为0106000113388+CRC16
D1301 功能代码06H D1300 00001
D1302 通讯数据字节数 D1301 00006
D1303 写入寄存器编号 D1302 00004
D1304 数据 D1303 00001
D1304 1388
D1302是从D1303__D1349后面所写的通讯数据的字节数,所以写的时候可以先空出,把通讯数据都写好后再写地址,这个地址是我们PLC为了计算校验多出的地址,所以写Modbos数据的格式来顺序编写就可以,但校验可以不用写。
CP1W_____CIF11设置
2、3、5、6打ON PLC设置就设置串口网关,波特率、数据格式与变频器一致即可。
CQM1H与PC的编程下载线接线图
PLC PC
2----------------------------2
3----------------------------3
4----------------------------8
5----------------------------7
9----------------------------5
4---6短接
有两个比较简单的问题 请各位高人指点下~ 我用的是CP1E的PLC和3G3JZ之间用485通讯 第一个问题是PLC向变频器的10个不连续的地址写东西 那么我需要按MODBUS通讯格式写10组#1 #10......么? 第二个问题是如果从变频器读10组值而变频器的寄存器地址又不连续那么我还得按MODBUS通讯格式写10组#1 #3......么?而且我怎么确定变频器中的地址和我PLC映射区的地址之间的关系?
首先如果变频器地址不连续,无论是读还是写都会出错的 建议你用#10指令一个一个写,读也是一个一个的读 串口1写入频率:D1200=变频器站号 D1201=#10 命令 D1202=&07 从D32203开始的字节数 D1203=#2102 频率地址 D1204=&1 写入个数 D1205高8位=#02 辅助字节数=D32204*2 D1205低8位=写入频率值的高8位 D1206的高8位=写入频率值的低8位 响应码在D1250开始 详细介绍可以参考CP1E Soft手册会比较清楚
①接线:
PLC 变频器
RDA- ───── R+
RDB+ ───── R-
其中变频器的R+和S+短接,R-和S-短接。
②变频器设定:
SW2终端电阻拨到ON。
n003=2 :运行指令由RS485控制;
n004=6 :频率由RS485控制;
n151=4 :无超时检测;
n152=0 :频率单位0.1Hz;
n153=1 :节点号;
n154=2 :9600bps;
n155=0 :8,E,N;
n156=10:发送等待时间10ms;
n157=0 : RTS控制使能。
③CP1H设定:
⑴串口设置:
串口1设置为Serial-Gateway(串口网关)功能,通信格式为 9600,8,E,N。
设置完成后PLC断电上电,并把CPU上的4号开关拨到OFF。
⑵CP1W-CIF11设置:
CP1W-CIF11背面开关设定:
1=ON 终端电阻。
2、3=ON RS485方式。
4=OFF 固定。
5=ON 接收有RS控制。
6=ON 发送有RS控制。
拨码定义如下:
| 引脚号 | ||||
| 1 | ON | 有 | 终端电阻有无的选择 | |
| OFF | 无 | |||
| 2 | ON | 2 线制( RS485) | 2线制和4线制的选择 注:2号和3号需设置的一样 | |
| OFF | 4 线制( RS422) | |||
| 3 | ON | 2 线制( RS485) | ||
| OFF | 4 线制( RS422) | |||
| 4 | - | - | 空置 | |
| 5 | ON | RD:RS 控制 | 在需要禁止回送的情况下,设定为on | |
| OFF | RD:无 RS 控制 (平时接收) | |||
| 6 | ON | SD:RS 控制 | 用4线式布线进行1:N连接时,将6号设定为on 在2线式布线进行连接时,将6号设定为on | |
| OFF | SD:无Rs 控制 (平时发送) | |||
发送命令如下:
D32200:0001 变频器节点号1;
D32201:0003 读命令;
D32202:0004 发送4个字节;
D32203:0002 读命令开始编号;
D32204:0001 读1个通道。
接收数据如下:
D32250:0001 变频器节点号1;
D32251:0003 读命令;
D32252:0000 出错代码(0000表示正常响应);
D32253:0002 响应2个字节;
D32254: 变频器的当前频率值;
把A1.00(串口1发送使能位)设置为ON后,PLC把D32200开始的数据发送给变频器,D32250开始接收到变频器的反馈数据。
DM0000-DM0009:0001,0003,0004,0020,0003,读取变频器1号0020寄存器开始3各字
DM0010-DM0019:0001,0010,0009,0001,0002,0400,0102,5000,向1号变频器写入频率并启动
请问第一行:0001是从机地址
0003表示读变频器数据
0004表示读变频器频率为4个字节
0020表示什么意思
0003表示什么意思
第二行:0001是从机地址
0010是写入变频器数据
0009是写入字节数为9个字节
0001是什么意思
0002表示什么意思
0400表示什么意思
0102表示什么意思
5000是否是50Hz
第一行 0020 表示读开始的积存器编号 0003表示读3个通道
第2行 0001是写积存器开始的编号 0002表示从0001到0002 2个积存器 04表示后面4个字节 0001表示写入变频器0001积存器的数据是#0001 0250表示写入变频器0002积存器的数据是#0250 转化为10进制是592 按你说的应该是频率,频率单位是0.1的话,现在频率是59.2赫兹
第一行 0020 表示读开始的积存器编号 0003表示读3个通道
第2行 0001是写积存器开始的编号 0002表示从0001到0002 2个积存器 04表示后面4个字节 0001表示写入变频器0001积存器的数据是#0001 0250表示写入变频器0002积存器的数据是#0250 转化为10进制是592 按你说的应该是频率,频率单位是0.1的话,现在频率是59.2赫兹
照你所说那把频率发送过去后那启动信号在哪设置呢
通讯执行信号是串口1是a1.00 串口2是a0.00只要给它一个上升沿触发就可以同时把你要传的数据传过去
