Sparks
The Static variables declaration area of an FB only has 'physical' relevance once you have created an instance data block associated with that FB. All these Static variables are held in there, along with the In, In_Out and Out parameters. Temps are not retained between execution cycles and exist only at the time of execution in memory allocated from the local stack.
So if you have an FB named "Control" which contains a Static variable named "Action", there is no way of addressing an entity called "Control".Action - it has no existence. However when you call "Control" and assign an instance data block called "Valve1", you can then read/write the entity called "Valve1".Action. And so on for "Valve2".Action and any other IDBs etc.
Some people I've spoken to have strong ideas about whether you should control an FB's Static variables from outside that FB. It does seem to be a personal thing. If you want to exchange data between FBs should you formally use declared parameters to do this rather than just poke data in to the Stats? If everything goes via parameters then modularity of code can be much better maintained. However this may not be high up your list of priorities. Reading/writing Stats is perfectly permissible provided you do all the appropriate housekeeping - how many sources are there for the data, how do you prevent overwriting, how do you know when data has been updated etc?
Regards
Ken