Your comments

Hi,

best would be to do it with Game4Automation Professional and the included OPCUA interface.

With the OPCUA interface, you can get the data from the PLC and with the standard Unity UI and AR functions, you could display it on your android phone. Like in this example:

Best regards

Thomas

Hi Jeff,

you will need the Professional version because all the "advanced" interfaces are part of Professional (like the needed Shared Memory Interface to PLCConnect).

Currently the PLCConnect developers are developing a "special" Game4Automation Interface what will be a "special" PLCConnect Interface on the Game4Automation Professional side. But the current version and standard Shared Memory should also work.


I will get you a PLCConnet trial and some documentation on it. It might take until end of this week. Could you please send me your full contact data to info@game4automation.com.


Thanks and best regards

Thomas

Hi Jeff,

a Fanuc Roboguide interface is already available based on a partner solution. It is called PLCConnect standalone ant it it is providing an intermediate interface between Game4Automation and several robot controllers (ABB, Fanuc, Kuka). The price is about 1200€ a year. Are you interested in getting a trial / offer?

Best regards

Thomas

Hi Leve,

I assume that you are having PLCInputs and PLCOutputs in your project after importing from TwinCAT:


Now you can write to the PLCInput with 

PLCInput.Value = YourValue;



You should write your own behavior scripts and attach this to the Gameobject with the rigid-body where you want to measure the velocity.


Here is a simple example of a behavior script (it is the Sensor_standard script from the Game4Auomation Framework).

This script is sending a "High" to the PLC when the sensor is occupied.

namespace game4automation
{
  [RequireComponent(typeof(Sensor))]
//! The Sensor_Standard component is providing the Sensor behavior and connection to the PLC inputs and outputs.
public class Sensor_Standard : BehaviorInterface
{

  [Header("Settings")] public bool NormallyClosed = false; //!< Defines if sensor signal is *true* if occupied (*NormallyClosed=false*) of if signal is *false* if occupied (*NormallyClosed=true*)
  [Header("Interface Connection")] public PLCInputBool Occupied; //! Boolean PLC input for the Sensor signal.

private Sensor Sensor;
private bool _isOccupiedNotNull;

// Use this for initialization
void Start()
{
_isOccupiedNotNull = Occupied != null;
Sensor = GetComponent<Sensor>();
}

// Update is called once per frame
  void Update()
{
bool occupied = false;

// Set Behavior Outputs
if (NormallyClosed)
{
occupied = !Sensor.Occupied;
}
else
{
occupied = Sensor.Occupied;
}

// Set external PLC Outputs
if (_isOccupiedNotNull)
Occupied.Value = occupied;

}
}
}

I am closing this. We can't reproduce it.

yes sure, just call me!