LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

grounding/shielding problem, or something else?

Hi

I have written a program which utilises the PID tookit control the
temperature of a furnace. The program was written on a PC which had a
PCI-MIO-16XE card, attached to a SCXI-1000 box which contained SCXI-1102,
SCXI-1303, and SCXI-1302 module/accesories.

Now the program is finished we want to be able to put it onto another
computer, which has a different card in it. The card in the other computer
is a 6052-E which is connected to a CB-68LP connector block.

Since we have been using the new set-up we have been encountering quite a
lot of problems, which I think are arising from grounding or shielding
problems. We did have some grounding problems on the previous set-up, which
we cured by attaching the furnace to the GND pin of the SCXI-1303.


On the board we have a K-type thermocouple input, the positive lead being
connected to pin 65 and the negative to pin 31, and the channel called
"furnace". A LM35 temperature sensor provides the cold junction
compensation. A channel called "out" has been set-up as DAC0OUT, with the
positive lead being attached to pin 22 and the negative to 55. This provides
the input to the phase-angle board which powers the furnace.

The PID software uses the value from "furnace" as the process variable and
the output is sent to the channel "out". This set up has worked perfectly on
the previous computer, and we obtained temperature control of +/- 0.1 deg C.

In the new system, as soon as the power is supplied to the furnace, the
thermocouple reading goes extremely erratic (moving around by +/- 10 degs or
so), and the PID loop cannot control. This is where we get stuck - the
CB-68LP does not have just one GND pin, but several AIGND's, AOGND's, and
DGND's. Which one do we use? Are they all at the same ground-level?

We tried attaching our grounding wire to pin 55 (to make it have the same
ground as channel "out"). This helped matters quite a lot, and the
thermocouple reading no longer jumps about all over the place, but we are
still left with another problem. The PID loop still cannot control the
temperature of the furnace very well, and it oscillates around the
set-point. I have not changed the PID values which I obtained from the
previous set-up which gave very good control, and I don't think the
parameters would have to be changed just because we have changed computers
(I have tried changing them anyway, with no improvement). What I think is
happening is this.......

The thermocouple is not at the same ground as the furnace (which it is
connected to), and when power is put into the furnace a current is produced
in the thermocouple which distorts its value (it lowers it). So when the PID
loop decides more power is required, it increases the voltage output of
"out", but this actually makes the temperature apparently fall (because the
thermocouple value is being distorted), and so the PID loop puts in even
more power (because it is still trying to heat the furnace up). Eventually
it puts in so much power that the temperature reading finally begins to
increase. The loop then reduces the power to the furnace (because it can now
see the temperature rising) and the thermocouple reading is no longer being
distorted and the true value is given, which is actually much higher than it
was displaying whilst the power was being applied. This process repeats and
what you end up with is oscillations of several degrees around the
set-point.

We have tried to ground the negative side of the thermocouple (we tried all
3 grounds, AIGND, AOGND, DGND) and all this does is make the thermocouple
reading so noisy to be unusable.

Is it possible that we are suffering because the CB-68LP connector block is
unshielded? We did not have any of these problems when we were using the
SCXI set-up. Do you think we would benefit if we upgraded to the SCB-68
connector block which is shielded? Or do you think the problem I have
described is nothing to do with shielding/grounding, and the cause lies
elsewhere?

I am sorry this mail is so long, but I thought I should give you all of the
information!

Thanks,

Jon Atkinson
0 Kudos
Message 1 of 4
(3,117 Views)
Jon,

The first question I have is how your cold junction compensation IC is
connected to the acquisition board (what pins)? From what I can tell
from the E series manual, there shouldn't be any problem if you have
your inputs configured as differential.

A clear explanation of what each of these pins on the acquisition board
do is on the NI website. Get the manual for the E series DAQ cards.
That will explain what all the GNDs are.

Where I'm going with my thinking is whether the problem is with the
thermocouple or CJC. With SCXI, most of them have on-board CJC. If
the CJC voltage drifts and the thermocouple does not, the software
thinks the temperature has changed, so it would be beneficial to know
which end is causing the problem.

Mark

