First off I wouldn't use the flush queue to get the data. Use the Dequeue VI. This is the proper method for removing items from the queue. I would also send a single message to our consumer when you want to update your data. This message would contain the settings for both valve. Your producer loop (the event structure) can use a shift register to hold the intermediary value (the setting for a single valve) and when the user hits the update (or apply or whatever button) to initiate setting the valves you simply enqueue that message. The consumer can actually perform other period tasks if necessary. These could even be triggered via the timeout in the event structure.
For message passing between tasks I like to use a message format would be a cluster that consists of a typedefed ENUM which indicates the message type. A string can also be used for this but I prefer the ENUM. The second element of the cluster would be a variant. This message format is very flexible and will allow your messages to contain data of different types.
Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion
"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot