I/O Messaging with AKD Kollmorgen without PLC CompactLogix

A

Thread Starter

Anemona

Hello!

I'm trying to establish I/O connection with AKD Kollmorgen without PLC CompactLogix. When I send Forward_Open request I get error.
What I did wrong? Can I send Forward_Open request to establish I/O connection without PLC CompactLogix? I think that I establish wrong connection part.<pre>
REQUEST

EtherNet/IP (Industrial Protocol), Session: 0x00000001, Send RR Data
Encapsulation Header
Command: Send RR Data (0x006f)
Length: 76
Session Handle: 0x00000001
Status: Success (0x00000000)
Sender Context: 0100000000000000
Options: 0x00000000
Command Specific Data
Interface Handle: CIP (0x00000000)
Timeout: 20
Item Count: 2
Type ID: Null Address Item (0x0000)
Length: 0
Type ID: Unconnected Data Item (0x00b2)
Length: 60
[Response In: 94569]
Common Industrial Protocol
Service: Unknown Service (0x54) (Request)
0... .... = Request/Response: Request (0x00)
.101 0100 = Service: Unknown (0x54)
Request Path Size: 2 (words)
Request Path: Connection Manager, Instance: 0x01
Path Segment: 0x20 (8-Bit Class Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 00.. = Logical Segment Type: Class ID (0)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Class Segment
Class: Connection Manager (0x06)
Path Segment: 0x24 (8-Bit Instance Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 01.. = Logical Segment Type: Instance ID (1)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Instance Segment
Instance: 0x01
CIP Connection Manager
Service: Forward Open (Request)
0... .... = Request/Response: Request (0x00)
.101 0100 = Service: Forward Open (0x54)
Command Specific Data
...0 .... = Priority: 0
.... 0000 = Tick time: 0
Time-out ticks: 5
Actual Time Out: 5ms
O->T Network Connection ID: 0x00000002
T->O Network Connection ID: 0xffffffff
Connection Serial Number: 0x0002
Vendor ID: Rockwell Automation/Allen-Bradley (0x0001)
Originator Serial Number: 0x00000064
Connection Timeout Multiplier: *16 (2)
Reserved: 0x000000
O->T RPI: 20ms (0x00004E20)
O->T Network Connection Parameters: 0x0a48
0... .... .... .... = Owner: Exclusive (0)
.00. .... .... .... = Connection Type: Null (0)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..1. .... .... = Connection Size Type: Variable (1)
.... ...0 0100 1000 = Connection Size: 72
T->O RPI: 20ms (0x00004E20)
T->O Network Connection Parameters: 0x0a48
0... .... .... .... = Owner: Exclusive (0)
.00. .... .... .... = Connection Type: Null (0)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..1. .... .... = Connection Size Type: Variable (1)
.... ...0 0100 1000 = Connection Size: 72
Transport Type/Trigger: 0x01
Connection Path Size: 9 (words)
Connection Path: [Key], Assembly Object, Instance: 0x64, Connection Point: 0x65, Connection Point: 0x66
Path Segment: 0x34 (Electronic Key Segment)
001. .... = Path Segment Type: Logical Segment (1)
...1 01.. = Logical Segment Type: Special (5)
Electronic Key Segment (VendorID: 0x01C4, DevTyp: 0x0010, 1.3)
Key Format: 0x04
Vendor ID: Reserved (0x01c4)
Device Type: Position Controller (16)
Product Code: 0x000a
Compatibility: Bit Cleared, Major Revision: 1
Minor Revision: 3
Path Segment: 0x20 (8-Bit Class Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 00.. = Logical Segment Type: Class ID (0)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Class Segment
Class: Assembly Object (0x04)
Path Segment: 0x24 (8-Bit Instance Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 01.. = Logical Segment Type: Instance ID (1)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Instance Segment
Instance: 0x64
Path Segment: 0x2c (8-Bit Connection Point Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 11.. = Logical Segment Type: Connection Point (3)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Connection Point Segment
Connection Point: 0x65
Path Segment: 0x2c (8-Bit Connection Point Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 11.. = Logical Segment Type: Connection Point (3)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Connection Point Segment
Connection Point: 0x66

RECIEVE


EtherNet/IP (Industrial Protocol), Session: 0x00000001, Send RR Data
Encapsulation Header
Command: Send RR Data (0x006f)
Length: 32
Session Handle: 0x00000001
Status: Success (0x00000000)
Sender Context: 0100000000000000
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: 16
[Request In: 94563]
[Time: 0.052897000 seconds]
Common Industrial Protocol
Service: Unknown Service (0x54) (Response)
1... .... = Request/Response: Response (0x01)
.101 0100 = Service: Unknown (0x54)
Status: Path segment error
General Status: Path segment error (0x04)
Additional Status Size: 1 (words)
Additional Status
Additional Status: 0x0007
[Request Path Size: 2 (words)]
[Request Path: Connection Manager, Instance: 0x01]
[Path Segment: 0x20 (8-Bit Class Segment)]
[001. .... = Path Segment Type: Logical Segment (1)]
[...0 00.. = Logical Segment Type: Class ID (0)]
[.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)]
[8-Bit Class Segment]
[Class: Connection Manager (0x06)]
[Path Segment: 0x24 (8-Bit Instance Segment)]
[001. .... = Path Segment Type: Logical Segment (1)]
[...0 01.. = Logical Segment Type: Instance ID (1)]
[.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)]
[8-Bit Instance Segment]
[Instance: 0x01]
CIP Connection Manager
Service: Forward Open (Response)
1... .... = Request/Response: Response (0x01)
.101 0100 = Service: Forward Open (0x54)
Command Specific Data
Connection Serial Number: 0x0002
Vendor ID: Rockwell Automation/Allen-Bradley (0x0001)
Originator Serial Number: 0x00000064
Remaining Path Size: 0
Reserved: 0x00</pre>
 
<pre>> Path Segment: 0x2c (8-Bit Connection Point
>Segment)
> 001. .... = Path Segment Type: Logical
>Segment (1)
> ...0 11.. = Logical Segment Type: Connection
>Point (3)
> .... ..00 = Logical Segment Format: 8-bit
>Logical Segment (0)
> 8-Bit Connection Point Segment
> Connection Point: 0x65
> Path Segment: 0x2c (8-Bit Connection Point Segment)
> 001. .... = Path Segment Type: Logical Segment (1)
> ...0 11.. = Logical Segment Type: Connection Point (3)
> .... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
> 8-Bit Connection Point Segment Connection Point: 0x66</pre>
Is it possible to have 2 Point Segments in a Forward Open?
 
<i>Is it possible to have 2 Point Segments in a Forward Open?</i>

I think yes? because in the CIP Vol.1 was written "In general, the application paths are in the order of Configuration path, Consumption path, and Production path". So last 2 Point Segments was used to establish Consumption path and Production path.
 
<i>Is it possible to have 2 Point Segments in a Forward Open?</i>

I think yes? because in the CIP Vol.1 was written "In general, the application paths are in the order of Configuration path, Consumption path, and Production path". So last 2 Point Segments was used to establish Consumption path and Production path.
 
I found a solution.

The problem was because I filled incorrect information in the some part of request. I found the eds file for AKD Kollmorgen where was written the right inputs for request (see section [Connection Manager]).

The "O->T Real time transfer format" field helps you to understand what size you should put in "Connection Size" field (see Chapter 7: Electronic Data Sheets in CIP vol.1)

In O->T Network Connection Parameters:

I wrote:
0... .... .... .... = Owner: Exclusive (0)
.00. .... .... .... = Connection Type: Null (0)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..1. .... .... = Connection Size Type: Variable (1)
.... ...0 0100 1000 = Connection Size: 72

I had to write:
1... .... .... .... = Owner: Redundant (1)
.10. .... .... .... = Connection Type: Point to Point (2)
.... 00.. .... .... = Priority: Low Priority (0)
.... ..0. .... .... = Connection Size Type: Fixed (0)
.... ...0 0100 0110 = Connection Size: 70



In T->O Network Connection Parameters:

I wrote:
0... .... .... .... = Owner: Exclusive (0)
.00. .... .... .... = Connection Type: Null (0)
.... 10.. .... .... = Priority: Scheduled (2)
.... ..1. .... .... = Connection Size Type: Variable (1)
.... ...0 0100 1000 = Connection Size: 72

I had to write:
0... .... .... .... = Owner: Exclusive (0)
.10. .... .... .... = Connection Type: Point to Point (2)
.... 00.. .... .... = Priority: Low Priority (0)
.... ..0. .... .... = Connection Size Type: Fixed (0)
.... ...0 0100 0010 = Connection Size: 66

And the Connection Path should be:

Path Segment: 0x20 (8-Bit Class Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 00.. = Logical Segment Type: Class ID (0)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Class Segment
Class: Assembly Object (0x04)
Path Segment: 0x24 (8-Bit Instance Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 01.. = Logical Segment Type: Instance ID (1)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Instance Segment
Instance: 0x64
Path Segment: 0x2c (8-Bit Connection Point Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 11.. = Logical Segment Type: Connection Point (3)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Connection Point Segment
Connection Point: 0x65
Path Segment: 0x2c (8-Bit Connection Point Segment)
001. .... = Path Segment Type: Logical Segment (1)
...0 11.. = Logical Segment Type: Connection Point (3)
.... ..00 = Logical Segment Format: 8-bit Logical Segment (0)
8-Bit Connection Point Segment
Connection Point: 0x66

So Electronic Key Segment is not necessary to use.

I hope this information will help other developers who aren't using controller in future.

 
Hi,

I got a similar question. How do you know the T->O Connection Size is 66 as below? <pre>
T->O Network Connection Parameters: 0x0a48

0... .... .... .... = Owner: Exclusive (0)
.10. .... .... .... = Connection Type: Point to Point (2)
.... 00.. .... .... = Priority: Low Priority (0)
.... ..0. .... .... = Connection Size Type: Fixed (0)
.... ...0 0100 0010 = Connection Size: 66</pre>
 
Top