New Community Ranking System
Our Community ranking system has recently been updated. You may notice changes in user rankings and receive system messages or notifications. If you have questions about how the new ranking works, please refer to the announcement post for more details (click here).
Digital Twin
This knowledge base is addressing usage of software Experior, Machine Expert Twin and future Automation Expert Twin. These softwares are used to create smaller instances of digital twins for use in industrial automation, warehouse management, design & engineering with more..
Search in
Improve your search experience:
Exact phrase→Use quotes " "(e.g., "error 404")
Wildcard→Use * for partial words(e.g., build*, *tion)
AND / OR→Combine keywords(e.g., login AND error, login OR sign‑in)
Keep it short→Use 2–3 relevant words, not full sentences
Filters→Narrow results by section(Knowledge Base, Users, Products)
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send InviteCancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
List and modify Assembly names
Changing part of Assembly name for all assemblies which name contains “UC1”
int startindex = 5;
string changefrom = "MC02";
string changeto = "MC01";
foreach (var item in Experior.Core.Assemblies.Assembly.Items.Values)
{
if (item.Name.Contains("UC1"))
{
int lenght = item.Name.Length - startindex;
Log.Write("Assembly name = " + item.Name.Substring(startindex, lenght));
Log.Write("Assembly name = " + item.Name.Replace(changefrom, changeto));
item.Name = item.Name.Replace(changefrom, changeto);
item.Name = "=" + item.Name;
Log.Write("bool " + item.Name.Replace(changefrom, changeto));
}
}
List and set Normally Closed on photocells
Search for all photocells in “Model”
Set “Normally open/Normally closed” to “normally closed
Print status and name
foreach (var item in Experior.Core.Assemblies.Assembly.Items.Values)
{
if (item is Experior.Catalog.Logistic.PhotoEye)
{
((Experior.Catalog.Logistic.PhotoEye)item).plcActivation.NoNc = NormallyClosed;
Log.Write(((Experior.Catalog.Logistic.PhotoEye)item).plcActivation.NoNc.ToString());
Log.Write("Photcell name = " + item.Name);
}
}
List and modify Cylinder
Lookup all Cylinders (Basic Catalog Cylinder) in model
Change cylinder Roll by 90 degrees
foreach (var cyl in Experior.Core.Assemblies.Assembly.Items.Values)
{
if (cyl is Experior.Catalog.Logistic.Cylinder && cyl.Color == Color.Yellow)
{
Log.Write(cyl.Name);
cyl.Roll = (float) Math.PI / 2;
}
}
Modify Motor Frequency Converter Symbol
Look for a specific motor (contains “CO400) in its name
Set Motors Connection ID
Set the frequency converters symbol
Print out motor name and symbol name
foreach (var motor in Experior.Core.Motors.Motor.Items.Values)
{
if (motor.Name.Contains("CO400"))
{
motor.InputSpeed.ID = "Connection1";
motor.InputSpeed.Symbol = "CO400.M1_FQ1";
Log.Write("Name = " + motor.InputSpeed.Name + " Symbol = " + motor.InputSpeed.Symbol );
}
}
List and modify Motor Names
Changing part of Motor name for all Motors which name contains “UC2”
int startindex = 5;
string changefrom = "MC02";
string changeto = "MC01";
foreach (var motor in Experior.Core.Motors.Motor.Items.Values)
{
if (motor.Name.Contains("UC2"))
{
int lenght = motor.Name.Length - startindex;
Log.Write("Assembly name = " + motor.Name);
Log.Write("Assembly name = " + motor.Name.Substring(startindex, lenght));
Log.Write("Assembly name = " + motor.Name.Replace(changefrom, changeto));
motor.Name = motor.Name.Replace(changefrom, changeto);
motor.Name = "=" + motor.Name;
}
}
List and modify PLC Inputs
Changing or updating a Symbol name will result in overwriting current symbol name( or tag) on the Input.
foreach (var i in Experior.Core.Communication.PLC.Connection.Inputs.Items)
{
Log.Write("ID = " + i.ID + " Source = " + i.Source + " Symbol = " + i.Symbol + " Name = " + i.Name);
i.Source = "0 - CON1";
i.ID = "0 - CON1";
i.Symbol = i.Name;
Log.Write("input name = " + i.Symbol);
}
List and modify PLC Outputs
Changing or updating a Symbol name will result in overwriting current symbol name( or tag) on the Output.
string changefrom = "string1";
string changeto = "string2";
foreach (var o in Experior.Core.Communication.PLC.Connection.Outputs.Items)
{
Log.Write("ID = " + o.ID + " Source = " + o.Source + " Symbol = " + o.Symbol + " Name = " + o.Name);
o.Source = "0 - CON1";
o.ID = "0 - CON1";
o.Symbol = o.Name;
o.Symbol = o.Name.Replace(changefrom, changeto);
Log.Write("output name = " + o.Symbol);
Set Output Bit From Code
public class Main
{
public void On(object trigger, string symbol)
{
if (symbol == "Init")
{ //Connection id
/*Output.On(string Symbol)'*/
/*Output.On(String Symbol,string source)'*/
/*Output.On(int id, int byteno, int bitno)'*/
/*Output.On(int id, string source, int byteno, int bitno)'*/
//for AB plc
Output.On(1, "Local_4", 231, 6);
// connection id 1, source, Byte, bit
//for Siemens
Output.On(0, "1", 1, 6);
// connection id 0, source (DB1), Byte, bit
}
}
}