Modicon 984 Quirk

Lantheus

Member
Join Date
Apr 2018
Location
North Billerica, MA
Posts
5
So i am a Navy ET and i work for a cyclotron operating company.
we have modicon 984 plc's
i will target the B875-102 fast analog input module but it applies all over.

when our analog inputs drop to 0 the plc register displays 32768 which is full range as far as i know. this means meters and display bars jump to full scale instead of the 0 they should be displaying.

is this just a quirk of modicon or does my company have them set up wrong? is there a way to fix it so 0 really means 0?
 
The explanation is fairly simple, but the fix may not be quite so easy. Your analog values are apparently going slightly negative so the corresponding register value becomes a very high negative value. For example: 0=0000 hex but -1=FFFF hex.
The fix is to have your displays allow for negative values in the analog inputs. This will require program changes.
 
we use wonderware as the HMI and it doesn't seem to play well with mixed negatives and positives in the same register. that is why all our inputs are set to 0-10V it's what gets put out by our vacuum and PS status outputs anyways.

since it is 0-10V how is it going negative? is it some sort of error value?
 
Last edited:
So i am a Navy ET and i work for a cyclotron operating company.
we have modicon 984 plc's
i will target the B875-102 fast analog input module but it applies all over.

when our analog inputs drop to 0 the plc register displays 32768 which is full range as far as i know. this means meters and display bars jump to full scale instead of the 0 they should be displaying.

is this just a quirk of modicon or does my company have them set up wrong? is there a way to fix it so 0 really means 0?


It's not unique to Modicon. In the past, I have moved analog inputs into holding registers and moved a zero into the register whenever the analog input value is <= zero in order to prevent the max value being displayed as an unsigned integer value when the AI value drops below zero.
 
we use wonderware as the HMI and it doesn't seem to play well with mixed negatives and positives in the same register. that is why all our inputs are set to 0-10V it's what gets put out by our vacuum and PS status outputs anyways.

since it is 0-10V how is it going negative? is it some sort of error value?
Most analog modules allow for some over-range because the sensors they are connected to may not be exactly correct. A 0-10 vdc input would typically allow for something like -0.5 to 10.5 vdc. 4-20ma inputs do the same thing if the current gets outside of the expected range.
I have added a zeroing pushbutton function to some systems with analog inputs in the past. Those buttons move the sensor value into a storage register when the button is pressed and then subtract that stored value from all the results to get an accurate zero reading but even that isn't a perfect solution. The method that Bit Bucket 07 suggested would prevent negative values from ever happening.
 
Last edited:
Read up on "twos-complement signed integer" data encoding and how the highest bit is used as a Sign flag.

The analog module probably does support negative voltages, but not by much; as noted maybe -0.5 to -1.0 volts.

If your Wonderware bargraph is expecting an unsigned 16-bit integer or a 32-bit integer, then the Sign bit going true will indicate 32768, not a negative number.

The quick and dirty fix for this is in the PLC code; if the analog input value is ever less than 0, write a 0 into the register that's being read by the HMI.
 
the 102 fast analog has the capability of doing -10 to 10 but it states it does not do under range values (it does a small over range) so idealy the module itself would not go negative. but i guess this is not the case, it goes from 0 to 32768 but it stops there. i was hoping it was a calibration issue.
 
so i am sure i figured out the cause if not the solution.

per the 800 series io modules with unity manual (page 123) the values under range are clamped (in this case at 0) and it is however bit 15 get flagged for out of range. if you take all the bits as one number you get 32768 (0b100000000000000) it is what it is but it seems frustrating that you would have to clear out the top two bits of every register you use before you can use it. especially when i can find no mechanism to do it except add logic for each and ever address maually.

ps currently using PLC Workship-32 for modicon by fastrak and wonderware InTouch HMI

does anyone know of a wonder ware way to load the register and dump the top two bits? i assume PLC Workshop is just a viewer/editor for the logic and addresses and you can't do anything there but add a ton of managing logic.

what is really wierd is even addresses tied to ground show up as the 32768.
 
Last edited:
If you want to strip off the most significant bit (bit 15) in the word perform an AND operation against hex 7FFF. You only want to clear out one bit, not two. Quite often the sixteen bits in a word are numbered from zero to fifteen rather than from one to sixteen.
Result = Raw Value AND 7FFF
 
bit 14 is not part of the register value either. although i can find no mechanism that sets it as 1 it's best to clear it out as well. but it seems ridiculous to to add logic for each and every value manually just to use it.
 

Similar Topics

Hi, Seeking consultation on an implementation matter, and have a question about Modicon Compact 984 communication through RS485: Three Modicon...
Replies
4
Views
126
Hi I have a modicon 984 with proworx 32 that is scaling an analog input, and I need to adjust the scaling. I have new analog input values and %...
Replies
3
Views
1,706
Hi, I am trying to get a machine started that was moved from one location to another. It has a Modicon 984-A131 PLC. I have Schneider Electric...
Replies
1
Views
1,003
Dear Friends, I have Schneider PLC which is the world's first one Modicon i need software of Modicon PLC 984,it is known as...
Replies
0
Views
953
I found the below logic in an old program. If I am reading the System Manual correctly, it appears that the UCTR will never count up to 10, since...
Replies
3
Views
1,616
Back
Top Bottom