Function block for numeric input in Centum VP HMI

I have a query regarding a programming problem in Yokogawa Centum VP.
I want to make a program that gets numerical input from the 'Operator' thru HMI and uses CALCU block to make some SEBOL calculation and then shows the result on the HMI. For user/operator input numeric value I am using MLD Block. But the problem with the MLD block is that it cannot take value larger than '100' and less than '0'. Kindly guide me, what function block or method should I use to get any numeric value (signed/unsigned) from the user/operator and get it utilized in CALCU block formula.
 
That would be more clear to get a picture of what you intending to do...
Like telling us teh system/subsytem that you are talking about...

There is a short example on SEBOL programming in you tube for a Air dryer separator.. on you tube, youcan search on this one see if can help you..
 
That would be more clear to get a picture of what you intending to do...
Like telling us teh system/subsytem that you are talking about...

There is a short example on SEBOL programming in you tube for a Air dryer separator.. on you tube, youcan search on this one see if can help you..
Dear ControlsGuy25, It is not any specialized System/subsystem. It is rather a simple calculator, embedded in an HMI. I am attaching a diagram with this 'Reply' for your understanding.
Also, can you give me the link of that YouTube video that you have mentioned above ?
 

Attachments

Dear Sammi Khan,

Thanks for clarifying...

Check this video for SEBOL programming...it is not including lots informations but it give some details...:
https://www.youtube.com/results?search_query=sebol+air+dryer

I would suggest you to get the Right technical manual like "SEBOL reference manual "
There a bunch of Centum manual on the web try to find the right one...

I will have a closer view on your last post see if I can add some notes..

James
 
I have a query regarding a programming problem in Yokogawa Centum VP.
I want to make a program that gets numerical input from the 'Operator' thru HMI and uses CALCU block to make some SEBOL calculation and then shows the result on the HMI. For user/operator input numeric value I am using MLD Block. But the problem with the MLD block is that it cannot take value larger than '100' and less than '0'. Kindly guide me, what function block or method should I use to get any numeric value (signed/unsigned) from the user/operator and get it utilized in CALCU block formula.
 
Dear Sammi Khan,

Depending on the type of calculation you want to do, it is possible to use a _SFCSW block. Create a Sebol logic in this block to send a pop-up to the operator to enter the value and return another pop-up with the result of the calculation.
Or create a field on the HMI for the operator to enter the value, click on a button to receive the result
Ex: The operator types the PH result, and receives a pop-up with the amount of raw material to be added.
The value entered by the operator and the result of the calculation can be saved in variables created in the DATA ITEM of the _SFCSW block. in format (Integer, Float, String).
If you are using batch, the code would be the same only change the type of block.
let me know if you want to know more about _SFCS, I can create a practical example.
 
Hello Sammi, the operator data entry for a calculation can be done in many ways, depending on your needs and preferences. Data entry for some data items varies greatly, from unbounded, subject to a scale hard limit, or subject to an advisory soft limit.



Here are some examples, non-exhaustive. (Ordered by simplicity, not effectiveness.)

These assume the primary interaction is using a graphic, and not the function block faceplate and not the function block tuning panel. The DSET or MLD type examples are richer for the data entry dialog.



Any data entry limiting functions mentioned are constrained by the function block. (Graphic functions can optionally use more restrictive limits, though should not rely on that as the faceplates / tuning panels can potentially be directly accessed.)



For the examples, where scales or limits are applicable, I will use as an example:

Constraining data entry to -50 to 150

Warning limits beyond -20 to 120 though if supported, will let the user proceed with a value within scale.

Your choice of engineering unit.



Directly enter to the CALCU’s P0n tuning parameter (P01 – P08).

Convenient as part of the CALCU block.

Minor downsides: Data entry unbounded (no scale nor limits); whereas overriding with configuration logic can detract from the user experience.

Convenience is the main attraction, not functionality.





Use a BDSET-2L or BDSET-1L block for data entry, providing for 16 (or 32) data items. Such as DTnn (DT01 – DT16).

The scale is controlled by DHnn and DLnn tuning parameters.

For DT01, DH01 = 150.0, DL01 = -50.0, no warning limits.

