• 博客(3635)
  • 资源 (14)
  • 收藏
  • 关注

原创 LabVIEW双光子成像系统:自主创新,精准成像,赋能科研

自主双光子成像系统突破进口技术垄断,实现深层活体组织高精度观测。系统采用LabVIEW全栈开发,兼容进口硬件且成本降低60%,具备FPGA超高速处理(延迟≤2ms)和智能拼接(误差≤0.1像素)能力。核心技术包括多模态轴向扫描(光毒性降40%)、振镜联动控制(误差≤0.001°)及EOM能量闭环管理。支持神经科学毫秒级成像、500μm深层观测及工业亚微米检测,提供终身免费升级服务,助力科研装备国产化。

2025-02-03 11:03:17 4557 6

原创 LabVIEW开发及系统集成在实验室科研的应用

实现了设备性能的实时监测,异常检测及故障预测。这些系统利用LabVIEW强大的数据处理和分析能力,快速适应多变的测试场景,显著提高了操作的可靠性,有效减少了设备故障和维护时间,保障了整体设备运行的稳定性。项目描述:在机械工程、电子信息和生物医学工程等领域广泛使用LabVIEW进行实验数据采集、分析和控制系统的开发。应用描述:用于精确控制实验室中的各种设备和化学、物理过程,如温度控制、流体动力学实验等。项目描述:在多个研究所和实验室中,LabVIEW被用于实验数据采集、分析和仪器控制等。

2024-03-28 09:02:04 5062 2

原创 LabVIEW 连接板:28 个端子怎么排,优先级怎么定

本文深入解析LabVIEW子VI连接板设计的五大核心原则:端子数上限为28,源于排布规则而非软件限制;端子位置不决定输入输出,由控件类型和连线方向决定;三种优先级(Required/Recommended/Optional)影响编译与使用体验;动态分配仅允许一个输入,用于运行时类型分派;以及连接板设计应遵循“重要性排序、错误簇固定位置、同类聚集、端子数控制在12以内、与面板布局一致”五条实践准则。强调连接板是子VI的对外契约,设计不当将导致维护困难。

2026-11-06 06:30:00 700

原创 LabVIEW 子 VI 的三笔隐形开销:内联、递归、按引用

子VI调用看似零成本,实则隐含三重开销:调用跳转、数据空间管理与线程执行。静态调用每次重置数据,按引用调用保留状态;内联可消除调用开销但牺牲调试与代码复用;递归需开启可重入以避免内存冲突。LabVIEW数据流驱动决定执行顺序,不可依赖位置。理解这些底层机制,方能在性能、稳定性与可维护性间做出明智选择。

2026-11-06 06:30:00 545

原创 LabVIEW 初学者第一次去现场调试,要注意什么?

第一次现场调试,别怕!办公室与现场是两个世界。出发前问清设备型号、协议、电脑环境、网络、配合人员及验收标准,避免“干等”。笔记本必备:匹配版本软件、驱动、源码、串口工具、万用表、转接线。到现场先验电源、接线、信号、参数,用串口助手确认物理层通再开程序。通信代码要设超时、一问一答、支持重连、显示错误信息。避开事件结构耗时、局部变量传值、停止按钮失效、循环无延时、文件不flush等五大陷阱。应对断线、干扰、时间不同步等现场常态,做好备份、记录、交接。收工交配置说明、操作手册、问题清单和现场记录。方法朴素:逐个固

2026-11-05 06:30:00 286

原创 LabVIEW 要淘汰了?先看 2026 年的发版记录

LabVIEW未被淘汰,仍保持每年两次更新,2026Q3新增AI生成VI、UTF-8支持、.NET8.0/Linux部署等关键功能,证明其持续投入。产线系统寿命长,改造需求旺盛,真实需求远超招聘网站反映的“新增岗位”。AI非替代者,而是LabVIEW的生产力工具;Python强在分析,但实时控制中效率远低于LabVIEW。真正被淘汰的是不懂架构、硬件与系统集成的人。技能危机不在工具,而在人。学LabVIEW,应从理解真实系统运行开始。

2026-11-05 06:15:00 168

原创 34970A:接 LabVIEW 常踩的 5 个坑

34970A 是插卡式数据采集与开关主机,一台机箱里既做多路切换也做测量,接口有 GPIB 和 RS-232,接 LabVIEW 常用原厂的插件式或 IVI 驱动。这台设备最容易卡住的地方是串口连不上、扫描列表不对,以及和 Switch Executive 配合时的驱动配置。

2026-11-04 06:30:00 417

原创 LabVIEW 初学者架构怎么选?跟着痛点升级

初学者写 LabVIEW,最常见的程序长这样:一整条顺序结构从头排到尾,采集、分析、显示、存盘全挤在一个循环里,界面一卡就是好几秒,想加个"停止"按钮还得等当前这轮跑完。问题不在代码量,而在。架构不是学术名词,它决定你这个程序后面还能不能长。LabVIEW 的项目模板里其实已经把进阶路线摆好了:从简单的顺序结构,到状态机,到生产者—消费者,再到队列消息处理器(QMH)。每一级都解决上一级解决不了的问题。

2026-11-03 21:14:01 552

原创 LabVIEW 入门快是优势,也是最大的坑

很多人学 LabVIEW 的第一周,就能拖出带按钮、带图表的界面,看着波形在屏幕上动起来,特别有成就感。这确实是 LabVIEW 最迷人的地方——别的语言还在配环境、调编译,你已经把数据采集跑通了。

2026-11-03 09:07:15 332

原创 LabVIEW 局部变量为何引发竞争条件?四种同步机制

在 LabVIEW 里,(局部变量)和(全局变量)读写的是同一块内存地址,并且本身不带任何锁。当两个以上并行的循环 / VI 同时访问它时,读写顺序就脱离了你的控制:[循环A] x = 读取共享变量 // 读到一半[循环B] x = 写入共享变量 // 把值改了[循环A] x = x + 1 // 基于"旧值"算,结果错更糟的是,这种错误不可复现:单步跑、低负载时一切正常,高负载 / 多任务抢资源时才偶尔冒头,现场极难复现。这也是它最危险的地方。

2026-11-03 09:06:12 160

原创 LabVIEW 局部变量与数据流:这道 CLAD 题为什么答案是 Undefined

这道题的价值不在答案,而在它逼你回答一个问题:你的程序,是靠数据流在跑,还是靠运气在跑?CLAD 考的就是这个。会连线的人很多,能让程序「不靠运气」的人不多。题目来自 LabVIEW 认证练习题(CLAD),答案为 D:Undefined。本文补充了数据流、竞态与三种正确写法的说明。标签:LabVIEW, 局部变量, 数据流, 竞态条件, CLAD。

2026-11-02 11:14:24 204

原创 Fluke 万用表:接 LabVIEW 常踩的 5 个坑

Fluke 在 LabVIEW 机柜里通常是两类设备:8846A 这类台式数字万用表,以及 5720A、5500A、9100、726 这类校准器与过程校验仪。它们大多走 VISA 的 GPIB 或 TCPIP 会话,驱动来自 NI 的第三方仪器驱动库,或者自己按 SCPI 封装。

2026-11-02 06:30:00 605

原创 LabVIEW 编程风格:别让代码长成意大利面

图形化编程虽直观,却易成“意大利面代码”。《LabVIEW编程风格》提出7大核心规则:明确需求、界面克制、数据流清晰、图标规范、善用数据结构、错误簇串联、采用成熟设计模式。关键在于从一开始就建立统一风格,确保程序可读、可维护、可扩展。自动化审查与持续文档化是保障。风格不是束缚,而是让“能跑”的程序“跑得久”。

2026-11-02 06:30:00 625

原创 LabVIEW 队列、通知、信号量、会合:四种同步机制到底怎么选

同步机制的选择,本质上是在回答一个问题:你要传的到底是数据、状态、许可,还是节奏?答对了,代码自然简单;答错了,再多的锁和变量也救不回来。本文提到的 Queue、Notifier、Semaphore、Rendezvous 均为 LabVIEW 内置同步函数,位于「编程 → 同步」选板。标签:LabVIEW, 队列, 同步机制, 多线程, 竞态条件。

2026-11-01 22:08:58 279

原创 火箭转运那天,测试台早转起来了

低轨 28 组发射、力箭二号转运,地面测试先行10 月 25 日,我国在海南商业航天发射场用长征八号甲把卫星互联网低轨 28 组卫星送上天;10 月 26 日,力箭二号遥二运载火箭转运至发射区,近期择机发射,最大运力 12 吨,走一箭多星、低轨组网路线。新闻里的镜头是火箭竖起来那一瞬,但那之前,测试台早转了不知道多少轮。两条航天消息(来源:央视新闻 2026-10-25 / 26)

2026-10-31 10:54:44 222

原创 LabVIEW 水泵异常检测:从多源传感、峭度特征到 SAE+ELM 智能诊断

监测系统的本质就八个字:边采、边算、边显示。LabVIEW 在这件事上有天然优势——图形化编程,DAQmx 采集链路成熟;实时波形、报警灯、数据落盘拖几个控件就能出来;和 NI 采集卡、各类仪器协议天然打通。要上算法,MathScript 节点或 Python 节点都能接,不用为了加一个模型就把整套架构推翻重来。

2026-10-31 09:21:25 241

原创 LabVIEW 机载 DIAL:每秒万次甲烷测量

一套装在单引擎固定翼飞机上的差分吸收激光雷达(DIAL)系统,在 500 m 到 1 km 的对地高度上,每秒要完成 1,000 到 10,000 次甲烷测量。工程上的难点在于让激光、采集、定位和相机落在同一个时基上。

2026-10-31 07:30:00 404

原创 LabVIEW 改造项目:先看源码,再见最终用户,最后才谈报价

所以我们现在接改造项目,顺序是固定的:先要源码,判断底子是改还是重写;再约最终用户,把隐性需求挖出来;最后才谈价格和工期。这个过程听起来慢,其实是唯一快的方式。因为改造项目真正的成本,从来不是写代码的那几周,而是上线之后那半年。如果你手上正有一个改造项目,对方催着报价,不妨先回一句:能不能先看看源码,再和现场用的人聊半小时?这一句话,往往能帮你省掉后面半年的补丁。本文为工程实践观察,不针对任何具体项目;文中观点来自多个 LabVIEW 改造项目的共性经验。

2026-10-30 20:49:41 159

原创 CTM-3 红外测温仪 + LabVIEW 温度怎么测?

Micro-Epsilon thermoMETER红外测温仪适用于运动、带电或难接触物体的温度监测。结合LabVIEW实现稳定连续采集,通过参数统一配置、实时超限报警、自动重连与数据分段存储,确保测量可追溯、可重复。关键在于正确设置发射率、匹配光斑、合理读取周期,并规避环境干扰,适用于工业过程长期监控场景。

2026-10-30 06:45:00 490

原创 CMT 矢量网络分析仪 + LabVIEW 测S参数?

CopperMountain CMTS4系列USB矢量网络分析仪凭借低成本、小体积,实现多工位部署。结合LabVIEW开发,构建可重复、可追溯的自动化测试流程:通过简化响应校准(仅需开路/短路+直通),确保校准顺序合规;利用复数数据处理优势,精准获取S参数并支持实测与仿真曲线叠加比对;统一管理激励参数,优化扫描节拍;全程记录校准信息与接头一致性,保障数据可信。适用于产线快速检测、研发比对等场景,显著提升效率与可靠性。

2026-10-30 06:30:00 431

原创 CompactRIO 复现列车接口时序:虚拟列车测试最容易踩的三个坑

摘要:用仿真设备替代真车做信号测试,难点不在"假",在"像"——协议要对,时序更要对。这篇拆解虚拟列车的三层接口、时序预算方法、三个必踩的时序坑,以及怎么用录波证明"像真车"。

2026-10-29 07:50:06 262

原创 PXI + LabVIEW 多通道声学采集:通道扩到 64 路前要先算的三笔账

摘要:可扩展和低成本在声学测试里通常矛盾。这篇把矛盾拆成三笔账——传感器与调理、机箱槽位与带宽、通道相位一致性,并给出 16/32/64 路的配置算法与分批上线方案。

2026-10-29 07:49:30 378

原创 LabVIEW 工程师看 NI DAYS 2026 上海:NI 把硬件驱动封装成了 MCP 服务

今天(10 月 28 日)NI DAYS 2026 在上海召开。作为常年和 NI 硬件、LabVIEW 打交道的人,今年最让我在意的一页,是那张的幻灯片——它背后是 NI 把几十年攒下的硬件驱动、仪器控制能力,往「AI 可调用」的方向挪了一步。

