《電氣裝備的計算機控制技術》實驗指導書_第1頁
《電氣裝備的計算機控制技術》實驗指導書_第2頁
《電氣裝備的計算機控制技術》實驗指導書_第3頁
《電氣裝備的計算機控制技術》實驗指導書_第4頁
《電氣裝備的計算機控制技術》實驗指導書_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《電氣裝備的計算機控制技術》

實驗指導書

浙江大學電氣工程學院電機工程學系

二0一六年五月

第一章計算機控制技術硬件調試環境簡介

工業控制是計算機的一個重要應用領域,計算機控制正是為了適應這一領域的需要而發

展起來的一門專業技術。

計算機控制系統中包括硬件和軟件兩大部分,硬件是由計算機、接口電路、外部設備組

成,是計算機控制系統的基礎,軟件能夠完成對其接口和外部設備的控制,完成對信息的處

理,它包含有主機工作的系統軟件和為完成控制而進行信息處理的應用軟件的兩大部

圖1T典型的計算機控制系統的硬件組成框圖

分,軟件是計算機控制系統的關鍵。圖1-1為典型的計算機控制系統的硬件組成框圖。

控制通道是被控對象與主機進行信息交換的通道,其根據信號方向和形式可分為:

(1)模擬量輸入通道(AI):完成模擬信號的轉換,使之成為計算機能夠接收的標準數

字信號。

(2)模擬量輸出通道(A0):大多數執行機構只能接收模擬信號,通過模擬量輸出通道

完成對數字量轉換為模擬量。

(3)數字量輸入通道(DI):數字量輸入通道把過程和被控對象的開關量或通過傳感器

已轉換的數字量傳入計算機。

(4)數字量輸出通道(DO):數字量輸出通道是將數字信號輸出給被控對象或外部設備。

控制計算機?主機'外設、系統總線

生產過程輸入輸出通道

硬件部分"?人機聯系設備、通信設備

現場儀表(測量傳感器、執行機構等)

計算機控制系統,

操作系統

系統軟件

I軟件部分,匯編或高級語言、過程控制語言

、通信網絡軟件、診斷程序等

過程輸入/輸出程序、過程控制程序

應用軟件人機接口程序、打印顯示程序

各種公共子程序

歷史數據庫、實時數據庫

圖12計算機控制系統的組成

上圖為計算機控制系統的組成示意圖。

計算機技術發展異常迅速,內容更新很快,微型計算機越來廣泛的深入應用到自動控制、

智能儀表、數據采集等各個領域。

1.1PCI-1202數據采集卡功能描述

數據采集是以傳感器、信號的測量與處理、微型計算機等先進技術為基礎而形成攸一門

綜合應用技術,其實用型很強。作為獲取信息的工具,數據采集在國民經濟的各個領域,如

核電、石化、冶金、航空航天、機械制造等方面有著非常重要的地位。人們可以通過對信號

的測量(數據獲取)、處理、控制及管理,實現對生產過程的測、控、管自動化與一體化。

圖1-3PCIT202數據采集卡

PCIT202為12位PCI總線數據采集卡:16通道單端/8通道差分模擬輸入,可擴展到256通

道;16個數字量輸入通道和16個數字量輸出通道。兩通道12位D/A輸出通道;16位計數/定時

器。該數據采集卡功能主要特點:

.+5VPCI總線;

.12/16位分辨率;

.110KS/s的采樣頻率,12位A/D輸入;

.單端或差分輸入:

.板載FIFO緩存,2K的數據FIFO和512字輸入掃描FIFO;

.A/D觸發方式:軟件觸發,時鐘觸發,外觸發:

.數據傳輸方式:查詢、中斷、DMA;

.2個獨立的可編程數摸轉換器;

.16個數字量輸入/16個數字量輸出通道;

.16位計數/定時器。

m怵1VR100VR101VR201VR200VR202罰破

i1D2r*TD,DLL

S6□non

2通道DAC輸出之

?—

16通道ADC輸入

外部觸發輸入

圖1-4PCIT202數據采集卡元件布置

增益控制:(軟件可編程)

