Jump to content
OMRON Forums

aTURBOPMAC2USER

Members
  • Posts

    24
  • Joined

  • Last visited

Posts posted by aTURBOPMAC2USER

  1. Hello, I have a big problem of MACRO 16-axis station. My pmac framwork is:ultralite pci + 16-axis macro + 3 acc24e2a.

    The following code is the configuration file. After downloading the code, 1-8 axes work fine, but 9-12 axes (the third acc24e2a) don't work.

    I6840=$4030
    I6841=$FB333
    I6890=$90
    I6891=$1FB333
    I6940=$10
    I6941=$2F8001
    I6990=$10
    I6991=$3F8001
    
    I70=$3333
    I71=$3333
    I72=$3333
    I73=$3333
    I78=32
    I79=32
    I80=100
    I81=2
    I82=2
    
    I100,16,100=1				//Enable Motor 1-16;
    I116,16,100=50			//Max Vel 50000cts/sec;
    I117,16,100=1				//Max Acc 1cts/sec^2;
    I119,16,100=1				//Jog Acc 1cts/sec^2;
    I122,16,100=50			//Jog Vel 50000cts/sec;
    I124,16,100=$160001	//Disable Limits And Amplifier,Only For Pulse And Direction;
    I130,16,100=2110		//Proportion Gain,Only For Pulse And Direction;
    I131,16,100=0				//Derivitive Gain,Only For Pulse And Direction;
    I132,16,100=5000		//Vff Gain,Only For Pulse And Direction;
    I133,16,100=0				//Integral Gain,Only For Pulse And Direction;
    I134,16,100=1				//Integration Mode,Only For Pulse And Direction;
    I135,16,100=0				//Aff Gain,Only For Pulse And Direction;
    I169,16,100=2184     //Max Effort Command Out Of Maximum 32767,Only For Pulse And Direction;
    
    I102=$78422					//output register (default location +2)
    I202=$78426					//output register (default location +2)
    I302=$7842A					//output register (default location +2)
    I402=$7842E					//output register (default location +2)
    I502=$78432					//output register (default location +2)
    I602=$78436					//output register (default location +2)
    I702=$7843A					//output register (default location +2)
    I802=$7843E					//output register (default location +2)
    I902=$79422					//output register (default location +2)
    I1002=$79426				//output register (default location +2)
    I1102=$7942A				//output register (default location +2)
    I1202=$7942E				//output register (default location +2)
    I1302=$79432				//output register (default location +2)
    I1402=$79436				//output register (default location +2)
    I1502=$7943A				//output register (default location +2)
    I1602=$7943E				//output register (default location +2)
    
    MS0,MI1996=$1FB333		//Activate Nodes 16,17,20,21,24,25,28,29;
    
    MS0,MI910=8					//Sets Only For Pulse And Direction; 
    MS0,MI916=3
    MS1,MI910=8 
    MS1,MI916=3
    MS4,MI910=8 
    MS4,MI916=3
    MS5,MI910=8
    MS5,MI916=3
    MS8,MI910=8 
    MS8,MI916=3
    MS9,MI910=8 
    MS9,MI916=3
    MS12,MI910=8 
    MS12,MI916=3
    MS13,MI910=8 
    MS13,MI916=3
    MS16,MI910=8		
    MS16,MI916=3	
    MS17,MI910=8	
    MS17,MI916=3	
    MS20,MI910=8
    MS20,MI916=3
    MS21,MI910=8
    MS21,MI916=3
    MS24,MI910=8 
    MS24,MI916=3
    MS25,MI910=8 
    MS25,MI916=3
    MS28,MI910=8 
    MS28,MI916=3
    MS29,MI910=8 
    MS29,MI916=3
    

    Then I want to know what's wrong, and find that one MI variable:MS0,MI1996=$1FB333, can't be saved, as the picture illustrated.

    I tried three other 16-axis macro stations in my hand, and find the problems are the same. Then I tried another ultralite pci card, the problem always appeared.

    Someone told my distributor that make sure the SW1 setting is not set to 15. I checked the SW1 and find that SW1 setted to 7, and SW2 setted to 0, and ms0,mi3=$7.

    The ultralite firmware version is 1.947 and Macro CPU firmware version is 1.203.

    I am sure that the dial switches of the three acc24e2a are all right, and the hardwares are all right. But how to overcome this problem?

    PMAC错误.bmp

  2. You have your algorithm in a background PLC program. You may want to move it into a foreground PLC program (PLCC0) with I8=0, or even an Open Servo algorithm for an additional virtual motor to get it to run at a higher update rate. I don't know if that will make enough of a difference for you.

    Hi, curtwilson, PLCC0 is so precious that it will be used for some other application.

    But the open servo method..., er, may be PMAC's advanced application, can you present a simple example?

    P.S. My PMAC is: Turbe Ultralite PCI + MACRO16 axis + ACC24E2A

  3. if you're willing to add a simple external integrator circuitry using an op amp and couple of resistors and caps, we can generate a square wave at your desired frequency and the external frequency will convert it to triangular waveform.

     

    Hi, Sina, thank you very much.

    Can you give me a detailed illustration about how to use external integrator circuitry and some other components to generate the triangular waveform?

    Best regards.

  4. As to your fundamental issue, at higher speeds, at the high speeds, are you able to catch every compare pulse?

    Hi, curtwilson, thanks for reply.

    Unfortunately, it can't catch every compare pulse in a higher speed of my project. Then I enlarge the counts of every compare, so the pulses aren't lost in the test program.

    Best regards.

  5. Hi, I use the position compare to collect some data, the main codes are:

    P552=M152  //M152 is the state of the pulse which generated by position compare;
    P501=4501
    OPEN PLCC 1 CLEAR
       IF(L152=1)
           IF(P552=0)
               P500=...
               P(P501)=P500
               P552=1
               P501=P501+1
           ENDIF
       ELSE
           IF(P552=1)
               P552=0
           ENDIF
       ENDIF
    CLOSE
    

     

    When the motor moves some counts (100 counts), then M152 flip from 0 to 1, so if there is a rise edge of M152, then a value assigned to P500, and P500 is assigned to P4501.

    Usage this mathod, I collect some data, and assigned them to P4501,P4502,...,P5000. After the motor stops, these P-variable is uploaded to the upper computer, and the upper computer plot a figure from the P-variable.

    But when change velocity of the motor, namely, change velocity from 30000 to 45000, the figure plotted by the upper computer and the PMAC Plot Pro2 (using P500) is different.

    I'm very puzzling about this problem, so I want to compare the values of P-variable the code generated and the upper compare received. Is there any way to export the values of P-variable, namely, P4501...P5000, to a excel or txt file from the PEWIN32PRO2?

    P.S. Can any one give some advise about the problem?

  6. Are the inputs working ok?

    Are you using MI69/MI70 transfers?

    and which node(s) are you using for the transfers?

     

    Try this code while we look into the one in the manual:

    
    #define 16In 		M4015 			; M-Variable pointer to hold 16-bit inputs
    #define 8In8Out M4016 			; M-Variable pointer to hold 8-bit inputs and 8-bit outputs
    #define 16Out 	M4017 			; M-Variable pointer to hold 16-bit outputs
    
    16In->X:$78421,8,16 				; I/O Node 2 1st 16-bit register (16 inputs)
    8In8Out->X:$78422,8,16 			; I/O Node 2 2nd 16-bit register (8 inputs and 8 outputs)
    16Out->X:$78423,8,16 				; I/O Node 2 3rd 16-bit register (16 outputs)
    
    #define InputsMirror	M4115
    InputsMirror->X:$10FF,0,24
    InputsMirror = 0
    
    #define OutputsMirror	M4116
    OutputsMirror->Y:$10FF,0,24
    OutputsMirror = 0
    
    Open plc 1 clear
    // 1 msec delay
    I5111 = 1 * 8388608/I10 WHILE (I5111 > 0) EndW
    
    // Inputs
    InputsMirror = 16In + 8In8Out&$FF * 65536
    
    // Outputs
    8In8Out = OutputsMirror&$FF * 256 
    16Out = OutputsMirror&$FFFF00 / 256
    CLOSE
    
    // Bitwise Inputs
    M1->X:$10FF,0,1
    M2->X:$10FF,1,1
    M3->X:$10FF,2,1
    M4->X:$10FF,3,1
    M5->X:$10FF,4,1
    M6->X:$10FF,5,1
    M7->X:$10FF,6,1
    M8->X:$10FF,7,1
    M9->X:$10FF,8,1
    M10->X:$10FF,9,1
    M11->X:$10FF,10,1
    M12->X:$10FF,11,1
    M13->X:$10FF,12,1
    M14->X:$10FF,13,1
    M15->X:$10FF,14,1
    M16->X:$10FF,15,1
    M17->X:$10FF,16,1
    M18->X:$10FF,17,1
    M19->X:$10FF,18,1
    M20->X:$10FF,19,1
    M21->X:$10FF,20,1
    M22->X:$10FF,21,1
    M23->X:$10FF,22,1
    M24->X:$10FF,23,1
    
    // Bitwise Outputs
    M31->Y:$10FF,0,1
    M32->Y:$10FF,1,1
    M33->Y:$10FF,2,1
    M34->Y:$10FF,3,1
    M35->Y:$10FF,4,1
    M36->Y:$10FF,5,1
    M37->Y:$10FF,6,1
    M38->Y:$10FF,7,1
    M39->Y:$10FF,8,1
    M40->Y:$10FF,9,1
    M41->Y:$10FF,10,1
    M42->Y:$10FF,11,1
    M43->Y:$10FF,12,1
    M44->Y:$10FF,13,1
    M45->Y:$10FF,14,1
    M46->Y:$10FF,15,1
    M47->Y:$10FF,16,1
    M48->Y:$10FF,17,1
    M49->Y:$10FF,18,1
    M50->Y:$10FF,19,1
    M51->Y:$10FF,20,1
    M52->Y:$10FF,21,1
    M53->Y:$10FF,22,1
    M54->Y:$10FF,23,1
    
    

     

    Hello, Richard, thanks for attention. I use MI69, and node 2 to transfer. Only one ACC-11E in the MACRO rack, one MACRO, one Turbo Ultralite. I have not test the inputs. The configuration of ACC-11E is :

    I6841=$FB33F
    MS0,MI975=$CCC
    MS0,MI69=$10C0A1308800
    MS0,MI19=$4
    

    I have upload the picture, which can illustrate the conflict:

    1.bmp2.bmp

  7. The example to which you refer applies to using the 11E in a MACRO ring. Is your ACC-11E in a MACRO rack? If you are using with a Turbo UMAC, then refer to "Using the ACC-11E with Turbo UMAC", starting on page 13.

     

    @StephenJ

    Yes, the ACC-11E is in a MACRO ring. But, do you read the addresses in the page45? And make a test? I think they are out of accord with the address definition in the page44. I tried many times to correct the addresses(and the code), the best result was lighting output9...24, but output1...output8 could not be controlled unexpectedly.

     

    By the way, because of lack special manuals for MACRO, sometimes I feel the MACRO make me crazy.

  8. Dear all,

    There may be some mistakes in the user manual of ACC-11E (newest version, December 17, 2012), page 44 and page 45, the code and the addresses illustrate how to using the mirroring word can lighting output1...output8, but output9..output24 cannot be controlled (I have not test the inputs). I try to correct the addresses and some lines of the code, but failed.

    So when using the mirroring word, can you give me a correct code and addresses of the inputs and outputs?

  9. The table above the command list is meant to be used with the commands, with the "x" just being the stand-in for which motor register (when looking at the commands) or which command (when looking at the table).

     

    For instance, Motor 1's address is "$00009x", combined with the following error register "D:$000x91/11" yields a full register for Motor 1's following error as "D:$000091". In this case, it takes the 4th 0 and the 9 from the table to identify Motor 1 and the D register and 1 from the command to identify following error.

     

    @AAnikstein Thank you very much! It works very well. But I feel the long sentense above is hard to understand because of my poor English and the grammar structure. Can you tell me which PDF and which page I can find the similar explaination?

    Best regards!

  10. In Turbo PMAC motor #1 following error is at D$91 not D$191. It does work.

    Thank you for attention. I'll try it a few days later, because the controller I used had been expressed to the disturbutor for the configuration of 14-axes .

    By the way, in the Turbo SRM, it says that D:$000x91/11 is the address of following error, so what's the meaning of 'x' if not D:$191(#1 for example)?and the meaning of '/11'?

    Thanks.

  11. Dear all, I want to read the following error in my program, is there any way to use a m-variable read the following error? I search the m-variable listed in the turbo srm manual, and try to make the suggest m-variable pointing the address suggested, but it does not work.Someone tell me let a m-variable point the address D:$00191(#1 motor for example), it also does not work.

    P.S. I find two method in the manual:copyreg and

    #{motor number}F,It seems copyreg used in a servo (namely, open servo...close), and #{motor number}F (namely #1F) used in the terminal window.But how can I use them in a program, and where is the address of the following error?

    By the way, my controller is Turbo Ultrilate MACRO.

    Thanks.

  12. The best manual to start with would be:

    http://www.deltatau.com/manuals/pdfs/16%20AXIS%20MACRO%20CPU%20USER.pdf?id=635162264156329223

     

    Tell us what other MACRO hardware you have and we can point you to other documents.

     

    Thank you very much!

     

    The other MACRO hardwares are: MACRO 16-axis CPU, ACC-24E2A, ACC-28E, ACC-36E, ACC-11E.

    The PMAC CPU is: TURBO PMAC PCI Ultralite.

    The controlled devices are: DC brush motor, DC brushless motor(linear).

  13. hello, for the system comprised of turbo pmac ultralite and macro, i find it is difficult to use some functions if i reading the manuals which are presented in the web. the variables working very well in the non-macro system, but for pmac-macro system, they are no longer in force.

     

    is there a pdf about the detailed relationship between turbo pmac ultralite and macro? and tell the user if they developing the pmac-macro system, they should read this pdf first, let them know that some variables and functions are different from the non-macro pmac system, and tell them the right usage method.

     

    hope for replying...

     

    thank you.

  14. I find one way finally:

     

    ///////////////////////////////////

    open plc 1 clear

    cmd"&1b1r"

    disable plc 1

    close

     

    open prog 1 clear

    m3300=0

    dwell 0

    m3301=0

    dwell 0

    m3302=0

    dwell 0

    close

    ///////////////////////////////////

     

    Thanks to everyone who kindly attention this question.

  15. This will occur if ...

     

    @TheTruth:

    Dear TheTruth, as a beginner of PMAC, after a long time to understand the codes you give me and the manual of Acc-11E, I find it‘s still difficult to write the proper codes for my special application. Because of the other outputs will be used, I want those outputs will not be changed when changing output1-3. Can you give me a more dailted example?

    PS:The configuration of my Acc-11E is:

     

    //////////////////////////////////////////////////////////////////////////////////

    I6841=$0FB33F;Enable nodes 0,1,2,3,4,5,8,9,12, & 13 at PMAC Ultralite

    M980->X:$78421,8,16;IO word #1, 1st 16 bit word node2

    M981->X:$78422,8,16;IO word #2, 2nd 16 bit word node 2

    M982->X:$78423,8,16

    MS0,MI69=$20C0A1308800

    MS0,MI975=$C;enable node 2 and 3 for I/O

    MS0,MI19=4

     

    And the adresses of output1-3 are:

     

    M3301->X:$78422,16 // OUT1

    M3302->X:$78422,17 // OUT2

    M3303->X:$78422,18 // OUT3

    ////////////////////////////////////////////////////////////////////////////////

     

    Thank you very much.

  16. Dear All, i connect some switches to the outputs of Acc-11E, and write a plcc to make the switches on if P100=1, something like:

     

    ///////////////////////////////////////////

    m3300->address of output 1

    m3301->address of output 2

    m3302->address of output 3

    open plcc 1 clear

    if(p100=1)

    m3300=1 // switch 1

    m3301=1 // switch 2

    m3302=1 // switch 3

    p100=0

    endif

    disable plcc 1

    close

    //////////////////////////////////////////

     

    After downloaded the codes to pmac, and issuing p100=1 in the termianl, i find only one switch acts, the switch 3.

    But if i add a short delay between the three switches, they all act after issuing p100=1:

     

    /////////////////////////////////////////

    open plcc 1 clear

    if(p100=1)

    m3300=1 // switch 1

    I5111=... // delay

    m3301=1 // switch 2

    I5111=... // delay

    m3302=1 // switch 3

    I5111=... // delay

    p100=0

    endif

    disable plcc 1

    close

    /////////////////////////////////////////

     

    i am puzzled at why the delays must exist, and don't want the delays exist between the switches, can you give me some advise?

    thank you.

    PS:one turbo pmac2 ultralite, one macro and one acc-11e.

  17. Dear All, is there any way to assign a variable to MI variable? Something like:

    ////////////////////////////////

    open plc 1 clear

    ...

    p1000=...

    close

    open prog 1 clear

    ...

    ms0,mi925=p1000+100

    ...

    close

    ///////////////////////////////

    When i down the plc and prog to pmac, an error says that "ms0,mi925=p1000+100 -------Data error or unrecognized command" away occured.

    Can anyone help me?

    PS:Turbo PMAC2 Ultralite, one MACRO station.

×
×
  • Create New...