Activation / Deactivation timings [PickMaster 5]

Hi all,

Does anyone have any detailed timing diagram or information concerning the relationship between the gripper activation/deactivation timings, when tool event timings occur (Before place, at place, after place etc. as defined in the format) and how they all correspond the actual movements of the robot? The manual is bit sketchy on the subject on when these events happen and how they are related if at all.

Reason I’m asking is that I have a vacuum gripper that can pick up items very quickly but needs a bit more time to release the vacuum. My gripper has 2 zones each with it’s own sets of valves to enable and disable the vacuum.

I am trying to do a single pick of 6 items with two place operations of 3 items per place. All works OK except for the timings of the activating/deactiving/idle of the tool setup.

I started by having my 2 activators set up each using 2 bits with the value 1=Activating, 2=Deactiving and 0=Idle. These are assigned to the standard group output pmGripper1_goActivators. Zone 1 starts at bit 0 and Zone 2 starts at bit 2. pmGripper1_goActivators is assigned to a virtual device from address 0 to 15.

I’ve then created digital outputs with the same address as the group output pmGripper1_doActivators namely:

pmGripper1_doZ1ActOn is the same address as pmGripper1_doActivators bit 0

pmGripper1_doZ1DeactOn is the same address as pmGripper1_doActivators bit 1

pmGripper1_doZ2ActOn is the same address as pmGripper1_doActivators bit 2

pmGripper1_doZ2DeactOn is the same address as pmGripper1_doActivators bit 3

I then use these bits in the EIO file cross connections to directly drive the real digital outputs that control the gripper vacuum valves.

All was going well until I needed to tweak the timings of the place operation as the vacuum wasn’t being released quick enough.

There are two timers that are tuneable and are called Place Time and Place Activation on the Pickmaster flexpendant and Place Time and Vacuum Deactivation Time in the Pickmaster 5 software. Not sure why there is a difference in terminology but I managed to figure it out in the end.

This is how I understand it from testing. When the robot reaches the place position on the pallet and movement stops, the Place Time timer starts and the Place Activation Time starts too. When the Place Activation time has timed out, the Zone Deactivation bit goes high and the Zone activation bit goes low. The Place Timer continues to time until it completes and the robot moves away. The problem I seem to have is that after the robot has moved, the Zone Deactivation bit stays high for a duration that seems to be the half the Place Time value plus the Place Activation time value.

In a nutshell, (just for example using big timer values) if the Place Time is 10 seconds and the Place Activation time is 1 second, this is what seems to happen:

Robot stops as place position.

4 seconds (half the Place Time minus the Place Activation Time) later the Zone deactivation bit goes high.

6 seconds later the robot moves away.

6 seconds later the zone deactivation bit goes low.

This then seems to screw up the second place operation if it occurs within the last 6 seconds while the Zone deactivation bit is still high. The previous deactivation timer still seems to being running in the background. The Zone activation and deactivation bits do not change as expected for the second place operation.

I’m not using these sorts of times in my robot, they were just for illustration. But the times I am using, more like 1.5 place time and 0.75 deactivation time still causes problems with the second place operation.

My ideal scenario would be that the robot stops at the place position, the deactivation bit goes high immediately and after the place time has exceeded, the robot moves away. The Zone deactivation bit would stay high while the robot moves away to the final position of that place operation. The Zone deactivation bit should then go low at this point and any background timers should stop/be reset before the robot starts the second place operation.

Has anyone experienced this or can shed some light on it?

By the way, I’m using Pickmaster 5.13 and robotware 5.13.02.

Thanks

Tim

Hi Tim,

I have tried following your observations,
and I think the vacuum idle event after place you have described
does not seem to occur with completely correct timing.
An investigation will be made to see if a correction is needed
in an upcoming release.

Best regards,
Anders

Hi Anders,

Thanks for looking into this. I have carried on a bit of an investigation myself and think I’ve discovered where the problem is, but not sure how to solve it. As you say it does seem to be related to the timing of the when the vacuum activators are set to idle although the problem seems to be that the activator group output (default name of pmGripper1_goActivators) is being set twice for the same move. I think the problem could be in the PmDoAction code of pmrcSys.

I copied the PmDoAction code from pmrcSys into pmrcUser and renamed the original in pmrcSys to PmDoAction_old so I could add some diagnostic code without messing up the original code. I added some code that every time the program enters the ‘WHILE PmGetEvent’ loop and jumped into the ‘CASE PM_EVENT_GO’ section, the robot would write all relevant data of what is happening when it sets group outputs to a CSV file in the HOME: folder of the robot.

The data I logged was:

Event.Signal
Act.Type
Tgt.StopPointData.Type
Tgt.StopPointData.Stoptime
Event.Time
Event.Dist
Event.Dvalue

These are the values are important in the calculation of time to set the TriggIO or TriggEquip commands which I think are then used when the robot is moving during a pick and place cycle.

In my test, I set the pick time to be 4 seconds, the pick activation time to 1 second, the place time to 7 seconds and the place activation to 2 seconds. No real reason to use these particular times, they were just for testing purposes.

Also in the test, in the PM5 software, pmGripper1_goActivators is set to 1 when the zone is being activated, 2 when it is being deactivated and 0 when it is idle.

The interesting thing that appeared in the CSV (upload link at the bottom of this post) was that when the Act.Type was PM_TARGET_POS (value 201) the pmGripper1_goActivators is set twice one after the other without the robot actually moving.

The first time pmGripper1_goActivators is set at the PM_TARGET_POS action, the value is set to 1 (vacuum activated) and the time delay is set to 1 second after the robot stops which is the values I would expect. For some reason I cannot understand, the program goes back through the ‘WHILE PmGetEvent’ loop again and set the pmGripper1_goActivators again, this time the value set is still 1 (vacuum activation) but the time delay this time is 4.1 seconds??? I can’t seem to understand why it sets pmGripper1_goActivators again and also why a seemingly random time value of 4.1 seconds?

When the robot reaches the place point, all seems to go OK and pmGripper1_goActivators is set to 2 (vacuum deactivation) all as is should with a time delay of 1.5 seconds after the robot stops. This part all works OK.

A second problem arises after the robot has placed the items on the pallet and moves away to the depart position. In the CSV file it shows that when Act.Type is PM_DEPART_POS (value 202), pmGripper1_goActivators gets set twice again without the robot moving. The first time, pmGripper1_goActivators is set to the value 2 (vacuum deactivation) when it already is at the value of 2 with a zero time delay. The program loops back through the ‘WHILE PmGetEvent’ loop and immediately pmGripper1_goActivators is set again, this time it is set the value 0 (vacuum idle) but with a time delay of 3.6 seconds.

Again, I can’t seem to understand why it is set twice at the PM_DEPART_POS with different values and different time delays. This is the main cause of my problems.

I also have a group output pmGripper1_goToolEvent1 set in the format of the item I am picking/placing when is set to the following values:

Before pick = 1
At Pick = 2
After pick = 4
Before Place = 8
At Place = 16
After Place 32

This is also logged in the CSV but does seem to behave correctly being set once at each point in the pick and place cycle with the correct time delays and values.

Any ideas anyone on why pmGripper1_goActivators is not being set correctly?

Thanks
Tim

webwiz/3635/EVENTLOG.zip

Do you have a backup, with the project stripped to only include this test case?
Even better would be a RobotStudio Pack&Go.

/Mats

Hi Mats,

Please find attached a Pack and Go station which has been created from a completely blank system with Pickmaster enabled.

Included in the pack and go is a simple Pickmaster 5 line and project with 1 outfeeder and 1 infeeder picking and placing one type of format. These are in the ‘SystemsRO001_Demo_Area_StrippedBACKUPPickmaster Line and Project’ folder of the system when it is unpacked.

In the ‘SystemsRO001_Demo_Area_StrippedHOME’ folder is a sample EVENTLOG.CSV file which contains data for 1 pick and place operation.

Just some details that might help get the simulation running:

Pickmaster 5 Project name: RO001_Test_Proj
Pickmaster 5 Project Number : 1
Outfeeder1 Product selection : 111

Infeeder 1 Product selection : 1
Infeeder 1 Format selection : 31

Any help would be much appreciated

Regards

Tim

webwiz/3635/RO001_Demo_Area_Station_Stripped.zip

Hi,

Just wondering if any of those fine people at ABB have had a chance to identify if there really is a problem with the activation/deactivation timings in PM5 or I have done something wrong in my configuration of my robot and/or Pickmaster project.

At the moment I have put some trap software in the PMDOACTION routine to try and remove the double setting of pmGripper1_goactivators and at the moment it seems to work but obviously not ideal.

Thanks for any help

Regards
Tim

Hi Tim,

There is now a correction for the 5.14.01 release
that may solve your problem. The vacuum idle event after place
will always occur after moving up from a place (and never later).
(current plan: to be released 2011-06-17).

Best regards,
Anders

Hi Anders,

Thanks for the reply about the updated version.

Do you know how I can upgrade PM5 and the robot to this new version? Do I need a new version of robotware too?

I currently have licenced versions of PM5 (version 5.13 build 0013) and Robotstudio (version 5.13.02).

Regards

Tim

Hi Tim,

you only need to upgrade RobotWare, there is no new release of PM5 available. You may also need to update the Robot communication Runtime (available with RobotWare) on the PC in order to make the communication work between PM5.13 and Rw5.14.01.

BR Anders