pennells Posted November 5, 2012 Share Posted November 5, 2012 We were having problems using the upper 8 servo nodes on the 16-axis MACRO CPU card through our ACC-5E. We set the MacroEnable and MacroMode as follows: Gate2[0].MacroEnable = $0FFFFF //6 i/o nodes, 8 servo nodes Gate2[0].MacroMode = $4070 Gate2[1].MacroEnable = $1F3333 //8 servo nodes Gate2[1].MacroMode = $50 After a bit of trouble shooting, we discovered the following: MS,MI996 returned $F3FFF (as expected) but MS,MI1996 returned $1F0000. We manually set MS,MI1996 to $1F3333 and did a MSSAVE0, MS$$$0 and everything worked correctly. Is this an error? Was the MacroEnable supposed to set the value or are the I996 variables not related to the MacroEnable flags. Link to comment Share on other sites More sharing options...
Sina.Sattari Posted November 5, 2012 Share Posted November 5, 2012 Gate2.MacroEnable sets the nodes on the MACRO master gates on the ACC-5E but it doesn't set anything on the slave MACRO gates on the MACRO16 CPU. Depending on the SW1 settings on the MACRO16 CPU, the nodes on the 1st MACRO slave gates are enabled and you have to set the MI1996 in order to get the second MACRO slave gate nodes enabled as you had done. By the way,since Gate2.MacroMode includes both status and setting bits, it is better to list the proper settings including only the setting bits and not the status bits: Gate2.MacroMode = $4030 // Setting for ring master , only MASTER 0 Gate2.MacroMode = $10 // Setting for all other master gates which are on the same back plane or hardware as the MASTER 0, since they receive their phase clock from the hardware clock lines and don't need to perform a phase lock loop over MACRO sync packets Gate2.MacroMode = $90 // Setting for all master gates which are on the same ring, but not on the same backplane or hardware as the ring master (MASTER 0). This is a rare case, such as having 2 PMAC Ultralites on the same MACRO Ring and for synchronizing them. Link to comment Share on other sites More sharing options...
pennells Posted November 6, 2012 Author Share Posted November 6, 2012 It's really too bad that this isn't clearly pointed out. I was following the ideas from the "PPMAC support for Macro?" discussion and no one mentioned setting MI1996. The setting of MacroMode to $4070 was suggested by a Senior Member but when I went to implement it, I hadn't noticed that the 6th bit was a status bit that was being suggested to be set. Between the issue that I mentioned in the "PPMAC support for Macro?" discussion (our ACC-36E interfering with the MACRO16 CPU or the ACC-5E (when we tried the card in the primary cage)) and this issue, getting the MACRObus to function correctly for both servo and I/O was very difficult but I would have thought it would be easy. I think a document for use of MACRO16 CPUs through ACC-5E for remote functions is an important document to create since MACRObus functionality is important to a lot of people and not really discussed in a central location. Even the 16-Axis MACRO CPU SRM is a hard to follow in that, the introduction of MI Variable reference (pg 1) mentions that the node numbers are 0 to 15 but the idea of adding 1000 to the variable number for the upper 16 nodes isn't mentioned until the various summary sections (pg 5, 9, 13, 23) that are not highlighted or tied to the pg 1 introduction. I was lucky to have notice it because I tended to head directly to the MI variables that I was trying to use. It would have been better to mention it in the section that says the nodes can only be 0 to 15. Link to comment Share on other sites More sharing options...
Recommended Posts