El valor se recibe en un WORD, se copia en un INT, que vuelve a ser un WORD después de la instrucción I_BCD, se le añade la base de tiempo con la instrucción WOR_W, para finalmente moverlo a la variable en formato S5TIME definitiva.
No es la primera vez que me encuentro con conversiones similares, pero como no estaba del todo seguro de cómo trata WinCC Flexible directamente las variables de tipo S5TIME, pues nada mejor que hacer una sencilla prueba.
Lo primero es crear un proyecto de Step7 con una variable S5TIME en un bloque de datos y transferirlo a mi PLC.
En WinCC Flexible enlazo la variable anterior a un campo de entrada salida, le doy suficiente longitud de representación, tres dígitos para la parte decimal y tipo de formato Decimal.
La idea es ir dando distintos valores a la variable desde el Runtime de WinCC Flexible para comprobar de qué manera le llega el valor de tiempo al PLC. Así que transfiero el programa al panel y visualizo simultáneamente el valor de la variable en el PLC y la ejecución del HMI:
Dos máquinas virtuales: una con Step7 on-line con el PLC y la otra con el RT de WinCC Flexible. |
la variable en formato S5TIME del PLC recibe la conversión ya realizada, directamente, sin programar nada más. Si ponemos valores superiores a 9990,000 segundos (que es la temporización máxima de un temporizador Simatic correspondiente a 2h 36m 30s) se redondea a este valor. Asimismo, no todos los valores de tiempo son posibles, dependen de la base de tiempo, pero el PLC recibirá el valor redondeado más próximo al que hayamos introducido.
Y hasta aquí esta sencilla comprobación. Cualquier comentario será bienvenido.
Hola.
ResponderEliminarYo prefiero el primer método, el de los cálculos en el PLC. Aunque le añadiría un control de límites (por si los negativos, valores > 999 etc etc).
Antes o depués hay que calcular en el PLC un tiempo y hay que terminar usando el método.
No todo es Wincc.
Los displays y PC´s pasan (cascan) el PLC permanece...
Buenas.
ResponderEliminarDe que manera puedo temporizar mas de 9990 s, Gracias.