diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs index a768687..aa853fd 100644 --- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs +++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs @@ -71,6 +71,7 @@ namespace CMS_CORE_Library.S7Net // Alarms data private static Dictionary PlcMessages; + #if false private const string PLC_MESSAGES_FILE_PATH = "C:\\Program Files (x86)\\Siemens\\MotionControl\\oem\\sinumerik\\hmi\\lng\\"; @@ -106,6 +107,11 @@ namespace CMS_CORE_Library.S7Net private bool EnableAxes; + + // parametri specifici per THERMO + private static List thermoParamList; + + // connessione S7 private CpuType tipoCpu = CpuType.S71500; private short rack = 0; private short slot = 1; @@ -141,6 +147,7 @@ namespace CMS_CORE_Library.S7Net Port = RemotePort; // mesasggi generici PLC PlcMessages = new Dictionary(); + thermoParamList = new List(); } /// @@ -170,6 +177,7 @@ namespace CMS_CORE_Library.S7Net Port = RemotePort; // mesasggi generici PLC PlcMessages = new Dictionary(); + thermoParamList = new List(); } public override CmsError NC_Connect() @@ -474,11 +482,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion Contructor & global methods + #endregion Contructor & global methods /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region High level methods + #region High level methods // Get the processes-count configurated public override CmsError NC_RProcessesNum(ref ushort ProcNumber) @@ -630,11 +638,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion High level methods + #endregion High level methods /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region PLC High-level data + #region PLC High-level data public override CmsError PLC_RWManageWatchdog() { @@ -1719,11 +1727,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion PLC High-level data + #endregion PLC High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region PROCESS (PATH) High-level data + #region PROCESS (PATH) High-level data // Get the process Mode public override CmsError PROC_RMode(ushort ProcNumber, ref PROC_MODE Mode) @@ -2087,11 +2095,11 @@ namespace CMS_CORE_Library.S7Net #endif } -#endregion PROCESS (PATH) High-level data + #endregion PROCESS (PATH) High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region PROCESS-AXES (PATH) High-level data + #region PROCESS-AXES (PATH) High-level data public override CmsError AXES_RInterpPosition(ushort channel, ref Dictionary axes) { @@ -2407,11 +2415,11 @@ namespace CMS_CORE_Library.S7Net #endif } -#endregion PROCESS-AXES (PATH) High-level data + #endregion PROCESS-AXES (PATH) High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region NC Low-level function: single valiable in memory + #region NC Low-level function: single valiable in memory //Read-Write a Boolean-Value inside the NC. public override CmsError MEM_RWBoolean(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int MemBit, ref bool Value) @@ -2606,11 +2614,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion NC Low-level function: single valiable in memory + #endregion NC Low-level function: single valiable in memory /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region Low level methods + #region Low level methods public override CmsError MEM_RWByteList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int MemByteStart, int Number, ref List Values) { @@ -2912,11 +2920,11 @@ namespace CMS_CORE_Library.S7Net return NO_ERROR; } -#endregion Low level methods + #endregion Low level methods /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region NC Low-level function: Parameters + #region NC Low-level function: Parameters public override CmsError NC_RParam(short Index, short Bit, ref bool Value) { @@ -2943,11 +2951,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion NC Low-level function: Parameters + #endregion NC Low-level function: Parameters /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region File Management + #region File Management /// /// Get list of recipe (from local PC area) @@ -3430,11 +3438,11 @@ namespace CMS_CORE_Library.S7Net return path.Replace('\\', '/'); } -#endregion File Management + #endregion File Management /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region Siemens Tools Management + #region Siemens Tools Management public override CmsError TOOLS_RConfiguration(ref ToolTableConfiguration config) { @@ -3581,11 +3589,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion Siemens Tools Management + #endregion Siemens Tools Management /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region Nc Tool Manager + #region Nc Tool Manager public override CmsError TOOLS_RMagazineConfig(ref List config) { @@ -3687,11 +3695,11 @@ namespace CMS_CORE_Library.S7Net return FUNCTION_NOT_ALLOWED_ERROR; } -#endregion Nc Tool Manager + #endregion Nc Tool Manager /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#region Subordinate Private Functions + #region Subordinate Private Functions #if false // Manage the Alarms - Called automatically on changes @@ -3870,7 +3878,7 @@ namespace CMS_CORE_Library.S7Net { // completare nuove variabili (matricola macchina, seriale PLC, firmware PLC) ConfChannelNo = 1; - Last_Static_Read = DateTime.Now; + Last_Static_Read = DateTime.Now; Cnc_name = $"{currPLC.CPU}"; // FIXME Cms_MachNumber = ""; // matricola macchina, DB604.DBB6720..6723 @@ -4043,10 +4051,45 @@ namespace CMS_CORE_Library.S7Net } } -#endregion Subordinate Private Functions + #endregion Subordinate Private Functions /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + #region THERMO high level data + + public CmsError PLC_RRecipeParamList(bool onlyRT, ref List currParamList) + { + // refresh dati veloci / RT + refreshMemRecipeParameterRT(); + // se richiesto NON SOLO RT faccio refresh anche dati "lenti" + if(!onlyRT) + { + refreshMemRecipeParameter(); + } + + // copio lista act in output... + currParamList = thermoParamList; + return NO_ERROR; + } + + private void refreshMemRecipeParameterRT() + { + // leggo da PLC a array di byte di appoggio... + + // converto a blocchi + + // update oggetto thermoParamList... + } + private void refreshMemRecipeParameter() + { + // leggo da PLC a array di byte di appoggio... + + // converto a blocchi + + // update oggetto thermoParamList... + } + + #endregion } @@ -4072,7 +4115,7 @@ namespace CMS_CORE_Library.S7Net internal static MEMORY_CELL RISC_ESP_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 500, 9728, 1024); internal static MEMORY_CELL RISC_OVP_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 500, 10752, 1024); internal static MEMORY_CELL RISC_ICH_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 500, 11776, 4096); - + // produzione internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 605, 0, 2);