First of all a couple comments about your code,
1)As much as possible you should avoid having dataflow (wires) from right to left, it is quite confusing. You do this with your read string, and you dont need to, you could compress the top half towards the left and compress the bottom half to the right. You do it again with the output of your shift register.
2)Since you preinitialized your array with a constant (I assume of size 10) (btw you could have used initialize array to make it clearer, and easier if you ever have to initialize a much larger array), you shouldnt use build array, you should use replace array subset, and replace at the index of i, otherwise you lose all benefit of preinitializing. In addition this will eliminate the need for your array subset. You start with an array of size 10, since you use build array instead of replace array subset, you end with an array of size 20 (which is why you use array subset). Eliminate build array and the subset.
3) What is the big loop doing?? If you are using it like you did in your original diagram, it isnt really achieving anything.
4) I assume that your graph is off in another loop (presumably the one that your double is heading too). That is why it is updating so slowly, because the other loop wont start until this loop completes. Move the graph into THIS loop, it will update every iteration (Although if you have a wait time of 1 minute... it will still update very slowly).
Implement that and it should clear up your code a lot and solve your problems.
Jeff
Using Labview 7 Express