Jump to content
OMRON Forums

Configuring ACC-5E3 with ACC-14M on PPMAC


coles55
 Share

Recommended Posts

Hello,

We are in the process of configuring an ACC5E3 card to talk with the PPMAC. We have qty. 2 ACC14M cards connected to the ACC5E3 via fiber. Since there is no written instructions on setting up the configurations for the ACC5E3 card with PPMAC, could someone provide some pointers in setting up the card?

 

Thanks,

Lei

Link to comment
Share on other sites

  • Replies 13
  • Created
  • Last Reply

Top Posters In This Topic

I have not personally set that up so I am not completely sure how to do so. However, one of my coworkers recently worked with Power PMAC MACRO and wrote a small application note. I hope it helps you to some degree until someone posts something more comprehensive!

Setting up two Brush Motors in a UMAC MACRO 16 using Power PMAC Ultralite.pdf

Link to comment
Share on other sites

Charles,

Thanks for providing the document. We are currently trying to setup the 5E card to read from the (qty.2) 14M card ADC channels. If anyone has had this experience before please let me know.

 

Thanks,

Lei

 

 

 

I have not personally set that up so I am not completely sure how to do so. However, one of my coworkers recently worked with Power PMAC MACRO and wrote a small application note. I hope it helps you to some degree until someone posts something more comprehensive!

 

 

Link to comment
Share on other sites

Coles55,

 

Here is what you need to do to setup ACC-5E3 in order to have one servo node and one IO node enabled:

 

Sys.WpKey=$AAAAAAAA;

// Assuming your ACC-5E3 has two DspGate3 chips
// You have to setup all the clocks on slave Gates first
Acc5E3[1].PhaseFreq = 8000;
Acc5E3[1].ServoClockDiv=1;
Acc5E3[1].PhaseClockDiv=0;
Acc5E3[1].PhaseClockMult=0;

// Setup the clock on master Gate
Acc5E3[0].PhaseFreq = 8000;
Acc5E3[0].ServoClockDiv=1;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;
Acc5E3[1].MacroModeA=$1000;
Acc5E3[1].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00500
Acc5E3[0].MacroEnableB=$1F800000
Acc5E3[1].MacroEnableA=$2F800000
Acc5E3[1].MacroEnableB=$3F800000

Sys.WpKey=$0;

 

Now you can access the node 2 registers, where I'm assuming you're setting your ACC-14M:

 

Acc5E3[0].MacroOutA[2][0] : Writing to digital outputs , assuming MI14=0 or 3

Acc5E3[0].MacroInA[2][0] : Reading from digital inputs , assuming MI14=0 or 3

Acc5E3[0].MacroOutA[2][1] : Writing to 1st DAC
Acc5E3[0].MacroOutA[2][2] : Writing to 2nd DAC

Acc5E3[0].MacroInA[2][1] : Reading from 1st ADC
Acc5E3[0].MacroInA[2][2] : Reading from 2nd ADC

 

I hope this gives you a head start.

 

 

 

 

Link to comment
Share on other sites

Thank you, Sina. I don't suppose there is an ACC-5E3 manual out there? I have the ACC-5E manual but not sure if there is an ACC-5E3 manual out there.

 

Regards,

Lei

 

Coles55,

 

Here is what you need to do to setup ACC-5E3 in order to have one servo node and one IO node enabled:

 

Sys.WpKey=$AAAAAAAA;

// Assuming your ACC-5E3 has two DspGate3 chips
// You have to setup all the clocks on slave Gates first
Acc5E3[1].PhaseFreq = 8000;
Acc5E3[1].ServoClockDiv=1;
Acc5E3[1].PhaseClockDiv=0;
Acc5E3[1].PhaseClockMult=0;

// Setup the clock on master Gate
Acc5E3[0].PhaseFreq = 8000;
Acc5E3[0].ServoClockDiv=1;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;
Acc5E3[1].MacroModeA=$1000;
Acc5E3[1].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00500
Acc5E3[0].MacroEnableB=$1F800000
Acc5E3[1].MacroEnableA=$2F800000
Acc5E3[1].MacroEnableB=$3F800000

