Hi Dave,
I have a example that i have written by my self some time ago.
You have to make first a few symbolic names, they are given in the start of the file thats hereby. This is because SCL couldn't have Global Data 
The example have ANY-pointers and also indirect BOOL / INT / WORD / DWORD and REAL examples. When you don't understand a thing please ask me 
The next sentence is a good example for a REAL indirect:
WORD_TO_BLOCK_DB(BufferTo.DB_Number).DD[ByteNrTo] := WORD_TO_BLOCK_DB(BufferSource.DB_Number).DD[ByteNrSource];
{this is a sentence from my example}
I hope that the answer will help, if you have still questions, don't hesitate to ask me.
All the best, Late
Never say never, think in solutions, not in trouble......