当前位置:首页 > 问答 > 正文

Protel数据库里那些最大值到底咋回事,数据处理时常遇到的疑惑和探讨

说到Protel(现在更多人习惯叫它Altium Designer)里的这些“最大值”,确实是很多刚接触PCB设计或者在处理生产数据时的一个常见困惑点,这些东西不像电阻电容的值那样直观,它们藏在规则设置和报表里,有时候看起来还挺吓人,让人心里没底,咱们今天就掰开揉碎了聊聊,这些“最大值”到底是怎么来的,该怎么看待它们。

最常让人疑惑的“最大值”出现在哪里?

主要就两个地方:一个是电气规则检查(ERC)和设计规则检查(DRC)之后的报告文件;另一个是生成的各种物料清单(BOM)或者统计报表。

Protel数据库里那些最大值到底咋回事,数据处理时常遇到的疑惑和探讨

  1. 在规则检查报告里:你设置了一个规则,规定电源线的宽度最小10mil,建议20mil,当你布线完成后,软件会检查每一根电源线,它可能会在报告里列出你所有电源线的宽度,并给出一个“最小值”、“最大值”和“平均值”,这时候,如果你看到某根线的“最大值”是200mil,你可能会一愣:“我怎么会画这么宽的线?” 这个“最大值”往往指的是某一根走线中,最宽的那一段的宽度,你为了通过大电流,在连接芯片引脚的地方用了10mil的细线,但在电源入口处铺了一大块铜皮,这块铜皮的宽度可能被软件统计为200mil,这个“最大值”不代表错误,它只是客观反映了你设计中最极端的情况,你需要判断的是,这个极端值是否合理?200mil的铜皮用于电源输入是合理的,但如果一个信号线的某个段落突然变得异常粗,那可能就是你误操作了,需要检查。

  2. 在物料清单(BOM)或统计报表里:这个就更常见了,你的原理图上用了100个10kΩ的电阻(位号R1到R100),还有一个100Ω的电阻(R101),当你生成BOM报表时,软件可能会在“电阻”这一栏的“数值(Value)”字段下,显示“最大值”为100kΩ,这看起来非常离谱,明明最大的电阻才是100Ω,哪来的100kΩ?这个坑就在于软件对“数值”的理解和我们的理解不一样。(来源:Altium Designer社区用户常见问题汇总)

这个“100kΩ最大值”的诡异现象是怎么产生的?

Protel数据库里那些最大值到底咋回事,数据处理时常遇到的疑惑和探讨

问题的根源出在“Value”这个字段上,软件在比较数值大小时,并不是像人一样去理解“10k”代表一万欧姆这个物理量,它是把“Value”字段里的内容当作纯文本字符串,然后按照字母顺序或者某种简单的编码顺序来进行排序和找“最大值”。(来源:基于对Altium Designer BOM生成逻辑的分析)

在文本排序里,比较“10k”和“100”谁大谁小,可不是比较数字10000和100,而是从左到右一个一个字符地比:

  • 首先比较第一个字符 ‘1’ 和 ‘1’,一样。
  • 然后比较第二个字符 ‘0’ 和 ‘0’,一样。
  • 比较第三个字符:‘k’ 和 ‘0’,在ASCII码表里,字母‘k’的编码是107,而数字‘0’的编码是48,107 > 48,所以软件就认为“10k”这个字符串大于“100”这个字符串,在一堆电阻值里,“10k”会被判定为比“100”更大,从而成为“最大值”,同理,如果有个电阻值是“1M”,M’的ASCII码是77,比‘k’的107小,10k”反而会比“1M”大,这完全乱套了,但这就是计算机死板的地方。

怎么解决和看待这些问题?

Protel数据库里那些最大值到底咋回事,数据处理时常遇到的疑惑和探讨

  1. 对于规则检查报告里的最大值:心态要放平,它只是一个数据展示,重点不是这个数字本身多大,而是它是否触犯了你的规则(最小值规则),只要没有报错(Error),这个最大值通常只是给你参考,你可以利用这个信息去优化设计,比如如果电压值很高的地方,安全间距的最大值显示很小,那就要警惕了。

  2. 对于BOM里的最大值:这是需要动手解决的。

    • 修改元件命名习惯。 如果你希望软件能正确按数值大小排序,就不能用“10k”这种缩写,应该统一写成数字形式,10000”代表10k,“100”代表100Ω,“1000000”代表1M,这样软件按字符串排序时,因为大家都是数字,结果就基本正确了,但这种方法可读性差。
    • 使用BOM模板或自定义输出。 这是更专业和推荐的做法,Altium Designer允许你自定义BOM的输出格式,你可以创建一个BOM模板,在模板中,不要直接使用“Value”字段来排序找最大值,而是创建一个新的、计算后的字段,可以写一个脚本或公式,将“Value”字段中的“k”替换为“000”,“M”替换为“000000”,然后将结果转换为数字类型,再基于这个新字段进行统计,这样就能得到真正数值意义上的最小值和最大值了。(来源:Altium官方文档关于BOM定制的内容)
    • 人工审核,不依赖软件的统计。 对于大多数项目,元件种类不多,直接浏览一遍BOM列表比纠结于那个错误的最大值更高效,软件的统计功能在这里更多是提供一个快速概览,最终确认需要设计者自己负责。

总结一下

Protel/Altium Designer里的这些“最大值”,很多时候是软件机械式处理文本信息的结果,它并不具备人类对物理量的智能理解,我们感到疑惑,是因为我们用自己的思维惯性去解读了计算机的“语言”,处理这些问题的关键,在于理解数据产生的机制——是规则检查的客观测量,还是文本字段的字符串排序,理解了这一点,你就能拨开迷雾,不再被这些数字吓到,而是知道该如何去验证、忽略或者修正它们,从而把注意力真正放在设计本身是否正确和可靠上,说到底,工具是为人服务的,我们要学会如何正确地驱使它们,而不是被它们显示的几个数字牵着鼻子走。