Академический Документы
Профессиональный Документы
Культура Документы
El sistema de telemetría de Isagen, está compuesto por una gran cantidad de equipos electrónicos,
los cuales miden, almacenan y envían las diferentes variables hídro-climatológicas en tiempos
determinados; los cuales son usados para cuantificar la materia prima de un central Hidroeléctrica.
OBJETIVO
El objetivo principal de éste procedimiento es el de poder comparar los datos de los sistemas de
respaldo (Thalimedes y Satelital) a través del sistema principal (Radial), en tiempo real con una
resolución de diez (10) minutos; y ayudar a la toma de decisiones a tiempo sobre los correctivos a
realizar en las diferentes estaciones hidrométricas.
OBJETIVOS ESPECÍFICOS
Este documento también indica la forma de realizar las conexiones entre los sistemas de respaldo
y el principal, usando gráficos y esquemas de cableado, cada uno con su respectiva explicación.
Los datos recibidos en las centrales son analizados, procesados y comparados de forma
independiente, ya que los medios de transmisión son diferentes. Estos datos pueden llegar a tener
diferencias considerables, los cuales generan incertidumbre. Dependiendo del criterio de cada
persona involucrada en el análisis de dicha información, realiza una acción correctiva.
JUSTIFICACIÓN
Basados en la necesidad de brindar una información de alta calidad a nuestros clientes, fue
desarrollado e implementado un procedimiento el cual permite integrar los diferentes sistemas de
respaldo a través del sistema radial, que actualmente es considerado el principal.
Con la aplicación de este procedimiento obtendremos datos con resolución de diez minutos, los
cuales podrán ser analizados y comparados en gráficos detallados donde se mostrará el
comportamiento de los sensores (Nivel y Precipitación) y poder determinar cuál de los sistemas
presenta inconsistencias; ayudando a una toma de decisiones más rápida y efectiva.
Con un portátil que tenga instalada la aplicación Loggernet, se escoge la herramienta “Setup”:
Dando click sobre el ícono “Setup” aparece la ventana de configuración, donde se agrega un
ComPort y se configura como COM1, se activa la casilla de verificación Call-Back Enable tal como
aparece en la imagen:
Por último del PakBusPort se agrega un CR800 y se configuran tanto el nombre así como el
número PakBus de la estación y se activa la casilla de verificación Call-Back Enable, para finalizar se
da click en el ícono Apply:
Los programas instalados en los datalogger de las estaciones hidrométricas, tienen una estructura
similar a la que se explica a continuación; los campos resaltados en amarillo son los cuales deben
ser adicionados al programa.
Dando click sobre el ícono CRBasic Editor, se abre la ventana de edición y allí se da click sobre el
ícono abrir :
Se busca la ruta donde quedó almacenado el programa que tiene el datalogger, se selecciona y se
da click sobre el ícono abrir:
Dim Results(2)
Dim rTime(9)
Dim FRun
Dim Apertura
Dim NivelObsAnt
Dim blnNivelCambio
Dim blnAlarmaSilencio
Dim blnAlarmaTiempo
Dim blnApertura
Dim blnRain1hMax
Dim bln_Dif_Rain
Dim blnNivelMax
Dim blnNivelMin
Dim blnHumedadMax
Dim blnHum_Sat_Max
Dim blnFallaBateria
Dim blnFallaPanel
Dim blnFallaDato
Dim blnCambioBrusco
Public NivelAnterior
Public blnAlerta
Public blnAlarmaRemota
Public VoltBatt
Public VoltBattMin
Public VoltPanel
Public VoltPanelMin
Public Humedad
Public HumedadMax
Public Nivel
Public Nivel_med
Public Nivel_obs
Public Nivel_off
Public NivelMax
Public NivelMin
Public NivelSensor
Public SensNivelInst
Public Rain_mm
Public RainTab
Public Rain1hMax
Public Caudal
Public Nivel_TH
Public K1
Public K2
Public K3
Public Prueba
Public Hum_PrbRead
Public Nivel_PrbRead
Public Rain_PrbRead
Public VPanel_PrbRead
DataTable(Datos10m,True,-1)
DataInterval(0,10,Min,10)
Average(1,Nivel,IEEE4,False)
FieldNames("Nivel_AVG")
Average(1,Nivel_TH,IEEE4,False)
FieldNames("Nivel_TH_AVG")
Average(1,Nivel_Sat,IEEE4,False)
FieldNames("Nivel_Sat_AVG")
Totalize (1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_Tot")
Totalize (1,Rain_Sat_mm,IEEE4,False)
FieldNames("Rain_mm_Sat_Tot")
Average (1,Caudal,IEEE4,False)
FieldNames("Q_AVG")
Average (1,Temp_S,IEEE4,False)
FieldNames("Temp_S")
EndTable
DataTable(Datos1h,True,-1)
DataInterval(0,60,Min,10)
Average(1,Nivel,IEEE4,False)
FieldNames("Nivel_AVG")
Maximum(1,Nivel,IEEE4,False,False)
FieldNames("Nivel_MAX")
Totalize(1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_TOT1h")
EndTable
DataTable(Comp1h,True,-1)
DataInterval(0,60,Min,10)
Average(1,Nivel,IEEE4,False)
FieldNames("Nivel_AVG")
Average(1,Nivel_TH,IEEE4,False)
FieldNames("Nivel_TH_AVG")
Average(1,Nivel_Sat,IEEE4,False)
FieldNames("Nivel_Sat_AVG")
DataTable(Datos1d,True,-1)
DataInterval(0,1,Day,10)
Average (1,Caudal,IEEE4,False)
FieldNames("Q_AVG_1d")
Totalize(1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_TOT")
Totalize(1,Rain_Sat_mm,IEEE4,False)
FieldNames("Rain_mm_Sat_TOT")
EndTable
DataTable(Mtto10m,True,-1)
DataInterval(0,10,Min,10)
Minimum(1,VoltPanel,IEEE4,False,False)
FieldNames("VoltPanelMin")
Minimum(1,VoltBatt,IEEE4,False,False)
FieldNames("VoltBattMin")
Maximum(1,Humedad,IEEE4,False,False)
FieldNames("HumedadMax")
Maximum(1,Humedad_Sat,IEEE4,False,False)
FieldNames("Humedad_Sat_Max")
EndTable
DataTable(Alertas,blnAlerta,-1)
DataInterval(0,10,Sec,1)
Sample(1,blnNivelMax,IEEE4)
Sample(1,blnNivelMin,IEEE4)
Sample(1,blnFallaBateria,IEEE4)
Sample(1,blnFallaPanel,IEEE4)
Sample(1,blnFallaDato,IEEE4)
Sample(1,blnApertura,IEEE4)
Sample(1,blnRain1hMax,IEEE4)
Sample(1,bln_Dif_Rain,IEEE4)
Sample(1,blnHumedadMax,IEEE4)
Sample(1,blnHum_Sat_Max,IEEE4)
Sample(1,blnCambioBrusco,IEEE4)
Sample(1,Nivel,IEEE4)
Sample(1,VoltBatt,IEEE4)
Sample(1,VoltPanel,IEEE4)
Sample(1,Humedad,IEEE4)
Sample(1,Humedad_Sat,IEEE4)
EndTable
BeginProg
Scan(10,Sec,1,0)
RealTime(rTime)
Battery(VoltBatt)
VoltSe(Humedad,1,mV2500,1,1,0,_60Hz,0.1,0)
VoltSe(Humedad_Sat,1,mV2500,5,1,0,_60Hz,0.1,0)
VoltDiff(Nivel_med,1,mV2500,2,True,0,_60Hz,0.009375,-3.5)
PulseCount(Rain_mm,1,1,2,0,0.1,0)
PulseCount(Rain_Sat_mm,1,2,2,0,0.1,0)
VoltSe (VoltPanel,1,mV5000,2,False,0,_60Hz,0.0041,0)
SDI12Recorder(Nivel_TH,3,1,"M!",1.0,0)
SDI12Recorder(Results(),3,0,"M!",1.0,0)
SDI_sat = Results1
If Prueba = 1 Then
Humedad = Hum_PrbRead
Nivel_med = Nivel_PrbRead
Rain_mm = Rain_PrbRead
VoltPanel = VPanel_PrbRead
VoltBatt = VBatt_PrbRead
EndIf
blnAlerta = 0
Hora = Hour
If FRun = 0 Then
blnAlerta = 1
Nivel_obs = 1
FRun = 1
NivelMax = 4
NivelMin = 0.10
VoltPanelMin = 12
VoltBattMin = 11.5
Rain1hMax = 40
HumedadMax = 60
Hum_Sat_Max = 60
SensNivelInst = 1
K1 = 44.88
K2 = 18.086
K3 = 5.9934
Sensor = 1
Dif_Rain_Max = 1
EndIf
'--------------------------------------------------
If ABS(NivelAnterior - Nivel)/Nivel > 0.3 Then
If blnCambioBrusco = 0 Then blnAlerta = 1
blnCambioBrusco = 1
Else
If blnCambioBrusco = 1 Then blnAlerta = 1
blnCambioBrusco = 0
EndIf
'--------------------------------------------------
NivelAnterior = Nivel
If SensNivelInst = 1 Then
blnNivelCambio = Nivel_obs - NivelObsAnt
If blnNivelCambio = 0 Then
Nivel = Nivel_med + Nivel_off
Else
Nivel_off = Nivel_obs - Nivel_med
Nivel = Nivel_med + Nivel_off
NivelObsAnt = Nivel_obs
EndIf
Else
Nivel = -99
EndIf
'--------------------------------------------------
If Sensor = 1 Then
Nivel = Nivel
Sensor_Actual = "Radial"
EndIf
If Sensor = 2 Then
Nivel = Nivel_TH
Sensor_Actual = "Thalimedes"
EndIf
If Sensor = 3 Then
CallTable(Datos10m)
CallTable(Datos1h)
SendData (ComME,4094,4094,Comparacion1h)
SendData (ComME,4094,4094,Datos1h)
SendData (ComME,4094,4094,Datos10m)
SendData (ComME,4094,4094,Mtto10m)
SendData (ComME,4094,4094,Datos1d)
SendData (ComME,4094,4094,Alertas)
NextScan
EndProg
Dim Results(2)
Dim rTime(9)
Dim FRun
Dim Apertura
Dim NivelObsAnt
Dim blnNivelCambio
Dim blnAlarmaSilencio
Dim blnAlarmaTiempo
Dim blnApertura
Dim blnRain1hMax
Dim bln_Dif_Rain
Dim blnNivelMax
Dim blnNivelMin
Dim blnHumedadMax
Dim blnHum_Sat_Max
Dim blnFallaBateria
Dim blnFallaPanel
Dim blnFallaDato
Dim blnCambioBrusco
DataTable(Datos10m,True,-1)
DataInterval(0,10,Min,10)
Average(1,Nivel_Rad,IEEE4,False)
FieldNames("Nivel_Rad_AVG")
Average(1,Nivel_TH,IEEE4,False)
FieldNames("Nivel_TH_AVG")
Average(1,Nivel_Sat,IEEE4,False)
FieldNames("Nivel_Sat_AVG")
Totalize (1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_Tot")
Totalize (1,Rain_Sat_mm,IEEE4,False)
FieldNames("Rain_mm_Sat_Tot")
Average (1,Caudal,IEEE4,False)
FieldNames("Q_AVG")
Average (1,Temp_S,IEEE4,False)
FieldNames("Temp_S")
EndTable
DataTable(Datos1h,True,-1)
DataInterval(0,60,Min,10)
Average(1,Nivel,IEEE4,False)
FieldNames("Nivel_AVG")
Maximum(1,Nivel,IEEE4,False,False)
FieldNames("Nivel_MAX")
Totalize(1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_TOT1h")
EndTable
DataTable(Datos1d,True,-1)
DataInterval(0,1,Day,10)
Average (1,Caudal,IEEE4,False)
FieldNames("Q_AVG_1d")
Totalize(1,Rain_mm,IEEE4,False)
FieldNames("Rain_mm_TOT")
Totalize(1,Rain_Sat_mm,IEEE4,False)
FieldNames("Rain_mm_Sat_TOT")
EndTable
DataTable(Mtto10m,True,-1)
DataInterval(0,10,Min,10)
Minimum(1,VoltPanel,IEEE4,False,False)
FieldNames("VoltPanelMin")
Minimum(1,VoltBatt,IEEE4,False,False)
FieldNames("VoltBattMin")
Minimum(1,VoltBat_Sat,IEEE4,False,False)
FieldNames("VoltBat_Sat")
Maximum(1,Humedad,IEEE4,False,False)
FieldNames("HumedadMax")
Maximum(1,Humedad_Sat,IEEE4,False,False)
FieldNames("Humedad_Sat_Max")
EndTable
DataTable(Alertas,blnAlerta,-1)
DataInterval(0,10,Sec,1)
Sample(1,blnNivelMax,IEEE4)
Sample(1,blnNivelMin,IEEE4)
Sample(1,blnFallaBateria,IEEE4)
Sample(1,blnFallaPanel,IEEE4)
Sample(1,blnFallaDato,IEEE4)
Sample(1,blnApertura,IEEE4)
Sample(1,blnRain1hMax,IEEE4)
Sample(1,bln_Dif_Rain,IEEE4)
Sample(1,blnHumedadMax,IEEE4)
Sample(1,blnHum_Sat_Max,IEEE4)
Sample(1,blnCambioBrusco,IEEE4)
Sample(1,Nivel,IEEE4)
Sample(1,VoltBatt,IEEE4)
Sample(1,VoltPanel,IEEE4)
Sample(1,Humedad,IEEE4)
Sample(1,Humedad_Sat,IEEE4)
EndTable
VoltDiff(Nivel_med,1,mV2500,2,True,0,_60Hz,0.009375,-3.5)
PulseCount(Rain_mm,1,1,2,0,0.1,0)
PulseCount(Rain_Sat_mm,1,2,2,0,0.1,0)
VoltSe (VoltPanel,1,mV5000,2,False,0,_60Hz,0.0041,0)
VoltSe (VoltBat_Sat,1,mV5000,6,False,0,_60Hz,0.0041,0)
SDI12Recorder(Nivel_TH,3,1,"M!",1.0,0)
SDI12Recorder(Results(),3,0,"M!",1.0,0)
SDI_sat = Results1
Temp_S = Results2
Nivel_Sat = SDI_sat + Offset_Sat
If Prueba = 1 Then
Humedad = Hum_PrbRead
Nivel_med = Nivel_PrbRead
Rain_mm = Rain_PrbRead
VoltPanel = VPanel_PrbRead
VoltBatt = VBatt_PrbRead
EndIf
blnAlerta = 0
Hora = Hour
If FRun = 0 Then
blnAlerta = 1
Nivel_obs = 1
FRun = 1
NivelMax = 4
NivelMin = 0.10
VoltPanelMin = 12
VoltBattMin = 11.5
Rain1hMax = 40
HumedadMax = 60
Hum_Sat_Max = 60
SensNivelInst = 1
K1 = 44.88
K2 = 18.086
K3 = 5.9934
Sensor = 1
Dif_Rain_Max = 1
EndIf
Nivel_Rad = Nivel
'--------------------------------------------------
If Sensor = 1 Then
Nivel = Nivel
Sensor_Actual = "Radial"
EndIf
If Sensor = 2 Then
Nivel = Nivel_TH
Sensor_Actual = "Thalimedes"
EndIf
If Sensor = 3 Then
Nivel = Nivel_Sat
Sensor_Actual = "Satelital"
EndIf
'--------------------------------------------------
PortGet(Apertura,2)
If Apertura = False Then
If blnApertura = 0 Then blnAlerta = 1
blnApertura = 1
Else
If blnApertura = 1 Then blnAlerta = 1
blnApertura = 0
EndIf
'--------------------------------------------------
If blnAlarmaRemota = 0 Then
If Nivel > NivelMax Then
If blnNivelMax = 0 Then blnAlerta
=1
blnNivelMax = 1
Else
blnAlarmaTiempo = 0
If blnNivelMax = 1 Then blnAlerta
=1
blnNivelMax = 0
EndIf
EndIf
CallTable(Datos10m)
CallTable(Datos1h)
CallTable(Comp1h)
CallTable(Datos1d)
CallTable(Mtto10m)
CallTable(Alertas)
SendData (ComME,4094,4094,Comp1h)
SendData (ComME,4094,4094,Datos1h)
SendData (ComME,4094,4094,Datos10m)
SendData (ComME,4094,4094,Mtto10m)
SendData (ComME,4094,4094,Datos1d)
SendData (ComME,4094,4094,Alertas)
NextScan
EndProg