2026-10-28 19:23:26 171

原创 NI Days 现场:NI 把设备驱动做成了 MCP 服务

我的看法:NI 这次讲的不是「AI 会取代测试工程师」,而是「测试工程师的入口变了」。硬件国产化 + 驱动 MCP 化,两条线同时走,方向是清楚的。你在现场吗?最关心哪一块:PXI 选型、MCP 接入,还是 LabVIEW 后续版本?评论区聊。图片来源:NI Days China 2026 现场拍摄(Emerson NI)。

2026-10-28 13:17:48 97

原创 用 LabVIEW 做故障注入:把起落架的「危险试验」变成可重复流程

故障注入不是新概念,难的是把它做得安全、可控、可归因。图形化的价值也在这里:时序、互斥、优先级这些最容易出错的地方,恰好是 LabVIEW 最擅长表达的地方。本文根据公开论文整理,已隐去单位、人名与型号信息,只保留技术内容。标签:labview, LabVIEW程序, 知识, 事件结构。

2026-10-28 07:00:43 72

原创 PHD2000 注射泵通宵实验:LabVIEW 分段排程、堵针检测与断点续跑

摘要:通宵实验真正的风险不是泵推不准,是"推到一半出错没人知道"。这篇给出分段排程的时序模型、堵针的三级判据、断点续跑的状态机设计,以及一份可直接用的实验日志表结构。

2026-10-28 06:58:10 390

原创 一块电池要过针刺、碰撞、火烧,测试台先扛住

磷酸铁锂能量型电池接受外部火烧四阶段测试,同样要守住不起火、不爆炸的线。现场技术人员一句话很实在:「安全不是靠包装出来的,是材料、设计、工艺一层层叠出来的。新能源要对接全球市场、跨过碳关税和数字电池护照这类门槛,靠的不是口号,是能溯源、可验证的测试数据。10 月 27 日,南方+ 记者走进国家新能源产品检测重点实验室(江西)和孚能科技生产基地,围观了动力电池出厂前的三道强制安全关:电芯针刺、电池系统模拟碰撞、外部火烧。这些试验台要同步采集电压、温度、压力,还要接高速视频,实时判定「起不起火、爆不爆炸」。

2026-10-28 06:57:38 332

原创 CLAD 例题精讲 2|数值与布尔:三个反直觉的地方

你在第 2 讲错得最多的是哪一种:溢出回绕、强制点截断,还是布尔符号?评论区说说,我按投票最多的做下一期。题目来源:NI Daily CLAD 社区每日一题;中文标注为本套例题册整理,解析保留原帖思路、仅做中文转述。第 2 讲共 125 题,建议用时 150 分钟。

2026-10-27 19:28:48 200

原创 FlexRIO 在轨图像取舍:判决要跑在数据进内存之前

摘要:拍得到和传得回是两回事——下行带宽永远不够。这篇讲判决逻辑为什么必须放进 FPGA、行流水线怎么搭、资源账怎么算,以及三个必踩的坑:跨时钟域、DMA 溢出、位宽截断。

2026-10-27 19:14:54 317

原创 CLAD 例题精讲 1|数据流:执行顺序不是从左到右

你第一次被数据流坑,是竞态、属性节点,还是循环里那个永远读不到的 stop?评论区说说,我挑典型的在下一讲展开。标签:#LabVIEW #CLAD #LabVIEW认证 #数据流 #虚拟仪器。

2026-10-27 10:02:13 166

原创 LabVIEW HIL 实时仿真:闭环延迟怎么测、怎么拆、怎么压下来

摘要:闭环延迟压不住,HIL 的结论就不可信。这篇把一条闭环链路拆成 5 段逐个称重,给出一套能落地的测量方法(RT 端打点 + 回环注入),以及 5 个能立刻用的压延迟手段,附判读脚本。

2026-10-27 09:58:13 276

原创 Hamamatsu 微型光谱仪系列怎么接 LabVIEW

Hamamatsu微型光谱仪体积小,集成度高,参数固化,使用前必须通过程序读取波长范围、像素数、标定系数等关键信息,确保后续数据可解释。驱动开发首步为“摸清底细”,包括读参数、标定、库版本与传感器数据,尤其需锁定动态库版本以保障兼容性。型号差异主要在灵敏度与光谱范围,选型应匹配实际需求。其核心价值在于可嵌入产线、设备内部实现在线监测,真正意义在于“能装进去”且“能被程序驱动”。

2026-10-27 06:45:00 475

原创 Fluke 45 万用表:双显示读数怎么取

Fluke 45 是福禄克的双显示台式万用表,主副两块屏能同时显示两个量,比如交流电压和它的频率。它的 RS-232 是标配、GPIB 是选件,命令集也不是标准 SCPI——控它之前先把这两件事搞清楚。

2026-10-27 06:15:00 421

原创 沃尔沃动态驾驶模拟器:开放 HIL 平台加 LabVIEW 实时仿真,延迟是验收指标

把真实部件接进仿真闭环,延迟一大结论就不可信。搭建便利性直接决定交付。

2026-10-26 09:16:00 165

原创 波音客机降噪验证系统:NI PXI 加 LabVIEW 怎么同时做到可扩展与低成本

可扩展和低成本通常是矛盾的,波音的声学验证系统里必须同时成立。

2026-10-26 09:15:29 177

原创 伦敦地铁信号系统升级:泰雷兹用 CompactRIO 和 LabVIEW 做虚拟列车测试,告别停运

停运测试既费时又费钱。用 CompactRIO 做的虚拟列车跑在新信号系统上,测试搬进了机房。

2026-10-26 09:14:57 186

原创 ISS 高清对地观测相机:LabVIEW + FlexRIO FPGA 怎么在采集现场决定数据取舍

拍得到和传得回是两回事。判断逻辑跑在 FPGA 上,数据还没进内存,留谁丢谁已经定了。

2026-10-26 09:14:24 260

原创 风洞 50 米/秒,LabVIEW 采哪几路信号

国产直升机过风洞,测试台上那几十路信号怎么采

2026-10-26 08:58:00 661

原创 研华 PCI-1710HG:驱动分两层才认卡

PCI-1710HG 是研华的一块 PCI 总线多功能数据采集卡,做模拟量输入输出和开关量控制。控它的关键不在程序,而在装驱动的顺序:底层的 32-bit DLL 驱动没装好,上面那层 LabVIEW 驱动就是个空壳。

