585,722 active members*
4,507 visitors online*
Register for free
Login
IndustryArena Forum > MetalWorking Machines > Bridgeport Machines > Bridgeport / Hardinge Mills > TNC145 Conversational Programming on a Bridgeport Interact Series 1
Results 1 to 10 of 10
  1. #1
    Join Date
    Nov 2016
    Posts
    30

    TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Hi all

    I know I am probably just being really stupid, but I am new to conversational programming and getting slots with radiused ends seems to be defeating me today having tried to use the inbuilt slot cycle and programming the outer edges with RL- tool compensation, so please can someone point me in the right direction.

    Lets say I want a slot 100mm long overall and 20mm wide orientated with the long side parallel to the X-axis, with the end of it touching the Y-axis.

    If we look at the slot cycle first, the manual states "the starting point of the slot must be approach with tool radius compensation R+ or R- in the longitudinal direction i.e. with a single axis block the contour offset RR or RL is not permitted for position approach and that the first side length is the overall length including the rounded ends and the second side length is the width of the slot, then should the program look like this?

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    CYCL DEF 3.0 Slot milling
    CYCL DEF 3.1 -0.5
    CYCL DEF 3.2 -10
    CYCL DEF 3.3 -1.0 F10
    CYCL DEF 3.4 X100
    CYCL DEF 3.5 Y20
    CYCL DEF 3.6 F100

    Z50 R0 F500 M
    L X5 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Cycle Call
    Z50 F500 M2
    STOP

    When I did that earlier the slot ended up being too long and I could only get it to right length by reducing the First side length by the radius of the cutter, which means I am doing something wrong but I can't figure out what.

    Whilst if I try to program it via interpolation to my mind it should look something like:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    IY10 F10 RL- M
    IX80 F10 R0 M
    CC X90 Y0
    C IX0 IY-20 DR- RL- F10 M
    X-80 F10 R0 M
    CC X10 Y0
    C IX0 IY20 DR- RL- F10 M
    Z50 F500 M2
    STOP

    The problem is when I do that I get an offset starting error. I tried it with the IX80 moves with RL enabled and it still gave me an offset error. What am I doing wrong please, its driving me nuts as I understand the basics conversational and could get quite used to it, if only I could figure out these simple problems.

    Thanks

    Andrew

  2. #2
    Join Date
    Jul 2017
    Posts
    5
    I work with iTNC 530’s at work. I’m a big fan.

    I haven’t used Cycle 3, but I noticed a few things.
    -You wrote a -0.5 Z clearance in the cycle but went to +0.5 before the cycle call.
    -The manual says the the tool needs to be larger than half the slot (likely just to make sure it cleans everything up)
    -Possibly they the XY positioning move immediately before the cycle call or try M99 in the same block instead of cycle call

    As for long hand with cutter comp,
    -When you put the RR/RL, you put the RO after the profile is complete.
    -Cutter has to be pre-positioned on the correct side of the profile to comp onto the profile.
    -The profile has to be written in the correct direction otherwise it will interpret a stud instead of a slot or vice versa.

    Your code:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    IY10 F10 RL- M (Assuming you want to climb cut the slot, the next lines are backwards)
    IX80 F10 R0 M (right is a conventional RR path for a slot, remove RO)
    CC X90 Y0
    C IX0 IY-20 DR- RL- F10 M (Remove the RL)
    X-80 F10 R0 M (remove RO, you forgot to make this incremental IX-80)
    CC X10 Y0
    C IX0 IY20 DR- RL- F10 M (Remove RL)
    Z50 F500 M2 (Put RO here)
    STOP

    Try: (I may have the DR+ wrong)

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    IY10 F10 RL- M
    CC X10 Y0
    C IX0 IY-20 DR+ M
    IX80 M
    CC X90 Y0
    C IX0 IY20 DR+ M
    IX-80 M
    Z50 F500 RO M2
    STOP

    Hope this helps!

  3. #3
    Join Date
    Nov 2016
    Posts
    30

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Thanks Truckjet. I managed to solve the issue with the cutter compensation code yesterday and get it working. I had forgotten that when cutting a contour with compensation mode turned on that single axis shifts are not allowed, instead I should have been using line moves, even though one axis ends up not changing, and the curves throughout, so it should have been:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    Y10 F10 RL- M
    L X90 Y10 F10 RR+ M
    CC X90 Y0
    C X90 Y-10 DR- RR+ F10 M
    L X0 Y-10 F10 RR+ M
    CC X10 Y0
    C X10 Y10 DR- RR+ F10 M
    Z50 F500 M2
    STOP

    I need to try it again on monday with the following as I know the above works, but need to understand how incremental works as have a number of slots to open up and so want to be able to use incremental mode and sub-programs.

    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    IY10 F10 RL- M
    L IX80 IY0 F10 RR+ M
    CC IX0 IY-10 (This is where its a bit fuzzy as not sure whether increment mode will refer back to previous line end point or not)
    C IX0 IY-20 DR- RR+ F10 M (Bit fuzzy to here as does increment mode refer to the centre of the previous end point)
    L IX80 IY0 F10 RR+ M
    CC IX0 IY10 (same issue as above)
    C IX0 IY10 DR- RR+ F10 M (same issue as above)
    Z50 F500 M2
    STOP

    The slot cycle had me bugged as well until I came across a video on line today, which explained that a single axis move with compensation to one end of the slot is required to correctly position the slot. You are spot on about the Z-axis move, I had misunderstood the manual, which is not an always logical document. So the code should be:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    CYCL DEF 3.0 Slot milling
    CYCL DEF 3.1 0.5
    CYCL DEF 3.2 -10
    CYCL DEF 3.3 -1.0 F10
    CYCL DEF 3.4 X100
    CYCL DEF 3.5 Y20
    CYCL DEF 3.6 F100

    Z50 R0 F500 M
    L X5 Y0 R0 F500 M
    X0 RL- F100 M (this positions the cutter to the correct starting point of the slot so that with compensation the edge of the cutter is touching the slot end)
    Z0.5 R0 F500 M3
    Cycle Call
    Z50 F500 M2
    STOP

    Thanks for your help, I knew it was all very simple but the manual defeated me. Just need to get incremental to work for me, also get the PC serial link work and in so doing speed up my output so I can program from my desktop.

  4. #4
    Join Date
    Jul 2017
    Posts
    5

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    No Problem!


    I remember struggling with incremental moves and Cutter comp, unfortunately I can’t be more specific. Though I don’t remember having troubles with single axis comp moves. I think they are better because the cutter will try to compensate on X and Y.


    If you want to create scalable programs/macros I highly recommend Q parameters. Does your control support them? Should be a “Q” button near the number pad.


    I’m glad you made progress. You should download the Heidenhain Control Simulator. The free version supports 100is lines. Which is PLENTY for hand written code. The programs can be taken out and printed or transferred to the machine.

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    Y10 F10 RL- M (The path written below is a Conventional Cut Slot, so this should be RR)
    L X90 Y10 F10 RR+ M (RL or RR? You have it the line above , You don't need the Y10 )
    CC X90 Y0
    C X90 Y-10 DR- RR+ F10 M (Don't need RR here, doesn't hurt, but unnecessary)
    L X0 Y-10 F10 RR+ M (Don't need RR here, Can be a single line move, but you need X10, 10 shy from the end.)
    CC X10 Y0
    C X10 Y10 DR- RR+ F10 M (Don't need RR)
    Z50 F500 M2 (Need RO here)
    STOP

    as for this one

    Tool Call 100 Z S1000
    Z50 R0 F500 M
    L X10 Y0 R0 F500 M
    Z0.5 R0 F500 M3
    Z-10 F10 R0 M
    IY10 F10 RL- M
    L IX80 IY0 F10 RR+ M
    CC IX0 IY-10 (This is where its a bit fuzzy as not sure whether increment mode will refer back to previous line end point or not) (This should refer to the previous line endpoint)
    C IX0 IY-20 DR- RR+ F10 M (Bit fuzzy to here as does increment mode refer to the centre of the previous end point) (No, the circle center block before was not a move, just a definition; so it will also reference the previous endpoint)
    L IX80 IY0 F10 RR+ M
    CC IX0 IY10 (same issue as above) (Same answer as above )
    C IX0 IY10 DR- RR+ F10 M (same issue as above) (Same answer as above )
    Z50 F500 M2
    STOP

    Let me know how the cycle progress goes.

    I've never connected to a machine with TNCRemo via serial.

  5. #5
    Join Date
    Nov 2016
    Posts
    30

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Well single axis moves the tool completely becomes R+ or R-, really the RR+ and RL- keys ought to be labelled R R or + and R L or - as their function changes between single axis moves and contouring, which is what tripped me up but I get now. I got incremental ovals running today, which was helpful. I’m just finding the way sub-routines work rather un helpful. Much prefer g-code where you can write and sub routine, call it and it runs the sub-routine then jumps back to the line it’s been called from rather than just continuing on to whatever is below the sub routine. I always thought Label 0 was meant to be the end of a sub program and after you called the label, when it then got to label zero it would jump back, but that doesn’t seem to be what happens. I think I must be missing something but didn’t have time today to investigate, as functionality seemed to match manual so I just worked round it to get some reasonable output.


    Sent from my iPhone using Tapatalk

  6. #6
    Join Date
    Jul 2017
    Posts
    5

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    I don't think we're on the same page describing single axis moves.

    Would you make 2 code snippets that describe single axis and non-single axis?

    I just found the manual on the heidenhain site. I might need to dial back my expectations. :P

    I will try to skim through it tonight.

    Does below represent what you want and is not working?

    0 *start*
    1 *some code*
    2 Call LBL 1
    3 *more code*
    4 Call LBL 2
    5 *more codez*
    6 STOP M0
    7
    8 LBL 1
    9 *some subroutine Code*
    10 LBL 0
    11 STOP M0
    12
    13 LBL 2
    14 *lbl 2 code*
    15 LBL 0
    16 STOP M0

    Running lines 0 to 6, it would jump to line 8, run, then return to run line 3, run, then jump to line 13, run, and return to line 5 to finish?

  7. #7
    Join Date
    Nov 2016
    Posts
    30

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Hi Truckjet

    Yes the code you wrote is the sort of thing I am looking for, I tried putting the sub-programs after the main code the other day and after the M2 but after it called one sub-program it didn't stop at the label 0 it carried on. I suspect it is something as simple as inserting STOP lines or something but I can not fathom it from the manual.

    As for the single and and non-single axis

    Single axis is: X10 R0 F500 M

    Non-single axis is a line move: L X10 Y0 R0 F500 M


    Now as I understand it, if the cutter centre starts at X0 Y0 time then we get the following behaviours, which if the cutter came from say X20, would be reversed:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    X10 RL- F500 M - cutter ends up at X=5 so edge of cutter is on X10 with cutter before called point
    X10 R0 F500 M - cutter ends up at X=10 as there is no comp
    X10 RR+ F500 M - cutter ends up at X=15 so edge of cutter is on X10 with cutter past called point

    On the other hand, if we start at X0 Y0 and run:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    L X10 Y0 RR F500 M

    The centre of the cuter ends up at X5 Y-5 as it is being told to stay to the right hand side of the contour, hence it will either cut a diagonal line, but more likely freak out as it not starting on the correct side of the line, so would instead require the code to be updated to:

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    Y0 RR F500 M or Y-5 Ro F500 M in order to put the cutter parallel to the straight line between X0 Y0 and the point called up in the line move.
    L X10 Y0 RR F500 M

    Thanks

    Andy

  8. #8
    Join Date
    Jul 2017
    Posts
    5

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Ok, Try Call LBL1 REP or Call LBL1 REP0. Page 53 in the manual? https://product.heidenhain.de/JPBC/i...56_00_a_02.pdf

    It is better to think of Labels as Bookmarks/function jumps instead of sub program calls.


    So, I believe G-code functions the same. There should be a lead-in move that compensates to the 1st move that requires the cutter comp. I don't think they like being in the exact position, there should be some movement.

    I maybe misreading, but I don't feel you are thinking in terms of the contour that you want to have cutter comp.

    I appologize in advance if I'm underestimating your understanding.


    Let's say you have a box, 10 Wide x 10 long x 10 deep, top left corner at X0 Y0

    In this example we only want to cut the top face, our single axis move. We care about the edge that is from Y0 X0 to Y0 X10.

    Example 1 - Climb Cut the top

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    Z10 R0 F500 (Safety Move, Cancel any comp)
    L X0 Y10 (Position for our lead-in move. Try changing to Y5 and checking the behavior.)
    Z-10 (Move to cut depth)
    Y0 RL- (Move to start of contour with cutter comp active)
    X10 (The Single Axis move of interest with cutter comp, bottom edge of the tool on the contour)
    Z10 R0 (Cancel Comp during the cutter retract)


    Example 2 - Conventional Cut the top

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    Z10 RO F500 (Safety Move, Cancel any comp)
    L X10 Y10 (Position for our lead-in move. Try changing to Y5 and checking the behavior.
    Z-10
    Y0 RR+
    X0 (Single axis move with cutter comp, bottom edge of tool on the contour)
    Z10 R0


    The examples you wrote describe the can describe the behavior correctly, but there is still some some context missing. The cutter positioning is more guided by the contour than the initial cutter position, like you say X20

    I apologize if I'm reiterating what you already know, but your examples don't convey to me that you see what is actually driving the cutter comp behavior.

    You should think of the examples you wrote as prepositioning not the actual contour you want. In the following examples, I'll take what you wrote to show that the control is acting as if you are positioning up to a vertical (Y-axis) wall and the position behavior is not dependent on start position.

    **original example that I will chop up**
    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    X10 RL- F500 M - cutter ends up at X=5 so edge of cutter is on X10 with cutter before called point
    X10 R0 F500 M - cutter ends up at X=10 as there is no comp
    X10 RR+ F500 M - cutter ends up at X=15 so edge of cutter is on X10 with cutter past called point
    **


    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    Z10 R0 F500
    L X0 Y0
    Z-10 (Might as well cut something)

    Example 3: Same Header for all the subsequent snippets
    X10 RL- F500 M - cutter ends up at X=5 so edge of cutter is on X10 with cutter before called point (Correct IF the next move is a positive Y, Because it will climb cut (RL- = Left side of contour) going up)
    Y10
    Z10 R0

    Example 4:
    X10 RL- F500 M - Same line, same start point, but different behavior. cutter ends up at X=15 so edge of cutter is on X10 with cutter past called point (To climb cut, going down (Still left ,RL-, when considering the contour direction) )
    Y-10
    Z10 R0

    Example 5:
    X10 R0 F500 M - cutter ends up at X=10 as there is no comp (YUP)

    Example 6:
    X10 RR+ F500 M - cutter ends up at X=15 so edge of cutter is on X10 with cutter past called point (Correct IF the next move is a positive Y, to conventional cut up (RR = Right Side of contour))
    Y10
    Z10 R0

    Example 7:
    X10 RR+ F500 M - Same line, same start point, but different behavior. cutter ends up at X=5 so edge of cutter is on X10 with cutter before called point (To conventional cut, going down (Still RR+ = Right Side of contourwhen considering the contour direction) )
    Y-10
    Z10 R0

    I hope the above helped demonstrate the compensation behavior.


    I copied your next example, but I will need to make changes. In these example you are pre-positioning with respect to 2 boundaries, not 1 like the previous examples.

    **other original example**
    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    L X10 Y0 RR F500 M (Do not think of this as a cutting move, think of it as a setup move)
    **

    When programming cutter comp, you have to write points the cutter can actually reach, so you will mostly have issues on inside corners and trying to cut an inside radius smaller than the cutter.

    Lets use a bigger box since the tool is the same size, let's go 100 Wide x 100 Long and 10 deep and let's make center of the box be X0 Y0.

    Tool DEF 100 Z0 R5
    Tool Call 100 Z S1000

    Z10 R0 F500
    L X0 Y0


    Example 8: This example will not work, because as defined, the edge of the tool cannot reach the
    corner of the box without violating the contour.

    L X-50 Y-50 RR F500 M (Tool cannot reach the corner)
    L X-50 Y50 (Same)
    L X50 Y50 (Same)
    L X50 Y-50 (Same)
    L X-50 Y-50 (Same)
    Z10 R0


    Example 9: If I were to cut the inside of the box, I would program, as such, starting at the middle of the box.

    Z-10 (Ok to bring Z down because we are inside the profile already)
    L Y-50 RR (Cutter center position: X0 Y-45)
    X-50 (Cutter center position: X-45 Y-45)
    Y50 (Cutter center position: X-45 Y45)
    X50 (Cutter center position: X45 Y45)
    Y-50 (Cutter center position: X45 Y-45)
    X0 (Return to contour start, thus closing it)(Cutter center position: X0 Y-45, I think)
    Z10 R0

    The control looks ahead through the profile to calculate the actual cutter positions.

    You only need to use X and Y when you need some point other than top, bottom, left or right of the cutter on the contour.

    Example 10: Same header, non-box example cutting the right side of a 45° line (I'm a little iffy on this one, but it should be correct)

    Z-10
    L X-50 Y-50 RR
    L X+100 Y+100
    Z10 R0

    The main takeaway is, the 1st move that has the RL/RR line should be considered a setup/compensating move. The rest of the profile will define the compensation behavior and that the programmed points have to be able to be touched by the cutter with out violating the contour.

    So, I apologize again if I went overboard and hopefully I didn't make too many mistakes. I want to draw pictures sooo badly.

  9. #9
    Join Date
    Nov 2016
    Posts
    30

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Hi Truckjet

    If you look at Page 33 of the manual you linked, you will see half way down the page it says about RR+ and RL- having double functions depending whether the move is a single axis move or a contour. A single axis move from inside a pocket to the edge of the pocket with RL- selected does put the edge of the cutter on the programmed point as per the diagram on Page 33. I have been using it plus then a IX0 IY0 RR+ call followed by a L IX0 IY80 RR+ call successfully, the functionality does change at least on the TNC145 and TNC151 units. That said, I really must change out the TNC145 for the TNC151 I have once I have sorted out the parameters, as the TNC151 allows for Q entries.

    Sub-program wise, G-code allows separate sub-routines that can be called from anywhere in a program and are usually dumped at the end of the code, at least in Mach3 which is what I am more used to programming. The strange thing is that I have seen code in one of the Hedenhain TNC145 documents that says to put the labels after the stop command and they can be called up, but seemingly I can't find an electronic copy so need to bring the copy home from the workshop. It happily jumped to a label past the stop at the end of the program, it just then ignored the label zero and carried on into the next subprogram.

    Thanks

    Andrew

  10. #10
    Join Date
    Jul 2017
    Posts
    5

    Re: TNC145 Conversational Programming on a Bridgeport Interact Series 1

    Ah, I see. So It's RR/RL behavior for contouring and R+/R- behavior for single axis moves. The R+/R- behavior is start point dependent.

    Looking back, I realize that I always put L before the moves, regardless of how many axes in the position block. Put L in single axis moves I posted earlier and see if contouring behavior is correct be correct.

Similar Threads

  1. Bridgeport Interact 1 TNC145
    By Drosagro in forum Bridgeport / Hardinge Mills
    Replies: 2
    Last Post: 01-21-2020, 09:01 PM
  2. Bridgeport interact TNC145 Z feed constantly on
    By Mike Woo in forum Bridgeport / Hardinge Mills
    Replies: 0
    Last Post: 01-11-2017, 01:16 AM
  3. Interact series 1 with TNC145...
    By _Aphex_ in forum Bridgeport / Hardinge Mills
    Replies: 4
    Last Post: 10-05-2016, 09:13 PM
  4. Bridgeport Interact Series 1, TNC145
    By jack-pat in forum Bridgeport / Hardinge Mills
    Replies: 13
    Last Post: 02-16-2015, 01:17 PM
  5. Bridgeport interact with Heidenhain TNC145
    By johnn1 in forum Bridgeport / Hardinge Mills
    Replies: 4
    Last Post: 02-14-2012, 10:05 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •