PREGUNTA:
¿Cómo se pueden escribir en el ProTool/Pro variables de tipo
"S5TIME" para modificar el valor de un temporizador de un PLC
SIMATIC?
RESPUESTA:
El tipo de datos "S5TIME" está compuesto de una base de tiempo
y una valor de tiempo que va de 0 a 999 (ver FAQ con número ID
56243). En el Protool /Pro hay que indicar este valor en horas,
minutos, segundos y milisegundos. Esta entrada hay que convertirla
a continuación de tal forma que se pueda utilizar como "S5TIME"
para modificar el valor de un temporizador en el PLC.
En el proyecto adjunto se dispone de un Script, el cual lee las
horas, minutos, segundos y milisegundos como variables de entrada.
El valor de retorno de la función es una palabra de tipo
"S5TIME".
La utilización de estos Scripts se debe hace de la siguiente
manera:
- Se definen 4 variables (por ejemplo, "HH",
"MM", "SS" y "MS").
- Se asocian estas variables a 4 campos de
entrada, en las cuales se inserta el valor de tiempo en horas,
minutos, segundos o milisegundos.
- Ahora se define una variable de tipo "WORD"
(por ejemplo, "S5T"). Aquí se define el valor de tiempo "S5TIME"
para modificar el valor del temporizador del PLC.
- Por último, se define un botón que ejecuta el
Script. En los parámetros de la función se asignan las variables
definidas (el valor de retorno se escribe como "S5T").
El Script comprueba el valor introducido y adapta la base de
tiempo correspondientemente. El valor se limita al valor máximo
posible de 9990 segundos, es decir, 2 horas 46 minutos
30ssegundos.
Funcionamiento del Script:
El valor introducido se calcula primeramente en milisegundos. A
continuación se limita a 9990 segundos.
Después se comprueba la base de tiempo a utilizar. Esta base de
tiempo se escribe en el bit 12 y 13 de la palabra de resultado.
Ahora se calcula el valor de tiempo. Este valor se deposita en los
bits 0-11 de la palabra de resultado codificado en BCD.
Texto fuente del Script:
Dim Tiempo total, Resultado
Dim Posición 1, Posición 2, Posición 3
Tiempo total = Milisegundos + 1000 * Segundos + 60000 * Minutos
+ 3600000 * Horas
If Tiempo total > 9990000 Then Tiempo total = 9990000
If Tiempo total > 999000 Then
Resultado = 12288
Posición 1 = Fix(Tiempo total / 1000000)
Tiempo total = Tiempo total - Posición 1 * 1000000
Posición 2 = Fix(Tiempo total / 100000)
Tiempo total = Tiempo total - Posición 2 * 100000
Posición 3 = Fix(Tiempo total / 10000)
Tiempo total = Tiempo total - Posición 3 * 10000
Else If Tiempo total > 99900 Then
Resultado = 8192
Posición 1 = Fix(Tiempo total / 100000)
Tiempo total = Tiempo total - Posición1 * 100000
Posición 2 = Fix(Tiempo total / 10000)
Tiempo total = Tiempo total - Posición2 * 10000
Posición 3 = Fix(Tiempo total / 1000)
Tiempo total = Tiempo total - Posición3 * 1000
Else If Tiempo total > 9990 Then
Resultado = 4096
Posición 1 = Fix(Tiempo total / 10000)
Tiempo total = Tiempo total - Posición 1 * 10000
Posición 2 = Fix(Tiempo total / 1000)
Tiempo total = Tiempo total - Posición 2 * 1000
Posición 3 = Fix(Tiempo total / 100)
Tiempo total = Tiempo total - Posición 3 * 100
Else
Resultado = 0
Posición 1 = Fix(Tiempo total / 1000)
Tiempo total = Tiempo total - Posición 1 * 1000
Posición 2 = Fix(Tiempo total / 100)
Tiempo total = Tiempo total - Posición 2 * 100
Posición 3 = Fix(Tiempo total / 10)
Tiempo total = Tiempo total - Posición 3 * 10
End If
Resultado = Resultado + Posición 1 * 256
Resultado = Resultado + Posición 2 * 16
Resultado = Resultado + Posición 3
S5Time = Resultado
El Script como Download:
El Download contiene el Script arriba descrito. 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, suministro
de valores de tiempo
|