PCI-1202L:0.5,1,2,4,8。

雙極性輸入信號范圍:

PCI-1202L:±10V,±5V,±2.5V,±1.25V,±0.625V。

單極性輸入信號范圍:PCI-1202L:0?10V,0?5V,0?2.5V,0?1.25V。

12-bitADC輸入電壓與輸出數字量的對應關系:

表1T模擬輸入與數字輸出對應關系

模擬輸入二進制數字量輸出十六進制

MSBLSB

+9.995V0111111111117FF

0V000000000000000

-4.88mv111111111111FFF

-10V100000000000800

PCIT202總線數據采集卡內部功能框圖如下;

X86System

PCIBUS

圖1-5PCI-1202數據采集卡內部功能框圖

PCI-1202具備"魔術掃描"(MagicScan)功能,它具有以下特點:

1.每通道可以有不同的增益

2.通道掃描可以無序

3.每通道可以有不同的采樣頻率

4.每通道可編程不同的數字濾波

5.可編程高/低報警功能,為每通道提供4種不同的報警監控模式

6.掃描采樣率可以保持最大采樣時間而不用犧牲采樣速度

7.提供三種外部觸發:前觸發、預觸發、中觸發

8.容易編程

PCI-12()2具備M_Funcli。n功能,M_Funclion用于支持全速率連續平滑的A/D、D/A轉換。

用戶可以使用D/A通道發送預先設置的信號到外部設備,同時測量輸出反饋用于分析。

?function可以在DOS、Windows和Linux中運行。VC/C++、BC++、VB>Delphi>Java等

編程語言和LabVIEW等軟件包可以調用Mfunction。

PCIT202提供了不同的連續采集功能:

1、低速連續采集:采集的數據可以被顯示,不需要存儲。因此可以連續的監視數據。

2、高速連續采集:采集的數據被存入PC的DRAM,采集的周期受內存容最大小的限制。

3、高速連續采集:采集的數據被存入SRAM卡中,采集的周期受存儲器容量大小的限制。必

須根據采樣速率和采集周期計算內存的容量。

連續采集功能可以應用于DOS、Windows及Linux中。連續采集功能支持多塊板卡。

FhFIFO容量可以來計算緩沖器時間,例如:PCIT202FIFO容量為2K字,最大的采樣速

率為UOKS/s,那么最大的緩沖時間是:ISec/UOKx2K(FIFOSIZE)/2=9.3ms,這

個時間在DOS和Windows上的應用是足夠廣。對于一些復雜的多任務應用,用戶必須知道FIFO

的容量,否則有可能會丟失數據。

A/D支持多種觸發模式,PC1T202提供內部和外部觸發模式。內部觸發模式包括:軟件

觸發和時鐘(Pacer)觸發。外部觸發模式包括后觸發模式、前觸發模式、中間觸發模式三種。

PCI-1202L輸入范圍如下表所示:

表1-2PCIT202L增益與輸入范圍對應關系

最大轉換頻率

增益雙極性(V)單極性(V)

180X1202

0.5t10X330K/S110K/S

1士50-10330K/S110K/S

2±2.50?5330K/S110K/S

4-1.250-2.5330K/S110K/S

8?0.6250-1.25330K/S110K/S

模擬量輸出

.通道:2路12位雙緩沖

.線性度:0.006%FS

.建立時間:0.4uS

.輸出范圍:-5\廣+5丫或T0V~+10V

.輸出驅動:±5mA

計時器

.3個獨立的16位計時器,8MHz輸入時鐘

.TimerO:內部步進觸發時鐘

.Timerl:外部步進觸發時鐘

.Timer2:用干設置過時的機器獨立時鐘

數字量輸入/輸出

.16TTL電平輸入

輸入低VIL=0.8V最大;I1L=-0.4mA最大

輸入高VIH=2.0V最小;IIH=20uA最大

.16TTL電平輸出

輸出低VOL=0.5V最大:@I0L=8mA最大

輸出高VOH=2.7V最小;@I0H=0.4mA最大

總線數據采集卡管腳定義:

OOOO

DIO1OO2DI1DOO1OO2DO1

DI23OO4DI3DO23OO4DO3

DI45OO6DI5DO45OO6DO5

DI67OO8DI7DO67OO8DO7

DI89OO10DI90089OO10DO9

DI1011OO12D111DO1011OO12DO11

D11213OO14D113DO1213OO14DO13

D11415OO16DI15DO1415OO16DO15

D.GND17OO18D.GNDD.GND17OO18D.GND

+5V1920+12V+5V1920+12V

(a)C5I1數字輸入引腳定義(b)C5J2數字輸出引腳定義

圖1-6PCIT202L輸入輸出弓腳定義

PCI-1202CN3引腳定義:

19ExlTrg

DGND3718DA1OUT

DA2OUT3617A.GND

Al313516Al15

Al303415Al14

Al29

3314Al13

Al283213Al12

Al273112Al11

Al26

3011Al10

Al252910Al9

Al24

289Al8

Al2327

0Al7

Al22267Al6

Al21256Al5

Al20

245Al4

Al19234Al3

Al18223Al2

Al17

212Al1

Al16201Al0

圖1-7PCI-1202L模擬輸入輸出引腳定義

通過選擇下列擴展卡或擴展模塊可實現同步采樣保持、高、低通濾波、抗混濾波、隔離

信號調理、差分輸入/輸出、聲音、振動、應變的測試等。

1.2模擬輸入輸出端子板DB-1825

用于PCI-1202系列的37針電纜連接口的螺栓連接端子板(32通道單端,16通道差動)。

圖1-8DBT825模擬輸入輸出端子板外型

端子板用于斷路檢測、低通濾波、電流電壓轉換、電壓分壓電路。下圖為DB-1825端

子板的原理圖。

Signals

J"L一

ADC

利一

4.3,2.1.0

Slngle^nded

Differential

圖1-9DB-I825模擬輸入輸出功能框圖

端子板為32通道單端,16通道差分,該規格用于PC:1202,用ISO-AD32系列的37針電纜

連接端子板,下圖為DBT825與PCI-1202的連接。

圖1-11DB-1825端子板與PCL1202連接(由外部電源供電)

1.3隔離數字量I/O端子板DB-16P

16通道雙向隔離輸入卡如下圖示:

圖1T2DB-l6P雙向隔離輸入卡外型

DBT6P是一塊帶隔離的16通道數字輸入卡,用于PCI總線的多功能卡。DB-16P的

光隔輸入由雙向光電偶合器帶一個電流檢測電阻組成。可以用它來檢測從TTL電平到24V

的直流信號。也可以用來檢測寬范圍的交流信號。還可以用此卡來隔離計算機和工業環

境中常發生的共模電壓,地環流以及電壓尖峰。其連接如下圖示。

圖1-13DBT6P端子板與PCIT202連接

DB-16P具有以下特點:

-16個光電隔離數字輸入通道,直接接到PCI總線的多功能卡。

■AC/DC信號輸入

-AC信號輸入加濾波器

■輸入緩沖帶電壓比較器

El-13DB-l6P端子板數字輸入通道原理圖

TRI輸入引腳定義

Pin123456789101112131415161718

Number

LabelOHOL1HIL2H2L3H3L4H4L5H5L6H6L7H7LF.G.F.G

TB2輸入引腳定義

Pin123456789101112131415161718

Number

Label8H8L9H9L10H10L11H11L12H12LI3H13L14H14L15H15L+5V+I2V

16個光隔數字輸入通道,TTL電平兼容,每一個都有自己的參考地,與其他通道相隔

離。最大輸入電壓為24VDC或24VAC,輸入阻抗為L2kC0用來隔離數字輸入帶來的干擾。

1.4隔離數字量I/O端子板DB-16R

16通道繼電器輸出板

CN1:20芯引腳

CN3:輸出引腳

外部電源輸入

外部電源或PC機內部電源選擇跳轉

圖1-14DBT6R數字輸出端子板外型

DB-16R是--塊由16個C型繼電器組成的繼電器輸出板,用于可編程控制的有效的

負載切換。其插頭定義和板卡性能與785系列完全兼容,只是使用了工業型的接線端子

塊。DB-16R能與PCI1202板卡配合使用。通過20芯扁平電纜接頭傳過來的5伏電壓信

號會使對應的繼電器處于工作狀態。16個表明狀態的LED與16個繼電器一一對應,當

它所對應的繼電器工作時,該LED就會發光。為了避免你的PC機電源過載,該卡還提供

螺釘端子用于外接電源。

DB-16R

圖1-15DB76R數字輸出端子板與PCI7202連接

CN3輸出引腳定義(NO-常開,NC-常閉,CM-公共點)

8NONCCM10NONCCM12NONCCM14NONCCM

9NONCCM11NONCCM13NONCCM15NONCCM

CN4輸出引腳定義(ND-常開,NO常閉,CM-公共點)

1NONCCM3NONCCM5NONCCM7NONCCM

0NONCCM2NONCCM4NONCCM6NONCCM

DB-16R額定負載為0.5A/120VAC,1A/24VDC:最大切換功率為60VA,24W:最大

切換電壓:120VAC60VDC;最大切換電流:1A;控制邏輯:輸入TTL高(+5V),繼電器

通電工作。主要用來輸出通斷控制。

DB—16P、DBT6R與PCI-1202的連接如下圖。

[DB-J6P.

DB-16RI

gl-16DB-16P,DB-16R與PCI-1202的連接

1.5實驗有關掛箱介紹

(1)數據采集實驗箱:包含三個交直流電壓傳感器、三個交直流電流傳感器及DBT825接

線端子板,面板上分別引出電流、電壓傳感器原邊及弱電側電流、電壓信號(0?±1CV)。

電流、電壓傳感器原邊(強電側)

(付邊AHO通道)(付邊AI13通道)

U

電壓傳感器1電流傳感器1

o-―OO-

500V交直流(5A交直流)

(付邊All1通道)(付邊AU4通道)

V

電壓傳感器2電流傳感器2

o—―OO-

5OOV交直流(5A交直流)

(付邊All2通道)(付邊All5通道)

W

電壓傳感器3電流傳感器3

O-―OO-

5OOV交直流(5A交直流)

N

O

電流、電壓信號(0?±1OV)(弱電側)

圖1-17數據采集實驗箱面板及實物圖

(2)繼電接觸控制實驗掛箱:

包含兩個主接觸器(交流220V)及對應的三對個主觸點及四對輔助觸點,一個中間繼電

器(直流24V)及對應的觸點,熱繼電器及時間繼電器各一個,還有三個按鈕開關及指示燈。

圖1-18繼電接觸控制實驗掛箱

實驗最簡接線圖如下圖:

調

數據采集主:電路實驗接線圖

注c-主電路接觸器的線圈

J一中間繼電器的線圈

C-主電路接觸器的接點

J—中間繼電器的接點

NC-為數字輸出的常開接點

COM-為數字輸出的常開常閉公共點

數宇輸入JT關量信

5-24VDCDB-16PDB-16R

DI-數字輸入數字輸出

圖179數據采集控制電路接線圖

第二章數據采集軟件調試環境

2.1PCI1202各功能函數的定義

功能區分函數定義

floatP1202_FloatSub2(floatfA,floatfB);

Test

shortP1202_ShortSub2(shortnA,shortnB);

WORDP1202_GctDIIVcrsion(void);

WORDP1202_GetDriverVersion(WORD*wVxdVersion);

WORDP1202_Driverlnit(WORD*wTotalBoards);

Driver

voidP1202_DriverClose(void);

WORDP1202_GetConfigAddressSpace(WORDwBoardNo,

WORD*wAddrTimer,WORD*wAddrCtrl,WORD*wAddrDio,WORD

*wAddrAdda);

WORDP1202_ActiveBoard(WORDwBoardNo)

WORDP1202^WhichBoardActive(void);

WORDP1202_Di(WORD*wDi);

DigitalI/O

WORDP1202_Di(WORD*wDi);

WORDP1202_Da(WORDwDaChannel,WORDwDaVal);

D/A

WORDP1202_SetChannelConfig(WORDwAdChannel,WORD

A/D

wConfig);

WORDP1202AdPolling(float*fAdVal);

WORDP1202_AdsPolling(floatfAdVal[],WORDwNum);

WORDP1202AdsPacer(floatfAdValf],WORDwNum,WORD

wSampleDiv);

WORDP1202_ClearScan(void);

Magic

WORDP1202__StartScan(WORDwSampleRateDiv,DWORDdwNum,

SHORTnPriority);

WORDP1202_StartScanPostTrg(WORDwSampleRateDiv,DWORD

dwNum,SHORTnPriority);

WORDP1202_StartScanPreTrg(WORDwSampleRateDiv,DWORD

dwNum,SHORTnPriority);

WORDP1202_StartScanMiddleTrg(WORDwSampleRateDiv,

DWORDdwNum,DWORDdwN2,SHORTnPriority);

WORDP1202_StartScanPreTrgVerC(WORDwSampleRateDiv,

DWORDdwNum,SHORTnPriority);

WORDP1202_StartScanMiddleTrgVerC(WORDwSampleRateDiv,

DWORDdwNum,DWORDdwN2,SHORTnPriority);

voidP1202_ReadScanStatus(WORD*wStatus,DWORD

*dwLowAlarm,DWORD*dwHighAlarm);

WORDP1202_AddToScan(WORDwAdChannel,WORDwConfig,

WORDwAverage,WORDwLowAlarm,WORDwHighAlarm,WORD

wAlarnType);

WORDP1202_SaveScan(WORDwAdChannel,WORDwBuf[]);

voidP1202WaitMagicScanFinish(V/ORD*wStatus,DWORD

*dwLowAlarm,DWORD*dwHighAlarm);

WORDP1202_StopMagicScan();

WORDP1202_MFUN1(WORDwDaNumber,WORDwDaWave,

M_Function

floatfDaAmplitude,WORDwAdSampleRateDiv,WORDwAdNumber,

WORDwAdConfig,floatfAdBuffl,floatfLowAlarm,floatHighAlarm);

WORDP1202_M_FUN_2(WORDwDaNumber,WORDwDaWave,

WORDwDaBuf[],WORDwAdSampleRateDiv,WORDwAdNumber,

WORDwAdConfig,WORDwAdBuf[]);

WORDP1202_M_FUN_3(WORDwDaNumber,WORDwDaWave,

floatfDaAmplitude,WORDwAdSampleRateDiv,WORDwAdNumber,

WORDwChannelStatus[],WORDwAdConfig[],floatfAdBuf[],float

fLowAlarm,floatfHighAlarm);

WORDP1202_M_FUN_4(WORDwType,WORDwDaNumber,WORD

wDaWave,floatfDaAmplitude,WORDwAdSampleRateDiv,WORD

wAdNumber,WORDwChannelStatus[],WORDwAdConfig[],float

fAdBuf[],floatfLowAlarm,floatfHighAlarm);

ContinuousWORDP1202_CardO_StartScan(WORDwSampleRate,WORD

CapturewChannelStatus[],WORDwChannelConfig[],WORDwCount);

WORDP1202^CardO_ReadStatus(WORDwBuf[],WORDwBuf2[],

DWORD*dwP1,DWORD*dwP2,WORD*wStatus);

voidP1202_Card0_Stop(void);

WORDP1202_Card1_StartScan(WORDwSampleRate,

WORDwChannelStatus[],WORDwChannelConfig[],WORDwCount);

WORDP1202_Card1_ReadStatus(WORDwBuf[],WORDwBuf2[:,

DWORD*dwP1,DWORD*dwP2,WORD*wStatus);

voidP1202_Card1_Stop(void);

WORDP1202_FunA_Start(WORDwClockODiv,WORDwChannelO[],

Batch

WORDwConfigO[],WORDBufferO,DWORDdwMaxCountO,WORD

wClocklDiv,WORDwChannel1[],WORDwConfig1[],WORD*Buffer1,

Capture

DWORDdwMaxCountl,SHORTnPriority);

WORDP1202_FunAReadStatus(void);

WORDP1202_FunA_Stop(void);

WORDP1202_FunA_Get(DWORD*P0,DWORD*P1);

WORDP1202_FunB_Start(WORDwClockODiv,WORDwChannelO[],

WORDwConfigO[],WORD*BufferO,DWORDdwMaxCountO,SHORT

nPriority);

WORDP1202_FunB_ReadStatus(void);

WORDP1202_FunBStop(void);

WORDP1202_FunB_Get(DWORD4P0);

1.錯誤碼定義(ErrorCodeDefine)

回傳值

0NoError正常

1DriverHand1eError無效的VxD/SYS處理。

2DriverCallErrorVxD/SYS函數呼叫錯誤。

3AdControllerError嵌入的控制器發生處理錯誤.可能是硬件發生損壞。

4MFunExecErrorMFunctions傳回錯誤碼

5ConfigCodeErrorwAdConfig參數設定碼錯誤

7HighAlarmCAdBuf[?]"HighAlanu報警

8LowA1armfAdBuf[?]<fLowA1arm報警

9AdPollingTimeOut硬件計時超時

10AlarmTypcError僅有0/1/2/3/4是有效的驗證值

11FindBocirdError找不到板卡

12AdChannclError無效的A/D通道

13DaChannelErrorD/A通道必須為通道0或是通道1

14InvalidateDelaydwDelayUs>8191

15De1ayTimeOut延時發生超時

16InvalidateData無效的資料

17FifoOverflowFIFO溢出

18TimeOut超時

19ExceedBoardNumber無效的板卡順序號。[第一張板卡號碼為0)

20NotFoundBoard檢測不到板卡.

22FindTwoBoardEri'or找不到第二張板卡。

23ThreadCreateError無法執行

24StopError停止錯誤

25AllocateMemoryErrorMemory分配失敗。

2.配置碼(ConfigurationCode)

PCI-1202L配置碼

Bipokir/Unipokir輸入信號范圍放大倍率SettlingTime配置碼

Bipolar+/-5V13us0x00

Bipolar+/-2.5V23us0x01

Bipolar+/-1.25V43us0x02

Bipolar+/-0.625V83us0x03

Bipokir+/-10V0.53us0x04

Bipolar+/-5V13us0x05

Bipolar+/-2.5V23us0x06

Bipolar+/-1.25V43us0x07

UnipolarOV~10V13us0x08

Unipolar0V~5V23us0x09

Unipolar0V~2.5V43usOxOA

UnipolarOV~1.25V83usOxOB

2.2函數介貂

PCI-1202函數庫提供的函數主要可區分為以下9個子集:

?測試(Test)函數

?驅動(Driver)函數

,DigitalI/O函數

-D/A函數

?A/D函數

,A/DMagicScanmode函數

,MFunction函數

,Continuous-Capture函數

?Batch-Continuous-Capture函數

下面具體介紹Test、Driver、DigitalI/O及A/I)函數,其它函數的用法詳見有關文獻。

1.測試函數集

P1202_FloatSub2

計算C=A-B(浮點數格式),float=4位的浮點數.該函數測試能否連接函數庫(),并

正確傳回運算結果.

?語法:

floatP1202_FloatSub2(floatfA,floatfB);

?參數:

fA:[Input]4

fB:[Input]4

?回傳值:

傳回fA-fB之值。

P1202_ShortSub2

計算C=A-B(短整數格式),SHORT=16.該函數測試旎否連接函數庫(),并正確傳I可運

算結果。

?語法:

shortP1202_ShortSub2(ShortnA,ShortnB);

?參數:

nA:[Input]16

nB:[Input]16

,Return:

傳回nA-nb之值。

P1202_GetDHVersion

讀取的DLL版本號碼.

?語法:

WORDP1202_GetDilVersion(void);

?回傳值:

直接傳回DLL版本,如果回傳值等于0x200,DLL版本為2.0

P1202_GetDriverVersion

讀取或是的版本。

-語法:

WORDP1202_GctDriverVersion(WORD*wDrivorVcrsion);

,參數:

*wDriverVersion:[output]<,

