rts-sim-module/component/iscs_bas_fan.go
2023-12-26 10:59:07 +08:00

70 lines
2.0 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"
// FanDevice 风机设备
// 正转即顺时针转-排风;反转即逆时针转-进风
type FanDevice struct {
Speed float32 //风机转速r/min
Forward bool //true-正转false-反转
Fs FanSwitch //风机开关
}
// FanSwitch 风机电源开关定义
type FanSwitch uint8
const (
Off FanSwitch = iota
OnForward //正转
OnReverse //反转
)
func (f *FanSwitch) Off() bool {
return *f == Off
}
func (f *FanSwitch) OnForward() bool {
return *f == OnForward
}
func (f *FanSwitch) OnReverse() bool {
return *f == OnReverse
}
func (f *FanSwitch) On() bool {
return *f == OnReverse || *f == OnForward
}
// FanFcUnit 风机变频器
// 电机转速与变频器频率关系 计算公式n=60f/p其中n是同步转速f是频率P是磁极对数
// 变频器的额定输出频率一般为0-100HZ
type FanFcUnit struct {
Fc bool //true-变频器已开启
F uint16 //变频器频率(0-100HZ)
}
// FanBypassUnit 风机旁路装置
type FanBypassUnit struct {
Bypass bool //true-风机旁路已开启
}
// FanSoftStartUnit 风机软启装置
type FanSoftStartUnit struct {
SoftStart bool //true-风机软启已开启
}
// FanHighLowSpeedMode 风机双速模式控制
type FanHighLowSpeedMode struct {
HighMode bool //true-风机高速模式false-风机低速模式
}
var (
FanDeviceType = ecs.NewComponentType[FanDevice]() //风机设备
FanFcUnitType = ecs.NewComponentType[FanFcUnit]() //风机变频装置
FanBypassUnitType = ecs.NewComponentType[FanBypassUnit]() //风机旁路装置
FanSoftStartUnitType = ecs.NewComponentType[FanSoftStartUnit]() //风机软启装置
FanHighLowSpeedModeType = ecs.NewComponentType[FanHighLowSpeedMode]() //风机双速模式控制
CommonFanTag = ecs.NewTag() //一般风机
FcBypassFanTag = ecs.NewTag() //变频旁路风机
SoftStartFanTag = ecs.NewTag() //软启动风机
HighLowSpeedFanTag = ecs.NewTag() //双速风机
)