news 2026/10/3 1:23:23

立创EDA元件库迁移到Cadence全攻略:从OrCAD符号到Allegro封装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
立创EDA元件库迁移到Cadence全攻略:从OrCAD符号到Allegro封装

做硬件这些年,最折磨人的工作不是Layout,而是给Cadence喂库。换一颗新料,要在OrCAD里画原理图符号,再去Allegro里画焊盘、做封装,半天时间基本就没了。后来我发现立创EDA的元件库覆盖面极广,主流料号基本都能查到封装和原理图符号,于是我开始研究怎么把立创EDA的原理图封装库系统性地搬到Cadence,结果还真走通了。这篇文章就围绕这个事,把我试过的几条路全捋一遍,从零脚本的Altium中转方案,到JSON加Python的半自动批量迁移,把流程、参数、坑一次讲清楚。适合天天跟Cadence Allegro打交道、又被自建库效率逼疯的硬件工程师,也适合正在搭团队元件库体系的小团队负责人。

先说明一点,这里说的“原理图封装库”,我习惯拆成两块看:一块是原理图符号库,Cadence里对应OrCAD Capture的.olb文件;另一块是PCB封装库,对应Allegro的.pad焊盘文件和.dra/.psm封装文件。转库时这两块都要转,但难度和工作量完全不一样,后面我会分别处理。

1. 为什么非要从立创EDA倒库,这笔账怎么算

1.1 立创EDA的元件库到底有多全面

经常用立创EDA的人应该深有体会,它的元件库覆盖范围已经远超“国产常用器件”这个范畴。从最基本的电阻电容电感,到MCU、电源芯片、连接器、传感器,再到一些冷门的驱动IC,基本都能直接搜到。每个元件通常同时带原理图符号、PCB封装、3D模型,而且绝大多数还给了参考价格和规格书链接。

我特意统计过自己一个月里画板用到的物料,大概70多颗不同类型,在立创EDA里搜原厂完整料号,有接近90%能直接搜到,剩下搜不到的基本是刚发布的新料或者需要定制的电感变压器。这个覆盖率对绝大多数硬件项目已经非常恐怖了。相比之下,Cadence自带的库或者网上能找到的现成库,要么封装不全,要么符号风格和团队习惯不一致,真正能拿来就用的比例低很多。

更关键的是,立创EDA的库数据是持续有人维护的,芯片放出来没几天,新的封装模型就会更新进去。这一点对产品迭代快的团队特别有价值,因为硬件工程师最怕的就是拿到了新料号,却发现全网找不到可用的Cadence封装,只能自己忍着画。

1.2 Cadence自建库的繁琐点在哪里

很多人以为Cadence建库繁琐,是指Allegro封装编辑器里面的操作步骤多,其实这只是表面。真正繁琐的是整个建库链路太长了。

第一步,要在OrCAD Capture里画原理图符号。符号不是画个方框、摆上引脚就完了,还得考虑引脚编号、引脚名称、类型(输入、输出、电源、无源)、体框大小、命名规范、Value属性、PCB Footprint属性映射。团队如果没有统一模板,每个人画出来的风格五花八门,后面维护成本极高。

第二步,要去Allegro Package Editor里建焊盘。焊盘类型有SMD贴片焊盘、通孔焊盘、槽孔焊盘、散热焊盘、特殊异形焊盘,每一种都要单独设置Shape、Size、钻孔、阻焊扩张、助焊层、热风焊盘连接等参数。光是一个0805电阻,如果要把热焊盘、散热过孔、丝印极性标识做到位,新手磨两个小时很正常。

第三步,把焊盘摆到封装里,加上丝印、装配层、器件位号、高度、精度等级等信息,然后做DRC检查,确认焊盘间距、丝印线宽、位号大小都符合板厂制造规范。全部做完之后,还要在Capture里把原理图符号的Footprint属性和这个封装名对应起来,才算是真正完成了“原理图封装库”的闭环。

一套流程走下来,熟手一颗常规料大概需要20到40分钟,复杂一点的QFP、BGA动辄两三个小时。如果是几十颗甚至上百颗物料,时间成本完全不可接受。所以“从立创EDA倒库”这件事,本质上是想用别人已经做好的、经过大量用户验证过的元件数据,替代自己的重复劳动。

1.3 迁移之前先搞清楚要转什么

转库不是简单地把文件复制过来,一定要在动手之前想清楚目标库的属性体系。立创EDA的元件库里,同一个物料至少包含六类信息:原理图符号、PCB封装、3D模型、器件参数(阻值容值耐压等)、物料属性(厂家料号、封装名、价格)、文档资料(数据手册PDF)。

迁移到Cadence后,真正常见的使用方式是两类:一类是单纯复用几何数据,也就是原理图符号的引脚布局和PCB封装的焊盘布局;另一类是希望把元器件的供应链属性也带进去,比如厂家、料号、库位、价格,这就要在OrCAD Capture CIS里配数据库,或者把属性直接写到符号的User Property里。

我个人的建议是:第一轮先只迁移几何数据和基本封装名,保证能画板、能出图;第二轮再补Value、Footprint、Manufacturer Part Number这些属性;第三轮才考虑接数据库。一上来想全都要,往往会卡在属性映射上,项目拖死。

2. 动手之前,先把两个工具的库体系对齐

2.1 Cadence的库是怎么组织的

Cadence的PCB工具链分两块:OrCAD Capture负责原理图,Allegro PCB Designer负责版图。原理图符号库是Capture的.olb文件,一个.olb里可以放很多个Part,每个Part包含引脚定义、图形、属性。PCB封装则在Allegro里,概念上拆成三层:焊盘文件(.pad)、封装源文件(.dra)、编译后的封装符号文件(.psm)。

很多新手在Allegro里建封装时,会误以为只要画好.dra就行,实际上Allegro在Placement时真正调用的往往是.psm,而PCB上放置元器件时又需要.link文件来关联Symbol和Device。所以一个“能用的封装”通常需要dra、psm、pad、txt(Device文件)这几个文件同时存在,并且路径都在Allegro的库搜索路径中。

库路径这东西也是最容易掉坑的地方。Allegro的元件库路径和焊盘库路径是分开设置的,在Setup -> User Preferences -> Library里,分别要设置padpath、psmpath、mpath等变量。如果封装文件放进了工程目录但不在这几个路径里,Placement时照样报找不到焊盘。

2.2 立创EDA的库是怎么组织的

立创EDA的模型体系可以简单理解成:每个元件对应一个“符号+封装”的组合,底层数据支持JSON导出,也可以直接导出Altium Designer格式。用惯了它的编辑器后可以发现,原理图符号和PCB封装并不是独立的库文件,它们依附于具体元件存在,你调取一个元件时,符号和封装是绑定在一起的。

立创EDA的封装数据层叠命名和Cadence完全不一样。它的常用层有top_copper、top_silkscreen、top_soldermask、top_paste等,而Cadence Allegro里对应的是ETCH/TOP、SILKSCREEN_TOP、SOLDERMASK_TOP、PASTEMASK_TOP。这个映射关系如果不提前整理好,转过去之后会发现丝印跑到了奇怪的地方,或者焊盘上盖了阻焊。

单位也要特别留意。立创EDA习惯用毫米(mm)显示,Cadence封装编辑器默认往往用mil,1mm约等于39.37mil。如果直接把数值复制过来不换算,焊盘就会大出39倍,这个问题在我见过的新手错误里排第一。

2.3 转换中的单位、层叠、属性对应关系

我每次做转换前,会先建一张映射表,把两个工具里的对象对齐。这张表可以直接做成团队的标准文档,后面所有转库工作都按它来执行。

立创EDA数据Cadence Allegro/Capture对应项转换说明
top_copperETCH/TOP顶层焊盘与走线层
bottom_copperETCH/BOTTOM底层焊盘与走线层
top_soldermaskSOLDERMASK_TOP阻焊开窗,注意膨胀值
bottom_soldermaskSOLDERMASK_BOTTOM底层阻焊开窗
top_pastePASTEMASK_TOP钢网开孔
top_silkscreenSILKSCREEN_TOP顶层丝印
bottom_silkscreenSILKSCREEN_BOTTOM底层丝印
孔径单位mm孔径单位mil转mil时按1mm=39.37007874mil
符号引脚Number/NameCapture Pin Number/Pin Name导入后要核查顺序
元件属性ValueCapture User Property放到Symbol属性里

表格列好之后,转换工作就不再是“盲猜”,每一步都能对照检查。尤其对于团队来说,统一映射表能保证不同人倒出来的库风格一致,不至于A工程师转出来的封装丝印线宽是4mil,B工程师转出来是8mil,板厂看着都头疼。

