Esempio n. 1
0
        public FormMelsec3E(NodeMelsecMc melsecMc = null)
        {
            InitializeComponent( );
            Icon = Util.GetWinformICon( );

            MelsecMc = melsecMc ?? new NodeMelsecMc( );
        }
Esempio n. 2
0
        /// <summary>
        ///     实例化一个三菱的设备对象,从配置信息创建
        /// </summary>
        /// <param name="element">配置信息</param>
        public DeviceMelsecMc(XElement element)
        {
            var nodeMelsec = new NodeMelsecMc();

            nodeMelsec.LoadByXmlElement(element);
            LoadRequest(element);

            if (nodeMelsec.IsBinary)
            {
                protocol    = 1;
                melsecMcNet = new MelsecMcNet(nodeMelsec.IpAddress, nodeMelsec.Port);
                melsecMcNet.NetworkNumber        = nodeMelsec.NetworkNumber;
                melsecMcNet.NetworkStationNumber = nodeMelsec.NetworkStationNumber;
                melsecMcNet.ConnectTimeOut       = nodeMelsec.ConnectTimeOut;

                ByteTransform   = melsecMcNet.ByteTransform;
                ReadWriteDevice = melsecMcNet;
                UniqueId        = melsecMcNet.ConnectionId;
            }
            else
            {
                melsecMcAscii = new MelsecMcAsciiNet(nodeMelsec.IpAddress, nodeMelsec.Port);
                melsecMcAscii.NetworkNumber        = nodeMelsec.NetworkNumber;
                melsecMcAscii.NetworkStationNumber = nodeMelsec.NetworkStationNumber;
                melsecMcAscii.ConnectTimeOut       = nodeMelsec.ConnectTimeOut;

                ByteTransform   = melsecMcAscii.ByteTransform;
                ReadWriteDevice = melsecMcAscii;
                UniqueId        = melsecMcAscii.ConnectionId;
            }

            TypeName = "三菱设备";
        }
