7i80 and 7i77

More
10 years 11 months ago #65120 by perra_e
Replied by perra_e on topic 7i80 and 7i77
Thanks! That is fast enough. At least to start with.

--Per

Please Log in to join the conversation.

More
10 years 10 months ago #67232 by jeeybee
Replied by jeeybee on topic 7i80 and 7i77
More trouble with the 7i80:

I got a steady 22000 at the latency test with no spikes at all but still I loose connection with the 7i80.
If I set the servo period to 100000 I loose it instantly and if I set it to 1000000 I loose it at random occasions, sometimes in a few minutes and sometimes in an hour.

The error I get is:
Unexpected realtime delay on task 0

hm2/hm2_7i80.0: Smart serial port 0:Dolt not cleared from previous servo thread. Servo thread rate probably too fast
and som more.

Any idea what could cause this?

Please Log in to join the conversation.

More
10 years 10 months ago #67234 by andypugh
Replied by andypugh on topic 7i80 and 7i77

jeeybee wrote: Any idea what could cause this?


Which version of LinuxCNC are you using?

The code says this
Code:
if (doit_err_count == 4 ){ // ignore 4 errors at startup HM2_ERR("Smart Serial port %i: DoIt not cleared from previous " "servo thread. Servo thread rate probably too fast. " "This message will not be repeated, but the " "%s.sserial.%1d.fault-count pin will indicate " "if this is happening frequently.\n", i, hm2->llio->name, i); } *inst->fault_count += inst->fault_inc; *inst->command_reg_write = 0x80000000; // set bit31 for ignored cmd break; // give the register chance to clear }

You can make LinuxCNC carry on despite the the error by setting the sserial.inc pin to less than the sserial.dec pin.
man sserial for more details.
But, it would be a good idea to monitor the fault-count pin to get a feel for how serious the problem is.

Please Log in to join the conversation.

More
10 years 10 months ago #67236 by PCW
Replied by PCW on topic 7i80 and 7i77
Yes

There is too much jitter in the network access
The real time error means that the total thread time exceeded the thread period even at 1 KHz
The sserial error is a side effect of this jitter (A doit command very late from previous cycle means
the sserial cycle is not finished in the next cycle)

BTW this does not mean that you have lost connection to the 7I80,
it means that the thread took too long and LinuxCNC is complaining about it


Possible causes:
1. Servo thread too fast (100000 = 10 KHZ will not work on even PCI/PCIE hardware)
2. New hardware and old Preempt-RT kernel (the 3.2.60 kernel is too old to work well with Haswell chips or newer)
3. MAC that has RT issues (Atheros and Broadcom are useless for RT, Intel and Realtek work fine)
4. Intel MAC but IRQ coalescing not disabled
5. Too slow CPU, Atom 330s,D525s, D2800s are marginal at anything above 1 KHz servo thread

Fixes:
1. Use a 1 KHz servo thread (4 KHz is possible with a fast CPU)
2. Use the latest Preempt-RT kernel (latest is 4.1.13-rt15 )
3. If the Motherboard has a Atheros or Broadcom LAN chip, use a plug-in Intel
or Realtek LAN card for RT
4. Turn IRQ coalescing off (something like "sudo ethtool -C eth2 rx-usecs 0" )
5. Either get a better CPU or run the servo thread slower

Diagnostics:
"watching" or HALScoping
hm2_7i80.0.read.time
hm2_7i80.0.read.tmax
hm2_7i80.0.write.time
hm2_7i80.0.write.tmax

Will give you some idea of the average and peak Ethernet
transaction times
Note that these times are in CPU clocks, _not_ ns

Please Log in to join the conversation.

More
10 years 10 months ago #67239 by jeeybee
Replied by jeeybee on topic 7i80 and 7i77
Thank you for your thoroughly answers.

I use LinuxCNC 2.7.3 with Preemt RT kernel 4.1.5 with a "mini" industrial computer with 1.8ghz intel celeron 1037U.

1. Ok I did somehow miss all this time that 1000000 is not waay too slow as I have thought so if it run on that or 1500000 or so it would be alright?
2. RT 4.1.5, that solved the issue with latency spikes that you helped me solve erlier in this thread.
3. Its Realtek so it should be good.
4. dont know but will have a look at it
5. dont know hos this compares to the ones you stated.

I tried to install it on a new slightly different computer and it has been running for some time now on 1000000 so maybe that solved the problem now that I know that 1000000 is ok.

Please Log in to join the conversation.

More
10 years 9 months ago #68240 by uli12us
Replied by uli12us on topic 7i80 and 7i77
I have made long time nothing wih the project, because shortage of money for all the missing parts.

Now I have bought a small laptop computer for the machine, so I don't need to install several parts in my machine.
But the old configuration with a separate computer board, don't run an the laptop, so I have made a new
installation. I've tried it at least have a douzen times to install, but in every case, I can't get the hm2_eth driver in
root/usr/realtime-3-.4-9-rtai-686-pae/modules/Linuxcnc/
Where can I get a copy of this driver, without the normal installation, that don't run ok.
The LC2.7 that is actually for download, don't installs, it always break down at the eth configuration.

Please Log in to join the conversation.

More
10 years 9 months ago #68241 by andypugh
Replied by andypugh on topic 7i80 and 7i77
hm2_eth will not work with an RTAI kernel.

You need an rt-preempt kernel. Follow the instructions here:
linuxcnc.org/docs/2.7/html/getting-start...th_preempt_rt_kernel

Please Log in to join the conversation.

More
10 years 9 months ago #69228 by jeeybee
Replied by jeeybee on topic 7i80 and 7i77
Puh, more strange things.
I tried it on my desktop with an MPG to try the encoder inputs and tacho outputs and evertything worked fine, but now when I have started to connect the machine and I have disconnected all but the encoder on the servomotor but still I get a series of errors as soon as I turn the motor, I still have contact enough for the encoder but the analog outputs does not work after that.

It does not help to slow the servo thread, 1000000, 2000000, 4000000 same thing.

Any ideas?

Please Log in to join the conversation.

More
10 years 9 months ago #69235 by PCW
Replied by PCW on topic 7i80 and 7i77
Yes, this means (the break error) that you either have a severe noise issue in the cable between the 7I80 and the 7I77
or you are losing 5V power at the 7I77 end.
( Severe noise because a break error means more than 1.4V noise pulse in the cable that lasted longer than 4 uSec )

Hardware things to do

Verify that the 7I77 has 5V (+- 5%)

Make sure the cable between the 7I80 and 7I77 is a IEEE1284 cable or if a flat cable is as short as possible

Also make sure the cable in not routed parallel to any noise sources (power or motor wires)

Please Log in to join the conversation.

More
9 years 7 months ago #89650 by jCandlish
Replied by jCandlish on topic 7i80 and 7i77

PCW wrote: Diagnostics:
"watching" or HALScoping
hm2_7i80.0.read.time
hm2_7i80.0.read.tmax
hm2_7i80.0.write.time
hm2_7i80.0.write.tmax

Will give you some idea of the average and peak Ethernet
transaction times
Note that these times are in CPU clocks, _not_ ns


How does one enable the 'tmax' pins? They seem to be missing in 2.8.0-pre1.

How does one convert CPU clocks into ns?

I am visiting this issue because of an overnight sserial doit not cleared message.
Code:
Owner Type Dir Value Name 26 s32 OUT 0 hm2_7i80.0.read-request.time 26 s32 OUT 298592 hm2_7i80.0.read.time 26 s32 OUT 9439 hm2_7i80.0.write.time 26 bit OUT FALSE hm2_7i80.0.packet-error 26 bit OUT FALSE hm2_7i80.0.packet-error-exceeded 26 s32 OUT 0 hm2_7i80.0.packet-error-level 26 u32 OUT 0x00000000 hm2_7i80.0.sserial.port-0.fault-count 26 u32 OUT 0x00000001 hm2_7i80.0.sserial.port-0.port_state 26 bit IN TRUE hm2_7i80.0.sserial.port-0.run

Read times are pretty uniformly around 300000 CPU clock units.

How can I find the cause of the "Smart Serial port 0: DoIt not cleared ..." message?

Thanks
.

Edit: adding
Code:
eth0 Link encap:Ethernet HWaddr 80:ee:73:bc:64:65 inet addr:10.100.10.101 Bcast:10.100.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:55977614 errors:0 dropped:0 overruns:0 frame:0 TX packets:111931592 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8951042030 (8.3 GiB) TX bytes:14097590057 (13.1 GiB) Interrupt:16 Memory:df100000-df120000

Please Log in to join the conversation.

Time to create page: 0.225 seconds
Powered by Kunena Forum