diff --git a/CMS_CORE_Application/Form1.cs b/CMS_CORE_Application/Form1.cs index 744dcf9..b852d41 100644 --- a/CMS_CORE_Application/Form1.cs +++ b/CMS_CORE_Application/Form1.cs @@ -45,6 +45,7 @@ namespace CMS_CORE_Application NCType = NcCombo.SelectedItem.ToString().Trim(); NCIp = TXTip.Text.Trim(); NCPort = ushort.Parse(TXTport.Text.Trim()); + if (NCType != "") { Connect.Enabled = false; @@ -71,18 +72,15 @@ namespace CMS_CORE_Application List Msg = new List(); List ncAlarms = new List(); List Lines = new List(); - PostPowerOnModel postPowerOn = new PostPowerOnModel(); - AxisResetDataModel axisResetDataModel = new AxisResetDataModel(); - List counters = new List(); + List keys = new List(); N = SetNcByType(); CmsError cmsError = N.NC_Connect(); cmsError = N.NC_RModelName(ref ModelName); - N.NC_RProcessesNum(ref procnum); - N.NC_RMachineNumber(ref MachNumber); bool error = false; string serial = ""; + while (true) { cmsError = N.PROC_RMode(1, ref mode); @@ -115,12 +113,8 @@ namespace CMS_CORE_Application error = true; SetError(Lines, cmsError); } - cmsError = N.NC_RSoftwareVersion(ref SFTVersion); - if (cmsError.IsError()) - { - error = true; - SetError(Lines, cmsError); - } + + cmsError = N.NC_RDateTime(ref NcTime); if (cmsError.IsError()) { @@ -129,6 +123,14 @@ namespace CMS_CORE_Application } cmsError = N.NC_RSerialNumber(ref serial); + if (cmsError.IsError()) + { + error = true; + SetError(Lines, cmsError); + } + + cmsError = N.PLC_WSoftKey(1); + sw.Stop(); if (!this.IsDisposed && this.InvokeRequired) @@ -158,7 +160,7 @@ namespace CMS_CORE_Application } error = false; - //sw.Stop(); + if ((200 - (int)sw.ElapsedMilliseconds) < 0) Debug.WriteLine("Ritardo " + sw.ElapsedMilliseconds); @@ -350,8 +352,8 @@ namespace CMS_CORE_Application { if (t != null) t.Abort(); - if (toolThread != null) - toolThread.Abort(); + //if (toolThread != null) + // toolThread.Abort(); TXTPath1.Text = ""; TXTStat1.Text = ""; diff --git a/CMS_CORE_Library/CMS_CORE_Library.csproj b/CMS_CORE_Library/CMS_CORE_Library.csproj index 741673f..85952c8 100644 --- a/CMS_CORE_Library/CMS_CORE_Library.csproj +++ b/CMS_CORE_Library/CMS_CORE_Library.csproj @@ -98,22 +98,24 @@ MinimumRecommendedRules.ruleset - - ..\..\..\..\..\..\..\Program Files (x86)\OSAI\WinNBI\UserLibrary\CndexLinkDotNet.dll + + False + libs\CndexLinkDotNet.dll False - ..\..\..\..\..\..\..\Program Files (x86)\Siemens\MotionControl\siemens\sinumerik\hmi\base\Siemens.Sinumerik.Operate.Services.dll + libs\Siemens.Sinumerik.Operate.Services.dll False - ..\..\..\..\..\..\..\Program Files (x86)\Siemens\MotionControl\siemens\sinumerik\hmi\base\Siemens.Sinumerik.Operate.Services.Wrapper.dll + libs\Siemens.Sinumerik.Operate.Services.Wrapper.dll + @@ -879,30 +881,30 @@ - + Always - - + + Always - - + + Always - - + + Always - - + + Always - - + + Always - - + + Always - - + + Always - + \ No newline at end of file diff --git a/CMS_CORE_Library/DataStructures.cs b/CMS_CORE_Library/DataStructures.cs index 3ec4f91..2609961 100644 --- a/CMS_CORE_Library/DataStructures.cs +++ b/CMS_CORE_Library/DataStructures.cs @@ -263,6 +263,13 @@ namespace CMS_CORE_Library public uint Value; } + public class SoftKeysModel + { + public int Id; + public bool Active; + public bool Value; + } + #endregion Data structor models /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -327,5 +334,11 @@ namespace CMS_CORE_Library internal static CmsError SIEMENS_HMI_NOT_RUNNING_ERROR = new CmsError(CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING, "CMS-Core-Error: Siemens HMI is not Running / Ready"); #endregion Cms Errors Codes + + #region Constants + + public const int SOFTKEY_NUMBER = 128; + + #endregion Constants } } \ No newline at end of file diff --git a/CMS_CORE_Library/Demo/Nc_Demo.cs b/CMS_CORE_Library/Demo/Nc_Demo.cs index 5fb746a..16103be 100644 --- a/CMS_CORE_Library/Demo/Nc_Demo.cs +++ b/CMS_CORE_Library/Demo/Nc_Demo.cs @@ -10,6 +10,7 @@ using System.IO; using System.Linq; using System.ServiceModel; using System.ServiceModel.Description; +using System.Threading; using static CMS_CORE_Library.DataStructures; namespace CMS_CORE.Demo @@ -58,7 +59,9 @@ namespace CMS_CORE.Demo public override CmsError NC_Disconnect() { - cf.Close(); + if (cf != null) + cf.Close(); + Connected = false; return NO_ERROR; @@ -379,15 +382,15 @@ namespace CMS_CORE.Demo public override CmsError PLC_RFunctionAccess(ref List functions) { - List readValue = new List(); + List readedValues = new List(); // Read functions access data from memory - CmsError cmsError = MEM_RWIntegerList(R, 0, MEMORY_ADDRESS.FUNCTION_ACCESS.MemType, MEMORY_ADDRESS.FUNCTION_ACCESS.Address, 4, ref readValue); + CmsError cmsError = MEM_RWIntegerList(R, 0, MEMORY_ADDRESS.FUNCTION_ACCESS.MemType, MEMORY_ADDRESS.FUNCTION_ACCESS.Address, 4, ref readedValues); if (cmsError.IsError()) return cmsError; functions = new List(); // Convert int into to true/false array - bool[] bits = new BitArray(readValue.ToArray()).Cast().ToArray(); + bool[] bits = new BitArray(readedValues.ToArray()).Cast().ToArray(); // Convert array into structured data for (int i = 0; i < bits.Count(); i++) { @@ -420,7 +423,7 @@ namespace CMS_CORE.Demo Percentage = percentage }; } - + return NO_ERROR; } @@ -431,11 +434,11 @@ namespace CMS_CORE.Demo counters = new List(); List readedValues = new List(); // Read on data from memory - CmsError cmsError = MEM_RWIntegerList(R, 0, MEMORY_ADDRESS.COUNTERS.MemType, MEMORY_ADDRESS.COUNTERS.Address, MEMORY_ADDRESS.COUNTERS.Size / 4 , ref readedValues); + CmsError cmsError = MEM_RWIntegerList(R, 0, MEMORY_ADDRESS.COUNTERS.MemType, MEMORY_ADDRESS.COUNTERS.Address, MEMORY_ADDRESS.COUNTERS.Size / 4, ref readedValues); if (cmsError.IsError()) return cmsError; - - for ( int i = 0; i < readedValues.Count; i++) + + for (int i = 0; i < readedValues.Count; i++) { counters.Add(new CounterModel() { @@ -475,6 +478,120 @@ namespace CMS_CORE.Demo // return NO_ERROR; //} + public override CmsError PLC_RSoftKeys(ref List softKeys) + { + try + { + softKeys = new List(); + List readedValues = new List(); + + int memorySize = (MEMORY_ADDRESS.SOFT_KEYS_VALUE.Size + MEMORY_ADDRESS.SOFT_KEYS_CLICKABLE.Size); + + // Read on data from memory + CmsError cmsError = MEM_RWIntegerList(R, 0, + MEMORY_ADDRESS.SOFT_KEYS_VALUE.MemType, + MEMORY_ADDRESS.SOFT_KEYS_VALUE.Address, + memorySize / 4, + ref readedValues); + + if (cmsError.IsError()) + return cmsError; + + bool[] bits = new BitArray(readedValues.ToArray()).Cast().ToArray(); + + // Convert array into structured data + for (int i = 0; i < bits.Count() / 2; i++) + { + softKeys.Add(new SoftKeysModel() + { + Id = i, + Value = bits[i], + Active = bits[i + 128] + }); + } + + return NO_ERROR; + } + catch (Exception ex) + { + return ManageException(ex); + } + } + + public override CmsError PLC_WSoftKey(uint id) + { + try + { + CmsError cmsError; + bool readedValue = false; + bool writeValue = true; + // Check ACK + cmsError = MEM_RWBoolean(R, 0, MEMORY_ADDRESS.SOFT_KEYS_ACK.MemType, MEMORY_ADDRESS.SOFT_KEYS_ACK.Address, (int)id, ref readedValue); + if (cmsError.IsError()) + return cmsError; + + // If PLC it's performing another request then return + if (readedValue) + return NO_ERROR; + + // Check bit range + if (id > SOFTKEY_NUMBER - 1) + return INCORRECT_PARAMETERS_ERROR; + + // Write data + cmsError = MEM_RWBoolean(W, 0, MEMORY_ADDRESS.SOFT_KEYS_CLICKED.MemType, MEMORY_ADDRESS.SOFT_KEYS_CLICKED.Address, (int)id, ref writeValue); + if (cmsError.IsError()) + return cmsError; + + cmsError = ResetStrobe((int)id, MEMORY_ADDRESS.SOFT_KEYS_CLICKED, MEMORY_ADDRESS.SOFT_KEYS_ACK); + if (cmsError.IsError()) + return cmsError; + } + catch (Exception ex) + { + return ManageException(ex); + } + + return NO_ERROR; + } + + private CmsError ResetStrobe(int id, MEMORY_CELL strobeMemoryCell, MEMORY_CELL ackMemoryCell) + { + int n = 5; + bool readedValue = false; + bool writeValue = false; + CmsError cmsError; + do + { + // Check ACK + cmsError = MEM_RWBoolean(R, 0, ackMemoryCell.MemType, ackMemoryCell.Address, id, ref readedValue); + + if (cmsError.IsError()) + return cmsError; + + // If true reset strobe + if (readedValue == true) + { + // Reset strobe to 0 + cmsError = MEM_RWBoolean(W, 0, strobeMemoryCell.MemType, strobeMemoryCell.Address, id, ref writeValue); + if (cmsError.IsError()) + return cmsError; + // Exit from cycle + n = 0; + } + else + { + // Decrement + n--; + // Wait befor next cycle + Thread.Sleep(20); + } + + } while (n > 0); + + return cmsError; + } + #endregion PLC High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -575,27 +692,28 @@ namespace CMS_CORE.Demo // Convert Byte into true/false array BitArray bits = new BitArray(new byte[] { bytes[0] }); //1st byte -> 0 : Proccess type (AUX-WORK), 1: Process in alarm status, 2: Run, 3: Hold, 4: Read, 5: PartProgramVisible + // Populate response structure processData.Type = bits[0] ? "WORK" : "AUX"; processData.IsInAlarm = bits[1]; // Choose process status - if (bits[2]) - processData.Status = "RUN"; + if (bits[3]) + processData.Status = "HOLD"; else { - if (bits[3]) - processData.Status = "HOLD"; + if (bits[2]) + processData.Status = "RUN"; else processData.Status = "READY"; } - // Get Reps from 2nd byte - processData.Reps = bytes[1]; - // Get part program info visibility processData.Visible = bits[4]; + // Get Reps from 2nd byte + processData.Reps = bytes[1]; + return NO_ERROR; } @@ -1333,22 +1451,26 @@ namespace CMS_CORE.Demo internal const int STARTING_ADDRESS = 0; internal static MEMORY_CELL FUNCTION_ACCESS = new MEMORY_CELL(MEMORY_TYPE.Demo, 13, 16); - internal static MEMORY_CELL STROBE = new MEMORY_CELL(MEMORY_TYPE.Demo, 29, 16); - internal static MEMORY_CELL PRE_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Demo, 45, 1); - internal static MEMORY_CELL PRE_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Demo, 46, 1); + internal static MEMORY_CELL PRE_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Demo, 29, 1); + internal static MEMORY_CELL PRE_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Demo, 30, 1); - internal static MEMORY_CELL POST_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Demo, 47, 1); - internal static MEMORY_CELL POST_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Demo, 48, 1); + internal static MEMORY_CELL POST_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Demo, 31, 1); + internal static MEMORY_CELL POST_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Demo, 32, 1); - internal static MEMORY_CELL PRE_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Demo, 49, 1); - internal static MEMORY_CELL POST_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Demo, 50, 1); + internal static MEMORY_CELL PRE_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Demo, 33, 1); + internal static MEMORY_CELL POST_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Demo, 34, 1); - internal static MEMORY_CELL AXIS_RESET_PROCEDURE = new MEMORY_CELL(MEMORY_TYPE.Demo, 51, 7, 2); + internal static MEMORY_CELL AXIS_RESET_PROCEDURE = new MEMORY_CELL(MEMORY_TYPE.Demo, 35, 7, 2); - internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Demo, 55, 0, 16); + internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Demo, 39, 0, 16); - internal static MEMORY_CELL COUNTERS = new MEMORY_CELL(MEMORY_TYPE.Demo, 71, 0, 40); + internal static MEMORY_CELL COUNTERS = new MEMORY_CELL(MEMORY_TYPE.Demo, 55, 0, 40); + + internal static MEMORY_CELL SOFT_KEYS_VALUE = new MEMORY_CELL(MEMORY_TYPE.Demo, 119, 0, 16); + internal static MEMORY_CELL SOFT_KEYS_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Demo, 135, 0, 16); + internal static MEMORY_CELL SOFT_KEYS_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Demo, 151, 16); + internal static MEMORY_CELL SOFT_KEYS_ACK = new MEMORY_CELL(MEMORY_TYPE.Demo, 167, 16); } #endregion Memory addresses diff --git a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs index e4605a1..4364bfd 100644 --- a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs +++ b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs @@ -5,6 +5,7 @@ using System.Globalization; using System.IO; using System.Linq; using System.Threading; +using System.Windows.Forms; using static CMS_CORE_Library.DataStructures; #pragma warning disable 1591 @@ -141,7 +142,7 @@ namespace CMS_CORE.Fanuc return cmsError; SN = Cnc_SeriesNum; - + return NO_ERROR; } @@ -360,33 +361,48 @@ namespace CMS_CORE.Fanuc return NO_ERROR; } + // Get pre and post power on data public override CmsError PLC_RPowerOnData(ref PreAndPostPowerOnModel powerOnModel) { return NO_ERROR; } + // Write power on data public override CmsError PLC_WPowerOnData(uint id, bool value) { return NO_ERROR; } + // Get functionality data public override CmsError PLC_RFunctionAccess(ref List functions) { functions = new List(); return NO_ERROR; } + // Get axis reset procedure data public override CmsError PLC_RAxesResetData(ref AxisResetDataModel axisResetData) { return NO_ERROR; } + // Get all the machine counters public override CmsError PLC_RMachineCounters(ref List counters) { return NO_ERROR; } + public override CmsError PLC_RSoftKeys(ref List softKeys) + { + return NO_ERROR; + } + + public override CmsError PLC_WSoftKey(uint id) + { + return NO_ERROR; + } + #endregion PLC High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1723,18 +1739,32 @@ namespace CMS_CORE.Fanuc //Read Language from NC PARAM cmsError = NC_RParam((short)PARAM_LING_FANUC.Address, ref FanucLanguage); if (cmsError.IsError()) + { + MessageBox.Show(cmsError.message); return cmsError; + } //Execute the method nReturn1 = Focas1.cnc_sysinfo(nLibHandle[0], tmpNode); + MessageBox.Show("return 1 dopo metodo " + nReturn1); + node = tmpNode; nReturn2 = Focas1.cnc_rdcncid(nLibHandle[0], out SerialNumber); + MessageBox.Show("return 1 dopo n return 2" + nReturn1); //Throw Exception if there's an error if (nReturn1 != 0) + { + MessageBox.Show("return 1 " + nReturn1); + return GetNcError(nReturn1); + } else if (nReturn2 != 0 && nReturn2 != 1) + { + MessageBox.Show("return 2 " + nReturn2); + return GetNcError(nReturn2); + } else { //Setup the name @@ -1959,7 +1989,7 @@ namespace CMS_CORE.Fanuc case Focas1.focas_ret.EW_STOP: return ErrororOwner + "CNC is not running"; case Focas1.focas_ret.EW_PASSWD: return ErrororOwner + "protection data error"; } - return ErrororOwner + "Generic Error On Function"; + return ErrororOwner + "Generic Error On Function, Error Number: " + Val; } #endregion Subordinate Private Functions diff --git a/CMS_CORE_Library/Nc.cs b/CMS_CORE_Library/Nc.cs index d7a5edf..7fc71ec 100644 --- a/CMS_CORE_Library/Nc.cs +++ b/CMS_CORE_Library/Nc.cs @@ -398,14 +398,14 @@ namespace CMS_CORE /** * - * Write the status of the Power on data ( Pre-Power-On / Post-Power-On ) + * 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 - * New value of the power on data + * Reference to the value of the power on data **/ public abstract CmsError PLC_WPowerOnData(uint id, bool value); @@ -427,7 +427,7 @@ namespace CMS_CORE * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours - * Reference to the data of axes reset procedure + * Reference to the axes reset procedure data * **/ public abstract CmsError PLC_RAxesResetData(ref AxisResetDataModel axisResetData); @@ -439,11 +439,26 @@ namespace CMS_CORE * Compatibility: Fanuc | Osai | Demo | Siemens * * Returns an error when an internal or a library error occours - * Reference to the data of counters + * Reference to the counters data * **/ public abstract CmsError PLC_RMachineCounters(ref List counters); + + /** + * + * 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_RSoftKeys(ref List softKeys); + + public abstract CmsError PLC_WSoftKey(uint id); + #endregion /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/CMS_CORE_Library/Osai/Nc_Osai.cs b/CMS_CORE_Library/Osai/Nc_Osai.cs index f464cbd..86c4525 100644 --- a/CMS_CORE_Library/Osai/Nc_Osai.cs +++ b/CMS_CORE_Library/Osai/Nc_Osai.cs @@ -413,6 +413,16 @@ namespace CMS_CORE.Osai return NO_ERROR; } + public override CmsError PLC_RSoftKeys(ref List softKeys) + { + return NO_ERROR; + } + + public override CmsError PLC_WSoftKey(uint id) + { + return NO_ERROR; + } + #endregion PLC High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 113c31e..0f695b4 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -315,6 +315,15 @@ namespace CMS_CORE.Siemens return NO_ERROR; } + public override CmsError PLC_RSoftKeys(ref List softKeys) + { + return NO_ERROR; + } + + public override CmsError PLC_WSoftKey(uint id) + { + return NO_ERROR; + } #endregion PLC High-level data /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/CMS_CORE_Library/libs/CndexLinkDotNet.dll b/CMS_CORE_Library/libs/CndexLinkDotNet.dll new file mode 100644 index 0000000..14f023f Binary files /dev/null and b/CMS_CORE_Library/libs/CndexLinkDotNet.dll differ diff --git a/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.Wrapper.dll b/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.Wrapper.dll new file mode 100644 index 0000000..b1cd4d2 Binary files /dev/null and b/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.Wrapper.dll differ diff --git a/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.dll b/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.dll new file mode 100644 index 0000000..ebac96a Binary files /dev/null and b/CMS_CORE_Library/libs/Siemens.Sinumerik.Operate.Services.dll differ diff --git a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Nc_Demo_Db.db b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Nc_Demo_Db.db index c5955ce..c4db403 100644 Binary files a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Nc_Demo_Db.db and b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Nc_Demo_Db.db differ diff --git a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Server/Service/LibraryService.cs b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Server/Service/LibraryService.cs index 7cc922b..589254e 100644 --- a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Server/Service/LibraryService.cs +++ b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Server/Service/LibraryService.cs @@ -142,8 +142,8 @@ namespace Nc_Demo_Application.Server.Service public void GetBoolean(string index, string bit, out bool value) { string binaryByte = DatabaseController.getInstance().GetBinaryByteValue(Convert.ToInt32(index)); - binaryByte = binaryByte.Substring(8 - Convert.ToInt32(bit + 1), 1); - value = Convert.ToBoolean(binaryByte); + binaryByte = binaryByte.Substring(8 - Convert.ToInt32(bit), 1); + value = binaryByte == "0" ? false : true; } public void GetByte(string index, out byte value) diff --git a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Views/DemoApplicationForm.cs b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Views/DemoApplicationForm.cs index c7e973d..8ca937f 100644 --- a/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Views/DemoApplicationForm.cs +++ b/CMS_CORE_Nc_Demo_Application/Nc_Demo_Application/Views/DemoApplicationForm.cs @@ -228,7 +228,7 @@ namespace Nc_Demo_Application // Update cell integerCell.Value = Convert.ToInt32(binaryIntegerCellValue, 2).ToString(); } - if(e.RowIndex == 51 && (int)decimalCell.Value == 0 && !axisResetRunning) + if(e.RowIndex == 35 && (int)decimalCell.Value == 0 && !axisResetRunning) { axisResetRunning = true; Task.Run(() => AxisResetProcedureAsync(binaryMemoryGridView.Rows[e.RowIndex]));