以下子程序通过检查专线Modem的状态判断通信线路是否正常: Public Function CheckConnect(Index As Integer) As Boolean Dim intPos As Integer intPos = InStr(1, frmGetData.lblAcmd(Index).Caption, NO CARRIER) If intPos > 0 Then frmGetData.TimerSend(Index).Enabled = False mGetData.blnConnect(Index) = False frmGetData.lblAcmd(Index) = frmGetData.lblGcmd(Index).ForeColor = vbRed frmGetData.MSCommDCS(Index).OutBufferCount = 0 frmGetData.MSCommDCS(Index).InBufferCount = 0 Call mGetData.LogEvents(Index, NO CARRIER) CheckConnect = False Exit Function End If intPos = InStr(1, frmGetData.lblAcmd(Index).Caption, CONNECT) If intPos > 0 Then frmGetData.lblAcmd(Index) = frmGetData.MSCommDCS(Index).InBufferCount = 0 frmGetData.MSCommDCS(Index).OutBufferCount = 0 frmGetData.lblGcmd(Index).ForeColor = vbBlack Call mGetData.LogEvents(Index, CONNECT) mGetData.blnConnect(Index) = True If frmGetData.mnuBegin.Checked = True Then frmGetData.TimerSend(Index).Enabled = True End If Exit Function End If FlagLineBusy(Index) = False CheckConnect = True End Function
以下子程序实现通信事件日志记录到数据库系统: Public Sub LogEvents(Index As Integer, strEvents As String) With frmCommEvents.datPrimaryRS.Recordset .AddNew .Fields(rs232com) = Index .Fields(DateTime) = Date & & Time .Fields(EventsLog) = strEvents .Update End With End Sub 五、结束语 目前,我厂生产调度实时监测系统投入使用1年多以来,MOXA公司的C320 Turbo多串口卡以其高性能(双CPU)、易于使用、高可靠性等特点充分保证了生产数据准确可靠,系统运行安全稳定,数据更新快速,大大方便生产指挥人员及时、准确掌握生产实际情况,为生产指挥人员正确、有效、科学地指挥生产提供了强有力的保证,确保了工厂生产的安全运行。