Text this: Design and implementation of O-PAS user-defined function blocks