3. 路线一:Altium中转,零脚本快速倒库

3.1 从立创EDA导出Altium工程

如果你没有编程能力,也不想折腾脚本,最稳的做法是让Altium Designer当中间人。原理很简单:立创EDA能导出Altium格式,而OrCAD Capture和Allegro都支持导入Altium设计文件,Package Editor里的封装库也可以从导入的PCB工程里提取出来。

在立创EDA里打开包含目标元件的工程,在文件菜单里找导出功能,选择Altium Designer格式。根据版本不同,可能导出一个压缩包,里面包含原理图文件和PCB文件。如果只想转某几颗料,可以新建一个临时工程,把需要的元件从库管理器拖到原理图和PCB里,再导出这个临时工程。

这里有个细节:导出的AD文件可能提示版本兼容性问题,立创EDA较新版本导出时可以在选项里选择AD版本,建议选相对较新的.AD21以上,这样Altium打开时不会报错。如果公司里只有老版本的Altium,则需要转换后再打开。

3.2 用Altium生成SchLib和PcbLib

拿到AD工程后,用Altium Designer打开。打开之后不要急着转,先做两步预处理。

第一步,打开原理图,在菜单栏找到Design -> Make Schematic Library,Altium会自动把当前原理图里所有用到的元件收集到一个SchLib文件里。这个动作是必须的,因为Cadence导入AD工程时能处理原理图中的所有符号,但如果你想要一个干净可复用的.olb,最好通过SchLib来控制范围。

第二步,打开PCB文件,在菜单栏找到Design -> Make PCB Library,把PCB里现有的封装全部提取成PcbLib。如果临时PCB里没放元件,那就要手动去立创EDA的临时工程里重新导一块带元件的PCB板,或者直接用立创EDA的PCB编辑器放好元件后导出。

Altium的这两个命令会把库文件生成到项目目录下,文件名通常叫“工程名.SchLib”和“工程名.PcbLib”。这时候可以顺手双击打开这两个文件检查一下,看看符号引脚名、封装焊盘数量是否完整,有没有乱码。

3.3 从AD工程进入OrCAD和Allegro

现在到了关键一步。

原理图符号部分,用OrCAD Capture,高版本(17.2以上基本都有)在File菜单下选择Import,找到Altium选项,选中刚才的AD工程文件,Capture会尝试把Altium原理图解析成自己的设计,同时把里面的符号转换成Capture格式。转换完成后,在工程管理器里找到这些符号,可以逐个打开检查,确认引脚和图形没问题后,新建一个.olb库,把符号复制进去保存。

PCB封装部分,用Allegro PCB Editor,同样在File菜单下选择Import,找到Altium选项,选中AD工程的PCB文件。Allegro导入时会有层映射界面,把AD的Top Layer映射到ETCH/TOP,Bottom Layer映射到ETCH/BOTTOM,Silkscreen Top映射到SILKSCREEN_TOP,以此类推。映射表做得越仔细,后面修得越少。

导入Allegro后,PCB上已经能看到所有封装了。这时候在File菜单里找到Export -> Libraries,Allegro会把当前PCB里用到的所有封装符号和焊盘文件提取出来,生成.pad、.dra、.psm文件。这些就是可以直接放进自己库目录里的成品封装。

3.4 这条路的适用场景和损失说明

Altium中转方案的好处是门槛低、不需要写代码,适合一次转十颗以内、或者临时救急的场合。但它的缺点也很明显。

首先是批量效率低,每次都要手动在AD里生成库,再导入Cadence,如果上百颗料这样做,得折腾一整天。其次是属性容易丢,尤其是一些自定义属性,比如“LCSC编号”、“物料描述”、“价格档位”,在AD转Cadence的过程中很可能只剩下一部分。第三是风格不一致,不同批次倒进来的封装,丝印线宽、位号字体大小、原点位置可能都不统一,后期维护比较麻烦。

所以我一般建议,这种零脚本方案适合个人快速做一两个项目,如果你的目的是给团队建一套长期使用的库,最好还是用下面的脚本方案,把流程自动化。

4. 路线二:JSON加Python半自动批量迁移

4.1 拿到立创EDA的JSON数据

如果你有编程基础,或者团队里有能写点脚本的工程师,那可以走这条真正“解放双手”的路线。核心思路是:立创EDA源文件底层是JSON结构,直接把JSON里的符号和封装信息解析出来,再生成Cadence能识别的数据。

