diff --git a/MTC_Adapter/SCMA/AdapterPLC/CMS/EsaKosmos.cs b/MTC_Adapter/SCMA/AdapterPLC/CMS/EsaKosmos.cs index c38d7e5..d1ab427 100644 --- a/MTC_Adapter/SCMA/AdapterPLC/CMS/EsaKosmos.cs +++ b/MTC_Adapter/SCMA/AdapterPLC/CMS/EsaKosmos.cs @@ -47,12 +47,6 @@ namespace SCMA.AdapterPLC.CMS protected override void loadOtherFile() { base.loadOtherFile(); -#if false - loadByteListMap(); - loadWordListMap(); - loadDWordListMap(); - loadStringListMap(); -#endif loadMaintData("CNT", 0, 1); loadAllarmiCNC(); } diff --git a/MTC_Adapter/SCMA/AdapterPLC/Generic.cs b/MTC_Adapter/SCMA/AdapterPLC/Generic.cs index ed8c25b..48899eb 100644 --- a/MTC_Adapter/SCMA/AdapterPLC/Generic.cs +++ b/MTC_Adapter/SCMA/AdapterPLC/Generic.cs @@ -3109,15 +3109,22 @@ namespace SCMA.AdapterPLC byte[] retACK_DW = new byte[4]; // gestione su ultimi 2 bit della DW2 STR/ACK: il PRIMO bit è gestito in master da ADAPTER, il secondo da PLC; in primis io COPIO il valore del bit finale (di cui è slave...) retACK_DW = utils.setBitOnStFlag(retACK_DW, STRB_DW2.HasFlag(StFlag32.B31), 31); - // ...poi gestisco il penultimo bit di cui è master... - if (STRB_DW2.HasFlag(StFlag32.B30) == ACK_DW2.HasFlag(StFlag32.B30)) + // ...poi gestisco il penultimo bit di cui è master... ogni 2 secondi... + + int restoB30 = 0; + Math.DivRem(DateTime.Now.Second, 2, out restoB30); + // i secondi dispari controllo... + if (restoB30 > 0) { - // ... SE in ingresso ho strobe uguale lo cambio!!! - retACK_DW = utils.setBitOnStFlag(retACK_DW, !ACK_DW2.HasFlag(StFlag32.B30), 30); - } - else - { - retACK_DW = utils.setBitOnStFlag(retACK_DW, ACK_DW2.HasFlag(StFlag32.B30), 30); + if (STRB_DW2.HasFlag(StFlag32.B30) == ACK_DW2.HasFlag(StFlag32.B30)) + { + // ... SE in ingresso ho strobe uguale lo cambio!!! + retACK_DW = utils.setBitOnStFlag(retACK_DW, !ACK_DW2.HasFlag(StFlag32.B30), 30); + } + else + { + retACK_DW = utils.setBitOnStFlag(retACK_DW, ACK_DW2.HasFlag(StFlag32.B30), 30); + } } // 2018.10.01 gestione bit status dei check ULTERIORI... SE abilitato