📄 module3.bas
字号:
dtype = RecData(3)
Dim file As String
file = App.Path & "\para\" & dev_NumToName(dtype) & ".ini"
TempLen = RecData(5) - 2
k = 8
j = TempLen / 8 'SOE数量
For i = 1 To j
SOE_numble = SOE_numble + 1
msecond = (RecData(k) + (RecData(k + 1) * 256)) And &H3FF
second = (RecData(k + 1) And &HFC) / 4
minute = RecData(k + 2) And &H3F
hour = (((RecData(k + 2) And &HC0) / 64) + ((RecData(k + 3) And &H7) * 4))
day = (RecData(k + 3) And &HF8) / 8
month = RecData(k + 4) And &HF
year = RecData(k + 5) + 2000
flag = RecData(k + 6) And &H1
yx_sn = (((RecData(k + 6) And &HFE) / 2) + (RecData(k + 7) * 128)) And &H7FFF
k = k + 8
With frmMsgList.ListView1
.ListItems.Add
m = .ListItems.Count
.ListItems(m).Text = m '序号
.ListItems(m).SubItems(1) = addr '装置地址
.ListItems(m).SubItems(2) = dev_NumToName(dtype) '装置类型名称
.ListItems(m).SubItems(3) = yx_sn '遥信点号
.ListItems(m).SubItems(4) = GetINI("YX_NAME", "YX" & yx_sn + 1, file)
.ListItems(m).SubItems(5) = year & "年" & month & "月" & day & "日" & _
hour & "时" & minute & "分" & second & "秒" & msecond & "毫秒"
If flag Then
.ListItems(m).SubItems(6) = "合"
Else
.ListItems(m).SubItems(6) = "分"
End If
End With
Next i
End Sub
Public Sub Dispose_sysp()
Dim TempLen As Integer
Dim i, j As Integer
Dim k As Long
Dim addr As Integer
TempLen = RecData(5) + 5
addr = RecData(2)
j = 1
For i = 8 To TempLen Step 2
k = RecData(i + 1)
Dev_Par(addr).sys_cfg(j) = RecData(i) + k * 256
j = j + 1
Next i
If addr = Cur_Dev.addr Then
Form1.SetSysP (2)
End If
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & Now & "读系统配置完成。"
End With
End Sub
Public Sub wDispose_sysp()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写系统配置正确。"
Else
.Text = .Text & vbCrLf & Now & "写系统配置错误!"
End If
End With
End Sub
Public Sub wDispose_ycp()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写遥测配置正确。"
Else
.Text = .Text & vbCrLf & Now & "写遥测配置错误!"
End If
End With
End Sub
Public Sub Dispose_ycp()
Dim TempLen As Integer
Dim i, j As Integer
Dim k As Long
Dim a, b As Double
Dim addr As Integer
TempLen = RecData(5) + 5
addr = RecData(2)
j = 1
For i = 1 To 64
k = RecData(i * 2 + 7) * 256 + RecData(i * 2 + 6)
If k > 32767 Then
k = 65536 - k
End If
Dev_Par(addr).yc_cfg(i) = k
Next i
j = 65
For i = 136 To TempLen Step 2
k = RecData(i + 1)
Dev_Par(addr).yc_cfg(j) = RecData(i) + k * 256
j = j + 1
Next i
'角度设置
For i = 1 To 16
If (Dev_Par(addr).yc_cfg(i * 2 + 31) <> 0) Then
a = Atn(CDbl(Dev_Par(addr).yc_cfg(i * 2 + 32)) / CDbl(Dev_Par(addr).yc_cfg(i * 2 + 31))) * 180 / PI
If (Dev_Par(addr).yc_cfg(i * 2 + 31)) < 0 Then
a = a + 180#
If a >= 180# Then
a = a - 360#
End If
End If
Else
If (Dev_Par(addr).yc_cfg(i * 2 + 32) >= 0) Then
a = 90#
Else
a = -90#
End If
End If
Dev_Par(addr).angle(i) = a
Next i
If addr = Cur_Dev.addr Then
Form1.SetYCP (2)
Form1.SetChxsP (2)
End If
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & Now & "读遥测配置完成。"
End With
End Sub
Public Sub Dispose_dop()
Dim TempLen As Integer
Dim i, j, m, n As Integer
Dim k As Long
Dim addr As Integer
TempLen = RecData(5) + 5
addr = RecData(2)
n = 1
For i = 8 To TempLen - DO_FUNC_NUM Step DO_FUNC_NUM
m = 0
For j = 2 To DO_FUNC_NUM + 1
Dev_Par(addr).do_cfg(j, n) = RecData(i + m)
m = m + 1
Next j
n = n + 1
Next i
If addr = Cur_Dev.addr Then
Form1.SetDOP (2)
End If
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & Now & "读开出配置完成。"
End With
End Sub
Public Sub wDispose_dop()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写开出配置正确。"
Else
.Text = .Text & vbCrLf & Now & "写开出配置错误!"
End If
End With
End Sub
Public Sub wDispose_xsp()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写通道系数正确。"
Else
.Text = .Text & vbCrLf & Now & "写通道系数错误!"
End If
End With
End Sub
'读定值解析
Public Sub Dispose_setp()
Dim TempLen As Integer
Dim i, j As Integer
Dim k As Long
Dim addr As Integer
TempLen = RecData(5) + 5
addr = RecData(2)
Form1.Label21.Caption = "第" & RecData(6) & "组保护定值清单"
j = 1
For i = 8 To TempLen Step 2
k = RecData(i + 1)
Dev_Par(addr).settle(j) = RecData(i) + k * 256
j = j + 1
Next i
If addr = Cur_Dev.addr Then
Para_init_flag = True
Form1.Text1.Text = RecData(6)
Para_init_flag = False
Form1.SetSettle (2)
End If
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & Now & "读定值完成。"
End With
End Sub
Public Sub wDispose_setp()
With frmMsgList.Text1(1)
If RecData(6) = RecData(7) Then
.Text = .Text & vbCrLf & Now & "写" & RecData(6) & "组定值正确。"
Else
.Text = .Text & vbCrLf & Now & "写" & RecData(6) & "组定值错误!"
End If
End With
End Sub
Public Sub Dispose_setgp()
'查询定值组返回
With frmMsgList.Text1(1)
If RecData(6) = RecData(7) Then
.Text = .Text & vbCrLf & Now & "读取当前定值组号正确。"
Form1.Text3.Text = RecData(6)
Else
.Text = .Text & vbCrLf & Now & "读取当前定值组号错误!"
End If
End With
End Sub
Public Sub Dispose_chag_setgp()
'切换定值组返回
With frmMsgList.Text1(1)
If (RecData(6) = RecData(7)) And RecData(6) = Form1.Text13.Text Then
.Text = .Text & vbCrLf & Now & "切换定值正确。"
Form1.Text3.Text = RecData(6)
Else
.Text = .Text & vbCrLf & Now & "切换定值错误!"
End If
End With
End Sub
Public Sub Dispose_xsp()
End Sub
Public Sub Dispose_ddp()
Dim TempLen As Integer
Dim i, j As Integer
Dim k As Long
Dim addr As Integer
TempLen = RecData(5) + 5
addr = RecData(2)
j = 1
For i = 8 To TempLen Step 2
k = RecData(i + 1)
Dev_Par(addr).dd_rate_cfg(j) = RecData(i) + k * 256
j = j + 1
Next i
If addr = Cur_Dev.addr Then
Form1.SetDDP (2)
End If
End Sub
Public Sub wDispose_ddp()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写电度变比正确。"
Else
.Text = .Text & vbCrLf & Now & "写电度变比错误!"
End If
End With
End Sub
Public Sub wDispose_dip()
With frmMsgList.Text1(1)
If RecData(6) = 0 And RecData(7) = 0 Then
.Text = .Text & vbCrLf & Now & "写开入配置正确。"
Else
.Text = .Text & vbCrLf & Now & "写开入配置错误!"
End If
End With
End Sub
Public Sub Dispose_dip()
Dim TempLen As Integer
Dim i, j, n As Integer
Dim k As Long
Dim addr As Integer
Dim str As String
TempLen = RecData(5) + 5
addr = RecData(2)
'功能定义
If TempLen >= 8 + 128 Then
j = 1
For i = 8 To 8 + 128 - 1
Dev_Par(addr).di_func1_cfg(j) = RecData(i)
i = i + 1
Dev_Par(addr).di_func2_cfg(j) = RecData(i)
j = j + 1
Next i
End If
'延时
If TempLen >= 8 + 128 + 64 Then
j = 1
For i = 8 + 128 To 8 + 128 + 32 - 1
Dev_Par(addr).di_delay_cfg(j) = RecData(i)
j = j + 1
Next i
End If
'遥信极性
If TempLen >= 8 + 128 + 64 + 32 Then
j = 1
For i = 8 + 128 + 64 To 8 + 128 + 64 + 32 - 1
str = DecToBin(RecData(i))
For n = 0 To 7
Dev_Par(addr).di_pro_cfg(j) = Mid(str, 8 - n, 1)
j = j + 1
Next n
Next i
End If
'遥信电度选择
If TempLen >= 8 + 128 + 64 + 32 + 8 Then
j = 1
For i = 8 + 128 + 64 + 32 To 8 + 128 + 64 + 32 + 8 - 1
str = DecToBin(RecData(i))
For n = 0 To 7
Dev_Par(addr).di_dd_cfg(j) = Mid(str, 8 - n, 1)
j = j + 1
Next n
Next i
End If
If addr = Cur_Dev.addr Then
Form1.SetDIP (2)
End If
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & Now & "读开入配置完成。"
End With
End Sub
Public Sub Dispose_protp()
End Sub
Public Sub wDispose_protp()
End Sub
Public Sub Dispose_ramp()
End Sub
Public Sub wDispose_ramp()
End Sub
Public Sub Dispose_chwavp()
End Sub
Public Sub Dispose_defp()
End Sub
Public Sub Dispose_sdzsp()
End Sub
Public Sub Dispose_xhfgp()
End Sub
Public Sub Dispose_angp()
End Sub
Public Sub Dispose_sysfp()
End Sub
Public Sub Dispose_ledfp()
End Sub
Public Sub Dispose_rstp()
End Sub
Public Sub Dispose_r_time()
With frmMsgList.Text1(1)
.Text = .Text & vbCrLf & "当前装置时间:" & _
RecData(13) + 2000 & "年" & RecData(12) & "月" & RecData(11) & "日" & _
RecData(10) & "时" & RecData(9) & "分" & RecData(8) & "秒"
.SetFocus
End With
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -