Your comments
Hi Andreas,
This is Thomas from realvirtual. I’m having a bit of difficulty following your current activities and the issues you're encountering. I believe you can achieve your objectives without resorting to scripting.
Here are some key points and basic information to consider:
- Raycast Length: This setting determines the raycast's length for detecting colliders, which is crucial for connecting to guided transports. You may need to adjust this according to your specific geometry.
- Transportsurfaces and GuidedTransports: These components do not perform any reparenting actions.
- Handling Objects: In our tests, we've managed to transfer objects from a TransportSurface and reintroduce them using a Gripper Script. You can refer to this process in our demonstration model located at
Assets/realvirtual/Scenes/DemoLoadingUnloadingGuidedTransport.unity
. - Using Multiple Guided Transports: Another approach is to employ an additional GuidedTransport to lift items from an existing one. Check out the example in
Assets/realvirtual/Scenes/DemoGuidedTransport.unity
. - Scripts Managing Reparenting: Only the Gripper and Fixer Scripts are designed to manage reparenting and move the MUs out of physical control.
I hope this information is helpful to you.
Best regards, Thomas
Hi there,
We are always happy to help! While we can't create videos for all new hardware and software updates, we highly value the support and feedback from our customers. Could you please provide more details about the specific issues you're encountering with the S7 Connection Tutorial and TIA Portal V19? Basically nothing should be different in TIA V19 or PLCSimAdvenced. This will help us understand your needs better.
Best regards
Thomas
Thanks, we know this issue - it is already fixed - if you need a beta you can get access - otherwise it will be fixed in about 1 week with the next official release.
Hi, do you have the full editor log file - I am sorry, based on what we see we can't tell you what the issue is.
I am sorry we don't have example code really covering what you need.
You can check our api documentation here - there you will find the public properties and methods for example for our drives:
https://realvirtual.io/apidoc/namespacerealvirtual.html
You can also check here how to implement your own interface:
https://doc.realvirtual.io/components-and-scripts/custom-interfaces
The rest is more or less standard c# scripting for a tcp-ip communication. Maybe you can start here:
https://learn.microsoft.com/de-de/dotnet/fundamentals/networking/sockets/tcp-classes
I think the questions are somehow similar to the questions in this post:
https://forum.realvirtual.io/communities/1/topics/654-unity-physics-and-kinematics
Maybe more in detail concerning your problem:
Physical joints are always unstable per se and often only work without oscillations if the fixed update is very small (e.g. 1ms - disadvantage: performance of the model then quickly reaches its limit).
In general: If possible, do not use physical joints. If physical joints are used, then only as a "slave" and the end position is always guaranteed via a drive (e.g. delta pickers, drive for the X,Y,Z position, physical joints for the joints and rods).
I would control the example model myself purely via drives - which are then connected to each other via CAM or GEAR.
Hi Michael,
There are several approaches you can take to achieve this:
- Position Control via End Element: You can manage the positioning by moving only the endpoint. Although this endpoint is not a real drive, you can connect it to the actual drive using Unity Physics joints. This setup ensures precise endpoint control. While the joints in between might exhibit some shaking, this should not affect the overall functionality.
- Integrated Drives with Gears or CAMS: Another method involves equipping all joints with drives and synchronizing them through the use of gears or CAMs. This setup mimics the movement based on a "Master" Drive, which aligns with the position of the actual drive. For more details, you might find these resources helpful:
- Defining CAMs: Defining CAMs Documentation
- Drive Behavior: Drive Behavior Documentation
- Using Unity Physics for Kinematics: Employ Unity Physics and Unity Joints (details at Unity Joints Documentation) to handle forward kinematics. In cases requiring purely linear movements, consider using Articulation Bodies (Articulation Body Documentation). Be aware that Unity Physics can be somewhat unstable or jittery, which can be mitigated by reducing the Physics fixed timestep at the cost of performance.
For complex scenarios not involving parallel kinematics, which are typically challenging and unstable with Unity Physics, you might explore using AGX from Algoryx (see https://doc.realvirtual.io/extensions/agx-physics9. This is a more robust solution for accurately simulating complex physics interactions, although it is not free and the definition of kinematics is on my point of view more complicated).
In general, whenever feasible, we prefer to resolve these issues using non-physical forward kinematics, whether it’s a straightforward kinematic chain of a robot or something that can be easily managed with defined cams or gears.
I hope this helps! Let me know if you need further assistance.
Best,
Thomas
Hi, it would be best to implement a TCP-IP interface in C# for realvirtual.io which understands your custom commands and then send for example the drive to a position with the public methods of the drive:
if (commandtype = "motordriveto)
{
drive.DriveTo(destinationposition);
}
I think this is much better than transferring your commands to a PLC like signal based control of the Drive.
Hallo,
anbei die Antworten zu Ihren Fragen:
Im Umlaufsystem stapeln sich die WTs ab einer Staulänger von 4 Wts. Wie kann ich das verhindern?
Bitte verwenden Sie ausschließlich guided Transport. Die Kombination aus normaler Transportsurface und guided Transport wird nicht funktionieren.
Wie kann ich ein "Transport Guided (Script)" unterbrechen (durch zB einen Heber) und danach wieder fortführen?
Hier gibt eine Umsetzung in der Demoszene zum guidedTransport, welche als Vorlage genutzt werden kann. (realvirtual/Scenes/DemoGuidedTransport)
Wie kann ich eine "Guideline" bei einem Transportsystem mit zwei "Transport Surfaces" einfügen?
Ein System wie in ihrem Beispiel wird immer nur mit einer Transportsurface umgesetzt, damit kann einfach eine Guideline ergänzt werden. Unity betrachtet immer nur eine "Collision".
Unter main/realvirtual/ui/button1 wird ein image verwendet. Wo finde ich die Datei?
Button-GameObject in der Hierarchie auswählen und im Inspector auf das definierte Bild klicken. Es wird dann im Projekt angezeigt.
Roboter bewegen sich zu bestimmten Positionen deutlich langsamer. Warum ist das so?
Die Bewegung richtet sich nach der langsamsten Achse.
Grüße Christin
Use only guided transport. Combining normal transport surfaces with guided transport will not work.
There is an implementation in the demo scene for guided transport that can be used as a template. (realvirtual/Scenes/DemoGuidedTransport)
A system like the one in your example is always implemented with a single transport surface, allowing an easy addition of a guideline. Unity only considers one "Collision".
Select the Button-GameObject in the hierarchy and click on the defined image in the Inspector. It will then be displayed in the project.
The movement speed is determined by the slowest axis.
Regards Christin
Customer support service by UserEcho
Hallo,
wir sind nicht mit diesem spezifischen Problem vertraut, da wir keine direkte Erfahrung mit WinCC haben. Allerdings würde ich vorschlagen, zu überprüfen, ob das Modell in einem reinen WebGL-Build funktioniert. Das können Sie testen, indem Sie im Unity Editor auf "Build & Run" klicken. Dadurch sollte sich ein Browserfenster öffnen, das einen kleinen Unity-internen Webserver nutzt, um die HTML-Seite anzuzeigen. Wenn dies funktioniert, liegt das Problem wahrscheinlich an der Integration oder Kompatibilität mit WinCC. Ich empfehle auch, die CSS-Einstellungen zu überprüfen und zu variieren, da eventuell dadurch die Darstellung in WinCC beeinträchtigt wird.
Gruß
Thomas