Sure, just build SIFB_2 as a composite function block type containing
an instance of SIFB_1 type. Then give SIFB_2 just the event and data
inputs that you need for the particular function and connect them to
the appropriate internal SIFB_1 inputs and outputs, and set the
parameters of the internal SIFB_1 instance to implement just the
function that you want. You can even include some signal processing as
necessary to condition the inputs or process the outputs of SIFB_1,
using the available library FBs.
This is assuming, of course, that your implementation supports
multiple instances of SIFB_1. If you have a set of common services
that must be initialized only once, you will have to associate them
with a static variable of the SIFB_1 class and share them among all
instances, checking to see if they have already been initialized when
you process the INIT event of each instance.
Best regards,
Jim Christensen