schedulers - DeltaV14+

Hello,

Anyone knows what will happen with iFix schedulers functionality once iFix will be not included in DeltaV package any more? If there is a way to run them somehow outside of iFix?

Regards

9 Replies

  • There are timers that can be created in DeltaV Live Layouts that can run script periodically, what functionality are you using the Schedule in iFix for?
  • In reply to Matt Stoner:

    Integer to string on value change conversion and send it back to the controller. This is done for few hounded parameters. I think time based functionality of my schedulers is not an option as this will bring some significant load to the controller and workstation.
  • In reply to Sebastian:

    I know there has been others discussing/requesting the Event type but I'm trying to understand what is actually being done to maybe suggest a method that could be used in Live.
    What is the conversion doing that requires VB logic in a schedule to do that couldn't be done in the controller?
  • In reply to Matt Stoner:

    We have mg vale represented by 32bit signed or unsigned integer on which we are providing controller calculations. Once value is processed it is being read by a scheduler and converted to string to represent it in grams and then string is being send to the controller for reporting purposes. Floating point is not an option as in some point it is getting rounded, which is not acceptable for our process.
  • Hi All,

    Any luck with use of Scheduler script for Live?
    I am trying to use the Alarm Statistics module with DeltaV Live. The iFix scheduler used to read the HH parameter from the module and run the script in Operate. Is there an equivalent functionality available in Live?
    Since this is event based script, I doubt timers will be of much use here.

    Thanks,
    - Amod.
  • In reply to amodbobade:

    Hi. I'm no expert at this, but I just realized the Timer has an Active property, and it can be animated. While Active is true, it will execute its script on the time base. While Active is false, it does nothing. I've animated Active to a boolean variable that is set by another variable's OnWrite script, then reset that boolean in the Timer's script. In my case, the other variables Value is animated to a datalink, so that its OnWrite script is triggered when the datalink's value is changed. Effectively, this arrangement is an OnChange event like we have in Operate. Play with it, I think you can make it work for you.
  • In reply to amodbobade:

    amodbobade, did you resolve this? I've been toying with this. My approach is to use the DTE block to create a timed event that sets a module parameter. I have this in the Alarm Statistics module. In Live I monitor with a display variable with an OnWrite script. When the DTE sets the parameter true, I run the script to gather the alarm counters for the module and write them to the module. The script only gathers the data when the parameter is true. The Script also resets the event so that the module knows the script fired. The script does nothing when the parameter changes back to 0.

    By using a module to define various events, multiple consoles can detect the event trigger that fires the OnWrite script. I'm thinking of using the module as my scheduler, running in a controller with a CALC block to manage the DTE's to ensure they are initialized correctly on download. This way, events are also available to be used in control modules, based on a pulsed Off Delay block on the signal signal when the DTE fires.

    Andre Dicaire

  • In reply to Daniel Parrish:

    Daniel, In case you have not noticed, the timers in Live are limited to 65535 milliseconds, which is a max of 65 seconds, so basically a minute. The Help in the timer value field indicates a 32 bit integer, but the value is limited to that of a 16 bit integer. If you want to fire a timer over a longer period, you have to use a counter and add up the minutes with some logic before executing the real code.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Thanks Andre! I hadn't realized that yet. So far, I've only used the Timer to execute OnChange code once on data change, and only because it looks like in an OnWrite script (were I'd planned on putting the code), we're not allowed to use await ReadAsync functions. I made another post about that to see what the community knows/thinks. Thanks for the heads up on the timer limitation.

    -Daniel