This commit is contained in:
ykh
2024-12-30 23:04:30 +09:00
parent c01051f024
commit 8f89991a09
45 changed files with 7567 additions and 1033 deletions

View File

@@ -104,6 +104,9 @@
Dim Calc_태양 As New CRenewable(DSET, Result) : Calc_태양.Calc_PhotovoltaicSystem_EN(i_count_month, d_mth)
'풍력 시스템
Dim Calc_풍력 As New CRenewable(DSET, Result) : Calc_풍력.Calc_WindPowerGenerationSystem(i_count_month, d_mth)
'외부 전기(import data) 241212
Dim Calc_IMPORT As New CRenewable(DSET, Result) : Calc_IMPORT.Calc_ImportData(i_count_month, d_mth)
Dim 급탕용량합 As Decimal = 0
For Each Dr난방 As DS.tbl_nanbangkikiRow In DSET.tbl_nanbangkiki.Select("code<>'0' and 헤더적용=true", "code")

View File

@@ -500,6 +500,9 @@
If Dr신재생.대지외설치여부 Then
E_el_pv_out_offsite = E_el_pv_out_offsite + E_sol * P_pk * f_perf
Else
E_el_pv_out += E_sol * P_pk * f_perf
End If
@@ -514,6 +517,11 @@
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = Sheets("계산결과").Cells(104, 7 + i_count_pv_month) + E_el_pv_out
'End If
'Dim importrows() As DS.tbl_importdataRow = DSET1.tbl_importdata.Select("mon='M" + i_count_pv_month.ToString("00") + "'")
'If importrows.Length = 1 Then
' Dim 외부전기도입량 As Decimal = importrows(0).외부전기도입량
'End If
Result.생산E(i_count_pv_month).태양광전력생산량 += E_el_pv_out
Result.생산E(i_count_pv_month).태양광전력생산량_offsite += E_el_pv_out_offsite
@@ -523,6 +531,29 @@
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
End Sub
Public Overridable Sub Calc_ImportData(ByVal i_count_pv_month As Integer, ByVal i_pv_d_mth As Integer)
pLog.Add(String.Format(">>Calc_ImportData 진입 : i_count_pv_month={0}, i_pv_d_mth={1}", _
i_count_pv_month, i_pv_d_mth))
Dim 외부전기도입량 As Decimal = 0
Dim importrows() As DS.tbl_importdataRow = DSET1.tbl_importdata.Select("mon='M" + i_count_pv_month.ToString("00") + "'")
If importrows.Length = 1 Then
외부전기도입량 = importrows(0).외부전기도입량
Result.생산E(i_count_pv_month).연료전지전력생산량_offsite += 외부전기도입량
End If
pLog.Add(String.Format(">>Calc_ImportData 진입 : E_el_pv_out={0}, 외부전기도입량={1}", _
외부전기도입량, Result.생산E(i_count_pv_month).연료전지전력생산량_offsite))
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
End Sub
@@ -877,10 +908,7 @@
E_chp_gen_in = Q_chp_gen_out / (eta_T_chp_an / 100)
E_el_chp_out = E_chp_gen_in * eta_el_chp_an / 100
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과0 E_chp_gen_in={0},E_el_chp_out={1}", E_chp_gen_in, E_el_chp_out))
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과1 열병합전력생산량={0}", Result.생산E(i_chp_month).열병합전력생산량))
'//전기생산량 열병합
If Dr신재생.열병합신재생여부 Then
@@ -897,7 +925,31 @@
'// 신재생에너지 자립률 추가
Dim perc As Single = 0
If Single.TryParse(Dr신재생.외부공급비율, perc) = False Then
perc = 0
End If
Dim exportvalue As Decimal = E_el_chp_out_net * (perc / 100.0)
If exportvalue <> 0 Then
Dim drows() As DS.tbl_exportdataRow = DSET1.tbl_exportdata.Select("mon='" + i_chp_month.ToString("00") + "'")
Dim dr As DS.tbl_exportdataRow = Nothing
If drows.Length = 0 Then
dr = DSET1.tbl_exportdata.Newtbl_exportdataRow()
dr.mon = "M" + i_chp_month.ToString("00")
dr.외부전기생산량 = exportvalue
Else
dr = drows(0)
dr.외부전기생산량 += exportvalue
End If
dr.EndEdit()
If dr.RowState = DataRowState.Detached Then
DSET1.tbl_exportdata.Addtbl_exportdataRow(dr)
End If
E_el_chp_out_net -= exportvalue
End If
'//전력
@@ -905,6 +957,9 @@
Result.생산E(i_chp_month).신재생열병합열생산량 += (Q_chp_gen_out_net) '//20170120 추가
'Result.생산E(i_chp_month).신재생열병합전력생산량 += (E_el_chp_out)
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과2 신재생열병합전력생산량={0}", Result.생산E(i_chp_month).신재생열병합전력생산량))
'//면적당열병합 (신재생면적당열생산량)
@@ -926,6 +981,12 @@
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과3 신재생면적당열생산량={0}", Result.생산E(i_chp_month).신재생면적당열생산량))
Else
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out '// 20241229 추가
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과0 E_chp_gen_in={0},E_el_chp_out={1}", E_chp_gen_in, E_el_chp_out))
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과1 열병합전력생산량={0}", Result.생산E(i_chp_month).열병합전력생산량))
End If
'DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00")) = CSng(DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00"))) + E_el_chp_out ' Sheets("계산결과").Cells(96, 7 + i_chp_month) = E_el_chp_out
End Sub

