Ping John Larkin: Question on MAX

Say John,

If you don't mind my asking...

With your homegrown inventory/parts management/MRP program MAX, have you effectively integrated it with PADS Logic (which I'm assuming you enter your schematics with, given that you use PADS PCB for layout) by, e.g., having an attribute for each symbol that keys to one of your internal part numbers?

In other words... how easy is it for you to get from schematic to BOM whereby the BOM consists of all your internal part numbers? Completely automated, or someone manually going thorugh a generic BOM report and manually linking them up with your internal part numbers?

Assuming it's automated, how long did it take to have someone go through your PADS parts library and enter the (5,000 or so?) internal part numbers initially?

Thanks,

---Joel

Reply to
Joel Koltner
Loading thread data ...

Mostly. We have a PADS-LOGIC macro that generates parts lists, in our format, from the schematic. That means we have to enter our 7-digit stock number as a part attribute for each part on the schematic. A pl needs a little hand tweaking, for hardware and such, but 98% of the work is automated.

Since we often have dash number versions of boards, with different stuffing options, or do eco's, pl's need more hand tuning. We release only one schematic rev "X" and never edit it as "X", so the pl's don't necessarily 100% agree with the schematic. We treat the schematic as a reference drawing. The assembly drawing, pl, and any eco's define configuration.

Parts that only come one way, like an IC, have the MAX number wired into the library part. I think that was all done by hand, but Rob may have done a Perl script when we cut over to new part numbers. We do it now whenever a new part is created. The part creation form forces us to create the MAX number and description, and the PADS stuff, correctly. A copy goes to purchasing so Bonnie buys some right away. This is great.

Things like resistors/caps/inductors only have a generic PADS part, so the actual MAX numbers have to be poked in on each schematic, depending on value and tolerance.

My weekend project is to write a PowerBasic program that verifies that, on a schematic, all the r/c/l values in the "value" field are consistant with the values of the MAX part. I'll do that based on an ascii schematic dump and an ascii MAX parts listing, which is easier than messing with binaries. PB is so fast that the most brutal linear searches are fine. We need that program because certain engineers, who I will not name, keep changing parts values before the board is finished, and The Brat gets annoyed keeping up with, and checking, the results.

Every time you run MAX, it generates a file called _parts.txt, with one line per part. That's handy for all sorts of things. A lot of what MAX does is based on browsing text files, and we just leave them behind. And PADS will import/export anything in ASCII.

John

Reply to
John Larkin

Thanks John, that's good information.

Since RLCs, etc. already encode their "primary value" (e.g., resistance for resistors, capacitance for capacitors, etc.) into the internal part number, we've kicked around the idea of buliding a little program that takes a "template" part number from the (in our case) ORCAD-generated BOM, and combines it with the "value" attribute in the schematic to then generic the "fully qualified" internal part number. This idea was meant specifically to avoid the problem you're describing -- engineers can change values all day long, and you still end up with valid internal part numbers. (Granted, some of those parts numbers might not exist yet within the MRP system, if we've never used, e.g., a particular 1% resistor value before -- but that can be checked as well, and a report generated that tells purchasing to buy some/create the part/etc.)

---Joel

Reply to
Joel Koltner

If you use/switch to Orcad CIS it does all the work for you.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Reply to
Nico Coesel

We have ORCAD CIS and no, it doesn't, AIUI: If you want to change, e.g., a resistor's value only (but it's still the same old 0603 generic resistor otherwise), you can to use "change database part" and go find the new, e.g.,

1.12k, 0603 resistor. In most cases that's a lot more mouse clicks that double-clicking one on the part's value, entering the new value, and calling it good.

Another benefit is that you're not immediately stuck if no one's gotten around to entering 1.12k 0603 resistors into the master part database in the first place (whereas they did already have, e.g., 2.22k in there, what you initially used). ...so you call or e-mail the guy maintaining the parts database, ask him to add the part, and then come back after lunch and continue updating a schematic.

Both of these things are productivity killers, in my mind.

But if I'm wrong about ORCAD CIS's capabilities here, I'd appreciate being told as much.

---Joel

Reply to
Joel Koltner

for

ber,

a

g.,

t

ing

round

st

ially

, ask

a
g

been I while since I've used orcad, but I think you can just change the value, and it'll then be flagged as not tied to the database something that can be fixed later when you are preparing for production.

being tied to the database has the advantage that you can choose components you already have

-Lasse

Reply to
langwadt

I expect you're correct, although it sure seems to me that not having a "fixing" step (except for where parts don't exist in the database yet) is desirable.

"being tied to the database has the advantage that you can choose components you already have"

In general I agree, but we generally assume that any, e.g., E96 1% 0603 resistor is available inexpensively and overnight (if necessary) from the likes of DigiKey, so we generally don't keep stock of a particular value until it's actually being used in production somewhere. (We do have engineering kits with every single value stocked -- for prototypes the production guys will occasionally grab some of these, which is fine.)

---Joel

Reply to
Joel Koltner

Yeah, that would be better. Our MAX numbers also encode value. But more work, and still could leave holes for tolerance, t/c, things like that, or parts that aren't actually in stock.

If I just check the "value" field against the value from our stock listing, that will catch most errors and maintain family harmony.

A new rule is that if an engineer owns a schematic and changes a value, he wipes out the MAX field to note the change. So The Brat can fill it in, or else it becomes a TBD, which attracts attention.

My checker thing will help.

How do you program stuff like this? Is it easy to get at the ORCAD library?

PADS includes some VisualBasic scripting thingie, but we've never used it.

Our parts lists are simple...

22A450.1A \ ASSY, PCB, V450 ANALOG INPUT \ 08-DEC-05 \ R GADDI

104-2160 2 C69 C73

105-2301 16 C13 C28 C44 C58 C74
  • C90 C105 C122 C141 C157
  • C175 C193 C208 C222 C236
  • C253

105-2001 16 C7 C22 C37 C52 C66

  • C84 C98 C115 C135 C150
  • C165 C185 C202 C216 C230
  • C245

116-3381 3 C191 C282 C285

103-3080 32 C3 C9 C18 C24 C34
  • C39 C49 C54 C63 C68
  • C79 C86 C95 C100 C110
  • C117 C127 C137 C146 C153
  • C162 C167 C180 C187 C199
  • C204 C213 C218 C227 C232
  • C242 C247

and like that. A part entry is

@123-4567 if it's a subassembly to be broken down.

John

Reply to
John Larkin

still need to check everything is ready for layout, maybe add mechanic stuff etc.

until

ing

s

sure for cheap generic stuff like that it doesn't matter much, but if you need a .50$ 25ppm melf resistor it makes sense to pick the value you already have a reel off from last time, if you can

-Lasse

Reply to
langwadt

Yes, you have to effectively trust the engineer to know what a "generic" part is and what isn't. (One can just make a list somewehre...) Logistically, since an internal part number *might* map to multiple manufacturer part numbers (that are all considered form, fit, and function compatible), you just use one internal part number for "generic" components (e.g., for resistors where you only care about resistance, tolerance, and footprint) and other internal part numbers for a specific manufacturer's part (and the idea is that no one will substitute this part on you within an ECO or similar).

It would be nice if ORCAD CIS would let you lock attribute fields on placed parts so that you don't run into the whole "engineer changed the component value but not the internal part number" problem in the first place (...for non-generic parts). Maybe it does? I just don't know yet. (We had discussed other options such as the generic parts having a slightly different symbol or differently colored attributes to make it obvious to the casual observer which parts are generic and which shouldn't have any attributes changed without fixing the internal part number.)

---Joel

Reply to
Joel Koltner

Hi John,

Oh oh, Don's gonna come after you now. :-)

Yeah, it definitely needs some well-written documentation if you're going to do it. Since we're just in on-going limbo of rolling out the next MRP system and the ORCAD integration hasn't begun yet, we still have time to consider it.

Inbetween actually doing real work, that is.

Is the MAX field displayed? I suspect that if your internal part numbers are displayed right on the schematic (rather than requiring, e.g., double-clicking the part to get to a table of attributes), it's a lot harder to forget to blank it out when you change the component value than if you have to, e.g., double-click to see it and do so.

Some console-mode programs written in C, Visual BASIC, or (my current favorite) Python.

It isn't at easy to get direct access to the ORCAD library (they're binary and the format is undocumented), but you can have ORCAD spew out a whole bunch of reports in ASCII that are then pretty easy to parse. The MRP system has an ODBC interface available, and while no one's actually tried to write a program to poke at that yet, it's what we expect to use (...and at least Visual BASIC and Python allow pretty easy database poking via ODBC).

Same here. ORCAD is the same -- although there I looked at writing a few macros-like commands once using it, and my recollection is that while it could do a lot of "user action" type things (zoom in and out, place parts, print/plot, etc.), it didn't give you access to the raw design data directly. I.e., it seemed like a half-hearted effort ORCAD made so that they could check off some corporate requirement of, "Supports scripting in Visual BASIC" rather than making it anything super-usable to end-users.

(Whereas something like Microwave Office is completely "open" under Visual BASIC or any COM-compatible language -- you can easily step through/create/modify schematics device by device, layouts trace by trace, etc.)

You're making it way too simple. At the very least you should wrap it in XML so that it's more prone to error if someone edits it manually. :-)

---Joel

Reply to
Joel Koltner

Yes, but you'll have a lot of work afterwards to edit and check the BOM. At lot of chances to introduce errors a well.

Make sure you can add parts yourself. I've been using Orcad CIS for about 10 years now and I really can't imagine going back to editing BOMs by hand and using tedious tools to 'automagically' add footprints to components. Been there done that.

When I design something the BOM includes my stock and supplier's ordering numbers (including minimum ordering quantities or multiples). A simple sort in Excel produces the list of items to buy in order to have enough parts to make a prototype.

Entering a diagram is not designing... When I'm simulating a circuit I don't use the CIS feature ofcourse.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Reply to
Nico Coesel

Just one word of caution. Be careful with Purchasing generating parts. Usually that should be an ECO process, or at least close. While they are certainly experts in electronic parts it is easy to overlook something that normally never matters. Example in one of the cases I was involved: A (too quick) decision was made to replace a resistor with another that looked like a perfect form-fit-function match. Well, it was, almost. Except that it wasn't low inductance ... tsssss ... *PHUT*. Then there were those caps that looked identical, except that they didn't have an AC rating. The bang was a lot louder, with stuff flying about.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

The idea is that you don't have to check the BOM -- you're guaranteed that if all you did was change a "generic" resistor's value from 220ohms to 470ohms, your new BOM is correct.

Ho, ho... yeah, well, that isn't going to fly at many places I've been. At one place, even after demonstrating that on average something like 1 in 10 parts had errors in them (albeit many of them minor, such as incorrect electrical pin types, lack of overbars, etc. -- perhaps 1 in 40 had "board killer" errors such as the wrong footprint or wrong pin numbers), management was not convinced that adding parts should be in the purvue of design engineering. We even had one guy quit his position as "parts librarian" because he said there were too many correction requests coming in from engineering -- even though he didn't dispute that any of the correction requests were invalid! Amazing...

---Joel

Reply to
Joel Koltner

No, we don't display it. I don't like all that clutter on schematics, like transistor/resistor pin numbers, offpages, default part sizes and voltages, all that junk. So click select, rightclick, query/modify, attributes: *4* clicks to see it. A couple more to edit it.

Good idea.

John

Reply to
John Larkin

We have a form for creating parts, and we include the mfr's and mpn's that are acceptable buys. Bonnie will sometimes need to find a new one, but she's pretty good about checking with engineering before doing it. She knows when it's safe, too, like simple resistors and such.

I've worked for companies where engineering had no control over this, no real visibility as to what was being stuffed into a stockroom bin. I quit my first job in California, partly because they refused to get this under control. The purchasing manager was the President's wife.

Besides, Fremont sucks.

John

Reply to
John Larkin

Yes, but the internal/external order codes are still missing. How about tolerances and package sizes?

I don't know where you are from, but over here it is customary to simply ignore management when it comes to obvious mistakes. Anyway, if for some reason the parts database contains errors then its useless. You'll need to do the work yourself one way or the other (either maintaining the parts database or editing the BOM by hand). Perhaps management can be enlightened by showing them how many hours you lose by having to do tedious administrative tasks over and over again.

IMHO the actual profit from a parts database comes from having to deal with tolerances, footprints, order numbers, etc only once for each part.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Reply to
Nico Coesel

Yesterday the news said that the first bridge (Golden Gate?) staretd charging carpoolers, too. And if you don't buy into Fastrack it's the full six bucks. How are people doing that who aren't engineers but closer to min wage? For them it eats up a whole work hour of net income.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Carpoolers can share the toll anyhow. The GG Bridge would have been paid off long ago, so they stopped being a "bridge" and became a "transit agency" so they could waste gigabucks and keep raising tolls.

Yeah, we have Fastrak. It removes the immediate pain of paying tolls. It even works for airport parking. Some day everything will be charged to your cell phone. And it will be a universal password, door opener, transit pass, drivers license, passport, everything.

"You have no privacy. Get used to it."

John

Reply to
John Larkin

Our "value" and "P/N" fields are separate so that only the value is printed on the schematic, not the entire P/N. It would help immensely if all the parts had the value encoded in the P/N, but some nitwit about 1600 parts back decided to divorce them and start numbering all parts from 00000001. :-(

We *can* add parts, but leave it to the "component engineer", who also is the layout guy. I'll make OrCad symbols and put them in my own library. He pulls them from there and checks all the information before putting it in a "standard" library.

He was likely given the position without the time or perhaps authority to do the job properly. Management is often does things like that.

Reply to
krw

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.