X\vDrivcrVcrsion=0x200驅動程序的版本號碼為2.0

,回傳值:

0:無錯誤

2.驅動函數集

P1202_DriverInit

該函數會向系統要求分配資源,測試板卡是否已安裝成功,并回傳安裝板卡的數量。

-語法:

WORDP1202_DriverInit(W0RD*wTotalBoard);

,參數:

*wTotalBoard:[Output]

系統安裝有一張PCI-1202板卡

wTotalBoard=n系統安裝有N張PCIT202板卡

P1202_DriverClose

釋放板卡占用的資源。

?語法:

voidP1202DriverClose(void);

P1202_GetConfigAddressSpace

取得第N張卡的I/O地址。

,語法:

WORDP1202_GetConfigAddressSpace(WORDwBoardNo,WORD*wAddrTimer,WORD

*wAddrCtrl,WORD*wAddrDio,WORD*wAddrAdda);

?參數:

wBoardNo:[Input]用戶指定的板卡編號,由0算起.

*wAddrTimer:[Output]取得8254計時器的I/Oaddressmap.

*wAddrCtrl:[Output]取得Controller的I/Oaddressmap.

*wAddrDio:[Output]取得DigitalI/O的I/Oaddressmap.

*wAddrAdda:[Output]取得A/D及D/A的I/Oaddressmap.

P1202_WhichBoardActive

回傳正在啟用(Active)狀態中的板卡號碼。

-語法:

WORDPl202_WhichBoardActive(void);

P1202_ActiveBoard

該函數會啟動(Active)選用的板長。當系統安裝兩張以上板卡時,同時只能設定板尺

為啟動狀態,要對非啟動狀態的板卡進行DigitalI/O.A/D、D/A、MJunction.

MagicScan及Continuouscapture等程序之前必須先調用該函數啟動wBoardNo對應的板

卡。

語法:

WORDP1202_ActiveBoard(WORDwBoardNo);

?參數:

wBoardNo:要啟動的板卡編號(從0開始,第一張版卡號碼為0).

3.DigitalI/O函數集

P1202_Di

該函數會從DigitalInput讀取16位數。

?語法:

WORDP1202_Di(W0RD*wDi);

,參數:

*wDi:[Output]o用來儲存并回傳一個16位的DI]輸入)值

P1202_Do

該函數用來傳送一16位的值到DigitalOutputo

?語法:

WORDP1202Do(WORDwDo);

,參數:

wDo:[Input]一個16位的輸出值。

CN1與CN2對接時:

P1202_Do(0xl0);〃輸出()x10

P1202_Di(*wDi);〃*wDi=0xl0輸入

*wl)i值會因外部信號的不同有所改變。

4.DA函數集

P1202_Da

該函數會傳送一12位的值至輸出。輸出電壓的范圍由板卡的JP1跳針決定是10V至T0V

之間或5?-5之間。

-語法:

WORDP1202_Da(W0RDwChannel,WORDwDaVal);

,參數:

wChannel:[Input]輸出通道.

wChannel=0(設定輸出到analogoutputChannel0)

wChannel=1(設定輸出到analogoutputChannel1)

wDaVal:[Input]—12位值將會傳送到DA。此值就是控制輸出電壓大小。最小值為0,

最大值為4095。輸出的范圍有二種選擇分別為+/-5V或+/-10V可以由設定版卡上的JP1

來調整。但是函數無法探測板卡上JP1的定。所以當『DaVal等于4095時可能是+1CV也

可能是+5V,是由JP1的設定決定。

?回傳值:

0:無錯誤

5.AD函數集

AD/DA查詢函數使用程序框圖如下:

P1202_SetChannelConfig

用來設定各通道的配置值。呼叫P1202_AdPolling,P1202_AdsPolling及

P1202_AdsPacer之前,須先使用此函數設定要從那一個通道取得數據與合適的配置值.

,語法:

WORDP1202_SetChanne1Config(WORDwChannel,WORDwConfig);

,參數:

wChannel:[Input]選擇取得數據的通道。

wConfig:[Input]設定取得數據范圍配置碼。

P1202_AdPolling

該函數以軟件查詢的方式作一次AD轉換,或傳回此轉換值。調用該函數前需先使用

1202_SetChannelConfig()設定(或改變)通道號碼與配置值。P1202_AdPol1ing根據指定的

通道完成一次AD轉換,尹回傳此轉換值。

,語法:

WORDP1202AdPolling(float*fAdVal);

?參數:

*fAdVal:[Output]o用來儲存一個A/D通道的數據。

P1202_AdsPolling

如果想要取得一個以上的值,使用上一函數P1202_AdP°lling,需要重熨多次的調用,

將會降低連續獲取數據的效率。如果想要連續性地取得AD值,可以使用這個函數來操作。它

會一次將所有轉換的的AD值都存入到buffer里,這樣用起來就方便多了。P1202_AdsPoHing

函數利用軟件查詢的方式對ADCtrigger(觸發),使ADC開始作轉換。調用該函數之前需先

使用

P1202_SetChannelConfig()設定(或改變)通道及配置值。P1202.AdsPolling將會根據設定

操作。

,語法:

WORDP1202_AdsPolling(floatfAdVal[],WORDwNum);

?參數:

fAdVal□:[Output]是一個浮點數陣列。用來儲存ADC轉換完成的數據。每一數據與

P1202_SetChannelConfig()的設定會有關聯性.

wNum:[Input]由用戶指定要取得的數據個數。

P1202_AdsPacer

該函數與Pl202AdsPolling。相同,用來取得同一通道上的多個連續數據,調用的程序

也與P1202一AdsPollingO相似。唯一不同的是該函數通過硬件8254計數器在固定的時間產生

觸發信號啟動AD轉換。

?語法:

WORDP1202_AdsPacer(floatfAdVal[],WORDwNum,WORDwSampleDiv);

,參數:

fAdVal[]:[Output]是一個浮點數陣列。用來儲存ADC轉換完成的數據。每一數據與

P1202SetChannelConfigO的設定會有關聯性.

wNum:[Input]一次轉換AD數據個數。

wSampleDiv:[Input]AD取樣頻率=8M/wSampleDiv.

Example:wSampleDiv=80取樣頻率=8M/80=100K

6.MagicScan魔術掃描函數集

使用MagicScan的步驟:

步驟L設定使用MagicScan的通道掃描順序與配置碼

步驟2.開始MagicScan

步驟3.取得MagicScan的狀態

步驟4.取得數據

下圖為MagicScan的函數流程圖:

P1202_ClearScan

該函數用來重新設定MagicScancontroller到初始狀態。

,語法:

WORDP1202_ClearScan();

-函數回傳值:

0:無錯誤一

P1202_StartScan

該函數用來啟動MagicScan工作。可以使用P1202WaitMagicScanFinish()或是

P1202_RcadScanStatus()檢查MagicScan的工作狀態。

,語法:

WORDP1202_StartScan(WORDwSampleRateDiv,WORDwNumCycles,SHORTnPriority);

?參數:

wSampleRateDiv:[Input]A/D取樣頻率=8M/wSampleRateDiv.

wSampleRateDiv=80,取樣頻率=8M/80=100K

wNumCycles:[Input]每一次掃描命令要完成的掃描周期。

nPriority:[Input]設定優先級(Priority)。

,回傳值:

0:無錯誤

P1202_ReadScanStatus

該函數取得MagicScan、Pre-tirgger^Post-trigger、Mid-trigger的運作狀態。它只

能用來檢查狀態但旋不會影響運行。所以建議必須隨時檢查狀態,當狀態值為0X80時為正常,

若為0X01時則代表失敗。

?語法:

voidP1202_ReadScanStatus(WORD*wStatus,DWORD*dwLowAlarm,DWORD

?dwHighAlarm);

,參數:

*wStatus:[Output]傳址函數。用來儲存UagicScan的狀態。

wStatus值狀態表

wStatusValue(HEX)狀態

0x00initialMagicScan初始狀態(發呆中)

0x01startMagieScan工作中

0x02timeout1MagicScanstage1controlle

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論