View File

@@ -175,6 +175,28 @@ Public Class CShared
' Next
'Next
'=============================================================================2024.12.11 추가
'공동주택일때 입력존의 냉난방확인
Dim drdesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
Dim 주거형태 As String = drdesc.isjugo
If 주거형태 = "2" Then
Dim sb As New System.Text.StringBuilder()
For Each drzone As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0'")
If drzone.냉난방방식 <> "냉난방" Then
sb.AppendLine("[공동주택]입력존(" + drzone.설명 + ")의 냉난방식을 확인하세요")
End If
Next
If sb.Length > 0 Then
'Dim dlg As DialogResult = MsgBox("오류가 발생했습니다 계산을 실행할까요?" + vbCrLf + sb.ToString(), MsgBoxStyle.Critical + MsgBoxStyle.YesNo, "CShared")
'If dlg <> DialogResult.Yes Then
' Me.IsError = True
'End If
End If
End If
End Sub

View File

@@ -882,7 +882,14 @@
Dim idx As Integer = DSETR.TReqUse.Rows.Count + 1
DR.Code = Format(idx, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
If System.Diagnostics.Debugger.IsAttached Then
DR.Desc = "(" + DR.GRP + "-" + DR.Code + ")" + desc '//설명
Else
DR.Desc = desc '//설명
End If
'DR.Desc = desc '//설명
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =
@@ -908,7 +915,12 @@
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
If System.Diagnostics.Debugger.IsAttached Then
DR.Desc = "(" + DR.GRP + "-" + DR.Code + ")" + desc '//설명
Else
DR.Desc = desc '//설명
End If
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =

View File

@@ -181,8 +181,58 @@
Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
Q_I_source_fac = (TOSG(DR프로필(0).작업보조기기) * A_B) + 기저비율 ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
Dim v사람 As Decimal = TOSG(DR프로필(0).사람)
Dim v작업보조기기 As Decimal = TOSG(DR프로필(0).작업보조기기)
'If DR프로필(0).설명.StartsWith("00") OrElse DR프로필(0).설명.StartsWith("27") Then
' If A_B = 0 Then
' MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 면적데이터(A_B)가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
' Else
' Dim 프로필면적 As Char = Pub.면적별범위값(TOSG(DR존.면적))
' If 프로필면적 = "A"c Then
' v사람 = 1528.8 / A_B
' ElseIf 프로필면적 = "B"c Then
' v사람 = 1999.2 / A_B
' ElseIf 프로필면적 = "C"c Then
' v사람 = 2822.4 / A_B
' ElseIf 프로필면적 = "D"c Then
' v사람 = 3292.8 / A_B
' ElseIf 프로필면적 = "E"c Then
' v사람 = 3763.2 / A_B
' ElseIf 프로필면적 = "F"c Then
' v사람 = 4116.0 / A_B
' Else
' v사람 = 5762.4 / A_B
' End If
' If 프로필면적 = "A"c Then
' v작업보조기기 = 3741.9 / A_B
' ElseIf 프로필면적 = "B"c Then
' v작업보조기기 = 4893.2 / A_B
' ElseIf 프로필면적 = "C"c Then
' v작업보조기기 = 6908.1 / A_B
' ElseIf 프로필면적 = "D"c Then
' v작업보조기기 = 8059.5 / A_B
' ElseIf 프로필면적 = "E"c Then
' v작업보조기기 = 9210.8 / A_B
' ElseIf 프로필면적 = "F"c Then
' v작업보조기기 = 10074.3 / A_B
' Else
' v작업보조기기 = 14104.1 / A_B
' End If
' End If
'End If
Q_I_source_p = v사람 * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
Q_I_source_fac = (v작업보조기기 * A_B) + 기저비율 ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
' Else '=============================================================2010.2.21 삭제
' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
@@ -217,7 +267,7 @@
' End If
' End If
'End If
@@ -321,7 +371,15 @@
Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
End If
'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
Dim 프로필급탕요구량 As Decimal = TOSG(Drow프로필.일일급탕요구량)
'If Drow프로필.설명.StartsWith("00") OrElse Drow프로필.설명.StartsWith("27") Then
' Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(DR존.면적))
' 프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / A_B
'End If
Q_w_b = 프로필급탕요구량 * A_B * d_op_mth
'===================================2010.2.21 삭제
'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
' '//부하율계산치?입력치구분
@@ -796,7 +854,15 @@
Else
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
프로필급탕요구량 = TOSG(DRProf.일일급탕요구량)
'If DRProf.설명.StartsWith("00") OrElse DRProf.설명.StartsWith("27") Then
' Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(DR존.면적))
' 프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / A_B
'End If
Q_w_b = 프로필급탕요구량 * A_B * d_op_mth * zone_count 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
'=================================================2010.2.21 삭제
'End If
'=================================================2010.2.21 삭제
@@ -821,7 +887,15 @@
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
Dim 프로필급탕요구량 As Decimal = TOSG(DRProf.일일급탕요구량)
'If DRProf.설명.StartsWith("00") OrElse DRProf.설명.StartsWith("27") Then
' Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(DR존.면적))
' 프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / A_B
'End If
Q_w_b = 프로필급탕요구량 * A_B * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
End If
pLog.Add(String.Format("Q_w_b:{0}", Q_w_b))
@@ -979,6 +1053,16 @@
pLog.Add(String.Format("소요량계산 Mon={0},d_full_mth={1},theta_e_month={2}", i_count_month, d_full_mth, theta_e_month))
Dim importrows() As DS.tbl_importdataRow = DSET1.tbl_importdata.Select("mon='M" + i_count_month.ToString("00") + "'")
If importrows.Length = 1 Then
Result.생산E(i_count_month).연료전지전력생산량_offsite += importrows(0).외부전기도입량
End If
'///난방
pLog.Add("급탕소요량 시작")

View File

@@ -328,10 +328,12 @@
'//계산을 시작 p_CalcUse : 는 소요량 계산도 할건지으 ㅣ플래그 나중에 분리해야겠따.
'Dim ST As Date = Now
If Me.IsError Then
MsgBox("계산준비중 오류발생", MsgBoxStyle.Critical, "확인")
If Me.Pub.IsError Then
MsgBox("계산준비중 오류발생", MsgBoxStyle.Critical + MsgBoxStyle.Question, "확인")
Return False
End If
logBuffer = New System.Text.StringBuilder("")
Dim Cnt As Integer = FixData()
'log.AppendLine(">>데이터보정(" & Cnt.ToString & ")개의 데이터가 보정되었습니다")
@@ -358,6 +360,10 @@
DSETR2.월별1차에너지사용량.Merge(DSETR1.월별1차에너지사용량)
DSETR2.월별1차에너지사용량.AcceptChanges()
'//clear exportdata
DSET1.tbl_exportdata.Clear()
DSET1.tbl_exportdata.AcceptChanges()
Dim Retval As Boolean

View File

@@ -137,7 +137,7 @@
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -163,7 +163,7 @@
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -174,7 +174,7 @@
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -346,7 +346,7 @@
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.냉방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -522,7 +522,7 @@
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -556,7 +556,7 @@
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -566,7 +566,7 @@
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -740,7 +740,7 @@
Dim a As Decimal = Result.생산E(0).태양광전력생산량
Dim b As Decimal = Result.생산E(0).풍력전력생산량
Dim c As Decimal = Result.생산E(0).열병합전력생산량
Dim sumdata As Decimal = a + b + c
Dim sumdata As Decimal = a + b + c + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite
Return R - (sumdata) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.조명전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -783,7 +783,7 @@
If MIdx = 0 Then
Dim R As Decimal = 환기전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.환기전력 * Result.E변환계수.전력
Catch ex As Exception

View File

@@ -268,6 +268,9 @@ Public Class C사용면적
pLog.Add(String.Format(">> Zone({0})Row Offset={1}", Dr존.code, offset))
Dim 면적별범위값 As Char = Pub.면적별범위값(Dr존.면적)
'//냉난방(HC) 이거나 난방(H)일경우 난방면적 누적
If Dr존.냉난방방식.IndexOf("") <> -1 OrElse Dr존.냉난방공조.IndexOf("") <> -1 Then
A_H += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
@@ -282,12 +285,16 @@ Public Class C사용면적
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
If Dr프로필.code <> "0010" Then
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
If Dr프로필.code <> "0027" Then
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
Else
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
Else
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.503 / 0.314), 3) '//전산실 용도에 따른 난방 가중치 적용
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_H_wf={1}", Dr존.code, A_H_wf))
@@ -306,8 +313,13 @@ Public Class C사용면적
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
If Dr프로필.code <> "0010" Then
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
If Dr프로필.code <> "0027" Then
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
Else
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
Else
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.196 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
End If
@@ -320,17 +332,64 @@ Public Class C사용면적
'//급탕요구량이 있다면 급탕면적 누적
If TOSG(Dr프로필.일일급탕요구량) > 0 Then
Dim 프로필급탕요구량 As Decimal = TOSG(Dr프로필.일일급탕요구량)
If Dr프로필.설명.StartsWith("00") OrElse Dr프로필.설명.StartsWith("27") Then
Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(Dr존.면적))
프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / TOSG(Dr존.면적)
End If
If 프로필급탕요구량 > 0 Then
A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
If 건물용도 < 10 Then '//주거용
A_W_wf = A_W
'Select Case 면적별범위값
' Case "A"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.458
' Case "B"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.618
' Case "C"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.729
' Case "D"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1
' Case "E"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.258
' Case "F"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.475
' Case Else
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.643
'End Select
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일급탕요구량) * Math.Round(day_year / (30 * 250), 3)) 160211 소수점오류인한 수정
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일급탕요구량) * (day_year / (30 * 250)), 3)
If Dr프로필.code <> "0027" Then
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(프로필급탕요구량 * (day_year / (30 * 250)), 3)
Else
'//주거용 오피스텔
Select Case 면적별범위값
Case "A"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.804
Case "B"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.025
Case "C"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.21
Case "D"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66
Case "E"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.088
Case "F"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.448
Case Else
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.727
End Select
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_W={1},A_W_wf={2}", Dr존.code, A_W, A_W_wf))
@@ -347,7 +406,13 @@ Public Class C사용면적
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일사용시간) * Math.Round(day_year / (9 * 250), 3) * offset)
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
If Dr프로필.code <> "0027" Then
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
Else
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_L={1},A_L_wf={2}", Dr존.code, A_L, A_L_wf))
@@ -362,7 +427,13 @@ Public Class C사용면적
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
If Dr프로필.code <> "0027" Then
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
Else
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_V={1},A_V_wf={2}", Dr존.code, A_V, A_V_wf))

