Tipo de artículo: FAQ, ID de artículo 9123496, Fecha del artículo: 06/11/2001
(0)
Evaluar

Representación con el  ProTool/Pro de variables S5TIME de un PLC SIMATIC

  • Artículo
  • Relacionado con producto(s)

PREGUNTA:
¿Cómo se pueden mostrar con el ProTool/Pro variables de tipo "S5TIME" de un PLC SIMATIC, separado en horas, minutos, segundos y milisegundos?

RESPUESTA:
La hora del PLC está disponible en el control como una variable de tipo "S5TIME" (ejemplo: S5T#1H_34M_30S_0MS).
El valor de las variables se lee desde el control y se elabora en el Protool/Pro. La señalización de este valor de tiempo se hace a continuación en horas, minutos, segundos y milisegundos.

En el proyecto adjunto se dispone de 4 Scripts, los cuales leen una variable de tipo "WORD" a través de un parámetro de entrada y en la cual se tiene el valor "S5TIME". El valor de retorno de las funciones es una variable, en la que se indica el valor de tiempo en horas, minutos, segundos y milisegundos.

La utilización de estos Scripts se debe hace de la siguiente manera:

  1. Se definen 4 variables (por ejemplo, "HH", "MM", "SS" y "MS").
  2. Se asocian estas variables a 4 campos de salida para señalizar el valor de tiempo en horas, minutos, segundos o milisegundos.
  3. Ahora se define una variable de tipo "WORD" (por ejemplo, "S5T"). Aquí se escribe el valor de tiempo "S5TIME" del PLC.
  4. Por último, en las propiedades de las variables "S5T" se define una función que realiza el cambio de valor. Desde ésta se llaman a las 4 funciones que convierten cada valor de tiempo en horas, minutos, segundos o milisegundos.

Funcionamiento del Script:

Primero se comprueba la base de tiempo utilizada en las variables "S5Time" (ver FAQ con número ID 56243). Según esto se ajusta un multiplicador. Finalmente, el Script averigua el valor en formato decimal codificado en binario (BCD). Este valor se multiplica por el multiplicador anteriormente calculado. El resultado es el tiempo en milisegundos. Este valor de tiempo es la base para los cálculos posteriores.

A partir de este valor de tiempo en milisegundos se calcula la hora, minutos segundos y milisegundos.

Texto fuente del Script para milisegundos:

Dim Base de tiempo, Tiempo total, Buffer, Hora, Minutos, Segundos

If S5TimeIn < 4096 Then
Base de tiempo =10
Else If S5TimeIn < 8192 Then
Base de tiempo =100
Else If S5TimeIn < 12288 Then
Base de tiempo = 1000
Else
Base de tiempo = 10000
End If 

Buffer = S5TimeIn AND 4095
Tiempo total = Fix(buffer/256)*100
Buffer = Buffer AND 255
Tiempo total = Tiempo total + Fix(Buffer/16)*10
Buffer = Buffer AND 15
Tiempo total = Tiempo total + Buffer 

Tiempo total = Tiempo total * Base de tiempo

Hora = Fix(Tiempo total / 3600000)
Tiempo total = Tiempo total - Horas * 3600000
Minutos = Fix(Tiempo total / 60000)
Tiempo total = Tiempo total - Minutos * 60000
Segundos = Fix(Tiempo total / 1000)
Tiempo total = Tiempo total - Segundos * 1000
S5Time_ms = Tiempo total

Los 4 Scripts como Download:
El Download contiene los 4 Scripts arriba descritos. Hay que copiar el fichero " pro___0l.exe" e un directorio aparte de arrancarlo haciendo doble click sobre él.

  pro___0l.exe ( 39 KB )  

Importante:
El programa ejemplo se trata de una propuesta respecto a tareas complejas consultadas al Customer Support. Además advertimos que según el estado actual de la técnica, no es posible descartar fallos en los programas software, bajo todas las condiciones de servicio. Los programas ejemplo han sido creados según el mejor conocimiento. No se ofrece la garantía por encima de la normalmente habitual para los productos software de clase C, según se indica en las “Condiciones generales para la utilización de productos software para automatización y accionamientos”

Conceptos de búsqueda:
Programación orientada a objetos, cálculo de tiempo, representación de valores de tiempo

Informaciones del error
Descripción detallada del fallo
Ayúdenos a mejorar la Asistencia en línea.
La página solicitada no puede ser visualizada. Póngase en contacto con el webmaster
Contacto con el webmaster