Jump to content
OMRON Forums

markr

Members
  • Posts

    7
  • Joined

  • Last visited

markr's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

0

Reputation

  1. I have also seen this, with the motor noise problem becoming worse with more ECAT slaves and set to hot connect - this was seen while using an NYB2C. I have also separately measured that connecting and disconnecting to the IDE temporarily affects ECAT timings. Strangely, the motor noise disappears while 'gathering' in the plot tool. As soon as the 'gather' is stopped, the issue re-appears.
  2. Thank you, that explains what I've been seeing in my setup!
  3. Hi, I am looking at controlling a Kollmorgen amplifier/motor through EtherCAT. Specifically, the Amp Enable, where the setup is as follows: Motor[1].pAmpEnable = ECAT[0].IO[0].Data.a Motor[1].AmpEnableBit = 0. With this setup, the output Controlword was 15 when enabled and 14 when not enabled (and this works fine). When I changed to using bit 3, I was expecting the control to become 7 when not enabled, but the outputs remained at 15 and 14. I have attached two snippets from the Software Reference Manual that seem to contradict each other on whether AmpEnableBit is used for EtherCAT - could you please clarify this? If the bit is not used, how is the amplifier enabled - using information read in through the xml?
  4. markr

    Sys.SimConfigOk

    Was a solution ever found? Facing the same challenge as daves, we don't have the hardware to recreate a 25+ card setup just to be able to be to able to download some code. I've tried Sys.SimConfigOk = 1 in a .pmh file and also put it in pp_disable.txt as suggested in the reference manual, but so far not hard any luck when either adding or removing hardware.
  5. I've just made this as a test project, the calling program is simply a one line plc. open plc 1 call SetupMotors.SetupMotorEtherCAT(); disable plc 1 close The error message is "C:...\setup motors.pmc(33,1) : Error : ( error #31) invalid data : Motor[P8196].pDac = L2" Line 33 is Motor[motorID].pDac = lDacIO;
  6. Hi, I'm working on an EtherCAT network, which may change in the future, and so am setting up my code to adapt to this. I'm using the "new PDO mapping name format" and the ability to set aliases on EtherCAT hardware to give consistent macro names, generated to ECATMap.pmh and .h. Part of my network involves setting up amplifiers for motors. I want to pass through the appropriate ECAT addresses to set up for instance Motor[x].pDac or Motor[x].pAmpEnable, but using the macro names (rather that ECAT[0].IO[xxxx]) to protect from future mapping changes. However I have not been able to achieve this. I have been using subprograms in a .pmc file, shown below. C1_Slot1_...is an example of the naming system I'm using, and is defined in ECATMap.pmh. open subprog SetupMotors(void) return; // --------------------User Code Goes Here------------------------ sub: GetECATInfo(&FaultIO, &EnableIO, &DacIO) switch (motorID) { case 1: FaultIO = C1_Slot1_Inputs_EL1008_0002_6000_1_Input.a; EnableIO = C1_Slot1_Inputs_EL1008_0002_6010_1_Input.a; DacIO = C1_Slot1_Inputs_EL1008_0002_6020_1_Input.a; break; case 2: FaultIO = C2_Slot1_Inputs_EL1008_0005_6000_1_Input.a; EnableIO = C2_Slot1_Inputs_EL1008_0005_6010_1_Input.a; DacIO = C2_Slot1_Inputs_EL1008_0005_6020_1_Input.a; break; } return; sub: SetupMotorEtherCAT(void) local lFaultIO; local lEnableIO; local lDacIO; callsub sub.GetECATInfo(&lFaultIO, &lEnableIO, &lDacIO) Motor[motorID].pDac = lDacIO; Motor[motorID].pAmpEnable = lEnableIO; Motor[motorID].pAmpFault = lFaultIO; return; close Is there a neat way to go about it? I have tried doing this in C, but also no luck. I need to do this for lots of settings and motors, without changing the structure of existing code, keeping this information passed through a second subprogram. Thanks, markr
×
×
  • Create New...