@@ -511,16 +511,24 @@ function _map_ravens2math_conductor!(data_math::Dict{String,<:Any}, data_ravens:
511511
512512 if (haskey (terminals[1 ], " ACDCTerminal.OperationalLimitSet" ))
513513 oplimitset_id = _extract_name (terminals[1 ][" ACDCTerminal.OperationalLimitSet" ])
514- oplimitset = data_ravens[" OperationalLimitSet" ][oplimitset_id][" OperationalLimitSet.OperationalLimitValue" ][1 ] # [1] emerg, [2] normal
514+ oplimitset_valslist = data_ravens[" OperationalLimitSet" ][oplimitset_id][" OperationalLimitSet.OperationalLimitValue" ]
515+ oplimitset = Vector {Dict} (undef, length (oplimitset_valslist))
516+ for i in 1 : length (oplimitset_valslist)
517+ oplimitset[i] = data_ravens[" OperationalLimitSet" ][oplimitset_id][" OperationalLimitSet.OperationalLimitValue" ][i]
518+ end
515519 else
516- oplimitset = Dict ()
520+ oplimitset = [ Dict ()]
517521 end
518522
519523 limit_keys = [(" CurrentLimit.value" , " c_rating_a" ), (" CurrentLimit.value" , " c_rating_b" ), (" CurrentLimit.value" , " c_rating_c" ),
520524 (" ApparentPowerLimit.value" , " rate_a" ), (" ApparentPowerLimit.value" , " rate_b" ), (" ApparentPowerLimit.value" , " rate_c" )]
521525
522- for (f_key, t_key) in limit_keys
523- math_obj[t_key] = haskey (oplimitset, f_key) ? fill (oplimitset[f_key], nphases) : fill (Inf , nphases)
526+ for i in 1 : length (oplimitset)
527+ val = fill (0.0 , nphases)
528+ for (f_key, t_key) in limit_keys
529+ val = haskey (oplimitset[i], f_key) && val[1 ] <= oplimitset[i][f_key] ? fill (oplimitset[i][f_key], nphases) : fill (Inf , nphases)
530+ math_obj[t_key] = val
531+ end
524532 end
525533
526534 math_obj[" br_status" ] = get (ravens_obj, " Equipment.inService" , true ) == true ? 1 : 0
0 commit comments