Descripción:
Por ejemplo, se dispone de las siguientes líneas de código en un VBS y se comprueba que no siempre funciona.
HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read
HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read
HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read
HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read
En el caso descrito arriba, las variables se leen y escriben a través de la imagen de dichas variables. Para estar seguro que las variables han sido leidas antes de escribir, se puede utilizar un servicio síncrono de lectura/ escritura. Por eso, hay que modificar los servicios de lectura de "Read" a "Read(1),1", tal como se muestra en el siguiente ejemplo:
HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read(1) ,1
HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read(1) ,1
HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read(1) ,1
HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read(1) ,1
Indicación: Los servicios de lectura y escritura síncronos se corresponden con las funciones GetTagxxxWait y SetTagxxxWait del ANSI C. Estas funciones tiene las desventaja de duran mucho ya que dependen del acoplamiento y el AS. El tratamiento del resto de Scripts se quedan esperando hasta que se recibe una respuesta del AS. Por tanto, puede haber una pérdida de rendimiento y sólo se deben usar en casos excepcionales. Son mucho más efectivos los servicios de lectura y escritura asíncronos, ya que estos se ejecutan a través de la imagen. En este caso, la lectura y actualización de las variables se separa del resto de procesos activos.
Los servicios síncronos sólo se deben usar si se está seguro de que las variables han sido leidas o escritas antes de continuar con la elaboración del Script.
Advertencia:
Tenga en cuenta las descripciones sobre las funciones GetTag y GetTagWait del sistema de información del WinCC, bajo el punto:
-
WinCC V6.0 - "Trabajar con WinCC -> ANSI-C para crear funciones y acciones -> Descripción de las funciones -> Funciones internas -> tag -> get -> GetTagBit -> Funcionamiento de las funciones GetTag".
-
WinCC >= V6.2 - "Trabajar con WinCC -> ANSI-C para crear funciones y acciones -> Funciones internas -> tag -> Funcionamiento de las funciones GetTag".
|