Jump to content
OMRON Forums

GeoBrick doesn't always perform jog sequence correctly


nzfm4r123
 Share

Recommended Posts

Hello all,

 

A vertical jog sequence doesn't occur consistently, and machine cycle time suffers as a result.

 

I am sure to most on this forum, this will entail basic motor moves 101. I hope you can help me navigate this technical abyss, and set me along the right path to resolution. I know I won't provide enough background information and variable definition, so please feel free to ask for whatever information is needed.

 

I have a GeoBrick, GBL6-CO-5F2-10S, that controls a 5-axes friction stir welder. One axis, Z, drives a ballscrew with a Parker Hannifin MPP0922C1E-NPSN motor that has a 2000-line incremental encoder. The Z-axis (motor 2) has one input--home switch.

 

After welding, the Z-axis should jog in the following manner, as defined by PLC18:

move #1. PLC18 jogs in the + direction (typically less than 5mm) until axis reaches value specified in M272 = -102mm. Jog at I222 = 10mm/sec. The typical height range at end of weld is -106 to -105mm.

move #2. Once motor reaches M272 = -102mm, PLC 18 executes again and jogs in the + direction until axis reaches value specified by M272 = -50mm. PLC jogs at I222 = 200mm/sec. I don't know if the motor stops or blends between move #1 and #2.

 

This is what happens sporadically:

move #1. Welder finishes, and Z-axis starts to jog in the + direction at 10mm/sec.

move #2. Z-axis reaches the -102mm height (ascertained by direct observation--I don't have not caught this instance yet in PEWin32Pro2 position monitor), but instead of speeding up from 10mm/sec to 200mm/sec, it continues jogging upward at 10mm/sec. Z-axis jogs at 10mm/sec until it reaches the home switch = 0mm, at which point the z-axis speeds up to 200mm/sec, and jogs in the negative direction down to -50mm.

 

I am wondering if the controller gets stuck in a WHILE(M233=0)

END WHILE loop?

 

 

Here is the PLC18 code:

OPEN PLC 18 CLEAR

I222=M3991*2.6

IF(P1=1)

P1=0

P2=0

IF((M200+200)

OR((M200-200)>M272)

COMMAND"#2j=*"

WHILE(M233=1)

END WHILE

P2=0

P1000=10

WHILE(P1000>0)

P1000=P1000-1

END WHILE

WHILE(M233=0)

END WHILE

END IF

P2=1

END IF

CLOSE

 

Thanks for your help!

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Try adding a timer delay right after issuing the jog command. This allows some time while the motor accelerates before the corresponding motor status bits are set.

 

It is not a good practice to use an undeterministic time delay with P-variables, such as you are doing with P1000.

 

Also, for basic jog moves, it is usually recommended to use both the desired velocity zero (M233) and in-position (M240) bits.

 

Timer delay example:

CMD"#2J = *"

I5111 = 100 * 8388608 / I10 While (I5111 > 0) EndW ; 100 msec delay timer using coordinate system 1 countdown timer

 

Make use of the coordinate system countdown timers (Isx11, and Isx12) in all your logic PLCs. Do not use the same timer in more than one active PLC, thic creates a conflict.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...