Sign in to follow this  
Followers 0
elhaimer

DeviceNet problem

13 posts in this topic

I want to select and choose specific data that I want to supervise via DeviceNet protocol but in RSNETWORX it is not allowed to choose polled data that I need to read or write because they are predefined by the manufacturer [One Input: motor data, One Output: control byte] . And by editing EDS file I can just modify the Input and the output but not to add an other one and MM300 does not support the Assebly Object so I can add as much as I need for my application. So the problem is how can I select the Inputs and outputs needed for my application (3 Inputs and 3 outputs) using RSNETWORX and if there are other options please show me the way. If something isn`t understandable please don`t hesitate to say it. Thank you in advance for you help !

Share this post


Link to post
Share on other sites
Which firmware revision are you using ? It may be helpful to read the same EDS file as you are using: http://www.gedigitalenergy.com/app/ViewFiles.aspx?prod=mm300&type=7 The MM300 does support as Assembly Object, it's just not user-configurable. The Motor Data array is 38 bytes of basic motor feedback (I'd have to read the user manual to determine what is included). Other parameters in the device should be accessible using DeviceNet explicit messaging. What exact parameters do you want to read from the MM300 ?
1 person likes this

Share this post


Link to post
Share on other sites
Hi Mr Ken Roach ! I am using the last version 1.5 I want not only read parameters from MM300 but I want to write parameters to it as well. The paramters that i want to read from MM300 are : Current Ia Current Ib Current Ic Pretrip current Ia Pretrip current Ib Pretrip current Ic the parameters that I want to write are : Reset Start A Stop Auto mode Manuel mode for more information refer to the communication guide : http://www.gedigitalenergy.com/products/support/mm300/GEK-113392G.pdf Thanks for your help !

Share this post


Link to post
Share on other sites
Refer to page 130 of that communications user guide. The output byte appears to use a hex value, rather than having an individual bit per function. The output functions you intend to use are all available in that one output byte: Reset 0x01 00000001 Start A 0x04 00000100 Stop 0x03 00000011 Auto Mode 0x4A 01001010 Manual Mode 0x4B 01001011 Edited by Ken Roach
1 person likes this

Share this post


Link to post
Share on other sites
The manual is not very clear on the format of the Input data produced by the MM300 and consumed by the controller. I think those 38 bytes are described by the table on Page 134 of that manual, labeled "Data Format, Motor Data". Unfortunately that assembly contains averages, rather than the three phase currents and pre-trip currents you are asking for. To read those parameter values from the MM300, you will need to use DeviceNet Explicit Messaging. This is a moderately complicated method of programming data transfers in the Allen-Bradley controller. Fortunately you don't have to read every one of them individually; the Motor Analog Data Object, described starting on page 140, packages these up in blocks. You will need to read Class 0xB0, Instance 0x01, Attribute 0x01 (20 bytes long) to read the Currents, and then read Class 0xB0, Instance 0x01, Attribute 0x10 (20 bytes long) to read the Last Pre-Trip Current values.
1 person likes this

Share this post


Link to post
Share on other sites
I realize these technologies might be very new to you, so I will offer limited programming assistance. If you post both your RSNetworx for DeviceNet configuration file (*.DNT) and your PLC program file, I can give you some example code. Which exact model of PLC are you using ?
1 person likes this

Share this post


Link to post
Share on other sites
Very clear explanation Mr ken Roach ! On my application I have 7 MM300, and other motor management system like F650, Softdrives (SMC flex) and variable frequency drive (POWERFLEX/VACON NX) and my scanner devicenet sdn support 90 DW (double word) and I`m afraid the information that I want to supervise via protocol DeviceNet might be greater than scanner capacity so that`s why I`m thinking to restrain the parameters that MM300 inject on the network and only choose the parameters demanded by customer

Share this post


Link to post
Share on other sites
Yes they are very new ! the PLC I`m using is Compactlogix 1769. Thank you very much for your help

Share this post


Link to post
Share on other sites
If you can post your *.DNT file from RSNetworx and the *.ACD file from RSLogix 5000, I can help you with some example logic. I am not willing to do example logic that then requires me to explain how to correct the assumptions (about firmware revision, slot number, address number, tag names, etc) that I would have to make when creating an example from scratch.
1 person likes this

Share this post


Link to post
Share on other sites
I tried to do a sample application which the master is the compactlogix 1769 L35E/A connected to the Scanner Devicenet module SDN 1769 and the slave is one device which is the MM300. You`ll find the the rsnetwork file and the rslogix 5000 file on the attached files. mm300DeviceNet.dnt test.ACD

Share this post


Link to post
Share on other sites
Attached is an example program to read the Currents and the Pre-Trip Currents from the MM300. It's in RSLogix 5000 v17 format (zipped for Forum upload). MM300_DeviceNet_Example_1.zip
1 person likes this

Share this post


Link to post
Share on other sites
The data format is a little confusing. Current is reported in what GE calls the "F10" format, a 32-bit unsigned integer with a single implied decimal place, so the value 123456 means "12,345.6". Page 42 of the user manual describes this data format: 1st 16 bits UNSIGNED LONG VALUE, 1 DECIMAL PLACE 2nd 16 bits Low Order Word of Long Value Example: 12345.6 stored as 123456 i.e. 1st word: 0001 hex, 2nd word: E240 hex This sounds backwards to me; 0x0001e240 hex = 123456 decimal. I would call 0x0001 the high-order word, but Ge calls it the Low Order Word. This might be a typo. The last two rungs of logic in the example program swap the lower 16 bits and the higher 16 bits in the 32-bit DINT tags that hold the Current values. You will have to experiment with this data manipulation.
1 person likes this

Share this post


Link to post
Share on other sites
Thank you very much Mr Ken Roach, The program works perfectly except for commands lines so I generate a MSG file for writting commands as you did for reading Currents...And it has worked. Now I can program the explicit messaging (Reading and Writting) thanks to you !

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
Sign in to follow this  
Followers 0