发表于:2002/3/19 14:02:00
#0楼
大家好!我现在用VB无法与PLC通讯,非常急,不知是否指令的格式错,还是其它原因?源代码如下:我利用MOXA的API232.DLL作串口通讯,还有我没有搞懂采用什么算法,计算传输的内容如:senddata = "02313130463630343334313243444142033439"
请各位多多帮忙!谢谢了!
Private Sub Form_Load()
Dim i As Integer
If sio_open(1) <> SIO_OK Then
Exit Sub
End If
'确定波特率
If sio_ioctl(1, B9600, P_EVEN + BIT_7 + STOP_1) <> SIO_OK Then
GoTo err
End If
'清空缓冲区
aa = sio_flush(1, 2)
i = sio_flush(1, 2)
End Sub
Private Sub Command3_Click()
aa = sio_flush(1, 2)
senddata = "02313130463630343334313243444142033439"
'把命令发送
aa = sio_write(1, senddata, Len(senddata))
'查看缓冲区
aa = sio_iqueue(1)
'从缓冲区里取值,并把缓冲区清空
ll = sio_read(1, ReturnStr, aa)
If ll <> 1 Then
GoTo err
End If
If Asc(Mid(ReturnStr, 1, 1)) <> 6 Then
GoTo err
End If
err:
sio_close (1)
End Sub
请各位多多帮忙!谢谢了!
Private Sub Form_Load()
Dim i As Integer
If sio_open(1) <> SIO_OK Then
Exit Sub
End If
'确定波特率
If sio_ioctl(1, B9600, P_EVEN + BIT_7 + STOP_1) <> SIO_OK Then
GoTo err
End If
'清空缓冲区
aa = sio_flush(1, 2)
i = sio_flush(1, 2)
End Sub
Private Sub Command3_Click()
aa = sio_flush(1, 2)
senddata = "02313130463630343334313243444142033439"
'把命令发送
aa = sio_write(1, senddata, Len(senddata))
'查看缓冲区
aa = sio_iqueue(1)
'从缓冲区里取值,并把缓冲区清空
ll = sio_read(1, ReturnStr, aa)
If ll <> 1 Then
GoTo err
End If
If Asc(Mid(ReturnStr, 1, 1)) <> 6 Then
GoTo err
End If
err:
sio_close (1)
End Sub