Пример #1
0
        private void btn_ConnectTIA(object sender, EventArgs e)
        {
            btn_Connect.Enabled = false;
            IList <TiaPortalProcess> processes = TiaPortal.GetProcesses();

            switch (processes.Count)
            {
            case 1:
                _tiaProcess = processes[0];
                MyTiaPortal = _tiaProcess.Attach();
                if (MyTiaPortal.GetCurrentProcess().Mode == TiaPortalMode.WithUserInterface)
                {
                    rdb_WithUI.Checked = true;
                }
                else
                {
                    rdb_WithoutUI.Checked = true;
                }


                if (MyTiaPortal.Projects.Count <= 0)
                {
                    txt_Status.Text     = "No TIA Portal Project was found!";
                    btn_Connect.Enabled = true;
                    return;
                }
                MyProject = MyTiaPortal.Projects[0];
                break;

            case 0:
                txt_Status.Text     = "No running instance of TIA Portal was found!";
                btn_Connect.Enabled = true;
                return;

            default:
                txt_Status.Text     = "More than one running instance of TIA Portal was found!";
                btn_Connect.Enabled = true;
                return;
            }
            txt_Status.Text            = _tiaProcess.ProjectPath.ToString();
            btn_Start.Enabled          = false;
            btn_Connect.Enabled        = true;
            btn_Dispose.Enabled        = true;
            btn_CompileHW.Enabled      = true;
            btn_CloseProject.Enabled   = true;
            btn_SearchProject.Enabled  = false;
            btn_Save.Enabled           = true;
            btn_AddHW.Enabled          = true;
            btnCreateProject.Enabled   = false;
            btnExportBlocks.Enabled    = true;
            btnExportTagTables.Enabled = true;
            btnImportBlock.Enabled     = true;
            btnImportTagTables.Enabled = true;
            btnImportUDT.Enabled       = true;
            btnExportUDT.Enabled       = true;
            btnHWConfig.Enabled        = true;
        }
Пример #2
0
 private void DisposeTIA(object sender, EventArgs e)
 {
     MyTiaPortal.Dispose();
     SetTextInRichTextBox(Color.Green, "TIA Portal disposed");
     btn_Start.Enabled         = true;
     btn_Dispose.Enabled       = false;
     btn_CloseProject.Enabled  = false;
     btn_SearchProject.Enabled = false;
     btn_Save.Enabled          = false;
 }
Пример #3
0
        private void DisposeTIA(object sender, EventArgs e)
        {
            MyTiaPortal.Dispose();
            txt_Status.Text = "TIA Portal disposed";

            btn_Start.Enabled         = true;
            btn_Dispose.Enabled       = false;
            btn_CloseProject.Enabled  = false;
            btn_SearchProject.Enabled = false;
            btn_CompileHW.Enabled     = false;
            btn_Save.Enabled          = false;
        }
Пример #4
0
        private void btn_Connect_Click(object sender, EventArgs e)
        {
            btn_Connect.Enabled = false;

            switch (processes.Count)
            {
            case 1:
                _tiaProcess = processes[0];
                MyTiaPortal = _tiaProcess.Attach();
                if (MyTiaPortal.GetCurrentProcess().Mode == TiaPortalMode.WithUserInterface)
                {
                    rdb_WithUI.Checked = true;
                }
                else
                {
                    rdb_WithoutUI.Checked = true;
                }
                if (MyTiaPortal.Projects.Count <= 0)
                {
                    txt_Status.Text     = "No TIA Portal Project was found!";
                    btn_Connect.Enabled = true;
                    return;
                }
                MyProject = MyTiaPortal.Projects[0];
                GenerateTreeView();
                tiaLibraryHelper.OpenGlobalLibrary(MyTiaPortal, textBox1);
                break;

            case 0:
                txt_Status.Text     = "No running instance of TIA Portal was found!";
                btn_Connect.Enabled = true;
                return;

            default:
                txt_Status.Text     = "More than one running instance of TIA Portal was found!";
                btn_Connect.Enabled = true;
                return;
            }
            txt_Status.Text           = _tiaProcess.ProjectPath.ToString();
            btn_startTIA.Enabled      = false;
            btn_Connect.Enabled       = true;
            btn_disposeTIA.Enabled    = true;
            btn_CompileHW.Enabled     = true;
            btn_CloseProject.Enabled  = true;
            btn_SearchProject.Enabled = false;
            btn_Save.Enabled          = true;
            btn_AddHW.Enabled         = true;
            btn_deleteChkDev.Enabled  = true;
            btn_refresh.Enabled       = true;
        }
