rts-sim-module/component/iscs_pscada.go
2023-12-14 13:33:18 +08:00

181 lines
6.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package component
import (
"joylink.club/ecs"
"joylink.club/rtsssimulation/consts"
)
//ISCS 电力系统相关组件定义
// IscsWireCabinetState ISCS线柜状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsWireCabinetState struct {
State consts.WireCabinetStateEnum
}
// IscsCircuitBreakerState ISCS断路器状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
//
// 断路器PT、负极柜隔离开关、轨电位、上网隔离开关、隔离开关
type IscsCircuitBreakerState struct {
State consts.CircuitBreakerStateEnum
}
// IscsRectifierState ISCS整流器状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsRectifierState struct {
State consts.RectifierStateEnum
}
// IscsHandcartSwitchState ISCS手车状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsHandcartSwitchState struct {
State consts.HandcartSwitchStateEnum
}
// IscsVoltageTransformerState ISCS变压器状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsVoltageTransformerState struct {
State consts.VoltageTransformerStateEnum
}
// IscsThreePositionSwitchState ISCS三工位隔离开关状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsThreePositionSwitchState struct {
State consts.ThreePositionSwitchStateEnum
}
// IscsTransBusbarState ISCS母联备自投状态
//
// 状态由该设备的其他组件运算得到,该状态组件对外为只读组件,面向用户
type IscsTransBusbarState struct {
State consts.TransBusbarZiTouStateEnum
}
// ISCS 相关设备状态组件
var (
IscsWireCabinetStateType = ecs.NewComponentType[IscsWireCabinetState]()
IscsCircuitBreakerStateType = ecs.NewComponentType[IscsCircuitBreakerState]()
IscsRectifierStateType = ecs.NewComponentType[IscsRectifierState]()
IscsHandcartSwitchStateType = ecs.NewComponentType[IscsHandcartSwitchState]()
IscsVoltageTransformerStateType = ecs.NewComponentType[IscsVoltageTransformerState]()
IscsIscsThreePositionSwitchStateType = ecs.NewComponentType[IscsThreePositionSwitchState]()
IscsTransBackupZiTouStateType = ecs.NewComponentType[IscsTransBusbarState]()
)
/////////////////////////////////////////////////////////
// TransBusbar 输电母线
type TransBusbar struct {
Vl VoltageLevel //电压等级
Elec ElecYwEnum
}
// VoltageLevel 电压等级定义
type VoltageLevel = uint8
const (
VlNon VoltageLevel = iota //未知电压等级
VlAc110Kv //110kV交流电 红色
VlAc35Kv //35kV交流电 黄色
VlAc400V //400V交流电 浅蓝色
VlDc1500V //1500V直流电
)
// ElecYwEnum 电的有无定义
type ElecYwEnum = uint8
const (
EywLossing ElecYwEnum = iota //失电,未受电
EywReceiving //受电
EywStatic //静态
)
/////////////////////////////////////////////////
// TwoPositionSwitch 对一条路通-断控制的开关状态
// 如断路器
// 如PT、负极柜隔离开关、轨电位、上网隔离开关、隔离开关
type TwoPositionSwitch struct {
Closed bool //true-合闸线路导通false-分闸,线路断开
}
// /////////////////////////////////////////
// ThreePositionSwitch 三工位开关
// 对于三工位隔离开关规定ClosedPosition1-合闸到工作位ClosedPosition2-合闸到接地位
type ThreePositionSwitch struct {
Position SwitchThreePosition //合闸到位置1与位置1线路导通;合闸到位置2与位置2线路导通;分闸,线路断开,未与任何位置接通
}
// SwitchThreePosition 三工位开关位置定义
type SwitchThreePosition = uint8
const (
StpOpened SwitchThreePosition = iota //开关分闸,线路断开,未与任何位置接通
StpClosedPosition1 //开关合闸到位置1与位置1线路导通
StpClosedPosition2 //开关合闸到位置2与位置2线路导通
)
/////////////////////////////////////////////
// HandcartSwitch 手车式开关
type HandcartSwitch struct {
Position HandcarPosition
}
// HandcarPosition 手车式开关位置定义
type HandcarPosition = uint8
const (
HpOpened HandcarPosition = iota //工作位分闸
HpClosed //工作位合闸
HpTest //实验位
)
//////////////////////////////////////////
// ElecDevice 一般电力设备
// 如:变压器、整流器
// Epu所有状态如35kV进线柜、35kV出线柜、1500V直流进线柜、配电变馈线柜、整流变馈线柜、35kV母联柜、500V直流馈线柜、1500V直流馈线柜、1500V直流负极柜
// Epu状态中除去报警400V进线柜、400V母联柜、三级负荷总开关、上网隔离开关柜、接口柜
type ElecDevice struct {
Normal bool //true-正常
}
// 电力设备组件
var (
ElecDeviceType = ecs.NewComponentType[ElecDevice]()
HandcartSwitchType = ecs.NewComponentType[HandcartSwitch]()
ThreePositionSwitchType = ecs.NewComponentType[ThreePositionSwitch]()
TwoPositionSwitchType = ecs.NewComponentType[TwoPositionSwitch]()
TransBusbarType = ecs.NewComponentType[TransBusbar]()
)
// 设备例外标签定义
var (
DeviceCommunicationInterruptTag = ecs.NewTag() //通信中断
DeviceAbnormalTag = ecs.NewTag() //异常
DeviceFaultTag = ecs.NewTag() //故障 有预告信号产生
DeviceAlarmTag = ecs.NewTag() //报警 有事故信号产生
DeviceStartTimeoutTag = ecs.NewTag() //启动超时
DeviceModuleFaultTag = ecs.NewTag() //模块故障
)
// 设备置牌标签定义
var (
DevicePlacingOverhaulCardTag = ecs.NewTag() //设备置牌:检修
DevicePlacingLandingCardTag = ecs.NewTag() //设备置牌:接地
DevicePlacingHandTag = ecs.NewTag() //设备置牌:就地(手型牌)
DevicePlacingOtherCardTag = ecs.NewTag() //设备置牌:其他
)
// BackupZiTouInputTag 备自投投入、退出标签
var BackupZiTouInputTag = ecs.NewTag() //备自投投入标签