MENÚ
  
   Curriculum Vitae
   Tesis de Maestria
   Publicaciones

   Temáticas de Interés
   Qué es Automática

Sistemas desarrollados

   Sistema FzController.
   Componente PWM.
   Componente Modbus.
   Aplicaciones SCADA.
   Sistema de control de
   curado de tabaco.

Sitios de Interés
  
   Lógica difusa
   C++ Builder
   Borland Delphi
   Libros
   
 
 
 
         Componente PWM
Componente desarrollo Borland C++ Builder 5 y Borland Delphi 5 que permite la lectura de los parámetros de los analizadores de redes PM170E de la firma Satec y los analizadores CVM-K de la firma Circutor.

El componente desarrollado permite el desarrollo de aplicaciones de adquisición de datos y supervisión para los analizadores de redes antes mencionados que no son más que equipos que miden y trasmiten de forma serie los parámetros de las redes de trasmisión eléctrica.

Para el funcionamiento el componente requiere de otro componente desarrollado que implementa el protocolo Modbus. Los equipos para los cuales fue desarrollado el componente se comunican empleando el mismo protocolo.

                

A continuación se describen las Propiedades, Métodos y Eventos que se incorporan al componente:

PROPIEDADES:

TipoPWM
Esta propiedad va a indicar el tipo de equipo del que se va a leer. Este puede ser un analizador PM 170E de la firma Satec o un analizador CVM-K de la firma Circutor. Se hace referencia empleando un tipo enumerado definido en el mismo fichero de cabecera de la unit del componente.
( enum TEquipo {SatecPM170E, CircutorCVMK} )

ModBus
Es un puntero al componente Modbus con el que se va a comunicar para realizar la lectura de los parámetros de analizador de red.

NoEquipo
Indica el número de equipo esclavo del que se van a leer los datos dentro de la red.

FechaHora
Cadena que contiene la fecha y la hora del equipo o analizador que estamos leyendo los datos

EVENTOS:

OnReadData
Es un evento de notificación que se genera inmediatamente después que son leídos los datos.

MÉTODOS:

TPWM(TComponent* Owner)
Constructor del componente.

~TPWM()
Destructor del componente

RefrescarDato(void)
Método que se invoca para realizar la lectura de los parámetros del analizador de red cuyo identificador o número de equipo en la red es el indicado en la propiedad NoEquipo. La lectura de todos los parámetros se almacena en un arreglo de datos interno para el trabajo del componente.

ReadData(unsigned short value);
Función que devuelve un tipo flotante que será el valor del parámetro que se quiere leer. Esta función no realiza la lectura directa del equipo sino que se refiere al arreglo interno de datos que tiene el componente. Para refrescar los datos de este arreglo interno se invoca la función RefrescarDato.

El parámetro value indica el índice del arreglo de datos interno del componente. Para el caso de un analizador PM 170E se puede hacer referencia a cada uno de los parámetros empleando el siguiente tipo de dato enumerado.

enum TSatecParametro {Voltage_L1, Voltage_L2, Voltage_L3,
Current_L1, Current_L2, Current_L3,
Power_L1, Power_L2, Power_L3,
Reactive_Power_L1, Reactive_Power_L2, Reactive_Power_L3,
Aparent_Power_L1, Aparent_Power_L2, Aparent_Power_L3,
Power_Factor_L1, Power_Factor_L2, Power_Factor_L3,
Average_Power_Factor, Total_Active_Power, Total_Reactive_Power,
Total_Aparent_Power, Unbalanced_Current, Frecuency,
Maximum_Demand, Acumulated_Maximum_Demand,
Maximum_Aparent_Demand, Acumulated_Aparent_Demand,
Aparent_Maximum_Demand_L1, Aparent_Maximum_Demand_L2,
Aparent_Maximum_Demand_L3, Consumption_kWH, Consumption_MWH,
Returned_Energy_kWH, Returned_Energy_MWH,
Reactive_Energy_Positive_kVARH, Reactive_Positive_Energy_MVARH,
Reactive_Energy_Negative_kVARH, Reactive_Negative_Energy_MVARH,
THD_Voltage_Phase_L1, THD_Voltage_Phase_L2, THD_Voltage_Phase_L3,
THD_Current_Phase_L1, THD_Current_Phase_L2, THD_Current_Phase_L3};

y para el caso de un analizador CVM-K se empleará el siguiente tipo enumerado definidos ambos en el fichero .h de la unit del componente:

enum TCircutorParametro {Fecha_Hora, V1, mA1, W1, varL1, varC1, PF1,
V2, mA2, W2, varL2, varC2, PF2,
V3, mA3, W3, varL3, varC3, PF3,
VavIIIN, mAavIII, WIII, VarLIII, varCIII, PFIII, Hz,
VAIII, V12, V23, V31, VavIII,
Wh_T1, varhL_T1, varhC_T1, Pd, _wh_T1, _varhL_T1, _varC_T1};


Ejemplo de Uso del Componente

En el siguiente ejemplo se emplea un componente para implementar el protocolo Modbus (MB1) y un componente PWM (PWM1) para leer los parámetros de un analizador de red Circutor CVM-K. El componente PWM se crea dinámicamente.

Evento OnCreate de la forma principal de la aplicación:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MB1->Connect(); //Se conecta el componente Modbus al puerto serie.
PWM1 = new TPWM (Form1); //Se crea el componente PWM;
PWM1->ModBus=MB1; //Se le conecta el PWM con el MB1;
PWM1->NoEquipo=1; //Se indica el número de equipo esclavo dentro de la red.

PWM1->TipoPWM= CircutorCVMK; //Se trabaja con un Circutor CVMK
PWM1->OnReadData = Button3Click; Se le asigna el evento OnReadData al componente PWM
}

//Evento OnTimer del timer Timer1. Se leen los parámetros y se muestran en Labels.
void __fastcall TForm1::Timer1OnTimer(TObject *Sender)
{
TCircutorParametro P;

PWM1->RefrescarDato(); //Se realiza la lectura de los parámetros del analizador de red
Caption=""; //Para mostrar el error en el caption de la ventana.

//Se asigna a P el nombre del parámetro a leer y se invoca el método ReadData para leer el
//parámetro del arreglo de datos interno del PWM
P=V1; Label1->Caption= PWM1->ReadData(P);
P=V2; Label2->Caption= PWM1->ReadData(P);
P=V3; Label3->Caption= PWM1->ReadData(P);
P=Hz; Label7->Caption= PWM1->ReadData(P);
P=PFIII; Label8->Caption= PWM1->ReadData(P);

}

//Muestra en el caption de la ventana el mensaje
//de error generado por el componente Modbus en caso de que exista
void __fastcall TForm1::MB1Error(TObject *Sender)
{
Caption=IntToStr(MB1->Error);
}

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
MB1->Disconnect();
delete PWM1;
}

Si desea descargar el componente desarrollado de clic aquí:

Si desea más información sobre los analizadores de redes para los cuales se desarrolló esta primera versión y otros contacte conmigo.

Ir al Inicio

 
 
Hosted by www.Geocities.ws

1