立创EDA专业版在文件菜单里有导出JSON的选项,导出的文件会把工程的原理图数据、PCB数据、库定义全部包在里面。如果你用的是标准版,也可以把工程文件另存,然后把文件后缀改成.zip解压,里面同样能翻到JSON结构的源数据。

打开JSON后你会看到工程里每个元件都有对应的libraryDef,里面定义了符号的引脚坐标、图形元素,以及封装的焊盘位置、形状、尺寸、孔径、丝印图形。这些就是转库最核心的原始信息。

需要注意的是,不同版本立创EDA的JSON结构可能有差异,字段名不一定完全一样。第一次解析前,建议先抓一颗最简单的电阻电容出来,把它Json里的symbol和footprint两部分单独存成小文件,逐字段看一遍,把关键字段名搞清楚再写通用脚本,不要上来就套网上的旧代码。

4.2 解析JSON里的符号和封装信息

以封装为例,JSON里footprint部分会定义很多基本元素。焊盘对象一般有shape属性,常见值可能是circle、rect、oval,对应圆形、矩形、椭圆形;有x、y坐标定义焊盘中心位置;有width、height定义尺寸;还有层信息告诉你在顶层还是底层。

符号部分相对复杂一点,除了引脚number、name、position、direction外,还有一堆图形元素,比如rectangle、line、arc、text。这些图形元素决定了符号长什么样。Cadence的Symbol其实不在乎你的图形多花哨,它更重视引脚编号和引脚名是否准确,以及引脚电气类型是否正确。

我自己解析时的经验是:先不追求把图形元素全部还原,先保证引脚信息、位号、Value、Footprint属性齐全,图形用最简的方框替代,然后在Capture里微调。这样脚本写起来简单,稳定性也高得多。如果你一定要把立创EDA的原生图形完美还原,Script的工作量会大很多倍,性价比极低。

4.3 用SKILL脚本批量生成Allegro封装

Allegro封装可以被SKILL脚本动态创建。大概的流程是:Python解析JSON,把所有焊盘和图形数据清洗成一个CSV文件;再写一份SKILL脚本,读取CSV里的焊盘坐标、层叠、形状、尺寸,在Allegro封装编辑器里建立焊盘和图形,保存为.dra,并生成对应的.psm。

焊盘这一关尤其重要。Allegro的.pad文件本质是文本格式,可以预先按规则写好模板。比如一个简单的SMD矩形焊盘,至少要定义Begin Layer、Default Internal、End Layer,以及阻焊层、助焊层的开窗尺寸。Python可以遍历JSON里成百上千个焊盘,自动计算出每个焊盘的pad文件名和参数,再批量写出.pad文件。

封装源文件.dra不能直接用文本生成,但SKILL可以在Allegro后台运行。启动Allegro后执行SKILL脚本,脚本调用图形API把焊盘引用到指定坐标,画好丝印、装配层、位号文本,然后保存封装。这里需要对SKILL有一定了解,但不需要精通,照着官方例子改就行。

封装生成完之后,Allegro里还需要把封装保存成.psm,以及为每个元件生成Device文件(.txt),否则在OrCAD里关联Footprint时可能会报错。这一步可以用菜单里的Create Device命令完成,SKILL里也有对应函数可以批量调。

4.4 Capture的.olb符号库怎么半自动生成

Capture的.olb文件是私有格式,直接写文件很麻烦。但Capture支持OLE Automation接口,可以用VBScript或者Python通过COM对象操作,自动创建库、添加元器件、添加引脚、设置属性。

我的做法是先用Capture手动画一个标准符号,用宏录制功能记录下整个操作过程,生成一段VBS代码。然后把这段代码拆开研究,把坐标、引脚名这些常量替换成变量,再写一个外层循环,遍历CSV里的所有元件数据,逐个调用代码生成符号。

这样生成的符号可能比较机械,图形框不会很美观,但功能上是完整的,引脚编号、引脚名、Footprint属性都在,放进原理图后连线和出网表完全没有问题。如果你对符号美观度有要求,可以在Capture CIS里后续微调,或者把常用器件单独挑出来手工优化。

4.5 顺带把3D模型也一起迁移过去

立创EDA的元件库里不少封装都自带3D模型,通常是STEP格式。这个资产不转移就太可惜了,因为Allegro的3D验证功能很实用,整板结构检查和元件干涉检查都需要STEP模型。

