1 00:00:05,169 --> 00:00:11,890 En esta segunda parte, vemos lo que sería la programación o configuración software. 2 00:00:12,429 --> 00:00:15,810 Como ya se supone que se tienen los conocimientos previos de programación, 3 00:00:16,510 --> 00:00:22,789 tan solo pretendemos con este vídeo recordar y afianzar algunos aspectos a la hora de realizar un programa con TIA Portal. 4 00:00:23,469 --> 00:00:26,109 Por ello, el programa que implementaremos será muy básico, 5 00:00:26,609 --> 00:00:30,089 porque aquí lo que interesa es la metodología a seguir en TIA Portal, 6 00:00:30,210 --> 00:00:34,869 más que el contenido de programación, que va a ser tan sencillo como lo es el arranque de un motor. 7 00:00:35,170 --> 00:00:43,149 antes de continuar explicaremos brevemente varios puntos del árbol del proyecto el primer aspecto 8 00:00:43,149 --> 00:00:48,909 que vamos a explicar es la configuración de dispositivos si hacemos doble clic entramos 9 00:00:48,909 --> 00:00:53,649 en esta pantalla que ya conocemos del vídeo anterior de la configuración hardware qué es 10 00:00:53,649 --> 00:00:58,090 lo que va a hacer aquí pues aquí lo que accederemos es a los parámetros y a la configuración de 11 00:00:58,090 --> 00:01:09,659 hardware de nuestro plc si abrimos aquí pues lo que tenemos tal como se ve es la vista general 12 00:01:09,659 --> 00:01:17,159 del dispositivo que ya conocemos de la anterior a continuación que otro aspecto del árbol del 13 00:01:17,159 --> 00:01:22,739 proyecto que nos interesa dentro de bloques de programa pues tenemos aquí es donde irán los 14 00:01:22,739 --> 00:01:29,000 bloques de programación es donde meteremos nuestro programa por defecto tenemos el main el ob-1 que 15 00:01:29,000 --> 00:01:35,219 que es el programa principal. Además podremos agregar nuevos bloques si creamos nuevos bloques 16 00:01:35,219 --> 00:01:39,620 y no realizamos lo que sería la programación sólo en el OB1, sino que hacemos programación 17 00:01:39,620 --> 00:01:46,280 estructurada. Necesitaremos entonces bloques de función, otros OBs, etcétera, etcétera. Y por 18 00:01:46,280 --> 00:01:53,219 último, dentro también del árbol de proyecto tenemos las variables PLC. Aquí tendremos por 19 00:01:53,219 --> 00:01:57,459 defecto la tabla de variables estándar, que va a ser la que vamos a utilizar nosotros, aunque 20 00:01:57,459 --> 00:02:03,620 podríamos crear una tabla de variables nueva bien pues empezamos entonces justamente por esta última 21 00:02:03,620 --> 00:02:08,400 parte por la tabla de variables estándar qué aplicación vamos a hacer nosotros pues tal como 22 00:02:08,400 --> 00:02:14,180 he comentado hace un momento vamos a hacer el arranque de un motor y el arranque de un motor 23 00:02:14,180 --> 00:02:21,580 basado en esquema de contactos entonces las variables que vamos a necesitar serán de entrada 24 00:02:21,580 --> 00:02:27,300 de salida y así como las marcas, marcas que vamos a utilizar como variables intermedias. 25 00:02:29,870 --> 00:02:40,650 Primera señal, primera variable que vamos a utilizar, pues vamos a utilizar una señal de paro, vamos a utilizar un pulsador de paro. 26 00:02:41,110 --> 00:02:47,830 En nuestro caso entonces le vamos a poner de nombre paro, es importante que los nombres que se elijan sean unos nombres que sean autoexplicativos, 27 00:02:47,830 --> 00:02:55,830 No utilizar los nombres que utiliza por defecto TIA Portal, que siempre empiezan por TAG. 28 00:02:56,849 --> 00:03:01,550 Bien, por defecto me la coloca él en el I0.0. 29 00:03:03,550 --> 00:03:07,550 ¿Y por qué en el I0.0? Porque es por la primera a la que se puede acceder. 30 00:03:07,550 --> 00:03:16,550 Si vamos justamente a lo que acabamos de ver anteriormente, a lo que sería la vista general de dispositivos dentro de la configuración de dispositivos, 31 00:03:16,550 --> 00:03:20,990 vemos la dirección de las señales de entrada 32 00:03:20,990 --> 00:03:24,150 las señales de entrada están en el byte 0 y en el byte 1 33 00:03:24,150 --> 00:03:28,270 además tengo 14 señales de entrada digitales 34 00:03:28,270 --> 00:03:31,849 así que tendré las 8 del canal 0 35 00:03:31,849 --> 00:03:36,770 o sea desde la I0.0 hasta la I0.7 36 00:03:36,770 --> 00:03:39,090 y además necesito hasta 14 37 00:03:39,090 --> 00:03:41,530 eso serían 8, 8 en el byte 0 38 00:03:41,530 --> 00:03:44,509 más 6 en el byte 1 39 00:03:44,509 --> 00:03:48,930 o sea, desde la I1.0 hasta la I1.5. 40 00:03:50,150 --> 00:03:53,270 Bien, por defecto entonces él me ha colocado en la primera, 41 00:03:53,710 --> 00:03:55,650 en la I0.0 me ha colocado el paro. 42 00:03:56,030 --> 00:03:58,530 La siguiente señal, pues marcha, 43 00:04:01,159 --> 00:04:03,740 la coloca en la siguiente, que sería la I0.1. 44 00:04:04,319 --> 00:04:06,159 La siguiente entrada que voy a utilizar, 45 00:04:06,360 --> 00:04:09,319 pues la siguiente entrada que voy a utilizar voy a utilizar también un térmico, 46 00:04:09,639 --> 00:04:13,639 no pongo tildes, aunque se podrían poner perfectamente. 47 00:04:13,639 --> 00:04:31,199 Y como salidas voy a colocar dos salidas. Voy a colocar una que le voy a llamar motor, que va a ser la salida hacia mi motor. En este caso ya no es la I0.3 sino que es una salida, la Q, y vamos a colocar la primera, la Q0.0. 48 00:04:31,199 --> 00:04:51,660 Y otra salida vamos a poner señalización marcha. La vamos a llamar como señalización guión bajo marcha. Se pueden dejar espacios en blanco, no hay problema. Bueno, a mí me gusta más colocar el guión bajo. Esta sería mi tabla de variables. Sería bueno poner algún comentario si fuera interesante. 49 00:04:51,660 --> 00:05:22,129 En nuestro caso, por ejemplo, vamos a poner que el paro es normalmente cerrado. Va a ser un paro normalmente cerrado. Y el térmico también. La señal que voy a utilizar va a ser también normalmente cerrado. Lo voy a copiar para no escribirlo otra vez, para que se vea que se puede copiar. Y el térmico va a ser normalmente cerrado. La marcha va a ser normalmente abierta. Bien, ya estaría. 50 00:05:22,129 --> 00:05:42,889 Ya lo tenemos, lo que sería la tabla de variables estándar. Vamos entonces a crear nuestro programa. Para crear el programa directamente me voy al main, lo voy a hacer del modo más sencillo. En esta primera parte no voy a hacer programación estructurada, lo voy a hacer todo en el main, en el OB1. 51 00:05:42,889 --> 00:06:01,180 Por otro lado, el main, si le doy botón derecho, cambiar lenguaje de programación, podría colocarlo en KOP o en FUP. Podría colocarlo en diagrama de funciones o en esquema de contactos. Yo lo voy a hacer en esquema de contactos en este caso. 52 00:06:01,180 --> 00:06:18,500 El esquema de contactos se realiza a través de segmentos. En cada segmento se colocan. ¿Cuál es el orden? Primero, colocar los bloques, si hubiera bloques. Por ejemplo, se colocaría un bloque generalista, después se le pondría el nombre. 53 00:06:18,500 --> 00:06:37,740 Por ejemplo, si fuera un temporizador, lo colocaría así, por ejemplo. Bueno, me pide, lógicamente, no voy a colocar un temporizador. A continuación se colocarían los contactos abiertos, cerrados y las bobinas. 54 00:06:37,740 --> 00:06:43,459 y por último le daríamos nombre o a cada uno de esos contactos. 55 00:06:44,160 --> 00:06:47,660 Bien, en nuestro caso entonces como voy a hacer el primer esquema 56 00:06:47,660 --> 00:06:51,019 va a ser el arranque del motor mediante diagrama de contactos 57 00:06:51,019 --> 00:06:54,779 pues no voy a poner bloque aunque lo podría hacer por un serrese 58 00:06:54,779 --> 00:06:57,439 y lo haré posteriormente pero en esta primera no. 59 00:06:57,899 --> 00:07:01,120 Bien, entonces el primer contacto que voy a colocar 60 00:07:01,120 --> 00:07:04,560 será el contacto de paro que es normalmente cerrado 61 00:07:04,560 --> 00:07:36,540 Por tanto, lo tengo que poner abierto para que, si no está activado, circule la corriente a través de él. A continuación, voy a poner otro contacto normalmente abierto. A continuación, el contacto de realimentación de este contacto, en paralelo con el pulsador de marcha y, por último, el térmico. 62 00:07:36,540 --> 00:08:05,970 Y ya lo que me quedaría sería la bobina. El esquema sería tan sencillo como ese. Asignamos a continuación las variables. Este sería el pulsador de paro. Vamos a poner el de marcha. Vamos a poner el térmico, que es normalmente cerrado también. Aquí el motor, la salida y aquí realimentación también de motor. 63 00:08:05,970 --> 00:08:43,370 Bien, este sería entonces activación y paro del motor. Por ejemplo, es bueno siempre comentar todo. Y a continuación, señalización de marcha. Señalización de la marcha del motor. Para señalizar la marcha del motor es tan sencillo como coger el contacto del motor y activar la señalización. 64 00:08:43,370 --> 00:08:56,389 Entonces en nuestro caso sería el contacto normalmente abierto del motor, activa la señalización que era señalización de marcha. Ahí estaría. Ya tenemos todo hecho. 65 00:08:56,389 --> 00:09:20,980 Bien, nos quedaría a continuación, lo siguiente sería compilar, para ello seleccionamos, a mí siempre me gusta seleccionar todo el PLC y compilamos, que trabaje para ver si tenemos algún error a la hora de implementar la programación. 66 00:09:20,980 --> 00:09:43,580 Está compilando, tarda más o menos en función de la máquina que tengáis. Abrimos la parte inferior y comprobamos que no tenemos ningún error. Hay una advertencia, pero sin importancia esta advertencia. Cero errores, por tanto, perfecto, está bien. 67 00:09:44,120 --> 00:09:53,919 ¿Qué tenemos que hacer a continuación? Como no tenemos la máquina física, yo no tengo el PLC 1215 ahora mismo conmigo, pues entonces para probar el funcionamiento necesito simularlo. 68 00:09:53,919 --> 00:10:11,659 Para ello entonces lo mismo, selecciono el PLC y le doy al icono de iniciar simulación. Me dice que se desactivan todas las interfaces online restantes, perfecto, aceptamos y arranca el simulador. 69 00:10:11,659 --> 00:10:38,059 el simulador está arrancando tal como veis aquí y ahora me dice que tengo que cargar estando en 70 00:10:38,059 --> 00:10:49,059 stop cargamos lo que sería el programa en el simulador y arrancamos el simulador se pone en 71 00:10:49,059 --> 00:10:58,860 room ya estaría perfecto ya podríamos simular voy a minimizarlo el simulador y voy a ponerlo online 72 00:10:58,860 --> 00:11:04,960 voy a las gafitas aunque podría hacerlo también desde aquí y se pone online se pone la línea 73 00:11:04,960 --> 00:11:11,620 amarilla porque significa que estoy ya en el modo simulación en el modo online bueno en este caso 74 00:11:11,620 --> 00:11:17,039 online si también si estuviese con la máquina física pues también se pondría en amarillo bien 75 00:11:17,039 --> 00:11:25,799 entonces ahora mismo el botón de paro como no tengo dispositivo físico conectado no tengo ningún 76 00:11:25,799 --> 00:11:32,320 pulsador conectado con una máquina pues entonces directamente tendría que forzarlo pero cuando lo 77 00:11:32,320 --> 00:11:38,299 esfuerzo me di cuenta que aunque aquí el operando paro se ha forzado correctamente me lo indica pero 78 00:11:38,299 --> 00:11:49,340 sin embargo pues no funciona porque porque las entradas y salidas no se pueden forzar ni siquiera 79 00:11:49,340 --> 00:11:56,799 desde este desde aquí que hay que hacer para forzarlas pues entrar en el simulador así que 80 00:11:56,799 --> 00:12:09,700 para ello cambiamos a la vista del proyecto del simulador tarda un poco todo esto es para poder 81 00:12:09,700 --> 00:12:15,580 simular entradas físicas que en nuestro caso ni la y 0.0 ni el pulsador de paro ni el pulsador 82 00:12:15,580 --> 00:12:23,559 de marcha ni el térmico lo podemos activar así que no si nos queremos evitar esto lo haríamos 83 00:12:23,559 --> 00:12:34,519 con marcas o con un db bien una vez que haya arrancado tenemos que o bien abrir un nuevo 84 00:12:34,519 --> 00:12:39,740 proyecto o abrir un proyecto que teníamos ya de simulador en nuestro caso abrimos uno nuevo porque 85 00:12:39,740 --> 00:12:49,909 no tenemos ninguno creado anteriormente me indica una ruta donde colocarlo pues por ejemplo así en 86 00:12:49,909 --> 00:13:06,240 vez de llamarle proyecto 1 le voy a poner motor sim de simulación v1 por ejemplo y lo creamos en 87 00:13:06,240 --> 00:13:14,980 la ruta que me indica. Creamos el proyecto de simulación. Bien, leerá todos los datos del 88 00:13:14,980 --> 00:13:26,679 proyecto actual que tengo en TIA Portal y los cargará. Tarda un ratito, hay que esperar y 89 00:13:26,679 --> 00:15:32,929 tener un poco de paciencia. Bien, ya ha terminado de cargar y ¿cómo lo sé? Porque aquí me aparece 90 00:15:32,929 --> 00:15:39,289 el mismo nombre, la misma CPU que tenía en el proyecto de TIA Portal, en el mismo proyecto. 91 00:15:39,509 --> 00:15:46,549 Una vez que ya lo tengo así y este cuadradito verde me indica que está justamente comunicando con él. 92 00:15:47,129 --> 00:15:51,070 Bien, ¿qué tengo que hacer a continuación? Pues cargar la tabla de simulación. 93 00:15:51,570 --> 00:15:56,149 Para ello él me facilita una o bien que puedo crearme yo una nueva tabla de simulación. 94 00:15:56,149 --> 00:16:02,610 Voy a utilizar la que él me proporciona. Hago doble clic sobre ella y tengo que cargar las variables. 95 00:16:02,929 --> 00:16:24,470 Puedo cargar todas o solamente algunas de las variables que tengo cargadas como variables del PLC del programa, las que vaya a simular o quiera ver su estado. En mi caso voy a cargar todas. Para cargarlas todas lo único que tengo que hacer es dar sobre este icono. En el momento en que se da, se cargan todas las variables que tenía en mi tabla de variables. 96 00:16:24,470 --> 00:16:37,679 Entonces, bien, me lo traigo, me lo desplazo hacia acá para tener la vista de TIA Portal y la vista del simulador. 97 00:16:38,399 --> 00:16:50,679 ¿Cómo se simula? Pues para simular lo único que hay que hacer es, donde pone forzar coherente, poner el estado en el que quiero la variable. 98 00:16:51,100 --> 00:16:55,980 En nuestro caso, ¿cómo lo quiero? Por ejemplo, el pulsador de paro yo lo quiero que esté activado. 99 00:16:55,980 --> 00:17:18,079 Por tanto, le pongo a 1, además el térmico creo que también esté a 1, le pongo a 1 y ahora lo único que tengo que hacer es dar al rayito este, el rayito que es forzar todos los valores seleccionados, le doy al rayito y automáticamente como veis ya quedan forzados, ¿cómo lo sé? 100 00:17:18,079 --> 00:17:30,359 Porque aquí en observar forzar valores me aparece como true, o sea, como si estuviesen ya forzados. Bien, ¿qué tengo que hacer para que funcione? Así es como estaría con el paro y el térmico normalmente cerrados. 101 00:17:30,359 --> 00:17:37,019 a continuación que es lo que tengo que hacer activar marcha para ello entonces ahora mismo 102 00:17:37,019 --> 00:17:45,420 lo tengo en false o sea en cero y yo lo pongo en uno o sea lo activo y le doy al rayito en este 103 00:17:45,420 --> 00:17:51,519 momento se activa el pulsador de marcha si ahora lo quiero desactivar porque es un pulsador entonces 104 00:17:51,519 --> 00:17:59,339 pasa a cero dejo de desactivarlo dejo de activarlo le doy al rayito y automáticamente como tengo 105 00:17:59,339 --> 00:18:04,779 realimentación pues se pone en marcha también puedo ver que la señalización de marcha está 106 00:18:04,779 --> 00:18:09,640 funcionando correctamente de hecho como lo sé pues porque aquí señalización de marcha lo tengo 107 00:18:09,640 --> 00:18:16,420 también a true y el motor también está true si quiero pararlo pues o bien desde el térmico o 108 00:18:16,420 --> 00:18:23,420 bien desde el paro lo desactivo entonces por ejemplo lo voy a hacer desde el paro directamente 109 00:18:23,420 --> 00:18:30,700 Lo pongo a cero, le doy al rayito y automáticamente al pulsar paro al final volvería otra vez a uno. 110 00:18:31,440 --> 00:18:33,819 Si se trata de un pulsador ya se quedaría parado. 111 00:18:34,240 --> 00:18:35,359 Así es como se simula. 112 00:18:36,759 --> 00:18:45,279 Bien, si queremos volver a la vista anterior, a la vista contraída o compacta del simulador, le daríamos aquí y volveríamos a la vista. 113 00:18:46,559 --> 00:18:49,700 Podemos quitar ya, podemos desconectar online. 114 00:19:05,609 --> 00:19:07,150 Deshacemos la conexión online. 115 00:19:07,369 --> 00:19:20,029 y ya estaríamos. Perfecto. A continuación, vamos a borrar lo que hemos hecho y lo vamos 116 00:19:20,029 --> 00:19:29,240 a hacer de otro modo distinto. Bien, creamos un nuevo segmento para tener dos segmentos, 117 00:19:29,279 --> 00:19:34,079 a mí me gusta siempre tener dos segmentos. Bien, hasta ahora lo hemos hecho todo en el 118 00:19:34,079 --> 00:19:41,420 main, pero ¿qué pasa si lo hacemos con programación estructurada? Pues entonces vamos a crear 119 00:19:41,420 --> 00:19:50,579 un nuevo bloque. Por ejemplo, creamos un nuevo bloque. En mi caso lo voy a hacer con un bloque 120 00:19:50,579 --> 00:19:55,839 de función. Le ponemos el nombre del bloque de función, que va a ser, por ejemplo, arranque 121 00:19:55,839 --> 00:20:09,049 motor. Arranque motor. El lenguaje en el que lo voy a hacer va a ser KOP, aunque podría 122 00:20:09,049 --> 00:20:14,130 hacerlo también en SCL o podría hacerlo en FUG. Yo lo voy a hacer en KOP, diagrama 123 00:20:14,130 --> 00:20:19,529 de contactos. Y también podríamos poner más información. Podríamos darle un título 124 00:20:19,529 --> 00:20:24,009 y un comentario. Este comentario será el que después me colocaría aquí, en el título 125 00:20:24,009 --> 00:20:30,730 del bloque. Así que lo puedo colocar directamente aquí, el título del bloque aquí o colocarlo 126 00:20:30,730 --> 00:20:48,099 posteriormente. Bien, una vez que ya lo tenemos, aceptamos. Ya tenemos arranque motor. Perfecto. 127 00:20:48,680 --> 00:20:58,200 Vamos a editarlo. El bloque de función, que es una función con memoria. Ya estamos. Arranque 128 00:20:58,200 --> 00:21:07,970 motor fb1 perfecto qué es lo que vamos a hacer a continuación pues declarar las entradas declarar 129 00:21:07,970 --> 00:21:13,309 las salidas de este bloque que entradas va a tener va a ser exactamente lo mismo que antes 130 00:21:13,309 --> 00:21:18,349 así que le vamos a poner en vez de ponerle marcha le vamos a poner por cambiar el nombre 131 00:21:18,349 --> 00:21:49,440 Bueno, voy a poner, bueno, y si no, marcha, va a ser booleano como entrada, también como entrada, pero le voy a poner otro nombre, marcha, fb, cambiar el nombre, se puede dejar el mismo, pero bueno, cambiarle el nombre. 132 00:21:49,440 --> 00:21:54,220 ¿hay alguna entrada más? 133 00:21:54,500 --> 00:21:55,920 sí, tengo también el técnico 134 00:21:55,920 --> 00:22:02,319 técnico FB 135 00:22:02,319 --> 00:22:05,319 ¿hay alguna entrada más? no, pero sí que tengo 136 00:22:05,319 --> 00:22:07,339 una salida, la salida que 137 00:22:07,339 --> 00:22:09,420 voy a utilizar, por ejemplo, va a ser 138 00:22:09,420 --> 00:22:11,539 voy a ponerle 139 00:22:11,539 --> 00:22:12,759 salida, en general 140 00:22:12,759 --> 00:22:18,799 y señalización 141 00:22:18,799 --> 00:22:29,890 son booleanas, así que 142 00:22:29,890 --> 00:22:32,230 ahora, con esto, me apaño 143 00:22:32,230 --> 00:22:33,950 perfecto 144 00:22:33,950 --> 00:22:35,710 ¿qué tengo que hacer a continuación? 145 00:22:36,089 --> 00:22:38,150 pues a continuación, tendría que hacer 146 00:22:38,150 --> 00:22:39,390 el mismo esquema que antes 147 00:22:39,390 --> 00:22:44,630 puedo hacer el mismo esquema o lo puedo hacer, no, sí, voy a hacerlo como antes 148 00:22:44,630 --> 00:22:53,069 entonces directamente colocaría mi pulsador de paro, mi pulsador de marcha 149 00:22:53,069 --> 00:23:01,529 aquí tengo los contactos y mi térmico, la salida del motor 150 00:23:01,529 --> 00:23:09,339 y en paralelo le colocamos el contacto de realimentación 151 00:23:09,339 --> 00:23:16,210 asignamos las variables, en nuestro caso va a ser 152 00:23:16,210 --> 00:23:19,690 marcha fb, estos parámetros que tenía aquí 153 00:23:19,690 --> 00:23:30,509 perdón, esta no es marcha, este sería el 154 00:23:30,509 --> 00:23:34,589 lo colocamos así o 155 00:23:34,589 --> 00:23:38,710 lo podemos también colocar como antes, marcha fb 156 00:23:38,710 --> 00:23:46,039 el térmico, la salida 157 00:23:46,039 --> 00:23:51,359 no la he cogido bien, la salida 158 00:23:51,359 --> 00:24:27,640 también la salida y a continuación como en el caso anterior pues tendríamos la señalización luminosa sería la salida y la señalización ya estaría totalmente bien solamente una cosita 159 00:24:27,640 --> 00:24:31,380 fijaos que la salida me la pone de color amarillo 160 00:24:31,380 --> 00:24:34,059 como lo veis, no pasa absolutamente nada 161 00:24:34,059 --> 00:24:36,720 el funcionamiento está bien, lo único que te avisa es que 162 00:24:36,720 --> 00:24:40,119 si la has puesto como salida y aquí la tienes declarada 163 00:24:40,119 --> 00:24:43,119 como salida, no la utilices después como 164 00:24:43,119 --> 00:24:45,220 variable de entrada como estaría en este caso 165 00:24:45,220 --> 00:24:48,299 no pasa absolutamente nada, no me lo va a dar como error 166 00:24:48,299 --> 00:24:51,880 de hecho ahora lo voy a compilar y lo podéis comprobar que no me lo da 167 00:24:51,880 --> 00:24:54,359 como error, o sea funcionará correctamente 168 00:24:54,359 --> 00:25:05,230 lo único bueno pues tal como lo tengo ahora mismo para comprobarlo para comprobarlo vamos 169 00:25:05,230 --> 00:25:14,690 a justamente a compilar lo veis me da dos advertencias justamente me dice eso no está 170 00:25:14,690 --> 00:25:22,470 declarada la variable salida está declarada como auto no se recomienda el acceso de lectura a la 171 00:25:22,470 --> 00:25:26,269 variable sin embargo no me va a dar no me proporciona un error me proporciona solo solo 172 00:25:26,269 --> 00:25:33,450 justamente es una advertencia. Así que no hay problema. Bueno, tengo dos advertencias porque lo utilizo dos veces como también como entrada. 173 00:25:33,849 --> 00:25:41,369 No pasa absolutamente nada. Va a funcionar correctamente. De todos modos, si no os fiáis, ¿qué tendríais que hacer? 174 00:25:41,730 --> 00:25:47,069 Pues utilizar variables intermedias. Si queremos utilizar variables intermedias, pues ¿cómo lo haríamos? 175 00:25:47,069 --> 00:26:13,339 Pues directamente aquí, por ejemplo, utilizar una variable que se llame temporal, por ejemplo, y que sea una variable booleana, dentro de las estáticas, de tal modo que lo único que voy a hacer es quitar la salida, perfecto, y colocar una estática. 176 00:26:13,339 --> 00:26:16,539 colocar esa que hemos llamado temporal 177 00:26:16,539 --> 00:26:22,220 esa que hemos llamado temporal la colocamos ahí 178 00:26:22,220 --> 00:26:27,059 y aquí utilizaríamos esa variable temporal 179 00:26:27,059 --> 00:26:31,829 y para activar el motor lo mismo 180 00:26:31,829 --> 00:26:41,910 utilizaríamos la variable temporal 181 00:26:41,910 --> 00:26:44,309 que está como estática 182 00:26:44,309 --> 00:26:49,269 la podemos utilizar para activar lo que sería el motor 183 00:26:49,269 --> 00:26:55,160 el motor pero lo que tenemos como salida 184 00:26:55,160 --> 00:26:56,339 salida fb, perdonad 185 00:26:57,140 --> 00:27:15,640 Bien, ya estaría. Ahora veis que ya no se me pone como se me ponía antes de un color amarillo o naranja. Ahora ya estaría correcto. Del otro modo funcionaría igual, pero bueno, por si las moscas. Bien, de hecho ahora mismo si voy a hacer exactamente lo mismo, voy a compilarlo. 186 00:27:15,640 --> 00:27:19,839 veis y ahora ya no tengo ni errores ni advertencias 187 00:27:19,839 --> 00:27:21,720 no hay ningún error ni ninguna advertencia 188 00:27:21,720 --> 00:27:23,880 o sea ahora estaría totalmente correcto 189 00:27:23,880 --> 00:27:25,500 ese sería el método para hacerlo 190 00:27:25,500 --> 00:27:27,880 no hay que olvidarse en el main 191 00:27:27,880 --> 00:27:31,880 ahora hacer una llamada a este fb 192 00:27:31,880 --> 00:27:33,880 porque si no no va a funcionar correctamente 193 00:27:33,880 --> 00:27:37,640 me dice que le dé un nombre al db que me va a generar 194 00:27:37,640 --> 00:27:40,180 porque es un fb y al tener memoria 195 00:27:40,180 --> 00:27:42,240 y va a almacenar los datos en un db 196 00:27:42,240 --> 00:27:46,720 entonces le podemos dejar el nombre que me aparece por defecto 197 00:27:46,720 --> 00:27:49,279 arranque motor o le puedo cambiar alguno el nombre 198 00:27:49,279 --> 00:27:52,640 yo en mi caso le voy a dejar el nombre que viene por defecto 199 00:27:52,640 --> 00:27:54,400 que no es un mal nombre arranque motor de B 200 00:27:54,400 --> 00:27:57,519 y directamente con qué señales 201 00:27:57,519 --> 00:28:01,700 pues con la señal física con los pulsadores que tenía físicos 202 00:28:01,700 --> 00:28:08,400 directamente entonces la marcha, el paro con el I0.0 203 00:28:08,400 --> 00:28:11,920 el térmico que lo tenía conectado en el I0.2 204 00:28:11,920 --> 00:28:15,059 la salida para mí va a ser el motor 205 00:28:15,059 --> 00:28:19,970 y la señalización 206 00:28:19,970 --> 00:28:21,849 pues la señalización, señalización 207 00:28:21,849 --> 00:28:23,750 marcha, perfecto 208 00:28:23,750 --> 00:28:25,809 ya estaría, ya lo único 209 00:28:25,809 --> 00:28:28,049 que teníamos que hacer sería comprobar 210 00:28:28,049 --> 00:28:29,829 a la hora de 211 00:28:29,829 --> 00:28:31,809 compilar todo, que no tengo 212 00:28:31,809 --> 00:28:33,609 errores ni advertencias como es el caso 213 00:28:33,609 --> 00:28:35,789 y una vez que ya 214 00:28:35,789 --> 00:28:37,710 se ha compilado, ahora ya como 215 00:28:37,710 --> 00:28:39,309 tengo el simulador arrancado 216 00:28:39,309 --> 00:28:41,769 lo único que tengo que hacer es subirlo 217 00:28:41,769 --> 00:28:43,130 cargarlo 218 00:28:43,130 --> 00:29:06,799 para ello pulso sobre él, le doy cargar y sin errores finalizo, muy bien, si quiero ahora lo que puedo hacer es establecer conexión online, se me pondrá la franja naranja, ya estoy online, 219 00:29:06,799 --> 00:29:11,859 tengo el pulsador de marcha falso, está todo, el térmico lo tengo true 220 00:29:11,859 --> 00:29:15,279 porque lo he dejado de anteriormente, me voy al simulador 221 00:29:15,279 --> 00:29:22,130 que lo tengo ya cargado, vamos a ver si conseguimos subirlo un poquito 222 00:29:22,130 --> 00:29:25,890 para que se vea, a ver si lo consigo 223 00:29:25,890 --> 00:29:30,190 sí, más o menos, ahí lo tengo, fijaos que el térmico 224 00:29:30,190 --> 00:29:33,809 está true, por eso lo tengo, no se ve bien 225 00:29:33,809 --> 00:29:38,130 ahí, estaría true, ahora que tengo que hacer para que funcione correctamente 226 00:29:38,130 --> 00:29:47,490 pues el pulsador de paro darle al rayito ya lo tengo también en true y ahora al pulsador de 227 00:29:47,490 --> 00:29:57,190 marcha esfuerzo el pulsador de marcha a 1 le doy al rayo ya lo tengo a 1 y se pone a true lo que 228 00:29:57,190 --> 00:30:03,990 sería el motor y la señalización si quiero que bueno el pulsador de marcha como es un pulsador 229 00:30:03,990 --> 00:30:36,900 lo puedo devolver otra vez a cero, voy a apagarlo, perfecto, le doy al rayo, veis que está justamente a cero y si quiero ahora pararlo pues por ejemplo lo voy a hacer con el térmico, le doy a cero, salta el térmico, le doy al rayo, ahora justamente cae el motor y la señalización de marcha, devuelvo otra vez el térmico a uno y sigue desactivado. 230 00:30:37,480 --> 00:30:51,400 minimizo, bueno, compacto, me voy a la vista compacta del simulador, lo minimizo, quito, deshago la conexión online y veo que funciona perfectamente. 231 00:30:51,400 --> 00:31:02,140 tercera opción voy a hacerlo de un tercer modo en mi caso tenía como veis aquí un fb que lo lógico 232 00:31:02,140 --> 00:31:07,700 hubiese sido que hubiese puesto unos comentarios no los he puesto para no alargar demasiado el 233 00:31:07,700 --> 00:31:14,660 vídeo entonces lo voy a hacer de otro modo distinto para ello aunque parecido al anterior 234 00:31:14,660 --> 00:31:50,339 Voy a agregar un nuevo bloque que va a ser también un FB. Va a ser un FB. Al anterior lo llamé arranque motor. Este lo voy a llamar arranque motor S-R. Lo voy a hacer también en KOP y lo voy a editar. 235 00:31:50,339 --> 00:32:16,789 Voy a declarar las variables. En mi caso va a ser marcha, térmico, motor, como salida y señalización. 236 00:32:22,460 --> 00:32:27,420 Esa sería la declaración de variables, las mismas que anteriormente y ahora ya voy a editarlo. 237 00:32:27,859 --> 00:32:30,660 ¿Qué es lo que voy a hacer? Pues ahora lo voy a hacer con un setReset. 238 00:32:30,660 --> 00:32:34,180 reset, para ello lo primero entonces será 239 00:32:34,180 --> 00:32:38,759 el bloque, justamente estable, colocamos 240 00:32:38,759 --> 00:32:42,440 el bloque, en mi caso he colocado un bloque de modo general 241 00:32:42,440 --> 00:32:44,980 a continuación le digo que es un set reset 242 00:32:44,980 --> 00:32:50,339 y set, ¿qué señal va a ser? pues 243 00:32:50,339 --> 00:32:59,420 set va a ser una señal de marcha como variable 244 00:32:59,420 --> 00:33:03,240 local, que las he establecido aquí como variables locales y 245 00:33:03,240 --> 00:33:11,039 el reset va a ser con el pulsador de paro pero fijaos el pulsador de paro no es como antes ahora 246 00:33:11,039 --> 00:33:25,089 va a ser normalmente cerrado ahora veréis por qué y el pulsador perdón el contacto del térmico va a 247 00:33:25,089 --> 00:33:31,210 ser también normalmente cerrado para que para que si yo lo hubiese colocado como antes o sea 248 00:33:31,210 --> 00:33:39,490 normalmente abierto aquí por defecto ya estaría activando el reset porque porque justamente al 249 00:33:39,490 --> 00:33:45,730 colocarlo así significa que no estoy haciendo su inverso sino si ya está cerrado de por sí 250 00:33:45,730 --> 00:33:52,890 físicamente ya está cerrado entonces si le colocase aquí directamente ya estaría provocando el reset 251 00:33:52,890 --> 00:34:00,450 que hay que hacer colocarlo cerrado o sea invertir su estado su estado físico en este caso entonces 252 00:34:00,450 --> 00:34:11,639 sería el paro aquí estaría el térmico el térmico perfecto ahora alguien podría pensar que 253 00:34:11,639 --> 00:34:20,079 directamente podríamos colocar aquí el motor fijaos lo que me da justamente lo que me ocurría 254 00:34:20,079 --> 00:34:25,460 en el caso anterior el motor los tengo como salida entonces me va a pasar lo mismo que antes no me va 255 00:34:25,460 --> 00:34:31,920 a dar un error justamente pero voy a tener problemas no voy a tener problemas pero bueno 256 00:34:31,920 --> 00:34:52,590 Si alguno prefiere, como es mi caso, que no se me ponga de color naranja o amarillo, pues entonces utilizaremos, por ejemplo, lo pondremos aquí y ya no habría problema. 257 00:34:54,719 --> 00:34:57,239 ¿Qué tendremos que colocar aquí? Una variable intermedia. 258 00:34:58,000 --> 00:35:06,920 ¿Qué variable intermedia? Pues lo que hemos hecho justamente anteriormente, una variable estática, que podemos llamar temporal, por ejemplo. 259 00:35:06,920 --> 00:35:16,219 colocaremos aquí la variable temporal 260 00:35:16,219 --> 00:35:20,579 que es una variable local de este FB nada más 261 00:35:20,579 --> 00:35:22,400 por eso aparecen con la almohadilla 262 00:35:22,400 --> 00:35:25,380 pues son variables locales que tan solo son vistas 263 00:35:25,380 --> 00:35:28,260 desde dentro del FB y por último ya 264 00:35:28,260 --> 00:35:31,880 en el otro segmento colocaríamos 265 00:35:31,880 --> 00:35:35,280 pues la señalización luminosa 266 00:35:35,280 --> 00:35:36,820 se puede hacer con la temporal 267 00:35:36,820 --> 00:35:39,579 de hecho es lo que yo voy a hacer 268 00:35:39,579 --> 00:36:09,420 Ah, perdonad. Se puede hacer con el motor. En mi caso lo voy a hacer con la temporal. Y activo la señalización. Muy bien. Pues ya estaría hecho. Vamos a compilar. Vamos a compilar este FB. A ver si no me da ningún problema. Nada. No hay problema. Cero errores. 269 00:36:09,420 --> 00:36:13,519 entonces ya podríamos cargar 270 00:36:13,519 --> 00:36:16,460 repito, ya podemos cargar 271 00:36:16,460 --> 00:36:18,480 porque el simulador lo tenemos abierto 272 00:36:18,480 --> 00:36:22,179 cargamos, finalizamos 273 00:36:22,179 --> 00:36:25,500 nos vamos al simulador 274 00:36:25,500 --> 00:36:28,260 vamos a hacer esto más grande 275 00:36:28,260 --> 00:36:32,480 ponemos conexión online 276 00:36:32,480 --> 00:36:35,900 y le ponemos las gafitas para que se vea 277 00:36:35,900 --> 00:36:37,179 pero en vez de hacerlo desde aquí 278 00:36:37,179 --> 00:36:39,820 nos vamos a, perdonad, un error, hay un error 279 00:36:39,820 --> 00:37:06,380 hay un error, hay un error, bueno, no es un error, pero es un despiste que puede ocurrir y ocurre muy frecuentemente y es irnos al main y lo que tenemos cargado es el FB anterior, pero no es el FB nuestro, quitamos este FB y colocamos el FB que acabamos de colocar, que es arranque motor, pero SR, me pide un bloque de datos, en este caso tendría, 280 00:37:06,380 --> 00:37:10,840 él me coloca de nombre arranque motor SRDB 281 00:37:10,840 --> 00:37:13,559 me parece un buen nombre, así que lo dejo 282 00:37:13,559 --> 00:37:18,260 y las mismas variables de entrada que he utilizado anteriormente 283 00:37:18,260 --> 00:37:22,380 así que sería para la marcha, marcha 284 00:37:22,380 --> 00:37:26,059 la I01, para el paro, la I0.0 285 00:37:26,059 --> 00:37:30,480 para el térmico, la I0.2 286 00:37:30,480 --> 00:37:34,000 está un poquito más abajo, aquí, la I0.2 287 00:37:34,000 --> 00:37:57,929 Para el motor, pues utilizamos la propia del motor, la Q0.0 y para la señalización la Q0.1. Perfecto. Ya estaría. Ahora sí, ahora sí que tengo que hacer la carga. Realizo la carga, cargamos sin problemas. 288 00:37:57,929 --> 00:38:02,530 hago más grande la zona, lo subo un poquito para arriba 289 00:38:02,530 --> 00:38:05,469 para tener espacio en la parte superior 290 00:38:05,469 --> 00:38:10,130 el simulador, abro el simulador 291 00:38:10,130 --> 00:38:18,780 en su vista extendida y vamos a ver 292 00:38:18,780 --> 00:38:22,519 establezco la conexión online, le pongo las gafitas 293 00:38:22,519 --> 00:38:30,469 además, pongo el simulador y ahora mismo tengo 294 00:38:30,469 --> 00:38:34,170 el paro y el térmico ya normalmente cerrados 295 00:38:34,170 --> 00:38:37,409 colocados, están forzados, lo único que tengo que hacer 296 00:38:37,409 --> 00:38:40,510 entonces es forzar 297 00:38:40,510 --> 00:38:44,639 marcha, en el momento en que esfuerzo marcha 298 00:38:44,639 --> 00:38:47,920 funciona correctamente el motor y funciona correctamente la señalización 299 00:38:47,920 --> 00:38:54,710 quito marcha y automáticamente 300 00:38:54,710 --> 00:38:57,250 cae, no cae nada, perdón 301 00:38:57,250 --> 00:39:00,250 porque todavía tengo realimentación, no hay problema 302 00:39:00,250 --> 00:39:03,510 de hecho me podría ir perfectamente 303 00:39:03,510 --> 00:39:06,190 a lo que sería 304 00:39:06,190 --> 00:39:11,960 aquí y podría 305 00:39:11,960 --> 00:39:13,920 simularlo también desde aquí, ver 306 00:39:13,920 --> 00:39:23,400 la simulación, la misma 307 00:39:23,400 --> 00:39:24,840 simulación se puede ver aquí 308 00:39:24,840 --> 00:39:27,559 ahora mismo como se puede 309 00:39:27,559 --> 00:39:36,639 comprobar, si quiero 310 00:39:36,639 --> 00:39:37,840 apagar el motor 311 00:39:37,840 --> 00:39:40,539 le forzaría sobre 312 00:39:40,539 --> 00:39:41,980 el paro por ejemplo 313 00:39:41,980 --> 00:39:44,579 y el motor 314 00:39:44,579 --> 00:39:46,599 cae el paro, perdón 315 00:39:46,599 --> 00:39:48,340 cae el motor y cae la señalización 316 00:39:48,340 --> 00:39:50,699 como veis ahí, el bloque 317 00:39:50,699 --> 00:39:52,059 SRS se ha desconectado 318 00:39:52,059 --> 00:40:04,239 ha caído el motor y demás. Bien, pues voy a vista compacta, minimizo, deshago la concesión online 319 00:40:04,239 --> 00:40:10,019 y ahora habría que guardarlo. Si quisiéramos guardarlo, le daríamos guardar proyecto y se guardaría en la ruta 320 00:40:10,019 --> 00:40:16,119 que se indica en la parte superior. Bueno, pues nada más. Esto es una pequeña visión, 321 00:40:16,119 --> 00:40:23,199 un pequeño recordatorio para ver cómo funciona Tia Portal. Espero que haya servido.