Software Engineer Needed for Adding CANopen Application Layer to Machine Motion Software in C
Budget: $1,500 ā $3,000 USD
We're looking for a software engineer to help us with some modifications and additions we need to make to existing software. It's mostly coded in C.
The current way that this software communicates with motor drives is through step & direction. This is a digital pulse protocol that makes the motor move in step increments. The motor drives basically get a signal whenever the software wants the motor to move an increment. The software will send 10 steps if it wants the motors to move 10 increments.
We instead need the software to communicate with our drives using CANopen over EtherCAT (CoE). CoE uses EtherCAT for the network communication link and CANopen for the application layer. The EtherCAT part is handled PiCAT4 drive/software (http://www.simplerobot.net - we will provide you with a PiCAT4 license for development). The CANopen commands need to be generated by the software and sent though the EtherCAT connection using the PiCAT4 toolkit. This part needs coding in the software by you. However, PiCAT4 software will generate the industry standard motion control code for you to insert into the the software source code. Here is an example,
https://www.youtube.com/watch?v=F-adZpMZrmg&t=9s&ab_channel=TamHo
The drives at the end of the EtherCAT tunnel expect information about the entirety of the next move such as position, velocity and time (PVT). At the moment the software generates PVT-like format moves and converts them to pulses (step & direction) to send to motor drives. You need to make adjustment to the software in order to have it keep the motion in PVT format when sending it as a CANopen command through EtherCAT.
In summary you will need to,
1) Change the software code to output Position, Velocity and Time (PVT) data instead of step/direction for axes connected though CANopen over EtherCAT
2) Implement CANopen application layer on the software to interface with the PiCAN4 linux software/driver
The software in our case is running on a Raspberry Pi 4b.
Here's an example of a Raspberry Pi being an EtherCAT master using PiCAT4,
http://www.simplerobot.net/2021/04/picat4-real-ethercat-controller-by.html
Here are the starter guides for PiCAT4,
https://drive.google.com/drive/folders/18YvUZDaVP_XtOjnR5eOsgJ_2mHVDkwg0?usp=sharing
The developer of PiCAT4 will be available for any support needed.
Let me know if you have any questions and whether this is a project you can take on. Iām more than happy to get on a call and discuss.
The current way that this software communicates with motor drives is through step & direction. This is a digital pulse protocol that makes the motor move in step increments. The motor drives basically get a signal whenever the software wants the motor to move an increment. The software will send 10 steps if it wants the motors to move 10 increments.
We instead need the software to communicate with our drives using CANopen over EtherCAT (CoE). CoE uses EtherCAT for the network communication link and CANopen for the application layer. The EtherCAT part is handled PiCAT4 drive/software (http://www.simplerobot.net - we will provide you with a PiCAT4 license for development). The CANopen commands need to be generated by the software and sent though the EtherCAT connection using the PiCAT4 toolkit. This part needs coding in the software by you. However, PiCAT4 software will generate the industry standard motion control code for you to insert into the the software source code. Here is an example,
https://www.youtube.com/watch?v=F-adZpMZrmg&t=9s&ab_channel=TamHo
The drives at the end of the EtherCAT tunnel expect information about the entirety of the next move such as position, velocity and time (PVT). At the moment the software generates PVT-like format moves and converts them to pulses (step & direction) to send to motor drives. You need to make adjustment to the software in order to have it keep the motion in PVT format when sending it as a CANopen command through EtherCAT.
In summary you will need to,
1) Change the software code to output Position, Velocity and Time (PVT) data instead of step/direction for axes connected though CANopen over EtherCAT
2) Implement CANopen application layer on the software to interface with the PiCAN4 linux software/driver
The software in our case is running on a Raspberry Pi 4b.
Here's an example of a Raspberry Pi being an EtherCAT master using PiCAT4,
http://www.simplerobot.net/2021/04/picat4-real-ethercat-controller-by.html
Here are the starter guides for PiCAT4,
https://drive.google.com/drive/folders/18YvUZDaVP_XtOjnR5eOsgJ_2mHVDkwg0?usp=sharing
The developer of PiCAT4 will be available for any support needed.
Let me know if you have any questions and whether this is a project you can take on. Iām more than happy to get on a call and discuss.