sean1002

KINETIX 300 EDS FILE

11 posts in this topic

We are trying to control a kinetix 300 with an existing PLC5 which has a devicenet scanner in the rack. We are using a gateway to connect from the devicenet network to the Kinetix drive. The gateway is setup as a slave on the devicenet network and scanner on the Ethernet side. We have downloaded the EDS file for the kinetix 300 from the rockwell download site. When we import the EDS file into the gateway setup we don't see any Input or Output assemblies. Is there an EDS file for ethernet IP that describes the hardware in its entirety? Specifically parameter 113, 114 and 115. The gateway is functioning correctly as a slave on devicenet.

Share this post


Link to post
Share on other sites

What model of gateway device are you using, and what software is used to configure it ?

You're correct that the Kinetix 300 EDS file doesn't contain enough information to create a generic I/O connection;   generally they're using with Rockwell controllers and an Add-On Profile or Module Profile.

The solution might be to use EZ-EDS or another utility to create an EDS file that works for your gateway.    

 

So let's start with the gateway make/model and software.

 

Share this post


Link to post
Share on other sites

Hi Ken,

I'm using a device called NetTap NT100-RE-DN made by a company called Hilscher. It comes with configuration software Sycon.net.

Share this post


Link to post
Share on other sites

Thanks Kaiser_will. We had many issues with different versions of Java when we first started working with this unit. We now have the drive  configured and working on discrete I/O but are looking to control and monitor it via the Ethernet IP port. The info on the pull up resistors is interesting though.

Share this post


Link to post
Share on other sites

By coincidence I am doing my first project with NetTAP devices.   I'm using their NT100-RE-DP to bridge from EtherNet/IP adapter to Profibus DP Master.

While I was getting ready to reply to this post I discovered that something has hosed up my Studio 5000 v29 installation and I can't create new modules on the Ethernet.    Time to do some install repairs, and to thank Heaven for the good folks at VMWare.

Share this post


Link to post
Share on other sites

Good luck sorting it out. The tech support guys at Hilscher have suggested I try using one of their generic EDS files. They've sent a sample file of how they think it might work. I'm working on site at the moment so won't get to try it till the weekend. Will let you know how I get on. I would also be very interested to get your thoughts on the EZ EDS option. Thanks.

Share this post


Link to post
Share on other sites

The I/O structures for the Kinetix 300 are 68 bytes of Input data and 52 bytes of Output data.

I'm not exactly sure which Assemblies to specify, in a simple EDS. 

If it helps, this is the structure of the I/O assemblies, from the Save As XML feature in Studio 5000:

 

<Structure DataType="AB:K300:I:0">
<DataValueMember Name="Fault" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DriveEn" DataType="BOOL" Value="0"/>
<DataValueMember Name="PhysicalAxisFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PositionLockStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="CurrentLimitStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="RegistrationEventStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="IndexingStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="MotionComplete" DataType="BOOL" Value="0"/>
<DataValueMember Name="PositiveOvertravelInput" DataType="BOOL" Value="0"/>
<DataValueMember Name="NegativeOvertravelInput" DataType="BOOL" Value="0"/>
<DataValueMember Name="HomingStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="AxisHomedStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="VelocityStandstillStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="VelocityLockStatus" DataType="BOOL" Value="0"/>
<DataValueMember Name="PowerStructureEn" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputA1Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputA2Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputA3Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputA4Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputB1Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputB2Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputB3Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputB4Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputC1Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputC2Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputC3Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="DigitalInputC4Status" DataType="BOOL" Value="0"/>
<DataValueMember Name="ActiveIndex" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="ActualVelocity" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="ActualPosition" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PositionCommand" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PositionError" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="MotorCurrent" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="RegistrationPosition" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UserDefinedIntegerData0" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="UserDefinedIntegerData1" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="UserDefinedRealData0" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UserDefinedRealData1" DataType="REAL" Radix="Float" Value="0.0"/>
</Structure>
</Data>
</InputTag>
<OutputTag ExternalAccess="Read/Write">
<Data Format="L5K">
<![CDATA[[0,0,0,0,0,0,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000
                    ,0.00000000e+000,0,0,0.00000000e+000,0.00000000e+000]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="AB:K300:O:0">
<DataValueMember Name="AbortIndex" DataType="BOOL" Value="0"/>
<DataValueMember Name="StartMotion" DataType="BOOL" Value="0"/>
<DataValueMember Name="DefineHome" DataType="BOOL" Value="0"/>
<DataValueMember Name="AbortHoming" DataType="BOOL" Value="0"/>
<DataValueMember Name="StartHoming" DataType="BOOL" Value="0"/>
<DataValueMember Name="DriveEn" DataType="BOOL" Value="0"/>
<DataValueMember Name="StartingIndex" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="ReferenceSource" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="AccelerationLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DecelerationLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CommandCurrentOrVelocity" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="VelocityLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CommandPosition" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="RegistrationOffset" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UserDefinedIntegerData0" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="UserDefinedIntegerData1" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="UserDefinedRealData0" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UserDefinedRealData1" DataType="REAL" Radix="Float" Value="0.0"/>
</Structure>

1 person likes this

Share this post


Link to post
Share on other sites
Quote

Specifically parameter 113, 114 and 115

I pulled my head off the pillow and realize you're talking about the Assembly Object, Instances 113, 114, and 115.

Those are, of course, the Input, Output and Configuration assemblies for the Kinetix 300.    They're described in detail in Appendix B of the User Manual.

 

I notice that my claim that the Input data assembly is 68 bytes conflicts with the manual's description of the Input assembly as 65 bytes.    There may be a run/idle status header I'm not seeing right away.

Are you using the NetTap  NT100-RE-DN device, where the Primary network is the EIP Scanner and the Secondary network is the DeviceNet Slave ?

I would approach this by using the ENIP Generic Adapter module from the Slave device folder, rather than trying to create an EDS.     That will let you more easily change the size and configuration while you're experimenting, rather than creating a new EDS and unregistering/reregistering it in the SyCon tool.

This is quite a challenge, and I'll be impressed if you can get the PLC-5 to handle the datatypes and data configuration effectively.   I'm particularly scratching my head about the Input data assembly, as in general the largest DeviceNet assembly is 64 bytes.   Maybe you could exclude some of the data by customizing your Mapping.

 

 

Share this post


Link to post
Share on other sites

Hi Ken,

Thanks for the input. I've spent a bit more time today working on this project. The guys at Hilscher sent me a setup file for the Generic modular adapter. I reduced the amount of data I'm trying to read and write to the drive to 16 Bytes input and 16 Bytes output. I'm now able to see some data from the drive in my PLC data file. So devicenet is happy. However the drive goes into fault after about 10 - 15 seconds with a communication error. I suspect it only likes to read and write the assemblies in their entirety and not partially, as i'm trying to do.This only happens when the drive is connected to the Nettap. If I unplug the network cable from the drive it doesn't fault. I think you may be right that the amount and format of data in the assemblies is too much for devicenet to handle. I may try to mask out some data in the gateway so I only read and write what I actually need over devicenet.

Share this post


Link to post
Share on other sites

I agree that you need the I/O connection to be the full size on the EtherNet/IP side, for the Kinetix 300 to establish and keep the I/O connection going.

What's actually happening there is that the EIP 'Master' doesn't check the I/O size until after the data is flowing.    If it's the wrong size, it shuts down the connection and you get an I/O connection fault.   Weird, but what I've seen.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now