Posts by fungus

    Long overdue, I finally got to give this a try. It worked great!!! I prepared some notes since I know I'll forget the steps, and I'm putting them here for future use.

    I used a Windows XP computer with a hardware serial port. I'm unsure how much flow control plays into this, as at 9600 baud I think both the controller and PC keep up quite well. You could likely ignore flow control and just use Rx, Tx and 0V lines.


    If I ever get bored, I might try to create a 64-bit compatible version of this that will work with USB<>UART converters. But no promises, I'm rarely bored :D

    Nation, thank you again! Apparently you've got all the tools. I tried to mark your post as helpful, but then realized this stole the tag from your first really helpful post.


    I'll give this a try this evening!

    I have a basic post processor working! I need to clean things up, but so far so good for 3D. I'm going to try to figure out 5 axis post processing as well, but that will take time.

    I had posted in another thread about FTP over ethernet, sadly this controller does not have the option.

    CF card transfer is working for now, but is there a way to upload over RS232? It seems from what I'm seeing that this port is intended for use with KAREL only.
    I suppose I can write a KAREL program for RS232 transfer, but maybe there's an easier way?

    JMD, thank you for taking the time to set that up in RoboGuide! Good idea. Unfortunately I do not have that option, so it looks like no FTP for us.

    Thanks again for your help.

    FYI, for anyone else reading this the PSU does not have any volatile memory. After looking at it, I doubt it has ANY memory. If you go to clean things, make sure you leave all the little cards on the MAIN (SLOT1) PCB, as they look like they could have some volatile memory on them.

    I'm catching snippets here and there (since FANUC won't sell me instructions!) that indicate I should be able to select DETAILS while setting up a server tag to change Protocol name to FTP, but when I press choice it says "The selected operation failed". It really looks like something is not enabled.

    Is there a possibility that FTP is a payed option? On this R-J3iB I can connect to the web server, but FTP connections are refused. Under Menu>Setup>Host Comm>Protocols, FTP is not an option. Under the server screen, S1 and S2 are not set up, and I can't seem to find directions on how to set them up.

    Thanks HawkME, I should have known that easier = additional paid options ;)

    Good tip on the loop though, since this is pre-compiled I know how many points I will navigate to. I could possibly iterate through points in a single "for" loop if speeds and types of motion stay the same. Memory isn't really an issue here, so I'll cross that bridge when I come to it.


    We had an overheat alarm the other day on one of the intelligent power modules (IPMs), so I'm doing some cabinet cleaning today. This old gal is NASTY. It came in tripping a breaker, which was likely due to the 5lbs of weld spatter piled on the internal transformer.


    On the control, I have process I/O, Devicenet I/F, Main (slot 1) and PSU. As I unrack these to blow them off/clean them, I'm not worried about process I/O or Devicenet PCBs being volatile, but MAIN has the backup battery. Is there anything in the PSU that will be lost if I unrack these two? They could -potentially- be sharing the battery through the backplane.

    I've done a controller backup, but I'd rather not test my ability to restore it!

    Please let me know if I should start a separate thread for these little questions...


    I am attempting to offset the Z axis of the UFRAME using digital inputs; this is to account for surface deviations in parts we are attempting to trace.
    I have this -sort of- working, but I must periodically apply an offset to a position, which means that for a long move it will not update until the next position.

    I can go into depth about my current solution, but I am wondering if there is a way to update a motion's offset dynamically?


    Let's say, for instance, I have:

    PR[5,3] = R[7]
    J P[1] 50% FINE OFFSET PR[5,3]


    PR[5,3] = R[7]

    J P[2] 50% FINE OFFSET PR[5,3]

    etc...

    I can update the specific axis in the position register from a generic register, but even if positions 1 and 2 are two feet apart, I will only get a Z adjustment for P[2] based on the value read in before motion started.

    The brute-force method is to break long motions into shorter chunks, which is doable. I'm just curious if this can be handled more efficiently.

    P.S. I attempted writing the PR[5] from a "RUN" (parallel) statement, but sadly this requires the use of motion group 1. Even though motion is not being handled from this parallel routine, a motion group still must be assigned to update position registers. I CAN however update the register, which you see above.

    Another silly question: pins 49/50 (+24E) are 24V out for input switches, and 17/18 are 0V for the same purpose (depending on the setting of the ICOM2 jumper which selects sinking or sourcing inputs).
    It is recommended to use an external 24V power supply for outputs (the outputs only sink), with a common connection of COMB1-B5 (external power supply negative goes to COMB1-B5). Each output is rated to sink 200mA.
    I am using an external optoisolator board to buffer the outputs, so the current on each of the digital outs (2 are used currently) is more like 15mA each, 30mA total worst-case.

    Would it be acceptable to jumper 0V (17-18) to COMB1-5(37,42,47,23,28), and use the +24E output (49-50) for the high side of the optoisolator inputs?
    Other than creating too high a current draw on the internal 24V supply, I cannot see how this could harm anything. It just keeps me from having to add a 24V PSU for these tiny outputs.
    Jumpering 0V-COMB1-5 may create a short ground loop, so I'll read with an ohm-meter to see if they are internally connected already.

    Thanks!

    Here's what I'm seeing from what I can glean online:

    CRM2A:

    1*IMSTP
    2*HOLD
    3*SFSPD
    4CSTOPI
    5FAULT RESET
    6START
    7HOME
    8ENBL
    9RSR1/PNS1
    10RSR2/PNS2
    11RSR3/PNS3
    12RSR4/PNS4
    13RSR5/PNS5
    14RSR6/PNS6
    15RSR7/PNS7
    16RSR8/PNS8
    170V
    180V
    19ACK3/SNO3
    20ACK4/SNO4
    21ACK5/SNO5
    22ACK6/SNO6
    23COM-A4
    24ACK7/SNO7
    25ACK8/SNO8
    26SNACK
    27RESERVED
    28COM-A5
    29PNSTROBE
    30PROD START
    31SDIO1
    32SDIO2
    33CMDENBL
    34SYSRDY
    35PROGRUN
    36PAUSED
    37COM-A1
    38HELD
    39FAULT
    40ATPERCH
    41TPENBL
    42COM-A2
    43BATALM
    44BUSY
    45ACK1/SNO1
    46ACK2/SNO2
    47COM-A3
    48
    49+24E
    50+24E


    CRM2B:

    1SDIO3
    2SDIO4
    3SDIO5
    4SDIO6
    5SDIO7
    6SDIO8
    7SDIO9
    8SDI10
    9SDI11
    10SDI12
    11SDI13
    12SDI14
    13SDI15
    14SDI16
    15SDI17
    16SDI18
    170V
    180V
    19SDO13
    20SDO14
    21SDO15
    22SDO16
    23COM-B4
    24SDO17
    25SDO18
    26SDO19
    27SDO20
    28COM-B5
    29SDI19
    30SDI20
    31SDI21
    32SDI22
    33SDO01
    34SDO02
    35SDO03
    36SDO04
    37COM-B1
    38SDO05
    39SDO06
    40SDO07
    41SDO08
    42COM-B2
    43SDO09
    44SDO10
    45SDO11
    46SDO12
    47COM-B3
    48
    49+24E
    50+24E


    Does the above make sense for this I/O card?

    Grrr. Fanuc won't even sell me a manual. This is absurd.

    Can anyone give me some pinout hints on the I/O? The card is an A16B-2201-0472, so 40DI / 40DO.

    I get them wanting to protect their copyrighted material, but come on... I'm trying to get one the legitimate way :cursing:

    Also, attached is my post for an ABB. Hopefully it will help you out a bit.

    Fanuc code is a bit different. You will have to store the XYZWPR pos and paste it at the end of your .ls file.


    John Saunders made a video on configuring a post that was very helpful in making this.

    https://www.youtube.com/watch?v=4OWT-O4oN8E

    Thank you for your example ABB post! I've modified both the LinuxCNC lathe post and the generic FANUC mill post in the past, Autodesk made a nice choice with using JavaScript for their posts. It's similar enough to C++ that I can monkey my way through it.


    PDL, thanks for the tip. It sounds like if I run across a newer robot than the ones on this older tool set, I'll still have a workaround.


    It may be a hot minute, but once I get a post processor going I'll try to throw the whole tool chain on GitHub for anyone else who treads this path.

    Just a quick update: I have had zero trouble going from .TP to .LS or from .LS to .TP on Windows 10 native cmd.exe.
    I have not tried Ktrans yet, but to be honest if I can just convert ASCII to .TP and execute them, it's a small post-processing step for what we're trying to do.
    Nation, I can't thank you enough for the help. Are the files you shared with me to be guarded, or can they be shared with others as they need help?

    On that era of controller, you can enable Karel by going into the system variables and turning $Karel_enb to true. As for compiling teach pendant or Karel programs, attached is pretty much an abandon ware version of the compiler. It can also compile .tp programs.


    Maketp.exe will compile .ls programs to .tp. PrintTP will do the opposite. Ktrans.exe will compile .kl to .pc. Use -? on them in a command prompt to see what they need for arguments. You may also need to run them in a dosbox. I haven't used them in years. You may need to run setrobot.exe to setup your robot first for the compilers.

    You, sir, are a gentleman and a scholar. This is absolutely fantastic. I'm going to give this a try this evening and see if it will work. I can't thank you enough!!!

    I would say give Fanuc a call and see if they can generate a PAC for ASCII Upload. Hopefully you still have the original install media for the robot.


    I believe it was free on that era of controller, and Fanuc tends to hand out options like candy on educational machines.

    Unfortunately no manuals or install media came with the robot. I only have a backup because I made it myself!

    Hey fungus. I don't know if those codes in the backdate.dt correspond to the installed options. It would be helpful if we could see what is installed on that robot. I normally do this by going to Menu->Status->Version ID. Then click the NEXT button and find the ORDER FI button (F2 or F3). This screen will show the code and the name of the option.


    As you are realizing, the software options define the capability of robot.

    Hi JMD, I thought the list of options seemed short compared to the list I saw under Version ID (if this is the same thing, it's slightly different on my controller: Menu>Next>Status>Version ID>F3[config])

    The list is quite long, so I had hoped to pull it in automatically.
    Some of the zeros (0) and o's (O) may be crossed, it's hard to tell the difference.


    1 ArcTool (N.A.) ARTL

    2 English Dictionary H521

    3 Alarm Cause/Remedy DIAG

    4 Analog I/O H550

    5 Arc EQ Program Select J676

    6 Arc SoftPart AWSP

    7 Background Editing J616

    8 Control Reliable J547

    9 Controller Backup J632

    10 Cycle Time Priority J523

    11 Enhanced Rob Serv Req ORSR

    12 Enhanced User Frame J604

    13 Ext. DIO Config EIOC

    14 Floppy Connection J516

    15 General Weld Eq Lib AWMG

    16 Group Mask Exchange MASK

    17 Host Communications HOCO

    18 Hour Meter J513

    19 I/O Interconnect 2 J542

    20 Incr Instruction J510

    21 KAREL Run-Time Env J539

    22 Kernel + Basic S/W H510

    23 Lincoln Weld Eq Lib AWML

    24 MACROs, Skip/Offset J503

    25 Mirror Shift J506

    26 Mode Switch MDSW

    27 Multi-Tasking J600

    28 Online Help HELP

    29 Position Registers J514

    30 Print Function J507

    31 Program Num Selection J515

    32 Program Adjust J517

    33 Program Shift J505

    34 RDM Robot Discovery FRDM

    35 Robot Service Request SRSR

    36 Robot Servo Code H930

    37 Shift Library SHLB

    38 Shift and Mirror Lib SMLB

    39 TCP Auto Set J520

    40 TCP/IP Interface HTCP

    41 TMILIB Interface TMIL

    42 TP Menu Accounting TPAC

    43 TPTX TPTX

    44 Tool Offset J509

    45 User Frame UFRM

    46 Weaving J504

    47 Web Server HTTP

    48 Weld I/O Inst WIOI

    49 iPendant CGTP

    50 iPendant Setup IPGS

    51 M-6iB/ARCMate100iB H770

    52 ArcLink I/O ACLK

    53 BumpBox BBOX

    54 Data Monitor J675

    55 Error Recovery J664

    56 MH Collision Guard HSCD

    57 Payload Ident. J669

    58 TorchGuard TGRD

    59 TorchMate TOMA

    60 Touch Sensing J536

    61 iPendant Controls FRIP

    62 Collision Guard J633

    63 Cycle Time Opt. CTOP

    64 Data Acquisition DTAQ

    65 Data Monitor Chart DMCH

    66 Data Monitor Common DMCM

    67 ETX for TM and BBOX TXBT

    68 Motherboard Driver MOBO

    69 System Trigger SYTG


    Again, thanks everyone.