實習一dio Card 操作

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

實習一、

DI/O CARD介面操作
第三章 系統硬體介紹

Z軸滑台之感測器
2

上極限開關

下極限開關

滑座


第三章 系統硬體介紹

Z軸正反轉控制架構圖
3

PCI-P8R8數位輸入輸出介面卡
正轉 DN-37轉接板
Z軸
直流馬達 Relay

反轉
Relay
第三章 系統硬體介紹
PCI-P8R8數位輸入輸出介面卡接線定義
4
PCI-P8R8數位輸入輸出介面卡

數位輸入 數位輸出

DI0 24V電源輸入 DO0 Z軸馬達正轉(下筆)

DI1 Z軸上極限開關 DO1 Z軸馬達反轉(提筆)

DI2 Z軸下極限開關 DO2 未使用

DI3 未使用 DO3 未使用

DI4 未使用 DO4 未使用

DI5 未使用 DO5 未使用

DI6 未使用 DO6 未使用

DI7 未使用 DO7 未使用


附錄A 新建VB專案程式之操作步驟
5
步驟1
建立一example1資料夾,並
在此資料夾中放入
PS200.bas
UniDAQ.bas
兩個檔案
步驟2
6
• 執行VB程式
• 選擇『標準執行檔』
步驟3
7 • 以滑鼠右鍵按下Project1
• 選擇『新增』
• 選擇『模組』
步驟4
8
到example1資料夾將PS200.bas與UniDAQ.bas兩個檔案
加入專案中
步驟5
9
第四章 數位輸入輸出介面卡函式
10
 撰寫操作PCI-P8R8數位輸入輸出介面卡之程式需在專案先加入
UniDAQ.bas模組檔案。

 初始化介面卡函式
Ixud_DriverInit (ByRef wTotalBoards As Interger) As Integer

功能:
這個函式掃瞄在電腦內所有可以使用的輸入輸出介面卡,參數 wTotalBoards 儲
存作業系統內所有可以使用輸入輸出介面卡之數目。

參數:
wTotalBoards為輸入輸出介面卡的數量。
第四章 數位輸入輸出介面卡函式

 讀取介面卡資訊之函式
11
Ixud_GetCardInfo(ByVal wBoardNo As Integer,
ByRef sDevInfo As IXUD_DEVICE_INFO, ByRef sCardInfo
As IXUD_CARD_INFO, ByVal szModelNmae As String)
As Integer

功能:
這個函式會初始化電腦中之輸入輸出介面卡。
參數:
wBoardNo為輸入輸出介面卡的編號。
sDevInfo
sCardInfo
szModelNmae
第四章 數位輸入輸出介面卡函式

 關閉函式
12
Ixud_DriverClose () As Integer

功能:
這個函式會關閉電腦中之輸入輸出介面卡。
第四章 數位輸入輸出介面卡函式

 輸出函式
13
Ixud_WriteDO (ByVal wBoardNo As Integer,
ByVal wPortNo As Integer,
ByVal dwDOVal As Long) As Integer

功能:
這個函式將dwDOVal值輸出到第wBoardNo張輸入輸出介面卡之第wPortNo埠。
參數:
wBoardNo:輸入輸出介面卡編號。
wPortNo:輸入輸出介面卡之輸出埠,因PCI-P8R8介面卡只有一個輸出埠,所以此
參數設為0。
dwDOVal:輸出值,每個位元代表一個輸出訊號,最低位元代表DO0,第2位元代
表DO1,依此類推,第8位元代表DO7。
第四章 數位輸入輸出介面卡函式

 輸入函式
14
Ixud_ReadDI (ByVal wBoardNo As Integer,
ByVal wPortNo As Integer,
ByVal dwDIVal As Long) As Integer
功能:
這個函式將第wBoardNo張輸入輸出介面卡之第wPortNo埠輸入資料放到dwDIVal變
數中。
參數:
wBoardNo:輸入輸出介面卡編號。
wPortNo:輸入輸出介面卡之輸出埠,因PCI-P8R8介面卡只有一個輸入埠,所以
此參數設為0。
dwDIVal:輸入值,每個位元代表一個輸入訊號,最低位元代表DI0,第2位元代
表DI1,依此類推,第8位元代表DI7。
第四章 數位輸入輸出介面卡函式
實習一:數位輸入與輸出
15 實習目的:
本實習將練習使用前述函式來完成控制PCI-P8R8介面卡的數位輸出與讀入PCI-
P8R8介面卡的數位輸入訊號之程式。

Frame1
Frame2

cbxOut(0) cbxOut(7)
Frame3

DI_Shape(7)

DI_Shape(0)

Timer1
第四章 數位輸入輸出介面卡函式

程式(1/2):
16
Option Explicit
Dim wTotalBoards As Integer
Dim wBoardNo As Integer

Private Sub cbxOut_Click(Index As Integer)


Dim i As Integer
Dim wOutputVal As Long
wOutputVal = 0
For i = 0 To 7
If cbxOut(i).Value Then wOutputVal = wOutputVal + 2 ^ (i)
Next i
Ixud_WriteDO wBoardNo, 0, wOutputVal '輸出數位輸出值
End Sub

Private Sub Form_Load()


Ixud_DriverInit wTotalBoards '初始化PIC8P8R介面卡, 並傳回介面卡數量
wBoardNo = 0
Timer1.Enabled = True
End Sub
第四章 數位輸入輸出介面卡函式

程式(2/2):
17
Private Sub Form_Unload(Cancel As Integer)
Call Ixud_DriverClose '關閉PIC8P8R介面卡
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()


Dim i As Integer
Dim wInputVal As Long
'讀取數位輸入值
Ixud_ReadDI wBoardNo, 0, wInputVal
For i = 0 To 7
'若輸入訊號為1, 則亮紅燈; 若為0, 則亮黑燈
DI_Shape(i).FillColor = IIf(wInputVal And 2 ^ i, RGB(255, 0, 0), RGB(0, 0, 0))
Next i
End Sub
第四章 數位輸入輸出介面卡函式

程式執行:
18
步驟1:打開機台電源開關,執行此程式

電源燈

步驟2:以滑鼠點選Output1勾選盒,介面卡之DO1接點
會動作讓馬達反轉,此時會看到Z軸滑台往上
運動(提筆),當到達上極限開關時,馬達會自
動停止運動,且視窗之Input1指示燈亮紅色。
此時可以再點選一次Output1勾選盒,將打
勾去掉,打開DO1接點。

Z軸
上極限開關
第四章 數位輸入輸出介面卡函式

程式執行:
19
步驟3:再以滑鼠點選Output0勾選盒,介面卡之DO0接
點會動作讓馬達正轉,此時會看到Z軸滑台往
下運動(下筆),當到達下極限開關時,馬達會
自動停止運動,且視窗之Input2指示燈亮紅
色。此時可以再點選一次Output0勾選盒,
將打勾去掉,打開DO0接點。

Z軸
下極限開關

You might also like