(转)Protel 99SE Error: Net already exist 终极解决
方案大讨论 [ 2009-5-13 12:34:00 | By: liuwenbin1984 ]
1
推 荐 提前声明一下:Protel 99SE 存在 bug,接下来详细解释: Protel 大家在使用 Protel 99SE 导入网表(Load Net Nets)时,是不是经常出现 Error Net already exist 的错误 Error: Netlist)时,Net identifier Scope 一般选用 Sheet Symbol / Po Protel 层次原理图在生成报表(Create Net Net rt Connections 当出现 Error Net alreay exist 时,我们要看错误提示对应的左边 Action 是什么 Error: 我们根据左边 Action 的提示分情况讨论: 一、如果是 Power port 例如是:Add new net +5(或者是:Add new net GND) 这时候我们不要急于去想是不是原理图画错了,难道 Protel 99SE 有 bug 也要怪我们吗?! 把生成的网表(.NET NET)打开,按 ctrl+f,查找+5
NET 我们会发现有下面的情况出现: ( +5 D505-A ) ( +5 C602-1 C603-1 J101-1 J101-4 J103-13 ) +5 有两套连接,难怪在 Load Net 时 Protel 会报错呢 Nets 大家如果细心的话,会知道 Power port 的作用域(scope)是整个项目(project)。 Protel 在生成报表时,却把 Power port 根据 Sheet 而分开了!这不是自己跟自己过不去吗?! 这就是 bug 的所在! 解决方法便是,手工修改.NET 文件,将这些分开的电路整合在一起,修改后应该是: NET ( +5 D505-A C602-1 C603-1 J101-1 J101-4
J103-13 ) 二、如果是自定义的 Net Netlabel 例如是:Add net net Key1 我们依然打开网表,会发现: ( KEY1 J101-17 U101-33 ) ( KEY1 J701-17 S700-2 ) 可以看出,Protel 依然是按 sheet 将 KEY1 分成了两块电路。 Protel 我认为这也是 Protel 的一个 bug,因为采用 Sheet Symbol / Port Connections 生成网表时,自定义的 N etlabel 的作用范围应该是 local 的,只在本 sheet 内有效,所以即使再执行一次 Add new label KEY1 也 et Error: 不应该发生 Error Net already exist 的错误。 解决方法:1、如果你本身就不想让这两块电路相连(例如有些人想在一块 PCB 板中生成两块互不关联的电 路板,这两块电路板将来采用排线相连),唯一的方法就是:修改 Net Netlabel,在同一个项目中,自定义的 N Netlabel 前加上 sheet 的编号, etlabel 在一个 sheet 中出现,就不能在别的 sheet 中再次出现。可以在 Net et 例如修改后变成: ( KEY1 J101-17 U101-33 ) ( 7_KEY1 J701-17 S700-2 ) 2、如果你想让这两块电路相连,即自定义的 Net Netlabel 的作用域是全局的,解决方法就简单多了 那就是在生成网表时,Net identifier scope 选择 Net labels and Ports global,这样所有
问题都 OK Net 了 采用这种方法的缺点是:削弱了层次原理图
设计的层次性 上面费了那么半天话,实际上就是一句话: Net identifier scope 选择 Net labels and Ports global,自成一体的独立电路中的所有 Net identifi er(包括 Power
port,Net Netlabel 等等)采用不同的命名即可 Net
2
protel 报错: component not found 怎么解决 报错: 这是因为你的封装库里没有该元件的封装 或者封装不对 比如 电阻的封装原理 图中两腿是 1 和 2,而封装上却是 a 和 b,这时 生成 PCB 时就报错 找不到管 脚
追问 那 node not found 呢?
回答 node not found 就是我上面说的封装的管脚名称和原理图管脚名称不一致的情 况,再比如二极管,原理图上是 A 和 K,封装上却是 1 和 2,那封装和原理图的 管脚就对不上,就会报 node not found 的错误