diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs index 072a02d..daeb6c8 100644 --- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs +++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs @@ -1948,17 +1948,6 @@ namespace CMS_CORE_Library.S7Net MouldEnergyOUT = S7.Net.Types.Double.FromByteArray(currMem.Skip(42).Take(4).ToArray()), MouldEnergyIN= S7.Net.Types.Double.FromByteArray(currMem.Skip(46).Take(4).ToArray()) }; - //gaugeData = new GaugeModel() - //{ - // TimeAdv = Convert.ToUInt32(Values[0]), - // Power = Values[1], - // Vacuum = Values[2], - // Air = Values[3], - //}; - - - - return NO_ERROR; } @@ -1969,6 +1958,22 @@ namespace CMS_CORE_Library.S7Net /// public override CmsError PLC_RProdCycle(ref ProdCycle currProdCycle) { + List currMem = new List(); + CmsError cmsError = MEM_RWByteList(R, 0, PROCESS_PROD_CYCLE.MemType, PROCESS_PROD_CYCLE.Address, PROCESS_PROD_CYCLE.SubAddress, 0, PROCESS_PROD_CYCLE.Size, ref currMem); + + if (cmsError.IsError()) + return cmsError; + // converto! + currProdCycle = new ProdCycle() + { + Status = S7.Net.Types.Word.FromByteArray(currMem.Skip(0).Take(2).ToArray()), + MessageId = S7.Net.Types.Word.FromByteArray(currMem.Skip(2).Take(2).ToArray()), + Mode = S7.Net.Types.Byte.FromByteArray(currMem.Skip(4).Take(1).ToArray()), + // Submode? FIXME TODO + //Submode = S7.Net.Types.Byte.FromByteArray(currMem.Skip(5).Take(1).ToArray()), + TimeAdv = S7.Net.Types.DWord.FromByteArray(currMem.Skip(6).Take(4).ToArray()) + }; + return NO_ERROR; } @@ -4402,6 +4407,8 @@ namespace CMS_CORE_Library.S7Net // produzione internal static MEMORY_CELL PROCESS_PROD_INFO = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 606, 0, 50); + internal static MEMORY_CELL PROCESS_PROD_CYCLE = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 605, 0, 22); + internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 605, 0, 2); // Machine number