588,525 active members*
3,995 visitors online*
Register for free
Login
IndustryArena Forum > Machine Controllers Software and Solutions > Fanuc > Wikipedia: Fanuc controls and model differences?
Page 2 of 2 12
Results 21 to 34 of 34
  1. #21
    Join Date
    Feb 2011
    Posts
    640
    we never used a btr board- just the standard rs232 port...Ive seen
    BTRs but never messed with one- looks like just a serial/parallel converter that feeds thru the tape reader wiring?

    Anyway, the screen key I think they are doing might be one of the 'general purpose switches' that you can change the text via parameters, and toggle off/on- but it would need a slight ladder change to read the bit...

    all you need is the mode though from what I recall- you can drip feed most without buying anything- just turn on the option and send thru tape mode?

  2. #22
    Join Date
    Aug 2008
    Posts
    153

    GN observations

    Greetings Tim, Bill and Dan,
    What great reading!

    One of my favorite things about GN was their SCHEMATICS!! Gone is the day when you'll ever see Fanuc publish them.

    I was in the last day of my FS11 class on Kent Avenue when the instructor walked in and announced the demise of GN. He opened the closet where all of the GN books were stored and told us to take whatever we wanted. That stuff is still in our library and gets used frequently.

    Warren

    www.uptimecorp.com

  3. #23
    Join Date
    Apr 2009
    Posts
    1383
    Great to hear from you, Warren. You too can contribute a lot.
    Regarding the FS6: you need no special software for dnc- just a tape mode and a serial connection (built-in all models).
    I too wrote a Basic program years ago to decode the FS6 ladder from the eproms- free to anyone.
    For your information: Tom Gaasenbeek, who founded Memex,
    is working with (not for) Tulip Electronics (tulipmemory.com). He has no more association with Memex or Astrix.
    I personally came up with the "Autoload" feature on the bubble replacement boards in 1992.
    As to the 2M memory upgrade for the FS6, Tulip had a 256 Mbyte hard drive based memory board in 1995 with true program size limit of 32 Mbyte! It also had background loading/punching of the memory (including a complete dump/restore of the memory contents). It did not sell so we discontinued it. So we'll see if the new software/memory will actually sell.
    I propose a loose group of people manage/update the Wikipedia entry. Am wiling to contribute but not manage.
    Bill Peiman

  4. #24
    Join Date
    Feb 2011
    Posts
    640
    Bill- great to hear, maybe you can help me...I had decoded every ladder instruction, pretty sure it was accurate, but like the 5th and 10th words at the start of the ROM was checksum of some sort...I recall they were inverse of each other, always added to 100h, but for the life of me I couldnt figure out how they arrived at the values...any insight? my original intention was to replace the old suitcase with a BASIC ladder documentation package...I couldnt figure the checksum, so abandoned it- it does print mnemonics accurately from what Ive seen.

    did you know Dennis Sakuta? I think I may have met you before...

    hope everyones having a great Easter

    Tim

  5. #25
    Join Date
    Oct 2007
    Posts
    179
    Bill and Tim-I was told the upgrade would be to my fs6 software and not to the ladder in anyway. Memex said it would put an extra soft key on the setting page?

    "We have eprom sets to upgrade Fanuc 03 adn 6 controls to have serial
    port Drip feeding for DNC. Different controls use differetn Eproms.
    Dpends what it is Fanuc 0A, B and C can use differnt types. Some fanuc
    3 controls use different Eproms and have a switch for the diferent
    types others do not. You need to check the chip type. You can get them
    from different manufacturers as long as they are the right type. Fnauc
    6MBII can use any 2764 eprom"

    If I can already drip feed that would be great..but as far as I understood it would require some hardware mods to get this facility.
    The software upgrade looked like a neat solution :-)

    If I put the control in tape mode and try to drip feed through the RS232 nothing happens!

    I can load a program through RS232 in memory mode at 4800 baud.

    John

  6. #26
    Join Date
    Apr 2009
    Posts
    1383
    John, I may have been inaccurate re the DNC part. There is an TAPE option (param 2 bit 5) that may have to be enabled. Try it.
    Since Tom Gaasenbeek is no longer supporting this product through Memex/Astrix, you are better of contacting him directly ([email protected]).
    Timm, I think that Dennis and I have met (IMTS?). About the checksum, I am unclear about how it is generated. My program is not 100%. I would be happy to put my ladder software in the public domain; can some one explain how to do that? I can also attach it to an email.

  7. #27
    Join Date
    Feb 2011
    Posts
    640
    Quote Originally Posted by memoryman View Post
    About the checksum, I am unclear about how it is generated. My program is not 100%. I would be happy to put my ladder software in the public domain; can some one explain how to do that? I can also attach it to an email.
    heres the source I wrote...toss yours in if you dont mind- I'm not much of a basic programmer, theres probably a hundred shortcuts I coulda used

    CLS
    PRINT" <6SERIESB.EXE>"
    PRINT
    PRINT" FANUC 6-SERIES PMC ROM->MNEMONIC EXTRACTION TOOL"
    PRINT" (LAST EDITED AT 1:53 AM ON 1/26/98)
    PRINT" TIM C"
    PRINT
    1 PRINT" REQUIRES E-PROMS 251/252 TO BE UNSPLIT AND SAVED TO DISK"
    PRINT

    2 INPUT "ENTER ROM FORMAT FILENAME(DRIVE:\PATH\NAME.EXTENSION): ", A$
    'INPUT "OUTPUT MNEMONIC FILENAME:", B$
    BBB$ = "C:\TMP.000"
    OPEN "O", #2, BBB$
    3 c = 0
    4
    5 PRINT #2, TAB(0); "PRINTED BY <6SERIESB.EXE> TIM C "
    PRINT #2, TAB(0); "LAST EDITED AT 1:53 AN ON 1/26/98"
    PRINT #2, TAB(0); "PRINTED ON "; DATE$; " AT "; TIME$

    7 PRINT #2, TAB(0); "ROM FORMAT FILENAME: "; A$
    'PRINT #2, TAB(0); "MNEMONIC FILENAME: "; B$
    PRINT #2,""
    PRINT #2, TAB(0); "NO GUARANTEE OF ACCURACY IS MADE FOR THIS PROGRAM"
    PRINT #2, TAB(0); "I CREATED IT FOR USE AS A TOOL TO HELP DEBUG "
    PRINT#2, TAB(0);"LADDER PROGRAMS IN THE EARLY FANUC PMC'S, WHICH ARE "
    PRINT #2,TAB(0);"OFTEN LOST OR MISSING..."
    PRINT#2, TAB(0); "FORMAT REQUIRES UNSPLITTING 2716 E-PROMS FROM SOCKETS"
    PRINT#2, TAB(0);"251/252 (251= LOW BYTE...)"
    PRINT#2,""
    PRINT#2,""
    PRINT#2,""

    s = 0 'sub 2 marker reset
    D = 0
    F = 0
    N = 1
    E = -1
    10 OPEN "I", 1, A$
    24 IF EOF(1) THEN 100
    25 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 150
    100 END
    150 IF E < 160 THEN GOTO 25

    IF H$ = HEX$(160) THEN PRINT #2, "@"; E; TAB(10); "N"; N; " READ"; : N = N + 1: GOTO 200
    151 IF H$ = HEX$(162) THEN PRINT #2, "@"; E; TAB(10); "N"; N; " WRITE"; : N = N + 1: GOTO 200
    GOTO 1005'NOT READ/WRITE

    'END 1 PROCESSING:
    1002 s = s + 1
    PRINT #2,
    PRINT #2, TAB(10); "N"; N; " END 1": N = N + 1
    PRINT #2,
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 150

    'AND PROCESSING:
    1012 PRINT #2, "@"; E; TAB(10); "N"; N;
    PRINT #2, " AND "; : N = N + 1
    GOTO 200

    H$ = INPUT$(1, #1): E = E + 1
    GOTO 200

    PRINT #2, ASC(H$); ".";
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, H$
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 150

    'SEARCH END 1
    1001 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(255) THEN GOTO 1002 ELSE GOTO 1010
    1000 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(46) THEN GOTO 1001 ELSE GOTO 150
    1005 IF H$ = HEX$(252) THEN GOTO 1000
    GOTO 1010

    'CHECK FOR AND:
    1011 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(6) THEN GOTO 1012 ELSE GOTO 1020
    1010 IF H$ = HEX$(34) THEN GOTO 1011 ELSE GOTO 1020

    'READ/WRITE PROCESSING:
    200 H$ = INPUT$(1, #1): E = E + 1
    201 LET q = ASC(H$) 'store byte
    202 H$ = INPUT$(1, #1): E = E + 1
    r = ASC(H$) 'store byte 2
    IF r < 1 THEN rr = 1 'IF *NOT BIT 0* CANT READ NULL STRING...PROCESS DIRECTLY...
    r = r * 256 'convert to msb hex
    r = r + q 'r=hex sum
    r$ = STR$(r)
    z$ = HEX$(r)
    IF dec = 1 THEN 209
    IF coin = 1 THEN 209
    IF r < 32768 THEN PRINT #2, " NOT";
    s$ = RIGHT$(z$, 3)'read right 3 hex digits
    B$ = LEFT$(z$, 1)'read bit (hex)
    r = ASC(s$)
    3001 IF rr = 1 THEN B = 0: GOTO 222
    IF B$ = "0" THEN B = 0'convert bit(hex) to bit
    IF B$ = "1" THEN B = 1
    IF B$ = "2" THEN B = 2
    IF B$ = "3" THEN B = 3
    IF B$ = "4" THEN B = 4
    IF B$ = "5" THEN B = 5
    IF B$ = "6" THEN B = 6
    IF B$ = "7" THEN B = 7
    IF B$ = "8" THEN B = 0
    IF B$ = "9" THEN B = 1
    IF B$ = "A" THEN B = 2
    IF B$ = "B" THEN B = 3
    IF B$ = "C" THEN B = 4
    IF B$ = "D" THEN B = 5
    IF B$ = "E" THEN B = 6
    IF B$ = "F" THEN B = 7
    222 rr = 0
    IF s < 1 THEN 206'skip change if sub 1
    IF q > 179 THEN 206
    IF q > 145 THEN 204
    IF q > 129 THEN 203
    GOTO 206
    204 q = q - 114: GOTO 206
    203 q = q - 66: GOTO 206

    206 PRINT #2, q;
    IF dec = 1 THEN 207
    PRINT #2, ".";
    207 dec = 0
    208 PRINT #2, B
    GOTO 25
    209 PRINT #2, "@"; E; TAB(10); "N"; N; " "; r$: N = N + 1
    dec = 0
    coin = 0
    GOTO 25


    'RD STK PROCESSING:
    1021 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(224) THEN 1022 ELSE 1040
    1020 IF H$ = HEX$(209) THEN 1021 ELSE 1040
    1022 PRINT #2, "@"; E; TAB(10); "N"; N; " READ STACK "; : N = N + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 200

    'AND/OR STK PROCESSING:
    1041 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(204) THEN 1042 ELSE 1050
    1040 IF H$ = HEX$(208) THEN 1041 ELSE 1050
    1042 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(10) THEN 1043 ELSE 1044
    1043 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " OR STACK ": N = N + 1
    GOTO 25
    1044 IF H$ = HEX$(34) THEN 1045 ELSE 25
    1045 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " AND STACK": N = N + 1
    GOTO 25

    'OR PROCESSING:
    1051 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(6) THEN 1052 ELSE 1060
    1050 IF H$ = HEX$(10) THEN 1051 ELSE 1060
    1052 PRINT #2, "@"; E; TAB(10); "N"; N; " OR "; : N = N + 1
    GOTO 200

    'SUB PROCESSING:
    1061 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(255) THEN 1062 ELSE 2020
    1060 IF H$ = HEX$(38) THEN 1061 ELSE 2020
    1062 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(6) THEN 1070
    IF H$ = HEX$(10) THEN 1090
    IF H$ = HEX$(32) THEN 2000
    IF H$ = HEX$(8) THEN 1080
    IF H$ = HEX$(16) THEN 1075 ELSE 25


    'END 2 PROCESSING:
    2021 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    IF H$ = HEX$(16) THEN 2022 ELSE 2030
    2022 PRINT #2, TAB(10); "N"; N; " END 2": N = N + 1: GOTO 8'END 3/4/98
    2020 IF H$ = HEX$(234) THEN 2021 ELSE 2030

    'SUB 2 DIVISION PROCESSING:
    2030 IF H$ = HEX$(248) THEN 2031 ELSE 25
    2031 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    F = F + 1
    PRINT #2, TAB(15); "( DIVISION"; F; ")"
    GOTO 25

    'TIMER PROCESSING:
    1070 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " TMR "; : N = N + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, H$
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 25

    'DECODE PROCESSING:
    1080 dec = 1: PRINT #2, "@"; E; TAB(10); "N"; N; " DECODE ";
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = INPUT$(1, #1): E = E + 1
    PRINT #2, ASC(H$): N = N + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 200

    'COUNTER PROCESSING:
    1090 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " CTR "
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; H$: N = N + 2
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    GOTO 25

    'COINCIDENCE PROCESSING:
    2000 H$ = INPUT$(1, #1): E = E + 1
    H$ = INPUT$(1, #1): E = E + 1
    coin1 = ASC(H$)
    PRINT #2, "@"; E; TAB(10); "N"; N; " SUB 16 (COIN)": N = N + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; coin1: N = N + 1
    H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    coin = 1
    GOTO 200


    'MOVE FUNCTION PROCESSING:
    1075 H$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    PRINT #2, "@"; E; TAB(10); "N"; N; " MOVE ": N = N + 1
    H1$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H2$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = H2$ + H1$
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; : N = N + 1: GOSUB 1076
    H1$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H2$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = H2$ + H1$
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; : N = N + 1: GOSUB 1076
    H1$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H2$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = H2$ + H1$
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; : N = N + 1: GOSUB 1076
    H1$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H2$ = HEX$(ASC(INPUT$(1, #1))): E = E + 1
    H$ = H2$ + H1$
    PRINT #2, "@"; E; TAB(10); "N"; N; " "; : N = N + 1: GOSUB 1076
    GOTO 25


    '************************************************* *********************
    1076 ' SUB 1 HEX--> DECIMAL CONVERTER SUBROUTINE...


    HL = LEN(H$): DS = 0 ' LEN SETS STARTING DIGIT...
    IF HL = 4 THEN 10080
    IF HL = 3 THEN 10079
    IF HL = 2 THEN 10078
    IF HL = 1 THEN 10077

    10080 H4$ = LEFT$(H$, 1)'GRAB 4TH DIGIT
    D$ = H4$: DL = 4: H$ = RIGHT$(H$, 3): GOSUB 1081
    10079 H3$ = LEFT$(H$, 1)'GRAB 3RD DIGIT
    D$ = H3$: DL = 3: H$ = RIGHT$(H$, 2): GOSUB 1081
    10078 H2$ = LEFT$(H$, 1)'GRAB 2ND DIGIT
    D$ = H2$: DL = 2: H$ = RIGHT$(H$, 1): GOSUB 1081
    10077 H1$ = RIGHT$(H$, 1)'GRAB 1ST DIGIT
    D$ = H1$: DL = 1: GOSUB 1081
    PRINT #2, DS
    RETURN 'END OF CONVERION SUB...
    1081 'CONVERSION DATA...
    IF D$ = "0" THEN DD = 0
    IF D$ = "1" THEN DD = 1
    IF D$ = "2" THEN DD = 2
    IF D$ = "3" THEN DD = 3
    IF D$ = "4" THEN DD = 4
    IF D$ = "5" THEN DD = 5
    IF D$ = "6" THEN DD = 6
    IF D$ = "7" THEN DD = 7
    IF D$ = "8" THEN DD = 8
    IF D$ = "9" THEN DD = 9
    IF D$ = "A" THEN DD = 10
    IF D$ = "B" THEN DD = 11
    IF D$ = "C" THEN DD = 12
    IF D$ = "D" THEN DD = 13
    IF D$ = "E" THEN DD = 14
    IF D$ = "F" THEN DD = 15
    IF DL = 1 THEN DS = DS + DD
    IF DL = 2 THEN DS = DS + (DD * 16)
    IF DL = 3 THEN DS = DS + (DD * 256)
    IF DL = 4 THEN DS = DS + (DD * 4096)
    RETURN 'TO GET NEXT HEX DIGIT...

    8 CLOSE#1
    CLOSE 1
    CLOSE#2
    FOR I =1 TO 1000000
    NEXT I

    OPEN "I",1, BBB$
    88 LINE INPUT #1, H$
    LPRINT H$
    IF EOF(1) THEN 9
    GOTO 88
    9 CLOSE 3
    SYSTEM
    END

  8. #28
    Join Date
    Oct 2007
    Posts
    179
    Quote Originally Posted by memoryman View Post
    John, I may have been inaccurate re the DNC part. There is an TAPE option (param 2 bit 5) that may have to be enabled. Try it.
    Since Tom Gaasenbeek is no longer supporting this product through Memex/Astrix, you are better of contacting him directly ([email protected]).
    Timm, I think that Dennis and I have met (IMTS?). About the checksum, I am unclear about how it is generated. My program is not 100%. I would be happy to put my ladder software in the public domain; can some one explain how to do that? I can also attach it to an email.
    Thanks Bill will have a look at that one will contact Tom if I can't get it to work.
    John

  9. #29
    Join Date
    Feb 2011
    Posts
    640
    hey memoryman

    if you get a chance could you post up or email some of your old pc-a decompiler too? I'd still like to check out yours sometime just to get some more basic programming ideas...basic is cool, about everything I've 'had' to do was able to fumble thru it (well except for that checksum thing...), but certainly not proficient at it and I'm sure my program was a mess...
    sometimes a lot of 'why didnt i think of that' things pop up when reading thru someone elses logic for a similar process

  10. #30
    Join Date
    Aug 2010
    Posts
    43
    Hi TV429
    Please help me.
    What do you mean with unsplitting in your program.
    PRINT#2, TAB(0); "FORMAT REQUIRES UNSPLITTING 2716 E-PROMS FROM SOCKETS"
    PRINT#2, TAB(0);"251/252 (251= LOW BYTE...)"
    I have the 6 chips in seperate binary files.

  11. #31
    Join Date
    Feb 2011
    Posts
    640
    My eprom burner(assume most are similar) allows splitting a machine language program into 2 or more chips... You wont need the 241/242, those are firmware for the pmc function, 251/252 and the next two are your ladder... When you unsplit the data, say addresss 1 in 251 reads 1234, and address 1 in 252 reads 5678- unsplitting would save word 1 as 15263748 type of thing if you know what i mean... Over my head, but thats my take on it...

  12. #32
    Join Date
    Aug 2010
    Posts
    43
    Quote Originally Posted by tc429 View Post
    My eprom burner(assume most are similar) allows splitting a machine language program into 2 or more chips... You wont need the 241/242, those are firmware for the pmc function, 251/252 and the next two are your ladder... When you unsplit the data, say addresss 1 in 251 reads 1234, and address 1 in 252 reads 5678- unsplitting would save word 1 as 15263748 type of thing if you know what i mean... Over my head, but thats my take on it...
    Hi TC429
    Thanks I do got the idea.
    What basic program did you use to run your extracting software?

  13. #33
    Join Date
    Aug 2010
    Posts
    43
    Hi memoryman
    I hope you can help me. TC429 said I must ask you for a program to read my Fanuc 6T-B ROM chips.
    I have a binary copy that someone made for me with his eprom reader. I try to get the file in a readable format or aladder diagram.
    TC429 said that your program is much better then his one.
    Can you PLEASE PLEASE help me?:cheers::cheers:

  14. #34
    Join Date
    Apr 2009
    Posts
    1383
    send an email to [email protected] and I will send the files.

Page 2 of 2 12

Similar Threads

  1. Do you contribute to the Wikipedia ?
    By Swiss in forum Polls
    Replies: 10
    Last Post: 08-19-2015, 08:06 AM
  2. Differences between Fanuc 0ITB and 21ITB
    By malonet in forum Fanuc
    Replies: 0
    Last Post: 02-13-2008, 08:30 PM
  3. Wikipedia, Anti GW Vandalism and Global Extinction
    By totally_screwed in forum Environmental / Alternate Energy
    Replies: 30
    Last Post: 04-25-2007, 01:09 PM
  4. Fanuc OT and OT Mate Differences?
    By Fudd in forum Uncategorised MetalWorking Machines
    Replies: 0
    Last Post: 07-09-2004, 01:39 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
  •