I've read all the answers to your question, and they all have merit. I have a subvi that I use. It compares a value to it's previous values, and outputs a true when it has changed.
The inputs can be a boolean array, a numeric array, or a string array, and will report if any item in the array has changed. If you just have a single numeric, boolean, or string, wire that into a create array VI, then the output to the subvi input. Only one input can be used per call.
The subVI is reentrant. Therefore, since it is stored in a different memory location for each call, the shift registers which hold the last values are unique to each subVI; therefore, you can use it many times in a single VI with different inputs.
Finally, there is an iteration input. Upon t
he first iteration, a True is output. (This can be changed from within the VI).
Check it out.
Mark