在Allegro的封装编辑器里,可以通过File -> Import -> STEP把模型导入,然后用移动工具把模型对准焊盘中心和丝印框。如果封装是从立创EDA转过来的,模型坐标基本能对上,只需要微调旋转角和高度。保存之后在PCB Editor里打开3D View,就能看到完整的器件模型了。

这一步虽然不能完全自动化,但比重新画封装省力太多,尤其对结构工程师来说,一块板子没有3D模型,他们根本没办法提前做外壳设计。

5. 转完库之后,这些坑必须逐个排查

5.1 单位、原点、层叠,老三样最容易翻车

单位问题我在前面已经强调过,这里再说一个更具体的场景。Allegro封装编辑器里,你新建封装时会要求设置Drawing Size,这个界面的单位选择会影响后面的所有数值。如果你把设计精度设成mil,而脚本里写入的是mm数值,Allegro不会帮你自动换算,只会原样当成mil。所以,要么在脚本里提前把毫米全部换算成mil,要么在Allegro里把新封装的绘图单位设成mm,二选一,绝对不能混着来。

原点是另一个高频问题。立创EDA的封装原点位置不一定在器件几何中心,有些元件是pin1位置。Cadence里封装的原点最好放在器件体心,因为Placement时原点落在哪里,鼠标抓取就会以哪里为基准。如果原点偏得太厉害,贴片机编程或者手动摆件时会很别扭。转完库后,用Symbol Origin命令查看原点位置,该改的改。

层叠问题则会在你导入PCB或者做Gerber输出时暴露出来。如果丝印跑到了Board Geometry层而不是Silkscreen层,出图时板厂可能漏掉位号。所以在生成封装脚本里,层名映射一定要写死,宁可额外做一次全库检查,也不要等板子回来了才发现少丝印。

5.2 焊盘、阻焊、丝印这三角关系

焊盘尺寸直接决定焊接可靠性。立创EDA的焊盘尺寸一般是按IPC标准设计的,这个底子很好,但转过来之后有几个点要复核。

一是阻焊开窗。立创EDA默认的阻焊扩张一般是0.1mm左右,也就是焊盘四周各扩4mil左右,这个参数转成Allegro时,除非脚本明确写了,否则很容易丢,导致阻焊和焊盘一样大,钢网印刷或者波峰焊时,容易出现锡珠。

二是散热焊盘和中间接地焊盘。QFN芯片底部的散热焊盘,立创EDA里会分成多个小方块以便过回流焊排气,转成Allegro后要确保这些小方块的间距符合自己的加工工艺要求,否则中间容易藏气泡。

三是丝印线宽。有些封装转过来后丝印线特别细,Allegro里生成Gerber时可能直接报错,板厂那边也做不出来。我一般会把丝印线宽统一改到4到6mil,位号字体高度至少30mil,保证出图清晰。

5.3 原理图符号的属性别只盯着形状

转原理图符号的时候,很多人只关心引脚位置和外形框,忽略了一个很致命的点:引脚编号的文本格式。立创EDA的引脚号有些是数字类型,有些是字符串类型,导入Capture后偶尔会把“1”显示成“1.0”,或者把“A1”解析成“A1.0”。这个问题一旦发生,做DRC的时候不会报错,但出网表时跟PCB封装对不上,很容易造成飞线错乱。

另一个经常被忽略的是引脚电气类型。Capture里引脚类型有Input、Output、Passive、Power等,类型错误会在ERC检查时报警告,严重的时候会把电源引脚误判为普通IO。转完符号后,建议逐个器件跑一遍ERC,把不必要的Warning清干净。

还有Value属性。立创EDA里电阻电容的Value,比如10K、100nF,在符号里一定要保留到Capture的Value属性里,同时把Footprint属性和Allegro封装名对应上。这样在原理图里选中一个器件,就能直接看到它的封装是什么,后端导出BOM也更方便。

5.4 库路径、版本兼容和ODBC联动

库文件转出来只是第一步,让Cadence能正确找到它们才是真正麻烦的事。Allegro的库路径设置要在User Preferences里设置padpath和psmpath,否则即使你把.pad和.psm放在工程目录下,也有可能因为搜索顺序问题加载到别的同名文件。

