Hello everyone,
As it's my first message here, let me first introduce myself.
Feel free to skip this part
So... I'm a 40+ years old electronics engineer. I'm currently self-employed, and in long term partnership with a French CNC/3D-printer vendor. I'm using Linux since kernel 2.4.18 (~20+ years), and currently using Linux exclusively.
Most of the time, I develop custom solutions to specific problems, that includes board design, firmware development, computer software, web interfaces... I also worked on few CNC-based 3D printers. (few keywords for the curious: PIC, AVR, C, C++, python, MySQL, php)
I'm quite familiar with Beckhoff and Bosch-Rexroth, as these are the most common in my area (there's Siemens too, but Siemens being Siemens, I just can't...).
======
Read this as a quite general discussion about PLC synchronization, I'm currently working on a project to eject and replace any closed-source Windows-based software for CNCs (i.e. no more TwinCAT and IndraWorks, for runtime and development), and my feelings are telling me that I can easily replace existing PLC tasks (that are synchronized) with some python script (that won't be synchronized). Note, you may also think of C as a replacement for python, it's not the point here.
I'm planning to use python as a base to write PLC programs, but as I see it, it won't be synchronized with servo-thread.
Does anyone has any arguments on the critical conditions that any PLC program running has to be synchronized with servo-thread, or the opposite ?
As far as I'm concerned, I don't see anything that has any real impact of both the servo-thread and PLC task are not synchronized (read it as: I has no side-effect for the servo-task to get an action from the PLC on next cycle), but I may miss some cases.
Ofc, I don't talk about critical procedures like homing or emergency stop. I'm talking about procedures like, let's say T3 M6, this has no obligation to be synchronized, so having a python task that run independently is fine, as long as it has the correct checks and waits, and acknowledge the procedure after everything is done.