发表于:2004/7/20 15:14:00
#0楼
本人在用VB编写上位机与FX2NPLC的通信问题时遇到一些问题,请指点。
1、 用SC-09线能实现PLC程序和读出和写入,但能否通过SC-09线来实现通信连接?据资料是可以,为此我编写了一段程序来测试但通信是不成功。
PLC的D8120设置为:MOV H6086 D8120(无协议、和校验、9600、偶校验、7位数据、1位停止位)
VB程序为:
Private Sub Form_Load()
Dim STX As String
Dim ETX As String
STX = Chr(2)
ETX = Chr(3)
MSComm1.CommPort = 1
MSComm1.Settings = "9600,E,7,1"
MSComm1.Handshaking = comRTS
MSComm1.RTSEnable = True
MSComm1.PortOpen = True
MSComm1.Output = STX + Chr$(5) + ETX ’向PLC发出查询信号
End Sub
Private Sub Command1_Click()
Dim buf$
buf = MSComm1.Input
If buf = Chr$(21) Then
MsgBox "软件握手不正常"
ElseIf buf = Chr$(6) Then
MsgBox "软件握手正常"
Else
MsgBox "!!!!!!"
End If
End Sub
Private Sub Command2_Click()
Dim STX As String
Dim ETX As String
STX = Chr(2)
ETX = Chr(3)
MSComm1.Output = STX + Chr(48) + Chr(48) + Chr(48) + Chr(65) + Chr(48) + Chr(48) + Chr$(50) + EXT + Chr(54) + Chr(54) ’向计算机发出读Y0~Y7的指令
End Sub
Private Sub Command3_Click()
Dim buf1$
buf1 = MSComm1.Input
Text1.Text = rdh$
End Sub
问题:(1)不论PLC内程序是否运行,在执行按下Command1时,均显示"软件握手正常",这难道真表示通信成功,若真成功,在按下Command2后,再执行Command3,却不能收到任何数据??
(2)
2、 若用FX485PC-IF和FXON485ADP来通信,通信协议应该如何确定(指D8120的高8位),难否也按一面的程序?
1、 用SC-09线能实现PLC程序和读出和写入,但能否通过SC-09线来实现通信连接?据资料是可以,为此我编写了一段程序来测试但通信是不成功。
PLC的D8120设置为:MOV H6086 D8120(无协议、和校验、9600、偶校验、7位数据、1位停止位)
VB程序为:
Private Sub Form_Load()
Dim STX As String
Dim ETX As String
STX = Chr(2)
ETX = Chr(3)
MSComm1.CommPort = 1
MSComm1.Settings = "9600,E,7,1"
MSComm1.Handshaking = comRTS
MSComm1.RTSEnable = True
MSComm1.PortOpen = True
MSComm1.Output = STX + Chr$(5) + ETX ’向PLC发出查询信号
End Sub
Private Sub Command1_Click()
Dim buf$
buf = MSComm1.Input
If buf = Chr$(21) Then
MsgBox "软件握手不正常"
ElseIf buf = Chr$(6) Then
MsgBox "软件握手正常"
Else
MsgBox "!!!!!!"
End If
End Sub
Private Sub Command2_Click()
Dim STX As String
Dim ETX As String
STX = Chr(2)
ETX = Chr(3)
MSComm1.Output = STX + Chr(48) + Chr(48) + Chr(48) + Chr(65) + Chr(48) + Chr(48) + Chr$(50) + EXT + Chr(54) + Chr(54) ’向计算机发出读Y0~Y7的指令
End Sub
Private Sub Command3_Click()
Dim buf1$
buf1 = MSComm1.Input
Text1.Text = rdh$
End Sub
问题:(1)不论PLC内程序是否运行,在执行按下Command1时,均显示"软件握手正常",这难道真表示通信成功,若真成功,在按下Command2后,再执行Command3,却不能收到任何数据??
(2)
2、 若用FX485PC-IF和FXON485ADP来通信,通信协议应该如何确定(指D8120的高8位),难否也按一面的程序?