说明: 224XP port0做主站口,仪表做从站,在没有连接PLC前用485数据线,modscan32读仪表正常,仪表从站设置的数据如下:从站(仪表)波特率:9600;数据8位;偶校验;1个停止位;
slave =1; function=03;address=5;length=2 仪表数值变化时,读出保持寄存器数据正常,如:40005:<00ECH> ;40006<7E2DH>
1.按照从站的设置,在PLC的主站程序如此下(
modbus库存储首地址VB484):
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL MBUS_CTRL:SBR1, L63.7, 9600, 2, 1500, M0.0, MB1
LD I0.0
= L60.0
LD I0.0
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 1, 0, 40005, 2, &VB492, M2.2, MB4
把仪表接到port0;在线mico/win显示&VB492的数值不正确;
2.把仪表取下用485线接到port0口,读PLC发出的从站请求,数值为:01 03 00 04 00 02 85 CA (85 CA是校验码)也是正确,本人觉得是仪表的保持寄存器40005,40006跟224PLC的V存储器对应不对,我设置的&VB492是这样算的: 484+2X(5-1)=492 (从站保持寄存器首地址:40005),难道这样算是错的?请大侠们支招,谢谢