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

📄 module4.bas

📁 使用的是最小误差法的插补程序
💻 BAS
字号:
Attribute VB_Name = "modIO"
Public IONumber As Integer
Public USTimer As Integer   '时间精度

'开关等级指示灯
Public Sub Led(Grade As String)
Select Case Grade
    Case "合格品"
        '合格品灯亮
        IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &H1F        '关掉其他灯00011111
        IONumber = IONumber Or &H10         '打开合格品灯00010000
        Call outportb(BaseAddrIO, IONumber)
    Case "一级处理品"
        '处理品灯亮
       IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &H2F        '关掉其他灯00101111
        IONumber = IONumber Or &H20         '打开处理灯00100000
        Call outportb(BaseAddrIO, IONumber)
    Case "二级处理品"
        '处理品灯亮
        IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &H2F        '关掉其他灯00101111
        IONumber = IONumber Or &H20         '打开处理灯00100000
        Call outportb(BaseAddrIO, IONumber)
    Case "返修品"
        '返修品灯亮
        IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &H4F        '关掉其他灯01001111
        IONumber = IONumber Or &H40         '打开返修灯01000000
        Call outportb(BaseAddrIO, IONumber)
    Case "废品"
        '废品灯亮
        IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &H8F        '关掉其他灯10001111
        IONumber = IONumber Or &H80         '打开废品灯10000000
        Call outportb(BaseAddrIO, IONumber)
    Case Else
        '关掉所有灯
        IONumber = inportb(BaseAddrIO)
        IONumber = IONumber And &HF        '关掉所有灯00001111
        Call outportb(BaseAddrIO, IONumber)
    
End Select
End Sub
'主轴停转
Public Sub StopAxis()
'Call outportb(BaseAddrIO + 1, &HFF)
Call outportb(BaseBujin, &H0)         'b00000000
End Sub
'主轴走一步
Public Sub StartAxis(ByVal plus As Integer)
'IONumber = inportb(BaseAddrIO + 1)
'IONumber = IONumber Or &H1           '打开主轴启动00000001
'Call outportb(BaseAddrIO + 1, IONumber)
Dim plus1 As Single
Dim plus0 As Single
    plus1 = ParaPlus1                       '调整正脉冲宽度
    plus0 = plus - plus1
    Call outportb(BaseBujin, &HD)     '开始输出脉冲高电平'b00001101
    Call USdelay(plus1)
    Call outportb(BaseBujin, &HC)     '开始输出脉冲低电平'b00001100
    Call USdelay(plus0)

End Sub
'测头退出
Public Sub QuitExam()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HFB         '关掉测头前进11111011
IONumber = IONumber Or &H8           '打开测头后退00001000
Call outportb(BaseAddrIO, IONumber)
End Sub
'测头前进
Public Sub ForwardExam()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HF7         '关掉测头后退11110111
IONumber = IONumber Or &H4           '打开测头前进00000100
Call outportb(BaseAddrIO, IONumber)
End Sub
'测头停止
Public Sub StopExam()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HF3         '测头停止11110011
Call outportb(BaseAddrIO, IONumber)
End Sub
'夹紧夹紧
Public Sub Clamp()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HFD         '关掉松开11111101
IONumber = IONumber Or &H1           '打开夹紧00000001
Call outportb(BaseAddrIO, IONumber)
End Sub
'夹具松开
Public Sub Loosen()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HFE         '关掉夹具夹紧11111110
IONumber = IONumber Or &H2           '打开夹具松开00000010
Call outportb(BaseAddrIO, IONumber)
End Sub
'停止夹紧
Public Sub StopClamp()
IONumber = inportb(BaseAddrIO)
IONumber = IONumber And &HFC        '停止夹紧11111100
Call outportb(BaseAddrIO, IONumber)
End Sub

'读启动按纽
Public Function IsStart() As Integer
   IsStart = inportb(BaseAddrIO + 2)
   IsStart = IsStart And &H1      '00000001
End Function
'读夹紧到位行程开关
Public Function IsClamp() As Integer
   IsClamp = inportb(BaseAddrIO + 2)
   IsClamp = IsClamp And &H2     '00000010
End Function
'读测头到位行程开关
Public Function IsForwardExam() As Integer
    IsForwardExam = inportb(BaseAddrIO + 2)
    IsForwardExam = IsForwardExam And &H4      '00000100
End Function
'读零位开关
Public Function IsZero() As Integer
    IsZero = inportb(BaseAddrIO + 2)
    IsZero = IsZero And &H8      '00001000
End Function

'毫秒延时
Public Sub USdelay(ByVal m As Single)                        '微秒级延时
   Dim i As Long
   m = m * 1000
    For i = m To 1 Step -1
        For ii = USTimer To 1 Step -1
        Next ii
   Next i
End Sub

⌨️ 快捷键说明

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