EEVblog Electronics Community Forum
EEVblog Electronics Community Forum
EEVblog Electronics Community Forum
Electronics => Repair => Topic started by: Towger on January 31,
2015, 02:03:54 am
I was presented with dead a LED PAR from one of the better Disco
Dave manufactures of such equipment.
However, unlike the the big boys in the world of entertainment
lighting they don't (or won't to me), supply schematics.
They will sell me a new power supply for $140++, except they will
not have stock for another 2 months. Must be a common fault...
Anyway the patent is a '24V 4.16A 100W' very basic looking SMPS,
of a small non standard size.
It presents the following symptoms:
My main problem is the SMPS Controller IC has blown it's top, and I
cannot find the remains! So I know know what to replace it
with. So I will open that question up to the combined knowledge of
the EEVBlog.
Below are the front and back of board, there is also a heatsink
which wraps around the top of the PCB:
Title: Re: SMPS Repair: Name the Controller IC with the blown
top!
Post by: rastro on January 31, 2015, 03:20:42 am
Some thoughts:
1. Since the top is blown off, is there any way to view the die under
a microscope to see any if there is any manufacture/model
markings.
2. Identifying which pins are the IC's power and ground would
probably be helpful - at least eliminating some 8-pin-DIP
candidates.
3. It may be good idea to include the manufacture/model of the unit
- you never know someone may have it and can look inside.
Hi Rastro,
Pins
1 - Mains - and optocoupler (817).
2 - Other side of optocoupler.
3 - Mains + via two 560K resistors in series.
4 - This is tied to mains - via a 24k resistor.
5 - Not connected
6 - Goes to the mosfet source leg via a R4 10K.
7 - Two 10uF 50v low ESR caps and a diode - I assume this is
power for the Controller IC.
8 - Drives the gate of the mosfet through a resistor and diode in
paralle.
I have looked at datasets and can't find any which drive with pin 8.
But I am no expert...
Title: Re: SMPS Repair: Name the Controller IC with the
blown top!
Post by: T3sl4co1l on January 31, 2015, 03:52:33 am
$140? Lucky you... That thing's not worth $30, and doesn't even
have the most basic of EMI filtering!! :(
Peak current mode controller, like UC3842, but the pinout and
usage isn't right. Don't know offhand what things would fit. Could
be TI, ST, or some no-name Chinese ASIC (yes, they make their
own sometimes).
Can't quite make out the feedback resistors, but it seems to use a
TL[V]431 or equivalent regulator (the SOT-23 on the output
side). The resistors, and the internal reference voltage, set output;
I'd guess 12 or 24V offhand.
Surely you can fine a compatible (at least electrically, if not form
fitting -- but smaller) unit elsewhere? Meanwell comes to mind.
Tim
Thanks Tim,
I have bookmarked an expensive medical grade supply, which is
slightly smaller than the original.
Most of the others are slightly longer or wider.
The other option is a cheap external power brick, they tend to be
smaller and i might be able to bucher one to fit.
It is possible to buy 3 chinese 70w Pars for the price of a new SMPS
for this 'quality' fixture.
Thanks Kibi,
Quote
Maybe someone better than my self can cast their eye over it.
I would even say it's almost reference circuit. Probably this is not
particularly AP3101 but some compatible clone, but likely should
work as replacement.
Thanks Wrapper,
AP3101 : Pin 5 is ADJ Adjust the level of skip cycle -0.3 to 7 V - Pin
5 is not connected on the PCB...
SG5841, SG6841:
Pin 5 RT Temperature
Protection
For over-temperature protection. An external NTC thermistor is
connected from this pin
to ground. The impedance of the NTC will decrease under high
temperature. Once the
voltage on RT pin drops below a fixed limit, the PWM output will be
disabled.
Looks like like Pin 5 could be left swimming in the breeze, no need
for thermal cutout on a 70W convection cooled PAR can!! :wtf:
Looks like we are on to a winner. Have to go now and bring the kids
to all their Saturday activities.
http://www.leadtrend.com.tw/pdf/LD7552-DS-00.pdf
(http://www.leadtrend.com.tw/pdf/LD7552-DS-00.pdf)
uf4007
Two months to the day: She lives again, with any luck it will not
blowup after a few hours! Went with a OB2268 in the end. Many
thanks to all who helped along the way.
Pump Alternation
The scenario:
I have two discrete pumps used to empty a tank.
The lead pump is requested to run once a high level condition is met. The lag pump is
requested to run once a high high level condition is met. The lag will stop running
when the high high is no longer true. The lag will shut off when a low condition is
satisfied. They are also required to alternate lead to lag once they are shut off (by the
low condition). I am looking for the most efficient way to program the alternation. I
have ideas, but want to see what others think...
This is got to be one of the easiest things to code.// Use a counter and the .ACC of the
counter with the call to run to Alternate the pumps.
Use a modified flip flop. If you search here flip flop has been covered many times. It is
pretty easy code for what you require.
Not necessarily related to the pump control (as this has been discussed numerous
times in the past - try a search for pump control or pump rotation), but be smart
about the programming vs alarming. You don't want your pump control to be the
same as the alarm - just think about it - an alarm is to annunciate an abnormal
condition that requires action. Normal operation of draining a tank isn't typically
defined as an alarm. Consider not using your HiHi level, but rather a Hi level that has
your alarming on the outside of operation range. Then you could determine if a single
pump is not working (failed) and/or if the second pump is necessary.
If you are turning the lag pump on and off based on high-high level, what will happen
on a pump failure?
i.e. If the duty pump fails and the high-high level is reached the lag pump will turn on.
Then when high-high level is off the lag pump will stop. You could get into a starting
and stopping situation that could damage you pump, assuming you still have flow
coming into tank.
If you have some way of sensing a duty pump failure, you could switch the standby
pump to duty. If the standby pump is only starting to assist to bring the level down,
you may want to pump down to some intermediate level before having it shut off.
Kim
I sincerely hope that I didn't just answer a homework question, but on the off chance
that it is not, here is a very simple solution.
All you have to do is count in binary. Each time you count up the least signficant digit
changes state, 0, 1, 0, 1, 0, 1, 0, 1, etc. You can use a counter or a flip flop.
In the examples below I have assumed that all of the float switches make on rising
tank level.
http://www.plctalk.net/qanda/uploads/A061407A.JPG
You can add the logic necessary to the pump seal in branch of each of the rungs it you
want the lag pump to shut down when the high level switch is not made.
Thank you
It is a "bit of word". Each time the value of C5:0.acc increments, the least significant
bit will change states creating a "slick" form of a flip flop. I call it slick, because it is
eloquent and simple and a little bit abstract to the casual observer, not to denigrate it
in any way.
With Allen Bradley SLC and PLC-5 addressing, the"/" is the bit delimiter. "/0" means
"bit zero".
So restating the answer for clarity, each time the value of C5:0.ACC is odd the value
of C5:0.ACC/0 would be "1" and each time it is an even number, the value of
C5:0.ACC/0 would be "0"
All times are GMT -5. The time now is 07:17 AM.
hi every body
i am working for a project where i have to control 5 pumps.
if at any time while running if i put any pump switch in maual mode for example say
pump 1 i put in manual mode then seq should should adjust to 3,4,2,5.
.
i have done this using add instruction for every selction of pump and subtract
instruction while delselction of pump.
How about loading a table with the pump numbers in the sequence that they are
switched to auto. Then use that table for the pump start sequence. If a pump is
selected to manual then use a find or compare instruction to remove it from the table
and shift the remaining numbers up. If the pump is switched to auto again it comes
back in at the end of the sequence.
Use an up/down counter as a pointer to determine which pump is started next, as
each pump is started then the pointer is incremented and decremented when one
stops.
1 Attachment(s)
Irfan,
What a challenge! I used John W's suggestions and put together a quick-and-dirty
method. I am sure it can be refined. A Sequencer instruction could be used, but it
appeared to me that the problem is re-ordering the sequence when a pump is
removed. I could see no way to do that efficiently, so I used the brute-force manual
method. Here is a *.pdf file of my original RSLogix program.
i have just made a similar program and i used fifo instructions amd table instructions
when a i have a request for pump i make a fifo instruction for the available table and
add the result to the on table
(these fucntions are available in ti library in siemens s7-300 and also available with
s7-200
)
You have the habit always direct for functions. Should evaluate the cost.
Also, in these panels the PLC can be simple, absent of instructions adv.
Challenge do make in ladder.
1 Attachment(s)
Here is my attempt at selecting the start sequance using Step 7.
I have used counters and made the circuit for 6 pumps.
moggie,
I think your program is a good one, but I had trouble figuring out how it works,
because we only have memory addresses with no symbols. Would you please go into
your Siemens S7 and click "View", then press "Symbolic Addressing". Then upload it
again and it would be easier to follow.
1 Attachment(s)
Here it is again with some comments.
Basically i load a counter with the "position number" of the pump when it is turned to
auto.
If a pump is turned off; then any pump with a position number higher than that of the
one turned off has its position number "decreased" by one.
Quote:
MMMM Took a quick look at the program..I thought it was taboo to use the same
outpur in more than one rung..Also i knew rslogix 5000 let you do it but i didnt think
rs500 did??
Yes, you can use a coil on a memory location or output more than once. Lancie1's
example has a common error when a coil is duplicated. It will always be set/reset
according to the last rung its addressed in, rung 6. B3:1/6 thur b3:1/10 will always be
false unless C5:1 happens to be equal to 5.
Hi every bosy,
1 Attachment(s)
darrenj & jstolaruk,
Yes, you are correct. I spent all my time working on the sequence, and only threw in
the START routine the last 5 minutes. I did take out the redundant outputs in the
attached version. I think it would work, but there may be other errors. I have not
tested this program.
Moggie's design is so much better than mine. I can tell that his is a working version.
Just couldn't resist trying to develop a manager for the Queue with as few rungs as
possible.
The following is only for managing the queue.
There are other concerns such as...
...how the sequence is actually started,
...how the sequence transitions from one motor to the next,
...what happens if a running motor is dropped out of the queue, etc.
Although a long description... this is only describing 2 Rungs (shown later).
M# = Motor #
Q# = Queue #
Last_Q# = Last Queue # used
If "RESET", Zero-All
M# = 0
Q# = 0
Last_Q# = 0
Queue_(1 through 5) = 0
Motor_(1 through 5) = 0
INC Q# (Q# = Q# + 1)
INC Last_Q# (Last_Q# = Last_Q# + 1)
Copy M# to Queue_(Q#)
Copy Q# to Motor_(M#)
END OF RUNG-1:
Initial 0 0 0
.
RUNG-2: (Unloading and Adjusting the Queue)
If input 1 just off... M# = "1"
If input 2 just off... M# = "2"
If input 3 just off... M# = "3"
If input 4 just off... M# = "4"
If input 5 just off... M# = "5"
Copy Motor_(M#) to Q#
If Q# < "2"... Copy Queue_(2) to Queue_(1)
If Q# < "3"... Copy Queue_(3) to Queue_(2)
If Q# < "4"... Copy Queue_(4) to Queue_(3)
If Q# < "5"... Copy Queue_(5) to Queue_(4)
Queue_(5) = "0"
DEC Last_Q#
Q# = Last_Q#
Motor_(M#) = 0
M# = 0
END OF RUNG-2:
Initial 0 4 5 5
2 2 4 4 ...and then... M# = 0
2 0 4 4
Initial
Queue_(Q#) = M# Motor_(M#) = Q#
Final
Queue_(Q#) = M# Motor_(M#) = Q#
.
At this point, the only motor switch that can go ON is Motor Sw #2. If it goes ON then
it will be logged into Queue_(5).
The following shows the two primary rungs which manage the queues...
RUNG-1:
+--------+ | | Q# | | Last_Q# | | M# to |
| +----------+
SW-2 +--------+ |
---|/\|---+ M# = 2 +---+
+--------+ |
SW-3 +--------+ |
---|/\|---+ M# = 3 +---+
+--------+ |
SW-4 +--------+ |
---|/\|---+ M# = 4 +---+
+--------+ |
SW-5 +--------+ |
---|/\|---+ M# = 5 +---+
+--------+
RUNG-2:
ALWAYS
| | to Q# | | | QUEUE_(1)|
|
| +----------+ | +----------+
ALWAYS |
| | | QUEUE_(2)|
|
| | +----------+
ALWAYS |
| | | QUEUE_(3)|
|
| | +----------+
ALWAYS |
| | | QUEUE_(4)|
|
| | +----------+
ALWAYS |
| +-----------+ +--------+
|
|
|
+--+ Q# = +--+Motor_(M#)+--+
M# = +-+
|Last_Q#| | = "0" | |
"0" |
.
Rung-1 Loading:
Any switch going ON causes the particular switch# to be assigned to the Motor#
(M#).
The Queue# is Incremented.
The Last Queue (Last_Q#) used is Incremented. (this is used for unloading)
The Motor# (M#) is copied to the current Queue# QUEUE_(Q#)
Rung-2 Unloading:
Any switch going OFF causes the particular switch# to be assigned to the Motor#
(M#).
The Q# where the particular motor# is stored (in Motor_(M#)) is copied to Q#.
The Queue is adjusted according to Q#.
Whether or not one Queue is copied to another depends on the value of Q#.
In all cases, Queue_(5) will be set to "0".
In all cases, the Last_Q# will be decremented.
In all cases, the current Q# will then be set to equal the Last_Q#.
In all cases, the Queue # in the affected Motor queue will be set to "0"... it is out of
the queue.
In all cases, the current M# is set to "0".
For those PLCs that bail-out at the first opportunity...
...the "ALWAYS OFF" bit ensures that all of the branches are executed before the rung
is exited.
Hi All
I'm building a similar system for controlling pumps and monitoring alarm conditions.
I've got a basic system in place that is more or less there and just needs some final
tweaks.
One big problem that I have is to do with the loss of power to the Allen Bradley SLC
500.
I have set-up my components, power supplies, etc to operate via a hard-wired master
control relay so that in the event of power failure and subsequent re-power, all relays
reset and return to the known start-up condition.
Unfortunetely when I power the AB down and switch back on, it continues where it
was at power loss.
It would be safer and preferable to reset all conditions and outputs back to the start
condition.
I have tried to use the MCR command but I was wondering if there was a better way
to carry out this function, I fairly new to PLC controllers and not sure how the 'best
practises' for these sort of things.
Simon
All times are GMT -5. The time now is 07:22 AM.
Page 1 of 2 1 2 >
Show 75 post(s) from this thread on one page
https://www.scribd.com/document/376782775/collection-of-lcd-led-tv-repair-tips-v4-0-kent-liew-
pdf#