+1 updated. Why some channels are now yellow?

Pasi Hangasmäki 11 months ago in IQANdesign updated by Gustav Widén (System support) 10 months ago 7

I just updated IQANdesign to Why some of the IDC, SMC and DMAC channels are now yellow?

I have also found that a lot of channels with vector objects are yellow with a warning for unit mismatch, I don't think this has always been the case.

I just simulated, saved and opened the project again and the yellow channels changed back to white again. Strange thing is that one SMC channel changed its name at the same time. The original name was "SM-TRP↔levelled is ready" new name is "SMC and". It's no problem for me just reporting.

Any channel with unit mismatch will stay yellow even after the problem is fixed. It turns white after clicking the channel or running project check.

(Perhaps when there already is a yellow channel on screen, the GUI could be more agressive to recheck channels in the function block after each change?)

After some testing I found the following which I could not clearly see in the manual:

A vector object can not refer to an object on another row within the same channel (for example "Math object A"). If the Input channel to the vector has a unit there will be a unit mismatch, even if for example the "Math object A" adds two values with the correct unit. (Perhaps 5 mm + 10 mm should equal 15 mm? Now it equals just "15").

If any parameter in an Out value of a vector has a unit then all the other parameters must have the same unit, they cannot point to a Math object within the same channel.


I can agree that it would be nice with an instantaneous update after clearing errors and warnings, but I think there is a balance with performance. 

The Vector objects has had a check on units for as long as I can remember. 

But you are right about the calculation objects, unlike channels these do not have any way of setting the unit, so it becomes "Not used". When mixed with a defined unit like % or RPM, that generates a unit mismatch warning.

Yes for sure if every channel is inspected on every change performance would suffer. My suggestion is to just keep a list in memory of maybe 2-5 yellow/red channels that are currently on screen, and only update those on each change.

Not important at all, it would just be a small improvement when refactoring old code ( which I find myself doing a lot :) )

About the unit mismatch when the In points on a Vector is referencing a calculation object. 

This is a relatively new warning, before 6.06 the In points on Vector objects did not have a unit. 

We discussed that check, and came to the conclusion that we should update the check, so this does not trigger a warning. 



For the original question on why channels are yellow, this is an indication of a Project check warning. 

A quick way to bring up the project check when working on the application is Ctrl-F9.

You can also see the description of the project check errors, warnings and hints in the tool-tip that shows up when hovering with the mouse pointer over the channel. 

In version 6.08, there is one new Project check warning, for implicit value type conversion (using e.g. an  integer or real value with a boolean operators and/or)