Two Contactors Just Exploded
Okay.. I've learned this the hard way. I used IND I/O to control Forward and Reverse of a 3 phase AC Induction Motor. Everything went well initially until I cut off electricity. As soon as I turned the IND I/O back on, both contactors exploded and there was huge explosion sound. It seems like when IND I/O start up, it produces output voltage simultaneously on all ports for a fraction of a second. This action connected both contactors simultaneously and caused short between the phases. I've even interlocked the control coil of both contactors to pass through each other's NC port so when one contactor is active, another one cannot turn on. The problem is, I connected the IND I/O to contactor through two very fast Solid State Relay. The process happened so fast that the electricity reached both contactors before the NC coil has time to disconnect each other's coil. I wish I could upload my wiring diagram but unfortunately I have no enough karma. The following is how I wired them:
DIO CH1 ( Output ) --> 24 Vdc Solid State Relay --> Forward Contactor
DIO CH2 ( Output ) --> 24 Vdc Solid State Relay --> Reverse Contactor
Now, I've heard that setting all Digital IO Ports mode to OUTPUT first and set them to LOW before configuring each port for INPUT / OUTPUT during setup() will prevent IND I/O to produce any voltage output during start up. Is this solution guaranteed? Or is there any other methods? Please provide solution as this is a very dangerous bug. Luckily nobody died today.
FURTHER TEST #1
I removed every codes from inside loop() and only initialized the setup() so basically it does nothing after start up. I set all dio ports to OUTPUT and set everything LOW. I then disconnected the USB and plug 24Vdc power into IND I/O. I can still see both Solid State Relay indicator blinked for a fraction of second ( around 1/4 second ) during start up. Then I connected one Solid State Relay through a mechanical relay's NC Port. The wiring as follow:
IND I/O CH 1 --> Mechanical Relay Coil --> Mechanical Relay NC-A --> Mechanical Relay NC-B --> Solid State Relay Coil.
The Solid State Relay still blinked which means the mechanical relay's NC is not fast enough to cut off electricity flowing to SSR coil.
Does anybody know what caused the IND I/O to produce signal output during start up or how to stop it? I am now quite positive that this is what caused my contactors to explode yesterday as they were connected to 380Vac, 1000KVa transformer source.
FURTHER TEST #2
I tried uploading empty sketch to the IND I/O and the problem appears to be solved. Then I wrote the following in setup():
Indio.digitalMode(1, OUTPUT);
Indio.digitalMode(2, OUTPUT);
and I found out that both Solid State Relay are turned on. Then I add:
Indio.digitalWrite(1, LOW);
Indio.digitalWrite(2, LOW);
It reproduce the symptoms: dio port output HIGH for a fraction of second. Aha! Now I know what happen. It seems like by default, dio port will output HIGH once we set the mode. Then turn them down as soon as the cpu reach the next statement to make them LOW.
Question: Is there a way to tell the board to output nothing by default until there is command to make them HIGH?
FURTHER TEST #3
Interestingly, I wrote the following in setup():
Indio.digitalMode(1, INPUT);
Indio.digitalMode(2, INPUT);
No codes other than above was written in setup(). loop() is empty. Guess what? Both my solid state relays that were connected to dio 1 & 2 were on! I was surprised, those ports were configured to receive voltage input but were outputting 24Vdc instead. No wonder "The recommended way to declare dio INPUT is to set them as OUTPUT first, turn them LOW, then set them as INPUT".
Question: Is this a bug? Wouldn't this conflict with 24Vdc input from sensor?
Woah, writing LOW before defining INPUT or OUTPUT actually worked ! I always thought I have to define INPUT/OUTPUT first before setting LOW/HIGH. However, how reliable is this solution? I am afraid one day the IND I/O malfunction and my contactors explode again..
Fyi, I connected one dio port to 24Vdc Relay coil and set the mode to INPUT. The relay also turned on permanently, as long as IND I/O is on.
This is interesting, but you shoud post the type of relay, to be able to check parameters.
Otherwise it is a generality and will end in creating doubts in other people.
Anyhow it means that while in INPUT mode there is a trickle current and it is more than needed by the SSR.
I am quite positive that if you switch on the pull'up and connect to +24VDC it should go off.
Did you test it on different outputs?
It could be that particular I/O is partly damaged,
Il 10 dicembre 2016 alle 10.54 Hsieh Chieh Huei <albertlt@industruino.com> ha scritto:Fyi, I connected one dio port to 24Vdc Relay coil and set the mode to INPUT. The relay also turned on permanently, as long as IND I/O is on.
--
Hsieh Chieh Huei
Sent by Industruino using Odoo
Okay, the mechanical relay type is 24Vdc, Schneider, Type RXM2AB2BD. Thanks a lot for your help, Stefano. It should do for now. Next, I will check if using mechanical interlock will guarantee prevention of both contactors from turning on at the same time.
That is a very good suggestion. It indeed solved all problem and I now have much more confident that those contactors won't have any chance to short again. Tomorrow I will rewire everything. Thanks a lot for the suggestion. I wish I could mark your comment as answer but unfortunately I dont have enough karma to do that =(
This sounds very strange to me. Computing speed is so much higher than switching speed of contactor that if that was the case they would just tick in the worst case. So I think we should investigate more deeply in the computational part of the issue. The I/O chip is the NXP PCA9555BS, of which you can find the datasheet. I am totally positive that on power-on all I/O is configured as input, so unless there is any reason in the discrete hardware to revert that, I don't think that is possible at all. One fact to keep in mind always when operating an Industruino is that it is a two-board machine. This is very good in terms of safety and noise reduction, but it is possible to run in one of two mistakes when connected to USB: 1) when connected to USB only, the CPU will compute but nothing will come out of the I/O. Switching on the I/O power afterwards will not initialize the I/O properly. 2) when powering I/O with USB connected, the I/O will be in a random state because the CPU will not execute setup(). Before getting into strange hardware issues, I would check the software against these conditions, also related to sensors, and generally to see if something has been missed. But of course the Industruino team will run a series of tests and answer on this issue more properly.
This problem seemed a serious issue at start, but as usually happens, it was due to a incorrect application.
A system should be designed to make it impossible to get damaged in case of a faulty condition, and this system was not.
I also happened to burn contactors in big power generators, because start-up current is tenfolds operating current.
But in this case the problem was a redundant projects, in that part of the circuit would wire the motor one way and another part in the opposite way, so when both were switched on for whatever reason, disaster occurred.
After checking all possible causes, which are enumerated earlier, this was the final solution:
-------------------------------------------------------------
Simple answer would be:
output 1 = on/off
output 2 = direction
rather than
output 1 = forward
output 2 = reverse
That would avoid any type of problem!
-----------
Re: the type of relay used, it has a minimum operation current of 10 mA, or 240mW@24Vdc.
I don't know if this is somehow comparable with the leak current of I/O, but I don't think so, unless as I said something was damaged.
Your answer
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
Keep Informed
About This Forum
This community is for professionals and enthusiasts of our products and services.
Read GuidelinesQuestion tools
Stats
Asked: 12/9/16, 11:07 AM |
Seen: 8220 times |
Last updated: 12/10/16, 3:30 PM |
Very interesting! For one thing, as you are working with SSRs, why don't you just connect them the opposite way, ie. to +24VDC and reverse logic? Second, you set OUTPUT and then write LOW. Why don't you do the opposite? You are just filling registers here, so maybe writing LOW before writing OUTPUT could do the trick. In case of reverse logic, you would write HIGH, but from your tests it seems that you can just write nothing if you reverse. Anyhow I would write something before setting OUTPUT, to make sure you avoid random states. Third, it is very strange that on a INPUT you are getting a voltage, unless pull-ups are on, which could be at startup. Maybe the SSRs are just too sensitive, switching on just the pull-up current.