But if for some reason you can't use different coordinate tags, then you can just add the P-variables you're using. So for exampe you start the weld with SSFTON P30 but then you need to shift it further by P40 without the P30 shift being canceled:
SFTON P30
MOVL (weld start)
ARCON
ADD P30 P40
SFTON P30
MOVL
In this example ADD instruction will overwrite the P30 values, so if you need to keep the original P30 value use SET instruction to copy it to some other P-variable and use that:
SFTON P30
MOVL (weld start)
ARCON
SET P20 P30 (I use P20 as my temporary P-variable)
ADD P20 P40
SFTON P20
MOVL
In this case it works even if the operator (for whatever reason) runs through the lines multiple times.
I have found that (atleast on DX200) depending on the Arc Retry parameter value (S1D225) the robot can actually freeze (restart required) if Arc Retry is executed at the start of the weld where there are arithmetic instructions used with P-variables right after the start of the weld. So both these examples can cause this. To avoid this I write the arithmetic instructions before the start of the weld:
SET P20 P30
ADD P20 P40
SFTON P30
MOVL (weld start)
ARCON
SFTON P20
MOVL
As for custom touch sense jobs - pretty much anything is possible. Check out my FB page, you'll find two of my custom touch sense job videos there: https://www.facebook.com/people/TeachMode/100064179938247/