Professional Documents
Culture Documents
EJERCICIOS PROPUESTOS
CICLO: 02-2014
MATERIA: LENGUAJE DE PROGRAMACIN INDUSTRIAL
ELECTRNICA
DOCENTE: RODRIGO IRAHETA
EJERCICIO 1.
Haga un VI que haga un arreglo de diez nmeros aleatorios, y que determine de ese arreglo si los elementos
cero, dos, cuatro, seis y ocho son mayores de 50.
Solucin:
El panel frontal lo construiremos primero colocando un control numrico, ControlsNum CtrlsNum Ctrl,
que ser utilizado para definir la cantidad de nmeros aleatorios a generar. Colocaremos 5 indicadores de
texto, ControlsText IndsString Ind, para desplegar el mensaje que diga si el elemento es mayor 50.Y
vamos agregar indicador de arreglo numrico, ControlsAll ControlsArrays & ClustersArray, para que el
arreglo sea de nmeros vamos a colocar un indicador numrico dentro del Array, el panel frontal debe
quedar muy parecido al que aparece en la figura.
En el diagrama de bloques, lo primero que debemos hacer es crear un array de 10 nmeros aleatorios, para
esto nos vamos a valer de un lazo For, vamos a utilizar la funcin Random Number,
1
El arreglo que se ha generado por el lazo For lo vamos a llevar a la funcin Index Array, FunctionsAll
FunctionsArrayIndex Array, esta funcin se utiliza para extraer un elemento en especifico del arreglo,
por medio del ndice, en el caso de nuestro VI, nos interesan los elementos 0, 2, 4, 6 y 8,
NOTA: Para tener acceso a ms de un elemento debes colocarte sobre el extremo inferior de la funcin
Index Array, y alargar hacia abajo, aparecern nuevas terminales.
Luego a la salida de la funcin Index Array, se tienen los cinco elementos que hemos elegido, estos los
comparamos con el valor de 50, si son mayores nos muestra un mensaje que dice Es mayor que 50, si no
nos muestra el mensaje que dice Es menor de 50.
EJERCICIO 2
Haga un VI que contenga un cluster un control numrico, un control de texto, y un control booleano, este
cluster sern los valores inciales que tomara nuestro programa. Los valores inciales deben de poderse
cambiar si el usuario as lo decide, el usuario puede decidir cambiar uno de los elementos en particular o los
tres.
Solucin:
Vamos a crear nuestro panel frontal de la siguiente manera, un cluster para nuestros valores inciales, y un
cluster para desplegar los valores actuales. Para colocar los cluster bscalo en ControlsAll ControlsArray
& ClusterCluster, luego sobre el recuadro del cluster coloca los controles, primero el numrico, luego el
booleano y por ltimo el de texto.
En el otro cluster coloca los indicadores en el mismo orden en que colocamos los controles es decir, primero
el indicador numrico, luego el LED, y por ltimo el indicador de texto.
Para que el usuario elija si quiere cambiar el valor numrico, el texto o el valor booleano, vamos a colocar
un control de seleccin mltiple, ControlsAll ControlsRing & EnumEnum, para personalizarlo debes dar
clic derecho sobre el control y elegir la opcin Properties, y luego elige la pestaa Edit tems.
Para poder variar los valores numricos, texto y booleano tendremos que colocar controles para dichas
funciones, al final el panel frontal debe parecerse al que se muestra en la figura.
La terminal del control Enum lo conectaremos directamente al selector (signo de interrogacin que
aparece) del Case, luego sobre el marco del Case damos clic derecho se desplegara un men elije la opcin
Add Case for Every Value.
(b)
(a)
(c)
(e)
(d)
EJERCICIO 3:
Haga un VI que simule el vaciado y llenado de un tanque, el usuario debe decidir cundo llenar o vaciar el
tanque por medio de un selector en el panel frontal. El usuario debe decidir el valor mximo y mnimo del
tanque, cuando se alcance el valor mximo este se debe mantener hasta que se d la orden de vaciar, y
cuando este se vace debe mantenerse en el valor mnimo hasta que se la orden de llenar. Represente en
una grafica el historial del volumen del Tanque.
Solucin
Crearemos nuestro panel frontal con primero con dos controles numricos que nos servirn para
determinar los valores mximos y mnimos del tanque, un switch para controlar el vaciado o llenado del
tanque, un indicador numrico tipo tanque y un indicador grafico, un Waveform Chart ya que nos interesa
ver como varia en el tiempo la carga y descarga del tanque.
NOTA: para mostrar el display que aparece en el tanque debes dar clic derecho sobre el tanque se
desplegara un men escoge la opcin Visible tems y luego Digital Display. Para modificar la escala de
tiempo del Waveform Chart da clic derecho sobre el Chart, en el men que se despliega elije la opcin
Properties se abrir una ventana selecciona la pestaa Format and Precision y modifica el formato de la
escala de tiempo (X).
En
el
diagrama
de
bloques,
lo
primero
que
vamos
hacer
es
crear
nuestro
contador
ascendente/descendente, tal como ya lo hemos hecho en prcticas anteriores. Para lograr que el contador
se mantenga en un valor mximo o mnimo determinado vamos a utilizar en este caso dos Case.
Para mantener el valor mnimo cuando el tanque se est vaciando hay que analizar qu es lo que sucede en
el contador; para que el contador se decremente estamos restando 1 a la cantidad que guardamos en los
registros de desplazamiento (Shift Register), por lo tanto para que el valor no sigua disminuyendo le vamos
a sumar 1 por lo tanto estamos anulando el efecto del contador, este proceso se va a ejecutar siempre y
cuando el valor mnimo se haya alcanzado. Se sigue la misma filosofa para que el contador no sobrepase el
valor mximo, como el contador se va incrementando a razn de 1 cuando llegue al valor mximo debemos
restar 1 para que el efecto del contador quede anulado.
EJERCICIO 4.
Realice un VI donde se analice la amplitud de una seal senoidal, de tal manera que si la amplitud sobrepasa
o est por debajo de un porcentaje establecido por el usuario guarde dicho valor en un archivo de texto. El
programa debe de mostrar la amplitud actual de la seal senoidal, y me debe de decir cuantos datos se han
guardado en el archivo.
Solucin:
Haga su panel frontal parecido al que aparece en la figura, coloca tres controles numricos, uno para la
amplitud de la seal, otro para la frecuencia y otra para el porcentaje de error permisible para la amplitud.
Agrega 2 indicadores numricos los cuales los utilizaremos para mostrar la amplitud actual de seal senoidal
y el otro para mostrar la cantidad de datos guardados en el archivo de texto.
Para analizar y conocer el nuevo valor de amplitud que se est generando vamos a utilizar la funcin de
anlisis que se encuentra en la paleta de funciones, ControlsAnalysisTone, esta funcin es tambin un VI
Express, as que cuando lo coloques se generara una ventana en la cual configuras este VI, en nuestro caso
elige nicamente la opcin Amplitude.
Ahora, como ya conocemos el valor de la amplitud instantnea, de la seal senoidal vamos a verificar si se
encuentra dentro del rango establecido. Vamos a restar el valor actual menos el valor de amplitud
fundamental, y el valor absoluto de esta operacin lo vamos a comparar con el porcentaje establecido. En el
caso en que se sobrepase o est por debajo del porcentaje de error establecido vamos a guardar el valor.
Antes de todo tenemos que crear el archivo al que deseamos guardar tal como se muestra en la figura con
el VI, Open/Create/Replace File.vi, que se encuentra en la paleta de funciones, FunctionsAll
FunctionsFile I/O Open/Create/Replace File.vi, colcate sobre las terminal File path, da un clic derecho y
escoge la opcin CreateConstant, haz lo mismo con la terminal Function, en la terminal Function escoge la
opcin Create or Replace para que cada vez que corra su programa se reemplacen los datos de la ejecucin
anterior. Observa que nuestro programa se encuentra dentro de una estructura Squence, esto se ha hecho
de esta manera para que la creacin o reemplazo del archivo se ejecute primero y luego el resto del
programa.
10
Open/Create/Replace File.vi
Para guardar los el archivo vamos a utilizar el VI, Write To Spreadsheet File.vi, FunctionsAll FunctionsFile
I/OWrite To Spreadsheet File.vi, en la figura que sigue se muestra los nombres de las terminals que se
deben configurar de este VI, para nuestro caso nicamente hemos colocado una constante en la terminal
file path, esta constante es una constante de direccin de archivo que la puedes hallar en, FunctionsAll
FunctionsFile I/OFile ConstantsPath Constant, aqu colocaremos la direccin del lugar donde queremos
que el archivo se guarde.
Como los datos que vamos a guardar corresponden a una sola dimensin conectaremos a la terminal 1D
data.
Como queremos que cada vez que se genere un dato que este fuera del rango se agregue al archivo que ya
hemos creado la terminal append to file? Tiene que tener una constante verdadera para vaya agregando los
valores, La terminal Transpose se utiliza para generar el arreglo como fila (default) o columna, coloquemos
una constante verdadera para que se despliegue en forma de columna.
la
11
figura.
EJERCICIO 6
Haga un VI que encienda un LED por medio de un pulsador, y sea apagado por otro pulsador.
Solucin:
Este problema lo vamos a resolver de dos maneras diferentes, la primera utilizando variables locales, y la
otra utilizando variables globales.
a) Utilizando Variables locales:
Lo primero que vamos a hacer es nuestro panel frontal, con 2 pulsadores y un LED, tal como se muestra en
la figura.
12
Veamos ahora el diagrama de bloques, vamos a crear una variable local del indicador tipo LED, para crear la
variable local, da clic derecho sobre el LED, se desplegara un men elige la opcin, CreateLocal Variable.
Coloca dos variables locales del indicador LED, una dentro de cada Case, tal como se muestra en la figura,
ahora conecta un pulsador a cada Case, en el Case en el que ha conectado el pulsador de encendido
conecta una constante verdadera a la variable local en el caso verdadero, en el caso falso no hagas nada. En
el otro Case donde ha conectado el pulsador de apagado conecta una constante falsa a la variable local, en
el caso verdadero del case, en el caso falso no hagas nada.
el
pulsador
13
de
apagado.
aparecer una ventana de panel frontal aqu coloca cualquier control o indicador booleano como se
muestra en la figura 8, guarda y cierra este panel frontal.
booleanos en dicha variable global, haz tres copias de esta variable, tal como se muestra en la figura.
14
15