TwinCAT ADS interface for communication with Beckhoff automation systems using the ADS (Automation Device Specification) protocol. More...
Public Types | |
| enum | updatemode { Cyclic , OnChange , CyclicSumCommand } |
Public Types inherited from realvirtual.realvirtualBehavior | |
| enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
Public Member Functions | |
| override void | OpenInterface () |
| Opens a connection to TwinCAT ADS Client and initializes the stream readers and Router and ADS Notifications. | |
| override void | CloseInterface () |
| Closes the connection to TwinCAT ADS Client. | |
| void | ImportSignals (bool simstart) |
| Imports all signal objects under the interface gameobject. | |
Public Member Functions inherited from realvirtual.InterfaceBaseClass | |
| void | UpdateInterfaceSignals (ref int inputs, ref int outputs) |
| Creates a new List of InterfaceSignals based on the Components under this Interface GameObject. | |
| Signal | CreateSignalObject (string name, SIGNALTYPE type, SIGNALDIRECTION direction) |
| Create a signal object as sub gameobject. | |
| Signal | AddSignal (InterfaceSignal interfacesignal) |
| void | RemoveSignal (InterfaceSignal interfacesignal) |
| virtual GameObject | GetSignal (string name) |
| Gets a signal with a name. | |
| void | SetAllSignalStatus (bool connected) |
| void | DestroyAllSignals () |
| void | DeleteSignals () |
| void | PostAllScenesLoaded () |
Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| void | PreStartSim () |
| Is called by the realvirtualController before the component is started. | |
| void | StartSim () |
| Is called by the realvirtualController to start or stop the component. | |
| void | StopSim () |
| Vector3 | DirectionToVector (DIRECTION direction) |
| Transfers the direction enumeration to a vector. | |
| DIRECTION | VectorToDirection (bool torotatoin, Vector3 vector) |
| Transfers a vector to the direction enumeration. | |
| float | GetLocalScale (Transform thetransform, DIRECTION direction) |
| List< BehaviorInterfaceConnection > | UpdateConnectionInfo () |
| List< Signal > | GetConnectedSignals () |
| void | SetVisibility (bool visibility) |
| Sets the visibility of this object including all subobjects. | |
| List< BehaviorInterfaceConnection > | GetConnections () |
| List< Signal > | GetSignals () |
| GameObject | GetChildByName (string name) |
| Gets a child by name. | |
| List< GameObject > | GetChildsByName (string name) |
| Gets all child by name. | |
| GameObject | GetChildByNameAlsoHidden (string name) |
| List< GameObject > | GetAllMeshesWithGroup (string group) |
| List< GameObject > | GetAllWithGroup (string group) |
| List< GameObject > | GetAllWithGroups (List< string > groups) |
| List< GameObject > | GetAllMeshesWithGroups (List< string > groups) |
| List< string > | GetMyGroups () |
| List< GameObject > | GetMeshesWithSameGroups () |
| List< GameObject > | GetAllWithSameGroups () |
| MeshRenderer | GetMeshRenderer () |
| Gets the mesh renderers in the childrens. | |
| void | SetCollider (bool enabled) |
| sets the collider in all child objects | |
| void | ErrorMessage (string message) |
| Displays an error message. | |
| void | ChangeConnectionMode (bool isconnected) |
| void | Log (string message) |
| Logs a message. | |
| void | Log (string message, object obj) |
| Logs a message with a relation to an object. | |
| void | Warning (string message, object obj) |
| Logs a warinng with a relation to an object. | |
| void | Error (string message, object obj) |
| Logs an error with a relation to an object. | |
| void | Error (string message) |
| Logs an error. | |
| GameObject | DebugPosition (string debugname, Vector3 position, Quaternion quaternation, float scale) |
| Displays a gizmo for debugging positions. | |
| void | SetFreezePosition (bool enabled) |
| Freezes all child components to the current poosition. | |
| void | SetRbConstraints (RigidbodyConstraints constraints) |
| virtual void | AwakeAlsoDeactivated () |
Public Attributes | |
| string | NetId |
| The TwinCAT NetID of the PLC to communicate with. | |
| int | Port |
| The TwinCAT Port of the PLC to communicate with. | |
| updatemode | UpdateMode |
| int | PLCOutputsMinUpdateCycleMs |
| Specifies if the event should be fired cyclically or only if the variable has changed. | |
| int | PLCOutputsMaxUpdateDelay |
| The ADS server checks whether the variable has changed after this time interval. Unit is in ms. | |
| int | MaxNumberADSSubCommands |
| bool | ReadAllOutputsOnStart |
| bool | WriteAllInputsOnStart |
| bool | DebugMode |
| string | ConnectionStatus |
| The connection Status to the PLC - Connected if everything is ok (ReadOnly) | |
| string | RouterStatus |
| The Status to the Router -. | |
| string | PLCStatus |
| int | NumberInputs |
| The number of Inputs in the interface (ReadOnly) | |
| int | NumberOutputs |
| The number of Outputs in the interface (ReadOnly) | |
| int | StreamLength |
| The number of Outputs in the interface (ReadOnly) | |
| List< string > | RegExImportSignals |
| List< string > | RegExSkipSignals |
| Regex to limit the imported signals to certain symbols. If nothing is in this list every symbol is imported. | |
| List< string > | RegExSymbolIsPLCInput |
| Regex to limit the imported signals to certain symbols. All Signals which are matchting these Regexs are not imported;. | |
| bool | CreateSubFolders |
| Regex to define which variables are PLCInputs. For some variables like globals which are not linked directly to an input or output it can not be detected automatically. | |
| bool | ReadSignalValuesOnImport |
| Create Subfolders for the Symbols with "." separating the name. | |
Public Attributes inherited from realvirtual.InterfaceThreadedBaseClass | |
| int | MinUpdateCycle |
| int | CommCycleMeasures |
| int | CommCycleNr |
| int | CommTimeMs |
| int | CommTimeMin |
| float | CommTimeMed |
| int | CommTimeMax |
| int | CommCycleMeasureNum |
| int | UpdateCycleMs |
| string | ThreadStatus |
| int | MinUpdateCycle2 |
| int | CommCycleNr2 |
| int | CommTimeMs2 |
| int | CommTimeMin2 |
| float | CommTimeMed2 |
| int | CommTimeMax2 |
| int | CommCycleMeasureNum2 |
| int | UpdateCycleMs2 |
| string | ThreadStatus2 |
| bool | NoThreading |
| bool | TwoThreads |
Public Attributes inherited from realvirtual.InterfaceBaseClass | |
| bool | IsConnected |
| List< InterfaceSignal > | InterfaceSignals |
| Hashtable | SignalNamesOutputs |
| Hashtable | SignalNamesInputs |
Public Attributes inherited from realvirtual.realvirtualBehavior | |
| string | Name |
| The name of the component if it should be different from the GameObject name. | |
| ActiveOnly | Active |
| GameObject | FromTemplate |
| realvirtualController | realvirtualController |
| bool | HideNonG44Components |
| bool | SceneIsAdditive |
| bool | ForceStop |
Protected Member Functions | |
| override void | CommunicationThreadUpdate () |
Protected Member Functions inherited from realvirtual.InterfaceThreadedBaseClass | |
| virtual void | CommunicationThreadClose () |
| virtual void | SecondCommunicationThreadUpdate () |
| virtual void | SecondCommunicationThreadClose () |
Protected Member Functions inherited from realvirtual.InterfaceBaseClass | |
| void | OnConnected () |
| void | OnDisconnected () |
| void | OnEnable () |
| void | OnDisable () |
Protected Member Functions inherited from realvirtual.realvirtualBehavior | |
| bool | hidename () |
| bool | hideactiveonly () |
| virtual void | OnStopSim () |
| virtual void | OnPreStartSim () |
| virtual void | OnStartSim () |
| MU | GetTopOfMu (GameObject obj) |
| Gets the top of an MU component (the first MU script going up in the hierarchy) | |
| void | InitGame4Automation () |
| Initialiates the components and gets the reference to the realvirtualController in the scene. | |
| virtual void | AfterAwake () |
| void | Awake () |
Additional Inherited Members | |
Static Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| static bool | DirectionIsLinear (DIRECTION direction) |
| Gets back if the direction is linear or a rotation. | |
Detailed Description
TwinCAT ADS interface for communication with Beckhoff automation systems using the ADS (Automation Device Specification) protocol.
Connects to TwinCAT 2/3 runtime systems including real Beckhoff PLCs (CX, C6, EL series) and TwinCAT soft PLCs on Windows. Supports cyclic and on-change data exchange modes with automatic variable synchronization and sum command optimization. Ideal for virtual commissioning with TwinCAT XAE (Engineering) and testing automation logic before deployment. Configure the AMS NetID and port to match your TwinCAT system configuration (typically port 851 for PLC runtime 1).
Member Function Documentation
◆ CloseInterface()
|
virtual |
Closes the connection to TwinCAT ADS Client.
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
◆ CommunicationThreadUpdate()
|
protectedvirtual |
Block Read
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
◆ ImportSignals()
| void realvirtual.TwinCatAdsInterface.ImportSignals | ( | bool | simstart | ) |
Imports all signal objects under the interface gameobject.
Create Signals Object if not existing
◆ OpenInterface()
|
virtual |
Opens a connection to TwinCAT ADS Client and initializes the stream readers and Router and ADS Notifications.
Creates a new List of InterfaceSignals based on the Components under this Interface GameObject
Starts Multithreading
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
Member Data Documentation
◆ ConnectionStatus
| string realvirtual.TwinCatAdsInterface.ConnectionStatus |
The connection Status to the PLC - Connected if everything is ok (ReadOnly)
◆ CreateSubFolders
| bool realvirtual.TwinCatAdsInterface.CreateSubFolders |
Regex to define which variables are PLCInputs. For some variables like globals which are not linked directly to an input or output it can not be detected automatically.
◆ NetId
| string realvirtual.TwinCatAdsInterface.NetId |
The TwinCAT NetID of the PLC to communicate with.
◆ NumberInputs
| int realvirtual.TwinCatAdsInterface.NumberInputs |
The number of Inputs in the interface (ReadOnly)
◆ NumberOutputs
| int realvirtual.TwinCatAdsInterface.NumberOutputs |
The number of Outputs in the interface (ReadOnly)
◆ PLCOutputsMaxUpdateDelay
| int realvirtual.TwinCatAdsInterface.PLCOutputsMaxUpdateDelay |
The ADS server checks whether the variable has changed after this time interval. Unit is in ms.
◆ PLCOutputsMinUpdateCycleMs
| int realvirtual.TwinCatAdsInterface.PLCOutputsMinUpdateCycleMs |
Specifies if the event should be fired cyclically or only if the variable has changed.
◆ Port
| int realvirtual.TwinCatAdsInterface.Port |
The TwinCAT Port of the PLC to communicate with.
◆ ReadSignalValuesOnImport
| bool realvirtual.TwinCatAdsInterface.ReadSignalValuesOnImport |
Create Subfolders for the Symbols with "." separating the name.
◆ RegExSkipSignals
| List<string> realvirtual.TwinCatAdsInterface.RegExSkipSignals |
Regex to limit the imported signals to certain symbols. If nothing is in this list every symbol is imported.
◆ RegExSymbolIsPLCInput
| List<string> realvirtual.TwinCatAdsInterface.RegExSymbolIsPLCInput |
Regex to limit the imported signals to certain symbols. All Signals which are matchting these Regexs are not imported;.
◆ RouterStatus
| string realvirtual.TwinCatAdsInterface.RouterStatus |
The Status to the Router -.
◆ StreamLength
| int realvirtual.TwinCatAdsInterface.StreamLength |
The number of Outputs in the interface (ReadOnly)
Public Types inherited from