📄 mainfrm.frm
字号:
Next
For i% = 0 To 2
Imapumpz(i%).Picture = LoadPicture(bmpdir & "pumpz" & i% & ".bmp")
Imapumpy(i%).Picture = LoadPicture(bmpdir & "pumpy" & i% & ".bmp")
Next
'------------------------------
For i% = 1 To 4
Load Imgspzqg(i%)
Load Imgczzqg(i%)
Load Imgspjsg(i%)
Load Imgczjsg(i%)
Next
For i% = 0 To 4 '
Imgspzqg(i%) = LoadPicture(bmpdir & "Spzqg" & i% & ".bmp")
Imgczzqg(i%) = LoadPicture(bmpdir & "Czzqg" & i% & ".bmp")
Imgspjsg(i%) = LoadPicture(bmpdir & "SPJSG" & i% & ".bmp")
Imgczjsg(i%) = LoadPicture(bmpdir & "CZJSG" & i% & ".bmp")
Next
Me.Caption = SysTitle & " 2005.6.10" & " " & Wtkfdw & " Tel 23745018"
ReadS7_300
Command1_Click (0)
tcpserver.LocalPort = 1001 '收听端口
tcpserver.Listen
qiantai = 1
For i% = 0 To 5
o$ = "@" & Format(i%, "00") & "D1:"
OutComm(i%) = o$ + fcs(o$) + Chr(13)
Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
res = unload_tool()
End
End Sub
Private Sub geiding_Click()
FormSetup.Show
End Sub
Private Sub hlstatu_Click()
qiantai = 0
FormZtLs.Show
End Sub
Private Sub imageBJ_Click()
FormBjSs.Show
End Sub
Private Sub mdfpas_Click()
'On Error Resume Next
Dim rel
Dim paswrd1, paswrd, nowword As String
rel = MsgBox("真要改变系统口令?", 36, SysTitle)
If rel = 7 Then Exit Sub '虎口水厂反冲洗微机监控系统
'-----------------------------------------------
finame1$ = sysdir + "\set_pas.txt"
If Dir$(finame1$) <> "" Then
Open finame1$ For Input As #1
Input #1, paswrd1
Close #1
Else
paswrd1 = "Weicj"
End If
'===============================
paswrd = Trim$(paswrd1) '2000-4-29
Do While nowword <> paswrd
nowword = InputBox("请输入原口令", SysTitle, "")
If "" = nowword Then
Exit Sub
Else
If nowword = paswrd Or nowword = "Weicj" Then
Exit Do
Else
If 2 = MsgBox("口令错误,重新输入口令吗?", 33, SysTitle) Then
Exit Sub
End If
End If
End If
Loop
'------------
again:
nowword1 = InputBox("请输入新口令:", SysTitle, "")
If "" = nowword1 Then
Exit Sub
End If
nowword2 = InputBox("请再一次输入新口令:", SysTitle, "")
If "" = nowword2 Then
Exit Sub
End If
If nowword1 = nowword2 Then
Open sysdir + "\set_pas.txt" For Output As #1
Print #1, nowword1
Close #1
Exit Sub
End If
rel = MsgBox("两次输入的口令不一致,是否重新输入? ", 36, SysTitle)
If rel = 7 Then Exit Sub
GoTo again
End Sub
Private Sub MSComm1_OnComm()
Inzfc = Inzfc & MSComm1.Input
If InStr(Inzfc, Chr(13)) Then
'--------------------------------
statustx = 1 '通讯正常标志
If InStr(Inzfc, "D1") Then
len1% = InStr(Inzfc, "D1")
num1% = Val(Mid$(Inzfc, len1% - 2, 2))
PvtAI(Ainumgl * 3 + 11 + num1%) = Mid$(Inzfc, len1% + 3, 6)
End If
'--------------------------------
Inzfc = ""
End If
End Sub
Private Sub PLCMNL_Click()
'On Error Resume Next
If PLCMNL.Caption <> "关闭" Then
PLCMNL.Caption = "关闭"
MSFlexGrid1.Visible = True
ViewmnlS7 = 1
MSFlexGrid1.Clear
MSFlexGrid1.Width = 3600
MSFlexGrid1.Height = 10000
MSFlexGrid1.Rows = BlnumZA(0) + 2 + 2
MSFlexGrid1.TextMatrix(0, 0) = "Analog"
MSFlexGrid1.TextMatrix(0, 1) = "Byte"
MSFlexGrid1.TextMatrix(0, 2) = "Word"
For i% = 0 To BlnumZA(0)
MSFlexGrid1.TextMatrix(i% + 1, 0) = AI_Nam(i%)
MSFlexGrid1.TextMatrix(i% + 1, 1) = Chan_Ai(i%)
Next
MSFlexGrid1.TextMatrix(i% + 1, 0) = "1#开关量"
MSFlexGrid1.TextMatrix(i% + 2, 0) = "2#开关量"
MSFlexGrid1.ColAlignment(0) = 1
MSFlexGrid1.ColAlignment(1) = 3
MSFlexGrid1.ColAlignment(2) = 3
Else
PLCMNL.Caption = "S7300原始输入"
MSFlexGrid1.Visible = False
ViewmnlS7 = 0
End If
End Sub
Private Sub setsens_Click(Index As Integer)
frmselec = Index
passwrd.Show
End Sub
Private Sub shei0_Click()
If shei0.Caption = "显示0水位线" Then
Line1(76).Visible = True
shei0.Caption = "关显示0水位线"
Else
shei0.Caption = "显示0水位线"
Line1(76).Visible = False
End If
End Sub
Private Sub sszt_Click()
FormZtSs.Show
End Sub
Private Sub StatusBar1_PanelClick(ByVal Panel As ComctlLib.Panel)
If InStr(Panel, "#") Then
FormZtSs.Show
Else
daterq_Click
End If
End Sub
Private Sub tcpServer_Close()
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Listen '侦听模式
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Accept requestID '接受具有 requestID 参数的连接。
End Sub
Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
'On Error Resume Next
Dim strData As String '为进入的数据声明一个变量。
tcpserver.GetData strData
If InStr(strData, "@RDSSSJ") Then
strData = "@RDSSSJ" & StringDI & "AI" & StringAI & "END"
tcpserver.SendData strData
Exit Sub
End If
If InStr(strData, "@RDSSQX") Then
StringSSQX = ""
For i% = 0 To SsqxNum
For j% = 0 To 300
StringSSQX = StringSSQX & SSPvt(i%, j%) & ","
Next
Next
strData = "@RDSSQX" & StringSSQX & "END"
tcpserver.SendData strData
Exit Sub
End If
'=============================================
len1% = InStr(strData, "@READLSDATA")
len2% = InStr(strData, "END")
If len1% <> 0 Then
filenow$ = Mid$(strData, len1% + 11, len2% - len1% - 11)
If Dir$(filenow$) <> "" Then
Open filenow$ For Binary As #11
ll& = LOF(11)
recoda$ = Space(ll&)
Get #11, , recoda$ '获得文件内容
Close #11
tcpserver.SendData recoda$ & "END"
Else
tcpserver.SendData "NULLEND"
End If
End If
End Sub
Private Sub Timer2_Timer()
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Listen
Timer2.Enabled = False
End Sub
Private Sub TimerDI_Timer()
''On Error Resume Next
If qiantai = 0 Then Exit Sub
'----------------------------------------------------
cunt3 = cunt3 + 1
If cunt3 > 2 Then cunt3 = 0
cunt5 = cunt5 + 1
If cunt5 > 4 Then cunt5 = 0
'======引风机,及排烟=============
If PvtAI(4 + glnum * Ainumgl) > 5 Then yanq% = 1
If Run_Flag(10) <> yanq% Then
Run_Flag(10) = yanq%
If Run_Flag(10) = 0 Then
ImageYF.Picture = LoadPicture("")
Imagyan.Picture = LoadPicture("")
End If
End If
If Run_Flag(10) = 1 Then
ImageYF.Picture = Imapumpy(cunt3).Picture
Imagyan.Picture = ImgYan(cunt3).Picture
End If
'======鼓风机=============
If PvtAI(5 + glnum * Ainumgl) > 5 Then Flaggf% = 1
If Run_Flag(11) <> Flaggf% Then
Run_Flag(11) = Flaggf%
If Run_Flag(11) = 0 Then
ImageGF.Picture = LoadPicture("")
End If
End If
If Run_Flag(11) = 1 Then
ImageGF.Picture = Imapumpz(cunt3).Picture
End If
'======动态水流量显示=============
If PvtAI(3 + glnum * Ainumgl) > 0.5 Then sui% = 1
If Run_Flag(12) <> sui% Then
Run_Flag(12) = sui%
If Run_Flag(12) = 0 Then
Image5.Picture = LoadPicture("")
Image6.Picture = LoadPicture("")
End If
End If
If Run_Flag(12) = 1 Then
Image5.Picture = Imgspjsg(cunt5).Picture
Image6.Picture = Imgczjsg(cunt5).Picture
End If
'======动态蒸汽流量显示=============
If PvtAI(2 + glnum * Ainumgl) > 0.5 Then zq% = 1
If Run_Flag(13) <> zq% Then
Run_Flag(13) = zq%
If Run_Flag(13) = 0 Then
Image3.Picture = LoadPicture("")
Image4.Picture = LoadPicture("")
End If
End If
If Run_Flag(13) = 1 Then
Image3.Picture = Imgspzqg(cunt5).Picture
Image4.Picture = Imgczzqg(cunt5).Picture
End If
End Sub
Private Sub ReadS7_300()
If writplc = 1 Then Exit Sub
On Error Resume Next
'BLOCKNO = IDBLOCKNO.Text
BLOCKNO = 2 '---------------读取数据块 DB2
no = 0 '--------------------起始字节
AMOUNT = 98 '---------------读取的字节数
StringAI = ""
'If (res = 0) Then
'res = d_field_read(BLOCKNO, no, AMOUNT, value_byte(0)) '2003-5-24
'----------------'plc 模拟量
For i% = 0 To BlnumZA(0) - 6
ii% = Chan_Ai(i%)
' pvtemp = 256 * Val(value_byte(ii%)) + Val(value_byte(ii% + 1))
pvtemp = Int(27648 * Rnd)
If ViewmnlS7 = 1 Then 's7300模拟量察看
aa$ = Right$("0000" & Hex(pvtemp), 4)
MSFlexGrid1.TextMatrix(i% + 1, 2) = aa$ '"&H" & aa$
End If
val1 = kkk(i%) * pvtemp + bbb(i%)
If K_lb(i%) < 1 Then '滤波
val1 = K_lb(i%) * val1 + (1 - K_lb(i%)) * PvtAI(i%) '一阶惯性滤波
End If
PvtAI(i%) = (Int(beishu(i%) * val1 + 0.5)) / beishu(i%) '取整
If PvtAI(i%) < LiangC(0, i%) Then PvtAI(i%) = LiangC(0, i%) '限幅
If PvtAI(i%) > LiangC(1, i%) Then PvtAI(i%) = LiangC(1, i%)
StringAI = StringAI & PvtAI(i%) & ","
Next
'==============================================================='plc 开关量================
' temp1 = 256 * Val(value_byte(97)) + Val(value_byte(96)) '-------1#炉开关量
fl% = 1
If flag_kg1 <> temp1 Then
flag_kg1 = temp1
Call r_bit(temp1)
For i% = 0 To 12 '-------------------------------------------1#炉(第一个字)12个开关量
PvtDI(Chan_Di(0, i%)) = ir000(i%)
Next
For i% = 0 To 3
PvtDI(i%) = 1 - PvtDI(i%) '-------------------------------回路状态反相
Next
fl% = 1
End If
'temp2 = 256 * Val(value_byte(99)) + Val(value_byte(98)) '-----2#炉开关量
If flag_kg2 <> temp2 Then
flag_kg2 = temp2
Call r_bit(temp2)
For i% = 0 To 9 '------------------------------------------- 2#炉(第二个字)10个开关量
PvtDI(Chan_Di(1, i%)) = ir000(i%)
Next
fl% = 1
For i% = Dinumgl To 3 + Dinumgl
PvtDI(i%) = 1 - PvtDI(i%)
Next
End If
' temp2 = 256 * Val(value_byte(99)) + Val(value_byte(98)) '-----2#炉开关量
If flag_kg3 <> temp2 Then
flag_kg3 = temp2
Call r_bit(temp2)
For i% = 0 To 9 '------------------------------------------- 3#炉(第三个字)10个开关量
PvtDI(Chan_Di(2, i%)) = ir000(i%)
Next
fl% = 1
For i% = 2 * Dinumgl To 3 + 2 * Dinumgl
PvtDI(i%) = 1 - PvtDI(i%)
Next
End If
If fl% = 1 Then
StringDI = ""
For i% = 0 To BlnumZA(1)
StringDI = StringDI & PvtDI(i%)
Next
End If
If ViewmnlS7 = 1 Then '--------------------s7300模拟量察看
aa$ = Right$("0000" & Hex(temp1), 4)
MSFlexGrid1.TextMatrix(BlnumZA(0) + 2, 2) = aa$
aa$ = Right$("0000" & Hex(temp2), 4)
MSFlexGrid1.TextMatrix(BlnumZA(0) + 3, 2) = aa$
End If
'------------------------------报警检测
Bj_Flag = 0
For i% = 8 To 21
If PvtDI(i%) = 1 Then
Bj_Flag = 1
Exit For
End If
Next
'--------------------------------------------
If (res <> 0) Then
' ERROR_FRM.Show 1, Me
' Timer1.Enabled = False
End If
End Sub
Private Sub r_bit(canshu)
Dim bit1, aaa As Long
'zfccs = "&H" & a$ '-----------输入字符串转换成十六进制数
'canshu = zfccs '--------------十六进制数转换成十进制数
bit1 = 1
For i% = 0 To 15
aaa = bit1 And canshu
bit1 = bit1 * 2
ir000(i%) = 0
If aaa Then ir000(i%) = 1
Next
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -