发表于:2007/1/14 13:53:00
#0楼
我用VB6.0做的简单的监控程序,使用OMRON HOSTLINK上位连接线系统。使用CPM1-CIF01适配器与一台CPM1A-20CDR PLC连接,通讯不上。我的PLC外设口设置为HOSTLINK,通讯设置为标准。后来写了个最简单的测试连接情况的小程序,还是通讯不上,请OMRON技术帮我看看,谢谢了!
我的RS232C使用的是9PIN,接线图如下:
PLC 电脑
2……………………2
3……………………3
4,5短接 4,6短接
7,8短接
9……………………5
VB6.0写的测试程序如下:
Private Sub cmds_Click()
Timer1.Enabled = True ’按下开始按钮,使定时器1使能
End Sub
Private Sub Command1_Click()
MSComm1.PortOpen = False ‘按下停止按钮,关闭串行口
End Sub
Private Sub Form_Load()
Label1.Caption = "" ’用于显示PLC返回帧数据
End Sub
Private Sub Timer1_Timer()
MSComm1.CommPort = 1 ‘HOSTLINK通讯参数设置
MSComm1.Settings = "9600,e,7,2"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True ’打开串行口
Data = "@00ts8899" ’待发送测试数据
a = 0 ‘求FCS
For i = 1 To Len(Data)
d = Mid(Data, i, 1)
a = Asc(d) Xor a
Next i
fcs = Hex(a)
If Len(fcs) = 1 Then ’如果FCS为1位则补足2位
fcs = "0" + fcs
End If
senddata = Data + fcs + "*" + Chr(13) ‘从串行口发送数据帧
MSComm1.Output = senddata
'读取应答帧
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 13
Do
tag1 = MSComm1.Input
Loop Until MSComm1.InBufferCount = 0
Label1.Caption = tag1 ’ 在屏幕上显示PLC返回的测试数据
End Sub
我的RS232C使用的是9PIN,接线图如下:
PLC 电脑
2……………………2
3……………………3
4,5短接 4,6短接
7,8短接
9……………………5
VB6.0写的测试程序如下:
Private Sub cmds_Click()
Timer1.Enabled = True ’按下开始按钮,使定时器1使能
End Sub
Private Sub Command1_Click()
MSComm1.PortOpen = False ‘按下停止按钮,关闭串行口
End Sub
Private Sub Form_Load()
Label1.Caption = "" ’用于显示PLC返回帧数据
End Sub
Private Sub Timer1_Timer()
MSComm1.CommPort = 1 ‘HOSTLINK通讯参数设置
MSComm1.Settings = "9600,e,7,2"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True ’打开串行口
Data = "@00ts8899" ’待发送测试数据
a = 0 ‘求FCS
For i = 1 To Len(Data)
d = Mid(Data, i, 1)
a = Asc(d) Xor a
Next i
fcs = Hex(a)
If Len(fcs) = 1 Then ’如果FCS为1位则补足2位
fcs = "0" + fcs
End If
senddata = Data + fcs + "*" + Chr(13) ‘从串行口发送数据帧
MSComm1.Output = senddata
'读取应答帧
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 13
Do
tag1 = MSComm1.Input
Loop Until MSComm1.InBufferCount = 0
Label1.Caption = tag1 ’ 在屏幕上显示PLC返回的测试数据
End Sub