Our company bought an AX-308 Motion Controller, I have been researching about its function but I am struggling with mapping limit and home switches via communication.
The motion controller is an EtherCAT based and all the servo drivers (ASDA-B3) are EtherCAT as well. We have 4 servo drivers that must be equipped with two limit and two home switches. The goal is to wire all the sensors to the motion controller inputs and to send them via EtherCAT to the servo driver. We avoid soldering the signal connector of the servo driver.
A little explanation what we have done so far - P2.011 and P2.012 were assigned to be respectively positive and negative limit switch (P2.011 = 0x0122 and P2.012 = 0x0123). I read in the instructions manual of the servo driver that all of the inputs can be read and written via communication. The parameter for this is P3.006 and each bit corresponds to digital inputs (bit 0 to 8 of P3.006 correspond to DI1 to DI9). Therefore I assigned a value of 0x006 to P3.006.
The next step is writing to P4.007 which is the parameter responsible for reading or writing parameters via communication, in this case EtherCAT. I did not know any other way to write a parameter and used MC_ReadParameter function, if you know any other way, I am interested to know. I managed to get alarms 14 and 15 but I can easily reset them utilizing MC_Reset but at the same time I still have a high level on the limit switch bit in P4.007. The servo is reset even if I still send a high level to the input which should not happen in my opinion.
What would you suggest, is this the right way to approach this problem?
Best Regards
Konstantin Kolev
Last edit: konstantin 2022-07-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
Our company bought an AX-308 Motion Controller, I have been researching about its function but I am struggling with mapping limit and home switches via communication.
The motion controller is an EtherCAT based and all the servo drivers (ASDA-B3) are EtherCAT as well. We have 4 servo drivers that must be equipped with two limit and two home switches. The goal is to wire all the sensors to the motion controller inputs and to send them via EtherCAT to the servo driver. We avoid soldering the signal connector of the servo driver.
A little explanation what we have done so far - P2.011 and P2.012 were assigned to be respectively positive and negative limit switch (P2.011 = 0x0122 and P2.012 = 0x0123). I read in the instructions manual of the servo driver that all of the inputs can be read and written via communication. The parameter for this is P3.006 and each bit corresponds to digital inputs (bit 0 to 8 of P3.006 correspond to DI1 to DI9). Therefore I assigned a value of 0x006 to P3.006.
The next step is writing to P4.007 which is the parameter responsible for reading or writing parameters via communication, in this case EtherCAT. I did not know any other way to write a parameter and used MC_ReadParameter function, if you know any other way, I am interested to know. I managed to get alarms 14 and 15 but I can easily reset them utilizing MC_Reset but at the same time I still have a high level on the limit switch bit in P4.007. The servo is reset even if I still send a high level to the input which should not happen in my opinion.
What would you suggest, is this the right way to approach this problem?
Best Regards
Konstantin Kolev
Last edit: konstantin 2022-07-14