Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Macro activation problem on Brick LV power on
#1
Hi all,

I am having some trouble with the Macroactivation on power on of a Brick LV:

The hardware setting is as follow: 1 Powerbrick LV as Master & 1 Powerbrick LV as Slave.

the config of the Master
PowerBrick[0].MacroModeA =$00403000;
PowerBrick[0].MacroModeB =$00000000;
PowerBrick[0].MacroEnableA =$0FFFFF00;
PowerBrick[0].MacroEnableB =$0;

PowerBrick[1].MacroModeA =$0;
PowerBrick[1].MacroModeB =$0;
PowerBrick[1].MacroEnableA =$0;
PowerBrick[1].MacroEnableB =$0;

Macro.TestPeriod =10/Sys.ServoPeriod;
Macro.TestMaxErrors =Macro.TestPeriod/10;
Macro.TestReqdSynchs =Macro.TestPeriod-Macro.TestMaxErrors;
Macro.IOTimeout =0;

config of the slave
PowerBrick[0].MacroModeA =$00408000;
PowerBrick[0].MacroModeB =$0;
PowerBrick[0].MacroEnableA =$0FFFFF00;
PowerBrick[0].MacroEnableB =$0;

PowerBrick[1].MacroModeA =$0;
PowerBrick[1].MacroModeB =$0;
PowerBrick[1].MacroEnableA =$0;
PowerBrick[1].MacroEnableB =$0;

Macro.TestPeriod = 10/Sys.ServoPeriod;
Macro.TestMaxErrors = Macro.TestPeriod/10;
Macro.TestReqdSynchs = Macro.TestPeriod-Macro.TestMaxErrors;

Randomly on power on , the master macro status never pass to Active.
I have the following macro status:
on the On master:
Macro.status[0].active=0
Macro.Status[0].SynchMaster =1
Macro.Status[0].TestEnabled=0
On the slave:
Macro.status[0].active=1
Macro.Status[0].SynchMaster =0
Macro.Status[0].TestEnabled=1



From the master side, I issued some line command as follow:
Macro.RingTest[0].PwrOnErrCntr
Macro.RingTest[0].PwrOnErrCntr=0
Macro.Status[0].RingError
Macro.Status[0].RingError=0
Macro.Status[0].ErrorsFault
Macro.Status[0].ErrorsFault=0
clrf
stdin:6:5: error #50: MACRO COM TIMEOUT: clrf
Macro.RingTest[0]
stdin:7:2: error #20: ILLEGAL CMD: Macro.RingTest[0]
Macro.Rings
Macro.Rings=1
Macro.ICs
Macro.ICs=4
Macro.IC3s
Macro.IC3s=2
Ldata.CmdStatus
Ldata.CmdStatus=0
Macro.RingTest[0].RingBrkStationNum
Macro.RingTest[0].RingBrkStationNum=0
MacroControllerDetect
Error: PowerBrick[0] isn't in a connected Ring
Error: PowerBrick[1] isn't in a connected Ring
MacroControllerDetect
Error: PowerBrick[0] isn't in a connected Ring
Error: PowerBrick[1] isn't in a connected Ring



When I disconnect/ reconnect the fiber optics With the brick lv powered on the status of the macro change to active.

Please help me to diagnose the problem.

Best regards
Reply
#2
Try setting PowerBrick[0].MacroModeA =$808000 on the Slave. Copied from the Power PMAC User manual:

Slave IC
An IC used as a slave on the ring, as in a Power Brick drive used as a slave device, should have bits 12 and 13 both set to 0 to disable any master functionality. Bit 15 should be set to 1 to lock in the IC’s phase clock on receipt of the sync packet. Bit 23 should be set to 1 to disable the “master-number check” on the Node 23 packet. This means that Gate3[i].MacroMode should be set to $808000 for this IC (Node 15 master-number check disable, sync packet receipt lock).
Reply
#3
I tried your suggestion : "PowerBrick[0].MacroModeA =$808000 on the Slave".

unfortunately it doesn't change the activation pb on power on of the master side.

on power on:
slave side: i have auxslaveconfigfault ( see Slavestatus2.png)
PowerBrick[0].MacroModeA =$808200

on the master side: see MasterStatus2.PNG

note: the macro status leds are green on both sides ( master and slave).


Attached Files Image(s)
       
Reply
#4
One workaround is to issue MacroControllerInit from a PLC until the ring is active. Something like:

GLOBAL MacroInitCtr

OPEN PLC MacroInitPLC
MacroInitCtr = 0
WHILE(Macro.Status[0].Active == 0 && MacroInitCtr < 10)
{
CMD"MacroControllerInit"
CALL DelayTimer.msec(1000)
IF(Macro.Status[0].Active == 1){DISABLE PLC MacroInitPLC}
MacroInitCtr++
}
DISABLE PLC MacroInitPLC
CLOSE

Also, note that:
- It is recommended to only enable used nodes
- Node 14 on the slave should be left off, PowerBrick[0].MacroEnableA =$0BFFFF00
Reply
#5
I added MacroinitPLC and changed the PowerBrick[0].MacroEnableA value to $0BFFFF00 on the slave

but the following command that i use in one of my PLCs didnt repond : macro timeout
MacroAuxiliaryRead 0,P555, P556

it responds only if the PowerBrick[0].MacroEnableA = $0FFFFF00 OR PowerBrick[0].MacroEnableA = $0FBFFF00


I added a ctr to see in how much time the active status is reached and it is about 30 second +/- 20 seconds

i added also a ctr to see in how mush time the MacroAuxiliaryRead Command is successfull and the result is 5 to 30 retry ( 1 second between each command)

do you have an explanation for that?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)