Sys.WpKey=$0;

 

Now you can access the node 2 registers, where I'm assuming you're setting your ACC-14M:

 

Acc5E3[0].MacroOutA[2][0] : Writing to digital outputs , assuming MI14=0 or 3

Acc5E3[0].MacroInA[2][0] : Reading from digital inputs , assuming MI14=0 or 3

Acc5E3[0].MacroOutA[2][1] : Writing to 1st DAC
Acc5E3[0].MacroOutA[2][2] : Writing to 2nd DAC

Acc5E3[0].MacroInA[2][1] : Reading from 1st ADC
Acc5E3[0].MacroInA[2][2] : Reading from 2nd ADC

 

I hope this gives you a head start.

 

 

 

 

 

 

Link to comment
Share on other sites

Sina,

With the IDE I have access to IC #0 on ACC-5E3 card but not IC #1. In other words, the IDE sees Acc5E3[0] but not Acc5E3[1]. Could you advise on how to gain access to Acc5E3[1]?

 

Thanks,

Lei

 

Coles55,

 

Here is what you need to do to setup ACC-5E3 in order to have one servo node and one IO node enabled:

 

Sys.WpKey=$AAAAAAAA;

// Assuming your ACC-5E3 has two DspGate3 chips
// You have to setup all the clocks on slave Gates first
Acc5E3[1].PhaseFreq = 8000;
Acc5E3[1].ServoClockDiv=1;
Acc5E3[1].PhaseClockDiv=0;
Acc5E3[1].PhaseClockMult=0;

// Setup the clock on master Gate
Acc5E3[0].PhaseFreq = 8000;
Acc5E3[0].ServoClockDiv=1;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;
Acc5E3[1].MacroModeA=$1000;
Acc5E3[1].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00500
Acc5E3[0].MacroEnableB=$1F800000
Acc5E3[1].MacroEnableA=$2F800000
Acc5E3[1].MacroEnableB=$3F800000

Sys.WpKey=$0;

 

Now you can access the node 2 registers, where I'm assuming you're setting your ACC-14M:

 

Acc5E3[0].MacroOutA[2][0] : Writing to digital outputs , assuming MI14=0 or 3

Acc5E3[0].MacroInA[2][0] : Reading from digital inputs , assuming MI14=0 or 3

Acc5E3[0].MacroOutA[2][1] : Writing to 1st DAC
Acc5E3[0].MacroOutA[2][2] : Writing to 2nd DAC

Acc5E3[0].MacroInA[2][1] : Reading from 1st ADC
Acc5E3[0].MacroInA[2][2] : Reading from 2nd ADC

 

I hope this gives you a head start.

 

 

 

 

 

 

Link to comment
Share on other sites

Hi Lei,

 

Yes, you only have one DSPGATE3 chip on your ACC-5E3.

 

So your setup parameters for ACC-5E3 would be:

 

Sys.WpKey=$AAAAAAAA;

// Setup the clock on master Gate
Acc5E3[0].PhaseFreq = 8000;
Acc5E3[0].ServoClockDiv=1;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00400
Acc5E3[0].MacroEnableB=$1F800000

Sys.WpKey=$0;

 

The next step would be setting up the ACC-14M to proper nodes, for which you need to use MACROASCII commands. I list them here since we don't have an official documentation for them yet. Remember that the commands in this document are not official and can change in the future.

 

Power PMAC MACRO.pdf

 

Using the commands in the document above, you can modify the MI variables on ACC-14M to get it to work as instructed in ACC-14M manual.

 

 

Link to comment
Share on other sites

I just helped Lei on the phone to set up his ACC-14M on Node 2 of Macro IC 0 with one ACC-5E3 as Master. This is the resulting configuration file we developed (it should be thoroughly commented but if there is still something that needs to be explained, please post your question):

 

/* Configuring one ACC-5E3 with one ACC-14M on Power PMAC */
/* Configures ACC-14M to have the standard 24 IN/24 OUT configuration */

Sys.WpKey=$AAAAAAAA;

