发表于:2001/10/17 17:45:00
#0楼
请教各位:通过编程口如何将三菱FX2n的文件寄存器D1000-D7999读出?
本人用SC-09将FX2N的编程口与PC机的串口相连,在一般情况下,向串口发送如下命令串即可读出指定的寄存器的值:
始 命令 首地址 位数 终 和校验
STX CMD GROUP ADDRESS BYTES ETX SUM
地址算法:address=address*2+1000h
例如:读取D0中的值,可向串口发送02+"0100002"+03+校验码,PLC即可返回D0的值.
但通过上面的方法好像只能读出D0-D1017,此方法读D1018-D7999返回的数据不是在MEDOC中设定的值,而且读D1280-D1407时出错.
例如: 通过向串口发送如下命令读取D1000的值:02+"017D002"+03+"71"可正确读出.通过向串口发送如下命令读取D1018的值:02+"017F402"+03+"77"可读出一个值,但与MEDOC中设定的值不一样.通过向串口发送如下命令读取D1288的值:02+"01A1002"+03+"68"则出错.
各位大虾:
难道是我的FX2N有问题?可我间隔一年在两个经销商买的两台PLC上结果都是一样的,本人在实验时必须将几千个数据保存然后一次读取,不知MEDOC是使用什么命令读出D1018-D7999的?
本人用SC-09将FX2N的编程口与PC机的串口相连,在一般情况下,向串口发送如下命令串即可读出指定的寄存器的值:
始 命令 首地址 位数 终 和校验
STX CMD GROUP ADDRESS BYTES ETX SUM
地址算法:address=address*2+1000h
例如:读取D0中的值,可向串口发送02+"0100002"+03+校验码,PLC即可返回D0的值.
但通过上面的方法好像只能读出D0-D1017,此方法读D1018-D7999返回的数据不是在MEDOC中设定的值,而且读D1280-D1407时出错.
例如: 通过向串口发送如下命令读取D1000的值:02+"017D002"+03+"71"可正确读出.通过向串口发送如下命令读取D1018的值:02+"017F402"+03+"77"可读出一个值,但与MEDOC中设定的值不一样.通过向串口发送如下命令读取D1288的值:02+"01A1002"+03+"68"则出错.
各位大虾:
难道是我的FX2N有问题?可我间隔一年在两个经销商买的两台PLC上结果都是一样的,本人在实验时必须将几千个数据保存然后一次读取,不知MEDOC是使用什么命令读出D1018-D7999的?