I've been working with (or trying to work with) string instructions for days and I'm coming to the conclusion that the CP1H can't handle more than one string instruction per rung. Even something as basic as CLR$.
Here's and example:
I have a rung that is supposed to reset 3 float (REAL) values and 3 string values. I'm using upward differentiated MOVL instructions to reset the float values and they work every time beautifully. At first I tried upward differentiated CLR$ instructions but when that didn't work I went to the "normal" run-when-true form. It doesn't seem to make a difference. It only resets/clears the first string. I even added a timer latch, set it at 1 second, and it still won't clear the other two strings.
The string instructions tend to run as expected when I use the simulator but any time I try to run them on the controller, inevitably many of them don't seem to want to trigger. If they take excessive time to run, why isn't there a "done bit" available so you can make them run sequentially?