Ejemplo n.º 1
0
        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";
            }
        }
Ejemplo n.º 2
0
        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");
        }
Ejemplo n.º 3
0
        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");
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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");
            }
        }