S7 interface for connecting to Siemens S7 PLCs via TCPIP.

Inheritance diagram for game4automation.S7Interface:
game4automation.InterfaceThreadedBaseClass game4automation.InterfaceBaseClass game4automation.Game4AutomationBehavior

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 game4automation.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 ()
- Public Member Functions inherited from game4automation.Game4AutomationBehavior
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< BehaviorInterfaceConnectionUpdateConnectionInfo ()
List< SignalGetConnectedSignals ()
void SetVisibility (bool visibility)
 Sets the visibility of this object including all subobjects.
List< BehaviorInterfaceConnectionGetConnections ()
List< SignalGetSignals ()
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.
virtual void AwakeAlsoDeactivated ()

Public Attributes

string Adress
 The ip adress of the PLC.
int Rack
 the rack number of the plc
int Slot
 the slot number of the plc
bool ReverseHighLowBytes = true
string SymbolTable
 The path to the symbol table of the PLC (*.seq text file)
int ReduceMaxPduLenth = 60
float ReconnectingTime = 10
 Time in seconds for reconnecting if connection fails.
bool OnlyWriteToPlcChangedSignals = true
bool AreaReadWriteMode = false
int MinAreaMOutput
int MaxAreaMOutput
int MinAreaMInput
int MaxAreaMInput
int DBOutputs
int MinAreaDBOutput
int MaxAreaDBOutput
int DBInputs
int MinAreaDBInput
int MaxAreaDBInput
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 (ReadOnly)
int NegotiatedPduLenght
 The negotiated PDU length (ReadOnly)
int NumberInputs
 The number of Inputs in the interface (ReadOnly)
int NumberOutputs
 The number of Outputs in the interface (ReadOnly)
ulong ThreadCycleNum
- Public Attributes inherited from game4automation.InterfaceThreadedBaseClass
int MinCommCycleMs = 0
int CommCycleMeasures = 1000
int CommCycleNr
int CommCycleMs
int CommCycleMin
float CommCycleMed
int CommCycleMax
int CommCycleMeasureNum
string ThreadStatus
bool NoThreading = false
- Public Attributes inherited from game4automation.InterfaceBaseClass
bool IsConnected =false
List< InterfaceSignalInterfaceSignals = new List<InterfaceSignal>()
- Public Attributes inherited from game4automation.Game4AutomationBehavior
string Name
 The name of the component if it should be different from the GameObject name.
ActiveOnly Active
GameObject FromTemplate
Game4AutomationController Game4AutomationController
bool HideNonG44Components

Protected Member Functions

override void CommunicationThreadUpdate ()
 Updates all signals in the parallel communication thread.
- Protected Member Functions inherited from game4automation.InterfaceThreadedBaseClass
virtual void CommunicationThreadClose ()
- Protected Member Functions inherited from game4automation.InterfaceBaseClass
void OnConnected ()
void OnDisconnected ()
- Protected Member Functions inherited from game4automation.Game4AutomationBehavior
bool hidename ()
bool hideactiveonly ()
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 Game4AutomationController in the scene.
virtual void AfterAwake ()
void Awake ()

Additional Inherited Members

- Public Types inherited from game4automation.Game4AutomationBehavior
enum  ActiveOnly {
  Always, Connected, Disconnected, Never,
- Static Public Member Functions inherited from game4automation.Game4AutomationBehavior
static bool DirectionIsLinear (DIRECTION direction)
 Gets back if the direction is linear or a rotation.