/* Configure the ACC-5E3 */
// Set up the clock on Master Gate
Acc5E3[0].PhaseFreq =  9034.6; // Default clocks: 9.0346 kHz phase and 2.25865 kHz servo
Acc5E3[0].ServoClockDiv=3;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00400 // Enable node 2 on the Master, since this example is just for one ACC-14M
Acc5E3[0].MacroEnableB=$1F800000

/* Configure the ACC-14M */
/* First ACC-14M */
/* After downloading the above settings, do the following sequence of commands in the Terminal Window:
MacroStation255
I11=1 (or STN=1)
// You should then see MacroStation Closed Error #0. This is normal
// Now you can talk to the first Macro Station through MacroStation1
// Using MacroStation1, set MI996=$FC00C, enabling nodes 2 and 3
// Note: To close Macro ASCII on the Macro Station WHILE TALKING OVER MACRO ASCII TO THE STATION, use MacroStationClose. To close Macro ASCII on the master FROM the station, use // Now you can set up the ACC-14M like normal using MacroSlave2,variable=expression*/
MacroSlave2,MI996=$FC004 // Configure node 2  on Macro Station 1 (first ACC-14M)
MacroSlave2,MI997=$0 // Set default phase clock on Macro Station 1 (first ACC-14M)
MacroSlave2,MI998=$0 // Set default servo clock on Macro Station 1 (first ACC-14M)
MacroSlave2,MI995=$40C0 // Configure communication modes for Macro Station 1
MacroSlave2,MI14=$0 // Configure default 24 IN/24 OUT ACC-14M operation; J4 is Input Port and J5 is Output Port. 

/* Set up M-Variables to point to Digital and Analog I/Os, and flag registers */
ptr ACC14M_1_Outputs1to24->Acc5e3[0].MacroOutA[2][0]; // 24-bit outputs of 1st ACC-14M

ptr ACC14M_1_DAC1->s.io:$900524.16.16 ; // 1st ACC-14M DAC1
/* I computed this I/O base offset as follows:
p0=acc5e3[0].macroouta[2][1].a - sys.piom
Now look in p0 and observe that it holds 9438500, which in hex is $900524, which is 
the address to which we mapped the above M-Variable. */

ptr ACC14M_1_DAC2->s.io:$900528.16.16 ; // 1st ACC-14M DAC2
/* I computed this I/O base offset as follows:
p0=acc5e3[0].macroouta[2][2].a - sys.piom
Now look in p0 and observe that it holds 9438504, which in hex is $900528, which is 
the address to which we mapped the above M-Variable.*/

ptr ACC14M_1_FlagCommand->Acc5e3[0].MacroOutA[2][3]; // 1st ACC-14M Flag Command
ptr ACC14M_1_Inputs1to24->Acc5e3[0].MacroInA[2][0]; // 24-bit inputs of 1st ACC-14M
ptr ACC14M_1_ADC1->s.io:$900424.16.16; // 1st ACC-14M ADC1
/* I computed this I/O base offset as follows:
p0=acc5e3[0].macroina[2][1].a - sys.piom
Now look in p0 and observe that it holds 9438248, which in hex is $900424, which is 
the address to which we mapped the above M-Variable.*/

ptr ACC14M_1_ADC2->s.io:$900428.16.16; // 1st ACC-14M ADC2
/* I computed this I/O base offset as follows:
p0=acc5e3[0].macroina[2][2].a - sys.piom
Now look in p0 and observe that it holds 9438248, which in hex is $900428, which is 
the address to which we mapped the above M-Variable.*/

ptr ACC14M_1_FlagStatus->Acc5e3[0].MacroInA[2][3]; // 1st ACC-14M Flag Status

Sys.WpKey=$0;

 

After downloading this file, issue a save command on the Master, then MacroSlaveSAVE2 to save on the Macro Station, then MacroSlave$$$2 to reset the Slave, and then $$$ to reset the Master.

 

EDIT (12/13/11): Correction made to M-Variable definitions. ADCs and DACs on ACC-14M need to be defined as signed 16-bit value, not unsigned. The above setup file has been corrected to use s.io rather than u.io for the ADC and DAC pointers. Also modified clock settings to be default on ACC-5E3, and adding settings to explicitly set the ACC-14M's clocks to default.

Link to comment
Share on other sites

Hello Charles,

Today I put a voltage driver on the analog input of the 14M and I tried to observe the variables ACC14M_1_ADC1 and ACC14M_1_ADC2 on the IDE scope. When I tried to read the data (clicking on the play button on the scope GUI) I got an error (attached to this message). Could you take a look and let me know how I can get around this error? It may be caused by the shifting of the bits. Also, is there anyway I can record the values for those variables in the IDE and export to a csv file?

 

Thanks,

Lei

1097701645_scopefault.thumb.JPG.298f1f1710d7c2b45e9c832fecc3ba76.JPG

Link to comment
Share on other sites

Lei,

 

This is a bug which I've filed on BugZilla, whose status you can monitor here: http://forums.deltatau.com/bugzilla/show_bug.cgi?id=633

 

In the meantime, please consider using the Plot feature (under Tools-->Plot in the IDE). There, you can select the M-Variable you want under the “Detailed” tab under “UserGlobal”. Then you can plot it and save a text file containing that data if you wish.

Link to comment
Share on other sites

  • 1 month later...

Sina,

 

Why are nodes 15 and 14 enabled on the synchronizing master (ACC5E3[0] A) and node 15 enabled on the other masters (ACC5E3[0] B, Acc5e3[1] A and B)?

 

Why does node 14 have master check disabled on the synchronizing master?

 

Suggestion...This thread was the only information I could find to help me get started with using MACRO on Delta Tau. If this servo/io example could be put in the User's guide, and include how to setup Motor[X] to use the servo node, that would be great.

 

 

Coles55,

 

Here is what you need to do to setup ACC-5E3 in order to have one servo node and one IO node enabled:

 

Sys.WpKey=$AAAAAAAA;

// Assuming your ACC-5E3 has two DspGate3 chips
// You have to setup all the clocks on slave Gates first
Acc5E3[1].PhaseFreq = 8000;
Acc5E3[1].ServoClockDiv=1;
Acc5E3[1].PhaseClockDiv=0;
Acc5E3[1].PhaseClockMult=0;

// Setup the clock on master Gate
Acc5E3[0].PhaseFreq = 8000;
Acc5E3[0].ServoClockDiv=1;
Acc5E3[0].PhaseClockDiv=0;
Acc5E3[0].PhaseClockMult=0;

Sys.ServoPeriod = 0.25;
Sys.PhaseOverServoPeriod=0.5;

Acc5E3[0].MacroModeA=$403000;
Acc5E3[0].MacroModeB=$1000;
Acc5E3[1].MacroModeA=$1000;
Acc5E3[1].MacroModeB=$1000;

Acc5E3[0].MacroEnableA=$0FC00500
Acc5E3[0].MacroEnableB=$1F800000
Acc5E3[1].MacroEnableA=$2F800000
Acc5E3[1].MacroEnableB=$3F800000

Sys.WpKey=$0;

 

Now you can access the node 2 registers, where I'm assuming you're setting your ACC-14M:

 

Acc5E3[0].MacroOutA[2][0] : Writing to digital outputs , assuming MI14=0 or 3

Acc5E3[0].MacroInA[2][0] : Reading from digital inputs , assuming MI14=0 or 3

Acc5E3[0].MacroOutA[2][1] : Writing to 1st DAC
Acc5E3[0].MacroOutA[2][2] : Writing to 2nd DAC

Acc5E3[0].MacroInA[2][1] : Reading from 1st ADC
Acc5E3[0].MacroInA[2][2] : Reading from 2nd ADC

 

I hope this gives you a head start.

 

 

 

 

 

 

Link to comment
Share on other sites

Nodes 14 and 15 are used for communication for our MACRO protocol, so they must be enabled.

 

I just posted an example of configuring feedback, command, and limits for motors 1-2 to use servo nodes 0 and 1, respectively, on ACC-5E3:

 

http://forums.deltatau.com/showthread.php?tid=829&pid=3117#pid3117

 

I hope it is helpful and if you have more questions, please post them.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...