Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Ethercat INVT -> Yaskawa drive, axis_ref, virtual master

forest
2022-03-07
2022-03-14
  • forest - 2022-03-07

    Hi, I am trying to use INVT AX7X-C-1608O, codesys, which is Master and control axis_ref on Yaskawa with EtherCAT (it has SI-ES3 card for Ethercat protocol), which is Slave.

    Communication works, I get response from drive.
    If I place direct addresses in EtherCAT i/o Mapping (Control Word and Speed Ref) then I could start motor, enable and send speed, and motor would spin. This was just proof for me that communication works.

    My plan is to use virtual axis and than control some slaves with MC blocks (start virtual axis with MC Power, send some Velocity through MC_Velocity and then with MC_GearIn spin motor slaves). This works for me if I use Virtual master and also Virtual Slaves. Not for real Slaves.

    So first step was to try to Control Yaskawa drive Slave through MC blocks and then later to connect it, GearIn with Virtual Master.
    But somehow, when I want to MC_Power up Slave which is connected to Yaskawa drive, I cannot get Enabled signal .I do get some response, I see status bits are changing value and it makes sense, but no Enabled Status. And of course, I also cannot send any velocity to drive. Status for Slave gives SMC_AXIS_STATE.stopping. Like its sequence jumped over "moving", and went straight to "stopping". But I cannot do anything with that state, it never switches to "standstill".

    Also I think there might be an issue with telegram I am sending to drive.

    Slave has it's own Generic Axis_Ref I am using here, but seems like it does not match with what drive is expecting. Not sure, maybe you guys know more.

    (I had to move this post here, because I had issues with uploading pictures.)






     
  • eschwellinger

    eschwellinger - 2022-03-07

    Hi,
    in one of the pictures we see that mode of operation is set to 8,
    but the mode of operation display is 2.
    So the drive does not follow the mode of op request.
    This is what you need to analyze first.

     
    • forest - 2022-03-07

      Hi, I realised that OP mode display 2 is correct, because it is velocity control. And OP mode request, even though if I change it to 2, or force it, I cannot change that Number 8.
      It is also hard to find in operational manuals which number is correct to place in OP mode request.

      Second is that I manage (by following) PLCopen axis state, to place axis from Stopping -> Error Stop -> Standstill. But when I try MC_MoveVelocity, it always got into "Stopping" mode again.

      I checked also with MC_ReadAxisError (SMC_RP_REQUESTING_ERROR) and I checked MC_ReadDriveParameter, but info online is not so detailed, to know which parameters I should check. And this was confusing, since everything should be done by axis_ref and mapping from SI-ES3, I should not write and read drive parameters.

       

      Last edit: forest 2022-03-08
  • eschwellinger

    eschwellinger - 2022-03-08

    if you use SoftMotion with DS402 generic driver:
    the mode should be either:
    0x08: Cyclic synchronous position mode (CSP)
    or
    0x09: Cyclic synchronous velocity mode (CSV)
    or
    0x0A: Cyclic synchronous torque mode (CST)

     

    Last edit: eschwellinger 2022-03-08
    • forest - 2022-03-09

      Hi, still I was not able to change it. I think drive is still not listening through SoftMotion (have to point out from my first post, that when I directly force signals for output, and add some speed reference through same table, drive is spinning motor.)
      Not sure, if I should update SoftMotion Version, in project is 4.5.1.0 and I cannot download 4.10.0.0.
      Now I even erased MainTask, just to see if there is any change. I checked fbError field, and I have SMC_WP_SENDING_ERROR when I try to MC_power it on. Also SMC_FB_WAS_NOT_CALLED_DURING_MOTION when I try MoveVelocity.
      I see there is as well some DriveInterfaceError.
      Here are pictures. (I could also send version of program if someone is interested.)


       

      Last edit: forest 2022-03-09
  • forest - 2022-03-14

    Hi, I did try again, and went a bit deeper into thing. I get this uiDriveInterfaceError = 2, and I only get some explanation that it is Drive interface error number, but it does not mean anything known to me.
    strDriveInterfaceError is SDO write error 0x08.

    I am also placing here DSP402 configuration.. Not sure if I have to change anything.


     
  • forest - 2022-03-14

    Hi, I did try again, and went a bit deeper into thing. I get this uiDriveInterfaceError = 2, and I only get some explanation that it is Drive interface error number, but it does not mean anything known to me.
    strDriveInterfaceError is SDO write error 0x08.

    I am also placing here DSP402 configuration.. Not sure if I have to change anything.


     

Log in to post a comment.