📄 mdlmain.bas
字号:
Attribute VB_Name = "mdlMain"
'*************湖南仪峰公司新模块化DCS组件*************************
'作者: 彭逢望
'编写日期: 2004-6-15
'修改日期: 2004-8-7
'修改人: 彭逢望
'*****************************************************************
Option Explicit '常数声明
Public Const ErrorTitle = "湖南仪峰优化控制技术有限公司"
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Declare Function WSAGetLastError Lib "wsock32.DLL" () As Long
Private Declare Function WSAStartup Lib "wsock32.DLL" (ByVal wVersionRequired&, lpWSAData As WSAData) As Long
Private Declare Function WSACleanup Lib "wsock32.DLL" () As Long
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function CalcExpress Lib "calc.dll" (ByVal str As String) As Double
Public Declare Function CalcExpressVar Lib "calc.dll" (ByVal str As String, var As Any) As Double
Private Declare Function gethostbyname Lib "wsock32.DLL" (ByVal hostname$) As Long
Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&)
Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1
Private Const SOCKET_ERROR = -1
Private Const WSADescription_Len = 256
Private Const WSASYS_Status_Len = 128
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type
Private Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription(0 To WSADescription_Len) As Byte
szSystemStatus(0 To WSASYS_Status_Len) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
'用户信息(班信息)
Type UserInfo
ID As Long
Name As String * 16
Monitor As String * 8
priOperator As String * 8
subOperator As String * 8
password As String * 16
Popedom As Long
End Type
'单炉信息
Type StoveInfo
runstate As Integer '1运行状态 (2:无设备;0:停炉;1:运行)
RunCount As Integer
Counter As Integer '2时间
CurrentStep As Integer '3步序
Cycle As Integer '4循环数
CycleLJ As Integer
RHS As Boolean '热回收状态
HS_Control As Integer '5回收
GL_Control As Integer '6给料
GL_Count As Integer '给料次数
CF_Control As Integer '7吹风时间控制
SC_Control As Integer '8上吹时间控制
XC_Control As Integer
SXWD_Control As Integer '9上行温度控制
XXWD_Control As Integer '10下行温度控制
Queue_Control As Integer '11吹风排队
SJN_Control As Integer '12加氮
XJN_Control As Integer
CycleTime As Integer '13循环时间
preCF_Control As Integer '上次吹风时间控制
preSC_Control As Integer '上次上吹时间控制
preSXWD_Control As Integer '上次上行温度控制
preXXWD_Control As Integer '上次下行温度控制
preQueue_Control As Integer '上次吹风排队
preSJN_Control As Integer '上次上加氮
preXJN_Control As Integer
preCycleTime As Integer '上次循环时间
SXWD As Integer '14上行温度采样值
XXWD As Integer '15下行温度采样值
ZHWD As Integer '16左灰温度采样值
YHWD As Integer '17右灰温度采样值
JTWD As Integer '18夹套温度采样值
ZQYL As Single '19整齐压力采样值
ZQLL As Single
Speed As Integer '19整齐转速采样值
LTWD As Integer
SXYL As Single
XXYL As Single
RunLazy As Boolean '是否制惰
ip As String * 20 'IP地址
SetSpeed As Integer
ONSpeed As Boolean '炉条机开状态
Name As String * 2
End Type
Public StoveValveInfr() As StoveValveStatusInfr '单炉控制信息
Type StoveValveStatusInfr '单炉阀门状态信息
OnOff As String * 12 '阀门状态信息
LastAltTime As Single '上一次加煤命令请求时间
AddCoalTime As Single '加煤时间(开盘形及插板阀时间)
AddCoalCount As Integer '连续加煤次数
LastRequestId As Integer '最后一次加煤请求标识(1-开盘形,2-开插板,3-放料关,4-开布料,5-关布料,6-启动或关闭下一次加煤)
CurSpeed As Integer '当前炉条转速
Current As Single '当前炉条机电流
SpeedSetV As Integer '炉条转速设定值
SpeedAuto As Boolean '炉条自手动状态
StartXiaHui As Boolean
End Type
'采集点信息
Public Type SignalInfo
Tag As String * 16 '标签(仪表位号)
Name As String * 20 '实际描述
Unit As String * 8 '工程单位
Type As Long '信号类型
LowValue As Single '信号上限
HighValue As Single '信号上限
Value As Single '采样值
CalValue As Single '计算值
LowScale As Single '量程下值
HighScale As Single '量程上值
LowAlarm As Single '报警下值
HighAlarm As Single '报警上值
Alarm As Boolean '是否报警
Pid As Boolean '是否PID
Pid_ID As Long '输出点索引
Linear As Long '线性关系
Remote As Long '数据来源
Board As Long '母板索引号
Slot As Long '槽号
Channel As Long '模块通道号
UpdateFlag As Boolean '
Edited As Boolean '是否已经配置信息
End Type
Public Type CatenationInfo
Nmae As String
InTag() As Long
OutTag() As Long
Value As Single
Calc As Long
LowAlarm As Single
LLowAlarm As Single
HighAlarm As Single
HHighAlarm As Single
LCaten As Boolean
LLCaten As Boolean
HCaten As Boolean
HHCaten As Boolean
End Type
Public Catenation() As CatenationInfo '连锁信息
Public Type ChannelType
Name As String * 3 '对应点通道名
Index As Long '对应索引点
Key As Long
Edited As Boolean '是否已经配置信息
End Type
Public Type SlotType
Channel(7) As ChannelType
Name As String * 8 '子槽名称
Slot_Num As Long '槽号索引
Key As Long
End Type
Public Type Board
Address As String * 16 '设备地址
Port_Dip As Long '设备分配号(如5510 DIP 号)
Slot(7) As SlotType
Name As String * 12 '母槽名称
Rtrn As Long '整个槽采集命令返回长度
Cmd As String * 5 '整个槽采集命令
Key As Long
End Type
'PID调节点类型
Public Type PID_Information
Name As String * 20 '调节点名称
inID As Integer '对应输入信号的索引
outID As Integer '对应输出信号的索引
Address As String * 2 '地址
Channel As Integer '通道
KP As Single '比例系数
KI As Single '积分系数
KD As Single '微分系数
AM As Boolean '手自动调节'Ture为自动
AV As Single '自动给定
MV As Single '手动给定
PN As Boolean '正反调节
OPEN As Boolean
BV As Single '反馈值
Place As Integer '显示位置
SWjust As Boolean
End Type
Public Type CurveProperty '趋势曲线初始化定义
Name As String * 12
CurveNum As Long
CurveName(0 To 17) As String * 15
Color(0 To 17) As Long
Showhide() As String * 18
DataAxisMin() As Single
DataAxisMax() As Single
CurveData(0 To 17) As Long
CurveUnit(0 To 17) As String * 5
HighScale(0 To 17) As Single
Mag(0 To 17) As Long
End Type
'×××××变量申明×××××'
Public Pid() As PID_Information 'PID调节
Public PID_index As Long 'PID调节信号的Index
Public strPIDCommand As String 'PID调节命令
Public strPIDSYNC As String 'PID同步参数
Public PID_Number As Long
Public strTRANCommand As String
Public strOUTCommand As String
'采集点信息
'Public Type Valveinfor
' Name As String * 30
' Address As Long
' Channel As Long
' Value As Long
'End Type
'Public DSignal() As Valveinfor
Public DSignalNum As Long
Public DSignalTag() As Long
Public Read_Valve As New Read_Valve
'Public RW_Tran As New RW_Tran
'Public Read_Write4K As New Read_Write4K
'趋势曲线初始化定义
Public Curve_Dl As CurveProperty '单炉曲线数据条定义
Public Curve_Dl_R As CurveProperty
Public Curve_H() As CurveProperty '系统曲线数据条定义(氢,流量,温度,压力,其它)
Public Curve_Flux() As CurveProperty
Public Curve_Temper() As CurveProperty
Public Curve_Press() As CurveProperty
Public Curve_Other() As CurveProperty
'数据库类
'A类 采用ODBC连接数据库
Public Conn As New ADODB.Connection '''''''全部改为局部变量
Public Cmd As New ADODB.Command
'Public rs As New ADODB.Recordset
'
'Public Read_Conn As New ADODB.Connection
'Public Read_Cmd As New ADODB.Command
'Public Read_rs As New ADODB.Recordset
'
Public Write_Conn As New ADODB.Connection
Public Write_Cmd As New ADODB.Command
'Public Write_rs As New ADODB.Recordset
Public IsAcess As Boolean
'文件、计算机名类
Public iniPaths As String '信息文件保存路径
Public datPaths As String '数据文件
Public HostCount As Boolean
Public nWinsocks As Integer
Public nClientWinsocks As Integer
Public ConnectState As Boolean
Public RemoteConnectState As Boolean
Public OtherOpCur As Integer '单炉其他操作
Public SW_GL As Boolean '有无给料调节
Public SWstopstove As Boolean '有无停炉开关
Public SWxiahui As Boolean '有无下灰开关
Public SWshihuo As Boolean '有无试火开关
Public SWstarstove As Boolean '有无开炉开关
Public SWback As Boolean
Public SendPort As Integer '采集转发
Public SynchroPort As Integer '同步转发
Public RemotePort As Integer
'Public SystemIndex As Long
Public DCSName As String
Public DCSVersion As String
Public FTP_Run As Boolean
Public CountIP() As String
Public ServerRun As Integer
Public Server1Run As Boolean
Public Server2Run As Boolean
'用户信息类
Public Users() As UserInfo '用户信息
Public UserID As Integer '当前用户ID
Public blnFirstLogin As Boolean '是否
Public lngPopedom As Integer
Public mPassword As Boolean
Public strPassword(4) As String
Public ParaEdit() As Boolean
Public SoundCont As Boolean
Public DisableSound() As Boolean '消音控制
'寻优微机类
Public StoveStart As Integer
Public StoveNumber As Integer '炉群数量
Public WindowNumber As Integer '画面数量
Public Number() As Integer 'A画面炉数
Public StoveStartR As Integer
Public StoveNumberR As Integer '炉群数量
Public WindowNumberR As Integer '画面数量
Public NumberR() As Integer '画面炉数
Public Stove() As StoveInfo '单炉信息
Public blnLock As Boolean '参数锁定标记
Public Stove_Index As Integer
Public safety_Stop() As Boolean
Public paraNumber As Integer
Public UserDataNumber As Integer
Public blnGive As Boolean
Public blnMoveDl() As Boolean
Public blnMoveH() As Boolean
Public blnMoveFlux() As Boolean
Public blnMoveTemper() As Boolean
Public blnMovePress() As Boolean
Public blnMoveOther() As Boolean
Public blnRHS() As Boolean
Public Fj_Run As Boolean
Public Fj_str As String
Public Fj_Count() As Integer
Public Fj_CountAll As Integer
Public Fj_StopNum As Integer
Public Fj_StopTime As Integer
Public Ack As Boolean '消息框回答标志
'采集信号类
Public Gather_Time As Integer
Public DDEEnabled As Boolean
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -