发表于:2010/8/28 10:03:56
#0楼
mitsubishi fx 1n与VB进行通讯时(用mscomm控件,PLC编程口通讯)
做通讯测试时,代码下列:
Private Sub Command1_Click()
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Dim ff As String
MSComm1.Output = Chr(5)
Do
DoEvents
Loop Until MSComm1.InBufferCount = 1
ff = MSComm1.Input
Label1.Caption = Asc(ff)
End Sub
此时,Label1控件显示6,
若读取D8001的数值时(D8001编程口地址0E02),使用如下代码:
Private Sub Command2_Click()
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Dim dd As String
MSComm1.Output = Chr(2) + "0" + "0e0202" + Chr(3) + "6c"
Do
DoEvents
Loop Until MSComm1.InBufferCount = 8
dd = MSComm1.Input
Label1.Caption = Asc(dd)
End Sub
此时,Label1控件不能正确显示。将Chr(2) + "0" + "0e0202" + Chr(3) + "6c"用16进制在串口调试助手发送至PLC,串口调试会返回正常的16进制数值。
请问各位,如想在Label1控件显示读取D8001数值PLC返回数值应如何修改代码!谢谢!
做通讯测试时,代码下列:
Private Sub Command1_Click()
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Dim ff As String
MSComm1.Output = Chr(5)
Do
DoEvents
Loop Until MSComm1.InBufferCount = 1
ff = MSComm1.Input
Label1.Caption = Asc(ff)
End Sub
此时,Label1控件显示6,
若读取D8001的数值时(D8001编程口地址0E02),使用如下代码:
Private Sub Command2_Click()
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Dim dd As String
MSComm1.Output = Chr(2) + "0" + "0e0202" + Chr(3) + "6c"
Do
DoEvents
Loop Until MSComm1.InBufferCount = 8
dd = MSComm1.Input
Label1.Caption = Asc(dd)
End Sub
此时,Label1控件不能正确显示。将Chr(2) + "0" + "0e0202" + Chr(3) + "6c"用16进制在串口调试助手发送至PLC,串口调试会返回正常的16进制数值。
请问各位,如想在Label1控件显示读取D8001数值PLC返回数值应如何修改代码!谢谢!