private void btnNext_Click(object sender, EventArgs e)
        {
            try
            {
                errorProvider1.Clear();
                if (string.IsNullOrEmpty(txtChannelName.Text) ||
                    string.IsNullOrWhiteSpace(txtChannelName.Text))
                {
                    errorProvider1.SetError(txtChannelName, "The channel name is empty");
                    return;
                }
                string ConnType = $"{cboxConnType.SelectedItem}";
                TabControlSiemens.SelectedIndex = cboxConnType.SelectedIndex;
                errorProvider1.Clear();
                switch (ConnType)
                {
                case "SerialPort":
                    if ("Finish".Equals(btnNext.Text))
                    {
                        DISerialPort dis = new DISerialPort()
                        {
                            ChannelId    = objChannelManager.Channels.Count + 1,
                            ChannelName  = txtChannelName.Text,
                            ChannelTypes = _DriverTypes,
                            CPU          = $"{cboxModel.Text}",
                            PortName     = $"{cboxPort.SelectedItem}",
                            BaudRate     = int.Parse($"{cboxBaudRate.SelectedItem}"),
                            DataBits     = int.Parse($"{cboxDataBits.SelectedItem}"),
                            StopBits     = (StopBits)System.Enum.Parse(typeof(StopBits), $"{cboxStopBits.SelectedItem}"),
                            Parity       = (Parity)System.Enum.Parse(typeof(Parity), $"{cboxParity.SelectedItem}"),
                            Handshake    = (Handshake)System.Enum.Parse(typeof(Handshake),
                                                                        $"{cboxHandshake.SelectedItem}"),
                            ConnectionType = ConnType,
                            Mode           = $"PPI",
                            Description    = txtDesc.Text
                        };
                        if (ch == null)
                        {
                            dis.ChannelId = objChannelManager.Channels.Count + 1;

                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(dis, true);
                            }

                            EventscadaLogger?.Invoke(1, "ChannelManager", $"{DateTime.Now}", "Add Channel");
                        }
                        else
                        {
                            dis.ChannelId = ch.ChannelId;
                            dis.Devices   = ch.Devices;

                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(dis, false);
                            }

                            EventscadaLogger?.Invoke(1, "ChannelManager", $"{DateTime.Now}", "Editor Channel");
                        }
                        Close();
                    }
                    btnNext.Text     = "Finish";
                    btnBlack.Enabled = true;

                    break;

                case "Ethernet":
                    if ("Finish".Equals(btnNext.Text))
                    {
                        DIEthernet die = null;

                        die = new DIEthernet()
                        {
                            ChannelName    = txtChannelName.Text,
                            ChannelTypes   = _DriverTypes,
                            CPU            = $"{cboxModel.Text}",
                            Rack           = (short)txtRack.Value,
                            Slot           = int.Parse($"{ txtSlot.Value}"),
                            IPAddress      = txtIPAddress.Text,
                            Port           = (short)txtPort.Value,
                            ConnectionType = ConnType,
                            Mode           = $"TCP",
                        };

                        if (ch == null)
                        {
                            die.ChannelId = objChannelManager.Channels.Count + 1;
                            die.Devices   = new List <Device>();
                            eventChannelChanged?.Invoke(die, true);
                            EventscadaLogger?.Invoke(1, "ChannelManager", $"{DateTime.Now}", "Add Channel");
                        }
                        else
                        {
                            die.ChannelId = ch.ChannelId;
                            die.Devices   = ch.Devices;
                            eventChannelChanged?.Invoke(die, false);
                            EventscadaLogger?.Invoke(1, "ChannelManager", $"{DateTime.Now}", "Editor Channel");
                        }
                        Close();
                    }
                    btnNext.Text     = "Finish";
                    btnBlack.Enabled = true;

                    break;
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(GetType().Name, ex.Message);
            }
        }
        public void InitializeService(Channel ch)
        {
            try
            {
                //=================================================================



                if (Channels == null)
                {
                    return;
                }

                Channels.Add(ch);
                IModbusAdapter DriverAdapter = null;
                foreach (Device dv in ch.Devices)
                {
                    try
                    {
                        switch (ch.ConnectionType)
                        {
                        case "SerialPort":
                            DISerialPort dis = (DISerialPort)ch;
                            SerialPort   sp  = new SerialPort(dis.PortName, dis.BaudRate, dis.Parity, dis.DataBits, dis.StopBits)
                            {
                                Handshake = dis.Handshake
                            };


                            switch (dis.Mode)
                            {
                            case "RTU":
                                DriverAdapter = new ModbusRTUMaster(dv.SlaveId, sp);
                                rtu.Add(ch.ChannelName, (ModbusRTUMaster)DriverAdapter);
                                break;

                            case "ASCII":
                                DriverAdapter = new ModbusASCIIMaster(dv.SlaveId, sp);
                                ascii.Add(ch.ChannelName, (ModbusASCIIMaster)DriverAdapter);
                                break;
                            }

                            break;

                        case "Ethernet":
                            DIEthernet die = (DIEthernet)ch;
                            DriverAdapter = new ModbusTCPMaster(dv.SlaveId, die.IPAddress, die.Port);
                            mbe.Add(ch.ChannelName, (ModbusTCPMaster)DriverAdapter);
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        EventscadaException?.Invoke(GetType().Name, ex.Message);
                    }
                    foreach (DataBlock db in dv.DataBlocks)
                    {
                        DataBlockCollection.DataBlocks.Add($"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}", db);
                        foreach (Tag tg in db.Tags)
                        {
                            TagCollection.Tags.Add(
                                $"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}.{tg.TagName}", tg);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(GetType().Name, ex.Message);
            }
        }
        private void XChannelForm_Load(object sender, EventArgs e)
        {
            try
            {
                cboxPort.Items.Clear();
                cboxBaudRate.Items.Clear();
                cboxPort.Items.AddRange(SerialPort.GetPortNames());
                cboxBaudRate.Items.AddRange(new string[] { "1200", "2400", "4800", "9600", "14400", "19200", "28800", "38400", "56000", "57600", "115200" });
                cboxDataBits.Items.AddRange(new string[] { "7", "8" });
                cboxParity.Items.AddRange(System.Enum.GetNames(typeof(Parity)));
                cboxStopBits.Items.AddRange(System.Enum.GetNames(typeof(StopBits)));
                cboxHandshake.Items.AddRange(System.Enum.GetNames(typeof(Handshake)));

                cboxModel.DataSource = System.Enum.GetNames(typeof(SiemensPLCS));

                if (ch != null)
                {
                    cboxConnType.Enabled = false;
                    Text = "Edit Channel   " + ch.ChannelTypes;
                    txtChannelName.Text       = ch.ChannelName;
                    cboxConnType.SelectedItem = $"{ch.ConnectionType}";
                    cboxModel.SelectedItem    = $"{ch.CPU}";
                    txtDesc.Text = ch.ChannelName;
                    switch (ch.ConnectionType)
                    {
                    case "SerialPort":
                        DISerialPort dis = (DISerialPort)ch;
                        cboxPort.SelectedItem      = dis.PortName;
                        cboxBaudRate.SelectedItem  = $"{dis.BaudRate}";
                        cboxDataBits.SelectedItem  = $"{dis.DataBits}";
                        cboxParity.SelectedItem    = $"{dis.Parity}";
                        cboxStopBits.SelectedItem  = $"{dis.StopBits}";
                        cboxHandshake.SelectedItem = $"{dis.Handshake}";


                        break;

                    case "Ethernet":

                        DIEthernet die = (DIEthernet)ch;
                        txtIPAddress.Text = die.IPAddress;
                        txtPort.Value     = die.Port;
                        txtSlot.Value     = die.Slot;
                        txtRack.Value     = die.Rack;
                        break;
                    }
                }
                else
                {
                    cboxConnType.Enabled = true;
                    Text = "Add Channel    " + _DriverTypes;
                    cboxConnType.SelectedIndex  = 0;
                    cboxPort.SelectedIndex      = 0;
                    cboxBaudRate.SelectedIndex  = 3;
                    cboxDataBits.SelectedIndex  = 1;
                    cboxParity.SelectedIndex    = 0;
                    cboxStopBits.SelectedIndex  = 1;
                    cboxHandshake.SelectedIndex = 0;
                }
            }
            catch (Exception)
            {
                return;
            }
        }
        private void btnNext_Click(object sender, EventArgs e)
        {
            try
            {
                dxErrorProvider1.ClearErrors();
                if (string.IsNullOrEmpty(txtChannelName.Text) ||
                    string.IsNullOrWhiteSpace(txtChannelName.Text))
                {
                    dxErrorProvider1.SetError(txtChannelName, "The channel name is empty");
                    return;
                }
                var ConnType = $"{cboxConnType.SelectedItem}";
                xtraTabControl1.SelectedTabPageIndex = cboxConnType.SelectedIndex + 1;
                dxErrorProvider1.ClearErrors();
                switch (ConnType)
                {
                case "SerialPort":
                    if ("Finish".Equals(btnNext.Text))
                    {
                        DISerialPort dis = new DISerialPort()
                        {
                            ChannelId    = objChannelManager.Channels.Count + 1,
                            ChannelName  = txtChannelName.Text,
                            ChannelTypes = "Panasonic",
                            CPU          = string.Empty,
                            PortName     = $"{cboxPort.SelectedItem}",
                            BaudRate     = int.Parse($"{cboxBaudRate.SelectedItem}"),
                            DataBits     = int.Parse($"{cboxDataBits.SelectedItem}"),
                            StopBits     = (StopBits)System.Enum.Parse(typeof(StopBits), $"{cboxStopBits.SelectedItem}"),
                            Parity       = (Parity)System.Enum.Parse(typeof(Parity), $"{cboxParity.SelectedItem}"),
                            Handshake    = (Handshake)System.Enum.Parse(typeof(Handshake),
                                                                        $"{cboxHandshake.SelectedItem}"),
                            ConnectionType = ConnType,
                            Mode           = $"SerialPort",
                            Description    = txtDesc.Text
                        };
                        if (ch == null)
                        {
                            dis.ChannelId = objChannelManager.Channels.Count + 1;
                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(dis, true);
                            }
                        }
                        else
                        {
                            dis.ChannelId = ch.ChannelId;
                            dis.Devices   = ch.Devices;
                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(dis, false);
                            }
                        }
                    }
                    btnNext.Text     = "Finish";
                    btnBlack.Enabled = true;

                    break;

                case "Ethernet":
                    if ("Finish".Equals(btnNext.Text))
                    {
                        DIEthernet die = null;

                        die = new DIEthernet()
                        {
                            ChannelName    = txtChannelName.Text,
                            ChannelTypes   = "Panasonic",
                            CPU            = "Panasonic",
                            Rack           = 0,
                            Slot           = 0,
                            IPAddress      = txtIPAddress.Text,
                            Port           = (short)txtPort.Value,
                            ConnectionType = ConnType,
                            Mode           = "TCP"
                        };

                        if (ch == null)
                        {
                            die.ChannelId = objChannelManager.Channels.Count + 1;
                            die.Devices   = new List <Device>();
                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(die, true);
                            }
                        }
                        else
                        {
                            die.ChannelId = ch.ChannelId;
                            die.Devices   = ch.Devices;
                            if (eventChannelChanged != null)
                            {
                                eventChannelChanged(die, false);
                            }
                        }
                    }
                    btnNext.Text     = "Finish";
                    btnBlack.Enabled = true;

                    break;
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(this.GetType().Name, ex.Message);
            }
        }
        public void InitializeService(Channel ch)
        {
            try
            {
                //=================================================================

                if (Channels == null)
                {
                    return;
                }

                Channels.Add(ch);


                IDriverAdapter DriverAdapter = null;
                foreach (Device dv in ch.Devices)
                {
                    try
                    {
                        switch (ch.ConnectionType)
                        {
                        case "SerialPort":
                            DISerialPort dis = (DISerialPort)ch;
                            SerialPort   sp  = new SerialPort(dis.PortName, dis.BaudRate, dis.Parity, dis.DataBits, dis.StopBits)
                            {
                                Handshake = dis.Handshake
                            };

                            DriverAdapter = new LS_CNET(dv.SlaveId, sp);
                            cnet.Add(ch.ChannelName, (LS_CNET)DriverAdapter);
                            break;

                        case "Ethernet":
                            DIEthernet die = (DIEthernet)ch;

                            DriverAdapter = new LS_FENET(die.CPU, die.IPAddress, die.Port, (byte)die.Slot);
                            FENET.Add(ch.ChannelName, (LS_FENET)DriverAdapter);

                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        EventscadaException?.Invoke(GetType().Name, ex.Message);
                    }
                    foreach (DataBlock db in dv.DataBlocks)
                    {
                        DataBlockCollection.DataBlocks.Add($"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}", db);
                        foreach (Tag tg in db.Tags)
                        {
                            TagCollection.Tags.Add(
                                $"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}.{tg.TagName}", tg);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(GetType().Name, ex.Message);
            }
        }
Example #6
0
        private void XUserChannelForm_Load(object sender, EventArgs e)
        {
            try
            {
                cboxPort.Items.Clear();
                cboxBaudRate.Items.Clear();
                cboxPort.Items.AddRange(SerialPort.GetPortNames());
                cboxBaudRate.Items.AddRange(new string[] { "1200", "2400", "4800", "9600", "14400", "19200", "28800", "38400", "56000", "57600", "115200" });
                cboxDataBits.Items.AddRange(new string[] { "7", "8" });
                cboxParity.Items.AddRange(System.Enum.GetNames(typeof(Parity)));
                cboxStopBits.Items.AddRange(System.Enum.GetNames(typeof(StopBits)));
                cboxHandshake.Items.AddRange(System.Enum.GetNames(typeof(Handshake)));


                if (ch != null)
                {
                    cboxConnType.Enabled           = false;
                    this.Text                      = "Edit Channel";
                    this.txtChannelName.Text       = ch.ChannelName;
                    this.cboxConnType.SelectedItem = string.Format("{0}", ch.ConnectionType);
                    cboxModel.SelectedItem         = string.Format("{0}", ch.CPU);
                    txtRack.Text                   = string.Format("{0}", ch.Rack);
                    txtSlot.Text                   = string.Format("{0}", ch.Slot);
                    txtDesc.Text                   = ch.ChannelName;
                    switch (ch.ConnectionType)
                    {
                    case "SerialPort":
                        DISerialPort dis = (DISerialPort)ch;
                        cboxPort.SelectedItem      = dis.PortName;
                        cboxBaudRate.SelectedItem  = string.Format("{0}", dis.BaudRate);
                        cboxDataBits.SelectedItem  = string.Format("{0}", dis.DataBits);
                        cboxParity.SelectedItem    = string.Format("{0}", dis.Parity);
                        cboxStopBits.SelectedItem  = string.Format("{0}", dis.StopBits);
                        cboxHandshake.SelectedItem = string.Format("{0}", dis.Handshake);
                        cboxModeSP.SelectedItem    = string.Format("{0}", dis.Mode);

                        break;

                    case "Ethernet":

                        DIEthernet die = (DIEthernet)ch;
                        txtIPAddress.Text = die.IPAddress;
                        txtPort.Value     = die.Port;
                        break;
                    }
                }
                else
                {
                    cboxConnType.Enabled            = true;
                    this.Text                       = "Add Channel";
                    this.cboxConnType.SelectedIndex = 0;
                    cboxPort.SelectedIndex          = 0;
                    cboxBaudRate.SelectedIndex      = 3;
                    cboxDataBits.SelectedIndex      = 1;
                    cboxParity.SelectedIndex        = 0;
                    cboxStopBits.SelectedIndex      = 1;
                    cboxHandshake.SelectedIndex     = 0;
                    cboxModeSP.SelectedIndex        = 0;
                    cboxModel.SelectedIndex         = 1;
                }
            }
            catch (Exception)
            {
                return;
            }
        }
Example #7
0
        private void treeViewSI_AfterSelect(object sender, TreeViewEventArgs e)
        {
            try
            {
                if (treeViewSI.SelectedNode == null)
                {
                    return;
                }

                int       Level        = treeViewSI.SelectedNode.Level;
                string    selectedNode = treeViewSI.SelectedNode.Text;
                DataBlock dbCurrent    = null; //Node: DataBlock
                Device    dvCurrent    = null; //Node: Device
                Channel   chCurrent    = null; //Node: Channel
                switch (Level)
                {
                case 0:
                    DGMonitorForm.Rows.Clear();
                    break;

                case 1:
                    DGMonitorForm.Rows.Clear();
                    break;

                case 2:
                    chCurrent = objChannelManager.GetByChannelName(treeViewSI.SelectedNode.Parent.Parent.Text);
                    dvCurrent = objDeviceManager.GetByDeviceName(chCurrent, treeViewSI.SelectedNode.Parent.Text);
                    dbCurrent = objDataBlockManager.GetByDataBlockName(dvCurrent, treeViewSI.SelectedNode.Text);
                    DGMonitorForm.Rows.Clear();
                    string[] row = new string[7];
                    foreach (Tag tg in dbCurrent.Tags)
                    {
                        if (tg.Value == null)
                        {
                            row[0] = string.Format("{0}", tg.TagId);
                            row[1] = tg.TagName;
                            row[2] = string.Format("{0}", tg.Address);
                            row[3] = string.Format("{0}", tg.DataType);
                            row[4] = "0";
                            row[5] = string.Format("{0}", tg.TimeSpan);
                            row[6] = tg.Description;

                            DGMonitorForm.Rows.Add(row);
                        }
                        else
                        {
                            string[] row1 = { string.Format("{0}", tg.TagId), tg.TagName, string.Format("{0}", tg.Address), string.Format("{0}", tg.DataType), string.Format("{0}", tg.Value), string.Format("{0}", tg.TimeSpan), tg.Description };

                            DGMonitorForm.Rows.Add(row1);
                        }
                    }
                    break;

                default:
                    DGMonitorForm.Rows.Clear();
                    break;
                }
                if (chCurrent == null)
                {
                    EventPvGridChannelGet?.Invoke(chCurrent, false);
                }
                else
                {
                    switch (chCurrent.ConnectionType)
                    {
                    case "SerialPort":

                        DISerialPort dis = (DISerialPort)chCurrent;
                        EventPvGridChannelGet?.Invoke(dis, true);

                        break;

                    case "Ethernet":

                        DIEthernet die = (DIEthernet)chCurrent;
                        EventPvGridChannelGet?.Invoke(die, true);

                        break;
                    }
                }
                if (dvCurrent != null)
                {
                    EventPvGridDeviceGet?.Invoke(dvCurrent, true);
                }
                else
                {
                    EventPvGridDeviceGet?.Invoke(dvCurrent, false);
                }
                if (dbCurrent != null)
                {
                    EventPvGridDataBlockGet?.Invoke(dbCurrent, true);
                }
                else
                {
                    EventPvGridDataBlockGet?.Invoke(dbCurrent, false);

                    lblSelectedTagName.Text = string.Format("Selected tag: {0}", "None");
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(GetType().Name, ex.Message);
            }
        }
        public void InitializeService(Channel ch)
        {
            try
            {
                //=================================================================

                if (Channels == null)
                {
                    return;
                }

                Channels.Add(ch);


                IPLCS7Adapter DriverAdapter = null;
                foreach (Device dv in ch.Devices)
                {
                    try
                    {
                        switch (ch.ConnectionType)
                        {
                        case "SerialPort":
                            DISerialPort dis = (DISerialPort)ch;
                            SerialPort   sp  = new SerialPort(dis.PortName, dis.BaudRate, dis.Parity, dis.DataBits, dis.StopBits)
                            {
                                Handshake = dis.Handshake
                            };

                            DriverAdapter = new SiemensComPPI(dv.SlaveId, sp);
                            _PLCPPI.Add(ch.ChannelName, (SiemensComPPI)DriverAdapter);
                            break;

                        case "Ethernet":
                            DIEthernet  die = (DIEthernet)ch;
                            SiemensPLCS cpu = (SiemensPLCS)Enum.Parse(typeof(SiemensPLCS), die.CPU);
                            DriverAdapter = new SiemensNet(cpu, die.IPAddress, (short)die.Rack, (short)die.Slot);
                            _PLCS7.Add(ch.ChannelName, (SiemensNet)DriverAdapter);

                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        EventscadaException?.Invoke(GetType().Name, ex.Message);
                    }
                    foreach (DataBlock db in dv.DataBlocks)
                    {
                        DataBlockCollection.DataBlocks.Add($"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}", db);
                        foreach (Tag tg in db.Tags)
                        {
                            TagCollection.Tags.Add(
                                $"{ch.ChannelName}.{dv.DeviceName}.{db.DataBlockName}.{tg.TagName}", tg);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                EventscadaException?.Invoke(GetType().Name, ex.Message);
            }
        }