×
Siemens Industry Online Support
Siemens AG
Tipo de artículo: FAQ ID de artículo 97552147, Fecha del artículo: 25/07/2014
(7)
Evaluar

¿Cómo se puede realizar un direccionamiento seguro e indirecto en STEP 7 (TIA Portal)?

  • Artículo
  • Relacionado con producto(s)

Descripción
En el direccionamiento indirecto, la dirección cuyo valor se debe escribir o leer, sólo se determina durante la ejecución del programa. Con ayuda de este método se puede reducir el coste de programación y manejar el programa de manera más flexible. En la mayoría de los casos, las direcciones de acceso son conocidas al crear el programa. Para que el direccionamiento indirecto sea más flexible y seguro,

  • utilice el tipo de datos "Array" para los datos agrupados del mismo tipo o bien
  • utilice el índice a través del que se realiza el acceso a cada variable, para zonas de datos diferentes.

En el siguiente ejemplo se accede a 3 variables con zonas de datos diferentes. La tabla 01 muestra la lista de acceso de las 3 variables que están asignadas a cada uno de los índices:
 

Índice Acceso a la variable Zona de memoria
1 Input_Word_0 EW 0
2 "Processdata".Temperature DB 1
3 Output_Word_4 AW 4
Tabla 01

Cree una función y declare una variable de entrada con el tipo de datos "Int". Defina también el valor de retorno con el mismo tipo de datos. La figura 01 muestra un ejemplo para la programación de la función "AccessGroupInt", en la que están declarados direccionamientos indirectos y los valores que se devuelven por medio del índice. Los direccionamientos indirectos se pueden utilizar directamente en el programa, por ejemplo con ayuda del siguiente comando: #TempValue:= "AccessGroupInt"(#Index);

Este método de programación es ahora

  • reproducible, ya que se pueden utilizar listas de referencias cruzadas,
  • seguro, ya que sólo se utilizan las zonas de memoria definidas previamente,
  • universal, ya que se pueden utilizar tanto para zonas de datos estándar, como para zonas de datos optimizadas.


Figura 01

En el siguiente ejemplo se leen y escriben datos de 3 bloques de datos optimizados diferentes. Los 3 bloques de datos ("Silo_Water", "Silo_Sugar" y "Silo_Milk") contienen las mismas declaraciones de variables:

  • Variable de DB 1: "MyBool" de tipo de datos "Bool",
  • Variable de DB 2: "MyInt" de tipo de datos "Int",
  • Variable de DB 3: "MyWord" de tipo de datos "Word".


Figura 02

Para el direccionamiento de las variables de DB con tipos de datos diferentes se crea el tipo de datos de PLC "SiloUDT". La lectura se realiza con el valor de retorno de la función "AccessGroupSiloRead", la cual está definida con el tipo de datos de PLC "SiloUDT". Basándose en esto, se puede programar el acceso indirecto dentro de un FB, tal como se muestra en la instrucción de la figura 03:

  • "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));


Figura 03

Entorno de creación
Las imágenes de este FAQ se han creado con STEP 7 (TIA Portal) V13.

Conceptos de búsqueda ampliados
Simbólico

Información de seguridad
Para proteger las infraestructuras tecnológicas, los sistemas, las máquinas y las redes contra amenazas cibernéticas, es necesario implementar y mantener continuamente un concepto de seguridad de TI holístico de última generación. Los productos y soluciones de Siemens son parte de este concepto. Para obtener más información sobre seguridad cibernética. Encontrará más información sobre la seguridad cibernética en
https://www.siemens.com/cybersecurity#Ouraspiration.
Respaldo de estadísticas
With this function the IDs found are listed according to number (format .txt).

Generar lista
Copiar URL
Mostrar esta página en el nuevo diseño
mySupport Cockpit
Enlaces relacionados