Esempio n. 3
0
        private void userButton1_Click(object sender, EventArgs e)
        {
            if (!IPAddress.TryParse(textBox3.Text, out IPAddress address))
            {
                MessageBox.Show("Ip地址填写异常!");
                return;
            }

            if (!int.TryParse(textBox4.Text, out int port))
            {
                MessageBox.Show("端口号填写异常!");
                return;
            }

            if (!byte.TryParse(textBox5.Text, out byte netWorkNumber))
            {
                MessageBox.Show("网络号填写异常!");
                return;
            }

            if (!byte.TryParse(textBox7.Text, out byte netWorkStationNumber))
            {
                MessageBox.Show("网络站号填写异常!");
                return;
            }

            if (!int.TryParse(textBox6.Text, out int timeOut))
            {
                MessageBox.Show("超时时间填写异常!");
                return;
            }

            MelsecMc = new NodeMelsecMc( )
            {
                Name                 = textBox1.Text,
                Description          = textBox2.Text,
                IpAddress            = address.ToString( ),
                Port                 = port,
                NetworkNumber        = netWorkNumber,
                NetworkStationNumber = netWorkStationNumber,
                ConnectTimeOut       = timeOut,
                IsBinary             = checkBox1.Checked
            };

            DialogResult = DialogResult.OK;
        }
        private IDeviceCore CreateNewByXml(XElement device)
        {
            int deviceType = int.Parse(device.Attribute("DeviceType").Value);

            if (deviceType == DeviceNode.ModbusTcpAlien)
            {
                return(new DeviceModbusTcpAlien(device));
            }
            else if (deviceType == DeviceNode.ModbusTcpClient)
            {
                return(new DeviceModbusTcp(device));
            }
            else if (deviceType == DeviceNode.MelsecMcQna3E)
            {
                NodeMelsecMc nodeMelsecMc = new NodeMelsecMc( );
                nodeMelsecMc.LoadByXmlElement(device);

                if (nodeMelsecMc.IsBinary)
                {
                    // 二进制通信
                    return(new DeviceMelsecBinary(device));
                }
                else
                {
                    // ASCII通讯
                    return(new DeviceMelsecAscii(device));
                }
            }
            else if (deviceType == DeviceNode.Omron)
            {
                return(new DeviceOmron(device));
            }
            else if (deviceType == DeviceNode.SimplifyNet)
            {
                return(new DeviceSimplifyNet(device));
            }
            else if (deviceType == DeviceNode.Siemens)
            {
                return(new DeviceSiemens(device));
            }
            else
            {
                return(null);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 默认的构造方法
        /// </summary>
        /// <param name="dtu"></param>
        /// <param name="element"></param>
        public DeviceMelsecAscii(XElement element)
        {
            NodeMelsecMc nodeMelsecMc = new NodeMelsecMc( );

            nodeMelsecMc.LoadByXmlElement(element);

            LoadRequest(element);

            melsecMcNet = new MelsecMcAsciiNet(nodeMelsecMc.IpAddress, nodeMelsecMc.Port);
            melsecMcNet.NetworkNumber        = nodeMelsecMc.NetworkNumber;
            melsecMcNet.NetworkStationNumber = nodeMelsecMc.NetworkStationNumber;
            melsecMcNet.ConnectTimeOut       = nodeMelsecMc.ConnectTimeOut;

            ByteTransform = melsecMcNet.ByteTransform;
            UniqueId      = melsecMcNet.ConnectionId;

            TypeName = "三菱PLC设备";
        }
Esempio n. 6
0
        private void TreeNodeRender(TreeNode treeNode, XElement element)
        {
            foreach (var item in element.Elements())
            {
                if (item.Name == "NodeClass")
                {
                    var node = new TreeNode(item.Attribute("Name").Value);
                    node.ImageKey         = "Class_489";
                    node.SelectedImageKey = "Class_489";

                    var nodeClass = new NodeClass();
                    nodeClass.LoadByXmlElement(item);
                    node.Tag = nodeClass;
                    treeNode.Nodes.Add(node);

                    TreeNodeRender(node, item);
                }
                else if (item.Name == "DeviceNode")
                {
                    var type = int.Parse(item.Attribute("DeviceType").Value);

                    var deviceNode = new TreeNode(item.Attribute("Name").Value);
                    if (type == DeviceNode.ModbusTcpClient)
                    {
                        deviceNode.ImageKey         = "Module_648";
                        deviceNode.SelectedImageKey = "Module_648";

                        var modbusNode = new NodeModbusTcpClient();
                        modbusNode.LoadByXmlElement(item);
                        deviceNode.Tag = modbusNode;
                    }
                    else if (type == DeviceNode.ModbusTcpAlien)
                    {
                        deviceNode.ImageKey         = "Module_648";
                        deviceNode.SelectedImageKey = "Module_648";

                        var modbusAlien = new NodeModbusTcpAline();
                        modbusAlien.LoadByXmlElement(item);
                        deviceNode.Tag = modbusAlien;
                    }
                    else if (type == DeviceNode.MelsecMcQna3E)
                    {
                        deviceNode.ImageKey         = "Enum_582";
                        deviceNode.SelectedImageKey = "Enum_582";

                        var node = new NodeMelsecMc();
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.Siemens)
                    {
                        deviceNode.ImageKey         = "Event_594";
                        deviceNode.SelectedImageKey = "Event_594";

                        var node = new NodeSiemens();
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.DeviceNone)
                    {
                        deviceNode.ImageKey         = "Method_636";
                        deviceNode.SelectedImageKey = "Method_636";

                        var node = new NodeEmpty();
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.Omron)
                    {
                        deviceNode.ImageKey         = "HotSpot_10548_color";
                        deviceNode.SelectedImageKey = "HotSpot_10548_color";

                        var node = new NodeOmron();
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }

                    treeNode.Nodes.Add(deviceNode);
                    foreach (var request in item.Elements("DeviceRequest"))
                    {
                        var deviceRequest = new DeviceRequest();
                        deviceRequest.LoadByXmlElement(request);
                        var parseCode = deviceRequest.PraseRegularCode;
                        if (regularkeyValuePairs.ContainsKey(parseCode))
                        {
                            foreach (var regularNodeItem in regularkeyValuePairs[parseCode])
                            {
                                var treeNodeRegular = new TreeNode(regularNodeItem.Name);
                                treeNodeRegular.ImageKey         = "Operator_660";
                                treeNodeRegular.SelectedImageKey = "Operator_660";


                                treeNodeRegular.Tag = regularNodeItem;
                                deviceNode.Nodes.Add(treeNodeRegular);
                            }
                        }
                    }
                }
                else if (item.Name == "ServerNode")
                {
                    var type = int.Parse(item.Attribute("ServerType").Value);

                    if (type == ServerNode.ModbusServer)
                    {
                        var node = new TreeNode(item.Attribute("Name").Value);
                        node.ImageKey         = "server_Local_16xLG";
                        node.SelectedImageKey = "server_Local_16xLG";

                        var nodeClass = new NodeModbusServer();
                        nodeClass.LoadByXmlElement(item);
                        node.Tag = nodeClass;
                        treeNode.Nodes.Add(node);
                    }
                    else if (type == ServerNode.AlienServer)
                    {
                        var node = new TreeNode(item.Attribute("Name").Value);
                        node.ImageKey         = "server_Local_16xLG";
                        node.SelectedImageKey = "server_Local_16xLG";

                        var nodeClass = new AlienServerNode();
                        nodeClass.LoadByXmlElement(item);
                        node.Tag = nodeClass;
                        treeNode.Nodes.Add(node);

                        TreeNodeRender(node, item);
                    }
                }
                else if (item.Name == "RegularNode")
                {
                    var node = new TreeNode(item.Attribute("Name").Value);
                    node.ImageKey         = "usbcontroller";
                    node.SelectedImageKey = "usbcontroller";

                    var nodeClass = new RegularNode();
                    nodeClass.LoadByXmlElement(item);
                    node.Tag = nodeClass;
                    treeNode.Nodes.Add(node);

                    foreach (var regularItemXml in item.Elements("RegularItemNode"))
                    {
                        var treeNodeRegular = new TreeNode(regularItemXml.Attribute("Name").Value);
                        treeNodeRegular.ImageKey         = "Operator_660";
                        treeNodeRegular.SelectedImageKey = "Operator_660";

                        var regularItemNode = new RegularItemNode();
                        regularItemNode.LoadByXmlElement(regularItemXml);
                        treeNodeRegular.Tag = regularItemNode;
                        node.Nodes.Add(treeNodeRegular);
                    }
                }
            }
        }
Esempio n. 7
0
        private void TreeNodeRender(TreeNode treeNode, XElement element)
        {
            foreach (XElement item in element.Elements( ))
            {
                if (item.Name == "NodeClass")
                {
                    TreeNode node = new TreeNode(item.Attribute("Name").Value);
                    node.ImageKey         = "Class_489";
                    node.SelectedImageKey = "Class_489";

                    NodeClass nodeClass = new NodeClass( );
                    nodeClass.LoadByXmlElement(item);
                    node.Tag = nodeClass;
                    treeNode.Nodes.Add(node);

                    TreeNodeRender(node, item);
                }
                else if (item.Name == "DeviceNode")
                {
                    int type = int.Parse(item.Attribute("DeviceType").Value);

                    TreeNode deviceNode = new TreeNode(item.Attribute("Name").Value);
                    if (type == DeviceNode.ModbusTcpClient)
                    {
                        deviceNode.ImageKey         = "Module_648";
                        deviceNode.SelectedImageKey = "Module_648";

                        NodeModbusTcpClient modbusNode = new NodeModbusTcpClient( );
                        modbusNode.LoadByXmlElement(item);
                        deviceNode.Tag = modbusNode;
                    }
                    else if (type == DeviceNode.ModbusTcpAlien)
                    {
                        deviceNode.ImageKey         = "Module_648";
                        deviceNode.SelectedImageKey = "Module_648";

                        NodeModbusTcpAline modbusAlien = new NodeModbusTcpAline( );
                        modbusAlien.LoadByXmlElement(item);
                        deviceNode.Tag = modbusAlien;
                    }
                    else if (type == DeviceNode.MelsecMcQna3E)
                    {
                        deviceNode.ImageKey         = "Enum_582";
                        deviceNode.SelectedImageKey = "Enum_582";

                        NodeMelsecMc node = new NodeMelsecMc( );
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.Siemens)
                    {
                        deviceNode.ImageKey         = "Event_594";
                        deviceNode.SelectedImageKey = "Event_594";

                        NodeSiemens node = new NodeSiemens( );
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.DeviceNone)
                    {
                        deviceNode.ImageKey         = "Method_636";
                        deviceNode.SelectedImageKey = "Method_636";

                        NodeEmpty node = new NodeEmpty( );
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.Omron)
                    {
                        deviceNode.ImageKey         = "HotSpot_10548_color";
                        deviceNode.SelectedImageKey = "HotSpot_10548_color";

                        NodeOmron node = new NodeOmron( );
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }
                    else if (type == DeviceNode.SimplifyNet)
                    {
                        deviceNode.ImageKey         = "FlagRed_16x";
                        deviceNode.SelectedImageKey = "FlagRed_16x";

                        NodeSimplifyNet node = new NodeSimplifyNet( );
                        node.LoadByXmlElement(item);
                        deviceNode.Tag = node;
                    }


                    treeNode.Nodes.Add(deviceNode);
                    foreach (XElement request in item.Elements("DeviceRequest"))
                    {
                        TreeNode nodeRequest = new TreeNode(request.Attribute("Name").Value);
                        nodeRequest.ImageKey         = "usbcontroller";
                        nodeRequest.SelectedImageKey = "usbcontroller";

                        DeviceRequest deviceRequest = new DeviceRequest( );
                        deviceRequest.LoadByXmlElement(request);
                        nodeRequest.Tag = deviceRequest;
                        deviceNode.Nodes.Add(nodeRequest);
                    }
                }
                else if (item.Name == "AlienNode")
                {
                    TreeNode node = new TreeNode(item.Attribute("Name").Value);
                    node.ImageKey         = "server_Local_16xLG";
                    node.SelectedImageKey = "server_Local_16xLG";

                    AlienNode nodeClass = new AlienNode( );
                    nodeClass.LoadByXmlElement(item);
                    node.Tag = nodeClass;
                    treeNode.Nodes.Add(node);

                    TreeNodeRender(node, item);
                }
                else if (item.Name == "ModbusServer")
                {
                    TreeNode node = new TreeNode(item.Attribute("Name").Value);
                    node.ImageKey         = "server_Local_16xLG";
                    node.SelectedImageKey = "server_Local_16xLG";

                    NodeModbusServer nodeClass = new NodeModbusServer( );
                    nodeClass.LoadByXmlElement(item);
                    node.Tag = nodeClass;
                    treeNode.Nodes.Add(node);

                    TreeNodeRender(node, item);
                }
            }
        }