⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdlmain.bas

📁 基于化工行业造气岗位的自动化监控系统
💻 BAS
📖 第 1 页 / 共 4 页
字号:
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 + -