Proyecto Vb.net Balanza Cas 2001a y Logo Siemens 2013

April 12, 2018 | Author: ptksilva | Category: Basic, Programmable Logic Controller, Computer Science, Electronics, Technology
Share Embed Donate


Short Description

Descripción: PLC...

Description

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Comutaci!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+AD1

A2o' !0"3

&' ANTECEDENTES El a$ance tecnológico a ni$el mundial resulta ser acelerado con4orme a$anza el tiempo5 esto in$olucra camios y aperturas en mercados regionales5 por las e7igencias de la econom8a gloal% En tal $irtud las organizaciones se $en oligadas a ser m9s competentes e inno$adoras5 siendo una alternati$a la tecni4icación de sus procesos industriales% de producción y 4aricació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 sore el 4rame isual Basic 4ue desarrollado por Alan Cooper en "" para Microso4t5 con la intención de simpli4icar la programación utilizando un amiente 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 disponiilidad 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 4uncionailidad y campos de aplicación% >ami: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 comproar 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 otenidos en una ase de datos% Descriir 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 descriiendo 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 oser$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 descriir 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 oser$ar las lecturas del peso en gramos y acumulados5 =unto con un indicador de agu=a ;ue mostrar9 tami: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*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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.P4SOTabledapter.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=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 0utton1.Clic= nro"*@+ ( Combo0o%rticulos.Te%t 'e.P4SOS1DataSet.P4SO.,o"s.dd*nro"+ 'e.P4SOTabledapter.pdate*P4SOS1DataSet.P4SO+ Timer1.Start*+ Chart1.Series*)+.Points.ddK8*nro"*@+ nro"*++ 4nd Sub Pri$ate Sub P4SO0inding!a$igatorSa$eItem_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles P4SO0inding!a$igatorSa$eItem.Clic= 'e.alidate*+ 'e.P4SO0indingSource.4nd4dit*+ 'e.Tabledapter'anager.pdatell*'e.P4SOS1DataSet+ 4nd Sub 4nd Class

0'( CONTROL "ICRO PLC 2LO-O SIE"ENS 4+A53 A continuación descriiremos el sistema de control para el "icro PLC 2Logo Siemen# 4+A53 ;ue consiste en controlar cual;uier sistema electroneum9tico comandado por un Logo Siemens5 el cual ser9 encendido o desconectado mediante isual Basic !0"05 a=o la lirer8a 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 lirer8a Destrans4er%dll5 creada por DESM+L!F de Siemens Logo% Cae mencionar ;ue en el programa no se pueden ver las entradas y las salidas por;ue no se cuenta con “test la sentencia se dee 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 traa=o 4uturo% A continuación mediante en el diagrama de )lu=o !5 se procede a descriir la pesta2a del Panel de Control%

Diagrama de Flujo 2

La )igura 5 muestra la pesta2a de la Estad8stica en donde se indica los camios por Mantenimientos *eneral5 de Aceite tanto de la unidad )1L ?)iltro5 1egulador5 Luricador@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 descriir 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 camios por Mantenimientos *eneral5 Aceite de la unidad )1L5 aceite del compresor ;ue (an sido realizados y los ;ue deer9n 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 portTypes String Dim port!ame s String Dim dTranss !e" /ogoCommunicator Dim i s Integer ( ) Pri$ate Sub btn,e7resh_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 'y0ase./oad #TODO6 This line o7 code loads data into the #DTOSDataSet.'!T4!I'I4!TO# table. 8ou can mo$e or remo$e it as needed. 'e.'!T4!I'I4!TOTabledapter.Fill* 'e.DTOSDataSet.'!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%tIpdress.isible ( True S>uareIlluminated0utton1.4nabled ( False S>uareIlluminated0utton.4nabled ( False t%tIpdress.isible ( False Panel.isible ( False 4nd Sub Pri$ate Sub cmbPortTypes_SelectedInde%Changed* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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%tIpdress.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%tIpdress.isible ( True port!ame ( t%tIpdress.Te%t /abel.isible ( False /abel3.isible ( True S>uareIlluminated0utton1.4nabled ( True 4nd I7 4nd Sub Pri$ate Sub cmbSerialPorts_SelectedInde%Changed* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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%tIpdress_Te%tChanged*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles t%tIpdress.Te%tChanged port!ame ( t%tIpdress.Te%t 4nd Sub Pri$ate Sub btn9etPlcStatus_Clic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Pilot/ight1.Clic= Try dTrans.sendStateCommand*/ogoCommands.9eneral.PC_CO''!D_C5!94_STT4_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=* 0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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&nM $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=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles 0utton1.Clic= Timer1.Start*+ 4nd Sub Pri$ate Sub Timer1_Tic=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 5andles Timer1.Tic= Try Dime% dato1*+ s Integer ( dTrans.get,emoteIOStatus*+.Torray 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=*0yal sender s System.Ob2ect 0yal e s System.4$entrgs+ 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.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*1+ ( pba1.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!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.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*+ ( pba.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!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.DTOSDataSet.'!T4!I'I4!TO.!e",o" nro"*3+ ( pba3.ToString 'e.DTOSDataSet.'!T4!I'I4!TO.,o"s.dd*nro"+ 'e.'!T4!I'I4!TOTabledapter.pdate* 'e.DTOSDataSet.'!T4!I'I4!TO+ 4nd I7 4nd I7 4nd Sub Pri$ate Sub 0utton
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF