Вы находитесь на странице: 1из 30

MANUAL DE PROCEDIMIENTO PARA LA INTEGRACIÓN DE LOS SISTEMAS DE

RESPALDO DE TELEMETRÍA, AL SISTEMA RADIAL.

Central Hidroeléctrica Miel


Mayo de 2012
Contenido
INTRODUCCION ................................................................................................................................... 3
OBJETIVO ............................................................................................................................................. 3
OBJETIVOS ESPECÍFICOS ...................................................................................................................... 3
ANTECEDENTES ................................................................................................................................... 4
JUSTIFICACIÓN .................................................................................................................................... 4
PROCEDIMIENTO PARA EL CAMBIO DE UN PROGRAMA EN UN DATALOGGER. ............................... 5
EDICIÓN DEL PROGRAMA.................................................................................................................... 8

Central Hidroeléctrica Miel


Mayo de 2012
INTRODUCCION

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.

Es por esto que la calidad y veracidad de la información suministrada es de gran importancia en el


negocio de la generación energética.

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

Un objetivo de este documento es el de indicar en forma detallada la forma de modificar los


programas de los datalogger, indicando para que sirve y que es lo que hace cada etapa del
programa; de forma tal que el personal encargado de realizar la labor, sepa y entienda a cabalidad
las diferentes funciones del mismo. De esta forma podrán diagnosticar problemas con bases
sólidas y realizar correctivos a tiempo.

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.

Central Hidroeléctrica Miel


Mayo de 2012
ANTECEDENTES

Los sistemas de telemetría de Isagen han estado a la vanguardia de la tecnología, siempre en


constante evolución buscando la mejor calidad de la información. Se ha contado con diferentes
sistemas “independientes” los cuales miden, almacenan y envían las diferentes variables hídro-
climatológicas, que son de importancia para la organizació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.

Adicionalmente los intervalos de muestreo y tiempos de transmisión son diferentes, lo cual no


permiten tener un punto de comparación real entre los sistemas.

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.

Central Hidroeléctrica Miel


Mayo de 2012
PROCEDIMIENTO PARA EL CAMBIO DE UN PROGRAMA EN UN DATALOGGER.

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:

Central Hidroeléctrica Miel


Mayo de 2012
Del ComPort se agrega un PakBusPort y se configura 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:

Central Hidroeléctrica Miel


Mayo de 2012
Luego se usa la herramienta “Connect” para conectarse al datalogger a través del puerto RS-232
del mismo con un cable serial al puerto de comunicaciones COM1 del portátil:

Paso 1: Seleccionar el datalogger;


Paso 2: Dar click sobre el ícono Connect

Paso 3: Esperar hasta que se conecte con el datalogger


(El ícono cambia de estado a ).

Paso 4: Dar click sobre el ícono Retrieve y


seleccionar la ruta donde será almacenado el programa.

Central Hidroeléctrica Miel


Mayo de 2012
EDICIÓN DEL PROGRAMA

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.

Para editar el programa se usa la herramienta “CRBasic Editor”:

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:

Central Hidroeléctrica Miel


Mayo de 2012
Habiendo abierto el programa se procede a copiar los campos resaltados en amarillo y se pega

Central Hidroeléctrica Miel


Mayo de 2012
StationName "XXX"

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

Alias rTime(1) = Year


Alias rTime(2) = Month
Alias rTime(3) = Dia
Alias rTime(4) = Hour
Alias rTime(5) = Minute
Alias rTime(6) = Second
Alias rTime(7) = uSecond
Alias rTime(8) = WeekDay
Alias rTime(9) = Day_of_Year
Alias Results(1)=Results1
Alias Results(2)=Results2

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

Central Hidroeléctrica Miel


Mayo de 2012
Public VBatt_PrbRead
Public Hora
Public SDI_sat
Public Temp_S
Public Rain_Sat_mm
Public Sensor
Public Sensor_Actual As String
Public Offset_Sat
Public Nivel_Sat
Public Humedad_Sat
Public Hum_Sat_Max
Public Dif_Rain
Public Dif_Rain_Max
Public RainTab_R
Public RainTab_S

Units VoltBatt = Volts


Units VoltPanel = Volts
Units Humedad = %
Units Humedad_Sat = %
Units Nivel = m
Units Rain_mm = mm
Units Rain1hMax = mm
Units Caudal = m3/seg.
Units Nivel_TH = m
Units Nivel_Sat = m
Units Temp_S = C

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")

Central Hidroeléctrica Miel


Mayo de 2012
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")
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")
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

Central Hidroeléctrica Miel


Mayo de 2012
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
'--------------------------------------------------
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

Central Hidroeléctrica Miel


Mayo de 2012
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
'--------------------------------------------------
If blnAlarmaRemota = 1 OR blnNivelMax = 1 Then
If blnAlarmaTiempo = 0 Then
If IfTime (0, 60, Sec) Then
PortSet(1,0)
EndIf
If IfTime (30, 60, Sec) Then
PortSet(1,1)
EndIf
If IfTime (0, 60, Min) Then
blnAlarmaTiempo = 1
EndIf
EndIf
Else
PortSet(1,0)
EndIf
'--------------------------------------------------
If Nivel < NivelMin Then
If blnNivelMin = 0 Then blnAlerta = 1
blnNivelMin = 1
Else
If blnNivelMin = 1 Then blnAlerta = 1
blnNivelMin = 0
EndIf
'--------------------------------------------------
If Hour > 7 AND Hour < 17 Then
If VoltPanel > VoltPanelMin Then
If blnFallaPanel = 1 Then blnAlerta = 1
blnFallaPanel = 0
Else
If blnFallaPanel = 0 Then blnAlerta = 1
blnFallaPanel = 1
EndIf
Else
If blnFallaPanel = 1 Then blnAlerta = 1
blnFallaPanel = 0
EndIf
'--------------------------------------------------
If VoltPanel < VoltPanelMin Then
If VoltBatt > VoltBattMin Then
If blnFallaBateria = 1 Then blnAlerta = 1

Central Hidroeléctrica Miel


Mayo de 2012
blnFallaBateria = 0
Else
If blnFallaBateria = 0 Then blnAlerta = 1
blnFallaBateria = 1
EndIf
Else
If blnFallaBateria = 1 Then blnAlerta = 1
blnFallaBateria = 0
EndIf
'--------------------------------------------------
If Datos1h.output(1,1) = -1 Then
RainTab = Datos1h.Rain_mm_TOT1h(1,1)
If RainTab > Rain1hMax Then
If blnRain1hMax = 0 Then blnAlerta = 1
blnRain1hMax = 1
Else
If blnRain1hMax = 1 Then blnAlerta = 1
blnRain1hMax = 0
EndIf
EndIf
'--------------------------------------------------
RainTab_R = Datos10m.Rain_mm_Tot(1,1)
RainTab_S = Datos10m.Rain_mm_Sat_Tot(1,1)
Dif_Rain = RainTab_R - RainTab_S
If Dif_Rain < 0 Then
Dif_Rain = Dif_Rain * -1
Else
EndIf
If Dif_Rain > Dif_Rain_Max Then
If bln_Dif_Rain = 0 Then blnAlerta = 1
bln_Dif_Rain = 1
Else
If bln_Dif_Rain = 1 Then blnAlerta = 1
bln_Dif_Rain = 0
EndIf
'--------------------------------------------------
If Humedad > HumedadMax Then
If blnHumedadMax = 0 Then blnAlerta = 1
blnHumedadMax = 1
Else
If blnHumedadMax = 1 Then blnAlerta = 1
blnHumedadMax = 0
EndIf
'--------------------------------------------------
If Humedad_Sat > Hum_Sat_Max Then
If blnHum_Sat_Max = 0 Then blnAlerta = 1
blnHum_Sat_Max = 1
Else
If blnHum_Sat_Max = 1 Then blnAlerta = 1
blnHum_Sat_Max = 0
EndIf
'--------------------------------------------------
If VoltPanel = NAN OR Nivel = NAN Then
If blnFallaDato = 0 Then blnAlerta = 1
blnFallaDato = 1
Else
If blnFallaDato = 1 Then blnAlerta = 1
blnFallaDato = 0
EndIf
'--------------------------------------------------
Caudal = K1*Nivel^2+K2*Nivel+K3

CallTable(Datos10m)
CallTable(Datos1h)

Central Hidroeléctrica Miel


Mayo de 2012
CallTable(Comparacion1h)
CallTable(Datos1d)
CallTable(Mtto10m)
CallTable(Alertas)

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

Central Hidroeléctrica Miel


Mayo de 2012
RainTab_R = Datos10m.Rain_mm_Tot(1,1)
RainTab_S = Datos10m.Rain_mm_Sat_Tot(1,1)
Dif_Rain = RainTab_R - RainTab_S
If Dif_Rain < 0 Then
Dif_Rain = Dif_Rain * -1
Else
EndIf
If Dif_Rain > Dif_Rain_Max Then
If bln_Dif_Rain = 0 Then blnAlerta =
1
bln_Dif_Rain = 1
Else
If bln_Dif_Rain = 1 Then blnAlerta =
1
bln_Dif_Rain = 0
EndIf

Central Hidroeléctrica Miel


Mayo de 2012
Central Hidroeléctrica Miel
Mayo de 2012
Central Hidroeléctrica Miel
Mayo de 2012
Central Hidroeléctrica Miel
Mayo de 2012
Central Hidroeléctrica Miel
Mayo de 2012
StationName "Nombre de la Estación"

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

Alias rTime(1) = Year


Alias rTime(2) = Month
Alias rTime(3) = Dia
Alias rTime(4) = Hour
Alias rTime(5) = Minute
Alias rTime(6) = Second
Alias rTime(7) = uSecond
Alias rTime(8) = WeekDay
Alias rTime(9) = Day_of_Year
Alias Results(1)=Results1
Alias Results(2)=Results2

Central Hidroeléctrica Miel


