发布于 2007-12-19 23:07:42
0楼
你用17H功能码同时读写控制字和状态字的数据集啊,不可能读不到的。
例如 对ABB的ACS550变频
读取1号站的从0004开始的3个寄存器,各寄存器内容分别为该站的状态字、输出频率和电流;同时写1号站从0000开始的三个寄存器,各寄存器的内容分别为控制字、给定一和给定二;
给定25Hz启动,并读取状态字、输出频率和输出电流
01 17 00 03 00 03 00 00 00 03 06 04 7F 27 10 00 00 50 33
-- -- ----- ----- ----- ----- --- ----- ----- ----- -----
1 2 3 4 5 6 7 8 9 10 11
其中:
1:从站地址;
2:功能码17H;
3:读开始地址(注意该积存器若为0003,实际上是读取的是从0004开始的地址)
4:读寄存器的长度;
5:写寄存器开始地址
6:写寄存器字长度
7:写寄存器字节长度
8:写寄存器内容1(控制字),0476 停止;047F启动
9:给定一。2710H=25Hz
10:给定二
11:CRC
返回数据报文:
01 17 06 13 37 00 FA 00 00 F6 DC
-- --- --- ----- ----- ----- -------
1 2 3 4 5 6 7
1:从站地址;
2:功能码;
3:返回数据长度
4:返回状态字
5:反馈频率00FA=250;即25.0Hz
6:反馈电流00A
7:CRC