详细介绍
横河SR1B-045N-1KC
横河SR1B-045N-1KC
命令报文中10F6H为D123的地址,04H表示要读入4个字节的数据。校验和SUM=30H+31H+30H+46H+36H+30H+34H+03 H=174H,溢出部分不计,故SUMH=7,SUAIL=4,相应的ASCⅡ码为“37H”,“34H”。应答报文中4个字节的十六进制数,其相应的ASCⅡ码为8个字节,故应答报文长度为12个字节。
根据PC与FX系列PLC的传输应答过程,利用VB的MSComm控件可以编写如下通信程序实现PC与FX系列PLC之间的串行通信,以完成数据的读取。MSComm控件可以采用轮询或事件驱动的方法从端口获取数据。在这个例子中使用了轮询方法。
1)通信口初始化
Private Sub Initialize()
MSComm1.CommPort =1
MSComm1.Settings = “9600,E,7,1”
MSComm1.InBufferSize = 1024
MSComml.OutBuffersize = 1024
MSComm1.InputLen = 0
MSComml.InputMode = comInputText
MSComm1.Handshaking = comNone
MSComm1.PortOpen = True
End Sub
2)请求通信与确认
Private Function MakeHandshaking()As Boolean
Dim InPackage As String
MSComml.OutBufferCount = 0
MSComml.InBufferCount = 0
MSComml.OutPut = Chr(&H5)
Do
DoEvents
Loop Until MSComml.InBufferCount = 1
InPackage = MSComml.Input
If InPackage = Chr(&H6) Then
MakeHandShaking = True
Else
MakeHandshaking = False
End If
End Function
3)发送命令报文
Private Sub SendFrame ()
Dim Outstring As String
MSComml.OutBufferCount = 0
MSComml.InBufferCount = 0
Outstrin = Chr(&H2)+″on″+″10F604″+Chr(&H3)+″74″
MSComml.Output = Outstring
End Sub
4)读取应答报文
Private Sub ReceiveFrame()
Dim Instring As String
Do
DoEvents
Loop Until MSComml.InBufferCount = 12
InString = MSComml.Inpult
End Sub
IC3600SVSA1 HP SPEED SENSORS
IC3600SVSC1 SPEED RELAY BD IC3600SVSC
IC3600SVSD1 SPEED-SENSOR
IC3600SVSE1 SPEED SENSOR IC3600SVSE
IC3600SVSF1 SPEED-SENSOR
IC3600SVSG1 SPEEDTRONIC
IC3600SVZA1 12-28V REG BD IC3600SVZA
IC3600SVZB1 50V REG BOARD IC3600SVZB
IC3600SVZC1 5.3V REG BOARD
IC3600SVZD1 50V REGULATOR
IC3600SWIE1 SPEEDTRONIC
IC3600TAIA1 ANALOG-INTERFACE
IC3600TBAA1 BUFFER-AMPLIFIER
IC3600TCBA1 COMP BD/SFE BD
IC3600TCFB1 GE SPEEDTRONIC
IC3600TCSA1 CURRENT-SENSOR
IC3600TCSB1 CARD CURRENT SENSOR
IC3600TCUC1