예제 #1
0
파일: Program.cs 프로젝트: ahacon/EEIP.NET
        static void Main(string[] args)
        {
            EEIPClient eeipClient = new EEIPClient
            {
                //Ip-Address of the Ethernet-IP Device (In this case Allen-Bradley 1734-AENT Point I/O)
                IPAddress = "193.168.7.20"
            };

            //A Session has to be registered before any communication can be established
            eeipClient.RegisterSession();
            eeipClient.O_T_InstanceID = 150;              //Instance ID of the Output Assembly
            eeipClient.T_O_InstanceID = 100;

            var O_T_Length = eeipClient.Detect_O_T_Length();
            var T_O_Length = eeipClient.Detect_T_O_Length();

            //Parameter from Controlsystem -> PLC
            //Parameters from Originator -> Target
            eeipClient.O_T_Length              = O_T_Length;               //The Method "Detect_O_T_Length" detect the Length using an UCMM Message
            eeipClient.O_T_RealTimeFormat      = RealTimeFormat.Heartbeat; //Header Format
            eeipClient.O_T_OwnerRedundant      = false;
            eeipClient.O_T_Priority            = Priority.Scheduled;
            eeipClient.O_T_VariableLength      = false;
            eeipClient.O_T_ConnectionType      = ConnectionType.Point_to_Point;
            eeipClient.O_T_IOData              = new byte[500];
            eeipClient.RequestedPacketRate_O_T = 30000;        //30ms: 500ms is the Standard value

            //Parameter from PLC -> Controlsystem
            //Parameters from Target -> Originator
            eeipClient.T_O_Length              = T_O_Length;
            eeipClient.T_O_RealTimeFormat      = RealTimeFormat.Heartbeat;
            eeipClient.T_O_OwnerRedundant      = false;
            eeipClient.T_O_Priority            = Priority.Scheduled;
            eeipClient.T_O_VariableLength      = false;
            eeipClient.T_O_ConnectionType      = ConnectionType.Point_to_Point;
            eeipClient.T_O_IOData              = new byte[500];
            eeipClient.RequestedPacketRate_T_O = 30000;    //30ms: RPI in  500ms is the Standard value

            //Forward open initiates the Implicit Messaging
            eeipClient.ForwardOpen();

            while (true)
            {
                //Read the Inputs Transfered form Target -> Originator
                Console.WriteLine("State of Input byte: " + eeipClient.T_O_IOData[2]);

                //write the Outputs Transfered form Originator -> Target
                eeipClient.O_T_IOData[2] = 0x0F;        //Set all Four digital Inputs to High

                System.Threading.Thread.Sleep(500);
            }

            //Close the Session
            eeipClient.ForwardClose();
            eeipClient.UnRegisterSession();
        }
예제 #2
0
        static void Main(string[] args)
        {
            EEIPClient eeipClient = new EEIPClient();

            //Ip-Address of the Ethernet-IP Device (In this case Allen-Bradley 1734-AENT Point I/O)
            eeipClient.IPAddress = "192.168.178.107";
            //A Session has to be registered before any communication can be established
            eeipClient.RegisterSession();

            //Parameters from Originator -> Target
            eeipClient.O_T_InstanceID          = 0x64;                                     //Instance ID of the Output Assembly
            eeipClient.O_T_Length              = 4;                                        //The Method "Detect_O_T_Length" detect the Length using an UCMM Message
            eeipClient.O_T_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Header32Bit; //Header Format
            eeipClient.O_T_OwnerRedundant      = false;
            eeipClient.O_T_Priority            = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.O_T_VariableLength      = false;
            eeipClient.O_T_ConnectionType      = Sres.Net.EEIP.ConnectionType.Point_to_Point;
            eeipClient.RequestedPacketRate_O_T = 500000;        //500ms is the Standard value

            //Parameters from Target -> Originator
            eeipClient.T_O_InstanceID          = 0x65;
            eeipClient.T_O_Length              = 16;
            eeipClient.T_O_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Modeless;
            eeipClient.T_O_OwnerRedundant      = false;
            eeipClient.T_O_Priority            = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.T_O_VariableLength      = false;
            eeipClient.T_O_ConnectionType      = Sres.Net.EEIP.ConnectionType.Multicast;
            eeipClient.RequestedPacketRate_T_O = 500000;    //RPI in  500ms is the Standard value

            //Forward open initiates the Implicit Messaging
            eeipClient.ForwardOpen();

            while (true)
            {
                //Read the Inputs Transfered form Target -> Originator
                Console.WriteLine("State of first Input byte: " + eeipClient.T_O_IOData[8]);
                Console.WriteLine("State of second Input byte: " + eeipClient.T_O_IOData[9]);

                //write the Outputs Transfered form Originator -> Target
                eeipClient.O_T_IOData[0] = (byte)(eeipClient.O_T_IOData[0] + 1);
                eeipClient.O_T_IOData[1] = (byte)(eeipClient.O_T_IOData[1] - 1);
                eeipClient.O_T_IOData[2] = 1;
                eeipClient.O_T_IOData[3] = 8;

                System.Threading.Thread.Sleep(500);
            }

            //Close the Session
            eeipClient.ForwardClose();
            eeipClient.UnRegisterSession();
        }