2026-10-26 06:15:00 653

原创 PHD2000 注射泵:一整夜的注射实验怎么排

本文以哈佛仪器PHD2000注射泵为例,展示程序如何在真实实验中精准控制“何时推、推多少、如何衔接、出错怎么办”。从傍晚设参、夜间自动分段运行到凌晨异常自检,程序确保参数核对、状态监控、时间记录与故障应对,实现全流程可重复、可追溯。核心在于:机械动作简单,但时序与容错由程序掌控——这才是实验可靠性的关键。

2026-10-26 06:15:00 208

TDMS 文件脉冲区间提取程序说明

# TDMS 文件脉冲区间提取程序说明 ## 功能概述 本 LabVIEW 程序读取已存储的 TDMS 原始测量文件,识别信号的上升沿,提取**上升沿到下一个上升沿**之间的脉冲区间。各段脉冲宽度各不相同,以脉冲时间区间作为分割依据,同步截取其余全部关联通道对应区间的数据,每一段脉冲的数据分别保存为独立的 TDMS 文件,完成原始数据按脉冲周期拆分。 ## 程序流程 1. **读取原始 TDMS 文件** 以只读模式打开 TDMS 文件路径,读出波形原始测量数据与万用表通道数据,将多通道数据解包,得到各通道时序数组。 2. **识别信号上升沿,定位脉冲起始索引** 遍历目标信号通道,设置阈值条件,检测信号上升沿,记录每一处上升沿对应的数组索引`Rise index`。 > > 脉冲定义:**从一个上升沿到下一个上升沿**为一个完整脉冲周期,不同脉冲周期宽度不相等。 3. **按上升沿索引拆分数据段** 根据连续两组上升沿索引,切分出单段脉冲对应的数组区间;把索引分为奇数行、偶数行,完成脉冲区间分割。以脉冲区间的起止下标,对所有其余通道(电流、拉力、位移、万用表值等)做同步切片截取,保证多通道时间轴严格对齐。 4. **分段生成并保存多个 TDMS 文件** 循环处理每一段脉冲周期数据,每一组脉冲周期的全部通道数据,新建 / 覆盖生成一份独立 TDMS 文件。每一个脉冲周期输出一个文件,实现原始大 TDMS 文件,按脉冲周期拆分为多个分段文件。 ## 关键要点 1. 脉冲周期不等宽:完全依靠识别到的上升沿位置决定每一段的数据长度,不使用固定时长切片,适配脉冲宽度变化。 2. 多通道同步截取:不是只处理单路脉冲信号,其余所有采集通道,均使用同一套上升沿索引做切片,保证每段文件内部各通道时间完全对齐。 3. 输入输出:输入为完整连续采集的 TDMS 记录文件;输

2026-09-07

LabVIEW自主双光子成像系统 替代进口 降本增效

我们依托LabVIEW开发能力,打造自主可控双光子成像系统,替代进口产品、打破技术垄断。系统兼容进口硬件,成本降低60%,支持全栈定制与二次开发,具备超高速数据处理能力,适配神经科学、活体成像等多领域,以技术优势助力科研突破、加速创新发现。

2026-02-08

LabVIEW通讯控制3508 Programmer配置与使用说明

一、核心功能与参数说明 (一)分段配置功能 通过 iTools 软件可实现设备分段配置,但因设备版本较老,手册部分标注功能未配备。无 RampRate(斜坡速率)参数,仅能通过 Time 对应 Duration(持续时间)参数实现相关功能。 (二)关键参数详情 程序器各段通用参数(SCADA 通信可用):含 Segment.Type(段类型)、Segment.Duration(持续时间)等 24 项参数,对应偏移量 0-23。 程序器 1/2 基础参数:标签地址 = 偏移量 + 编程器编号(编程器 1 为 5184,编程器 2 为 5248),涵盖 ProgramNumber(程序号)、同步输入等配置项。 程序器段地址分配:编程器 1(Sync Ch1)50 个段,地址范围 5312(0x14C0)-5984(0x1760);编程器 2(Sync Ch2)50 个段,地址 6976(0x1B40)-8544(0x2160);预留 8576(0x2180)-10175(0x278F)地址供扩展。 程序器 1/2 第 1 段参数:标签地址 = 通用参数偏移量 + 对应段起始地址,编程器 1 第 1 段起始地址 5376,编程器 2 为 6976,包含段持续时间、目标设定值等参数。 二、双通道同步运行配置问题与解决方案 (一)Duration 单位与溢出问题 现象:Duration 默认单位为秒,超过 2 小时(7200 秒)后寄存器值变为 32768 导致溢出,无法满足长时间运行需求。解决方案:修改参数地址 5276(Programmer 1/2 Ch2 Dwell Units),0 对应秒、1 对应分钟、2 对应小时,通过单位调整实现长时间运行设置。 (二)Chan2 地址设置 Duration 报错 现象:直接对 Chan2 的 Duration 地址发送设置命令,返回错误

2025-11-04

LabVIEW 中基于 Cluster 与 vi Server 的温度通道显示

在 LabVIEW 中,多温度值需选不同通道显示时,可通过 Cluster(簇)实现。Cluster 能整合不同数据类型,可将单通道的编号、温度值、显示颜色等属性打包为一个簇元素,多通道簇元素再组成数组,便于统一操作。​ 为提升管理灵活性,引入 vi Server 技术。它支持编程访问 LabVIEW 对象,开发者可在运行时动态获取通道簇控件引用,修改温度显示格式、颜色等属性,无需在设计阶段固定配置。​ 该方案大幅提升通道控制灵活性:新增通道或修改显示逻辑时,仅需通过 vi Server 调整对应 Cluster 属性,无需改动整体程序架构,显著降低开发与维护工作量。

2025-09-09

LabVIEW 时间字符串处理与显示

