Jump to content
OMRON Forums

Acc14E MACRO


daves

Recommended Posts

I am struggling to use an Acc14E over MACRO. The card is at $79C00 = $A0800C = $9800.

 

I can put the card in the main PPMAC rack and do the following, and lights 25-32 come on as expected:

 

m9->i.io:$A0801C.8.8
m9
M9=63
m9=7
m9->i.io:$A0800C.8.8
m9
M9=0
m9=$ff

 

Trying to set the card for output on some or all lines does not work. Setting up node transfers does not work. Trying the direct read methods can change the control word but not the data:

 

macroslave0,i198=$409807
macroslave0,i199
$00000000003f
macroslave0,i199=7
macroslave0,i199
$000000000007

macroslave0,i198=$409803
macroslave0,i199
$000000000000
macroslave0,i199=$ff
macroslave0,i199
$000000000000

 

I guess I am missing something but cannot figure out what...

Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi Dave,

 

I do not know if MI198/199 should work like that, but a transfer variable like MI71 should work. Did you check the following settings:

 

On Power PMAC (assuming Gate2, not Gate3):

 

Gate2.MacroEnable?

For example, Gate2[0].MacroEnable = $FF3FF for master station 0 with I/O nodes 2,3,6,7 and servo nodes 0,1,4,5,8,9,12,13 enabled.

 

Gate2.MacroMode?

For example, Gate2[0].MacroMode = $30 for IC0 as the synchronizing master.

 

On the MACRO STATION (Assuming MACRO16 CPU):

 

MI19 is set (usually=4)?

MI975? (=$CC to match above)

MI996? (= $FF3FF to match above)

MI71?

For example, MI71=$10C0A8219800 for using nodes 6 and 7 with ACC-14E at base address $9800

 

Should be able to then set outputs with Gate2[0].Macro[7][0]. For example, Gate2[0].Macro[7][0] = $FFFFFF to activate all outputs. Note that mirror words are needed to write to individual bits.

 

Individual bits of Gate.Macro[j][k] inputs can be read. For example Gate2[0].Macro[6][0].0.1 for first input.

Link to comment
Share on other sites

Thanks for the reply

 

I am still struggling. I have similar settings, it is gate3, I am already successfully transferring lots of data from Acc36E, Acc24E2S, Acc65E and motors on Acc24E2As so I feel like the MACRO is set up OK:

 

Sys.WpKey = $AAAAAAAA;

Gate3[0].MacroEnableA = $0FFFFF00;

Gate3[0].MacroModeA = $00403000;

Gate3[0].MacroEnableB = $1FBFFF00;

Gate3[0].MacroModeB = $00001000;

Gate3[1].MacroEnableA = $2FBFFF00;

Gate3[1].MacroModeA = $00001000;

Gate3[1].MacroEnableB = $3FBFFF00;

Gate3[1].MacroModeB = $00001000;

Sys.WpKey = 0;

 

macroslave0,i19

$000000000004

macroslave0,i975

$000000000ccc

macroslave0,i996

$0000000fbfff

 

I tried using node 6/7 24-bit registers similar to your suggestion:

 

macroslave0,i71=$10C0A8219800

Gate3[0].MacroOutA[7][0]=$ffffff

 

This did not work. I tried saving, resetting, etc.

Link to comment
Share on other sites

I just plugged in an Acc5E to try using gate2 and followed your instructions (the station is a MACRO16CPU btw):

 

Acc5E[0].MacroEnable=$ff3ff

Acc5E[0].MacroMode=$30

macroslave0,i19=4

macroslave0,i975=$cc

macroslave0,i996=$ffcff

macroslave0,i71=$10C0A8219800

Acc5E[0].Macro[7][0]=$ffffff

 

This didn't work but after setting the control word:

 

macroslave0,i198=$409807

macroslave0,i199

$00000000003f

macroslave0,i199=7

 

Acc5E[0].Macro[7][0]=$ffffff

 

It worked!

 

Repeating for Acc5E3 I cannot get to work:

 

sys.WpKey=$aaaaaaaa

Acc5E3[0].MacroEnableA=$ff3ff00

Acc5E3[0].Macromodea=$3000

sys.WpKey=0

macroslave0,i19=4

macroslave0,i975=$cc

macroslave0,i996=$ffcff

macroslave0,i71=$10C0A8219800

macroslave0,i198=$409807

macroslave0,i199=7

Acc5E3[0].Macroouta[7][0]=$ffffff

 

I must be missing something simple...

 

Dave

Link to comment
Share on other sites

I spoke too soon on that last post. There was a 'd' error on the ring. After clearing and trying again it worked. Thank you so much for your help, being able to come from a working configuration was the key to spotting what I must have been doing wrong originally.

 

I think my main problems were coming from misunderstanding the bytes in the registers.

 

For the record (possibly useful to someone else) I now have for my Acc14E at $9800 over a MACRO16 to an Acc5E3 in a PPMAC rack, transferring to the 16-bit node registers in Node B11:

 

// Set up the Acc5E3

Sys.WpKey = $AAAAAAAA;

Gate3[0].MacroEnableA = $0FFFFF00;

Gate3[0].MacroModeA = $00403000;

Gate3[0].MacroEnableB = $1FBFFF00;

Gate3[0].MacroModeB = $00001000;

Sys.WpKey = 0;

 

// Set up the nodes

macroslave0,i19=4

macroslave0,i996=$0FFFFF

macroslave0,i975=$CCC

macroslave0,i1996=$1FBFFF

 

// Set 25-48 as outputs on the Acc14E

macroslave0,i198=$409807

macroslave0,i199=7

 

// Set 3x16-bit transfer on B11 from $9800

macroslave0,i69=$10C0F5319800

 

The outputs are at:

 

Acc5E3[0].Macrooutb[11][3]=$F0000000 // 48-45

Acc5E3[0].Macrooutb[11][3]=$0F000000 // 44-41

Acc5E3[0].Macrooutb[11][3]=$00F00000 // 40-37

Acc5E3[0].Macrooutb[11][3]=$000F0000 // 36-33

Acc5E3[0].Macrooutb[11][2]=$F0000000 // 32-29

Acc5E3[0].Macrooutb[11][2]=$0F000000 // 28-25

 

So I use addressing to access the bits e.g:

 

m25->i.io:$9007B8.24.1

...

m32->i.io:$9007B8.31.1

m33->i.io:$9007BC.16.1

...

m48->i.io:$9007BC.31.1

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...