I have an SFC action '//ROV1361D/EM_SP.CV':= 'vlvnc-sp:CLOSE';
with a pulse confirmation = ('//ROV1361D/EM_SP.AWST' = 0) AND ('//ROV1361D/EM_SP.CV' = -1))
Confirm Time out: 0
As seen above there is no time out on the confirm and Asynchronous Write STatus is coupled to a SP confirmation in the pulse confirmation statement.
In real life from time to time the valve sticks and does not actually go all the way closed...therefore I get an undefined valve position and my sequence fails (as it should).
The problem is when the valve fails, the SP is set to close, but the PV is not close therefore ROV1361D is in the undefined state. The pending confirm is looking for a pulse confirmation of ROV1361D Equipment module Set point = -1 (Close) and the asynchronous write status is false. The sequence is stuck forever in the step...
Asynchronous writes are when the step in the SFC asked for a write but the controller skipped the communication on that bit due to prioritization (to my understanding)....
My question is this: Why would a valve failure cause the ASWT bit to become true? I was watching the faceplate, and I saw the valve setpoint go to "closed". The valve went undefined due to PV and SP mismatch. How can this cause AWST to become true?
Also....I realize this is a weird pending confirm pulse qualifier. I don't know why the confirm expression was written like it is.... the confirm will be changed to ROV1361D/EM_PV.CV = 1
Based on this: '//ROV1361D/EM_SP.CV':= 'vlvnc-sp:CLOSE'; I assume that EM_SP.CV' is a named set parameter. Named sets can take values from 0 to 255. How confirmation can be (-1) ?
Also AWST = 1 . means 'not communicating' .
Is path correct? maybe missing "DC1" between tag and parameter ?