The program below will measure date and time difference between moment when bMsgSent is ON and bMsgRecieved is ON, and additionally add ms info in wmS_elapsed register:
SET(bMsgSent,bMsgMeasurement);
RST(bMsgRecieved,bMsgMeasurement);
PLS( bMsgMeasurement , bMsgMeasurement_PLS );
DATERD( bMsgMeasurement_PLS , wDateStart );
DATERD( bMsgMeasurement_PLF, wDateStop );
MOVP( bMsgRecieved , w1ms_cnt , wmS_elapsed);
RST(RCPU.stSM.b1sClock AND bMsgMeasurement, w1ms_cnt);
OUTH( (bMsgMeasurement AND NOT T1) , T1 , K1 );
INCP(T1, w1ms_cnt);
PLF( bMsgMeasurement , bMsgMeasurement_PLF );
IF bMsgMeasurement_PLF THEN
wDateDiff[0]:=wDateStop[0]-wDateStart[0];
wDateDiff[1]:=wDateStop[1]-wDateStart[1];
wDateDiff[2]:=wDateStop[2]-wDateStart[2];
wDateDiff[3]:=wDateStop[3]-wDateStart[3];
wDateDiff[4]:=wDateStop[4]-wDateStart[4];
wDateDiff[5]:=ABS(wDateStop[5]-wDateStart[5]);
wDateDiff[6]:=wDateStop[6]-wDateStart[6];
END_IF;
It needs a little of brush up, and it is not bad idea to put it in Fixed Scan with 0.5ms interval.
SET(bMsgSent,bMsgMeasurement);
RST(bMsgRecieved,bMsgMeasurement);
PLS( bMsgMeasurement , bMsgMeasurement_PLS );
DATERD( bMsgMeasurement_PLS , wDateStart );
DATERD( bMsgMeasurement_PLF, wDateStop );
MOVP( bMsgRecieved , w1ms_cnt , wmS_elapsed);
RST(RCPU.stSM.b1sClock AND bMsgMeasurement, w1ms_cnt);
OUTH( (bMsgMeasurement AND NOT T1) , T1 , K1 );
INCP(T1, w1ms_cnt);
PLF( bMsgMeasurement , bMsgMeasurement_PLF );
IF bMsgMeasurement_PLF THEN
wDateDiff[0]:=wDateStop[0]-wDateStart[0];
wDateDiff[1]:=wDateStop[1]-wDateStart[1];
wDateDiff[2]:=wDateStop[2]-wDateStart[2];
wDateDiff[3]:=wDateStop[3]-wDateStart[3];
wDateDiff[4]:=wDateStop[4]-wDateStart[4];
wDateDiff[5]:=ABS(wDateStop[5]-wDateStart[5]);
wDateDiff[6]:=wDateStop[6]-wDateStart[6];
END_IF;
It needs a little of brush up, and it is not bad idea to put it in Fixed Scan with 0.5ms interval.