Wiring example: MYBDSET.DT01 -> MYCALCU.IN

Alternatively, with more logic and a different connection type, the BDSET can fire a value (if you want more control when the value takes effect).

BDSET blocks are efficient, and useful for standard purposes when combined with graphics.

Though less specific in dialogs (as comment will be for the group, and no engineering unit).





Use a DSET or DSET-PVI block for data entry, for the SV data item.

The scale (and engineering unit) is hard-coded when configuring, Scale High: 150.0, Scale Low: -50.0, select an Engineering Unit Symbol.

The tuning parameters for the warning limits are SVH = 120.0, SVL = -20.0

Wiring example: MYDSET.SV -> MYCALCU.IN

The warning provides a much better user experience, as well as the specific comment and engineering unit.

Not as efficient though desirable when richer dialog needed when entering data, not relying solely on what shown on the graphic.





Use a MLD, MLD-PVI, (less so MLD-SW) block for data entry, for the MV data item.

The DSET example is simpler, though very similar apart from setup.

The MV Display Scale (and engineering unit) is hard-coded when configuring, by overriding the Output configuration using MV Display Style: User Defined, MV High Limit: 150.0, MV Low Limit: -50.0, select a MV Engineering Unit Symbol.

The tuning parameters for the warning limits are MH = 120.0, ML = -20.0

For faceplate display purposes only, can also set the output limit indexes (these indicate only, are not limits), to say a more typical operating range, OPHI = 110.0, OPLO = -10.0 or whatever is helpful.

Wiring example: MYMLD.MV -> MYCALCU.IN

MLD type functionality similar or slightly richer than DSET; though configuration settings a bit more hidden.



Your initial attempt with the MLD was likely unsuccessful, as depending how connected, the Output Range Tracking and MV Display Style: Automatic Determination would fail. Automatic Determination is useful for a wide range of other situations, as the information is grabbed from the connected destination. However, the CALCU inputs lack engineering limits and engineering unit symbols, so the block will use 0 – 100 and EngUnit symbol %.





SEBOL / SFC is even richer with potentially SEBOL dialogues; and Unit Instrument User Defined Data Items.

The CALCU structured text scripting is not SEBOL (though like a very small subset).





For your information: The graphic have come limited capabilities for calculating expressions defined in the graphic. However, the user data entry still relies on FCS data. And doing the calculation within the FCS may have some useful spinoffs for using the information.





Errors & omissions apply.





[ENDs]
 
Dear Sammi Khan,

Depending on the type of calculation you want to do, it is possible to use a _SFCSW block. Create a Sebol logic in this block to send a pop-up to the operator to enter the value and return another pop-up with the result of the calculation.
Or create a field on the HMI for the operator to enter the value, click on a button to receive the result
Ex: The operator types the PH result, and receives a pop-up with the amount of raw material to be added.
The value entered by the operator and the result of the calculation can be saved in variables created in the DATA ITEM of the _SFCSW block. in format (Integer, Float, String).
If you are using batch, the code would be the same only change the type of block.
let me know if you want to know more about _SFCS, I can create a practical example.
Hi Adriano.s

Bro, I used DSET block for data entry and CALCU block for formula implementation. DSET block gave me my desired input value scale and solved my problem quickly.
Thanks for your concern.
 
Hello Sammi, the operator data entry for a calculation can be done in many ways, depending on your needs and preferences. Data entry for some data items varies greatly, from unbounded, subject to a scale hard limit, or subject to an advisory soft limit.



Here are some examples, non-exhaustive. (Ordered by simplicity, not effectiveness.)

These assume the primary interaction is using a graphic, and not the function block faceplate and not the function block tuning panel. The DSET or MLD type examples are richer for the data entry dialog.



Any data entry limiting functions mentioned are constrained by the function block. (Graphic functions can optionally use more restrictive limits, though should not rely on that as the faceplates / tuning panels can potentially be directly accessed.)



For the examples, where scales or limits are applicable, I will use as an example:

Constraining data entry to -50 to 150

Warning limits beyond -20 to 120 though if supported, will let the user proceed with a value within scale.

Your choice of engineering unit.



