I have six machines running concurrently, and they each use two cFP-DI-304s to read proximity switches on valves. So, if the valve is open, it reads one number, if it's closed, it reads another, and if it's interim, it reads zero. The prox switches use two channels apiece, and I can read them in MAX individually, and in my program by reading the entire module and bitmasking the returned data to select the two channels I want. All the machines have worked fine up until this morning.
One of the valves is returning its bitmask instead of it's Open value. For example, say the Open value is normally 4 and the closed value is normally 8. The Open value is now returned as 805306368, or 0x30000000, it's bitmask. This only happens on one of the six machines, so I don't think I changed a setting accidentally.
Has this ever happened to anyone before? None of the wiring has been changed, and the data is verifiable in MAX.