📄 frmsr3.frm
字号:
txtCID2.Text = "E1"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
txtINFO.Text = InputBox("请输入4位逆变输出电压,字母大写", "调节UPS逆变输出电压")
End If
If cmbSR2.Text = "设置调试级校正系数" Then
txtCID2.Text = "E4"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
cmbSon.AddItem "参考电压校正系数"
cmbSon.AddItem "逆变电压监测校正系数"
cmbSon.AddItem "旁路电压监测校正系数"
cmbSon.AddItem "负载电流监测校正系数"
txtLEN.Text = "A006"
End If
End Sub
Private Sub cmbSR2_Click()
Dim i As Integer
If cmbSR2.Text = "获取模拟量量化数据(浮点数)" Then
txtCID2.Text = "41"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取模拟量量化数据(定点数)" Then
txtCID2.Text = "42"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取开关量输入状态" Then
txtCID2.Text = "43"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取告警状态" Then
txtCID2.Text = "44"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "遥控" Then
txtCID2.Text = "45"
txtINFO.Text = ""
txtLEN.Text = "0000"
cmbSon.Clear
cmbSon.AddItem "切旁路(切到旁路)"
cmbSon.AddItem "切旁路(切离旁路)"
cmbSon.AddItem "报警消音"
cmbSon.AddItem "报警声测试"
cmbSon.AddItem "电池自检"
cmbSon.AddItem "取消遥控关机"
cmbSon.AddItem "取消电池自检"
cmbSon.AddItem "遥控开机"
cmbSon.AddItem "遥控立即关机(不关旁路)"
cmbSon.AddItem "遥控延迟关机(不关旁路)"
cmbSon.AddItem "遥控紧急关机(关旁路,保留)"
txtLEN.Text = "C004"
End If
If cmbSR2.Text = "获取系统参数(浮点数)" Then
txtCID2.Text = "46"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取系统参数(定点数)" Then
txtCID2.Text = "47"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "设定系统参数(浮点数)" Then
txtCID2.Text = "48"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
cmbSon.AddItem "设置蓄电池总电压上限" '1
cmbSon.AddItem "设置蓄电池总电压下限" '2
cmbSon.AddItem "设置蓄电池单体电压上限" '3
cmbSon.AddItem "设置蓄电池单体电压下限" '4
cmbSon.AddItem "电池自检时间长度" '5
cmbSon.AddItem "遥控关机延迟时间" '6
cmbSon.AddItem "UPS恢复延迟时间" '7
cmbSon.AddItem "是否自动重启机" '8
cmbSon.AddItem "是否允许均充设置" '9
cmbSon.AddItem "主/从/单机设置" '10
cmbSon.AddItem "主从机交替工作时间" '11
cmbSon.AddItem "UPS工作模式设置" '12
cmbSon.AddItem "UPS告警继电器设置" '13
txtLEN.Text = "600A"
End If
If cmbSR2.Text = "设定系统参数(定点数)" Then
txtCID2.Text = "49"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取系统历史数据(浮点数)" Then
txtCID2.Text = "4A"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取系统历史数据(定点数)" Then
txtCID2.Text = "4B"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取历史告警" Then
txtCID2.Text = "4C"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
cmbSon.AddItem "获取第一条历史告警命令"
cmbSon.AddItem "收到历史告警正确,要求上送下一条"
cmbSon.AddItem "接收历史告警错误,重发上一条"
txtLEN.Text = "E002"
End If
If cmbSR2.Text = "获取监控模块时间" Then
txtCID2.Text = "4D"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "设定监控模块时间" Then
txtCID2.Text = "4E"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取通信协议版本号" Then
txtCID2.Text = "4F"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取设备地址" Then
txtCID2.Text = "50"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取设备(监控模块)厂家信息" Then
txtCID2.Text = "51"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
End If
If cmbSR2.Text = "获取DSP某内存单元数据" Then
txtCID2.Text = "E0"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
txtINFO.Text = InputBox("请输入4位数内存单元地址,字母大写", "内存地址输入")
End If
If cmbSR2.Text = "调节UPS输出电压范围" Then
txtCID2.Text = "E1"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
txtINFO.Text = InputBox("请输入4位逆变输出电压,字母大写", "调节UPS逆变输出电压")
End If
If cmbSR2.Text = "设置调试级校正系数" Then
txtCID2.Text = "E4"
txtLEN.Text = "0000"
txtINFO.Text = ""
cmbSon.Clear
cmbSon.AddItem "参考电压校正系数"
cmbSon.AddItem "逆变电压监测校正系数"
cmbSon.AddItem "旁路电压监测校正系数"
cmbSon.AddItem "负载电流监测校正系数"
txtLEN.Text = "A006"
End If
End Sub
Private Sub cmdCHK_Click()
Dim chksum As Long
Dim length As Integer
Dim i As Integer
txtCHK.Text = ""
If cmbSR1.Text <> "" And cmbSR2.Text <> "" Then
chksum = 0
chksum = Asc(Left(txtVER.Text, 1)) + Asc(Right(txtVER.Text, 1))
chksum = chksum + Asc(Left(cmbADR.Text, 1)) + Asc(Right(cmbADR.Text, 1))
chksum = chksum + Asc(Left(txtCID1.Text, 1)) + Asc(Right(txtCID1.Text, 1))
chksum = chksum + Asc(Left(txtCID2.Text, 1)) + Asc(Right(txtCID2.Text, 1))
chksum = chksum + Asc(Mid(txtLEN.Text, 1, 1)) + Asc(Mid(txtLEN.Text, 1, 2)) + Asc(Mid(txtLEN.Text, 1, 3)) + Asc(Mid(txtLEN.Text, 1, 4))
If txtINFO.Text <> "" Then
length = Len(txtINFO.Text)
For i = 1 To length Step 1
chksum = chksum + Asc(Mid(txtINFO.Text, i, 1))
Next i
End If
chksum = chksum Mod 65535
chksum = Not chksum
chksum = chksum + 1
txtCHK.Text = Right(Hex(chksum), 4)
cmdSend.Enabled = True
Else
If cmbSR2.Text = "" Then
MsgBox "请选择命令类型", vbOKOnly, "通知"
ElseIf cmbSR1.Text = "" Then
MsgBox "请选择远端SIM卡号码", vbOKOnly, "通知"
End If
End If
End Sub
Private Sub cmdEnd_Click()
Unload Me
End Sub
Private Sub cmdProcess_Click()
frmFind.Adodc1.Recordset.AddNew
frmFind.txtSIM.Text = phoneNum
frmFind.txtTime.Text = phoneTime
frmFind.txtData.Text = receiveStr
frmFind.Adodc1.Recordset.Update
End Sub
Private Sub cmdReceive_Click()
frmFind.Show
End Sub
Private Sub cmdSend_Click()
tiSR1.Enabled = False
tisr2.Enabled = False
tiSR3.Enabled = False
tiSR4.Enabled = False
Unload frmFind
sendStr = txtSOH.Text + txtVER.Text + cmbADR.Text + txtCID1.Text + txtCID2.Text
sendStr = sendStr + txtLEN.Text + txtINFO.Text + txtCHK.Text + txtEOH.Text
'txtOutput.Text = sendStr
If Not frmMDI.comm.PortOpen Then
frmMDI.comm.PortOpen = True
End If
txtczxs.Text = ""
txtBack.Text = ""
frmMDI.comm.Output = "AT+CMGS=" + cmbSR1.Text + Chr(13) + Chr(10)
tiSR1.Enabled = True
intall = 0
End Sub
Private Sub Form_Load()
cmdSend.Enabled = False
cmbSR2.AddItem "获取模拟量量化数据(浮点数)" '1
cmbSR2.AddItem "获取模拟量量化数据(定点数)" '2
cmbSR2.AddItem "获取开关量输入状态" '3
cmbSR2.AddItem "获取告警状态" '4
cmbSR2.AddItem "遥控" '5
cmbSR2.AddItem "获取系统参数(浮点数)" '6
cmbSR2.AddItem "获取系统参数(定点数)" '7
cmbSR2.AddItem "设定系统参数(浮点数)" '8
cmbSR2.AddItem "设定系统参数(定点数)" '9
cmbSR2.AddItem "获取系统历史数据(浮点数)" '10
cmbSR2.AddItem "获取系统历史数据(定点数)" '11
cmbSR2.AddItem "获取历史告警" '12
cmbSR2.AddItem "获取监控模块时间" '13
cmbSR2.AddItem "设定监控模块时间" '14
cmbSR2.AddItem "获取通信协议版本号" '15
cmbSR2.AddItem "获取设备地址" '16
cmbSR2.AddItem "获取设备(监控模块)厂家信息" '17
cmbSR2.AddItem "获取DSP某内存单元数据" '18
cmbSR2.AddItem "调节UPS输出电压范围" '19
cmbSR2.AddItem "设置调试级校正系数" '20
cmbSR1.AddItem "13696923761"
cmbSR1.AddItem "13194095731"
cmbSR1.AddItem "13159200196"
cmbSR1.AddItem "13950001407"
cmbSR1.AddItem "13459209241"
cmbSR1.AddItem "13459209249"
For n = 1 To 254 Step 1
If n < 16 Then
cmbADR.AddItem CStr(0 & Hex(n))
Else
cmbADR.AddItem CStr(Hex(n))
End If
Next n
End Sub
Private Sub tiSR1_Timer()
Dim buf$
Dim count2 As Integer
Dim lastChr As String
count2 = 0
If frmMDI.comm.InBufferCount > 0 Then
tiSR1.Enabled = False
frmMDI.comm.InputLen = 0
buf = Trim(frmMDI.comm.Input)
lastChr = Right(buf, 1)
If lastChr = ">" Then
frmMDI.comm.Output = sendStr + Chr(26)
txtOutput.Text = sendStr
txtczxs.Text = "短信发送中"
tisr2.Enabled = True
Else
'If Count2 < 3 Then
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "短信发送失败,等待!"
frmMDI.comm.Output = "AT+CMGS=" + cmbSR1.Text + Chr(13) + Chr(10)
'Count2 = Count2 + 1
'tiSR1.Enabled = True
'Else
tiSR1.Enabled = False
'txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "数据传送失败,请重传!"
'End If
End If
End If
End Sub
Private Sub tisr2_Timer()
If frmMDI.comm.InBufferCount > 0 Then
tisr2.Enabled = False
Call GetData1
If arr_return(UBound(arr_return) - 4) = "O" And arr_return(UBound(arr_return) - 3) = "K" Then
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "短信发送成功"
tiSR3.Enabled = True
Else
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "短信发送失败,请重发!"
End If
End If
End Sub
Private Sub tiSR3_Timer()
If frmMDI.comm.InBufferCount > 0 Then
intall = intall + 1
If intall = 1 Then
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "有数据到了"
Call ReadNo
End If
If intall = 2 Then
Flag = False
tiSR3.Enabled = False
Call GetData
txtBack.Text = "接受到短信"
txtBack.Text = txtBack.Text + Chr(13) + Chr(10) + "SIM卡号码:" + phoneNum
txtBack.Text = txtBack.Text + Chr(13) + Chr(10) + "收到时间:" + phoneTime
txtBack.Text = txtBack.Text + Chr(13) + Chr(10) + "短信内容:" + receiveStr
If (mess_index(0) = Hex(7) And mess_index(1) = Hex(14)) And (mess_index(UBound(mess_index) - 1) = "0" And mess_index(UBound(mess_index)) = "D") Then
Flag = True
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "接收到的数据正确"
frmMDI.comm.Output = "AT+CMGD=" + Hex(Count4) + Chr(13) + Chr(10)
tiSR4.Enabled = True
Else
intall = 0
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "接收到错误的数据"
frmMDI.comm.Output = "AT+CMGD=" + Hex(Count4) + Chr(13) + Chr(10)
tiSR4.Enabled = True
End If
End If
End If
End Sub
Private Sub tiSR4_Timer()
If frmMDI.comm.InBufferCount > 0 Then
tiSR4.Enabled = False
Call GetData1
If arr_return(UBound(arr_return) - 4) = "O" And arr_return(UBound(arr_return) - 3) = "K" Then
txtczxs.Text = txtczxs.Text + Chr(13) + Chr(10) + "SIM卡上的短信已删除"
cmdSend.Enabled = True
Else
tiSR4.Enabled = True
frmMDI.comm.Output = "AT+CMGD=" + Hex(Count4) + Chr(13) + Chr(10)
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -