基于数据采集卡读取旋转编码器数据

本文介绍了如何通过阿尔泰USB2381数据采集卡连接欧姆龙增量式旋转编码器,详细阐述了接线步骤,并在Windows环境下使用官方软件ART-DAQ读取数据。接着,利用Python读取编码器数据,通过socket将数据传递给Java进行后端处理。同时,文中还解决了驱动签名和系统安全模式的问题。
摘要由CSDN通过智能技术生成

本篇介绍了如何使用阿尔泰USB总线脉冲计数/编码器采集卡,接入欧姆龙增量式旋转编码器,获取编码器信号,并通过python读取数据,最终基于socket服务将数据传递到java,便于后端开发。


接线

1. 旋转编码器

采用欧姆龙E6B2-CWZ1X增量式旋转编码器,可输出A、A-、B、B-、Z、Z- 相
在这里插入图片描述
在这里插入图片描述

2. 数据采集卡

采用阿尔泰USB总线脉冲计数/编码器采集卡,型号为USB2381
在这里插入图片描述
在这里插入图片描述

3. 接线

旋转编码器A(黑色)B(白色)Z(橙色) 相连接到数据采集卡的 A(PFI8)B (PFI9)Z(PFI10) 端口。采集卡的 +5V OUTDGND 分别连接编码器 褐色+蓝色- 进行供电。
在这里插入图片描述

使用官方软件读取数据

1. 安装软件

下载阿尔泰官方软件。
ART-DAQ软件下载地址

2. 更新驱动

打开DMC(设备配置管理工具),在设备和接口列表,右击接入的设备(USB"Dev1"),选择更新驱动,完成连接。
在这里插入图片描述

2.1 禁用数字签名

  1. 如果更新完驱动,设备仍然无法接入,需要禁用数字签名
    如何在 Windows 11 中禁用驱动程序签名强制
  2. 永久禁用数字签名
    1. 打开命令提示符(以管理员身份运行)
    2. 输入以下命令并按回车键:bcdedit /set testsigning on
    3. 如果提示,设置元素数据时出错 该值受安全引导策略保护,无法进行修改或删除,需要在计算机的 BIOS 设置中禁用安全引导(Secure Boot)
    4. 重新启动系统使更改生效。

这将启用测试签名模式,允许加载未经数字签名的驱动程序和软件。注意,禁用数字签名会降低系统安全性,并且不建议普通用户进行这些更改。

如果希望恢复数字签名验证,使用以下命令:bcdedit /set testsigning off
这将禁用测试签名模式并恢复数字签名验证。

3. 新建采集任务

在DMC软件中,右击ArtDAQ任务,创建新ArtDAQ任务,选择采集信号-计数器输入-角度位置,选择物理通道Dev1 ctr0,输入任务名称,完成创建。
在这里插入图片描述

4. 读取数据

打开新创建的任务,设置采样时钟源为PFI8,信号输入范围360脉冲/转,点击运行,获取旋转编码器信号。
在这里插入图片描述

使用python获取数据

1. 找到例程

在软件安装目录找到Samples文件夹,里面给出了Pyhton、VC、C#等例程。
在这里插入图片描述

2. 运行程序

在Python代码历程中找到 Samples\CNT 文件夹,安装相应依赖包,运行 ci_ang_encoder.py 文件可获取到编码器数据。

import artdaq
import time
import pprint
from artdaq.constants import (AcquisitionType, EncoderZIndexPhase, AngleUnits, EncoderType)

pp = pprint.PrettyPrinter(indent=4)

with artdaq.Task() as task:

    # add_ci_ang_encoder_chan(counter, name_to_assign_to_channel='', decoding_type=EncoderType.X_4, zidx_enable=False, zidx_val=0, zidx_phase=EncoderZIndexPhase.AHIGH_BHIGH, units=AngleUnits.DEGREES, pulses_per_rev=24, initial_angle=0.0, custom_scale_name='')
    # counter 计数器名称
    # decoding_type 指定如何计数和解释编码器在信号A和信号b上产生的脉冲。X_1, X_2和x4仅对正交编码器有效。TWO_PULSE_COUNTING仅对双脉冲编码器有效。
        # X_1:表示单倍增量解码类型。这是一种常见的解码方式,每个脉冲都被视为一个计数单位。在这种模式下,每个脉冲都被视为一个状态变化,可以用于确定旋转方向和计数旋转的步数。
        # X_2:表示双倍增量解码类型。在这种模式下,每个脉冲被视为两个计数单位,可以提高计数的分辨率。通过检测脉冲的上升沿和下降沿,可以更准确地计算旋转的步数。
        # X_4:表示四倍增量解码类型。在这种模式下,每个脉冲被视为四个计数单位,进一步提高计数的分辨率。通过检测脉冲的上升沿和下降沿以及A相和B相的状态变化,可以更精确地计算旋转的步数。
    # zidx_enable 用于指定是否在通道上使用 Z 索引,启用 Z 索引功能。如果启用,意味着在旋转编码器的输出信号中,会有一个额外的 Z 相信号。当该信号发生变化时,可以将其视为旋转编码器旋转一周的起点或特定位置的标记。
    # zidx_val 用于指定当信号Z高电平(high)且信号A和信号B处于您使用zidx_phase指定的状态时,要将测量值重置为的数值(以指定的单位表示)。
    # zidx_phase 用于指定在信号Z高电平(high&#x
  • 22
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值