Está en la página 1de 4

!ESTE ARCHIVO PERMITE EJECUTAR FLUJOS DE CARGA !Y DEPOSITA LOS RESULTADOS EN LA HOJA1 DE EXCEL, !

ADEMAS EJECUTA MACROS DE EXCEL DESDE EL DIGSILENT object O,C,flujos; set S; int i,n,a,iTmp; string nombre, acell,s2,s3; flujos = GetCaseObject('Balanced.ComLdf'); ClearOutput(); C = ActiveProject(); flujos.Execute(); if (iExcel) { iTmp = ddeOpen('', 'Excel', 'Hoja1'); if (.not.iTmp) { ! excel can be opened. Now close and connect to a specific sheet ddeClose(); iTmp = ddeOpen('', 'Excel', 'Hoja1'); if (iTmp) { Info('No Sheet1 yet, creating one...'); iTmp = ddeOpen('', 'Excel', 'System'); if (iTmp) { printf('Cannot open DDE to Excel'); } else { ! create a nueva hoja Hoja1 ddeExe('[New(1)]'); ddeClose(); iTmp = ddeOpen('', 'Excel', 'Macro1'); } } } if (iTmp) { Error('Could not open DDE connection'); exit(); } } printf('%s ','Ha finalizado la apertura del Excel'); ddeExe('[Run("Limpia")]'); ! ClearOutput(); !Lectura de datos en lineas S = AllRelevant(); O = S.Firstmatch('ElmLne'); i = 3; while (O) { nombre = O:loc_name; s3 =O:cpZone; a = O:outserv; O.ShowFullName(); if (a = 0){ i+=1; acell = sprintf('F%dC1',i); ddePoke(acell,nombre); acell = sprintf('F%dC21',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:c:loading); acell= sprintf('F%dC2',i); ddePoke(acell,s2); !Perdidas en lineas s2 = sprintf('%f',O:c:Losses); acell= sprintf('F%dC3',i); ddePoke(acell,s2); !Perdidas en lines s2 = sprintf('%f',O:m:Ploss:bus1); acell= sprintf('F%dC22',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Qloss:bus1); acell= sprintf('F%dC23',i); ddePoke(acell,s2); !Flujo en lines s2 = sprintf('%f',O:m:P:bus1);

acell= sprintf('F%dC24',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Q:bus1); acell= sprintf('F%dC25',i); ddePoke(acell,s2); } O = S.Nextmatch(); }

!Lectura de datos en Autotransformadores S = AllRelevant(); O = S.Firstmatch('ElmTr3'); i = 3; while (O) { nombre = O:loc_name; s3 = O:cpZone; a = O:outserv; if (a = 0){ i+=1; acell = sprintf('F%dC4',i); ddePoke(acell,nombre); printf('%s %s',acell,nombre); acell = sprintf('F%dC32',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:c:loading); acell= sprintf('F%dC5',i); ddePoke(acell,s2); !RESULTADOS DE FLUJOS Y PERDIDAS acell = sprintf('F%dC37',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:m:Ploss:bushv); acell= sprintf('F%dC38',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Qloss:bushv); acell= sprintf('F%dC39',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:P:bushv); acell= sprintf('F%dC40',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Q:bushv); acell= sprintf('F%dC41',i); ddePoke(acell,s2); s2 = sprintf('%f',O:n:Ul:bushv); acell= sprintf('F%dC42',i); ddePoke(acell,s2); s2 = sprintf('%f',O:n:Ul:buslv); acell= sprintf('F%dC43',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:cosphisum:bushv); acell= sprintf('F%dC44',i); ddePoke(acell,s2); } O = S.Nextmatch(); }

!Lectura de datos en Nodos S = AllRelevant(); O = S.Firstmatch('ElmTerm'); i = 3; while (O) { nombre = O:loc_name; s3 =O:cpZone; a = O:outserv; if (a = 0){ i+=1; acell= sprintf('F%dC7',i); ddePoke(acell,nombre);

printf('%s %s',acell,nombre); s2 = sprintf('%f',O:m:u); acell= sprintf('F%dC8',i); ddePoke(acell,s2); } O = S.Nextmatch(); } !Lectura de datos en Transformadores S = AllRelevant(); O = S.Firstmatch('ElmTr2'); i = 3; while (O) { nombre = O:loc_name; s3 =O:cpZone; a = O:outserv; if (a = 0){ i+=1; acell = sprintf('F%dC10',i); ddePoke(acell,nombre); acell = sprintf('F%dC28',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:c:loading); acell= sprintf('F%dC11',i); ddePoke(acell,s2); !RESULTADOS DE FLUJOS Y PERDIDAS acell = sprintf('F%dC28',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:m:Ploss:bushv); acell= sprintf('F%dC29',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Qloss:bushv); acell= sprintf('F%dC30',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:P:bushv); acell= sprintf('F%dC31',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:Q:bushv); acell= sprintf('F%dC32',i); ddePoke(acell,s2); s2 = sprintf('%f',O:n:Ul:bushv); acell= sprintf('F%dC33',i); ddePoke(acell,s2); s2 = sprintf('%f',O:n:Ul:buslv); acell= sprintf('F%dC34',i); ddePoke(acell,s2); s2 = sprintf('%f',O:m:cosphisum:bushv); acell= sprintf('F%dC35',i); ddePoke(acell,s2); } O = S.Nextmatch(); } !Lectura de datos en Zonas S = AllRelevant(); O = S.Firstmatch('ElmZone'); i = 3; while (O) { nombre = O:loc_name; i+=1; acell= sprintf('F%dC13',i); ddePoke(acell,nombre); s2 = sprintf('%f',O:c:GenP); acell= sprintf('F%dC14',i); ddePoke(acell,s2); s2 = sprintf('%f',O:c:GenQ); acell= sprintf('F%dC15',i); ddePoke(acell,s2); s2 = sprintf('%f',O:c:TotLoadP); acell= sprintf('F%dC16',i); ddePoke(acell,s2); s2 = sprintf('%f',O:c:TotLoadQ); acell= sprintf('F%dC17',i); ddePoke(acell,s2); s2 = sprintf('%f',O:c:LossP); acell= sprintf('F%dC18',i); ddePoke(acell,s2);

s2 = sprintf('%f',O:c:LossQ); acell= sprintf('F%dC19',i); ddePoke(acell,s2); O = S.Nextmatch(); printf('%s ',nombre); } ddeExe('[Run("Copia")]');

También podría gustarte