In article <941tmg$ou6$1@usenet.bham.ac.uk>,
"Dr Jon Atkinson" wrote:
> Hi
>
> I have written a program which utilises the PID tookit control the
> temperature of a furnace. The program was written on a PC which had a
> PCI-MIO-16XE card, attached to a SCXI-1000 box which contained SCXI-
1102,
> SCXI-1303, and SCXI-1302 module/accesories.
>
> Now the program is finished we want to be able to put it onto another
> computer, which has a different card in it. The card in the other
computer
> is a 6052-E which is connected to a CB-68LP connector block.
>
> Since we have been using the new set-up we have been encountering
quite a
> lot of problems, which I think are arising from grounding or shielding
> problems. We did have some grounding problems on the previous set-up,
which
> we cured by attaching the furnace to the GND pin of the SCXI-1303.
>
> On the board we have a K-type thermocouple input, the positive lead
being
> connected to pin 65 and the negative to pin 31, and the channel called
> "furnace". A LM35 temperature sensor provides the cold junction
> compensation. A channel called "out" has been set-up as DAC0OUT, with
the
> positive lead being attached to pin 22 and the negative to 55. This
provides
> the input to the phase-angle board which powers the furnace.
>
> The PID software uses the value from "furnace" as the process
variable and
> the output is sent to the channel "out". This set up has worked
perfectly on
> the previous computer, and we obtained temperature control of +/- 0.1
deg C.
>
> In the new system, as soon as the power is supplied to the furnace,
the
> thermocouple reading goes extremely erratic (moving around by +/- 10
degs or
> so), and the PID loop cannot control. This is where we get stuck - the
> CB-68LP does not have just one GND pin, but several AIGND's, AOGND's,
and
> DGND's. Which one do we use? Are they all at the same ground-level?
>
> We tried attaching our grounding wire to pin 55 (to make it have the
same
> ground as channel "out"). This helped matters quite a lot, and the
> thermocouple reading no longer jumps about all over the place, but we
are
> still left with another problem. The PID loop still cannot control the
> temperature of the furnace very well, and it oscillates around the
> set-point. I have not changed the PID values which I obtained from the
> previous set-up which gave very good control, and I don't think the
> parameters would have to be changed just because we have changed
computers
> (I have tried changing them anyway, with no improvement). What I
think is
> happening is this.......
>
> The thermocouple is not at the same ground as the furnace (which it is
> connected to), and when power is put into the furnace a current is
produced
> in the thermocouple which distorts its value (it lowers it). So when
the PID
> loop decides more power is required, it increases the voltage output
of
> "out", but this actually makes the temperature apparently fall
(because the
> thermocouple value is being distorted), and so the PID loop puts in
even
> more power (because it is still trying to heat the furnace up).
Eventually
> it puts in so much power that the temperature reading finally begins
to
> increase. The loop then reduces the power to the furnace (because it
can now
> see the temperature rising) and the thermocouple reading is no longer
being
> distorted and the true value is given, which is actually much higher
than it
> was displaying whilst the power was being applied. This process
repeats and
> what you end up with is oscillations of several degrees around the
> set-point.
>
> We have tried to ground the negative side of the thermocouple (we
tried all
> 3 grounds, AIGND, AOGND, DGND) and all this does is make the
thermocouple
> reading so noisy to be unusable.
>
> Is it possible that we are suffering because the CB-68LP connector
block is
> unshielded? We did not have any of these problems when we were using
the
> SCXI set-up. Do you think we would benefit if we upgraded to the SCB-
68
> connector block which is shielded? Or do you think the problem I have
> described is nothing to do with shielding/grounding, and the cause
lies
> elsewhere?
>
> I am sorry this mail is so long, but I thought I should give you all
of the
> information!
>
> Thanks,
>
> Jon Atkinson
>
>


Sent via Deja.com
http://www.deja.com/
0 Kudos
Message 2 of 4
(3,117 Views)
In general, what you are doing should be fine if you:
insure that the thermocouple is isolated from all potentially conducting
parts
connect to A/D differentially ( you have already done this)
provide a balanced resistance path to AIGND from both legs of TC (100K Ohm
from each leg to AIGND) to prevent "floating" the signal outside the common
mode voltage.
set the A/D gain high enough to maximize the range of the expected TC mV
level (50 mV for example)
aquire multiple points and average or median average the buffer (like 1000
samples at 1000 samples/sec)
this should produce a stable reading.
you can collect both the CJC channel and the data channel continuously at
this rate and pick off the data in 1 sec blocks.
Since you have eliminated any ground loop by isolating the TC, you should
have a true signal.
I would expect the sample to sample variation to be less than .1 degree.
Stu

"Dr Jon Atkinson" wrote in message
news:941tmg$ou6$1@usenet.bham.ac.uk...
> Hi
>
> I have written a program which utilises the PID tookit control the
> temperature of a furnace. The program was written on a PC which had a
> PCI-MIO-16XE card, attached to a SCXI-1000 box which contained SCXI-1102,
> SCXI-1303, and SCXI-1302 module/accesories.
>
> Now the program is finished we want to be able to put it onto another
> computer, which has a different card in it. The card in the other computer
> is a 6052-E which is connected to a CB-68LP connector block.
>
> Since we have been using the new set-up we have been encountering quite a
> lot of problems, which I think are arising from grounding or shielding
> problems. We did have some grounding problems on the previous set-up,
which
> we cured by attaching the furnace to the GND pin of the SCXI-1303.
>
>
> On the board we have a K-type thermocouple input, the positive lead being
> connected to pin 65 and the negative to pin 31, and the channel called
> "furnace". A LM35 temperature sensor provides the cold junction
> compensation. A channel called "out" has been set-up as DAC0OUT, with the
> positive lead being attached to pin 22 and the negative to 55. This
provides
> the input to the phase-angle board which powers the furnace.
>
> The PID software uses the value from "furnace" as the process variable and
> the output is sent to the channel "out". This set up has worked perfectly
on
> the previous computer, and we obtained temperature control of +/- 0.1 deg
C.
>
> In the new system, as soon as the power is supplied to the furnace, the
> thermocouple reading goes extremely erratic (moving around by +/- 10 degs
or
> so), and the PID loop cannot control. This is where we get stuck - the
> CB-68LP does not have just one GND pin, but several AIGND's, AOGND's, and
> DGND's. Which one do we use? Are they all at the same ground-level?
>
> We tried attaching our grounding wire to pin 55 (to make it have the same
> ground as channel "out"). This helped matters quite a lot, and the
> thermocouple reading no longer jumps about all over the place, but we are
> still left with another problem. The PID loop still cannot control the
> temperature of the furnace very well, and it oscillates around the
> set-point. I have not changed the PID values which I obtained from the
> previous set-up which gave very good control, and I don't think the
> parameters would have to be changed just because we have changed computers
> (I have tried changing them anyway, with no improvement). What I think is
> happening is this.......
>
> The thermocouple is not at the same ground as the furnace (which it is
> connected to), and when power is put into the furnace a current is
produced
> in the thermocouple which distorts its value (it lowers it). So when the
PID
> loop decides more power is required, it increases the voltage output of
> "out", but this actually makes the temperature apparently fall (because
the
> thermocouple value is being distorted), and so the PID loop puts in even
> more power (because it is still trying to heat the furnace up). Eventually
> it puts in so much power that the temperature reading finally begins to
> increase. The loop then reduces the power to the furnace (because it can
now
> see the temperature rising) and the thermocouple reading is no longer
being
> distorted and the true value is given, which is actually much higher than
it
> was displaying whilst the power was being applied. This process repeats
and
> what you end up with is oscillations of several degrees around the
> set-point.
>
> We have tried to ground the negative side of the thermocouple (we tried
all
> 3 grounds, AIGND, AOGND, DGND) and all this does is make the thermocouple
> reading so noisy to be unusable.
>
> Is it possible that we are suffering because the CB-68LP connector block
is
> unshielded? We did not have any of these problems when we were using the
> SCXI set-up. Do you think we would benefit if we upgraded to the SCB-68
> connector block which is shielded? Or do you think the problem I have
> described is nothing to do with shielding/grounding, and the cause lies
> elsewhere?
>
> I am sorry this mail is so long, but I thought I should give you all of
the
> information!
>
> Thanks,
>
> Jon Atkinson
>
>
Stu
0 Kudos
Message 3 of 4
(3,096 Views)
The point is you have three optionsfor signal refence to ground.
1) AIGND, AOGND, DGND pins are exactly the same thing, i.e. the so called refenced single ended.
2) Ai-sense pin is for non referenced single ended.
3) The third way is differential.
The ref and non-ref single-ended are the same thing but referenced s.e. is connected to PC ground.
The first thing to remember is that hardware connections (cables and pins) MUST MATCH software configuration (from MAX and/or from within Labview). This can be tricky, especially when using high-level AI Vi's, which don't allow coupling settings, but use Max ground configuration, whose default is differential.
Anyway follow these rules:
a) use referenced s.e. (aignd) if your sensors don't have a ground of their own. This
way you'll have your sensor (all sensors!!!) referenced to PC ground
b) use non referenced s.e. (ai sense) if your sensors have a ground reference on their own and this reference is not the same of PC. Anyway remember that the voltage of signals MUST be within 11 V of PC reference.
c) use differential ONLY when sensors have different ground reference from each other and from PC. Remember the 11 V from PC!!(eventually use bias resistors as suggested in manuals).

Remember also that you can guess there's a ground loop if you see a 50 (60) Hz signal.


hope this helps

giovanni moschioni, italy
Message 4 of 4
(3,096 Views)