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

Problem with DC-Sync Mode #3

Open
hallychou opened this issue Dec 29, 2018 · 8 comments
Open

Problem with DC-Sync Mode #3

hallychou opened this issue Dec 29, 2018 · 8 comments

Comments

@hallychou
Copy link

The mcx::ecat::Module seems to work in SM-Sync mode by default. I also found a private struct “DistributedClockSync” in the class of mcx::ecat::Module, but no member function referenced. Is it possibe to support DC-Sync mode?

@vtretyakov
Copy link
Collaborator

@hallychou yes, I would like to add DC-Sync support in the future. Which devices are you using? This implementation is based on Synapticon SOMANET controllers that at the time of creating this package have not yet supported DC-Sync but will add it in the future.

@hallychou
Copy link
Author

@vtretyakov Thank you.
I'm using an x86 PC with a custom servo driver in DC-Sync mode. Indeed, DC-Sync is required by most motion controllers, so it would be nice if you add DC-Sync mode.
Just now, I got help from Alexey Zakharov at Vectioneer. He gave me a template as follows:







and it works fine. I'll do further testing. Thank Alexey for help, too.

@vtretyakov
Copy link
Collaborator

@hallychou could you please share one more time what solved the issue so I can close it. The code you wanted to share in the previous comment is not displayed.

@hallychou
Copy link
Author

@vtretyakov sorry, here is the code:

<!--********************SYNC********************-->
        <Dc>
            <AssignActivate>#x0300</AssignActivate>
            <CycleTimeSync0>1000000</CycleTimeSync0>
            <ShiftTimeSync0>0</ShiftTimeSync0>
            <CycleTimeSync1>1000000</CycleTimeSync1>
            <ShiftTimeSync1>0</ShiftTimeSync1>
        </Dc>

@dbdxnuliba
Copy link

hello could you share DC mode related code to us

@dbdxnuliba
Copy link

@hallychou

@zhijunlian
Copy link

hello could you share DC mode related code to us

@vtretyakov
Copy link
Collaborator

vtretyakov commented Dec 19, 2020

@zhijunlian please add the following tag

        <Dc>
            <AssignActivate>#x0300</AssignActivate>
            <CycleTimeSync0>1000000</CycleTimeSync0>
            <ShiftTimeSync0>0</ShiftTimeSync0>
            <CycleTimeSync1>1000000</CycleTimeSync1>
            <ShiftTimeSync1>0</ShiftTimeSync1>
        </Dc>

inside of your each <Device> tags in the pdo.xml, e.g.,

<Device Id="0" Name="axis1">
    <!--********************SYNC********************-->
        <Dc>
            <AssignActivate>#x0300</AssignActivate>
            <CycleTimeSync0>1000000</CycleTimeSync0>
            <ShiftTimeSync0>0</ShiftTimeSync0>
            <CycleTimeSync1>1000000</CycleTimeSync1>
            <ShiftTimeSync1>0</ShiftTimeSync1>
        </Dc>
        <!--********************PDOs********************-->
        <!-- Tx PDO Mapping -->
        <Pdo Entry="20f0:0" Group="In" Name="Timestamp">
            <DataType>UINT32</DataType>
            <Link>root/Control/axis1/slaveTimestamp</Link>
        </Pdo>
...
...
...
</Device>

Please adjust the timer parameters for your device based on the documentation or look up in esi file. I hope it helps.

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

4 participants