Mayo de 2012
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
Public VBatt_PrbRead
Public Hora
Public SDI_sat
Public Temp_S
Public Rain_Sat_mm
Public Sensor
Public Sensor_Actual As String
Public Offset_Sat
Public Nivel_Sat
Public Humedad_Sat
Public Hum_Sat_Max
Public Dif_Rain
Public Dif_Rain_Max
Public RainTab_R
Public RainTab_S
Public Nivel_Rad
Public VoltBat_Sat

Central Hidroeléctrica Miel


Mayo de 2012
Units VoltBatt = Volts
Units VoltPanel = Volts
Units Humedad = %
Units Humedad_Sat = %
Units Nivel = m
Units Rain_mm = mm
Units Rain1hMax = mm
Units Caudal = m3/seg.
Units Nivel_TH = m
Units Nivel_Sat = m
Units Temp_S = C

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

Central Hidroeléctrica Miel


Mayo de 2012
DataTable(Comp1h,True,-1)
DataInterval(0,60,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")
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

Central Hidroeléctrica Miel


Mayo de 2012
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)
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

Central Hidroeléctrica Miel


Mayo de 2012
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

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

Central Hidroeléctrica Miel


Mayo de 2012
'--------------------------------------------------
If blnAlarmaRemota = 1 OR blnNivelMax = 1 Then
If blnAlarmaTiempo = 0 Then
If IfTime (0, 60, Sec) Then
PortSet(1,0)
EndIf
If IfTime (30, 60, Sec) Then
PortSet(1,1)
EndIf
If IfTime (0, 60, Min) Then
blnAlarmaTiempo = 1
EndIf
EndIf
Else
PortSet(1,0)
EndIf
'--------------------------------------------------
If Nivel < NivelMin Then
If blnNivelMin = 0 Then blnAlerta = 1
blnNivelMin = 1
Else
If blnNivelMin = 1 Then blnAlerta = 1
blnNivelMin = 0
EndIf
'--------------------------------------------------
If Hour > 7 AND Hour < 17 Then
If VoltPanel > VoltPanelMin Then
If blnFallaPanel = 1 Then blnAlerta = 1
blnFallaPanel = 0
Else
If blnFallaPanel = 0 Then blnAlerta = 1
blnFallaPanel = 1
EndIf
Else
If blnFallaPanel = 1 Then blnAlerta = 1
blnFallaPanel = 0
EndIf
'--------------------------------------------------
If VoltPanel < VoltPanelMin Then
If VoltBatt > VoltBattMin Then
If blnFallaBateria = 1 Then
blnAlerta = 1
blnFallaBateria = 0
Else
If blnFallaBateria = 0 Then
blnAlerta = 1
blnFallaBateria = 1
EndIf
Else
If blnFallaBateria = 1 Then blnAlerta = 1
blnFallaBateria = 0
EndIf

Central Hidroeléctrica Miel


Mayo de 2012
'--------------------------------------------------
If Datos1h.output(1,1) = -1 Then
RainTab = Datos1h.Rain_mm_TOT1h(1,1)
If RainTab > Rain1hMax Then
If blnRain1hMax = 0 Then
blnAlerta = 1
blnRain1hMax = 1
Else
If blnRain1hMax = 1 Then
blnAlerta = 1
blnRain1hMax = 0
EndIf
EndIf
'--------------------------------------------------
RainTab_R = Datos10m.Rain_mm_Tot(1,1)
RainTab_S = Datos10m.Rain_mm_Sat_Tot(1,1)
Dif_Rain = RainTab_R - RainTab_S
If Dif_Rain < 0 Then
Dif_Rain = Dif_Rain * -1
Else
EndIf
If Dif_Rain > Dif_Rain_Max Then
If bln_Dif_Rain = 0 Then blnAlerta = 1
bln_Dif_Rain = 1
Else
If bln_Dif_Rain = 1 Then blnAlerta = 1
bln_Dif_Rain = 0
EndIf
'--------------------------------------------------
If Humedad > HumedadMax Then
If blnHumedadMax = 0 Then blnAlerta = 1
blnHumedadMax = 1
Else
If blnHumedadMax = 1 Then blnAlerta = 1
blnHumedadMax = 0
EndIf
'--------------------------------------------------
If Humedad_Sat > Hum_Sat_Max Then
If blnHum_Sat_Max = 0 Then blnAlerta = 1
blnHum_Sat_Max = 1
Else
If blnHum_Sat_Max = 1 Then blnAlerta = 1
blnHum_Sat_Max = 0
EndIf
'--------------------------------------------------
If VoltPanel = NAN OR Nivel = NAN Then
If blnFallaDato = 0 Then blnAlerta = 1
blnFallaDato = 1
Else
If blnFallaDato = 1 Then blnAlerta = 1
blnFallaDato = 0
EndIf

Central Hidroeléctrica Miel


Mayo de 2012
Caudal = K1*Nivel^2+K2*Nivel+K3

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

Central Hidroeléctrica Miel


Mayo de 2012

Вам также может понравиться