ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OrCAD CIS元件库配置实战:Access数据库+ODBC全流程详解

OrCAD CIS元件库配置实战:Access数据库+ODBC全流程详解 做个硬件设计的人应该都有过这种经历原理图里放一个电阻先去翻Excel表看有没有库存料号再去资料盘里搜规格书PDF确认封装最后还要到封装库找Footprint名一个器件放下来五分钟就没了。OrCAD里的Capture CIS就是专门解决这个问题的它把元器件所有信息——标称值、封装、符号、厂商、料号、规格书链接——全部集中到一个数据库里设计者在原理图界面直接查询、过滤、放置器件放到图纸上时属性就自动带全了。但CIS能不能跑起来第一步并不是配置软件而是把那个“数据库”准备好。最常用、最适合个人和中小团队的方案就是用Microsoft Access创建一个.mdb数据库文件再通过ODBC让Capture CIS去读它。这篇文章我会完整走一遍我在实际项目中配库的全过程从表结构设计、Access建库、ODBC数据源配置到Capture CIS里建立数据库关联再到符号和封装映射验证最后是多人协作时的维护注意事项。每一步不光给你步骤还会把“为什么这么做”和“最容易踩的坑”一起讲清楚。适合刚开始用Cadence CIS、或者已经装了CIS但一直没挂上数据库的人。1. 为什么元器件库必须走数据库CIS不是Excel的替代品1.1 CIS的工作原理决定了“库”的形态Capture CIS全称是Component Information System它在OrCAD Capture里的定位很特殊原理图编辑本身由Capture完成但CIS是独立的一套器件管理系统。它的工作方式不是把元器件表塞进原理图而是让设计者在放置器件时从一个外部数据库中检索元器件记录选中后CIS自动调出对应的原理图符号并把数据库里的字段作为属性附加到该器件上。这就带来一个硬性要求CIS必须能稳定地、可过滤地、批量地读取外部数据。这里说的“外部数据”不是.txt也不是Excel文件而是能通过ODBC接口访问的关系型数据库。ODBC是Windows上跨程序访问数据库的一套标准接口Capture CIS本身不直接解析.mdb文件而是通过ODBC驱动去读。所以你会发现后面所有配置的核心就是三个东西.mdb数据库文件、ODBC数据源名DSN、以及CIS的配置文件.dbc。三者缺一个CIS就报错。1.2 Excel管理器件库的三个致命伤很多工程师第一反应是用Excel当库因为建表方便、能排序。我见过不止一个团队用几十兆的Excel管理几千种物料刚开始还行到后面必然出问题。第一个是并发问题Excel文件放在共享盘一个人打开编辑其他人只能以只读方式打开想同时更新料号还要等别人关文件。更麻烦的是Excel意外崩溃后会留下锁文件其他人连只读都打不开最后只能让管理员去删.lock文件。第二个是数据质量问题Excel没有任何约束机制同一个料号可以出现在两行VALUE字段可以写成“10K”也可以写成“10 kΩ”封装名有的带前缀有的不带。等这些数据进了CIS原理图上就会出现两个长得不一样的“同一个器件”BOM对不上封装采购想骂人。第三个是ODBC稳定性Windows自带Jet/ACE驱动虽然可以读Excel但CIS在反复查询、过滤时对Excel的稳定性非常敏感。库一大查询就变慢还经常出现“外部表不是预期的格式”这类报错排查起来极费时间。1.3 Access数据库和.mdb格式的定位Microsoft Access是Windows自带的Office套件之一它能创建真正的数据库文件支持主键、索引、约束、SQL查询这些正是CIS做可靠查询的基础。而.mdb是Access 2003及更早版本使用的文件格式Cadence CIS的ODBC驱动对.mdb的支持非常成熟所以网上的教程和官方文档里几乎都让你建.mdb。这里有个细节你可能已经踩过Access从2007年开始默认保存格式是.accdb很多新装Access的人建完数据库发现后缀是.accdb结果到CIS里选不到表或者驱动报错。虽然新版本Cadence也能兼容.accdb但第一次做器件库还是老老实实选.mdb最稳。方法是在Access里【另存为】时选择“Access 2002-2003格式.mdb”。还有一个很多人不知道的点.mdb文件本质上是Jet数据库引擎的文件格式Windows系统从XP到Win11都自带该引擎的旧版驱动而.accdb需要额外安装ACE驱动如果一台电脑没装全库就打不开。2. 动手建库表结构和字段设计决定后面所有工序的效率2.1 Access环境准备与新建数据库建库本身没有太多门槛任何版本的Microsoft Access都行包括Microsoft 365里附带的Access。如果你电脑上确实没有Access可以先去Office安装器里把Access勾选上或者用Access Runtime免费版创建和编辑数据库只是Runtime版界面精简一些功能足够用。打开Access后选择“空白数据库”文件名建议直接命名为CisComponents.mdb保存路径可以放在一个专门的库文件夹比如D:\CIS_DB\。这里提醒一句不要把数据库放在桌面或C盘系统盘一方面权限问题容易导致无法写入另一方面重装系统时容易丢。建完后Access会自动生成一个名为“表1”的表格不用管它直接在左侧导航窗格右键删除然后重新建表。2.2 核心表结构每个字段为什么存在新建表时建议切换到“设计视图”在Access主界面的“创建”选项卡里点“表设计”。设计视图中你可以精确控制每个字段的名称、数据类型、是否主键。我给项目设计的标准表结构如下你可以直接抄字段名数据类型长度/说明是否必填PART_NUMBER短文本30唯一器件编码是VALUE短文本50标称值如10K、100nF是FOOTPRINT短文本50PCB封装名是SYMBOL短文本50原理图符号名是MANUFACTURER短文本50制造商否MFR_PART_NUMBER短文本50厂家料号否DESCRIPTION短文本255功能描述否DATASHEET短文本255规格书路径或链接否STATUS短文本20Active/Inactive是LAST_UPDATE日期/时间—最后更新日期否PART_NUMBER是这张表的灵魂必须设为主键。CIS在查询、关联符号、生成BOM时都靠这一列作为唯一标识。主键的作用就是强制这一列不能重复一旦重复Access会弹窗拒绝保存这就从源头避免了Excel里料号重复的问题。为什么要把VALUE、FOOTPRINT、SYMBOL这三列设为必填因为在CIS的完整链路里放一个器件到原理图上VALUE会变成元器件的Value属性FOOTPRINT会在生成网表时传给PCB Editor去调用封装SYMBOL则决定CIS去哪个符号库里拉符号。这三项缺任何一个器件都放不完整后面排查错误会很痛苦。DATASHEET字段建议直接填PDF文件所在路径或者公司内部网页链接这样在CIS界面里选中器件时可以直接点击打开规格书省去翻资料盘的时间。2.3 字段命名和数据类型的具体避坑字段命名是我踩过最多坑的地方。第一绝对不要用中文列名。虽然Access和ODBC能支持中文列名但CIS在生成SQL查询语句时对中文编码的处理有时会出幺蛾子特别是在Cadence老版本上报错还没什么明确提示。第二列名不要带空格和特殊符号比如“Part Number”这种名字在SQL语句里必须写成[Part Number]加方括号CIS的映射配置里容易弄错。建议全部用大写字母加下划线PART_NUMBER、VALUE、FOOTPRINT清晰又安全。数据类型方面所有文本字段都设成短文本而不是长文本。很多人喜欢把DESCRIPTION设成“长文本”类型但Access的长文本对应ODBC的备注类型CIS读取时偶尔会出现截断或不显示的问题。短文本的255字符上限对器件描述已经完全够用。PART_NUMBER长度设30其实也够除非你们公司料号规则特别长。日期字段用“日期/时间”格式以后做库存生命周期管理时可以直接按时间过滤“最近新加了哪些料”。2.4 测试数据的准备工作表结构建好后先别急着录入几千行正式数据。我的经验是先手工录入5到10条测试数据覆盖不同类型的器件比如一个0603电阻、一个SOT-23三极管、一个LQFP封装的主控芯片、一个接插件。这样在后面验证CIS全链路时能快速发现符号库、封装库、字段映射中的问题而不是等问题被几千行数据淹没。测试数据里要特别注意FOOTPRINT和SYMBOL这两个值它们必须和你们公司实际的封装库、符号库里的名字严格一致。比如PCB Editor封装库里叫R0603那FOOTPRINT字段就填R0603不要填成0603或RES_0603。大小写也要注意Cadence封装库对大小写不敏感但建议统一大写省得以后麻烦。保存表时表名取CIS_COMPONENT这个名字后面在CIS配置里要反复使用。3. ODBC数据源配置CIS访问.mdb的桥梁和经典大坑3.1 为什么必须通过ODBC访问数据库CIS没有内置的Access解析模块它用的是微软在Windows系统层提供的ODBC接口。ODBC相当于一个翻译官CIS说标准SQL语言ODBC翻译成Jet/ACE数据库引擎能懂的指令然后去读写.mdb文件。所以你要做的不是让CIS直接打开.mdb而是在Windows里配置一个“数据源名称”DSN把DSN指向某个具体的.mdb文件然后在CIS配置里填入这个DSN。打个比方.mdb文件是仓库里的一批货ODBC数据源是一张出库单上面写着“仓库位置几号库几号架”CIS凭着这张出库单去取货。如果出库单上的仓库位置写错了或者货已经挪走了CIS就报“找不到数据源”。理解了这一步后面排查错误就有的放矢了。3.2 32位和64位ODBC最容易翻车的环节新版Capture CIS虽然运行在现代操作系统上但软件本身是32位程序。这是Cadence历史包袱造成的直到目前大多数版本仍是32位。问题就来了64位的Windows系统里有两套ODBC管理器一套在C:\Windows\System32\odbcad32.exe64位一套在C:\Windows\SysWOW64\odbcad32.exe32位。32位程序只能调用32位的ODBC数据源64位程序只能调用64位的。很多人在64位的ODBC管理工具里配好了DSN打开CIS却发现“Data source name not found and no default driver specified”找不到数据源名称且未指定默认驱动程序。原因就是你配的DSN是给64位程序用的32位的CIS根本看不见。正确做法是运行C:\Windows\SysWOW64\odbcad32.exe也就是从SysWOW64目录里打开ODBC管理器。你可以按WinR键直接输入完整路径也可以先打开这个目录再双击。判断自己打开的是哪个版本可以看管理器标题栏32位版会显示“ODBC数据源管理器(32位)”64位版则没有“32位”字样。这个环节我建议写成团队操作手册的第一行因为几乎每个新来的人都会在这里卡一次。3.3 配置DSN的完整步骤以64位Windows 10/11为例完整的一次DSN配置流程是WinR输入C:\Windows\SysWOW64\odbcad32.exe回车打开32位ODBC数据源管理器。切换到“系统DSN”选项卡点“添加”。系统DSN比用户DSN范围更广所有登录这台电脑的用户都能用适合团队协作时统一环境。在驱动列表里选择“Microsoft Access Driver (*.mdb,.accdb)”如果你的电脑上显示的只有“Microsoft Access Driver (.mdb)”也选它。点“完成”。弹出的“ODBC Microsoft Access安装”对话框中数据源名填CIS_DB描述可空。在“数据库”分组中点“选择”找到之前创建的CisComponents.mdb文件选中确认。点“确定”保存这个DSN。此时回到管理器列表能看到CIS_DB这一行。可选步骤选中CIS_DB点“配置”在数据库分组里可以点“测试”系统会提示连接成功。有一个细节如果你的.mdb文件设置了打开密码在“ODBC Microsoft Access安装”界面的“高级”里可以输入密码。但强烈建议器件库不要设密码因为CIS在调用时每次查询、刷新都要验证一遍密码配置稍微有点问题就会失败。器件库的安全性靠文件系统权限控制即可而不是靠Access的库密码。3.4 驱动版本问题Jet和ACE的区别Windows自带的ODBC驱动列表里有些电脑显示“Microsoft Access Driver (.mdb)”这是老版Jet驱动只支持.mdb格式。另一些装了Office 2013及以上版本的电脑会显示“Microsoft Access Driver (.mdb, *.accdb)”这是新版ACE驱动同时支持.mdb和.accdb。两者都能用但如果你在老版本Cadence上遇到“驱动程序不支持此功能”的报错可以尝试换成ACE驱动。ACE驱动一般在安装了完整版Office或单独装了Microsoft Access Database Engine时出现。如果系统里没有ACE驱动可以到微软官网搜“Microsoft Access Database Engine 2016 Redistributable”下载安装。这里又一个经典坑下载时要注意区分32位和64位版本。既然CIS是32位程序就要装32位的ACE驱动不然驱动装上了CIS还是找不到。4. 在Capture CIS中建立数据库关联从配置到放置第一个器件4.1 打开CIS配置工具与新建配置这一步是真正考验耐心的环节。在Windows开始菜单里找到Cadence文件夹启动“Capture CIS”注意别启动成普通的“Capture”两者界面虽然看起来很像但只有CIS版本才有数据库相关菜单。打开后新建一个空白原理图工程或者直接打开一个已有工程然后进入菜单栏【Options】→【CIS Configuration】。CIS Configuration界面是一个独立的配置窗口左侧是配置树右侧是数据库相关选项。如果你是第一次配置需要新建一个配置文件。点击【New】先选择配置文件保存位置Cadence默认的配置文件后缀是.dbc这是Capture的数据库配置文件不是数据库本身。建议把.dbc文件也放在D:\CIS_DB\目录下和.mdb文件放一起方便备份和迁移。4.2 数据库连接参数的具体含义在CIS配置界面里需要填或选以下几组参数我把每一组的含义解释清楚第一组是数据库类型。下拉菜单里能看到Oracle、SQL Server、Microsoft Access等选项这里选Microsoft Access。第二组是数据源名称。这里就是之前配置的DSN名CIS_DB。如果下拉列表里没有先别急着强制输入回到ODBC管理器检查是否用了32位版本、DSN是否创建成功。CIS这里读DSN列表时只显示32位管理器中的条目。第三组是表和标识列。表处选择CIS_COMPONENT标识列Identifier Column选PART_NUMBER。这一列会在放置器件时作为唯一的记录标识默认情况下CIS会把它映射为Part Number属性。第四组是字段映射。CIS的配置界面里能维护一个映射表将数据库字段映射到原理图器件属性。常见映射如下数据库字段CIS/原理图属性PART_NUMBERPart NumberVALUEValueFOOTPRINTPCB FootprintSYMBOLSymbolMANUFACTURERManufacturerMFR_PART_NUMBERManufacturer Part NumberDESCRIPTIONDescriptionDATASHEETDatasheet映射完之后当你在原理图上放置器件这些属性会自动写入器件属性列表。没有映射的数据库字段不会出现在原理图上但依然可以在CIS库里查询过滤。4.3 符号库和封装库的映射设置数据库配置只是第一步CIS光有数据还放不出器件它还要知道符号从哪里来、封装从哪里找。符号库设置在CIS配置界面的“Symbol Libraries”或类似标签页里。点【Add】选择你们公司原理图符号库文件.olb。注意这里有两种情况如果你的数据库里有SYMBOL字段并且每条记录都写明了对应符号名那么CIS会根据符号名去这些.olb库中查找如果SYMBOL字段留空CIS会尝试用Part Number去匹配符号名。显然后者更容易出错所以我前面才强调SYMBOL列必须填且必填。封装库设置在类似“PCB Footprint”选项里。这里要指定PCB Editor的封装搜索路径也就是.psm库文件的查找目录。CIS在生成网表后PCB Editor会根据原理图器件上的Footprint属性去这些路径搜索对应封装文件。封装名和实际文件必须严格一致否则PCB Editor在导入网表时会报“footprint not found”。4.4 全链路验证放置一个测试器件配置完成后保存.dbc文件。如果CIS弹出提示说配置成功恭喜数据库关联已经建立。现在来验证整个链路是否真的通了。在CIS的菜单栏中选择【Place】→【Database Part】或直接按Z键快捷键因版本而异打开数据库零件浏览器。这个界面左侧是过滤条件右侧是数据库记录列表。第一次打开时如果所有记录都显示不出来检查右上角的查询模式是不是“开始于”或类似默认条件先设成“包含”并填一个空值或者直接在过滤条件里选一个VALUE字段比如在“值”里输入10K点【查询】。查询出测试数据后选中一行点【Place】然后到原理图工作区点击放置。此时你会看到原理图符号被调出来了同时该器件的属性列表里已经带着Part Number、VALUE、FOOTPRINT、Manufacturer等所有映射过的字段。双击器件打开属性看一遍确认每一项都正确。再做一个关键验证把器件放置完成后尝试生成网表。在【Tools】菜单里生成Netlist选择Allegro格式确认PCB Editor能正确接收并且Footprint属性对应的封装能在封装库里找到。到这一步全链路才算真正的通了。4.5 常见报错和排查思路我在多个版本的Cadence上配过CIS库最常遇到的报错有这么几类报错“Data source name not found and no default driver specified”十有八九是ODBC位数不对或者DSN名称打错了。排查思路打开32位ODBC管理器看系统DSN里CIS_DB是否存在再把CIS配置里的DSN名复制过来确认一模一样。报错“Not a valid table name”一般是表名填错了。检查Access里实际表名是不是CIS_COMPONENT注意Access表名虽然不区分大小写但名称前后不能有多余空格。另外如果存在同名的查询对象也可能被误解析。报错“Could not find symbol”说明SYMBOL字段指定的符号名在符号库里不存在。用Cadence的Symbol Editor打开.olb文件搜索确认符号名注意.olb库文件里同一个符号名可能存在多个版本CIS会选哪一个不一定建议保持库的唯一性。还有一个隐蔽的坑数据库的DATASHEET字段如果填的是本地局域网路径如\server\share\xxx.pdfCIS的链接打开没有问题但如果填成C:\local\xxx.pdf其他电脑上的用户点击链接会出现“找不到文件”。这种数据应该在入库阶段统一用UNC路径或者公司内部的文档管理系统链接。5. 从个人自用到团队共用的进阶操作5.1 共享路径下的并发策略器件库做出来后下一步通常就是放到共享盘让团队一起用。Access和多用户并发天生不对付并不是说Access不能多人同时访问而是它同时支持多个读、但只允许一个写。对于CIS的使用场景——绝大多数时间是查询、放置器件——读并发完全没问题。真正有风险的是有几个元件库管理员同时去改同一个库文件。建议的部署方式是把.mdb文件放到一个共享文件夹如\server\shared\CIS_LIB\ODBC数据源路径指向这个共享文件。普通工程师通过CIS查询和放置器件库文件的访问是只读的Access在这种模式下表现稳定。元件库管理员在维护期间需要注意先通知“正在更新库请勿查询”维护完成后再把控制权交出去。这种模式在小团队10人以内运行几年都没问题。5.2 数据导入和批量更新正式启用之前肯定要把历史Excel数据导入Access。Access自带“外部数据导入”功能支持从Excel导入到已有表或新表。导入前务必在Excel里做一次“数据清洗”具体包括统一VALUE格式10K还是10000、统一封装名大小写、剔除空PART_NUMBER行、处理重复料号。否则脏数据一旦进库CIS里查询出来的结果就是脏的。清洗时最实用的一招用Excel的“删除重复值”功能先把PART_NUMBER去重再加一列检查“封装是否在封装库中存在”。后面这步可以写个VBA宏批量核对也可以人工抽查但一定别跳过。5.3 定期维护压缩、修复和备份Access文件用得久了会膨胀明明删了很多记录文件体积却不减查询也越来越慢。原因是Access默认采用延迟写入删掉的数据页并不会立即释放。解决办法是定期执行“压缩和修复数据库”在Access中打开库文件【文件】→【信息】→【压缩和修复数据库】。原理是重建整个数据库文件把碎片清理掉腾出空间并重建索引。建议至少每个月压缩一次更新大量数据后也顺手做一次。备份是另一条铁律。我的习惯是每次批量更新前先把当前的.mdb复制一份放到backup目录文件名加上日期后缀。这样即使导入数据时操作失误也能快速回滚而不是靠记忆去修复几千行数据。5.4 从Access升级到SQL Server的路径当团队规模增长到几十人或者数据量到十万级以后Access的并发和稳定性开始吃紧。这时可以平滑迁移到SQL Server Express微软的免费版本搭配Cadence的ODBC驱动完全能跑。迁移过程不复杂先用Access的“数据库工具”→“导出”→“ODBC数据库”把CIS_COMPONENT表导出到SQL Server然后在目标机器上创建新的ODBC数据源驱动选“SQL Server Native Client”DSN名称仍然叫CIS_DB最后在Capture CIS配置里把数据库类型改成SQL Server重新指向表和标识列就行。因为表结构没变字段映射不用重做原理图里已有的器件属性也不受影响——这是CIS另一个设计得很好的地方数据库底层换了间接层完全无感。5.5 给团队配置一个加料流程库建好之后最怕的不是没人用而是被滥用。建议在团队内部定一个流程而不是直接把库文件权限放开。常见的做法是设两个角色普通工程师只有只读权限管库员有写权限。新器件申请走一个简单的邮件或表单流程管库员负责核对符号、封装、规格书链接是否正确然后写入库中STATUS字段标记为Active。停产或者有替代料的把STATUS改成Inactive而不是物理删除。这个流程坚持三个月之后你会发现库里的数据质量比Excel时代高了不止一个档次。因为Access的主键约束加上人工审核流程把大多数脏数据挡在了门外。我个人在这些年配库过程中体会最深的一点是Access建库本身只花二十分钟真正花时间的是想清楚PART_NUMBER编码规则、封装命名统一、导入数据清洗这些“看不见”的前置工作。它们决定了CIS查询出来的结果是不是可靠。所以如果你是第一天建库别急着追求快先把字段设计表打印出来贴在工作站旁边把测试数据放进去完整跑一遍全链路再批量导数据。这样后面几百天维护数据库的日子会轻松得多。
返回列表