LabVIEW 时间字符串处理与显示 在LabVIEW的应用场景中,经常会遇到需要从包含日期和时间信息的文件名里提取时间数据,并计算时间差的需求。下面结合提供的程序,介绍如何实现这一功能。 前面板左侧列出了多个带有时间信息的文件名,如“Save20250829082528.bmp”等。中间有“StartTime”和“Time2”两个控件,分别用于显示从不同文件名中提取的时间数据,右侧的“output 1”“Time(S)”“Time(MM:SS)”等控件则用于展示时间差的不同格式。还有“Numeric Properties: Time(MM:SS)”窗口,这里可以设置时间的显示格式,比如选择“HH:MM:SS”的24小时制等,以满足不同的显示需求。 程序框图,流程从文件名开始。首先,利用“Match Pattern”函数,它的作用是从字符串(这里就是带时间信息的文件名)中提取出符合特定模式的数字形式的时间字符串。从图片中可以看到,“Match Pattern”函数的输入连接着文件名相关的字符串,经过该函数处理后,能够精准地把文件名里代表时间的数字部分提取出来,比如从“Save20250829082528.bmp”中提取出“20250829082528”这样的时间字符串片段,分别得到对应不同时间点的字符串,如“StartTime”和“Time2”对应的时间字符串。 接着,使用“Scan From String”函数,这个函数的功能是将提取到的时间字符串按照指定的时间格式转换为LabVIEW能够识别和进行计算的时间数据类型。这样一来,原本只是字符串形式的时间就变成了可用于数值计算的时间数据,为后续计算时间差奠定了基础。 在得到两个时间数据后,就可以进行时间差的计算了。计算得到的时间差会传输到不同的显示控件。其中,“Time(S)”控件用于以秒为单位展示时间差的数值,这种格

2025-08-30

LabVIEW实现跨 VI 簇按钮控制功能

先通过 “VI Server Reference” 节点获取目标 VI 引用,再用 “Get Panel Controls and Indicators” 方法遍历面板控件,筛选出簇控件;进一步遍历簇内控件,依据 “Label.Text” 属性精准定位目标按钮,最终实现按钮属性读取与事件触发。​ 应用场景:适用于主 VI 调度子 VI 的模块化程序,可灵活触发子 VI 流程,替代 “调用并等待” 模式;还能读取子 VI 按钮状态,辅助主 VI 流程决策,适配测试序列控制等场景;同时为插件式 VI 加载等可扩展架构提供交互基础,降低 VI 耦合度。​ 实际应用需规范控件命名、校验 VI 加载状态,补充错误处理以避免引用失效、名称冲突问题。​

2025-08-29

LabVIEW图像拼接原理与实现

LabVIEW 依托 Vision Development 模块,通过图形化编程实现高精度图像拼接。核心流程包括:①图像采集与预处理,支持多相机同步或序列图像读取,集成高斯滤波、灰度转换等增强算法;②特征提取与匹配,内置 SIFT、SURF 等算子,结合 RANSAC 算法剔除误匹配点,确保配准精度;③几何变换与融合,基于单应性矩阵实现坐标映射,支持线性融合、拉普拉斯金字塔等算法消除拼接缝。其优势在于:1)硬件无缝集成,兼容 NI 及第三方工业相机;2)图形化调试界面实时显示特征点与配准效果;3)支持多线程并行处理,优化大数据量拼接效率。典型应用于 PCB 板全景检测、航空零部件表面缺陷识别等工业场景,相比传统方案开发周期缩短 50%,拼接精度达像素级。

2025-06-22

基于NI Vision和MATLAB的图像颜色识别与透视变换

基于NI Vision和MATLAB的图像颜色识别与透视变换 1. 任务概述 利用LabVIEW的NI Vision模块读取图片,对图像中具有特征颜色的部分进行识别,并对识别的颜色区域进行标记。接着,通过图像处理算法检测图像的四个顶点(左上、左下、右上、右下),并识别每个顶点周围最近的四个坐标。最后,调用MATLAB的图像透视变换功能,对图像进行校正,获取变换后的图像和变换矩阵系数。 2. LabVIEW和NI Vision 实现步骤 2.1 读取图片 使用 IMAQ Read Image 函数从文件中加载图像,并创建图像显示窗口。 在LabVIEW中,NI Vision模块提供丰富的图像处理功能,可以用于图像读取、显示和预处理。 2.2 颜色识别 颜色特征提取: 使用 IMAQ ColorThreshold 功能,根据特定颜色(如红色、绿色或蓝色)进行颜色分割,提取特定颜色区域。 选择合适的颜色空间(如RGB或HSV)进行颜色过滤,提高识别精度。 标记特征颜色: 使用 IMAQ Overlay 工具对识别到的特征颜色区域进行标记(如绘制边框、圆圈等)。 2.3 四个顶点检测 边

2024-11-11

数据挑选软件使用说明录像Video-20240328093240.wmv

通过配置文件修改参数,实现对两个文件中的数据按照时间进行同步。这个程序是LabVIEW2013版本的。也用到了jki State的结构,无需安装,程序可以直接运行。

2024-03-28

LabVIEW使用PID对激振器控制20230915.mp4

LabVIEW使用PID对激振器控制 LabVIEW的PID在许多项目中都会用到,比如温度控制、压力控制、流量控制等,一般用自带的PID通过调节参数的值,基本上都可以解决。现在项目的情况是,通过正弦波的输出控制激振器,输出正弦波的幅值与激振器的运动距离相关。波形输出是通过阿尔泰PCI5655实现,激振器也是国产。 通过采集激振器的位移,发现即使控制的正弦不发生任何变化,激振器的位移也是会有波动,误差有8%左右了。项目的要求是设定位移值,通过PID调节可以让激振器稳定在该值上。按照之前控制温度PID的经验,反复调整参数,也稳定不下来。原因可能是板卡输出波形后,激振器不是很快能响应,变化抖动大,经过滤波也不是很理想。 为了解决该问题,让PID的输出参数的范围为±0.01(即尽量小),该值输出后每次和之前的值进行累加。这样的效果就是正弦波形幅值输出,每次改变0.01V,激振器变动也会很小,再通过修改PID调节的时间间隔,就可以比较好的控制激振器了,它的变化就比较顺滑了。该程序的部分程序如下图所示。 登录公司官网,下载word文件,里面有LabVIEW程序

2023-09-15

LabVIEW对Table中同一行数据分多次增加