版本兼容问题也很实际。Allegro 17.4生成的封装文件,在16.6上面可能无法打开;反过来,16.6的封装在17.4里打开倒是经常没问题,但保存后再回16.6就不行了。所以团队内部必须统一Allegro版本,或者至少统一“公共库由哪个版本生成”的原则,不然过一段时间库目录里混着一堆旧版本文件,迟早要出问题。

再说一下ODBC数据源,这个是热词里很多人搜的。Capture CIS的系统里,如果你想把原理图符号和公司的物料管理系统联动,需要配置ODBC数据源。有个坑要提前说:Capture CIS是32位程序,在64位Windows上配置ODBC数据源时,必须用32位的odbcad32.exe去配置,否则Capture CIS根本看不到你建的DSN。这个点跟库转换本身没有直接关系,但很多团队在把转好的库接入CIS数据库时会卡在这里。

5.5 常见问题速查表

现象大概率原因处理建议
导入后焊盘尺寸异常大/小单位换算没做,mm被当成mil统一按1mm=39.37mil换算
封装原点不在器件中心立创EDA原点与Cadence预期不一致用Symbol Origin确认后手动调整
丝印跑到奇怪层层映射没配好检查SILKSCREEN_TOP映射
过孔焊盘内径丢失槽孔参数没转过来用Pad Editor检查Slot参数
阻焊开窗和焊盘一样大Soldermask膨胀值丢失统一补0.1mm膨胀
出Gerber时丝印线宽过细立创EDA默认丝印线宽太细统一改到4-6mil
Capture中引脚名变成1.0数据类型转换问题在OLB里统一格式化编号
Allegro找不到.psm库路径没有设置检查padpath和psmpath
16.6打不开17.4的封装版本向下不兼容团队统一Allegro版本
Capture打开ODBC失败64位ODBC配置不识别改用32位odbcad32配置DSN

这张表是我实际倒库一个月之后整理出来的,基本涵盖了能遇到的90%的问题。每次转新库之前先扫一遍这张表,能省下大量排查时间。

6. 一点过来人的建议

最后再分享几个我实际使用中的体会,不一定每条都普适,但应该能给正在折腾的人一些参考。

第一,不要试图一次性把所有库全转完。立创EDA上有几十万个元件,你根本转不完,也不需要有几千个封装堆在库里。正确的做法是“项目驱动”,每次接到新项目,把当前项目用到的物料清单整理出来,比如三五十颗,然后按清单转库,项目结束顺手就把这部分库沉淀下来。坚持两三个项目之后,你会发现常用料已经覆盖得差不多了,后面越转越少。

第二,转库完成后一定要做一次“实物尺寸抽检”。选几颗关键器件,比如引脚密集的连接器、电源芯片,把转出来的封装打印成1:1图纸,或者直接在Allegro里测量焊盘间距,和规格书、以及立创EDA原始封装对比一遍。我有一次就是某颗连接器的固定脚孔径偏了0.15mm,如果直接去投板,回来大概率要飞线。

第三,关于团队规范,强烈建议把5.5那张速查表、层映射表、命名规范都固化下来。新来的工程师可能不知道立创EDA的封装的阻焊默认是0.1mm,也不知道Cadence的单位换算坑,有一份文档能让他们少走很多弯路。

第四,如果公司对EDA工具有正版合规要求,记得确认一下使用的立创EDA、Altium、Cadence版本是否符合授权要求,个人学习和公司商用场景要区分开。库转换这件事本身不复杂,真正复杂的永远是团队协作和工程管理。工具只是让你“解放双手”的第一步,后面还得靠规范把人串起来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 1:23:17

基于DRV8818与PIC18F4682的工业步进电机驱动控制方案解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:23:16

Pure Pursuit路径跟踪算法原理与多底盘适配实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:22:52

DRV8818+PIC18LF45K50工业步进电机控制实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:22:36

生鲜电商系统SpringBoot实战:高并发库存、uniapp多端与MySQL优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:22:30

MCGS触摸屏与S7-200 SMART时间同步配置详解

前段时间帮客户调试一条产线,触摸屏用的是 MCGS,控制器是西门子 S7-200 SMART。设备本身都没问题,但客户一直抱怨报警记录里的时间对不上,白班看夜班的报警,时间点能差半个多小时。查到最后,问题不在程序逻…

作者头像 李华
网站建设 2026/10/3 1:22:17

配电网通信选型:先算业务量再定EPON还是工业以太网

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华