Anda di halaman 1dari 7

10/2/2015

HOME

VBScriptenWinCCV.7

PLC

HMI

SCADA

OPC

OTROS...

VBScriptenWinCCV.7
LasiguienteprcticasetratadesacarlerendimientoaVBScriptenWinCCV.7paradarlesolucinalosnuevosrequerimientos
paralamodificacindeunsistemaderecetasyaimplementado.
Lamodificacintratadelosiguiente:

Unejemplodeunarecetaproducidaporelprograma"RECIPES"serialasiguienteimagen,ahorabien,sianalizamos
podemosobservarquelarecetatieneuncdigoysunombreenlaprimeralinea,acontinuacin,losingredientes
referenciadosconsucdigoseguidodelpeso.

http://plchmiscadas.com/112.php

1/7

10/2/2015

VBScriptenWinCCV.7

Segnlasindicacionesnuestroprogramatienequesercapazdediferenciarentreingredientes/componentesmayoresy
menores,sudiferenciaeslasiguiente,losmayoressonlosqueseintroducendirectamenteanuestrosistemaScadayno
permiteposiblemanipulacindedatos,sonlosquesevanaintroducirsupesocomosetPointenlasdiferentestolvas,
actualmentehay9tolvasparaingredientesmayores.
Losingredientesmenoressonlosquesevanadosificarmanualmente,conlocualdelos20ingredientesqueconstanuestra
recetatenemosquediferenciarlos,comolovamosarealizar.HecreadounabasededatosenelSistemaGestordeBasesde
DatosSQLServer2005,prerequisitoparalainstalacindeWinCC,conlocualvamosahacerusodeella,hayunatabla
dedicadaalosingredientesyqueconstadelossiguientescampos

Enestatablaserunrequisitotenertodoslosingredientes,yaconenelcampoIngredienteTolva,haremosladiferenciaentre
ingredientemayoromenor.
Volviendoalarchivo*.txtexceptolaprimerayltimalinea,siempresesigueelmismopatrn,yloquemasadelantevamos
hahaceresextraerdelaprimeralineaelcdigodelarecetaysunombre,delasdems,extraeremoselcdigodel
ingredienteyelpeso,decadaingredientetendremosquehacerunaconsultaalabasededatosparasabersiestregistrado
ysiesas,sabersiesuningredienteconsideradodelosMayoresomenores.
Asuvezcomotenemos20Ingredientes,tendremosqueordenarlos,losnueveprimerossernlosquevandirectamenteala
tolvaylosrestantessonlosMenores,peroestserenunasegundaparteparanoextendersedemasiadoenest.
Vamosaempezaraverlaconfiguracinyprogramacinquehemosrealizado,loprimeroquevamosaversonlasvariables
quehemoscreado,consisteendospartes,hecreadounanuevaestructuraparatenerlosdatosdeunatolva,comoesel
cdigodelatolva,elpesodelproductooelporcentaje,asuvezunasvariablesinternasparadardealtaunnuevo
ingrediente.

http://plchmiscadas.com/112.php

2/7

10/2/2015

VBScriptenWinCCV.7

Retomantolosrequisitos,larecetasepasaraalPCdondeestaelWinCCatravsdeundispositivoextraible,estonosobligaha
realizarunaprimerafuncinparaobtenerlarutadondeestaelarchivoyelnombredelmismo,debodecir,queestaparte
realizarlaenVBScriptmehacostadobuscarbastanteinformacinyheencontradolasolucinenelsiguienteblog

Elprogramaestaestructuradodelasiguientemanera,todoloqueesposiblerealizarloenfuncionesoprodecimientossehara
asyluegoreutilizaremosestasfunciones,procedimientosconsusrespectivasllamadas,aqulallamadaalafncionpara
seleccionarlarutadelarchivo.

Yunavezseleccionadoelarchivo,tenemosguardadalarutaenlavariableruta,siguiendoconelcdigo,unaprimerapartees
crearunainstanciadeunObjetodeltipoFileSystemObjectyabrirnuestroarchivoparalectura,unavezabiertoloquevamos
hahaceresunbucleDoUntilobjText.File.AtEndOfStreampararecorrerlo.
Cadalineaqueleemos,laguardamosenunavariable,asuvezelcontenidodelalinealovamosaguardarenunarray
(arrList)haciendousodelafuncinSplit,cada","queencontremosennuestralineasereldelimitadorparacadaelemento
delarray,elejemplodelaprimeralineaseriaelsiguiente:
strNextLine="""F"",""005062"","""",""RECETA_TEST"",""082611"""
arrList(0)="""F""arrList(1)=""005062""arrList(2)=""""arrList(3)=""RECETA_TEST""arrList(4)=""082611"""
ElcondicionalIffirtline=0lousosoloparaobtenerlosdatosdeestaprimeralineayenelrestodelbucleaqunovuelvoa
entrar,yaquecambioelestadodelavariablefirtlinea1,estoquieredecirqueparaelrestodelineasentraremosenelelse

http://plchmiscadas.com/112.php

3/7

10/2/2015

VBScriptenWinCCV.7

Unavezquehemosentradoenelelse,unejemplodelalecturadeunalineaseriaelsiguiente:
strNextLine="""I"",""000038"",""04529.500"""
arrList(0)="""I""arrList(1)=""000038""arrList(2)=""04529.500"""
AquivamosahacerunbucleForpararecorrerelarrayempezandoporelindice1queesteseriaelcodigodenuestro
ingrediente,comoelarrListsolotiene2elementoscontandoel0yhemosempezadoporel1solonosquedaotroelemento,
dehayqueconelsiguientecondicionalifi=1leeremoselcodigoyconsuelseleeremoselpeso/proporcion.
AqutenemoslallamadaaotrafuncinSearchIngredientes(xxx),estafuncinloquevaharealizarescomprobarsiel
codigoestaregistradoenlabasededatos,suresultadoloobtendremosenlavariableresultqueutilizaremos
posteriormente.

AquinuestrafuncinSearchIngredientespasandolecomoargumentoselcodigoabuscar,queesloquepuedepasar?que
estregistradoono,perosinoestvamosadarlaposibilidaddeingresarlosieloperarioseleccionaquesi.

http://plchmiscadas.com/112.php

4/7

10/2/2015

VBScriptenWinCCV.7

Ahoraseguimosconelcdigoprincipal,yobtenemoselresultadodelafuncinenlavariableresult,yentramosenotro
condicionalparacubrirtodaslaposibilidadesquepuedenser:
Lovamosaregistrarresult=6hacemosvisibleunaventanadeimagendondeestaunpequeoformularioytodoslos
valoresquehemosguardadoenlasvariablelosvolvemosaponera0yaquenosepuedecargarlarecetahastaqueeste
registradoelingredienteysalimosdelafuncin
siresult=7elusuarionoquiereregistrarelingredienteyvolvemosaponertodoslosvaloresa0ysalimosdelafuncin,por
ltimosinuestroingredientesiqueest,entramosenelelse,yenesttenemosquesabersielingredienteesdelos
consideradosMayoresoMenores,parairalatolvaono,tenemosquehacerusodelafuncinOrderIngredients,elcualhar
otraconsultaalabasededatosparasaberquetipodeingredientees,unavezqueobtenemossuresultado,siesdelos
Mayoresloescribimosenlatolvacorrespondienteyasuvezenunarraydondetenemosqueguardartodoslosingredientes
porordenparaposteriormenteimprimirlos,siesMenor,solamenteseguardaenelarrayparaimprimirlo.

LafuncinOrderIngredientseslasiguiente,ycomoresultadonosdarael"Verdadero"o"Falso"

http://plchmiscadas.com/112.php

5/7

10/2/2015

VBScriptenWinCCV.7

Contodoestohastaelmomentohemosfinalizadoenelprimercondicionalifi=1,hemosestadoanalizandoelCodigo
delIngrediente,ahorapasamosalelsequeequivalealterceryltimoelementodelarrListyeselPeso

Cuandoconfirmamosquererdardealtaelnuevoingrediente,lasiguienteimagenseriaelformulario,dondeelcampode
entrada/salidadelcodigoessolodesalidayobtenemoselcodigodelafuncinprincipal.Uncampodeentradapara
introducirelnombredelingredienteyunradiobuttonparasabercomoprocesarlo,siesconsideradodelosMayores,ser
enautomatico,delocontrarioenmanual.
EnelbotonAgregar,tenemoselsiguientecdigo:

http://plchmiscadas.com/112.php

6/7

10/2/2015

VBScriptenWinCCV.7

Ahoravamosaverenfuncionamientoestaprimeraparteenunpequeovideo,solonosfaltariaguardarestarecetaenla
basededatosparasuposteriorusoypoderimprimirla,peroesoloharemosenlasiguiente.

13deMayodel2013
Sitehagustadoolainformacintehasidotil,compartelo...

Megusta

159

http://plchmiscadas.com/112.php

Twittear

17

7/7

Anda mungkin juga menyukai