Can I make custom function block in DeltaV?

I tried but couldn't find a way making a customized function block in DeltaV. Is it really not possible? 

Note: not looking for class based module.

Let us build success,

Zohaib Jahan

  • In DeltaV, we refer to that as a Composite Template.

    These are stored in the library and contain Function block logic. The connectors are created based on the type of input and output parameters you create. You can then add this Composite block to any module.

    You cannot add these to the Function Block Palette though. You add these to a module through the Special items/Custom Block and there you select the type of block and browse the available Composites that you've created. Once in the module, you connect it as you would a Function block and set the order of execution.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Hi Andre,
    it would be nice if a composite could be compiled for faster execution.
    Once a composite is tested well, then compiling like a normal function block save CPU time and hide the internals better than the actual hide function.
    What do you think?
  • In reply to Michael Krispin:

    Zohaib,
    BTW, these composites can be used to minimize the number of changes needed for parameter security.

    If you had a need for a discrete parameter that an operator may set or reset, or a real number that he may enter data into, you may find yourself often adjusting parameter security to make these various parameters changeable by an operator.

    If you ended up making dozens of such parameters, then you'd find you are having to remember to add them to parameter security.

    These composites make this easy.

    You can create a composite with a single parameter included within, and only that parameter name need be set up in parameter security.

    You can then implement hundreds of instances of that composite, and never have to adjust parameter security again. Each composite instance has its own name in your modules, but the parameters within are all have the same name, therefor no changes are needed to parameter security.
  • In reply to Andre Dicaire:

    Composite templates, hnmm. I'll try creating it definitely. Seems interesting.

    Thanks Andre

    Let us build success,

    Zohaib Jahan

  • In reply to Andre Dicaire:

    Appreciated you, Mr Andre.

    Let us build success,

    Zohaib Jahan

  • In reply to Zohaib Jahan:

    Contrary to what Andre indicated, composites can be added to your palette in Control Studio. Right click anywhere in the palette, then "Create Palette". Name your new palette and click "OK". Under the "Choose from" drop down menu, select the library folder where your composite is saved. Select your composite from the list and click "Add>>" and "OK".
    Viola, now you can drag and drop your composite into a module without the rig moral of browsing for it via Custom Block.

    This method also prevents someone from accidentally over writing your composite when browsing for it, which can happen much too easily in my opinion. To replicate this mistake, drag in a Custom Block, select Linked Composite, then choose New Object instead of Existing Object, browse to your composite in the Library, click OK to the message box and presto, your Library composite is now blank, and everything linked to it is flagged for a download. The message box does ask if you want to replace the composite, but unfortunately our technician thought it was referring to the module instead of the Library.
  • In reply to KeithStThomas:

    Thanks Keith. Always happy to learn something. Or learn it again in this case. I totally agree with you on the accidental overwrite issue. I've not seen any customers or projects in house where this was used. I wonder why it's not more widely seen.

    Anyway, I gave this a try and works great. However, the new palette entries don't seem to show up in a full data base export. If that's the case, this setup is lost on system migrations. Is there a way to preserve the new palette entries and recreate them in a new database? Maybe this explains why I don't see this often.

    Andre Dicaire