LabVIEW对Table中同一行数据分多次增加 在对多个设备采集数据,同时需要记录到表格中。很多时候多台数据并不是同时更新,比如有的是在开关之前读取更新,有的则是在开关闭合后更新。只是用Number Indicator的方式,需要很多个,在更新的时候看不清要关注哪一个。这在开始调试或者使用软件测试的时候,尤其显得手忙脚乱。 这时候可以在表格中保存数据的时候,按照数据采集更新的顺序进行更新。比如在每一组测试时,当第一个参数更新后,就将该数据在table中的对应位置进行更新。当其他参数更新时,也只更新对应的位置。这样在使用起来就会方便多了。 在开发的时候,分为两个步骤,每组测试开始的时候,对table增加一行。第二步则是当对应参数变化后,更新该行对应位置的数据。 前面板效果如下所示,已经更新了前边的5行,接下来就要更新6行以及后续的行了。 每一行开始的时候,首先增加一个新行,这里是通过BuildArray的方式增加的,同时对该行的颜色进行设置。 通过Case结构对不同的列进行Replace替换。如下图所示。 这是LabVIEW的一个功能介绍,更多的使用方法与

2023-09-13

LabVIEW拟合报错Error -20068

LabVIEW在进行拟合的时候,要对待拟合的数据进行查看,如果包括Nan字符要去除,否则会报错。

2023-09-02

在LabVIEW程序中增加一个参数保存功能

项目当时有一个参数,只要显示而无需保存,后来因为需要要增加保存。 现场上网不方便,做了个增加改参数保存的录像说明。 现场人员按照这个方法就可以比较容易的增加了。 软件采用JKI状态机进行开发,当时有预留,所以修改并不复杂

2023-08-31

阿尔泰公司PCI 5655板卡动态输出波形问题

我们在用PCI 5655输出电压值,遇到这样的状况,看看是怎么回事。 由于现场需要,我们要产生正弦波,我们设定的正弦波频率3,比如幅值是2V,周期点数20。板卡的参数设置为采样频率1000,每通道输出点数2000。运行后可以输出我们设定好的波形,但是如果在运行过程中吸怪了幅值,比如有2V改为3V。差不多要25秒后,才能用示波器观察到波形的变化。为什么会这么长的时间呢?我们希望波形更新的时间尽量短,最好能到1s以内。不知道是我们参数设置的问题,还是有什么配置。

2023-08-30

LabVIEW程序使用说明

视频介绍了,如果操作软件进行测试,并将测试的结果保存到了相应的目录中。 保存分为两部分,一是可以将所有6个通道全部保存,名字前缀有all chan字样。另一个是保存当前测试的通道。二者独立运行保存。

2023-08-15

LabVIEW快捷键CTRL-T错误解决办法

LabVIEW快捷键CTRL-T后,弹出错误对话框。解决办法,从其他好用的计算机上拷贝替换即可。目录“C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\analyzer”

2023-07-27

LabVIEW数据处理录像说明-2023-07-27

有一组原始数据,数据量比较大,通过每间隔N个数据抽取一个数据,会得到一组新数据,之后对这组新数据进行计算。这样计算量会降低,而且之前的数据是高速采集的,抽样后更符合低速采集的实际。 但是由于是真实数据,干扰,波动都是有的,N取不同的值,同一个算法得到的结果并不一样,需要确认实际要用的N,之后再完善优化算法。

2023-07-27

LabVIEW保存为低版本录像说明-2023-07-14-102008

LabVIEW保存为低版本录像说明_2023-07-14_102008 如需将层次结构中的顶层VI保存为LabVIEW前期版本,可选择文件»保存为前期版本,显示保存为前期版本对话框。对于LabVIEW项目,在项目浏览器窗口中选择文件»保存为前期版本。对于项目库,右键单击项目浏览器窗口中的库文件,从快捷菜单中选择保存为前期版本,或者打开项目库并选择文件»保存为前期版本。 在LabVIEW版本下拉菜单中,可选择将VI、项目或项目库保存为LabVIEW的某个前期版本。 注:如需保存的VI层次结构、项目或使用了LabVIEW工具包的项目库,且这些工具包向LabVIEW提供了版本信息,可在工具包版本栏选择需要保存的版本。 单击保存按钮,显示文件对话框。 选择用于保存VI层次结构、项目或项目库的目录。 单击保存按钮。 注: 注:如要将一个带密码保护的VI保存为上一个LabVIEW版本,必须先输入密码。

2023-07-14

SLA5800 系列热式质量流量计和质量流量控制器LabVIEW开发例程

SLA5800 系列热式质量流量计和质量流量控制器LabVIEW开发例程 SLA5800 系列热式质量流量计和质量流量控制器在精度、稳定性和可靠性方 面堪称标杆,因而得到广泛的认可。

2023-07-07

keithley 2010LabVIEW开发使用录像说明

keithley 2010LabVIEW开发使用录像说明 keithley 2010是一款常用的万用表。可以手动操作,也可以程控。 当然在使用的时候,一般都要编程控制,这样才能体现出自动化,节省人力,提高效率。 类似keithley这种公司,一般手册都给的很详细,在使用中参看手册就可以了。而且LabVIEW的例程也都有,虽然不是最适合的,但至少有个参考,这样编程和调就方便多了。这一点,也是这种大公司的优势了。也是值得我们好好学习的地方。

2023-06-29

可用于实验室微信报录像说明

在长期运行的场合,一般都是无人值守。这时候就需要有一套远程报警的方式了。 之前有电话、短信啊,现在微信报警也是很常规的要求了。 除了会对用户有报警提示外,还可以在手机上查询当前设备的运行状态,曲线显示,历史趋势等内容,比较方便。 录像的前半部分介绍了将当前4G通讯改为通过网络通讯,4G侧重在 使用场合没网络的情况,如果实验室可以上网,那用这种方式还是比较方便的,毕竟不会花钱购买流量了。 录像后半部分,介绍了对其他压力自动采集显示报警的软件,软件是用LabVIEW进行开发的。到现在已经运行一年了,稳定性还可以。

2023-06-28

MiniLab 1008厂家软件进行测试

MiniLab 1008厂家软件进行测试。采用厂家两种软件分别进行测试。 其中,DAQami 是 MCC 最新推出的数据采集应用软件,这个需要注册,应该是收费的。 用InstaCal也可以进行测试,这个在安装驱动后就一起装好了,关键是免费的。只是在界面和灵活性上比上一个要差些,但该有的功能都用了,用来做测试是没问题的。

2023-06-27

MiniLab 1008 采集卡测试说明录像

MiniLab 1008采集卡,可以运行在Windows11系统 LabVIEW2019。LabVIEW2019下运行C:\Program Files (x86)\National Instruments\LabVIEW 2019\examples\ULx\Analog In\Measure Voltage.llb\Debug ULx Cont Acq&Graph Voltage-Int Clk.vi。 实际采样率和通道数有关系,具体测试情况如下。 一个通道,1200Hz 二个通道 546Hz 三个通道,384Hz 四个通道,300Hz 基本与SampleRate一致。

