PLC telemecanique

Queremos extructurar mejor un programa que tenemos echo para un autómata micro TSX3721. Trabajamos con lenguaje de contactos. Lo que queremos es evitar en toda medida los saltos a etiquetas y hacerlo por procedimientos. La pregunta es si cuando entramos en los procedimientos; dentro del procedimiento recoge los valores de las variables externas (fuera del procedimiento). Y al contrario si cuando modifique algún valor de alguna variable este cambio afectara al programa principal. Serias muy amable en contestar.

1 respuesta

Respuesta
1
En primer lugar, los saltos son instrucciones de programa como cualquier otra, es decir, si te equivocas por ejemplo en una carga a un bit, la aplicación va a funcionar mal, lo mismo que si te equivocas en un salto también funcionara mal. Lo único que distinge a los saltos es que si son hacia atrás se puede generar un bucle y el procesador entra en error y pasa a stop. Por este motivo se hace hincapié en comprobar bien la programación con saltos.
Aparte de esto, si te decides por subrutinas, una forma muy aceretada de estructurar un programa, las variables que uses en cada una de ellas son globales, es decir, pueden leerse o escribirse en cualquier parte de la aplicación. Para hacer un programa con subrutinas, y también sin ellas, crea unas tablas de palabras y bits para cada una de ellas y así cada vez que tengas que actuar sobre una de estas variables, sabrás a que parte del programa están asignadas. Lo mejor un ejemplo:
Sea un programa con 2 subrutinas aparte de la main. Hacemos una tabla de variables y asignamos las siguientes (sigue siendo un ejemplo):
A la tarea main de la palabra %MW0 a la %MW500 y los bits internos %M0 a %M50
A sr0 de la palabra %MW1001 a la %MW1500 y los bits %M101 a %M150
A la sr1 de la palabra %MW1501 a la %MW2000 y los bits de %M151 a %M200
A la sr2 de la palabra %MW2001 a la %MW2500 y los bits de %M201 a %M250
Que numero y cual es el tamaño en numero de palabras lo da el nº que tengas configurado y de la memoria del procesador.
Como ves las numeraciones de las palabras y los bits se corresponden quitando un cero del nº de la palabra con lo que es fácil de recordar y al ver cualquier variable sabremos rápidamente a que parte del programa corresponde. He dejado espacio entre las direcciones para si con el tiempo se tiene que modificar o ampliar el programa se puede variar la tabla correspondiente sin tocar el resto. Como ves si hago una asignación por ejemplo al bit %M227 en la tarea main, sabre que este bit puede estar usado en la sr2.
Respecto a las entradas y salidas, puedes asignarlas a variables internas siguiendo un orden similar al anterior con lo que tienes el programa estructurado tanto a nivel de E/S como de variables.
Menudo rollo, espero que te sirva de ayuda y si tienes alguna duda pues aquí estamos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas