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

📄 module1.bas

📁 亚龙高架库控制程序 VB 基本结构为PLC通过驱动器控制步进电机实现启动、停止、加速、减速、匀速、换向等运动轮廓
💻 BAS
字号:
Attribute VB_Name = "Module1"
Option Explicit
Declare Function GetTickCount Lib "kernel32" () As Long
Public ind As Integer
Public name1   As String
Public number1 As Integer
Public sing As Byte

Sub display() '显示子过程
Dim i As Integer
Dim aa As Boolean
Form_main.Show
For i = 0 To 20
  Form_main.Adodc1.RecordSource = "select * from 库存  where 位置=" & i
  Form_main.Adodc1.Refresh
  If Form_main.Adodc1.Recordset.Fields("状态") = "有托盘" Then
 '    Form_main.Com1(i).BackColor = &HFF00&
    If Form_main.Adodc1.Recordset.Fields("数量") <> 0 Then
       If Form_main.Adodc1.Recordset.Fields("名称") = "汽车" Or Form_main.Adodc1.Recordset.Fields("名称") = "轿车" Then
           Form_main.Com1(i).Caption = ""
           Form_main.Com1(i).Picture = LoadPicture("" & App.Path & "\\11.bmp")  '有汽车
       Else
          Form_main.Com1(i).Picture = LoadPicture("" & App.Path & "\\33.bmp")    '有托盘
          If Form_main.Adodc1.Recordset.Fields("名称") <> "无物" Then
            Form_main.Com1(i).Caption = Form_main.Adodc1.Recordset.Fields("名称") & "(" & Form_main.Adodc1.Recordset.Fields("数量") & ")"
          End If
       End If
    Else
       Form_main.Com1(i).Picture = LoadPicture("" & App.Path & "\\33.bmp")      '有托盘
       Form_main.Com1(i).Caption = ""
    End If
  Else
    Form_main.Com1(i).Picture = LoadPicture("" & App.Path & "\\55.bmp")     '无托盘
'    Form_main.Com1(i).BackColor = &H80000004     '无托盘
    Form_main.Com1(i).Caption = ""
  End If
Next i
Debug.Print "diaplay"
End Sub
  
Sub control(e1 As Byte) '控制子过程
Dim a As Integer
10
If FanHuiZhi(e1) Then
  'Form_main.Label1.Caption = "正在执行命令!"
  'Form_main.Label1.Caption = "执行完成!"
  ' Form_main.Label1.Caption = name1
Else
  a = MsgBox("通讯超时,请检查 PLC 联接", 5 + 48 + 256, "通讯超时")
  Select Case a
    Case 4 '重试
      GoTo 10
    Case 2 '取消
      GoTo 9
  End Select
End If
If e1 = 0 Then  '入库后的ACCESS处理
  Form_main.Adodc1.RecordSource = "select * from 库存  where 位置=" & 0
  Form_main.Adodc1.Refresh
  Form_main.Adodc1.Recordset.Fields("状态") = "无托盘"        '进出架上无托盘
  Form_main.Adodc1.Recordset.Fields("名称") = "无物"
  Form_main.Adodc1.Recordset.Fields("数量") = 0
  Form_main.Adodc1.Recordset.Update

  Form_main.Adodc1.RecordSource = "select * from 库存  where 位置=" & ind   '货架上有托盘
  Form_main.Adodc1.Refresh
  Form_main.Adodc1.Recordset.Fields("状态") = "有托盘"
  Form_main.Adodc1.Recordset.Fields("名称") = name1
  Form_main.Adodc1.Recordset.Fields("数量") = number1
  Form_main.Adodc1.Recordset.Update

  Form_main.Adodc2.RecordSource = "select * from 操作记录"
  Form_main.Adodc2.Refresh
  Form_main.Adodc2.Recordset.AddNew
  Form_main.Adodc2.Recordset.Fields("时间") = Now
  Form_main.Adodc2.Recordset.Fields("操作") = "入库"
  Form_main.Adodc2.Recordset.Fields("名称") = name1
  Form_main.Adodc2.Recordset.Fields("数量") = number1
  Form_main.Adodc2.Recordset.Fields("位置") = ind
  Form_main.Adodc2.Recordset.AddNew
End If
If e1 = 1 Then '出库后的ACCESS处理
  Form_main.Adodc1.RecordSource = "select * from 库存  where 位置=" & ind
  Form_main.Adodc1.Refresh
  name1 = Form_main.Adodc1.Recordset.Fields("名称")
  number1 = Form_main.Adodc1.Recordset.Fields("数量")

  Form_main.Adodc1.Recordset.Fields("状态") = "无托盘" '货架上无托盘
  Form_main.Adodc1.Recordset.Fields("名称") = "无物"
  Form_main.Adodc1.Recordset.Fields("数量") = 0
  Form_main.Adodc1.Recordset.Update

  Form_main.Adodc1.RecordSource = "select * from 库存  where 位置=" & 0
  Form_main.Adodc1.Refresh
  Form_main.Adodc1.Recordset.Fields("状态") = "有托盘"  '进出架上有托盘
  Form_main.Adodc1.Recordset.Fields("名称") = name1
  Form_main.Adodc1.Recordset.Fields("数量") = number1
  Form_main.Adodc1.Recordset.Update

  Form_main.Adodc2.RecordSource = "select * from 操作记录"
  Form_main.Adodc2.Refresh
  Form_main.Adodc2.Recordset.AddNew
  Form_main.Adodc2.Recordset.Fields("时间") = Now
  Form_main.Adodc2.Recordset.Fields("操作") = "出库"
  Form_main.Adodc2.Recordset.Fields("名称") = name1
  Form_main.Adodc2.Recordset.Fields("数量") = number1
  Form_main.Adodc2.Recordset.Fields("位置") = ind
  Form_main.Adodc2.Recordset.AddNew
End If

Call display
Debug.Print "control"
9
End Sub
 Function FanHuiZhi(f1 As Byte) As Boolean  '发送程序,返回真假值
 Dim buf As String, dt, TT As Long
 Dim s_inf(4) As Byte
 dt = 100
 buf = ""
 TT = GetTickCount
 s_inf(0) = 35 '35="#"
 s_inf(1) = f1
 If f1 = 2 Then '2表示回原点
   s_inf(2) = 0
   s_inf(3) = 0
 Else
  s_inf(2) = (ind - 1) Mod 5        '左右(0-4)
  s_inf(3) = Int((ind - 1) / 5)     '上下(0-3)
 End If
 s_inf(4) = 13 '13=回车键
 Form_main.MSComm1.Output = s_inf()   '向PLC发命令
    Do
    buf = buf & Form_main.MSComm1.Input  '接受PLC回函
    Loop Until InStr(1, buf, "#") > 0 Or GetTickCount - TT >= dt '前一条语句等待收到完毕字符"#",后一条计时间
    If InStr(1, buf, "#") > 0 Then '接受了PLC回函 则。。。。。。
    '  dt = 100000
    '  Do
    '  buf = buf & Form_main.MSComm1.Input  '接受PLC回函
    '  Loop Until InStr(1, buf, "A") > 0 Or GetTickCount - TT >= dt '前一条语句等待收到完毕字符"#",后一条计时间
    '  If InStr(1, buf, "A") > 0 Then '接受了PLC回函 则。。。。。。
          FanHuiZhi = True
     '     name1 = "成功"
    '  Else
    '     FanHuiZhi = False
      'End If
    Else
      FanHuiZhi = False
    End If
 Debug.Print "fanhuizhi"
 End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -