Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync issue resulting in error 0x27 (Freerun not supported) #870

Open
hshah44 opened this issue Nov 2, 2024 · 1 comment
Open

Sync issue resulting in error 0x27 (Freerun not supported) #870

hshah44 opened this issue Nov 2, 2024 · 1 comment

Comments

@hshah44
Copy link

hshah44 commented Nov 2, 2024

I need assistance to solidify my understanding and latch sync0.

Here are the steps to orchestrate this flow:

  1. ec_init

  2. ec_config_init

  • state: EC_STATE_INIT
  1. ec_configdc
  • state: EC_STATE_PRE_OP
  1. ec_config_map
  • state: EC_STATE_PRE_OP
  1. transition to EC_STATE_SAFE_OP
  • state: EC_STATE_SAFE_OP
  1. thread1
  • cycle PDO's infinitely (ec_send_processdata, ec_receive_processdata) with usleep(100)
  • verified wc is incrementing to 2 as expected
  1. thread2
  • wait for 2s to transition to state: EC_STATE_OPERATIONAL

End result: ID: 1 (4097), Parent: 0, State: 0x14 (EC_STATE_NONE), Topology: 1, DC: 1, Delay: 0, StatusCode=0x27 (Freerun not supported)


Thread tasks (I kept it simple to understand the behavior)


void* cycle() {
    ec_send_processdata();
    printf("wc: %d\n", wc);
    
    while(1) {
        wc = ec_receive_processdata(EC_TIMEOUTRET);
        usleep(100);
        ec_send_processdata();
    }
    return NULL;
}

void* task() {
    printf("sleeping wc: %d\n", wc);
    sleep(2);
    printf("wokeup wc: %d\n", wc);
    transition(1, EC_STATE_OPERATIONAL);
    return NULL;
}

Zipped up wireshark pcap file (step 6 - 7 above)
capture.pcapng.zip

@bao1ong
Copy link

bao1ong commented Dec 12, 2024

Have you solved it yet? I have the same confusion. I am using INOVANCE SV660N servo motor. Firstly, it seems that I cannot enter the OP state normally. Then, when I cannot enter the OP state, the servo reports a fault code EE09.3, which means there is no synchronization signal. The slave status 0x14 code is 0x27: freerun not supported

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants