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