发表于:2007/1/22 14:58:00
#0楼
小弟在网上寻找了很长时间有关三菱FX系列PLC与PC通过编程口通讯时软设备地址的问题,也找到了一些资料,但由于设备未到不能进行验证。现公布本人已掌握的材料,请有条件的高手予以验证。
关于FX软设备地址问题(设备软地址在读写和置位操作时是不相同的),我手中现有两份资料,但二者有部分内容不一致,不知哪个正确。现分别叙述于下:
资料一:
读写时的软设备地址(按字节8位)
S0-S999:0000H-007CH
X0-X177:0080H-008FH
Y0-Y177:00A0H-00AFH
T0-T255:00C0H-00DFH
M0-M1023:0100H-017FH
C0-C7:01C0H-01DFH
D0-D7:1000H (满足公式 Address = Index*8+1000H)
置位时的软设备地址(按字节8位)
S0-S7:0008H
……
以此类推
X0-X7:0408H
……
以此类推
Y0-Y7:0508H
……
以此类推
T0-T7:0708H
……
以此类推
M0-M7:0808H
……
以此类推
C0-C7:0D08H
……
以此类推
D0-D7:0100H (满足公式 Address = Index/8+0100H)
资料二:
读写时软设备地址与资料一相同
置位时软设备地址(按字节8位)
S0-S999:0000H-03E7
X0-X177:0400H-047F
Y0-Y177:0500H-057FH
T0-T255:0600H-06FFH
M0-M1023:0800H-0BFFH
M8000-M8255:0F00H-0FFFH
C0-C255:0E00H-0EFFH
(D 未说明)
注意:每一地址字节长8位,相当于8个软设备,如读写时0000H实际是S0-S7,0001H是S9-S15,007CH是S992-S999;此外,X、Y是8进制计数的,即X0-X7,X10-X17,Y20-Y27各占一个字节的地址。
资料二还提到,在发送数据格式中,写软设备地址时要注意,如果是读写操作,软设备地址按高位到低位写成ASCLL码即可,但置位操作时地址则应该先写低两位再写高两位。
例如:写地址0115H,如果是读写操作,写30H(0),31H(1),31H(1),35H(5),如果是置位操作,应该写31H(1),35H(5),30H(0),31H(1)。
此外,写数据和读数据时,也应该按照先低两位再高两位来处理,例如1234这个数据,转换成十六进制为04D2H,读写时应该是44H(D),32H(2),30H(0),34H(4)。
至于详细的编程口通讯协议,论坛上已经介绍得很清楚了,大家找一下即可,在此不再赘述。希望这些内容对各位有帮助,另外也需要大家动手去验证一下,有结果可以告诉小弟。
关于FX软设备地址问题(设备软地址在读写和置位操作时是不相同的),我手中现有两份资料,但二者有部分内容不一致,不知哪个正确。现分别叙述于下:
资料一:
读写时的软设备地址(按字节8位)
S0-S999:0000H-007CH
X0-X177:0080H-008FH
Y0-Y177:00A0H-00AFH
T0-T255:00C0H-00DFH
M0-M1023:0100H-017FH
C0-C7:01C0H-01DFH
D0-D7:1000H (满足公式 Address = Index*8+1000H)
置位时的软设备地址(按字节8位)
S0-S7:0008H
……
以此类推
X0-X7:0408H
……
以此类推
Y0-Y7:0508H
……
以此类推
T0-T7:0708H
……
以此类推
M0-M7:0808H
……
以此类推
C0-C7:0D08H
……
以此类推
D0-D7:0100H (满足公式 Address = Index/8+0100H)
资料二:
读写时软设备地址与资料一相同
置位时软设备地址(按字节8位)
S0-S999:0000H-03E7
X0-X177:0400H-047F
Y0-Y177:0500H-057FH
T0-T255:0600H-06FFH
M0-M1023:0800H-0BFFH
M8000-M8255:0F00H-0FFFH
C0-C255:0E00H-0EFFH
(D 未说明)
注意:每一地址字节长8位,相当于8个软设备,如读写时0000H实际是S0-S7,0001H是S9-S15,007CH是S992-S999;此外,X、Y是8进制计数的,即X0-X7,X10-X17,Y20-Y27各占一个字节的地址。
资料二还提到,在发送数据格式中,写软设备地址时要注意,如果是读写操作,软设备地址按高位到低位写成ASCLL码即可,但置位操作时地址则应该先写低两位再写高两位。
例如:写地址0115H,如果是读写操作,写30H(0),31H(1),31H(1),35H(5),如果是置位操作,应该写31H(1),35H(5),30H(0),31H(1)。
此外,写数据和读数据时,也应该按照先低两位再高两位来处理,例如1234这个数据,转换成十六进制为04D2H,读写时应该是44H(D),32H(2),30H(0),34H(4)。
至于详细的编程口通讯协议,论坛上已经介绍得很清楚了,大家找一下即可,在此不再赘述。希望这些内容对各位有帮助,另外也需要大家动手去验证一下,有结果可以告诉小弟。
[此贴子已经被作者于2007-1-23 8:51:49编辑过]