I am facing a glitch in my code and i am unsure why and unable to figure it out
Description of the error
Type signaldo for left operand of “=” or “<>” operator not value or semi-value type,Data for this message is not saved in any event log
If acknowledged the message will be removed.
Actions:
The “=” and “<>” operators may only be applied to expressions of value or semi-value type. IF comparisons are to be made,srecial type specific predefined functions are needed.
IF DO_Prog_Busy = 1 THEN
Reset DO_Prog_Busy;
ENDIF
the Digital output signal i have is DO_Prog_Busy when i point my cursor on top of “DO_Prog_Busy” in IF statement i get this tag message(type mismatch Expected SignalDO) and if i see the configuration ,the configuration looks good i have the signal type provided as Digital output so I don’t see any problem here either.
please pour in your thoughts
I was just wondering if it had to do anything with the controller because earlier
IF DO_Prog_Busy = 1 THEN
Reset DO_Prog_Busy;
ENDIF
this statement was working absolutely fine
Asking This as I am Just inquisitive in knowing more things
All I/O signals are now of semi-value type
All signals are now of semi-value type.
The previous behavior was that signalxo was of non-value data type. Thus, data of this type does not permit value - oriented operations.
It is now possible to do like this in RAPID:
mynum:=do1;
and
IF do1 = 1 THEN
Before the change you needed to use the functions DOutput, GOutput, AOutput and GOutputDnum to get the value of an output signal.
The functions mentioned above are still supported.