Back to top
0x6064 Position Actual Value does not update outside PDO 0x1B0
I am using AKD Basic controlled through a Beckhoff TwinCAT2 PLC over EtherCAT. I have used AKD_TwinCAT.xml version 2.23 to configure the drives in TwinCAT2.
The default TxPDO (Inputs) use PDO 0x1B0 which sends the following values over...
0x6064:00 Position Actual Value
This works as expected. However, since I also need to see the status of the drive's digital inputs in my PLC program, I tried to use PDO 0x1B26, which includes the above listed values as well as the digital input status word. The problem is when I use 0x1B26 instead of 0x1B0, the position actual value (0x6064) doesn't update correctly. This causes the controller to trip on position monitoring error.
Even if I use the configurable PDOs (0x1A0..A3) and try to send over the position actual value (0x6064), I get the same problem. Basically, the value inside 0x6064 is correct only when it is used inside PDO 0x1B0.
Any idea what could be causing this, and how to prevent it?
Submitted by Yash Thu, 05/02/2019 - 03:02
PDO 0x1B01 actually has object 0x6063:00 mapped and not 0x6064:00.
The reason why you are seeing 0x6064:00 is probably, that an outdated version of the ESI file (AKD.xml) is included in your TwinCAT environment.
There are two possible solutions to your issue:
- You can use a configurable PDO and map object 0x6063:00 or use a fixed PDO that includes object 0x6063:00 in addition to the other objects you need. The position values of object 0x6063:00 should be the same you read when you were using PDO mapping 0x1B01.
- You can correctly set up the scaling factors for object 0x6064:00. A description on how to do that can be found here.
Since the position scaling in PDO 0x1B01 worked for you, I'd recommend the first solution.
Submitted by Michael Capelle Mon, 05/06/2019 - 04:36