La semana pasada te presentaba el reto de cómo enviar datos desde un HMI a diferentes DB de un PLC en AWL.
Ahora vamos a ver cómo lo he resuelto aprovechando que he estado desarrollando el Curso de AWL.
Seguro que hay otras opciones, pero esta es una de ellas.
Al final, he usado un HMI de Siemens para poder simularlo de forma más sencilla.
Vídeo del envío de datos en AWL
Te dejo con el vídeo, que siempre es más fácil de entender.
Si necesitas más información de punteros ANY, tienes aquí más información.
¿Qué te ha parecido?
Como ves, AWL es muy potente y se pueden hacer muchas cosas, tanto en Step 7 tradicional, como en TIA Portal en los S7-300, S7-400 y en los S7-1500.
Ya está disponible el curso de AWL, así que si te quieres formar en estas lides, puedes echar un vistazo, y ver su índice de contenido.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
3 Comentarios
Muy chulo Iñigo!
Me gusraría añadir que yo al menos también lo he visto construido del puntero del siguento modo y deseaba compartirlo!
Ejemplo P#DB1.DBX0.0 BYTE 10
LAR1 P##SOURCE
L B#16#10
T LB [AR1,P#0.0]
L B#16#2
T LB [AR1,P#1.0]
L 10
T LW [AR1,P#2.0]
L 1
T LW [AR1,P#4.0]
(esta es la parte nueva)
L 0 (posición del DB para leer o escribir en nuestro ejemplo posición 0)
SLD 3
L P#DBX0.0
+D
T LD [AR1, P#6.0]
Un saludo y fantástico el curso de AWL!
Muchas gracias David!
Y es buena idea hacerlo así como dices, ya que tomas como referencia el byte, desplazas a la izquierda 3 bits para convertirlo en byte, y lo sumas al puntero DBX0.0 con lo que solo tienes que escribir sobre el DW desde el byte 6.
Me lo apunto como alternativa.
Yo lo he explicado en el curso byte a byte, pero es buena idea de esta forma si en el bloque ya sabes que va a ser un DB.
Otra cosa es que al bloque le pasaras la tipología como parámetro (DB, M, DI), que entonces cambiaría un poco la cosa.
También es verdad que esto lo programas una vez para hacer el bloque, con lo que lo hagas como lo hagas, son dos líneas arriba o dos abajo.
Hola, os mando otra forma de configurar el puntero any, a mi me funciona correctamente también.
Un saludo.
L P##puntero
LAR1
L 16#10
T B [ AR1 , P#0.0 ]
L 16#2
T B [ AR1 , P#1.0 ]
L #nBytes
T W [ AR1 , P#2.0 ]
L #DB
T W [ AR1 , P#4.0 ]
L #offset
SLW 3
L P#DBX0.0
OD
T D [ AR1 , P#6.0 ]
Por cierto genial el post!