PDA

View Full Version : Devicenet Modifications


TimothyMoulder
December 2nd, 2008, 08:59 AM
Greetings all,

I have a machine delivered to us from a vendor who shall remain nameless. The machine uses an AB SLC 5/05 with a 1747-SDN scanner card to communicate to 2 Ultra3000i servo drives.

The problem I have is that the original programmer set up Devicenet so, on the drive feedback side, everything is bit-wise (In Position bit, At Home bit, Drive Ready bit). He never actually set it up to report the drive's physical position.

We are getting crashes, and I believe this is because he's telling the drive to move to target, looking for the in position bit to switch back on and using latching bits in the SLC program to tell him the position is Up, Down, Forward, Back, etc. However, without knowing the drive's real physical position, he's taking this on faith, and since he used waaaaay to many latches in a rather poor manner, things are getting smacked around.

So, I want to add the actual position to the drive signals back to the SDN module. I've been doing some reading (!) and here is my proposition - somebody tell me how wrong I am:

1. The SDN is mapping to inputs beginning at I10:0 The first used bit appears at I10.1/8, At Home position for Drive 1.

2. Drive #1 bits occupy 3 words, I10.1 through I10.3. Drive #2 bits occupy 3 words, I10.4 through I10.6

3. Adding position feedback to drive #1 would require 4 more bytes, presumably 2 more words in the input mask. This would require moving I10.4-.6 to I10.6-.10.

4. Adding position feedback to drive #2 would then take up I10.11-.12

5. I can add the extra feedback to the drives via Ultraware. Assuming a PDO-type model, the drives would report the data back to the SDN, which will place it sequentially into the Input file, so nothing needs to be changed in the SDN.

Okay - let the corrections begin :shoot:

TM

Gerry
December 3rd, 2008, 11:33 PM
You can't expect to change the input from 3 words to 5 words and not make any changes to the scanner setup.

I suggest setting the drives up to use input assembly no. 11 which returns position as 4 bytes along with 4 bytes of status. You will need to change the mapping in the scanner as well as the polling data size to reflect the 8 bytes (4 words) of data instead of your present 3 words.

TimothyMoulder
December 4th, 2008, 08:44 AM
Thanks Gerry,

Yeah, I've been doing more reading since I started this thread, and saw that you are quite right. Darn.

I think I'm going to try and adapt his scheme in ladder to make it more bullet proof. Part of the challenge is I'm modifying a running machine, and I need to be able to skip between his version and mine - and this sounds like a 1-way trip. Maybe after the new program is in place, I can visit this again.

It's been educational though!

Thanks!

TM

OZEE
December 4th, 2008, 09:04 AM
One way to switch between his program and yours would be to put them into separate program files, then toggle a bit in your main routine to switch between the two.

AJZ
December 4th, 2008, 09:26 AM
What I have done is to monitor the 'InMotion' as well. Once the start motion command has been given, wait first for the 'InMotion' bit to come on and then wait for the other bits that come on (WithinPosWindow, EndOfSequence, InPosition, ZeroSpeed) once motion is completed. But I have had problems with the 'EndOfSequence' bit not turning on. Also, for very small moves, the PLC will not see the 'InMotion' bit come on.

It is not easy to get the actual position data. You have to send a pointer to the drive, toggle and monitor bits and then read the data