Пример #5
0
 private void btn_disposeTIA_Click(object sender, EventArgs e)
 {
     MyTiaPortal.Dispose();
     txt_Status.Text           = "TIA Portal disposed";
     btn_startTIA.Enabled      = true;
     btn_disposeTIA.Enabled    = false;
     btn_CloseProject.Enabled  = false;
     btn_SearchProject.Enabled = false;
     btn_CompileHW.Enabled     = false;
     btn_Save.Enabled          = false;
     btn_NewProject.Enabled    = false;
     txt_ProjectName.Enabled   = false;
     txt_ProjectPath.Enabled   = false;
     btn_deleteChkDev.Enabled  = false;
     btn_refresh.Enabled       = false;
 }
Пример #6
0
        private void btn_ConnectTIA(object sender, EventArgs e)
        {
            btn_Connect.Enabled = false;
            IList <TiaPortalProcess> processes = TiaPortal.GetProcesses();

            switch (processes.Count)
            {
            case 1:
                _tiaProcess = processes[0];
                MyTiaPortal = _tiaProcess.Attach();
                if (MyTiaPortal.GetCurrentProcess().Mode == TiaPortalMode.WithUserInterface)
                {
                    rdb_WithUI.Checked = true;
                }
                else
                {
                    rdb_WithoutUI.Checked = true;
                }
                if (MyTiaPortal.Projects.Count <= 0)
                {
                    SetTextInRichTextBox(Color.Green, "No TIA Portal Project was found!");
                    btn_Connect.Enabled = true;
                    return;
                }
                MyProject = MyTiaPortal.Projects[0];
                break;

            case 0:
                SetTextInRichTextBox(Color.Red, "No running instance of TIA Portal was found!");
                btn_Connect.Enabled = true;
                return;

            default:
                SetTextInRichTextBox(Color.Red, "More than one running instance of TIA Portal was found!");
                btn_Connect.Enabled = true;
                return;
            }
            SetTextInRichTextBox(Color.Green, $"Connected to project\n{_tiaProcess.ProjectPath.ToString()}");
            btn_Start.Enabled         = false;
            btn_Connect.Enabled       = true;
            btn_Dispose.Enabled       = true;
            btn_CloseProject.Enabled  = true;
            btn_SearchProject.Enabled = false;
            btn_Save.Enabled          = true;
        }
Пример #7
0
        private async Task InitializeConnectionWithTiaPortalProject()
        {
            await Task.Run(() =>
            {
                if (!accessAvailable)
                {
                    IList <TiaPortalProcess> processes = TiaPortal.GetProcesses();

                    switch (processes.Count)
                    {
                    case 1:
                        _tiaProcess = processes[0];
                        MyTiaPortal = _tiaProcess.Attach();
                        break;

                    case 0:
                        throw new EngineeringTargetInvocationException(
                            "No running instance of TIA Portal was found!");

                    default:
                        throw new EngineeringTargetInvocationException(
                            "More than one running instance of TIA Portal was found!");
                    }

                    if (MyTiaPortal.Projects.Count <= 0)
                    {
                        throw new EngineeringTargetInvocationException(
                            "No open TIA Portal Project was found!");
                    }

                    MyProject = MyTiaPortal.Projects[0];

                    exclusiveAccess = MyTiaPortal.ExclusiveAccess("My Activity");
                    accessAvailable = true;
                }

                if (!transactionOpen)
                {
                    transaction     = exclusiveAccess.Transaction(MyProject, "No changes commited.");
                    transactionOpen = true;
                }
            }).ConfigureAwait(true);
        }
Пример #8
0
        private void DisposeTIA(object sender, EventArgs e)
        {
            MyTiaPortal.Dispose();
            txt_Status.Text = "TIA Portal disposed";

            btn_Start.Enabled          = true;
            btn_Dispose.Enabled        = false;
            btn_CloseProject.Enabled   = false;
            btn_SearchProject.Enabled  = false;
            btn_CompileHW.Enabled      = false;
            btn_Save.Enabled           = false;
            btnCreateProject.Enabled   = false;
            btnExportBlocks.Enabled    = false;
            btnExportTagTables.Enabled = false;
            btnImportBlock.Enabled     = false;
            btnImportTagTables.Enabled = false;
            btnImportUDT.Enabled       = false;
            btnExportUDT.Enabled       = false;
            btnHWConfig.Enabled        = false;
        }
Пример #9
0
 // close TIA Portal button
 // TODO remove, maybe it's not needed anymore?
 private void Btn_Close_Click(object sender, EventArgs e)
 {
     MyTiaPortal.Dispose();
     statusBox.AppendText("TIA Portal disposed");
     statusBox.AppendText(Environment.NewLine);
 }