How would you design a real time application for cnc control in c / c++ ???

More
31 Oct 2023 14:20 #284189 by TheRoslyak
Well, first of all, I do need your GitHub contact details to be able to add you. And secondly, the library can be installed, I believe, with sudo apt-get install libyaml-cpp-dev."
The following user(s) said Thank You: bkt

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 09:52 #284426 by bkt
sorry TheRosLyak .... but really you would use OPCUA for performr your task? .... normally happens these: you install (for ex.) 6 cnc unit, than connect all 6 to control plc or pc .... using some type of bus .... in your case think you would use multicore cpu next gen. for start multiple istance on Lcnc 1 for cpu .... ex. 6 Lcnc .... think is better use other cpu as "master" as guidance for various task .... at that point OPCUA can be or not a choice .... you need have 6 OPCUA server on 6 cpu .... and you have probabily 6 master ethercat at work .... 600mbit/sec total ..... personally think these can be a problem .... with 10 lcnc task with ethercat become 1000mbit/set or 1Gbit/sec .... com structures can become a problem ... you obviusly think to scalable system .... these is my doubt .... but I'm only a self learner old man .... so take the considerations for what they're worth

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 10:19 #284429 by TheRoslyak
It doesn't matter how I distribute tasks affinity cores. I can have 3 robots running on one core. On the second core, I'll have onnx running with a gige camera. And on the other cores, I'll be playing Cyberpunk. If I need to transmit information from this setup to other devices and I'm fine with 100-500 milliseconds, regular OPC UA is sufficient for me. However, if I need to make this setup work as a full-fledged real-time device, I can hang an OPC UA TSN server on another core.
The following user(s) said Thank You: bkt

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 12:18 #284443 by bkt
in reality I was more worried about the load on data transmission to the outside world ..... but thanks about your reassurances ....
About your 3 robot on one core, you use makinekit 3 istance, or the large amount of avaible axis on Lcnc now? Or you have implement a new way to have more than one istance of Lcnc in one only core?

OPCUA think is fantastic add on (we can call in these way?) .... but I use it on qt more than one time (openxxxx lib) ..... is not so stable .... not try to use your library .... but think I try these week ...

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 12:33 - 03 Nov 2023 12:41 #284444 by TheRoslyak
Yes, simply put, I can run multiple tasks based on linuxcnc.
Attachments:
Last edit: 03 Nov 2023 12:41 by TheRoslyak.

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 13:45 #284452 by rmu
you could try github.com/LinuxCNC/linuxcnc/pull/2722 if you actually want multiple linuxcnc instances running in parallel

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 13:55 #284453 by TheRoslyak
To be honest, I don't even want to waste time checking whether this works or not. Machinekit also positions itself as a system that allows running multiple processes. But it's not specified there that there can only be one machine control process. Linuxcnc simply doesn't create different threads and functions that can be run in parallel on the same machine. Moreover, I myself am close to creating a working system based on linuxcnc and machinekit. Until there is actually provided a HAL file that allows running several independent work processes, there's no point in discussing it

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 17:06 #284482 by rmu
I'm not sure what you are trying to achieve. The linked branch was done to allow parallel test runs, so it allows to run completely independent linuxcnc instances without resorting to docker, namespaces/cgroups or such things. Completely independent means nothing is shared, no HAL, no NML queues, no nothing.
The following user(s) said Thank You: tommylight, bkt

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 17:29 #284485 by bkt
.... when is possible to test it? .... in my opinion these is really useful ... really thanks rmu .... any how appreciate a lot these theread -> github.com/LinuxCNC/linuxcnc/issues/2716 ... never investigate on these type of things ....

Please Log in or Create an account to join the conversation.

More
03 Nov 2023 17:35 #284488 by bkt

Yes, simply put, I can run multiple tasks based on linuxcnc.
 

As I can show you not need to share info .... you have jet one hal with multiple thread .... so every thread shared info with main one .... these is fantastic .... bravo .... but is not safe. Seems you are in UE ... so safety must think before the software ... you need to have completely separated control not a main plus more thred ... mine is a suggestion ... after these stupid pieces of advice, I repeat .. Bravo.

Please Log in or Create an account to join the conversation.

Time to create page: 0.774 seconds
Powered by Kunena Forum