2023-06-26

LabVIEW编程LabVIEW开发Keithley 6485录像说明

LabVIEW编程LabVIEW开发Keithley 6485录像说明 介绍了两种不同的LabVIEW的demo,感觉之前的方式有点老,就更换了新的一种方法,底层都是SCPI方式。另外用JKI State Machine做了单独的测试程序,方便开发和调试。

2023-06-25

SPEX 500M单色仪

LabVIEW编程LabVIEW开发 控制SPEX 500M单色仪例程与相关资料 这台设备现在已经停产了,但是精度还是够用。没有更换新的设备,价格贵当然是一个重要的原因了。 老外的设备,外观一般,程序界面一般,通讯协议一般,但就是精度高。价格高。国内仪器厂家追赶的目标

2023-06-24

LabVIEW动态注册事件

事件结构中只有一个动态事件终端,但此VI注册更多动态事件。有没有办法做到这一点? 是的!可以在同一VI中创建多个动态事件。若要将它们全部添加到事件结构中,需要使用“注册事件”属性节点。 1.首先,将“注册事件”节点添加到“框图”中; 2.然后,使用定位工具将其展开,直到您拥有所有已创建事件的终端; 3. 将每个事件的用户事件输出终端连接到“注册事件扩展”节点的输入终端之一。 通过执行此操作,创建的每个事件都有自己的案例。还可以使用捆绑包来注册多个事件。不同之处在于,通过这样做,所有创建的动态事件将由相同的案例处理。

2023-06-23

配置LabVIEW环境来节省时间

启动LabVIEW,然后选择工具>选项...,然后按照以下说明以推荐的配置设置LabVIEW安装。 前面板设置 将新VI的控制方式设置为“NXG风格” 框图设置 取消选中“将前面板端子作为图标放置”。 取消选中“在启用自动增长的情况下放置结构”。 将“默认标签位置:控制终端和常量”设置为“左-中间”。 将“默认实验室位置:指示器”设置为“右中间”。 稍微向下滚动并设置以下内容,这将有助于更好地记录子图结构: 选中“子图标签默认可见”。 将“默认对齐方式:子图标签”设置为左侧 进一步向下滚动“框图选项”窗格,然后: 选中“显示框图网格”。 将“框图网格大小(以像素为单位)”设置为 8。 选中“启用逻辑示意图网格对齐”。 环境 选中“将编译的代码与新文件分开”。 控件/函数调色板 在调色板下:选择“类别(图标和文本)”。

2023-06-22

对话框弹出后不影响其他VI

LabVIEW系统自带的对话框,弹出后,只能点击ok或者cancel.不能对其他VI进行操作。自己编写一个对话框,这样在弹出后,仍然可以对其他VI进行操作,就方便调试其他VI了,因为在此时其他VI的参数会影响到当前的效果。

2023-06-21

Avoiding broken executables when using dynamic Vls

当构建使用动态VI的可执行文件时,必须确保在LabVIEW Application Builder规范的'always include'部分指定动态VI的名称。不这样做会导致问题,表现为LabVIEW应用程序将无法加载您的动态Vl,并将引发各种错误或导致应用程序完全失败。这取决于动态Vl对整个应用程序的重要性。 在构建过程中对动态Vls进行特殊考虑是必须做的额外步骤,这可能会导致故障点。如果在代码中创建了一个新的动态Vl,那么必须记得更新构建规范,即使是出于最好的意图,这一步仍然可能被忽略 例如,代码可能作为工具包分发,其他人可以使用它来构建自己的应用程序。通知最终用户代码包含动态Vls是一个挑战 在本视频教程中,将展示通过以下两个简单的代码修改来避免这些问题的简单方法

2023-06-20

Dynamic Process Vls in LabVIEW Part 2

这是2部分视频系列的第2部分,介绍与在LabVIEW中使用动态Vls作为并行异步进程相关的更高级的主题。本文涉及的主题 使用队列向动态进程发送数据VI 使用队列从进程接收数据 使用命名队列使用可重入队列作为进程队列

2023-06-19

Dynamic Process Vls in LabVIEW (Part 1 of 2)

这是2部分视频系列的第1部分,我们将详细介绍如何在LabVIEW中使用动态Vls作为并行异步进程。本视频涵盖的主题: 静态vs动态Vls的区别 如何用动态Vls构建可执行文件 如何调用动态VI 如何使用Run V方法 如何将数据传递给动态VI

2023-06-18

从子VI中分离编译后的代码

默认情况下,LabVIEW将编译后的代码与vi文件一起存储。这对我们来说是透明的,我们不会太在意。然而,这可能会导致在编辑您的v时出现的问题。有时当我们编辑单个Vl时,我们注意到需要保存许多其他Vl。即使我们没有直接改变它们。当试图用源代码控制保持有序时,这尤其令人痛苦。 在本视频教程中,介绍labview中的新功能,该功能允许您将编译后的代码与vi分开,从而避免传播更改的问题

2023-06-17

欧世盛平流泵LabVIEW开发说明-2023-06-16-214547

欧世盛平流泵LabVIEW开发说明,国产的一款设备,在开发中注意串口线是要交叉的。

2023-06-16

对测试结果,共9位布尔型 如果合格为高电平,不合格为低电平 通过mobus协议经串口发送给下位机

对测试结果,共9位布尔型。如果合格为高电平,不合格为低电平。通过mobus协议经串口发送给下位机。

2023-06-15

LabVIEW Core1 学习说明

对于本课程中的labviewcore1,将学习如何创建一个应用程序,该应用程序从硬件分析和处理数据中获取数据,然后在开发调试和测试。LabVIEW程序的过程中可视化和记录这些数据,此外还将学习最佳实践,为了代码的可重用性和可读性以及错误管理,开发一个应用程序,该应用程序使用状态图逻辑实现定序器开始将需要一台运行WindowsLabVIEW的计算机,还需要NIDAQmx驱动程序和NIVISA驱动程序。 本课程使用多种教学方法学习,LabVIEW的最佳方法之一是通过动手练习。在通过动手练习完成课程练习时,请牢记这些建议。-关于练习以更好地理解所用的方法,在重用部分可视化和记录数据学习代码重用和代码可读性的最佳实践。最后学习如何将它们放在一起为的应用程序中的所有任务,实现一个定序器。本课程还包括一个额外的模块,重点介绍更详细的IO技术。

