Proyecto Vb.net Balanza Cas 2001a y Logo Siemens 2013
Short Description
Descripción: PLC...
Description
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Comutaci!n "ae#tría en Automati$aci!n y Control Indu#trial
“Captura de Datos de una Balanza Electrónica y Control de Micro PLC Logo Siemens 0BA6 mediante isual Basic !0"0#
PRO%ECTO DE CURSO Programación A$anzada isual Basic%&et
Presentado por'
Luis Angel Buc(elli Carpio )ernando Danilo Mora al$erde Byrone Antonio Almeida Salazar
*+A,A-+.L / EC+AD1
A2o' !0"3
&' ANTECEDENTES El a$ance tecnológico a ni$el mundial resulta ser acelerado con4orme a$anza el tiempo5 esto in$olucra camios y aperturas en mercados regionales5 por las e7igencias de la econom8a gloal% En tal $irtud las organizaciones se $en oligadas a ser m9s competentes e inno$adoras5 siendo una alternati$a la tecni4icación de sus procesos industriales% de producción y 4aricación de cual;uier producto es nos por consiguiente5Las un t:cnicas 4actor prioritario ;ue marca la competiti$idad% Esta realidad conduce ;ue utilicemos e4icaz y e4icientemente la capacidad operati$a de las m9;uinas e instalaciones ;ue se dispone en determinada industria% As8 mismo en la actualidad $emos la creación de distintos so4t@5 ;ue es un lengua=e de programación orientado a o=etos resultado de la e$olución del isual Basic implementado sore el 4rame isual Basic 4ue desarrollado por Alan Cooper en "" para Microso4t5 con la intención de simpli4icar la programación utilizando un amiente de desarrollo completamente gr94ico ;ue 4acilitara programación misma% la creación de inter4aces gr94icas y en cierta medida la
(' )USTIFICACION TÉCNICA En nuestro pa8s la e$olución producti$a est9 considerando los a$ances tecnológicos y la industria ecuatoriana necesita ser competente5 aumentando su producti$idad de una 4orma tal ;ue pueda competir con el mercado internacional en cuanto sus e7igencias y est9ndares% La utilización de e;uipos electrónicos como' los Micro PLCs5 Balanzas $a en aumento5 pero :sta tecnolog8a en algunas ocasiones5 no se encuentra lo su4icientemente respaldada por una gestión de mantenimiento adecuada ;ue les garantice de un laóptimo 4uncionamiento de los e;uipos5 as8 como su disponiilidad y cumplimiento 4unción para la ;ue 4ueron dise2ados% Lo ;ue se pretende con :ste estudio es analizar5 controlar y $incular a un Micro PLC ?Logo Siemens 0BA6@ y a una Balanza electrónica mediante la aplicación de isual Basic !0"0 para conocer las alternati$as de cone7ión5 4uncionailidad y campos de aplicación% >ami:n se en4oca como una gu8a de estudio5 ya ;ue se pueden utilizar ancos de estudio teórico pr9cticos para sistemas de ense2anza en automatización industrial5 apoyando al desarrollo tecnológico y parala 4ormación de 4uturos ingenieros%
*' O+)ETI,OS *'& -ENERAL Controlar un Micro PLC ?Logo Siemens 0BA6@ y una Balanza Electrónica mediante la Aplicación de isual Basic !0"0%
*'( ESPEC.FICOS
Pesar cual;uier o=eto de (asta 0 g en una alanza electrónica y comproar la medición de la pantalla con la medición del programa en isual Basic !0"0% Controlar cual;uier sistema electroneum9tico comandado por un Logo Siemens5 el cual ser9 encendido o desconectado mediante isual Basic !0"0% 1egistrar $alores otenidos en una ase de datos% Descriir el 4uncionamiento de los Programas mediante diagramas de 4lu=o% Aplicar lo aprendido en el curso de Programación A$anzada isual Basic%&E>%
4.
DESCRIPCI/N DEL PRO%ECTO
0'& +ALAN1A ELECTRONICA Empezaremos descriiendo el sistema de control y programación de la Balanza electrónica%
Figura 1
La )igura "5 muestra el dise2o del programa $isto desde el entorno de $isual Basic !0"0 en donde se puede oser$ar el puerto a seleccionar5 las lecturas del peso en g y Acumulados5 es decir el peso ;ue se $a adicionando desde el peso inicial% El o=eti$o es controlar ;ue la medición en la pantalla de la alanza sea la misma en $isual Basic y luego los $alores de peso y acumulados se registrar9n en una ase de datos% A
continuación mediante un diagrama de 4lu=o ?er diagrama de 4lu=o "@ se procede a descriir la programación realizada%
Diagrama de Flujo 1 La )igura !5 muestra el dise2o del programa $isto desde el entorno de $isual Basic !0"0 en donde se puede oser$ar las lecturas del peso en gramos y acumulados5 =unto con un indicador de agu=a ;ue mostrar9 tami:n el peso total acumulado% As8 mismo muestra una arra ;ue indica la cantidad de registros de datos ;ue (an sido almacenados%
Figura 2
La )igura 35 muestra la ase de datos en Microso4t Acces5 ;ue (a sido registrada en el programa5 de acuerdo al art8culo y pesos actuales y acumulados%
Figura 3
0'&'& PRI"ERA PRO-RA"ACI/N 2+ ALAN1A ELECTR/NICA3' A continuación se muestra el primer Programa 1ealizado en isual Basic !0"0% Imports System Imports System.IO.Ports Imports System.Threading Public Class Form1 Dim port_com3 s !e" SerialPort #$ariable para cone%i&n puerto serial CO'3# Dim peso s Double ( ) #$alor a medirse# Dim data_com s String #$ariable para leer el dato del puerto CO'3# Dim $alor*+ s String #$alor medido# Dim ne s !e" Integer Dim i s Integer ( ) Dim nro" s Data,o" #a-adir las a la base de datos# Pri$ate Sub Form1_/oad*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 'y0ase./oad #TODO6 This line o7 code loads data into the #P4SOS1DataSet.P4SO# table. 8ou can mo$e or remo$e it as needed. 'e.P4SOTabledapter.Fill*'e.P4SOS1DataSet.P4SO+ Dim puerto_com s String #lectura como cadena de caracteres# puerto_com ( SerialPort.9etPort!ames*1+ /ist0o%1.Items.dd*puerto_com+ port_com3.Port!ame ( puerto_com port_com3.0aud,ate ( :;)) port_com3.Parity ( Parity.!one port_com3.Data0its ( < port_com3.Stop0its ( 1 port_com3.5andsha=e ( 5andsha=e.,e>uestToSend port_com3.Open*+ For 2 ( ) To P4SOS1DataSet.P4SO.,o"s.Count ? 1 Combo0o%rticulos.Items.dd*P4SOS1DataSet.P4SO.,o"s*2+.Item*@++ !e%t Timer1.Start*+ 4nd Sub Pri$ate Sub Timer1_Tic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Timer1.Tic= Dim n ( )n s !e" Integer Ahile n ( ) n ( port_com3.0ytesTo,ead #lee los bytes datos >ue $ienen del puerto# I7 n B ) Then data_com ( port_com3.,ead/ine I7 *data_com.ToString.Trim./ength B )+Then #con$ierte en cadena de caracteres y elimina espacios $acios# $alor ( data_com.Split* 6+ #solo lee lo >ue est despuEs de los dos puntos# /ist0o%.Items.dd*al*$alor*1+.ToString++#a-ade a la lista los pesos en 7orma de $alor numerico# peso ( peso G al*$alor*1++ #peso acumulado# T%tSuma.Te%t ( peso DigitalPanel'eter1.alue ( al*$alor*1++ H 1))) #display P4SO# nro" ( 'e.P4SOS1DataSet.P4SO.!e",o" nro"*+ ( CDbl*al*$alor*1++ H 1)))+ #a-ade peso a base de datos nro"*3+ ( CDbl*peso H 1)))+ #a-ade el acumulado del peso a base de datos
nro"*@+ ( Combo0o%rticulos.Te%t Timer1.4nabled ( False I7 peso B( 1)) Then Progress0ar1.alue ( ) peso ( ) 4nd I7 4nd I7 4nd I7 4nd Ahile
#a-ade el nombre de articulo a base de datos
DigitalPanel'eter.alue ( pesocircular H 1))) P4SO #display C'/DO# 9auge1.alue ( peso #DISP/8 C'/DO# Progress0ar1.'a%imum ( 1)) #seteo de m%ima cantidad a medir# I7 peso J 1)) Then Progress0ar1.alue ( peso #peso acumulado en barra de progreso# 4nd I7 4nd Sub Pri$ate Sub 0utton1_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 0utton1.Clic= nro"*@+ ( Combo0o%rticulos.Te%t 'e.P4SOS1DataSet.P4SO.,o"s.dd*nro"+ 'e.P4SOTabledapter.pdate*P4SOS1DataSet.P4SO+ Timer1.Start*+ Chart1.Series*)+.Points.ddK8*nro"*@+ nro"*++ 4nd Sub Pri$ate Sub P4SO0inding!a$igatorSa$eItem_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles P4SO0inding!a$igatorSa$eItem.Clic= 'e.alidate*+ 'e.P4SO0indingSource.4nd4dit*+ 'e.Tabledapter'anager.pdatell*'e.P4SOS1DataSet+ 4nd Sub 4nd Class
0'( CONTROL "ICRO PLC 2LO-O SIE"ENS 4+A53 A continuación descriiremos el sistema de control para el "icro PLC 2Logo Siemen# 4+A53 ;ue consiste en controlar cual;uier sistema electroneum9tico comandado por un Logo Siemens5 el cual ser9 encendido o desconectado mediante isual Basic !0"05 a=o la lirer8a Destras4er%dll
Figura 4
La )igura F5 muestra el dise2o del programa $isto desde el entorno de $isual Basic !0"0 en la pesta2a Panel de Control5 siguiendo los par9metros de la lirer8a Destrans4er%dll5 creada por DESM+L!F de Siemens Logo% Cae mencionar ;ue en el programa no se pueden ver las entradas y las salidas por;ue no se cuenta con “test la sentencia se dee en$iar;ueda al Micro LCpropuesta logo para para ;ue :ste responda ?comando online#@5;ue en consecuencia como me=orar :sta programación en un traa=o 4uturo% A continuación mediante en el diagrama de )lu=o !5 se procede a descriir la pesta2a del Panel de Control%
Diagrama de Flujo 2
La )igura 5 muestra la pesta2a de la Estad8stica en donde se indica los camios por Mantenimientos *eneral5 de Aceite tanto de la unidad )1L ?)iltro5 1egulador5 Luricador@5 as8 como del compresor% De igual manera indica la Presión del sistema en el manómetro5 4ec(a y (ora del Gltimo encendido% Cuando se e=ecuta el programa autom9ticamente se guardan los registros en una ase de datos%
Figura 5
A continuación en el diagrama de 4lu=o 3 se procede a descriir el 4uncionamiento de :sta pesta2a%
Diagrama de Flujo 3
Figura 6
La )igura 65 muestra la pesta2a de la Base de Datos en donde se indican los registros ?4ec(a y (ora@ los camios por Mantenimientos *eneral5 Aceite de la unidad )1L5 aceite del compresor ;ue (an sido realizados y los ;ue deer9n realizarse% A continuación5 en la )igura H5 se muestra la ase de datos almacenada en Microso4t Access%
Figura 7
0'('& SE-UNDA PRO-RA"ACI/N 2CONTROL "ICRO PLC3'
)inalmente se muestra el segundo Programa 1ealizado en isual Basic !0"0% Imports D esTrans7er # libreria creada por D4S'/@ Siemens L/O9O Public Class Form1 Dim datahoy s Date Dim contador s Integer Dim contador s Integer Dim contador3 s Integer Dim con s OleDb.OleDbConnection Dim dato1 s /ong Dim portTypes String Dim port!ame s String Dim dTranss !e" /ogoCommunicator Dim i s Integer ( ) Pri$ate Sub btn,e7resh_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles btn,e7resh.Clic= re7reshPorts*+ 4nd Sub Pri$ate Sub re7reshPorts*+ For 4ach dPort!ame s String In 'y.Computer.Ports.SerialPort!ames#Conseguir todos los puertos disponibles. cmbSerialPorts.Items.dd*dPort!ame+ !e%t 4nd Sub Pri$ate Sub Form1_/oad*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 'y0ase./oad #TODO6 This line o7 code loads data into the #DTOSDataSet.'!T4!I'I4!TO# table. 8ou can mo$e or remo$e it as needed. 'e.'!T4!I'I4!TOTabledapter.Fill* 'e.DTOSDataSet.'!T4!I'I4!TO+ cmbPortTypes.Items.dd* /ogoCommands.PortTypes .Serial_Port+ cmbPortTypes.Items.dd*/ogoCommands.PortTypes.4thernet_Port+ cmbSerialPorts.isible ( False btn,e7resh.isible ( False /abel.isible ( False /abel3.isible ( False t%tIpdress.isible ( True S>uareIlluminated0utton1.4nabled ( False S>uareIlluminated0utton.4nabled ( False t%tIpdress.isible ( False Panel.isible ( False 4nd Sub Pri$ate Sub cmbPortTypes_SelectedInde%Changed* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles cmbPortTypes.SelectedInde%Changed I7 cmbPortTypes.Te%t (/ogoCommands.PortTypes.Serial_Port Then portType ( cmbPortTypes.Te%t cmbSerialPorts.isible ( True btn,e7resh.isible ( True t%tIpdress.isible ( False /abel.isible ( True /abel3.isible ( False re7reshPorts*+ 4lseI7 cmbPortTypes.Te%t (/ogoCommands.PortTypes.4thernet_Port Then portType ( cmbPortTypes.Te%t cmbSerialPorts.isible ( False btn,e7resh.isible ( False t%tIpdress.isible ( True port!ame ( t%tIpdress.Te%t /abel.isible ( False /abel3.isible ( True S>uareIlluminated0utton1.4nabled ( True 4nd I7 4nd Sub Pri$ate Sub cmbSerialPorts_SelectedInde%Changed* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles cmbSerialPorts.SelectedInde%Changed I7 cmbSerialPorts.Te%t ( !inguno Then S>uareIlluminated0utton1.4nabled ( False S>uareIlluminated0utton.4nabled ( False
4lse port!ame ( cmbSerialPorts.Te%t S>uareIlluminated0utton1.4nabled ( True S>uareIlluminated0utton.4nabled ( False 4nd I7 4nd Sub Pri$ate Sub t%tIpdress_Te%tChanged*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles t%tIpdress.Te%tChanged port!ame ( t%tIpdress.Te%t 4nd Sub Pri$ate Sub btn9etPlcStatus_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles btn9etPlcStatus.Clic= Dim plcStatus s Integer Try plcStatus ( dTrans.getDe$iceState*+ I7 plcStatus ( /ogoCommands.9eneral./O9O_CO''!D_P/C_,! Then t%t'essage.ppendTe%t*P/C est en 'ODO ,! M $bCr/7+ 4lseI7 plcStatus ( /ogoCommands.9eneral./O9O_CO''!D_P/C_STOP Then t%t'essage.ppendTe%t*P/C est en 'ODO STOP M $bCr/7+ 4lse t%t'essage.ppendTe%t*'ensa2e desconocido6 M plcStatus.ToString M $bCr/7+ 4nd I7 Catch e% s TK4%ception t%t'essage.ppendTe%t*4rror6 M e%.'essage M $bCr/7+ Catch e% s 4%ception t%t'essage.ppendTe%t*4rror Desconocido6 M e%.'essage M $bCr/7+ 4nd Try 4nd Sub Pri$ate Sub Pilot/ight1_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Pilot/ight1.Clic= Try dTrans.sendStateCommand*/ogoCommands.9eneral.PC_CO''!D_C5!94_STT4_TO_,!+ t%t'essage.ppendTe%t*Cambiado a 'ODO ,! M $bCr/7+ 9auge1.alue ( CInt*'ath.Ceiling*,nd*+ H N+ G uareIlluminated0utton1.4nabled ( False S>uareIlluminated0utton.4nabled ( True datahoy ( !o" Te%t0o%.Te%t ( datahoy
Panel.isible ( True Catch e% s TK4%ception t%t'essage.ppendTe%t*F//O CO!4KIO!6 M e%.'essage M $bCr/7+ Catch e% s 4%ception t%t'essage.ppendTe%t*4rror Cone%i&n M e%.'essage M $bCr/7+ 4nd Try 4nd Sub Pri$ate Sub S>uareIlluminated0utton_Clic=* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles S>uareIlluminated0utton.Clic= Try I7 dTrans.diconnect*+ Then t%t'essage.ppendTe%t*Desconectado M $bCr/7+ S>uareIlluminated0utton1.4nabled ( True S>uareIlluminated0utton.4nabled ( False Panel.isible ( False 4lse t%t'essage.ppendTe%t*Fall& la Desconeci&nM $bCr/7+ 4nd I7 Catch e% s TK4%ception t%t'essage.ppendTe%t*Falla6 M e%.'essage M $bCr/7+ Catch e% s 4%ception t%t'essage.ppendTe%t*4rror Desconocido6 M e%.'essage M $bCr/7+ 4nd Try 4nd Sub Pri$ate Sub 0utton1_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 0utton1.Clic= Timer1.Start*+ 4nd Sub Pri$ate Sub Timer1_Tic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Timer1.Tic= Try Dime% dato1*+ s Integer ( dTrans.get,emoteIOStatus*+.Torray Catch s System.IO.IO4%ception 'sg0o%*4,,O,+ 4nd Try i(iG1 I7 i B ; Then Timer1.Stop*+ 4nd I7 4nd Sub Pri$ate Sub Timer_Tic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Timer.Tic= Dim pba1 s String Dim pba s String Dim pba3 s String Dim nro" s Data,o" I7 contador3 J N)) Then I7 contador J 3)) Then I7 contador J 1)) Then Progress0ar1.alue ( contador contador ( contador G1 I7 Progress0ar1.alue ( ::Then Progress0ar1.alue( ) contador ( ) pba1 ( !o".ToShortDateString nro" ( 'e.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*1+ ( pba1.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!T4!I'I4!TO+ 4nd I7 4nd I7 Progress0ar.alue( contador contador ( contador G 1 I7 Progress0ar.alue ( ::Then Progress0ar.alue( ) contador ( )
pba ( !o".ToShortDateString nro" ( 'e.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*+ ( pba.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!T4!I'I4!TO+ 4nd I7 4nd I7 Progress0ar3.alue( contador3 contador3 ( contador3 G 1 I7 Progress0ar3.alue ( @::Then Progress0ar3.alue( ) contador3 ( ) pba3 ( !o".ToShortDateString nro" ( 'e.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*3+ ( pba3.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!T4!I'I4!TO+ 4nd I7 4nd I7 4nd Sub Pri$ate Sub 0utton
View more...
Comments