阿尔泰USB5630数据采集卡
通过以太网接口实现数据采集
硬件连接
9v~24v直流电源接通电源
剩下根据产品使用手册查看各个接口,包括模拟量输入输出、数字量输入输出、计数器等功能。根据需要连接接口,注意接入电压值范围。
软件开发
安装提供的软件,在安装目录下包含了帮助文档和测试示例。安装目录
- Help文件下包含使用手册和API文档;
- Samples文件下包含开发测试示例,包括c++、c#等开发语言示例,根据开发语言选择USB/NET开发示例。这里选择NET文件示例,完成以太网接口开发采集数据。
使用板子提供的API,通过qt开发,Qt5.5 mingw 32
- 将板子提供的库复制到工程目录/bin,包括USB5630E.h, USB5630E.lib, USB5630E.dll
- .pro配置
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/bin/ -lUSB5630E
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/bin/ -lUSB5630E
INCLUDEPATH += $$PWD/bin
DEPENDPATH += $$PWD/bin
- 引入头文件 #include “bin/USB5630E.h”
- 根据官网提供的实例进行开发,提供的api文档也挺详细
AD模拟量输入实现代码:
USB5630E_AI_PARAM AIParam;
U32 nReadSampsPerChan = 0, nSampsPerChanRead = 0;
F64 fTimeout = 1.0; // 10秒钟超时
U32 nReadableSamps = 0;
HANDLE hDevice = INVALID_HANDLE_VALUE;
U16 nBinArray[USB5630E_AI_MAX_CHANNELS];
// 第一步 创建设备对象
hDevice = USB5630E_DEV_Create("192.168.1.4");
if(hDevice == INVALID_HANDLE_VALUE)
{
qDebug() << "DEV_Create Error";
return 0;
}
USB5630E_PORT_PARAM PortParam;
memset(&PortParam, 0, sizeof(PortParam));
for (int nIdx=0; nIdx<8; nIdx++) // 端口0
{
PortParam.CHParam[0].nFunction[nIdx] = USB5630E_PORT_FUN_DIO; // 端口0只能为DIO
PortParam.CHParam[0].nDIODir[nIdx] = USB5630E_PORT_DIR_DI; // 置为DI输入
PortParam.CHParam[0].nDIOVal[nIdx] = 0; // nDIODir为输出时有效
}
for (int nIdx=0; nIdx<8; nIdx++) // 端口1(PFI0~7)
{
PortParam.CHParam[1].nFunction[nIdx] = USB5630E_PORT_FUN_CTR; // 端口1设为CTR功能
}
for (int nIdx=0; nIdx<4; nIdx++) // 端口2(PFI8~15)
{
PortParam.CHParam[2].nFunction[nIdx*2] = USB5630E_PORT_FUN_PFIIN;// 端口2(0 2 4 6设为PFI输入)
PortParam.CHParam[2].nFunction[nIdx*2+1] = USB5630E_PORT_FUN_PFIOUT;// 端口2(1 3 5 7设为PFI输出)
}
if (!USB5630E_Port_Config(hDevice, &PortParam))
{
qDebug() << "Port_Config Error,请参考sys.log"