2023-06-14

LabVIEW簇LabVIEW Clusters

LabVIEW簇用于把来自不同控件的混合型数据元素组成逻辑上的一个组。LabVIEW错误簇是簇的一个例子,它包含一个布尔值、一个数值和一个字符串。簇类似于文本编程语言中的记录或结构体。 簇元素的逻辑顺序与元素在簇外框中的位置无关。放入簇中的第一个对象是元素0,第二个为元素1,依此类推。如删除某个元素,顺序会自动调整。簇顺序决定了簇元素在程序框图上的捆绑和解除捆绑函数上作为接线端出现的顺序。 按照下列步骤,查看并修改簇元素的顺序。 右键单击簇的边界,从快捷菜单中选择重新排序簇中控件。工具栏和簇将显示如下改动: 簇的每个元素都将显示带有数字的黑色和白色框。白色框显示元素在簇顺序中的当前位置。 黑色框中的数字与白色框中的数字一致。如进行更改,黑色框中将显示元素的新顺序。 工具栏在褐色框中也将显示数字。工具栏上的数字会影响下一个要改动顺序的元素。 光标将变为簇顺序光标。 可使用以下的任意一种方法改变簇元素的顺序。 右键单击簇中的元素。元素在黑框中的数字将与工具栏中的数字匹配。 在单击设置栏中输入新的数字并单击元素。 单击要改变顺序的元素,元素的顺序数字将自动递增。 单击工具栏上的确认按钮可确定

2023-06-13

Detect Texture Defect example

为了最大限度地保留图像信息,提高钢轨工件缺陷检测的准确性。该系统使用彩色工业相机采集图像,因此采集的图像为RGB图像。首先,彩色图像变灰。直方图是彩色图像灰度分析的最常见工具。直方图可以判断从背景分割的区域、图像的饱和度和对比度是否符合机器视觉系统的检测要求。它还可以确定如何调整和改进图像采集系统。 系统采用LabVIEW的IMAQ直方图功能模块,对采集到的待测钢轨工件图像进行过滤,排除无明显缺陷的钢轨工件。不排除的工件被视为难点零件,然后进入后续检测过程进行进一步分析和加工。根据实验分析,统计灰度在98-141范围内,基本无缺陷图像的像素总数。据统计,标准无缺陷钢轨工件的像素总数不会超过35600~38900的像素范围。灰度98-141之间的像素总数为36934,此范围内的钢轨工件基本没有缺陷。 由于待测工件与背景之间的灰度明显不同,不同目标的灰度值会在直方图中聚集成峰值。当可以清晰区分图像灰度直方图的峰值时,可以以谷底附近的灰度值作为完成图像分割的阈值。因此,使用直方图对钢轨工件图像进行预处理,为后续的图像分割带来了极大的便利。

2023-06-12

LV Core 1 LabVIEW介绍

本课介绍LabVIEW以及完成本课程后,能够构建的常见应用程序类型。准备好对应用程序进行编程时,一个LabVIEW 环境有助于节省开发时间,它具有方便的功能和跨所有硬件的一致编程框架,专门根据工程和科学技术数据开发。 LabVIEW 包括拖放控件和指示器,使用它为应用程序快速创建自定义用户界面,供操作员输入 查看实时数据并在 LabVIEW 中可视化分析结果。可以从大量分析和信号处理算法中进行选择,以快速深入了解您的数据,而无需花费资源从头开始开发分析算法。LabVIEW 还允许使用和重用基于文本的算法,使用 LabVIEW 原生的 m 文件和 c 语法,是一种直观的图形编程语言g,它使用数据流模型而不是连续的文本代码行,它能够使用类似于思维过程的可视化布局,来编写功能代码。可以使用 LabVIEW 应用程序。使用 NI数据采集硬件从传感器和信号中采集测量数据,然后分析和处理数据显示和可视化实时数据,并在用户界面上分析结果。此外,可以将数据记录到文件中以供存储报告和未来分析。还可以使用 LabVIEW 应用程序来控制和自动化其他供应商制造的独立台式仪器,以及从这些仪器获取的数据。这可以

2023-06-11

LV Core 1 LabVIEW高级文件读写

在本课研究TDM的文件和二进制文件。这是您可能在LabVIEW文本文件中使用的三种常见文件类型。TDMS文件和二进制文件、文本文件是最容易使用和共享的格式。例如Microsoft Excel,记事本,可以读取或写入文本文件数据表示为字符串和文本文件。TDMS是由NI创建的二进制文件格式,针对将测量数据保存到文件进行了优化。可以使用TDMS文件来组织数据和存储有关数据的信息。 可以使用TDMS文件高速写入和读取数据, TDMS文件二进制是一种文件格式,可以在需要时使用它写入或读取具有特定二进制格式的二进制文件。TDMS文件格式是二进制形式。 可以使用TDMS文件格式存储测量数据以及通道特定属性,例如通道名称、测量单位、测试限制和传感器信息。TDMS索引文件是二进制文件,提供有关TDMS文件中所有属性,文件这加快了对数据的访问速度。TDMS索引文件在丢失时自动重新生成。TDMS文件格式使用三级文件通道组和单个通道构建。TDMS文件可以包含多个通道组,每个通道组可以包含多个通道,因此可以选择如何组织数据以使其更容易理解

2023-06-10

Can a LabVIEW application have multiple processes

LabVIEW多线程是一个高级编程主题,它的使用需要程序员对这项技术有基本的了解。LabVIEW为程序员提供了两大优势:多任务和多线程。第一个优点是完全抽象线程本身。LabVIEW程序员从不创建、销毁或同步线程。第二个优势是LabVIEW使用的数据流模型。这个模型为G提供了与其文本语言对应物相比的明显优势,因为它简化了程序员对多任务处理的看法。 多线程为软件工程增加了一个新的维度。应用程序可以同时执行多项任务。一个很好的应用示例添加了多线程的是Microsoft Word。Word使用多线程来执行拼写检查和语法验证。为执行此任务而添加的线程允许应用程序执行在用户打字时执行这些任务。以前的版本,Word 6.0 forWindows3.1,不能这样做,因为它一次只运行一个任务;用户必须停止键入并选择“检查拼写”。更多内容参见附件

2023-06-09

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除