ГОСТ Р МЭК 61784-3-12—2016
Переход
Условие
Действие
Следующее
состояние
PARA_OK1
Data (Данные)
Frame .Command -
PtC’CeSdC’dld
AND
BytesToBeSent - 0 AND
WatchdogSarePaia.Watchdog;
SaleOutputS :• Frame.SaleData;
LastCrc Frame.CrcO;
SendFrame (Cat aCommand,
Frame.Connld -AD R (Safelnputs), LastCrc,
Connect io n ld AND
rS SAFE PARA_CCRRECT(
C onnectionld, ADR(SlaveSeqNo),
ADR(OldSlaveCxc), TRUE);
SalePara) - TRUE AND
IS_CRC_CORRECT(Frame,
LastCrc,
ADR(MasterSeqNo),
ADR(GldMasterCrc),
TRUE) - TRUE
LastCrcSendFrame.CrcO; START
WD(Watchdog);
PARA_OK2 Frerne.Command -
rarlS afeO dta AND
BytesToBeSent - 0
AND
Frame.Connld -
WatchdogSafePara.watchdog;
Data (Данные)
SaleOutputS FS VALUE; LaStCrC
Frame .CrcO; SendFrame (OataCo.wianJ,
ADR(SalelnputB), LaStCrC,
C onnectionld, ADR(SlaveSeqNo),
ConnectionTd ANDADR(OldSIaveCrc), TRUE);
IS SAFE PARA CORRECT<
SalePara) - TRUE AND
ГS_CRC_CORRECT( Frame,
LastCrc,
ADR(MaSterSeqNo),
ADR(OldMaSteiClC),
TRUE) - TRUE
LastCrcSendFrame.CrcO; START
WD(Watchdog);
PARA_FAIL1 (Frame.Command -
PrOCeSSDdta
OR
Frame.Commend -
rarJSa^eOata) AND
BytesToBeSent - 0 AND
Frame.ConnId -
C onnectionld AND
IS SAFE PARA CORRECT!
SaГеРага) - TRUE AND
IS CRC CORRECT(Frame,
LafitClC,
ADR(MasterSeqNo) ,
ADR(OldMaSterCrc) ,
TRUE) - FALSE
LastCrc : • 0;Reset (Сброс)
OldMasterCrc 0;
OldSIaveCrc0;
MasterSeqNo1;
SlaveSeqNo 1;
DataCommsndF dilFdteP dla ;
CommFaultReafion INVALID CRC;
Se ndFr ame(Reset ,
ADR (CommFaiiltReason) , LastCrc,
o,
ADR(SlaveSeqNo), ADR(CldSlaveCrc),
FALSE);
SlaveSeqNo1;
PARAFAIL2 (Frame.Command -
PioceaaOata
OR
Frame.Command -
FarlSafeD aia)
and
BytesToBeSent - 0 AND
LastCrc0;
OldMasterCrc
OldSIaveCrc
MasterSeqNo
SlaveSeqNo
DataCommand
Reset (Сброс)
0;
0;
1
;
1;
F aiiS aleO ata;
Frame.Connld -CommFaultReasonGET PARA FAULT;
C onnectionld AND
IS SAFE PARA CORRECT(
SendFrame(Reset,
ADR(CommFaultReason), LastCrc,
SafePaxa) - FALSE0,
ADR(SlaveSeqNo), ADR(OldSIaveCrc),
FALSE);
SlaveSeqNo :- 1;
60