Issue in iec850 driver by Control Model = 3 or 4 ("enhanced security") making problems for Command Processing and Sequencer. The driver informs the Runtime about Termination, but not that it was negative. The driver - when receives Termination - sets COT_actterm (10) but it ignores AddCause. As consequence the watchdog timer in Command Processing and Sequencer keep waiting on value change of RV variable until the action timeout is elapsed.
By negative termination driver should set by CO variable not only COT_actterm (10) but also the N_CONF status bit (PN bit). This status bit ends timers.
By negative terminate the driver should also use the received LastAppError for */Oper.AddCause variable and set variable */Oper.ControlRun = -1 (error). Now by termination the */Oper.ControlRun is always = 0 (success).
Issue in iec850 driver by Control Model = 3 or 4 ("enhanced security") making problems for Command Processing and Sequencer. The driver informs the Runtime about Termination, but not that it was negative. The driver - when receives Termination - sets COT_actterm (10) but it ignores AddCause. As consequence the watchdog timer in Command Processing and Sequencer keep waiting on value change of RV variable until the action timeout is elapsed.
By negative termination driver should set by CO variable not only COT_actterm (10) but also the N_CONF status bit (PN bit). This status bit ends timers.
By negative terminate the driver should also use the received LastAppError for */Oper.AddCause variable and set variable */Oper.ControlRun = -1 (error). Now by termination the */Oper.ControlRun is always = 0 (success).
Now on receiving a negative command termination the LastApplError is also interpreted and set on the AddCause variable. The driver then sets the N_CONF bit.