- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- How to monitor OP mode in Panasonic A6B Ethercat
How to monitor OP mode in Panasonic A6B Ethercat
- marq_torque
- Topic Author
- Offline
- Elite Member
- Posts: 162
- Thank you received: 2
Is there any method to monitor OP state of driver?? Many times some drives not coming in OP mode and also many times not coming Servo Lock. And still Linuxcnc goes into homing and working mode. How to stop this?? Any solution?
Thanks in Advance
Please Log in or Create an account to join the conversation.
- zmrdko
- Offline
- Elite Member
- Posts: 165
- Thank you received: 41
watch -n 0.1 ethercat slaves
however drives not getting to OP mode must have a reason. What hardware are you on? I have similar issue with RPI5 and generic driver. I tried faster servo threads, but developers told me, that generic driver is only good for 1 000 000 ns servo thread.
Please Log in or Create an account to join the conversation.
- TimP
- Offline
- Senior Member
- Posts: 66
- Thank you received: 9
As an addition i also check for OP of driver with `slave-oper` pin, each lcec device should have it as well as other states
slave-state-init
slave-state-op
slave-state-preop
slave-state-safeop
also you can designate your own pins from driver state from int -> bit
<pdoEntry idx="6041" subIdx="00" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="status.ready-to-switch-on" halType="bit"/>
<complexEntry bitLen="1" halPin="status.switch-on" halType="bit"/>
<complexEntry bitLen="1" halPin="status.operation-enabled" halType="bit"/>
<complexEntry bitLen="1" halPin="status.fault" halType="bit"/>
<complexEntry bitLen="1" halPin="status.voltage-enabled" halType="bit"/>
<complexEntry bitLen="1" halPin="status.quick-stop" halType="bit"/>
<complexEntry bitLen="1" halPin="status.switch-on-disabled" halType="bit"/>
<complexEntry bitLen="1" halPin="status.warning" halType="bit"/>
<complexEntry bitLen="1"/>
<complexEntry bitLen="1" halPin="status.remote" halType="bit"/>
<complexEntry bitLen="1" halPin="status.target-reached" halType="bit"/>
<complexEntry bitLen="1" halPin="status.internal-limit-active" halType="bit"/>
<complexEntry bitLen="1" halPin="status.op-limit-active" halType="bit"/>
<complexEntry bitLen="1" halPin="status.op-limit-active1" halType="bit"/>
<complexEntry bitLen="1"/>
<complexEntry bitLen="1" halPin="status.home-find" halType="bit"/>
</pdoEntry>
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
- Posts: 162
- Thank you received: 2
I am using i3 gigabyte motherboard. No ethercat Switch. Using parallel port for I/O
Many times drives getting into OP Mode without trouble. and If i restart system or forgot to power on drive before computer then it is volatile. any random drive out of 5 is not getting into OP mode. Strange is from all 5 = X Y1 Y2 Z A .. .sometimes it is Y2 Z sometimes X Y1 or any random and last drive A is coming in OP mode and Servo-ON normally
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
- Posts: 162
- Thank you received: 2
Yes power cycle reset error often. But not sure....it is strange that LCNC doesn't throw an error in this case. For my EtherCAT drivers if any of those not in OP mode or not ready and i try to move or do something with it, it power machine off and throw an error.
Ok I'm checking this.As an addition i also check for OP of driver with `slave-oper` pin, each lcec device should have it as well as other statesslave-state-initslave-state-opslave-state-preopslave-state-safeop
also you can designate your own pins from driver state from int -> bit<pdoEntry idx="6041" subIdx="00" bitLen="16" halType="complex"><complexEntry bitLen="1" halPin="status.ready-to-switch-on" halType="bit"/><complexEntry bitLen="1" halPin="status.switch-on" halType="bit"/><complexEntry bitLen="1" halPin="status.operation-enabled" halType="bit"/><complexEntry bitLen="1" halPin="status.fault" halType="bit"/><complexEntry bitLen="1" halPin="status.voltage-enabled" halType="bit"/><complexEntry bitLen="1" halPin="status.quick-stop" halType="bit"/><complexEntry bitLen="1" halPin="status.switch-on-disabled" halType="bit"/><complexEntry bitLen="1" halPin="status.warning" halType="bit"/><complexEntry bitLen="1"/><complexEntry bitLen="1" halPin="status.remote" halType="bit"/><complexEntry bitLen="1" halPin="status.target-reached" halType="bit"/><complexEntry bitLen="1" halPin="status.internal-limit-active" halType="bit"/><complexEntry bitLen="1" halPin="status.op-limit-active" halType="bit"/><complexEntry bitLen="1" halPin="status.op-limit-active1" halType="bit"/><complexEntry bitLen="1"/><complexEntry bitLen="1" halPin="status.home-find" halType="bit"/></pdoEntry>
This is bit difficult for me to understand can you simplify please. I'm attaching my XML file. I don't know how to grab drive parameters for XML file.
Attachments:
Please Log in or Create an account to join the conversation.
- scottlaird
- Offline
- Premium Member
- Posts: 136
- Thank you received: 155
We need to do a better job of monitoring diagnostics, and then expose them in the UI one way or another.
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
- Posts: 19373
- Thank you received: 6485
The modules themselves know and stop working, but that's utterly invisible in LinuxCNC.
Please Log in or Create an account to join the conversation.
- TimP
- Offline
- Senior Member
- Posts: 66
- Thank you received: 9
also this shouldn't be like this###################################################################
addf lcec.read-all servo-thread
addf lcec.write-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf lcec.write-all servo-thread should be at the end, after all others addf, smt like this, i also group them, 1st load than addf, and after this nets and set pins, i don't know does it make difference but oldies says it does
loadrt hal_parport cfg="0x378 out"
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=1###################################################################
addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
#addf stepgen.capture-position servo-thread
#addf motion-command-handler servo-thread
#addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-threadaddf lcec.write-all servo-thread
setp parport.0.reset-time 3500
Please Log in or Create an account to join the conversation.
- TimP
- Offline
- Senior Member
- Posts: 66
- Thank you received: 9
I thought main idea of EtherCAT is to use it over ethernet port, maybe you can get network card or other motherboard with ethernet port on it?
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
- Posts: 162
- Thank you received: 2
Sorry, I created Misunderstanding, Motherboard has Ethernet port. "No ethercat switch" By that i mean I'm not using any Beckhoff IO Module, I'm using parallel port for IO
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- How to monitor OP mode in Panasonic A6B Ethercat