发表于:2003-10-15 14:32:00
楼主
MB1 Driver V7.x 在修改设备参数时遇到问题,新版的MB1如何用Modbus 16命令同时写入多个寄
存器?
我的配置如下:
运行环境: WinNT 4.0,
Fix6.15,
MB1 Drv V7.16b
通道配置Channel1:Modbus RTU,
Master Mode
设备配置Device1:
Output Mode: Group Write
数据块配置Datablock1:Start:40003,
End:40006,
Address:4,
Deadband:0
Disable Output: Not Checked
Latching Data: Not Checked
Enable Block Writing: Not Checked
FIX Database配置: 点名: TEST,
类型:AR,
IO地址:Device1:40003,
允许输出
硬件设备:Schneider智能仪表,其中地址40003 - 40006为设备的日期及时钟,可读写,但写
入时只支持Modbus 16命令,即必须用Modbus 16命令将日期及时钟同时写入到4个寄存器。
以上配置在MB1 Driver V6.x下一切正常,FIX:TEST.F_CV 可以正确读写,日期及时钟修改正
常。
问题:
在MB1 Drivier V7.16b中,问题如下:
FIX:TEST.F_CV 可以读数正常,但无法写入,即无法修改数据。用DataScope查看,发现在写
入40003数据时,MB1竟然使用的是06命令,01 06 00 02 00 01 xx xx xx xx,从设备返回的字
节看,是设备不支持06命令,只支持16命令,所以无法写入。
但在MB1 V6.x 下,所有设置不变,在Mission Control中查看,在修改FIX:TEST.F_CV时,
MB1使用的是16命令,即01 10 00 02 xx xx xx xx xx xx xx xx xx xx xx, 此时设备修改数
据成功。
为了让MB1 V7.x用16命令写数据,我又反复试验了几种情况:
1. 将MB1 的Datablock1 的Enable Block Writing 选中,结果:TEST数据点在写入时MB1
没有如何反应,既不发16命令,也不发06命令。
2. 将MB1 的Device1 的Output 模式修改为Force Group Writing, 结果:写入时确实是
用了16命令,但是每次只写入一个寄存器,而不是同时写入4个寄存器,此时设备也不支持,数据
修改失败。
3. 将MB1 的Device1 的Output 模式修改为Single Writing, 结果:写入时用的是06命
令,数据修改失败。
根据MB1的帮助文件,V7.x 也是支持16命令的,肯定是哪地方设置不对,各位有经验的请指点迷
津,多谢了。