using CMS_CORE_Library.Models; using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using static CMS_CORE_Library.Models.DataStructures; namespace CMS_CORE_Library { public abstract partial class Nc { //Private Global Variables internal bool Connected; internal string Ip; internal ushort Port; internal bool UseProxy; internal string LibName = "CMS_CORE_Library.dll"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region LIB Methods /** * * Get the NC IP-Address * * Compatibility: Fanuc | Osai | Demo * * * */ public string LIB_GetIpAddress() { return Ip; } /** * * Set the NC IP-Address * * Compatibility: Fanuc | Osai | Demo * * * */ public void LIB_SetIpAddress(string ip) { Ip = ip; } /** * * Get Nc Port * * Compatibility: Fanuc | Osai | Demo * * * */ public ushort LIB_GetPort() { return Port; } /** * * Set Nc Port * * Compatibility: Fanuc | Osai | Demo * * * */ public void LIB_SetPort(ushort port) { Port = port; } /** * * Get Library Version * * Compatibility: Fanuc | Osai | Demo | Siemens * * * */ public string LIB_GetLibraryVersion() { return FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion.ToString(); } #endregion LIB Methods /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region NC High-level data (to override) /** * * Connect the NC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * * */ public abstract CmsError NC_Connect(); /** * * Disconnect the NC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * * */ public abstract CmsError NC_Disconnect(); /** * * Read Nc Status * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * */ public bool NC_IsConnected() { return Connected; } /** * * Read actual time of the NC-Software (sometimes it can be different from NC-Operative-System) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a DateTime Variable where data will be saved * */ public abstract CmsError NC_RDateTime(ref DateTime ActualTime); /** * * Read Vendor NC Serial number * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a String Variable where data will be saved * */ public abstract CmsError NC_RSerialNumber(ref string SN); /** * * Read Model name of the NC * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a String Variable where data will be saved * */ public abstract CmsError NC_RModelName(ref string ModelName); /** * * Read Software Version of the Nc * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a String Variable where data will be saved * */ public abstract CmsError NC_RSoftwareVersion(ref string SWV); /** * * Read CMS Serial number of the Machine * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a String Variable where data will be saved * */ public abstract CmsError NC_RMachineNumber(bool hasLetters, ref string MachNumber); /** * * Read number of configured Processes/Paths * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a ushort Variable where data will be saved * */ public abstract CmsError NC_RProcessesNum(ref ushort ProcNumber); /** * * Read the configured language of the NC * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a CultureInfo Variable where data will be saved * */ public abstract CmsError NC_RLanguage(ref CultureInfo Language); /** * * Write the configured language of the NC * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * CultureInfo Variable with the new Language * */ public abstract CmsError NC_WLanguage(CultureInfo Language); /** * * Read active alarms of the NC (Nc-Process indipendent). For OSAI Nc the list can contain only one Message * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of a List of String Variables where data will be saved * */ public abstract CmsError NC_RActiveAlarms(ref List alarms); /** * * Check if the NC is in running state * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference to boolean where running state will be saved * */ public abstract CmsError NC_RIsRunning(ref bool running); public abstract CmsError NC_GetTranslatedPlcMessages(string language, ref Dictionary messages); public abstract CmsError NC_GetAvailableLanguages(ref ICollection languages); /** * * Set the screen page visible of the NC * * Compatibility: Fanuc | Siemens * * * Returns an error when an internal or a library error occours * change the screen view in HMI application * */ public abstract CmsError NC_SetScreenVisible(SCREEN_PAGE screen); // Get NC unit of measure public abstract CmsError NC_RUnitOfMeasure(ref string unitOfMeasure); #endregion NC High-level data (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region NC Low-level data (to override) /** * Read Boolean Parameter Machine (Not compatible for Axis Parameter (Multiple values in a parameter) * * Compatibility: Fanuc * * * Returns an error when an internal or a library error occours * Index of the parameter * Set the Bit to Read. (0..7) * Reference of a variable with Param values * */ public abstract CmsError NC_RParam(short Index, short Bit, ref bool Value); /** * Read Byte Parameter Machine (Not compatible for Axis Parameter (Multiple values in a parameter) * * Compatibility: Fanuc * * * Returns an error when an internal or a library error occours * Index of the parameter * Reference of a variable with Param values * */ public abstract CmsError NC_RParam(short Index, ref byte Value); /** * Read 2 Byte (Short) Parameter Machine (Not compatible for Axis Parameter (Multiple values in a parameter) * * Compatibility: Fanuc * * * Returns an error when an internal or a library error occours * Index of the parameter * Reference of a variable with Param values * */ public abstract CmsError NC_RParam(short Index, ref short Value); /** * Read 4 Byte (Integer) Parameter Machine (Not compatible for Axis Parameter (Multiple values in a parameter) * * Compatibility: Fanuc * * * Returns an error when an internal or a library error occours * Index of the parameter * Reference of a variable with Param values * */ public abstract CmsError NC_RParam(short Index, ref int Value); /** * Read Real Parameter Machine (Not compatible for Axis Parameter (Multiple values in a parameter) * * Compatibility: Fanuc * * * Returns an error when an internal or a library error occours * Index of the parameter * Reference of a variable with Param values * */ public abstract CmsError NC_RParam(short Index, ref double Value); public abstract CmsError NC_WMDICommand(int processId, string mdiString); #endregion NC Low-level data (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region PLC High-level data (to override) public abstract CmsError PLC_RWManageWatchdog(); /** * * Read PMC active Messages * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Reference of a List of String Variables where data will be saved * */ public abstract CmsError PLC_RActiveMessages(ref List Alarms); /** * * Start refresh message procedure * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Alarm id to refresh * * */ public abstract CmsError PLC_WRefreshMessage(uint id); public abstract CmsError PLC_WRefreshAllMessages(); /** * * Start restore message procedure * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Alarm id to restore * * */ public abstract CmsError PLC_WRestoreMessage(uint id); /** * * Read the status of the Power on data ( Pre-Power-On / Post-Power-On ) * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * * Reference to the structure where the power on data will be saved **/ public abstract CmsError PLC_RPowerOnData(ref PreAndPostPowerOnModel powerOnModel); /** * * Write PowerOn data and status ( Pre-Power-On / Post-Power-On ) * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * * Id of the edited power on data * Reference to the value of the power on data **/ public abstract CmsError PLC_WPowerOnData(uint id, bool value); /** * * Read the status of the UI functionality from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * **/ public abstract CmsError PLC_RFunctionAccess(ref List functions); /** * * Read axes reset procedure data from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Reference to the axes reset procedure data * **/ public abstract CmsError PLC_RAxesResetData(ref AxisResetDataModel axisResetData); /** * * Read machine counters value from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Reference to the counters data * **/ public abstract CmsError PLC_RMachineCounters(ref List counters); /** * * Reset single machine counter * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * number of counter to be zeroed * **/ public abstract CmsError PLC_WResetMachineCounters(uint counter); /** * * Read nc softkeys values from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Reference to the nc softkey data * **/ public abstract CmsError PLC_RNcSoftKeys(ref List ncSoftKeys); /** * * Read user softkeys values from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Reference to the softkey data * **/ public abstract CmsError PLC_RUserSoftKeys(ref List softKeys); /** * * Write Nc softkey interaction into PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an when an internal or a library error occours * Nc softkey id * **/ public abstract CmsError PLC_WNcSoftKey(uint id); /** * * Write user softkey interaction into PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * User softkey id * **/ public abstract CmsError PLC_WUserSoftKey(uint id); /** * * Read heads data from PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Recerence to the heads data * Number of heads data that are read * **/ public abstract CmsError PLC_RHeadsData(List heads, int number); /** * * Write head override sign into PLC * * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours * Head id * Type of increment of the override * **/ public abstract CmsError PLC_WHeadOverride(uint id, HEAD_OVERRIDE_SIGN sign); public abstract CmsError PLC_ROperatorInputIsNeeded(ref List value); public abstract CmsError PLC_WOperatorInputResponse(int process, double responseVal); public abstract CmsError PLC_RM154Data(ref List value, ref bool MTCCmd); public abstract CmsError PLC_W154ManageAck(int processId); public abstract CmsError PLC_RM156Data(ref List value); public abstract CmsError PLC_WM156Response(int process, double responseVal); public abstract CmsError PLC_RM157Data(ref List value); public abstract CmsError PLC_WM157Timer(int process, ushort timerVal); public abstract CmsError PLC_RScadaValue(string memIndex, SCADA_MEM_TYPE memType, ref object value); public abstract CmsError PLC_WScadaValue(string memIndex, SCADA_MEM_TYPE memType, object value); public abstract CmsError PLC_RScadaSiemens(ref List objects); public abstract CmsError PLC_RWorkedTimeHead(int head, ref uint time); public abstract CmsError PLC_WResetWorkedTimeHead(int head); public abstract CmsError PLC_RWorkedTimeMachine(ref uint time); public abstract CmsError PLC_WResetWorkedTimeMachine(uint time); public abstract CmsError PLC_RCandy(ref long value); public abstract CmsError PLC_WCandy(long value); public abstract CmsError PLC_RExpiredCandy(ref bool value); public abstract CmsError PLC_WExpiredCandy(bool value); public abstract CmsError PLC_RActiveClient(ref int clientId); public abstract CmsError PLC_RToolMovement(ref MovementBetweenMagazinesModel toolMovement); public abstract CmsError PLC_WTerminateMovementProcedure(MOVEMENT_RESPONSE resp); #endregion PLC High-level data (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region PROCESS (PATH, CHANNEL) data (to override) /** * * Read the actual status of the Process "ProcNumber" * See for information about the PROC_Status type * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Reference of a PROC_Status Variable where data will be saved * */ public abstract CmsError PROC_RStatus(ushort ProcNumber, ref PROC_STATUS Status); /** * * Read the selected Mode Process "ProcNumber" * See for information about the PROC_Status type * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Reference of a PROC_Mode Variable where data will be saved * */ public abstract CmsError PROC_RMode(ushort ProcNumber, ref PROC_MODE Mode); /** * * Read active alarms of the process "ProcNumber". For OSAI Nc the list can contain only one Message * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Reference of a List of String Variables where data will be saved * */ public abstract CmsError PROC_RActiveAlarms(ushort procNumber, ref List alarms); /** * * Read actual & Next Lines of active PP * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Reference of a List of String Variables where data will be saved * */ public abstract CmsError PROC_RPPLines(ushort procNumber, ref List Lines); /** * * Read active PP Name * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Reference of a String Variables where data will be saved * */ public abstract CmsError PROC_RSelectedPPName(ushort procNumber, ref string Name); /** * * Read active PP and generic data * * Compatibility: Fanuc | Osai | Siemens * * Process number which the data refer * Reference to part program data structure * **/ public abstract CmsError PROC_RStatusAndData(ushort procNumber, ref ProcessDataModel processData); /** * * Read selected process * * Compatibility: Fanuc | Osai | Siemens * * Reference to the process number selected * **/ public abstract CmsError PROC_RSelectedProcess(ref ushort procNumber); /** * * Change the selected process * * Compatibility: Fanuc | Osai | Siemens * * New selected process number * **/ public abstract CmsError PROC_WSelectProcess(ushort procNumber); /** * * Read additional data of the process * * Compatibility: Fanuc | Osai | Siemens * * Id of the process * **/ public abstract CmsError PROC_RSelectedProcessData(int processId, ref SelectedProcessData processData); /** * * Start assisted tooling * * Compatibility: Fanuc | Osai | Siemens * * **/ public abstract CmsError PLC_WAssistedToolingCmd(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action); /** * * Read the status of the assisted tooling procedure * * Compatibility: Fanuc | Osai | Siemens * * **/ public abstract CmsError PLC_RAssistedToolingData(ref AssistedToolingModel data); /** * * Manage ack-strobe in order to terminate the assisted tooling procedure * * Compatibility: Fanuc | Osai | Siemens * * **/ public abstract CmsError PLC_WTerminateAssistedToolingProcedure(); /** * * Read the actual feed of the Process "ProcNumber" * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process number which the data refer * Feed of the Process in mm/min * */ public abstract CmsError PROC_RFeed(ushort ProcNumber, ref float Feed); #endregion PROCESS (PATH, CHANNEL) data (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region AXES data (to override) /** * * Read the Interpolated position of all axes in Process "ProcNumber" * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of Dictionary "Key,Value" with: Key: Axis Name, Value: Position * */ public abstract CmsError AXES_RInterpPosition(ushort ProcNumber, ref Dictionary Axes); /** * * Read the Programmed position of all axes in Process "ProcNumber". * For Fanuc-Nc there's not "Programmed position" variables. Si it is calculated from Machine-Pos and Distance-to-go * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of Dictionary "Key,Value" with: Key: Axis Name, Value: Position * */ public abstract CmsError AXES_RProgrPosition(ushort ProcNumber, ref Dictionary Axes); /** * * Read the Machine position of all axes in Process "ProcNumber" * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of Dictionary "Key,Value" with: Key: Axis Name, Value: Position * */ public abstract CmsError AXES_RMachinePosition(ushort ProcNumber, ref Dictionary Axes); /** * * Read the Following-Error of all axes in Process "ProcNumber" * * Compatibility: Osai | Demo * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of Dictionary "Key,Value" with: Key: Axis Name, Value: Position * */ public abstract CmsError AXES_RFollowingError(ushort ProcNumber, ref Dictionary Axes); /** * * Read the Distance-to-go of all axes in Process "ProcNumber" * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Process to execute the action * Reference of Dictionary "Key,Value" with: Key: Axis Name, Value: Position * */ public abstract CmsError AXES_RDistanceToGo(ushort ProcNumber, ref Dictionary Axes); /** * * Read the names of the axes in the process * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Process to execute the action * List of data * */ public abstract CmsError AXES_RAxesNames(ushort process, ref List axesData); /** * * Read the selected axes in the selected process * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Id of the selected axis * */ public abstract CmsError AXES_RSelectedAxis(ref byte axisId); /** * * Selected one axis on the selected process * * Compatibility: Fanuc | Osai | Siemens * * * Returns an error when an internal or a library error occours * Id of the axis to be selected * */ public abstract CmsError AXES_WSelectAxis(byte axisId); public abstract CmsError AXES_ROrigin(int numberOfAxes); #endregion AXES data (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region MEMORY Low-level function: single valiable in memory (to override) /** * Read/Write Boolean variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Set the Bit to Read-Write. (0..7) * Reference to variable to read/Write * */ public abstract CmsError MEM_RWBoolean(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int MemBit, ref bool Value); /** * Read/Write Boolean variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Set the Bit to Read-Write. (0..7) * Reference to variable to read/Write * */ public abstract CmsError MEM_RWBoolean(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int MemBit, ref bool Value); /** * Read/Write Byte variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Set to 1 if the Byte is the second of a WORD (only for OSAI Nc) * Reference to variable to read/Write * */ public abstract CmsError MEM_RWByte(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int MemByte, ref byte Value); /** * Read/Write Byte variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Set to 1 if the Byte is the second of a WORD (only for OSAI Nc) * Reference to variable to read/Write * */ public abstract CmsError MEM_RWByte(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int MemByte, ref byte Value); /** * Read/Write unsigned 2 Byte (NC: Word:, .NET: ushort) variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWWord(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, ref ushort Value); /** * Read/Write unsigned 2 Byte (NC: Word:, .NET: ushort) variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWWord(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, ref ushort Value); /** * Read/Write signed 2 Byte (NC: Word:, .NET: short) variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWShort(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, ref short Value); /** * Read/Write signed 2 Byte (NC: Word:, .NET: short) variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWShort(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, ref short Value); /** * Read/Write signed 4 Byte (NC: DWord:, .NET: uint) variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * uW * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWDWord(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, ref uint Value); /** * Read/Write signed 4 Byte (NC: DWord:, .NET: uint) variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * uW * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWDWord(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, ref uint Value); /** * Read/Write signed 4 Byte (NC: DWord:, .NET: int) variable from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWInteger(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, ref int Value); /** * Read/Write signed 4 Byte (NC: DWord:, .NET: int) variable from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWInteger(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, ref int Value); public abstract CmsError MEM_RWDouble(bool bWrite, int process, MEMORY_TYPE memType, int memIndex, ref double value); public abstract CmsError MEM_RWDouble(bool bWrite, int process, MEMORY_TYPE memType, int memTable, int memIndex, ref double value); #endregion MEMORY Low-level function: single valiable in memory (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region NC Low-level function: variables List in memory (to override) /** * Read/Write List of Byte from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Set to 1 if the starting Byte is the second of a WORD (only for OSAI Nc) * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWByteList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int MemByteStart, int Number, ref List Value); /** * Read/Write List of Byte from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Set to 1 if the starting Byte is the second of a WORD (only for OSAI Nc) * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWByteList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int MemByteStart, int Number, ref List Value); /** * Read/Write List of unsigned 2 Byte (NC: Word:, .NET: ushort) from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWWordList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int Number, ref List Value); /** * Read/Write List of unsigned 2 Byte (NC: Word:, .NET: ushort) from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWWordList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int Number, ref List Value); /** * Read/Write List of signed 2 Byte (NC: Word:, .NET: short) from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWShortList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int Number, ref List Value); /** * Read/Write List of signed 2 Byte (NC: Word:, .NET: short) from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWShortList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int Number, ref List Value); /** * Read/Write List of unsigned 4 Byte (NC: DWord:, .NET: uint) from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWDWordList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int Number, ref List Value); /** * Read/Write List of unsigned 4 Byte (NC: DWord:, .NET: uint) from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or ) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWDWordList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int Number, ref List Value); /** * Read/Write List of signed 4 Byte (NC: DWord:, .NET: int) from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or Nc.) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWIntegerList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int Number, ref List Value); /** * Read/Write List of signed 4 Byte (NC: DWord:, .NET: int) from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or Nc.) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public abstract CmsError MEM_RWIntegerList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemTable, int MemIndex, int Number, ref List Value); /** * Read/Write List of signed 4 Byte (NC: DWord:, .NET: int) from/into NC Memory Area * * Compatibility: Fanuc | Osai | Demo * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or Nc.) * Nc Memory Area. See * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public virtual CmsError MEM_RWDoubleList(bool bWrite, int process, MEMORY_TYPE memType, int memIndex, int Number, ref List value) { return FUNCTION_NOT_ALLOWED_ERROR; } /** * Read/Write List of signed 4 Byte (NC: DWord:, .NET: int) from/into NC Memory Area (including Siemens Nc) * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Set True to Write-operation (Also Allowed /) * Process to perform operation (If the area is process-indipendent use 0 or Nc.) * Nc Memory Area. See * Siemens Memory Table (Used only in Siemens-Nc) * Starting Index of Memory Area * Number of sequential data Read/Write. (Used only in Reading Operation) * List of values to read/Write * */ public virtual CmsError MEM_RWDoubleList(bool bWrite, int process, MEMORY_TYPE memType, int memTable, int memIndex, int Number, ref List value) { return FUNCTION_NOT_ALLOWED_ERROR; } #endregion NC Low-level function: variables List in memory (to override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region File Management (To override) /** * Get file list of a specific path * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Directory path to read file list * */ public abstract CmsError FILES_RGetFileList(string directoryPath, ref List files); /** * Get file generic informations * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * File path to read file data * */ public abstract CmsError FILES_RGetFileInfo(string filePath, ref InfoFile fileInfo); /** * Set a program, stored in the NC, as active for the process * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Process where the program is going to be activated * Path of the part program * */ public abstract CmsError FILES_WSetActiveProgram(int processId, string filePath, ref ActiveProgramDataModel data); /** * Deactivate active program on * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Process where the program is going to be deactivated * */ public abstract CmsError FILES_WDeactivateProgram(int processId); /** * Upload program into the NC memory * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Local path of the program * New name of the program once has been saved * Path of the program on the Nc memory * */ public abstract CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath); /** * Read active program on data * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Id of the process * */ public abstract CmsError FILES_RActiveProgramData(int processId, ref ActiveProgramDataModel data); /** * Read a Part Program by path and name * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Path of the Part Program stored in the Nc * Name of the Part Program and name of new local file * Reference to the new local file where the NC Part Program data will be saved * */ public abstract CmsError FILES_RProgramToFile(string partProgramPath, FileStream localFile); /** * Write/Overwrite a Part Program by path and name * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Path of the Part Program stored in the Nc * Reference to the local Part Program file * */ public abstract CmsError FILES_WProgramFromFile(string partProgramPath, FileStream localFile); /** * Copy a Part Program into another path * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Path where the part program is going to be stored in the NC * Path of the copy Part Program destination * * : Return an error if file exists. * * : Overwrite file if exists * * */ public abstract CmsError FILES_CopyProgram(string partProgramPath, string newPartProgramPath, bool failIfExist); /** * Delete a Nc Part Program * * Compatibility: Fanuc | Osai | Demo | Siemens * * * Returns an error when an internal or a library error occours * Path where the Nc Part Program is saved in the NC * Name of the Part Program file * */ public abstract CmsError FILES_DeleteProgram(string partProgramPath, string partProgramName); public abstract CmsError FILES_RQueueData(ref List statusList); public abstract CmsError FILES_RQueueDataByProcess(ref QueueStatusModel status, int processId); public abstract CmsError FILES_WStartQueue(); public abstract CmsError FILES_WStopQueue(); public abstract CmsError FILES_WLoadNextPartProgram(string localPath, string ncFileName); public abstract CmsError FILES_WUploadJobFilesAndActivate(int processId, string jobExtractedPath, string fileToActivate); public abstract CmsError FILES_RGetProgramType(ref PROGRAM_TYPE_ENUM programType); public abstract CmsError FILES_WCleanUploadFolder(); public abstract CmsError FILES_WUploadCustomMainProgramAndActivate(int processId, string customPartProgramContent, ref ActiveProgramDataModel activeData); #endregion File Management (To override) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Tool Table Siemens /** * Read Adatpive Path Step * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tool table configuration data **/ public abstract CmsError TOOLS_RAdatpivePathStep(ref Byte step); /** * Write Adatpive Path Step * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tool table configuration data **/ public abstract CmsError TOOLS_WAdatpivePathStep(Byte step); /** * Read tool table configuration * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tool table configuration data **/ public abstract CmsError TOOLS_RConfiguration(ref ToolTableConfiguration config); /** * Read tools data from NC * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tools list data object **/ public abstract CmsError TOOLS_RToolsData(ref List toolsData); /** * Read shanks data from NC * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the shank list data object **/ public abstract CmsError TOOLS_RShanksData(ref List shanksData); /** * Read families data * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tools families data object **/ public abstract CmsError TOOLS_RFamilyData(ref List families); /** * Read magazines positions data from NC * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Reference to the tools list data object **/ public abstract CmsError TOOLS_RMagazinePositions(ref List positions); /** * Add a new tool * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours **/ public abstract CmsError TOOLS_WAddTool(ref SiemensToolModel tool); /** * Add a new family * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours **/ public abstract CmsError TOOLS_WAddFamily(ref FamilyModel family); /** * Add a new shank * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours **/ public abstract CmsError TOOLS_WAddShank(ref ShankModel shank); /** * Update family name * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Family identifier * New family name value **/ public abstract CmsError TOOLS_WUpdateFamilyData(string oldName, string newName); /** * Update magazine position data * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * New position data **/ public abstract CmsError TOOLS_WUpdatePosition(PositionModel positionData); /** * Update tool data * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * New tool data **/ public abstract CmsError TOOLS_WUpdateTool(ref SiemensToolModel toolData); /** * Delete tool * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Tool identifier **/ public abstract CmsError TOOLS_WDeleteTool(int id); /** * Delete shank * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Shank id **/ public abstract CmsError TOOLS_WDeleteShank(int id); /** * Delete family * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Family identifier **/ public abstract CmsError TOOLS_WDeleteFamily(string name); /** * Delete edge * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Tool id * Edge id **/ public abstract CmsError TOOLS_WDeleteEdge(int toolId, int edgeId); /** * Add a new edge to tool * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Tool id **/ public abstract CmsError TOOLS_WAddEdge(int toolId, ref EdgeModel edge); /** * Update edge * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Tool id * New edge data **/ public abstract CmsError TOOLS_WUpdateEdge(int toolId, ref EdgeModel newEdge); /** * Update shank * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * New shank data **/ public abstract CmsError TOOLS_WUpdateShank(ref ShankModel shankData); /** * Read mounted tool in magazine * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Magazine id **/ public abstract CmsError TOOLS_RMountedTools(int magazineId, ref List magazinePos); /** * Read available tools/multitools (not mounted) * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Magazine id **/ public abstract CmsError TOOLS_RAvailableTools(ref List multitools, ref List tools); /** * Load a tool in magazine * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Magazine id * Object that contains references to position id and tool id **/ public abstract CmsError TOOLS_WLoadToolInMagazine(int magazineId, NewToolInMagazineModel newMagazineTool, ref MountedToolModel newMountedTool); /** * Unload tool from magazine * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Magazine id * Position id **/ public abstract CmsError TOOLS_WUnloadToolFromMagazine(int magazineId, int positionId); /** * Load tool into shank * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Shank id * Position id * Tool id **/ public abstract CmsError TOOLS_WLoadToolIntoShank(int shankId, int positionId, int toolId); /** * Unload tool from shank * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours * Shank id * Position id **/ public abstract CmsError TOOLS_WUnloadToolFromShank(int shankId, int positionId); /** * Get actual magazine status * * Compatibility: Siemens * * * Returns an error when an internal or a library error occours **/ public abstract CmsError TOOLS_RMagazineAction(ref MagazineActionModel magazineAction); public abstract CmsError TOOLS_WStartTDILoading(ushort magazineId, ushort positionId); public abstract CmsError TOOLS_WStartTDIUnloading(ushort magazineId, ushort positionId, ushort toolId); public abstract CmsError TOOLS_WEmptyBallufTablet(SiemensToolModel tool); public abstract CmsError TOOLS_WEmptyBallufTabletAdditionalData(SiemensToolModel tool); public abstract CmsError TOOLS_WAbortBallufTablet(); public abstract CmsError TOOLS_WClearBallufTablet(ushort magazineId, ushort positionId, ushort toolId); #endregion Tool Table Siemens /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Nc Tool Manager public abstract CmsError TOOLS_WOptions(ToolManagerOptionsModel options); public abstract CmsError TOOLS_ROffset(short offsetId, ref OffsetModel offset); public abstract CmsError TOOLS_WOffset(short offsetId, ref OffsetModel offset); public abstract CmsError TOOLS_WStartEditData(); public abstract CmsError TOOLS_WStopEditData(); public abstract CmsError TOOLS_WUpdateTools(List list); public abstract CmsError TOOLS_WUpdateFamilies(List list); public abstract CmsError TOOLS_WUpdateShanks(List list); public abstract CmsError TOOLS_WUpdateMagazinePositions(List list); public abstract CmsError TOOLS_WStartEditTooling(int magazineId); public abstract CmsError TOOLS_WStopEditTooling(int magazineId); public abstract CmsError TOOLS_WRestoreBackup(); public abstract CmsError TOOLS_RMagazineConfig(ref List config); public abstract CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives, ref Dictionary updatedPresetting, ref Dictionary updatedDressing); public abstract CmsError TOOLS_RStoredData(ref List tools, ref List families, ref List shanks); public abstract CmsError TOOLS_RMagazineBlock(ref List ids); public abstract CmsError TOOLS_WFreeMagazines(); public abstract CmsError TOOLS_RMagazineStatus(ref Dictionary magazineStatus); #endregion Nc Tool Manager /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region CONSTANTS (Struct and Enum are Static for definition) public const int REFRESH_ALL_ALARMS_SFKEY_INDEX = 29; // Read Write type /** Write action */ public const bool W = true; /** Read action */ public const bool R = false; /** Not-Defined Process */ public const ushort UNDEF_PROC = 0; // R-W MEMORY Type /** Nc Memory Type (Table) */ public enum MEMORY_TYPE { /** Null Type */ Null = -1, /////////////////////////////////////////////////////////////////// //Fanuc Memory Type /** Fanuc G Area */ Fanuc_G = 0, /** Fanuc F Area */ Fanuc_F = 1, /** Fanuc Y Area */ Fanuc_Y = 2, /** Fanuc X Area */ Fanuc_X = 3, /** Fanuc A Area */ Fanuc_A = 4, /** Fanuc R Area */ Fanuc_R = 5, /** Fanuc T Area */ Fanuc_T = 6, /** Fanuc K Area */ Fanuc_K = 7, /** Fanuc C Area */ Fanuc_C = 8, /** Fanuc D Area */ Fanuc_D = 9, /** Fanuc M Area */ Fanuc_M = 10, /** Fanuc N Area */ Fanuc_N = 11, /** Fanuc E Area */ Fanuc_E = 12, /** Fanuc Z Area */ Fanuc_Z = 13, /** Fanuc CM Area */ Fanuc_CM = 100, /////////////////////////////////////////////////////////////////// //Osai Memory Type /** Osai I Area */ Osai_I = 0, /** Osai O Area */ Osai_O = 1, /** Osai MW Area */ Osai_MW = 20, /** Osai GW Area */ Osai_GW = 21, /** Osai SW Area */ Osai_SW = 22, /** Osai PW Area */ Osai_PW = 62, /** Osai UW Area */ Osai_UW = 63, /** Osai MD Area */ Osai_MD = 40, /** Osai GD Area */ Osai_GD = 41, /** Osai SD Area */ Osai_SD = 42, /** Osai PD Area */ Osai_PD = 43, /** Osai UD Area */ Osai_UD = 44, /** Osai L Area */ Osai_L = 145, /** Osai LS Area */ Osai_LS = 18, /** Osai AA Area */ Osai_AA = 28, /** Osai A Area */ Osai_A = 45, /** Osai SC Area */ Osai_SC = 50, /** Osai SYMO Area */ Osai_SYMO = 102, /////////////////////////////////////////////////////////////////// //Siemens Memory Type, /** Siemens DB */ Siemens_DB = 1000, /////////////////////////////////////////////////////////////////// // Demo memory type /**Demo default memory **/ Demo = 10000 }; // NC Memory Type Name internal const string FANUC_MEMTYPE = "Fanuc_"; internal const string SIEMENS_MEMTYPE = "Siemens_"; internal const string OSAI_MEMTYPE = "Osai_"; internal const string DEMO_MEMTYPE = "Demo_"; internal const string UNDEFINED_MEMTYPE = "Null"; internal const string CUSTOM_MAIN_PROGRAM = "ACTIVE_LOADER_{0}"; // min-time to read static data (Cached values) internal const ushort NC_MIN_SEC_READ_STATIC_DATA = 10; //Fanuc Variable & Const internal const short FANUC_MAXNVAR = 1024; internal const short FANUC_MAXMSGCNC = 10; internal const short FANUC_MAXMSGPMC = 5; internal const short FANUC_ABSOLUTEPOS = 0; internal const short FANUC_MACHINEPOS = 1; internal const short FANUC_RELATIVEPOS = 2; internal const short FANUC_DISTTOGO = 3; internal const short FANUC_ALLPOS = -1; internal enum FANUC_DType : short { BYTE = 0, WORD = 1, LONG = 2 }; internal const ushort OSAI_PROGRAMMEDPOS = 1; internal const ushort OSAI_INTERPOLPOS = 2; internal const ushort OSAI_TRANSDUCERPOS = 3; internal const ushort OSAI_FOLLERROR = 4; internal const ushort OSAI_DISTTOGO = 5; internal const ushort OSAI_MACHINEPOS = 6; /** Nc Screen */ public enum SCREEN_PAGE { //Siemens Siemens_Machine = 100, Siemens_Parameter = 101, Siemens_Program = 102, Siemens_ProgramManager = 103, Siemens_Diagnostics = 104, Siemens_Setup = 105, //Fanuc Fanuc_Pos = 200, Fanuc_Prog = 201, Fanuc_Offset = 202, Fanuc_System = 203, Fanuc_Message = 204, Fanuc_MGI = 205, Fanuc_Graph = 206, Fanuc_Custom2 = 207, } #endregion CONSTANTS (Struct and Enum are Static for definition) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Fixed memory area // TODO REMOVE //Lingua CN internal MEMORY_CELL PARAM_LING_FANUC = new MEMORY_CELL(MEMORY_TYPE.Null, 3281, 0, 1); internal MEMORY_CELL PARAM_LING_FANUC_W = new MEMORY_CELL(MEMORY_TYPE.Fanuc_G, 581, 0, 1); #endregion Fixed memory area /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Helper Function internal void AddNcAlarmToList(uint id, string message, DateTime dateTime, List alarms) { alarms.Add(new AlarmModel() { Id = id, Message = message, IsWarning = false, Process = 0, DateTime = dateTime }); } internal void AddAlarmToList(int id, short axisId, string message, int process, DateTime dateTime, List alarms) { alarms.Add(new AlarmModel() { Id = Convert.ToUInt32((id & 0xffff) | (axisId << 24)), // Set last byte with axisId in order to have unique ids Message = message, IsWarning = false, Process = process, DateTime = dateTime }); } internal void AddAlarmToList(uint id, string message, int process, List alarms) { alarms.Add(new AlarmModel() { Id = id, Message = message, IsWarning = false, Process = process }); } internal void AddPlcAlarmsToList(uint id, bool isWaring, bool restorationIsActive, List processes, List alarms) { alarms.Add(new PlcAlarmModel() { Id = id, IsWarning = isWaring, RestorationIsActive = restorationIsActive, Process = processes }); } #endregion Helper Function } }