Dividing by zero in an ioControl strategy returns a valid result from a control engine. Dividing a positive integer by zero returns 0x7FFFFFFF, and dividing zero by a negative integer returns 0x80000000.
If a float value is divided by zero, 1.#QNAN (‘not a number’) should be returned, but is not.
Consequently, OptoOPCServer may stop scanning, causing ioDisplay to not update values, even though the ioDisplay computer continues to communicate to the controller.
Opto 22 has resolved this issue. If a float value is divided by zero, an error is added to the queue, and 1.#QNAN is returned. The integer behavior remains the same.