EtherCAT driver for a 6 axis robot
SEARCH_VEL = 0
LATCH_VEL = 0
USE_INDEX = NO
HOME_SEQUENCE = 0
#homing
net a1-home-index <= joint.0.index-enable => lcec.0.Meca500.status.homed
net a2-home-index <= joint.1.index-enable => lcec.0.Meca500.status.homed
net a3-home-index <= joint.2.index-enable => lcec.0.Meca500.status.homed
net a4-home-index <= joint.3.index-enable => lcec.0.Meca500.status.homed
net a5-home-index <= joint.4.index-enable => lcec.0.Meca500.status.homed
net a6-home-index <= joint.5.index-enable => lcec.0.Meca500.status.homed
Please Log in or Create an account to join the conversation.
github.com/dbraun1981/hal-cia402/blob/main/cia402.comp
Please Log in or Create an account to join the conversation.
github.com/djsftree/linuxcnc-ethercat/bl...-meca500/halshow.txt
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
-initial values would be set with the inital data at variable initialization in c.
I don't know if this is practicable in the whole system but my way of implementation would be:
safty chain (estop btn, power_on btn implemented in Hardware)
estop case : ctrl.deactivate = 1; motion.set-point 0
safty chain on (estop disabled) :
-ctrl.deactivate = 0;ctrl.activate = 1
-wait for status.activated -> set ctrl.home
-wait for status.homed -> reset ctrl.home, at this moment in time first set emc-enable-in true (the power on btn in gui will gets accesable)
-now set this
setp lcec.0.Meca500.vel-command 21
setp lcec.0.Meca500.motion.set-point 1
setp lcec.0.Meca500.motion.move-id 0
for lcnc homing use absolute encoders...
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
This is where my experience and knowlege of the workings of lcnc falls off a cliff. If you're available for contract work let me know. The resulting work would be open source.I don't know if this is practicable in the whole system but my way of implementation would be:
Please Log in or Create an account to join the conversation.
lcec.0.Meca500.slave-online
lcec.0.Meca500.slave-oper
lcec.0.Meca500.slave-state-op
lcec.0.Meca500.slave-state-preop
lcec.0.Meca500.slave-state-safeop
Please Log in or Create an account to join the conversation.
this is a part from out standart safty/error handling comp, this comp works together with the safty-plc in the cabinet.
ec_slaves_responding_ok = (ec_slaves_responding == ec_slaves);
if (!ec_slaves_responding_ok) {
emc_enable_out = 0;
if (data.last_ec_slaves_responding_ok) {
rtapi_print_msg(RTAPI_MSG_ERR, "EtherCAT: Not all %d slaves responding!\n", ec_slaves);
}}
data.last_ec_slaves_responding_ok = ec_slaves_responding_ok;
if (!ec_link_up) {
emc_enable_out = 0;
if (data.last_ec_link_up) {
rtapi_print_msg(RTAPI_MSG_ERR, "EtherCAT: Link down!\n");
}}
data.last_ec_link_up = ec_link_up;
if (!ec_all_op) {
emc_enable_out = 0;
if (data.last_ec_all_op)
{rtapi_print_msg(RTAPI_MSG_ERR, "EtherCAT: Not all slaves in OP mode!\n");
}}
data.last_ec_all_op = ec_all_op;
Please Log in or Create an account to join the conversation.
[quote]I don't know if this is practicable in the whole system but my way of implementation would be:[/quote]
This is where my experience and knowlege of the workings of lcnc falls off a cliff. If you're available for contract work let me know. The resulting work would be open source.
with whole system, i am thinking about the safty regulations, hardware design of the complete machine.
If you're available for contract work let me know
this is my daily business, which country you are living?
Please Log in or Create an account to join the conversation.