I’m currently working on my Bachelor’s thesis, trying to implement a simple digital twin of a Festo CP factory that we got at my university.
The conveyor and the stopper (the gold/yellow part you can see the carrier stop at before it stops again due to the connector) get their turn on/release information via OPC UA. This then gets a signal from the real-life carrier hitting sensor for the conveyor to activate or the stopper release signal.
So, the issue I’m facing is that the carrier stops way before the actual connector(transfer point) between two conveyers. Over time, while the simulation is running, that distance increases. You can see what I mean in the video I’ve attached (I only recorded it on my phone because we don’t have any recording software on the university PC), the first stop you see at the stopper(golden/yellow objekt) is the carrier waiting for the real-life counterpart to clear the stopp too.
I tried moving the point to another location, but that didn’t affect it at all. It just changed the location where it stops. I also tried making the connection via Python, but that didn’t change anything.
I’m really stuck on how I could fix it. Any help would be appreciated!
So are you using component path sensor behavior and then a signal from that goes to the OPC UA server? These sensors operate based on the bounding box of the component moving on the motion path and you can select the trigger point.
If the sensor triggers at weird position then your component probably has a weird or unexpected bounding box. Try removing unnecessary frames and check all other features too which might affect the component bounds.
I use the OPC UA server to send me a signal if the real-life counterpart conveyer is moving. And I am not using any component path sensors. I grab the “Carrier” onto the conveyor with a Pyhton script and then turn on/off the path depending on the signal I get from the server. And for connecting the conveyors I use the OneToOne Interface so I can use them in PnP. And instead of stopping at the end of the Conveyor where I placed the Interaface and the end of the Path they stop ahead of that
So you don’t have any sensors in VC at all which would then trigger the stopping of the conveyor when a part arrives?
Then I suspect your real life conveyor must be moving at different speed than the simulated one. Does it e.g. ramp the speed up and down, while the simulation path just starts and stops instantly?
I think this kind of sync is never going to be perfect unless you do something like read encoder values from the real conveyor and then use scripting in VC to calculate and update the positions of the parts accordingly. In such scenario I think you basically can’t use the VC motion paths as they can’t be driven by “distance traveled”, only based on simulation time.
The conveyor in real life runs at a constand speed and only stops after a few seconds once the object as left the belt and start at the constand speed again once the carrier is on the belt again.
And I dont have any sensors for activating the path that all done via the server, currently using the stopper as a sync I let the carrier in VC run slightly faster so it always ahead of the real life one and then wait at the stopper for other one to arrive and release the stopper. But then I get the problem that my carrier is not stopping at the end of the conveyor belt where the path ends but before it and the longer the simulation runs the early it will stop on the path. So after 1 loop it will stop in the middle of the current path its on even tho the path is active and waits for the other path it would then go on to turn active even tho its not even close to end of the path or the connector. Like seen on the pic I want the carrier to stop at the end of the belt and wait there for the other path to turn on but.
Also I would love to update the Position of the part but I sadly could not figure out how to change the postion of an object while the simulation is running