国产性一乱一性一伧的解决方法,国产一区影视,日韩欧美国产亚洲,日韩av在线播放不卡,国产69精品久久久久孕妇大杂乱 ,亚洲国产一,97国产精品视频,波多野结无码高清中文
君億道科技聯系電話:0755-26830682

公司新聞

最全面及時的公司資訊、企業動態

Python for Windows USB-QUAD08 示例

來源君億道

這是適用于 Windows的產品特定USB-QUAD08 Python 示例。它將通道 0 配置為編碼器模式,將通道 1 配置為周期模式。它使用假距離值以將編碼器位置顯示為以英寸為單位的 +/- 距離。周期模式用于計算頻率和 RPM。為此,將計數乘以刻度大小 (20.83nS),然后取倒數并乘以 60 以獲得 RPM。Python 文件附在下面作為下載。

 

__future__ 導入 absolute_import,除法,print_function

 

進口時間

 

from builtins import * # @UnusedWildImport

從時間導入睡眠

ctypes 導入強制轉換、指針、c_doublec_ushortc_ulong

mcculw 進口 ul

mcculw.enums 導入 ScanOptionsFunctionTypeStatus

mcculw.ul 導入 ULErrora_input_mode

mcculw.enums 導入接口類型

mcculw.enums 導入 CounterMode

mcculw.enums 導入 CounterDebounceMode

mcculw.enums 導入 CounterDebounceTime

mcculw.enums 導入 CounterEdgeDetection

mcculw.enums 導入 CounterTickSize

 

 

use_device_detection = True

 

 

