Control de Errores: Status y BCC:
Status:
Para garantizar la integridad de los datos leídos o grabados podrá consultar el valor de la propiedad «Status» que determinará si se ha producido algún error en la última operación que el componente realizó con el PLC. En el siguiente ejemplo se muestra cómo puede utilizarse esta propiedad para el manejo de errores. El valor de Status 0 Indicará que no hubo errores.
StatusText:
La Propiedad «StatusText» guarda una cadena de tipo String con la descripción del último valor de Status que sea distinto de cero. El usuario podrá borrar esta propiedad mediante el método ClearStatusText.
Algunos valores de la Propiedad Status:
Status StatusText
0- La operación se realizó sin inconvenientes.
8002- Número de puerto COM no válido.
Se ha intentado Abrir un puerto no disponible en su Hardware.
8005- El puerto ya está abierto.
Se ha intentado Abrir el puerto de comunicación, pero ya estaba abierto.
8012- El Dispositivo no está abierto.
Se ha intentado Cerrar el puerto de comunicación, pero no estaba abierto.
8018- La operación solo es válida cuando el puerto está abierto.
Se ha intentado ejecutar una transacción con el PLC pero no se ha Abierto (habilitado) el puerto de comunicación. Use el Método «OpenPort» para abrirlo.
8031– Número de estación Fuera de Rango: (1-32).
Se ha especificado una estación fuera de los valores permitidos.
8032– Error en los parámetros de la función.
No se han establecido correctamente los parámetros necesarios para procesar la función. Consulte la ayuda sobre la función específica que está procesando.
8851– No pueden Leerse mas de 24 direcciones de memorias por vez.
Se han indicado más de 24 direcciones de memorias entre los parámetros «StartAddress» y «EndAddress» para ser procesada.
8852– No pueden Grabarse mas de 24 direcciones de memorias por vez.
8999- Se ha completado el tiempo máximo establecido por TimeOut para realizar un proceso.
Este error se produce porque la función no ha podido completarse en el tiempo especificado en la Propiedad TimeOut del Control. Puede ocurrir esto entre otros casos por las siguientes razones:
– El valor de la propiedad TimeOut es demasiado bajo para completarse la operación, se recomiendan valores mayores a 350 milisegundos.
– Se ha interrumpido la comunicación con el PLC.
– El PLC está apagado o sin alimentación.
9001– Error al grabar en la dirección xxxxx del PLC.
No se ha podido completar la Escritura en el PLC.
9002- Validación errónea del BCC (Block Check Code).
Se ha producido un error al comparar los valores procesados con el resultado. Generalmente esto pudiera deberse a la existencia de ruidos en la transmisión y/o conexión de la PC con el PLC.
9005- Error al Leer Información general del PLC en la Estación xx
Se ha producido un error mientras se leía la información general del PLC mediante la instrucción PLCInfo.
9042- Para utilizar este componente debe Instalar la LLave del Softward (HardLock).
No se ha encontrado la llave de seguridad instalada en su Hardware. Está es necesaria para el funcionamiento del componente.
Ejemplo del uso de la propiedad Status:
Private Sub Command1_Click()
On Error GoTo HandleErrorDim strResult As String ‘
Dim Result() As String ‘Defino un Vector de ValoresstrResult = miPLC.ReadData(1, «D», 101, 103) ‘miPLC.re ‘& miPLC.Result(1) & miPLC.Result(2)
‘Verifico si el proceso termino correctamente
If miPLC.Status <> 0 Then
‘Si el Status es distinto de cero informo el StatusText
MsgBox miPLC.StatusText, vbApplicationModal, «ActiveNTocol»
Exit Sub
End If‘Redimensiono el Vector con la cantidad de direcciones procesadas
ReDim Result(miPLC.AddressCount) ‘‘Cargo el string del resultado en el vector mediante CstrToArray
Call miPLC.CstrToArray(strResult, Result)Text1.Text = Result(0)
Text2.Text = Result(1)
Text3.Text = Result(2)Exit Sub
HandleError:
MsgBox Err.Description, vbApplicationModal, «ActiveNTocol»
End Sub
BCC: (Block Check Code)
El componente ActiveNewTocol.Ocx crea un código a partir de la cadena que se enviará al PLC y luego lo compare con el código devuelto por el mismo para garantizar la integridad de la transacción realizada.
El Programador podrá indicar si desea usar esta propiedad Asignando a la Propiedad BccOn el valor True. Si se usa esta propiedad se realizará esta comprobación automáticamente sin que el programador agregue código alguno y si existiera un error de BCC se verá indicado en la Propiedad Status, si no se usa (BccOn = False) se omitirá esta verificación por la propiedad Status.