private void refreshCpuInformation() { wCpuRunMode rm = MyCpu.getCpuRunMode(); lblModel.Text = ("Model\n" + MyCpu.orderCode); lblSerialNumber.Text = ("Serial Number\n" + MyCpu.serialNumber); lblModuleTypeName.Text = ("Module Type Name\n" + MyCpu.moduleTypeName); lblModuleName.Text = ("Module Name\n" + MyCpu.moduleName); populateBlockList(MyCpu); if (rm == wCpuRunMode.Run) { runToolStripMenuItem.Enabled = false; stopToolStripMenuItem.Enabled = true; lblPlcMode.Text = "PLC Mode: Run"; } else if (rm == wCpuRunMode.Stop) { runToolStripMenuItem.Enabled = true; stopToolStripMenuItem.Enabled = false; lblPlcMode.Text = "PLC Mode: Stop"; } else { runToolStripMenuItem.Enabled = true; stopToolStripMenuItem.Enabled = true; lblPlcMode.Text = "PLC Mode: Unknown"; } }
public void download(string ipAddress, int rack, int slot, bool eraseCpu) { wCpuRunMode rm = wCpuRunMode.Unknown; bool skippedSystemData = false; if (eraseCpu) { this.erase(); } foreach (wCpuBlock b in this.blocks) { if (b.blockType == wBlockType.SDB && rm != wCpuRunMode.Stop && !skippedSystemData) { rm = this.getCpuRunMode(); if (rm != wCpuRunMode.Stop) { string message = "The PLC needs to be stopped to load System Data" + System.Environment.NewLine; message = message + "Would you like to stop the PLC?"; DialogResult dr = MessageBox.Show(message, "", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { this.setCpuRunMode(wCpuRunMode.Stop); } else { MessageBox.Show("System Data will not be loaded"); } } } if (b.blockType == wBlockType.SDB && skippedSystemData) { continue; } if (b.blockType != wBlockType.SFC && b.blockType != wBlockType.SFB) { int result; result = MyClient.Download(b.blockNumber, b.data, b.data.Length); if (result == 0) { Console.WriteLine("Downloaded " + b.ToString()); } else { string error = "Could not download " + b.ToString(); throw new wPlcException(error, result); } } } Console.Write("Download Complete"); }
public void setCpuRunMode(wCpuRunMode runMode) { int result; wCpuRunMode currentRunMode = this.getCpuRunMode(); if (runMode == wCpuRunMode.Run) { if (currentRunMode == wCpuRunMode.Run) { Console.WriteLine("PLC is already in Run"); } else { result = MyClient.PlcHotStart(); if (result == 0) { Console.WriteLine("PLC has started"); } else { string error = "Could not start PLC"; throw new wPlcException(error, result); } } } else if (runMode == wCpuRunMode.Stop) { if (currentRunMode == wCpuRunMode.Stop) { Console.WriteLine("PLC is already in Stop"); } else { result = MyClient.PlcStop(); if (result == 0) { Console.WriteLine("PLC has stopped"); } else { string error = "Could not stop PLC"; throw new wPlcException(error, result); } } } else { Console.WriteLine("Unknown is not a valid CPU Run Mode"); } }
public wCpuRunMode getCpuRunMode() { int result; int rm = (int)wCpuRunMode.Unknown; result = MyClient.PlcGetStatus(ref rm); wCpuRunMode runMode = (wCpuRunMode)rm; if (result != 0) { string error = "Failed to get Run Mode"; throw new wPlcException(error, result); } else { Console.WriteLine("PLC Run Mode is " + runMode); } return(runMode); }
public void setCpuRunMode(wCpuRunMode runMode) { int result; wCpuRunMode currentRunMode = this.getCpuRunMode(); if (runMode == wCpuRunMode.Run) { if (currentRunMode == wCpuRunMode.Run) { Console.WriteLine("PLC is already in Run"); } else { result = MyClient.PlcHotStart(); if (result == 0) { Console.WriteLine("PLC has started"); } else { string error = "Could not start PLC"; throw new wPlcException(error, result); } } } else if (runMode == wCpuRunMode.Stop) { if (currentRunMode == wCpuRunMode.Stop) { Console.WriteLine("PLC is already in Stop"); } else { result = MyClient.PlcStop(); if (result == 0) { Console.WriteLine("PLC has stopped"); } else { string error = "Could not stop PLC"; throw new wPlcException(error, result); } } } else { Console.WriteLine("Unknown is not a valid CPU Run Mode"); } }