def run_example():

    board_num = 0

    board_index = 0

    find_device = " USB-QUAD08 "

    如果使用_device_detection

        board_num = -1

        ul.ignore_instacal()

        dev_list = ul.get_daq_device_inventory(InterfaceType.USB)

        如果 len(dev_list) > 0:

            對于 dev_list 中的設備:

                如果 str(device) == find_device:

                    print(f"找到 {find_device} 板號 = {board_index}")

                    print(f"序列號:{device.unique_id}")

                    print(f"產品類型:{hex(device.product_id)}")

                    board_num = board_index

                    ul.create_daq_device(board_num, 設備)

                board_index = board_index + 1

            如果 board_num == -1

                print(f"設備 {find_device} 未找到")

                返回

        別的:

            print("未檢測到設備")

            返回

    # ************探索結束************

 

    = 200

    points_per_channel = 40

    low_chan = 0

    high_chan = 1

    num_chans = 2

 

    total_count = points_per_channel * num_chans

    half_count = int(total_count / 2)

    # SCALEDATA 選項,返回電壓而不是 A/D 計數

    scan_options = ScanOptions.CONTINUOUS | 掃描選項。背景 | 掃描選項.CTR32BIT

 

    memhandle = ul.win_buf_alloc_32(total_count)

    buf_data = cast(memhandle, POINTER(c_ulong))

 

    # 檢查緩沖區是否分配成功

    如果不是內存句柄:

        print("分配內存失敗")

        返回

 

 

    嘗試:

        ul.c_config_scan(board_num,

                         低陳,

                         CounterMode.ENCODER | CounterMode.ENCODER_MODE_BIT_32,

                         CounterDebounceTime.DEBOUNCE500ns,

                         CounterDebounceMode.TRIGGER_AFTER_STABLE,

                         CounterEdgeDetection.RISING_EDGE,

                         CounterTickSize.TICK20PT83ns,

                         low_chan)

 

        ul.c_config_scan(board_num,

                         high_chan,

                         CounterMode.PERIOD | CounterMode.PERIOD_MODE_BIT_32,

                         CounterDebounceTime.DEBOUNCE500ns,

                         CounterDebounceMode.TRIGGER_AFTER_STABLE,

                         CounterEdgeDetection.RISING_EDGE,

                         CounterTickSize.TICK20PT83ns,

                         high_chan)

 

        # tick_size 是分配給單個計數的時間量

        tick_size = 0.00000002083

        # distance_per_tick 是分配給單個計數的距離(用于演示的任意值)

        distance_per_tick = 0.001

 

 

        # 開始讀取輸入

        ul.c_in_scan(

            board_num, low_chan, high_chan, total_count,

            率,memhandlescan_options

 

        # 創建一個格式字符串,對齊列中的數據

 

        # curr_index curr_count 加兩個

        row_format = "{:8}" * (num_chans)

 

        # 打印頻道名稱標題

        標簽 = []

        對于范圍內的 ch_numlow_chanhigh_chan + 1):

            標簽.append("CH" + str(ch_num) + "\t")

 

        打印(row_format.format*標簽))

 

        # 用于切換讀取上下緩沖區的布爾標志

        read_lower =

        # 開始更新顯示的值

        狀態,curr_countcurr_index = ul.get_status(

            board_num, FunctionType.CTRFUNCTION)

 

        最后 = 0

        差異 = 0

        而狀態!= Status.IDLE curr_count < 5000

            # 確保數據點可用于顯示。

            如果 curr_count > 0

                # curr_index 指向最后一個完成的開始

                # 在板和板之間傳輸的通道掃描

                # 數據緩沖區。顯示每個的最新值

                # 渠道。

 

                # 顯示數據 = []

                如果(curr_index > half_count)和(read_lower == True):

                    # 將緩沖區的下半部分轉移到 buf_data 數組

                    ul.win_buf_to_array_32(memhandle, buf_data, 0, int(half_count))

                    如果 buf_data[1] > 0

                        # 假設每轉一個脈沖

                        周期 = buf_data[1] * tick_size

                        頻率 = 1 / 周期

                        rpm = 頻率 * 60

                        距離 = buf_data[0] * distance_per_tick

                        print('{:.3f} 英寸\t\t{:.3f} RPM'.format(distance, rpm))

                    read_lower =

 

                elif (curr_index < half_count) (read_lower == False)

                    # 將緩沖區的上半部分傳輸到 buf_data 數組

                    ul.win_buf_to_array_32(memhandle, buf_data, int(half_count), int(half_count))

                    如果 buf_data[1] > 0

                        # 假設每轉一個脈沖

                        周期 = buf_data[1] * tick_size

                        頻率 = 1 / 周期

                        rpm = 頻率 * 60

                        距離 = buf_data[0] * distance_per_tick

                        print('{:.3f} 英寸\t\t{:.3f} RPM'.format(distance, rpm))

                    read_lower =

 

            睡眠(0.1

            狀態,curr_countcurr_index = ul.get_status(

                board_num, FunctionType.CTRFUNCTION)

 

        # 停止后臺操作(即使

        # 掃描成功)

        ul.stop_background(board_num, FunctionType.AIFUNCTION)

 

        print("掃描成功。")

    除了 ULError e

        print("UL 錯誤\n", e)

    最后:

        # finally 塊中釋放緩沖區以防止錯誤導致

        # 內存泄漏。

        ul.win_buf_free(內存句柄)

 

        如果使用_device_detection

            ul.release_daq_device(board_num)

 

 

如果 __name__ == '__main__'

    運行示例()


主營:電流探頭,電壓探頭,羅氏線圈,電流傳感器,高壓探頭,電流互感器,功率電子測量產品
粵ICP備14003389號深圳君億道科技有限公司 © http://www.fengshengzhitongche.com
主站蜘蛛池模板: 德清县| 汉寿县| 耿马| 惠来县| 同江市| 嘉禾县| 合作市| 印江| 贵阳市| 北海市| 曲阳县| 镇赉县| 叶城县| 娱乐| 昌都县| 晋中市| 昌平区| 恭城| 巴南区| 开封县| 浦北县| 阿坝| 碌曲县| 财经| 凤山县| 仪陇县| 新巴尔虎左旗| 乌兰察布市| 芒康县| 长寿区| 宜兰市| 刚察县| 高要市| 凉山| 瑞安市| 松桃| 霍山县| 东安县| 屏南县| 荣昌县| 保靖县| 房产| 曲沃县| 江阴市| 吴川市| 临猗县| 巨野县| 秦安县| 淅川县| 青冈县| 天门市| 琼结县| 丽水市| 普宁市| 台中县| 蒲江县| 塔河县| 石渠县| 梅州市| 哈巴河县| 通化市| 开鲁县| 邓州市| 乐亭县| 垫江县| 萨嘎县| 奉节县| 奇台县| 昌图县| 高陵县| 环江| 侯马市| 巴中市| 同仁县| 崇明县| 湖口县| 玉溪市| 特克斯县| 吉水县| 彰武县| 永宁县| 扎赉特旗|