Gene , I use my labview based network interfaces for all my remote work into linuxcnc. I put most of my info in the regular forum at: https://forum.linuxcnc.org/41-guis/36920-labview-ui-project-for-linuxcnc

I'm not familiar with the tool you are using so can't comment on that but I'm sure that it cannot encode NML commands to request status data.

To test for this you must send a properly formatted NML peek status request to linuxCNC from a remote to the status buffer using the proper port.  If you don't do that then you will not see anything since no data transfer has been requested. The commands sent must also update its serial number with each command or the linuxCNC TCP server will shut down due to errors or buffer overflows.  This will also occur if the wrong number of bytes are sent since that would cause confusion on the linuxCNC end and will cause delays in any response back and sooner or later a server shutdown which will require a linuxCNC restart.

There has to be a good sequence of status request commands  sent before being able to see the pattern for the bad intermixed data I described.  Thus you have to send your properly encoded NML status request commands and then pull the data out of the linuxCNC buffer rapidly since these are send to you in very rapid succession. Using wrong byte values for messages sent by linuxcnc to the remote will cause serious trouble shooting problems.  Every thing must be correct.

One of the problems with the unknown data is that number of bytes is not constant and I suspect that they may be arrays in real time that contain nothing but NML encoded zeros. If this data is not displayed in hex those zeros will likely not be seen. These zeros likely represent an initialized array with no data written into it and only sized.

I'm not sure at all if real time is really needed for anything related to tool table data since changing a tool is turtle slow to start with. If there is  little bit of data that real time needs from a tool it should be able to be routed to real time without affecting the normal NML buffers.

Tool table data should be able to be requested by using transfer methods like that in place for emcStatus request commands from a remote, which I have  described in the past, but not from the normal emcStatus buffer. Request for tool status can easily be routed to a different buffer by the remote to access a buffer dedicated to tool status data only.

Does real time really need to know everything about a 1000 tools at once, or is just one at a time enough to satisfy it?

What values for each tool does real time actually actually use for machining and not for moving tools around?


I Hope this helps.


On 11/4/2020 9:31 PM, Gene Heskett wrote:
On Wednesday 04 November 2020 23:33:51 Johannes Fassotte wrote:

I wanted to post a update on this since I have isolated the source of
unknown data being intermixed with my status requests data sent via
the tcp buffer to my remote. This unknown and not requested data
completely disrupts the normal flow of status data at 6 times in a row
and this sequence repeats at itself at regular intervals.
Please describe how you are observing this, Johannes. I perhaps am not
doing it right, but logged into any of my machines with ssh -Y, I am not
observing anything unusual in the status reports I can pull up while
running linuxcnc -l so as to see that machine on my screen here in the
house.

I have back tracked this problem to 7 April 2020 and commit b51ef8c to
"increase max tools from 55 to 1000" and that this has caused a
problem from that point forward up to and including the current
master. It is also the cause of the very large increase and what I
think is an unreasonable increase in NML buffer sizes. I had not done
much development work this summer and thus this issue was not noticed
until a recent update.

It seems to me that a regular file or small database is more than
sufficient for a tool table with a choice depending on if pictures are
wanted or not.  I see absolutely no valid reason for messing around
with NML buffer sizes to handle the tool table. I think that the best
thing to do is to develop a more suitable way to handle the tool table
and backing commit b51ef8c out.

The below commits  are in order from bottom to top and  are part of
those made on 7 April 2020.

Bad: commit/f3e971d426a55cd472910eaf659bef1ef969f5c1
Bad: commit/b51ef8cc3c560b6c44d095814988a3f972bc0763 <<<<<
OK:  commit/1f516f2b0dcdb7d34b6c55e675c41a6cbca3f595

Changes such this one do need to be looked at from the network side
and the internal side of linuxCNC.

I hope that you will find this helpful.

Best regards to all developers.

On 10/24/2020 7:33 PM, Johannes Fassotte wrote:
There are changes to the NML configuration file Master that concerns
me a lot.

 From the NML configuration file at the start of 2.9 pre0
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost   8192  0  0  5 16 1005 TCP=5005 xdr

Present 2.9 pre0 I use
B emcStatus SHMEM localhost 170000  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost 131072  0  0  5 16 1005 TCP=5005 xdr

Such a large change in file size indicates a major change in the
method of how some data is handled. I assume that it is associated
with a change to txt based data which would need a great deal of
space.

I have no info on why such a large change in buffer sizes is
required in current master. All I know is that these changes are
causing problems with use of the remote TCP process that I use to
status with and have used successfully for almost a year using the
early 2.9 pre0 master.

The remote status requests commands I send now using the ~10-14-2020
master
gives me the usual 20 byte status request acknowledgement as in the
past. Then 10380 bytes of actual emcStatus data, and then at perhaps
1 second intervals a very large block of data is sent by linuxCNC to
the TCP buffer that was not requested by my remote. It is mostly
what I think is header or a bit of data followed a very large number
of bytes of all zero's data.

In using the current master for my development has made it
impossible to decode the status buffer data remotely when unknown
data gets transferred into the TCP buffer that the remote process
has not requested. This kills TCP status server due the confusion it
causes which build up error until its shuts down. Command serial
numbers start getting confused with  data being in the wrong place
and its all downhill from there.

Here again is a size comparision of NML configuration file of the
original 2.9 pre0 which works fine to master on about 10-14-2020
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B emcStatus SHMEM localhost 170000  0  0  2 16 1002 TCP=5005 xdr

To me such a tremendous increase in size would seem to indicate an
intention to store and send a lot of text formatted data. I could be
wrong but when there is a lack of info there has to be a lot of
running around in circles and guessing. And based on this leads to
the below.

Status buffer Msg data  122464 bytes
Tool                Msg size  112888 bytes
I also noticed that the size of the actual emcStatus data has
increased from 9280 bytes to 10380 bytes
which would seem to indicate added status data. This being the
second increase that I recall.

Thus far I have been using the xemc process for status data with
this latest version of master but will set up a separate status
process to see if that gets rid of the undesired data transfer that
occurs at about 1 second intervals. xemc is linked into a lot of
internal processes within linuxCNC and it is likely that one of
those is causing the problem I have attempted to explain.  I
recalled today that I have seen issues with xemc being used in the
past for local functions such as polling and not strictly used just
for
communications with a remote over a network connection.

Please supply some info on what these Status buffer and Tool Msg's
contains so I can possibly develop a process
to utilize these if they are really meant to be used across a
network and if this will be on a separate status buffer.

Rule 1: Never send data to a remote that was not specifically
requested, authorized or subscribed to.
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Cheers, Gene Heskett


_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to