예제 #3
0
파일: Program.cs 프로젝트: yrien30/EEIP.NET
        static void Main(string[] args)
        {
            EEIPClient eeipClient = new EEIPClient();

            //Ip-Address of the Ethernet-IP Device (In this case Keyence-NU-EP1)
            eeipClient.IPAddress = "192.168.0.123";
            //A Session has to be registered before any communication can be established
            eeipClient.RegisterSession();

            //Parameters from Originator -> Target
            eeipClient.O_T_InstanceID          = 0xfe;                                     //Instance ID of the Output Assembly
            eeipClient.O_T_Length              = 0;
            eeipClient.O_T_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Header32Bit; //Header Format
            eeipClient.O_T_OwnerRedundant      = false;
            eeipClient.O_T_Priority            = Sres.Net.EEIP.Priority.Low;
            eeipClient.O_T_VariableLength      = false;
            eeipClient.O_T_ConnectionType      = Sres.Net.EEIP.ConnectionType.Point_to_Point;
            eeipClient.RequestedPacketRate_O_T = 500000;    //RPI in  500ms is the Standard value



            //Parameters from Target -> Originator
            eeipClient.T_O_InstanceID          = 0x66;
            eeipClient.T_O_Length              = 2;
            eeipClient.T_O_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Modeless;
            eeipClient.T_O_OwnerRedundant      = false;
            eeipClient.T_O_Priority            = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.T_O_VariableLength      = false;
            eeipClient.T_O_ConnectionType      = Sres.Net.EEIP.ConnectionType.Multicast;
            eeipClient.RequestedPacketRate_T_O = 500000;    //RPI in  500ms is the Standard value

            //Forward open initiates the Implicit Messaging
            eeipClient.ForwardOpen();

            while (true)
            {
                //Read the Inputs Transfered from Target -> Originator
                Console.WriteLine("State of first Input byte: " + eeipClient.T_O_IOData[0]);
                Console.WriteLine("State of second Input byte: " + eeipClient.T_O_IOData[1]);


                System.Threading.Thread.Sleep(500);
            }

            //Close the Session
            eeipClient.ForwardClose();
            eeipClient.UnRegisterSession();
        }
예제 #4
0
        static void Main(string[] args)
        {
            EEIPClient eeipClient = new EEIPClient();

            eeipClient.IPAddress = "192.168.178.107";
            eeipClient.RegisterSession();
            //Console.WriteLine("Product Name: " + eeipClient.IdentityObject.ProductName);
            //Console.WriteLine("Product Code: " + eeipClient.IdentityObject.ProductCode);
            //byte[] data =eeipClient.GetAttributeSingle(0x4, 0x65,3);
            //for (int i = 0; i < data.Length; i++)
            //    Console.WriteLine(data[i]);
            //Console.ReadKey();
            //UInt32 sessionHandle = eeipClient.RegisterSession("192.168.178.107", 0xAF12);
            //            eipClient.O_T_ConnectionType = Sres.Net.EEIP.ConnectionType.Null;
            //            eipClient.O_T_Length = 0;


            eeipClient.O_T_InstanceID     = 0x64;
            eeipClient.O_T_Length         = eeipClient.Detect_O_T_Length();
            eeipClient.O_T_RealTimeFormat = Sres.Net.EEIP.RealTimeFormat.Header32Bit;
            eeipClient.O_T_OwnerRedundant = false;
            eeipClient.O_T_Priority       = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.O_T_VariableLength = false;
            eeipClient.O_T_ConnectionType = Sres.Net.EEIP.ConnectionType.Point_to_Point;

            eeipClient.T_O_InstanceID     = 0x65;
            eeipClient.T_O_Length         = eeipClient.Detect_T_O_Length();
            eeipClient.T_O_RealTimeFormat = Sres.Net.EEIP.RealTimeFormat.Modeless;
            eeipClient.T_O_OwnerRedundant = false;
            eeipClient.T_O_Priority       = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.T_O_VariableLength = false;
            eeipClient.T_O_ConnectionType = Sres.Net.EEIP.ConnectionType.Multicast;
            eeipClient.ForwardOpen();
            while (true)
            {
                Console.Write(eeipClient.LastReceivedImplicitMessage);
                Console.WriteLine(eeipClient.T_O_IOData[8]);
                eeipClient.O_T_IOData[0] = (byte)((byte)eeipClient.O_T_IOData[0] + (byte)1);
                eeipClient.O_T_IOData[1] = (byte)((byte)eeipClient.O_T_IOData[1] - (byte)1);
                System.Threading.Thread.Sleep(500);
            }



            Console.ReadKey();
            eeipClient.ForwardClose();
            eeipClient.UnRegisterSession();
        }
예제 #5
0
파일: Program.cs 프로젝트: ahacon/EEIP.NET
        static void Main(string[] args)
        {
            EEIPClient             eipClient  = new EEIPClient();
            List <CIPIdentityItem> identities = eipClient.ListIdentity();
            var result = "";

            identities.ForEach(identity => { result += $"{identity}\n"; });
            File.WriteAllText("Identity.xml", result);

            result = "";
            identities.ForEach(identity => {
                try
                {
                    eipClient = new EEIPClient();

                    eipClient.O_T_OwnerRedundant = false;
                    eipClient.T_O_OwnerRedundant = false;
                    eipClient.RegisterSession(identity.SocketAddress.SIN_Address, identity.SocketAddress.SIN_port);
                    eipClient.ForwardOpen();
                    Console.WriteLine($"{identity.SocketAddress.SIN_Address}:{identity.SocketAddress.SIN_port}");
                    Console.WriteLine("Value of First Byte 1: " + eipClient.T_O_IOData[0]);
                    Console.WriteLine("Value of First Byte 2: " + eipClient.T_O_IOData[1]);
                    Console.WriteLine("Value of First Byte 3: " + eipClient.T_O_IOData[2]);
                    Console.WriteLine("Value of First Byte 4: " + eipClient.T_O_IOData[3]);
                    Console.WriteLine("Value of First Byte 5: " + eipClient.T_O_IOData[4]);
                    Console.WriteLine("Value of First Byte 6: " + eipClient.T_O_IOData[5]);
                    result += $"Success: {CIPIdentityItem.GetIPAddress(identity.SocketAddress.SIN_Address)}:{identity.SocketAddress.SIN_port}\n";
                }
                catch (Exception e)
                {
                    Console.WriteLine($"Error: {identity.SocketAddress.SIN_Address}:{identity.SocketAddress.SIN_port}");
                    result += $"Error: {CIPIdentityItem.GetIPAddress(identity.SocketAddress.SIN_Address)}:{identity.SocketAddress.SIN_port}\n";
                }
            });

            File.WriteAllText("Result.xml", result);

            var process = new Process();

            process.StartInfo.FileName  = "cmd.exe";
            process.StartInfo.Arguments = $"/C start .";
            process.Start();
        }
