So, having been using DeltaV for the last two years now, there's a question I have regarding parameter types.
What is the difference between discrete and boolean parameter types?
According to BOL:
• Boolean — a logic value that is True (1) or False (0).• Boolean with Status — a True or False value with status indicator.• Discrete with Status — an unsigned 8-bit integer value with a status indicator. A value of 0 (zero) means False. A value between 1 and 255 means True.
My interpretation, I see Boolean with Status and Discrete with Status as the same thing.
Can someone shed some light on this for me? Thanks
In reply to DBacker:
In reply to Lun.Raznik:
Andre Dicaire
In reply to Andre Dicaire:
In reply to Michael Krispin:
I think during conversion DeltaV just simply put a mask of the target type of 8, 16, 32 Bit and cut therefore the higher numbers . One question I hear very often is what is the difference of ( x <> y ) and ( x != y ) which one is more efficient in execution? I don't know. It were good to know when exactly a possible type conversion happen ether to get the right result. Especially with the view of lost values during masking. BR Michael
Wait til you start playing with Live and find cases that in Java/Typescript where coders use = instead of == for a condition check and the logic actually will do the assignment as part of the condition. Its a legal statement because it checks if the write was successful so there is no warning or error! This happens a lot with the new interface/coders not use to syntax and sometimes very hard to find this depending on what is being written.
At one time I had 2 Provox FST handbooks! I was nice and passed one along (didn't get any money for it either and probably should have ) to someone as these are golden (especially with notes written in them as well!)
The != and <> should be exactly the same and you can tell by parsing expression and comparing the number of bytes used. This is also a way to learn about execution speed. I have seen a lot of code that is: If this, then a=x else do a=y which can be written as a := (this) ? x : y; which is actually executes faster (less bytes). I have also see the same logic with x being True and y being False which can just be a := (this); which is faster as well. Also seen a lot of FB configurations that will actually run faster in an Action block because you can nest the configuration and not execute "function block" logic if it isn't required. Another item is an ACT is less loading than CALC block because it doesn't support INs and OUTs and have the logic associated with reading to the internal variables when starting and writing the outputs when ending. Action blocks can also be turned off so they are not running decreasing the load on the controllers when not needed. Reading parameters multiple times takes time where if you read once and put in an internal variable this will also decrease the load as reading memory is faster than actually going and finding the value over and over again. So I think you have to design/implement based on requirements but there isn't anything really documented on the loading/execution speed unfortunately. Just have to "learn" these with testing to "sharpening the pencil" of configuration for good efficient running logic.
In reply to Matt Stoner:
In reply to dewightrea:
Ed Smigo