用 VB 写的跟 PLC 以太网通信的程序,采用 winsock 控件,modbus 协议,施耐德
PLC(型号 BMX P342020)。预置单寄存器一切正常,写多个寄存器各种不行,仔细
查看多遍也没找到原因,高手拯救我一下吧。。。万分感激啊。
为什么写单寄存器很正常 写多个寄存器不行呢??????????????????
下面是 VB 程序:
Private Sub Command1_Click()''''这部分是写 2 个 16 位寄存器,运行不正常
Dim str(16) As Byte
str(0) = &H0 ''''交换识别号高字节,通常为 0
str(1) = &H0 ''''交换识别号低字节,通常为 0
str(2) = &H0 ''''协议识别号高字节,为 0
str(3) = &H0 ''''协议识别号低字节,为 0
str(4) = &H0 ''''字节长度高字节
str(5) = &H6 ''''字节长度低字节
str(6) = &HFF ''''单元识别号,确省为 255
str(7) = &H10 ''''MODBUS 功能码,16 为预置多寄存器
str(8) = &H0 ''''寄存器的起始地址高字节
str(9) = &H2A ''''寄存器的起始地址低字节
str(10) = &H0 ''''该行跟下一行表示预置 2 个寄存器
str(11) = &H2
str(12) = &H4''''该行表示一共 4 个字节的数据
str(13) = &H0 ''''以下 4 个字节为写给寄存器的数据
str(14) = &HE
str(15) = &H1
str(16) = &HF
Winsock1.SendData str()
End Sub
Private Sub Command4_Click()''''这部分是写单个 16 位寄存器,运行很正常
Dim str2(11) As Byte
str2(0) = &H0 ''''交换识别号高字节,通常为 0
str2(1) = &H0 ''''交换识别号低字节,通常为 0
str2(2) = &H0 ''''协议识别号高字节,为 0
str2(3) = &H0 ''''协议识别号低字节,为 0
str2(4) = &H0 ''''字节长度高字节
str2(5) = &H6 ''''字节长度低字节
str2(6) = &HFF ''''单元识别号,确省为 255
str2(7) = &H6 ''''MODBUS 功能码,6 为预置单寄存器
str2(8) = &H0 ''寄存器的起始地址高字节
评论4
最新资源