Jump to content
OMRON Forums

How to use PMAC to simultaneously control two motors with different modes


David Jan

Recommended Posts

I want to use PMAC and Ethercat to control two identical motors, one in CSP mode and the other in CSV modeAfter configuring the configuration file, there are issues with both motor jogs. The CSP motor jog does not move, while the CSV motor jog accelerates directly to the maximum speed, which is very dangerous.
 
Link to comment
Share on other sites

I am following the steps in the IDE manual to configure the motors, both motors run fine in CSP mode and in CSV mode at the same time, but when one is in CSP mode and the other is in CSV mode, the motors have problems.
My PMAC is a CK3E, the drive is a CDHD2, and the power PMAC IDE is version 4.5.2.9!

The configuration file is below:

Sys.WpKey = $AAAAAAAA

Motor[1].pAmpEnable = 
Motor[1].AmpEnableBit = 0
Motor[1].pLimits = 0
Motor[1].pDac = 
EncTable[1].pEnc = 
EncTable[1].pEnc1 = Sys.pushm
EncTable[1].ScaleFactor = 1
EncTable[1].Type = 1

Motor[1].pEnc = EncTable[1].a
Motor[1].pEnc2 = EncTable[1].a
Motor[1].pAmpFault = 
Motor[1].AmpFaultBit = 3
Motor[1].AmpFaultLevel = 3
Motor[1].MaxDac = 28000
Motor[1].DacShift = 0
Motor[1].ctrl = Sys.PosCtrl   

Motor[1].FatalFeLimit =0
Motor[1].MaxSpeed= 200
Motor[1].JogSpeed=100

EncTable[2].type=1
EncTable[2].index1=0
EncTable[2].index2=0
EncTable[2].index3=0
EncTable[2].index4=0
EncTable[2].index5=0
EncTable[2].index6=0
EncTable[2].MaxDelta=0
EncTable[2].ScaleFactor=1
EncTable[2].pEnc = 
EncTable[2].pEnc1 = Sys.pushm

Motor[2].pAmpEnable = 
Motor[2].AmpEnableBit = 0
Motor[2].pLimits = 0
Motor[2].pDac = 
Motor[2].pEnc = EncTable[1].a
Motor[2].pEnc2 = EncTable[1].a
Motor[2].pAmpFault = 
Motor[2].AmpFaultBit = 3
Motor[2].AmpFaultLevel = 3
Motor[2].MaxDac = 1000
Motor[2].DacShift = 0
Motor[2].ctrl = Sys.servoctrl  
Motor[2].ServoCtrl = 1
Motor[2].FatalFeLimit =0
Motor[2].MaxSpeed= 200
Motor[2].JogSpeed=100

Sys.WpKey = $0

 

Link to comment
Share on other sites

That is a very old version of the IDE. You should upgrade to the latest version on the website and re-build your project from the beginning. This version encapsulates all the PMAC configuration (including EtherCAT) into the project, so you don’t need to have “separate” configuration files:

https://www.ia.omron.com/product/tool/pmac-software/index.htm

For your version, the “Control Type” is set in the “Amplifier Topology Block”. Please follow the step-by-step instructions in the IDE manual in the “Motor Setup” chapter starting on page 338. Specifically see the section “EtherCAT Network and Motor Setup” starting on page 340. Also see the section “Topology Blocks” (page 266) in the “PROJECT SYSTEM” chapter starting on page 175.

Link to comment
Share on other sites

 Steve,I understand that the command position and command speed in PMAC are calculated by internal servo algorithms. So, how can I modify the actual speed value without changing the command position, so that the motor speed has an actual bias? Can PMAC achieve this? Do you have any relevant parameters? Option 1: Enable Motor [1] DacBais=20 seems to be unable to implement my idea. Option 2: Can I directly add or subtract from the output address corresponding to Motor [1]. pDac? For example, Motor [1]. pDac=sys Udata [1]. a, I can directly set sys Udata [1]=sys Udata [1]+200, but the speed remains unchanged. Why is this?

Link to comment
Share on other sites

  • 2 weeks later...

PMAC actually only controls the position of the motor (closed-loop control).

When you plan a position-time motion curve, the velocity-time curve is also determined.

Because speed is the derivative of position, if you just want to change the speed without updating the program, you can use TimeBase.

Quote

Can I directly add or subtract from the output address corresponding to Motor [1]. pDac?

No, because PMAC is a closed-loop control that controls the motor position. If you use CST or CSV mode, PMAC's PID algorithm will correct the offset you apply.

Give a simple example:

If you are a boiler worker, you have a supervisor who monitors the boiler temperature and tells you how much coal to add.

You want to get off work early and speed up adding coal to the boiler.

At this time, your supervisor finds that the boiler temperature rises too fast and will start to order you to reduce the coal addition.

If you do not obey your supervisor's orders, your supervisor will think that there is a risk of the boiler losing control and will open the boiler's pressure relief valve and shut down the boiler directly (PMAC kill the motor).

This is similar to if you have two bosses in the company and give you two opposite instructions, how should you execute them?

 

I suggest you tell us your project requirements, because your idea is basically impossible to implement now, and this is not a limitation brought by PMAC.

 

Edited by MoMo
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...