Hello,
I m trying to start a communication between a Master(CIFX 50-RE/EIP) and a slave (Ixxat Modul).
I configured the master with sycon("cifxeim.nxf") and for the slave I used a ENIP Generic Adapter.
Here is the eds file from Ixxat with which I cconfigured the slave:
$ EZ-EDS Version 3.3 Generated Electronic Data Sheet[File]
DescText = "EDS file for IEM";
CreateDate = 10-23-2007;
CreateTime = 10:00:00;
ModDate = 04-09-2009;
ModTime = 15:58:49;
Revision = 1.1;
HomeURL = "http://www.ixxat.com";[Device]
VendCode = 81;
VendName = "IXXAT Automation GmbH";
ProdType = 12;
ProdTypeStr = "Communications Adapter";
ProdCode = 1;
MajRev = 1;
MinRev = 2;
ProdName = "Industrial Ethernet Module";
Catalog = "EtherNet/IP Adapter Module";
Icon = "IEM.ico";[Device Classification]
Class1 = EtherNetIP; $ ,
$ 1_RSNetWorx_Connectable_Module;[Params]
Param2 =
0,
,,
0x0210,
0xC7,
2,
"Producing Size",
"Byte",
"",
1,1,1,
,,,,
,,,,
;
Param3 =
0,
,,
0x0210,
0xC7,
2,
"Consuming Size",
"Byte",
"",
1,1,1,
,,,,
,,,,
;
Param4 =
0,
,,
0x0210,
0xC6,
1,
"Producer ID",
"",
"",
101,101,101,
,,,,
,,,,
;
Param5 =
0,
,,
0x0210,
0xC6,
1,
"Consumer ID",
"",
"",
100,100,100,
,,,,
,,,,
;[Assembly]
Assem1 =
"Producing Assembly",
,
2,
0x0000,
,,
16,;
Assem2 =
"Consuming Assembly",
,
2,
0x0000,
,,
16,;[Connection Manager]
Connection1 =
0x02030002, $ trigger & transport
$ 0-15 = supported transport classes (class 1)
$ 16 = cyclic (1 = supported)
$ 17 = change of state (1 = supported)
$ 18 = on demand (1 = supported)
$ 19-23 = reserved (must be zero)
$ 24-27 = input only
$ 28-30 = reserved (must be zero)
$ 31 = client 0 (don't care for classes 0 and 1)
0x44240305, $ connection parameters
$ 0 = O=>T fixed (1 = supported)
$ 1 = O=>T variable (0 = not supported)
$ 2 = T=>O fixed (1 = supported)
$ 3 = T=>O variable (0 = not supported)
$ 4-7 = reserved (must be zero)
$ 8-11 = O=>T header (0 byte heartbeat)
$ 12-15 = T=>O header (4 byte run/idle)
$ 16-19 = O=>T connection type (point-to-point)
$ 20-23 = T=>O connection type (multicast)
$ 24-27 = O=>T priority (scheduled)
$ 28-31 = T=>O priority (scheduled)
,0,, $ O=>T RPI,Size,Format
,Param2,Assem1, $ T=>O RPI,Size,Format
,, $ config part 1 (not used)
,, $ config part 2 (not used)
"Read from IEM", $ connection name
"", $ Help string
"20 04 24 01 2C FE 2C 65"; $ inputs only pathConnection2 =
0x01030002, $ trigger & transport
$ 0-15 = supported transport classes (class 1)
$ 16 = cyclic (1 = supported)
$ 17 = change of state (1 = supported)
$ 18 = on demand (1 = supported)
$ 19-23 = reserved (must be zero)
$ 24-27 = exclusive owner
$ 28-30 = reserved (must be zero)
$ 31 = client 0 (don't care for classes 0 and 1)
0x44240305, $ connection parameters
$ 0 = O=>T fixed (1 = supported)
$ 1 = O=>T variable (0 = not supported)
$ 2 = T=>O fixed (1 = supported)
$ 3 = T=>O variable (0 = not supported)
$ 4-7 = reserved (must be zero)
$ 8-10 = O=>T header (4 byte run/idle)
$ 11 = reserved (must be zero)
$ 12-14 = T=>O header (0 byte heartbeat)
$ 15 = reserved (must be zero)
$ 16-19 = O=>T connection type (point-to-point)
$ 20-23 = T=>O connection type (point-to-point)
$ 24-27 = O=>T priority (scheduled)
$ 28-31 = T=>O priority (scheduled)
,0,, $ O=>T RPI,Size,Format
,Param2,Assem1, $ T=>O RPI,Size,Format
,, $ config part 1 (not used)
,, $ config part 2 (not used)
"Listen to IEM", $ connection name
"", $ Help string
"20 04 24 01 2C FF 2C 65"; $ outputs only pathConnection3 =
0x04030002, $ trigger & transport
$ 0-15 = supported transport classes (class 1)
$ 16 = cyclic (1 = supported)
$ 17 = change of state (1 = supported)
$ 18 = on demand (1 = supported)
$ 19-23 = reserved (must be zero)
$ 24-27 = exclusive owner
$ 28-30 = reserved (must be zero)
$ 31 = client 0 (don't care for classes 0 and 1)
0x44640405, $ connection parameters
$ 0 = O=>T fixed (1 = supported)
$ 1 = O=>T variable (0 = not supported)
$ 2 = T=>O fixed (1 = supported)
$ 3 = T=>O variable (0 = not supported)
$ 4-7 = reserved (must be zero)
$ 8-11 = O=>T header (4 byte run/idle)
$ 12-15 = T=>O header (4 byte run/idle)
$ 16-19 = O=>T connection type (point-to-point)
$ 20-23 = T=>O connection type (multicast)
$ 24-27 = O=>T priority (scheduled)
$ 28-31 = T=>O priority (scheduled)
,Param3,Assem2, $ O=>T RPI,Size,Format
,Param2,Assem1, $ T=>O RPI,Size,Format
,, $ config part 1 (not used)
,, $ config part 2 (not used)
"Read/Write IEM", $ connection name
"", $ Help string
"20 04 24 01 2C 64 2C 65";[Capacity]
ConnOverhead = .01;
MaxIOConnections = 5;
MaxMsgConnections = 27;
TSpec1 = TxRx, 1, 100;
TSpec2 = TxRx, 1, 100;$ [Connection Configuration]
$ Revision = 2;
The Sycon diganose tool shows me:
DeviceStatus:
run:green
Bereit:yellow
Networkstatus:
Betrieb:green
Configurationstatus
Bus Ein:green
I connected the two devices with a hub.
Here is a little wireshark log (Forward Open+Connection Failure)
No. Time Source Destination Protocol Info
1 0.000000 192.168.1.126 192.168.1.123 CIP Forward Open
Frame 1 (154 bytes on wire, 154 bytes captured)
Arrival Time: Oct 13, 2009 11:43:54.708794000
[Time delta from previous captured frame: 0.000000000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]
[Time since reference or first frame: 0.000000000 seconds]
Frame Number: 1
Frame Length: 154 bytes
Capture Length: 154 bytes
[Frame is marked: True]
[Protocols in frame: eth:ip:tcp:enip:cip]
[Coloring Rule Name: TCP]
[Coloring Rule String: tcp]
Ethernet II, Src: Hilscher_20:ca:cf (00:02:a2:20:ca:cf), Dst: IxxatAut_02:40:8a (00:05:94:02:40:8a)
Destination: IxxatAut_02:40:8a (00:05:94:02:40:8a)
Address: IxxatAut_02:40:8a (00:05:94:02:40:8a)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: Hilscher_20:ca:cf (00:02:a2:20:ca:cf)
Address: Hilscher_20:ca:cf (00:02:a2:20:ca:cf)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 192.168.1.126 (192.168.1.126), Dst: 192.168.1.123 (192.168.1.123)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 140
Identification: 0x1e0d (7693)
Flags: 0x00
0... = Reserved bit: Not set
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0xd815 [correct]
[Good: True]
[Bad : False]
Source: 192.168.1.126 (192.168.1.126)
Destination: 192.168.1.123 (192.168.1.123)
Transmission Control Protocol, Src Port: dbsa-lm (1407), Dst Port: EtherNet/IP-2 (44818), Seq: 1, Ack: 1, Len: 100
Source port: dbsa-lm (1407)
Destination port: EtherNet/IP-2 (44818)
[Stream index: 0]
Sequence number: 1 (relative sequence number)
[Next sequence number: 101 (relative sequence number)]
Acknowledgement number: 1 (relative ack number)
Header length: 20 bytes
Flags: 0x18 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 2048
Checksum: 0x0381 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
[SEQ/ACK analysis]
[Number of bytes in flight: 100]
[PDU Size: 100]
EtherNet/IP (Industrial Protocol), Session: 0x0071DCA2, Send RR Data
Encapsulation Header
Command: Send RR Data (0x006f)
Length: 76
Session Handle: 0x0071dca2
Status: Success (0x00000000)
Sender Context: E4A00C806B000000
Options: 0x00000000
Command Specific Data
Interface Handle: CIP (0x00000000)
Timeout: 0
Item Count: 2
Type ID: Null Address Item (0x0000)
Length: 0
Type ID: Unconnected Data Item (0x00b2)
Length: 60
Common Industrial Protocol
Service: Forward Open (Request)
0... .... = Request/Response: Request (0x00)
.101 0100 = Service: Forward Open (0x54)
Request Path Size: 2 (words)
Request Path: Connection Manager, Instance: 0x01
8-Bit Logical Class Segment (0x20)
Class: Connection Manager (0x06)
8-Bit Logical Instance Segment (0x24)
Instance: 0x01
Command Specific Data
Priority/Time_tick: 0x03
Time-out_ticks: 250
Actual Time Out: 2000ms
O->T Network Connection ID: 0x00000000
T->O Network Connection ID: 0x00000000
Connection Serial Number: 0x6A00
Vendor ID: Hilscher GmbH (0x011b)
Originator Serial Number: 0x0000517D
Connection Timeout Multiplier: *32 (3)
Reserved Data
O->T RPI: 100ms (0x000186A0)
O->T Network Connection Parameters: 0x4806
0... .... .... .... = Owner: Exclusive (0)
.10. .... .... .... = Connection Type: Point to Point (2)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..0. .... .... = Connection Size Type: Fixed (0)
.... ...0 0000 0110 = Connection Size: 6
T->O RPI: 100ms (0x000186A0)
T->O Network Connection Parameters: 0x2803
0... .... .... .... = Owner: Exclusive (0)
.01. .... .... .... = Connection Type: Multicast (1)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..0. .... .... = Connection Size Type: Fixed (0)
.... ...0 0000 0011 = Connection Size: 3
Transport Type/Trigger: 0x01
0... .... = Direction: Client (0)
.000 .... = Trigger: Cyclic (0)
.... 0001 = Class: 1 (1)
Connection Path Size: 9 (words)
Connection Path: [Key], Assembly Object, Instance: 0x01, Connection Point: 0x64, Connection Point: 0x65
Electronic Key Segment (0x34): VendorID: 0x0000, DevTyp: 0x0000, 0.0
Key Format: 0x04
Vendor ID: Unknown (0x0000)
Device Type: Generic Device (0)
Product Code: 0x0000
Compatibility Bit Cleared, Major Revision: 0
0... .... = Compatibility: Bit Cleared (0x00)
.000 0000 = Major Revision: 0
Minor Revision: 0
8-Bit Logical Class Segment (0x20)
Class: Assembly Object (0x04)
8-Bit Logical Instance Segment (0x24)
Instance: 0x01
8-Bit Logical Connection Point Segment (0x2C)
Connection Point: 0x64
8-Bit Logical Connection Point Segment (0x2C)
Connection Point: 0x65
No. Time Source Destination Protocol Info
2 0.016339 192.168.1.123 192.168.1.126 CIP Connection failure
Frame 2 (100 bytes on wire, 100 bytes captured)
Arrival Time: Oct 13, 2009 11:43:54.725133000
[Time delta from previous captured frame: 0.016339000 seconds]
[Time delta from previous displayed frame: 0.016339000 seconds]
[Time since reference or first frame: 0.016339000 seconds]
Frame Number: 2
Frame Length: 100 bytes
Capture Length: 100 bytes
[Frame is marked: True]
[Protocols in frame: eth:ip:tcp:enip:cip]
[Coloring Rule Name: TCP]
[Coloring Rule String: tcp]
Ethernet II, Src: IxxatAut_02:40:8a (00:05:94:02:40:8a), Dst: Hilscher_20:ca:cf (00:02:a2:20:ca:cf)
Destination: Hilscher_20:ca:cf (00:02:a2:20:ca:cf)
Address: Hilscher_20:ca:cf (00:02:a2:20:ca:cf)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: IxxatAut_02:40:8a (00:05:94:02:40:8a)
Address: IxxatAut_02:40:8a (00:05:94:02:40:8a)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 192.168.1.123 (192.168.1.123), Dst: 192.168.1.126 (192.168.1.126)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 86
Identification: 0xce2f (52783)
Flags: 0x00
0... = Reserved bit: Not set
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0x2829 [correct]
[Good: True]
[Bad : False]
Source: 192.168.1.123 (192.168.1.123)
Destination: 192.168.1.126 (192.168.1.126)
Transmission Control Protocol, Src Port: EtherNet/IP-2 (44818), Dst Port: dbsa-lm (1407), Seq: 1, Ack: 101, Len: 46
Source port: EtherNet/IP-2 (44818)
Destination port: dbsa-lm (1407)
[Stream index: 0]
Sequence number: 1 (relative sequence number)
[Next sequence number: 47 (relative sequence number)]
Acknowledgement number: 101 (relative ack number)
Header length: 20 bytes
Flags: 0x18 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 8192
Checksum: 0xc4e1 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 1]
[The RTT to ACK the segment was: 0.016339000 seconds]
[Number of bytes in flight: 46]
[PDU Size: 46]
EtherNet/IP (Industrial Protocol), Session: 0x0071DCA2, Send RR Data
Encapsulation Header
Command: Send RR Data (0x006f)
Length: 22
Session Handle: 0x0071dca2
Status: Success (0x00000000)
Sender Context: E4A00C806B000000
Options: 0x00000000
Command Specific Data
Interface Handle: CIP (0x00000000)
Timeout: 1024
Item Count: 2
Type ID: Null Address Item (0x0000)
Length: 0
Type ID: Unconnected Data Item (0x00b2)
Length: 6
Common Industrial Protocol
Service: Forward Open (Response)
1... .... = Request/Response: Response (0x01)
.101 0100 = Service: Forward Open (0x54)
Status: Connection failure, Extended: 0x0315
General Status: Connection failure (0x01)
Additional Status Size: 1 (word)
Additional Status: Invalid Segment Type or Segment Value in Path (0x0315)
Hope that somebody can help me.
Andreas Jacob
Hilscher Gesellschaft fuer Systemautomation mbH
Hi,
the trace looks ok for me.
The only thing I am concerned about is, that the I/O lengths in both messages are different. Into O -> T direction you should have a RUN/Idle header and 0 byte of use data's. In T -> O direction you should set modeless and 1 byte.
The other thing is that the slave sent the error code 0x315. This error stands for an invalid segment in the path. But this I can not confirm with this trace. Please ask the manufacturer of the slave, when this error is sent.