View File

@@ -58,7 +58,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력태양광"))
Return TOSG(DR(0).전력태양광) ''("전력태양광"))
End If
End If
End Get
@@ -72,6 +72,8 @@ Public Class C생산에너지
End If
End Set
End Property
Property 태양광전력생산량_offsite() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
@@ -86,7 +88,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력태양광offsite"))
Return TOSG(DR(0).전력태양광offsite) '("전력태양광offsite"))
End If
End If
End Get
@@ -96,10 +98,43 @@ Public Class C생산에너지
MsgBox(ErrMsg)
Else
' MsgBox("태양광기록(" & Mon & ")")
DR(0)("전력태양광offsite") = value
DR(0).전력태양광offsite = value
End If
End Set
End Property
Property 연료전지전력생산량_offsite() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).연료전지전력생산량_offsite
Next
Return Res
Else
Return TOSG(DR(0).연료전지전력생산량_offsite) '0'("연료전지전력offsite"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
' MsgBox("태양광기록(" & Mon & ")")
DR(0).연료전지전력생산량_offsite = value
End If
End Set
End Property
Property 풍력전력생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
@@ -114,7 +149,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력풍력"))
Return TOSG(DR(0).전력풍력) '("전력풍력"))
End If
End If
End Get
@@ -142,7 +177,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력풍력offsite"))
Return TOSG(DR(0).전력풍력offsite) '("전력풍력offsite"))
End If
End If
End Get
@@ -171,7 +206,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력열병합"))
Return TOSG(DR(0).전력열병합) '("전력열병합"))
End If
End If
End Get

View File

@@ -67,11 +67,11 @@
Me.급탕보조 = I60
If (I4 + I5 + I6 + I7 + I8 <> 0) Then
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I4
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I5
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I6
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I7
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I8
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I4
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I5
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I6
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I7
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I8
End If
End Sub