Directly enter to the CALCU’s P0n tuning parameter (P01 – P08).

Convenient as part of the CALCU block.

Minor downsides: Data entry unbounded (no scale nor limits); whereas overriding with configuration logic can detract from the user experience.

Convenience is the main attraction, not functionality.





Use a BDSET-2L or BDSET-1L block for data entry, providing for 16 (or 32) data items. Such as DTnn (DT01 – DT16).

The scale is controlled by DHnn and DLnn tuning parameters.

For DT01, DH01 = 150.0, DL01 = -50.0, no warning limits.

Wiring example: MYBDSET.DT01 -> MYCALCU.IN

Alternatively, with more logic and a different connection type, the BDSET can fire a value (if you want more control when the value takes effect).

BDSET blocks are efficient, and useful for standard purposes when combined with graphics.

Though less specific in dialogs (as comment will be for the group, and no engineering unit).





Use a DSET or DSET-PVI block for data entry, for the SV data item.

The scale (and engineering unit) is hard-coded when configuring, Scale High: 150.0, Scale Low: -50.0, select an Engineering Unit Symbol.

The tuning parameters for the warning limits are SVH = 120.0, SVL = -20.0

Wiring example: MYDSET.SV -> MYCALCU.IN

The warning provides a much better user experience, as well as the specific comment and engineering unit.

Not as efficient though desirable when richer dialog needed when entering data, not relying solely on what shown on the graphic.





Use a MLD, MLD-PVI, (less so MLD-SW) block for data entry, for the MV data item.

The DSET example is simpler, though very similar apart from setup.

The MV Display Scale (and engineering unit) is hard-coded when configuring, by overriding the Output configuration using MV Display Style: User Defined, MV High Limit: 150.0, MV Low Limit: -50.0, select a MV Engineering Unit Symbol.

The tuning parameters for the warning limits are MH = 120.0, ML = -20.0

For faceplate display purposes only, can also set the output limit indexes (these indicate only, are not limits), to say a more typical operating range, OPHI = 110.0, OPLO = -10.0 or whatever is helpful.

Wiring example: MYMLD.MV -> MYCALCU.IN

MLD type functionality similar or slightly richer than DSET; though configuration settings a bit more hidden.



Your initial attempt with the MLD was likely unsuccessful, as depending how connected, the Output Range Tracking and MV Display Style: Automatic Determination would fail. Automatic Determination is useful for a wide range of other situations, as the information is grabbed from the connected destination. However, the CALCU inputs lack engineering limits and engineering unit symbols, so the block will use 0 – 100 and EngUnit symbol %.





SEBOL / SFC is even richer with potentially SEBOL dialogues; and Unit Instrument User Defined Data Items.

The CALCU structured text scripting is not SEBOL (though like a very small subset).





For your information: The graphic have come limited capabilities for calculating expressions defined in the graphic. However, the user data entry still relies on FCS data. And doing the calculation within the FCS may have some useful spinoffs for using the information.





Errors & omissions apply.





[ENDs]
Hi FlashL,

Bro, I used DSET block for data entry and CALCU block for formula implementation. Used SV variable of DSET block for data entry, unlike MV variable of MLD block. DSET block gave me my desired input value scale (i.e., from -ve values to above 100 values) and solved my problem easily. MLD block has limitation of 0 to 100 values.
Thanks for your concern.

With Regards....
Sammi
 
Hi FlashL,

Bro, I used DSET block for data entry and CALCU block for formula implementation. Used SV variable of DSET block for data entry, unlike MV variable of MLD block. DSET block gave me my desired input value scale (i.e., from -ve values to above 100 values) and solved my problem easily. MLD block has limitation of 0 to 100 values.
Thanks for your concern.

With Regards....
Sammi
Hi Sammi, I am glad you have a way that suits you, in this case using the DSET for ease of setup. Next as a refinement, I suggest you consider setting up the DSET data entry warning limits within the larger accepted scale.

(Aside: Agree that DSET is much simpler and better suited for your application, compared with an MLD. Whilst it is possible to overcome the MLD MV range limitations other than 0-100% in your application, it requires uncommon MLD configuration which is more difficult to maintain.)

[ENDs]
 
Top