📄 module_control.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "module_control"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'*************************
'类属性,局部变量保存属性值
'*************************
Private mvarfyfWenDu As Single '本地复本
Private mvarfyfwdSheDingValue As Single
Private mvarjlgYeWei As Single '本地复本
Private mvartlfKaiDu As Single '本地复本
Private mvaryjaLiuLiang As Single '本地复本
Private mvarlqysWenDu As Single '本地复本
Private mvarjlgcsYeWei As Single '本地复本
Private mvarjlgjsYeWei As Single '本地复本
Private mvarWorkState As Boolean '本地复本
Private mvaryjatlLiang As Single '本地复本
Private mvaryjaMiDu As Single '本地复本
Private mvarjlgZhiJing As Single '本地复本
Private mvaryjaYiYongLiang As Single
Private mvaryjaShengYuLiang As Single
Private mvarfyfNum As Integer
Private mvarfyfWenDuXieLv As Single
Private mvarCounter As Single
Private mvarwdChartGuaiDian As Single
Private mvaryjaYiYongLiang0 As Single
Private mvarfyf50KgWenDu As Single
Private mvartl50KgTime As Single
Private mvarIncreaseXieLv As Single
Private mvartlfStartKaiDu As Single
Private mvartlf70KgKaiDu As Single
Private mvartlfHorizon1KaiDu As Single
Private mvartlfHorizon2KaiDu As Single
Private mvartlfLeft60KgKaiDu As Single
Private mvarAlarmDown As Single
Private mvarMassInHeight As Single
Private mvarHeightInMass As Single
Private mvarjlgjsYeWei_TiQianLiang As Single '本地复本
Private mvarBaseAddress As Integer
Private mvartlfChannel As Integer
'**********************
'事件
'**********************
Public Event yjaNotEnoughAlarm()
'**********************
'控制
'**********************
Public Sub Control()
'//////////////////////////////////////////////////////
'以下为专家系统控制算法
'//////////////////////////////////////////////////////
'当选用其中一种算法时,请注释其它任何算法
'**********************************
'算法1:以温度分段,综合考虑投料量
'**********************************
'If mvarfyfWenDu < -35 Then
' mvartlfKaiDu = mvartlfStartKaiDu + 12
'End If
'
'If (mvarfyfWenDu >= -35) And (mvarfyfWenDu < -28) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 10
'End If
'
'If (mvarfyfWenDu >= -28) And (mvarfyfWenDu < -25) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 8
'End If
'
'If (mvarfyfWenDu >= -25) And (mvarfyfWenDu < -23) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 5
'End If
'
'If (mvarfyfWenDu >= -23) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 6) Then
' mvartlfKaiDu = mvartlfStartKaiDu
'End If
'
'If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 6) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 3) Then
' If mvaryjaYiYongLiang < 60 Then
' mvartlfKaiDu = mvartlfStartKaiDu
' End If
' If (mvaryjaYiYongLiang >= 60) And (mvaryjaYiYongLiang <= 90) Then
' If mvarfyfWenDuXieLv <= 0.015 Then
' mvartlfKaiDu = mvartlf70KgKaiDu
' Else
' mvartlfKaiDu = mvartlfKaiDu - 10
' End If
' End If
' If (mvaryjaYiYongLiang > 90) Then
' mvartlfKaiDu = mvartlfHorizon1KaiDu
' End If
'End If
'
'If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 3) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 1) Then
' If (mvaryjaYiYongLiang >= 90) And (mvaryjaYiYongLiang < 150) Then
' mvartlfKaiDu = mvartlfHorizon1KaiDu
' End If
' If (mvaryjaYiYongLiang >= 150) And (mvaryjaShengYuLiang > 50) Then
' mvartlfKaiDu = mvartlfHorizon2KaiDu
' End If
' If mvaryjaShengYuLiang <= 50 Then
' mvartlfKaiDu = mvartlfLeft60KgKaiDu
' End If
' If mvarfyfWenDuXieLv > 0.018 Then
' mvartlfKaiDu = mvartlfKaiDu - 20
' End If
' If mvarfyfWenDuXieLv > 0.02 Then
' mvartlfKaiDu = 0
' End If
' If mvarfyfWenDuXieLv < 0 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvarfyfWenDuXieLv < -0.005 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvaryjaShengYuLiang > 50 And mvaryjaYiYongLiang > 120 Then
' If mvartlfKaiDu > 60 Then
' mvartlfKaiDu = 60
' End If
' End If
'End If
'
'If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 1) And (mvarfyfWenDu < mvarfyfwdSheDingValue) Then
' If mvaryjaShengYuLiang < 50 Then
' mvartlfKaiDu = mvartlfLeft60KgKaiDu
' End If
' If mvarfyfWenDuXieLv > 0 Then
' mvartlfKaiDu = mvartlfKaiDu - 15
' End If
' If mvarfyfWenDuXieLv > 0.005 Then
' mvartlfKaiDu = 0
' End If
' If mvarfyfWenDuXieLv < 0 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvarfyfWenDuXieLv < -0.005 Then
' mvartlfKaiDu = mvartlfKaiDu + 8
' End If
' If mvaryjaShengYuLiang > 50 And mvaryjaYiYongLiang > 120 Then
' If mvartlfKaiDu > 40 Then
' mvartlfKaiDu = 40
' End If
' End If
'End If
'
'If (mvarfyfWenDu >= mvarfyfwdSheDingValue) Then
' mvartlfKaiDu = 0
'End If
'***********************************************
'算法1-1(算法1的改进):以温度分段,综合考虑投料量
'***********************************************
If mvarfyfWenDu < -35 Then
mvartlfKaiDu = mvartlfStartKaiDu + 12
End If
If (mvarfyfWenDu >= -35) And (mvarfyfWenDu < -28) Then
mvartlfKaiDu = mvartlfStartKaiDu + 10
End If
If (mvarfyfWenDu >= -28) And (mvarfyfWenDu < -25) Then
mvartlfKaiDu = mvartlfStartKaiDu + 8
End If
If (mvarfyfWenDu >= -25) And (mvarfyfWenDu < -23) Then
mvartlfKaiDu = mvartlfStartKaiDu + 5
End If
If (mvarfyfWenDu >= -23) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 6) Then
mvartlfKaiDu = mvartlfStartKaiDu
If mvaryjaShengYuLiang < 50 Then
mvartlfKaiDu = mvartlfLeft60KgKaiDu
End If
End If
If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 6) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 3) Then
If mvaryjaYiYongLiang < 60 Then
mvartlfKaiDu = mvartlfStartKaiDu
End If
If (mvaryjaYiYongLiang >= 60) And (mvaryjaYiYongLiang <= 90) Then
If mvarfyfWenDuXieLv <= 0.015 Then
mvartlfKaiDu = mvartlf70KgKaiDu
Else
mvartlfKaiDu = mvartlfKaiDu - 10
End If
End If
If (mvaryjaYiYongLiang > 90) Then
mvartlfKaiDu = mvartlfHorizon1KaiDu
End If
If mvaryjaShengYuLiang < 50 Then
mvartlfKaiDu = mvartlfLeft60KgKaiDu
End If
End If
If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 3) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 1) Then
If (mvaryjaYiYongLiang >= 90) And (mvaryjaYiYongLiang < 150) Then
mvartlfKaiDu = mvartlfHorizon1KaiDu
End If
If (mvaryjaYiYongLiang >= 150) And (mvaryjaShengYuLiang > 50) Then
mvartlfKaiDu = mvartlfHorizon2KaiDu
End If
If mvaryjaShengYuLiang <= 50 Then
mvartlfKaiDu = mvartlfLeft60KgKaiDu
End If
If mvarfyfWenDuXieLv > 0.018 Then
mvartlfKaiDu = mvartlfKaiDu - 20
End If
If mvarfyfWenDuXieLv > 0.02 Then
mvartlfKaiDu = 0
End If
If mvarfyfWenDuXieLv < 0 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
If mvarfyfWenDuXieLv < -0.005 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
If mvaryjaShengYuLiang > 50 And mvaryjaYiYongLiang > 120 Then
If mvartlfKaiDu > 60 Then
mvartlfKaiDu = 60
End If
End If
End If
If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 1) And (mvarfyfWenDu < mvarfyfwdSheDingValue) Then
If mvaryjaShengYuLiang < 50 Then
mvartlfKaiDu = mvartlfLeft60KgKaiDu
End If
If mvarfyfWenDuXieLv > 0 Then
mvartlfKaiDu = mvartlfKaiDu - 10
End If
If mvarfyfWenDuXieLv > 0.005 Then
mvartlfKaiDu = mvartlfKaiDu - 15
End If
If mvarfyfWenDuXieLv > 0.01 Then
mvartlfKaiDu = 0
End If
If mvarfyfWenDuXieLv < 0 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
If mvarfyfWenDuXieLv < -0.005 Then
mvartlfKaiDu = mvartlfKaiDu + 8
End If
If mvaryjaShengYuLiang > 50 And mvaryjaYiYongLiang > 120 Then
If mvartlfKaiDu > 40 Then
mvartlfKaiDu = 40
End If
End If
End If
If mvaryjaYiYongLiang <= 80 Then
If mvarfyfWenDuXieLv < -0.005 Then
mvartlfKaiDu = mvartlfKaiDu + 8
End If
If mvarfyfWenDuXieLv < -0.01 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
End If
If mvaryjaYiYongLiang >= 130 Then
If mvarfyfwedu <= mvarfyfwdSheDingValue - 2 Then
mvartlfKaiDu = mvartlfKaiDu + 8
End If
If mvarfyfwedu <= mvarfyfwdSheDingValue - 3 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
If mvarfyfwedu <= mvarfyfwdSheDingValue - 4 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
If mvarfyfWenDuXieLv < 0 Then
mvartlfKaiDu = mvartlfKaiDu + 10
End If
End If
If (mvarfyfWenDu >= mvarfyfwdSheDingValue) Then
mvartlfKaiDu = 0
End If
'**********************************
'算法2:以投料量分段,综合考虑温度
'**********************************
'If (mvaryjaYiYongLiang <= 70) Then
' If mvarfyfWenDu < -35 Then
' mvartlfKaiDu = mvartlfStartKaiDu + 12
' End If
' If (mvarfyfWenDu >= -35) And (mvarfyfWenDu < -28) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 10
' End If
' If (mvarfyfWenDu >= -28) And (mvarfyfWenDu < -25) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 8
' End If
' If (mvarfyfWenDu >= -25) And (mvarfyfWenDu < -23) Then
' mvartlfKaiDu = mvartlfStartKaiDu + 5
' End If
' If (mvarfyfWenDu >= -23) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 6) Then
' mvartlfKaiDu = mvartlfStartKaiDu
' End If
' If (mvarfyfWenDu < mvarfyfwdSheDingValue - 6) Then
' If mvarfyfWenDuXieLv <= 0.003 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvaryjaYiYongLiang > 30 Then
' If mvarfyfWenDuXieLv >= 0.02 Then
' mvartlfKaiDu = mvartlfKaiDu - 10
' End If
' If mvarfyfWenDuXieLv >= 0.025 Then
' mvartlfKaiDu = mvartlfKaiDu - 20
' End If
' End If
' End If
' If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 6) Then
' If mvarfyfWenDuXieLv > 0.0184 Then
' mvartlfKaiDu = mvartlfKaiDu - 10
' End If
' If mvarfyfWenDuXieLv >= 0.02 Then
' mvartlfKaiDu = mvartlfKaiDu - 20
' End If
' End If
'End If
'
'If (mvaryjaYiYongLiang > 70) And (mvaryjaYiYongLiang <= 90) Then
' If mvarfyfWenDu < mvarfyfwdSheDingValue - 6 Then
' mvartlfKaiDu = mvartlfStartKaiDu
' If mvarfyfWenDuXieLv > 0.02 Then
' mvartlfKaiDu = mvartlfKaiDu - 15
' End If
' If mvarfyfWenDuXieLv < 0.01 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvarfyfWenDuXieLv < 0.005 Then
' mvartlfKaiDu = mvartlfKaiDu + 15
' End If
' End If
' If (mvarfyfWenDu >= mvarfyfwdSheDingValue - 6) And (mvarfyfWenDu < mvarfyfwdSheDingValue - 2) Then
' mvartlfKaiDu = mvartlf70KgKaiDu
' If mvarfyfWenDuXieLv > 0.018 Then
' mvartlfKaiDu = mvartlfKaiDu - 15
' End If
' If mvarfyfWenDuXieLv < 0.01 Then
' mvartlfKaiDu = mvartlfKaiDu + 10
' End If
' If mvarfyfWenDuXieLv < 0.005 Then
' mvartlfKaiDu = mvartlfKaiDu + 15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -