S7 TCP/IP interface for direct communication with Siemens SIMATIC S7 PLCs (S7-300, S7-400, S7-1200, S7-1500). More...
Public Member Functions | |
| override GameObject | GetSignal (string name) |
| Gets a signal based on its name. | |
| void | ReadSignalFile () |
| Imports the symbol table and creates the signal objects under this S7interface object. | |
| void | CheckConnection () |
| Connects to the S7 and checks the connection. | |
| override void | OpenInterface () |
| override void | CloseInterface () |
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) |
| void | SetAllSignalStatus (bool connected) |
| void | DestroyAllSignals () |
| void | DeleteSignals () |
| virtual void | PostAllScenesLoaded () |
Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| virtual void | OnOwnershipChanged (bool isOwner) |
| Called when network ownership changes. | |
| void | SetNetworkOwner (bool isOwner) |
| Sets IsNetworkOwner and triggers OnOwnershipChanged callback. | |
| 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, bool includeTriggers=true) |
| 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 warning 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 | Adress |
| The IP address of the PLC. | |
| int | Rack |
| The rack number of the PLC. | |
| int | Slot |
| The slot number of the PLC. | |
| bool | ReverseHighLowBytes |
| Reverses high and low bytes for multi-byte data types (WORD, DWORD, INT, DINT, REAL) | |
| string | SymbolTable |
| The path to the symbol table of the PLC (*.sdf text file) | |
| int | ReduceMaxPduLenth |
| Reduces the maximum PDU length by this value in bytes to avoid communication errors. | |
| float | ReconnectingTime |
| Time in seconds for reconnecting if connection fails. | |
| float | ConnectionTimeout |
| Maximum time in seconds to wait for PLC connection before timeout (prevents Unity freezing) | |
| bool | OnlyWriteToPlcChangedSignals |
| Only writes signals to PLC when their values have changed to reduce network traffic. | |
| bool | AreaReadWriteMode |
| Enables area-based read/write mode for reading and writing continuous memory blocks instead of individual signals. | |
| int | MinAreaMOutput |
| Minimum memory address for M area outputs in bytes. | |
| int | MaxAreaMOutput |
| Maximum memory address for M area outputs in bytes. | |
| int | MinAreaMInput |
| Minimum memory address for M area inputs in bytes. | |
| int | MaxAreaMInput |
| Maximum memory address for M area inputs in bytes. | |
| int | DBOutputs |
| Data block number for outputs. | |
| int | MinAreaDBOutput |
| Minimum byte address within the output data block. | |
| int | MaxAreaDBOutput |
| Maximum byte address within the output data block. | |
| int | DBInputs |
| Data block number for inputs. | |
| int | MinAreaDBInput |
| Minimum byte address within the input data block. | |
| int | MaxAreaDBInput |
| Maximum byte address within the input data block. | |
| string | ConnectionStatus |
| The connection status to the PLC - OK if everything is ok (ReadOnly) | |
| string | PLCStatus |
| The status of the PLC - Running if PLC is running (ReadOnly) | |
| int | RequestedPduLength |
| The requested PDU length in bytes (ReadOnly) | |
| int | NegotiatedPduLenght |
| The negotiated PDU length in bytes (ReadOnly) | |
| int | NumberInputs |
| The number of input signals in the interface (ReadOnly) | |
| int | NumberOutputs |
| The number of output signals in the interface (ReadOnly) | |
| ulong | ThreadCycleNum |
| The current communication thread cycle number (ReadOnly) | |
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 |
| bool | IsNetworkOwner |
| True when this component owns its simulation (local authority). Set to false by MultiplayerWEB on remote clients. | |
Protected Member Functions | |
| override void | CommunicationThreadUpdate () |
| Updates all signals in the parallel communication thread. | |
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 | |
Public Types inherited from realvirtual.realvirtualBehavior | |
| enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
Static Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| static bool | DirectionIsLinear (DIRECTION direction) |
| Gets back if the direction is linear or a rotation. | |
Properties inherited from realvirtual.InterfaceBaseClass | |
| virtual string | InterfaceDisplayName [get] |
| Display name for interface in UI lists (removes "Interface" suffix by default, can be overridden for custom names) | |
| virtual bool | ShowIsConnectedField [get] |
Detailed Description
S7 TCP/IP interface for direct communication with Siemens SIMATIC S7 PLCs (S7-300, S7-400, S7-1200, S7-1500).
Establishes native S7 protocol connections over Ethernet without requiring additional OPC servers or middleware. Supports reading and writing data blocks (DB), memory areas (M), inputs (I), and outputs (Q) directly from the PLC. This interface is ideal for virtual commissioning with Siemens TIA Portal projects and PLCSIM Advanced simulations. Configure the PLC's IP address, rack and slot numbers to match your hardware configuration or PLCSIM setup.
Member Function Documentation
◆ CheckConnection()
| void realvirtual.S7Interface.CheckConnection | ( | ) |
Connects to the S7 and checks the connection.
◆ CloseInterface()
|
virtual |
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
◆ CommunicationThreadUpdate()
|
protectedvirtual |
Updates all signals in the parallel communication thread.
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
◆ GetSignal()
|
virtual |
Gets a signal based on its name.
Reimplemented from realvirtual.InterfaceBaseClass.
◆ OpenInterface()
|
virtual |
Reimplemented from realvirtual.InterfaceThreadedBaseClass.
◆ ReadSignalFile()
| void realvirtual.S7Interface.ReadSignalFile | ( | ) |
Imports the symbol table and creates the signal objects under this S7interface object.
Member Data Documentation
◆ Adress
| string realvirtual.S7Interface.Adress |
The IP address of the PLC.
◆ AreaReadWriteMode
| bool realvirtual.S7Interface.AreaReadWriteMode |
Enables area-based read/write mode for reading and writing continuous memory blocks instead of individual signals.
◆ ConnectionStatus
| string realvirtual.S7Interface.ConnectionStatus |
The connection status to the PLC - OK if everything is ok (ReadOnly)
◆ ConnectionTimeout
| float realvirtual.S7Interface.ConnectionTimeout |
Maximum time in seconds to wait for PLC connection before timeout (prevents Unity freezing)
◆ DBInputs
| int realvirtual.S7Interface.DBInputs |
Data block number for inputs.
◆ DBOutputs
| int realvirtual.S7Interface.DBOutputs |
Data block number for outputs.
◆ MaxAreaDBInput
| int realvirtual.S7Interface.MaxAreaDBInput |
Maximum byte address within the input data block.
◆ MaxAreaDBOutput
| int realvirtual.S7Interface.MaxAreaDBOutput |
Maximum byte address within the output data block.
◆ MaxAreaMInput
| int realvirtual.S7Interface.MaxAreaMInput |
Maximum memory address for M area inputs in bytes.
◆ MaxAreaMOutput
| int realvirtual.S7Interface.MaxAreaMOutput |
Maximum memory address for M area outputs in bytes.
◆ MinAreaDBInput
| int realvirtual.S7Interface.MinAreaDBInput |
Minimum byte address within the input data block.
◆ MinAreaDBOutput
| int realvirtual.S7Interface.MinAreaDBOutput |
Minimum byte address within the output data block.
◆ MinAreaMInput
| int realvirtual.S7Interface.MinAreaMInput |
Minimum memory address for M area inputs in bytes.
◆ MinAreaMOutput
| int realvirtual.S7Interface.MinAreaMOutput |
Minimum memory address for M area outputs in bytes.
◆ NegotiatedPduLenght
| int realvirtual.S7Interface.NegotiatedPduLenght |
The negotiated PDU length in bytes (ReadOnly)
◆ NumberInputs
| int realvirtual.S7Interface.NumberInputs |
The number of input signals in the interface (ReadOnly)
◆ NumberOutputs
| int realvirtual.S7Interface.NumberOutputs |
The number of output signals in the interface (ReadOnly)
◆ OnlyWriteToPlcChangedSignals
| bool realvirtual.S7Interface.OnlyWriteToPlcChangedSignals |
Only writes signals to PLC when their values have changed to reduce network traffic.
◆ PLCStatus
| string realvirtual.S7Interface.PLCStatus |
The status of the PLC - Running if PLC is running (ReadOnly)
◆ Rack
| int realvirtual.S7Interface.Rack |
The rack number of the PLC.
◆ ReconnectingTime
| float realvirtual.S7Interface.ReconnectingTime |
Time in seconds for reconnecting if connection fails.
◆ ReduceMaxPduLenth
| int realvirtual.S7Interface.ReduceMaxPduLenth |
Reduces the maximum PDU length by this value in bytes to avoid communication errors.
◆ RequestedPduLength
| int realvirtual.S7Interface.RequestedPduLength |
The requested PDU length in bytes (ReadOnly)
◆ ReverseHighLowBytes
| bool realvirtual.S7Interface.ReverseHighLowBytes |
Reverses high and low bytes for multi-byte data types (WORD, DWORD, INT, DINT, REAL)
◆ Slot
| int realvirtual.S7Interface.Slot |
The slot number of the PLC.
◆ SymbolTable
| string realvirtual.S7Interface.SymbolTable |
The path to the symbol table of the PLC (*.sdf text file)
◆ ThreadCycleNum
| ulong realvirtual.S7Interface.ThreadCycleNum |
The current communication thread cycle number (ReadOnly)
Public Member Functions inherited from