예제 #6
0
        static void Main(string[] args)
        {
            EEIPClient eeipClient = new EEIPClient();

            eeipClient.IPAddress = "192.168.1.254";
            //A Session has to be registered before any communication can be established
            eeipClient.RegisterSession();

            //Parameters from Originator -> Target
            eeipClient.O_T_InstanceID          = 151;                                      //Instance ID of the Output Assembly
            eeipClient.O_T_Length              = 4;                                        //The Method "Detect_O_T_Length" detect the Length using an UCMM Message
            eeipClient.O_T_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Header32Bit; //Header Format
            eeipClient.O_T_OwnerRedundant      = false;
            eeipClient.O_T_Priority            = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.O_T_VariableLength      = false;
            eeipClient.O_T_ConnectionType      = Sres.Net.EEIP.ConnectionType.Point_to_Point;
            eeipClient.RequestedPacketRate_O_T = 500000;        //500ms is the Standard value

            //Parameters from Target -> Originator
            eeipClient.T_O_InstanceID          = 101;
            eeipClient.T_O_Length              = 4;
            eeipClient.T_O_RealTimeFormat      = Sres.Net.EEIP.RealTimeFormat.Modeless;
            eeipClient.T_O_OwnerRedundant      = false;
            eeipClient.T_O_Priority            = Sres.Net.EEIP.Priority.Scheduled;
            eeipClient.T_O_VariableLength      = false;
            eeipClient.T_O_ConnectionType      = Sres.Net.EEIP.ConnectionType.Point_to_Point;
            eeipClient.RequestedPacketRate_T_O = 500000;    //RPI in  500ms is the Standard value

            //Forward open initiates the Implicit Messaging
            eeipClient.ForwardOpen();

            while (true)
            {
                //Read the Inputs Transfered form Target -> Originator
                Console.WriteLine(eeipClient.T_O_IOData);

                //write the Outputs Transfered form Originator -> Target
                //eeipClient.O_T_IOData[2] = 0x0F;        //Set all Four digital Inputs to High

                System.Threading.Thread.Sleep(500);
            }
        }
예제 #7
0
        //これ使えねー
        public async void TagDataLink(int destination, byte instanceid, ushort length, uint rpi)
        {
            ushort tcpport = 44818;

            eEIPClient.T_O_InstanceID          = instanceid;
            eEIPClient.T_O_Length              = length;
            eEIPClient.T_O_RealTimeFormat      = RealTimeFormat.Modeless;
            eEIPClient.T_O_ConnectionType      = ConnectionType.Point_to_Point;
            eEIPClient.T_O_Priority            = Priority.Scheduled;
            eEIPClient.T_O_VariableLength      = false;
            eEIPClient.T_O_OwnerRedundant      = false;
            eEIPClient.RequestedPacketRate_T_O = rpi;

            eEIPClient.O_T_VariableLength      = false;
            eEIPClient.O_T_Priority            = Priority.Scheduled;
            eEIPClient.O_T_RealTimeFormat      = RealTimeFormat.Modeless;
            eEIPClient.O_T_InstanceID          = 0x64;
            eEIPClient.O_T_ConnectionType      = ConnectionType.Point_to_Point;
            eEIPClient.RequestedPacketRate_O_T = rpi;

            eEIPClient.TCPPort   = tcpport;
            eEIPClient.IPAddress = Encapsulation.CIPIdentityItem.getIPAddress(IpAddressList[destination]);
            eEIPClient.RegisterSession();
            var test = eEIPClient.Detect_T_O_Length();

            eEIPClient.ForwardOpen();

            while (DataLinkEnable)
            {
                DatalinkResponse = eEIPClient.T_O_IOData;
            }

            if (!DataLinkEnable)
            {
                eEIPClient.ForwardClose();
                eEIPClient.UnRegisterSession();
            }
        }