关于Run-time error '8005' port already open 大家伙儿给点意见

关于Run-time error �' port already open 大家给点意见本人最近做了个VB的小程序,目的是将

关于Run-time error '8005' port already open 大家给点意见
本人最近做了个VB的小程序,目的是将计算机数据通过串口发送到LED显示屏幕上,每5秒发送一次。
当时买LED显示屏的时候厂家给我个.OCX的控件。这个控件我在VB注册后,然后通过调用控件中的一个
方法,就可以把字符串发送到LED显示屏上。
最近发现问题:由于程序是每5秒循环发送,当程序运行一天左右时间后,VB就会提示Run-time error '8005' 
port already open。
请各位高手帮我分析下原因,最好能告诉我如何解决,呵呵,谢谢大家 
[最优解释]
我的理解,在程序中,你只需要打开一次串口(在程序加载时),其他时候串口都处于打开状态,可以随时收发命令,当你要关闭程序时再关闭串口即可。
所以,在整个过程中可以不用判断,如果如此使用还出错,那么标明对方提供的控件可能存在问题。
[其他解释]
意欲打开已经打开的串口,肯定会报错的。
[其他解释]
谢谢高手回答,那么我是不是应该在每次发送前加个端口是否打开的判断?

[其他解释]
请附上你的代码,不然不好贸然作答。
[其他解释]
Private Sub SendToLed()

    Call SendToLedOCX1.SetComm(0, 1, "28800", "0")

    If (clear) Then
      Call SendToLedOCX1.ClearSrn(0, 0, 127, 95)
      clear = False
    Else
       Call SendToLedOCX1.PrintStr(Round(Values(1), 1) & "         ", 0, 0, 0, 1)
      Call SendToLedOCX1.PrintStr(Round(Values(2), 1) & "         ", 64, 0, 0, 1)
      Call SendToLedOCX1.PrintStr(Round(Values(3)) & "         ", 0, 32, 0, 1)
      Call SendToLedOCX1.PrintStr(Round(Values(4), 1) & "         ", 64, 32, 0, 1)
      Call SendToLedOCX1.PrintStr(Round(Values(5)) & "         ", 0, 64, 0, 1)
      Call SendToLedOCX1.PrintStr(Format(Now, "hh:mm") & "         ", 64, 64, 0, 1)
    End If
    Call SendToLedOCX1.SendCommand
    
End Sub
[其他解释]
这就是发送的代码,SendToLedOCX1就是提供的控件,SetComm;ClearSrn;PrintStr;SendCommand是控件提供的方法。
这是控件给我的说明:
10.发送命令
SendCommand
无参数
返回值:整型,0-调用成功,非0不成功

[其他解释]
十、控件事件
1.当调用SendCommand函数或SendScript函数时,将激发SendToLedSendStart事件
SendToLedSendStart()无参数
2.当处于发送过程中时,将激发控件的SendToLedSendProgress事件
SendToLedSendProgress(SendProgress, SendStage)
参数SendProgress:发送完成的百分比
参数SendStage:发送过程描述字符串
3.发送成功,将激发控件的SendToLedSendEnd事件
SendToLedSendEnd()无参数
4.当有错误产生时,将激发控件的SendToLedOnError事件
SendToLedOnError(ErrorNo, ErrorDescription)
参数ErrorNo:错误号
参数ErrorDescription:错误内容描述字符串
=================================================
还有这些,也是控件说明
[其他解释]
Call SendToLedOCX1.SetComm(0, 1, "28800", "0")
这个语句用一次就够了,不需要每次都用。
------其他解决方案--------------------


对  谢谢。
SendToLedOCX1.SendCommand语句前用不用加串口打开的判断呢?
[其他解释]
明白了  太谢谢这位高手啦。