About Configuration Files for Post-Processors and Controller Emulators

A configuration file is an XML format file that allows you to define one or more post-processors or controller emulators. Before using your own post-processor or controller emulator to simulate a machine using NC Code, you need to create a configuration file. Once your configuration file is created, you can upload it in Me > Preferences > App Preferences > Simulation > Machining > NC Machining Apps Common Services > Output.

This page discusses:

The configuration files must conform to the rules defined in an XSD format file. This file is available in \startup\Manufacturing\Samples\MyPost and \startup\Manufacturing\Samples\MyCE.

Example of a MyPost Configuration File

In the example below, the following post-processors are defined: My Post Processor 1 and My Post Processor 2.

<?xml version="1.0" encoding="UTF-8"?>
<MyPostList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="E:\Install\win_b64\startup\Manufacturing\Samples\MyPost\MyPostConfiguration.xsd">
	<MyPost id="MyPost1">
	     <Name>My Post Processor 1</Name>
		 <HelpFilePath>E:\Install\PP1.html</HelpFilePath>
		 <Path>E:\Install\MyPost1.exe</Path>
		 <ArgumentList>
		     <Argument>Arg1</Argument>
			 <Argument>Arg2</Argument>
	     </ArgumentList>
	</MyPost>
	<MyPost id="MyPost2">
	     <Name>My Post Processor 2</Name>
		 <HelpFilePath>E:\Install\PP2.html</HelpFilePath>
		 <Path>E:\Install\MyPost2.exe</Path>
		</MyPost>
</MyPostList>
The table below lists the XML elements you must define:
XML Element Description
<MyPostList> Root node of the configuration file.
<MyPost id="MyPostId"> Node specific to the post-processor file. The id is the attribute.
<Name> Name of the post-processor.
<HelpFilePath> Path to the help file.
<Path> Path to the post-processor file (.exe or .bat).
<ArgumentList> List of arguments (optional).
<Argument> String that corresponds to an input parameter of the post-processor file (optional).

Example of a MyCE Configuration File

In the example below, the following controller emulators are defined: Control Emulator 1 and Control Emulator 2.

<?xml version="1.0" encoding="utf-8"?>
<MyCEList xmlns:xsi='http://www.w3.org/2001/XMLSchema-instanPP'	
          xsi:noNamesoaPPSchemaLocation='c:\MyCEConfigurationFile.xsd'>
   <MyCE Id="Id1">
    	<Name>Control Emulator 1</Name>
<Path>c:\ExternalMyCE1.exe</Path>
  </MyCE>
  <MyCE Id="Id2">
<Name>Control Emulator 2</Name>
<Path>c:\ExternalMyCE2.exe</Path>
  </MyCE>
</MyCEList>
The table below lists the XML elements you must define:
XML Element Description
<MyCEList> Root node of the configuration file.
<MyCE id="MyCEId"> Node specific to the controller emulator. The id is the attribute.
<Name> Name of the controller emulator.
<Path> Path to the controller emulator (.exe or .bat).

Recommendations

  • You must define at least one root node.
  • You must add a link to the XSD format file at the root node of each configuration file.
  • The id attribute value must be unique for each controller emulator or post-processor you define.
  • If you use the <ArgumentList> element, you must also use at least one <Argument> element.
  • The name of the configuration file must be different from its related post-processor or controller emulator file.

Instruction Files

Instruction Files can be used to create an Instruction Table instead of using a controller emulator. They contain variables that are defined by MyCE. These variables are generated by the MachineXMLFileDump.xml file, which is generated automatically when the MyCE batch is called. MachineXMLFileDump.xml contains all the relevant information for MyCE to generate an instruction file.

Note: If MyCE is used, iUniqueFileID and iDeviceID are given by the file MachineXMLFileDump.xml.

There are four types of generic instruction files.

DofInstruction
This type of instruction file is used to define machine movements. It is composed of:

Variable Name Type of input Description
iNumFile int Number of NC code files associated to the instruction. Set iNumFile as -1 if the NC code file is the same as the previous instruction.
iUniqueFileID int* Array of unique NC code file IDs corresponding to the instruction. Set iUniqueFileID as -2 to indicate the end of the NC code file.
iLine long* Array of NC code file line numbers corresponding to the instruction. Line number starts from 1.
iDuration double Duration of the instruction.
iNumDevice int Number of devices.
iFeedValue double* Array of feed values for devices. Set iFeedValue as -1 for Rapid and >0 for feed value.
iDeviceID int* Array of device IDs for each device.
iNumDof int* Array of number of DOF's for each device.
iDofID int** Array of array of DOF IDs for each device.
iDofValue double** Array of array of DOF values for devices.

*: signifies a data array.

**: signifies an array of a data array.

IntegerInstruction
This type of instruction file is used to define tool assembly using NC code such as T, D, or H. It is composed of:

Variable Name Type of input Description
iNumFile int Number of NC code files associated to the instruction. Set iNumFile as -1 if the NC code file is the same as the previous instruction.
iUniqueFileID int* Array of unique NC code file IDs corresponding to the instruction. Set iUniqueFileID as -2 to indicate the end of the NC code file.
iLine long* Array of NC code file line numbers corresponding to the instruction. Line number starts from 1.
iNumDevice int Number of devices to be instructed.
iDeviceID int* Array of device IDs for each device.
iNumDVariable int* Array of number of integer variable IDs for each device.
iVariableID int** Array of array of integer variable values for each device.
iVariableValue int** Array of array of integer variable values for each device. The value can be any integer value.

*: signifies a data array.

**: signifies an array of a data array.

For integer instruction files, the following variable IDs can be used:

Variable Description
ToolVarID = 0, //Tool number
ToolCorrVarID = 0, //H number
ToolCorrDVarID = 0, //D number
MountStationVarID = 3, //Station ID for mounting a tool or a head
HeadVarID = 4, //Head Device ID
Clamp = 5, //For Clamp, set 0 as this value type
UnClamp = 6, //For Unclamp, set 0 as this value type
HeadUnsetVarID = 7, //Head Unset ID
ToolUnsetVarID = 8, //Tool Unset ID

DoubleInstrucution
This type of instruction file is used to define user parameters using NC code such as S. It is composed of:

Variable Name Type of input Description
iNumFile int Number of NC code files associated to the instruction. Set iNumFile as -1 if the NC code file is the same as the previous instruction.
iUniqueFileID int* Array of unique NC code file IDs corresponding to the instruction. Set iUniqueFileID as -2 to indicate the end of the NC code file.
iLine long* Array of NC code file line numbers corresponding to the instruction. Line number starts from 1.
iNumDevice int Number of devices to be instructed.
iDeviceID int* Array of device IDs for each device.
iNumDVariable int* Array of number of integer variable IDs for each device.
iVariableID int** Array of array of integer variable values for each device.
iVariableValue double** Array of array of double variable values for each device.

*: signifies a data array.

**: signifies an array of a data array.

For double instruction files, the following variable ID can be used:

Variable Description
SpindleSpeedVarID = 0, //Spindle speed value

StringInstruction
This type of instruction file is used to define user parameter values. It is composed of:

Variable Name Type of input Description
iNumFile int Number of NC code files associated to the instruction. Set iNumFile as -1 if the NC code file is the same as the previous instruction.
iUniqueFileID int* Array of unique NC code file IDs corresponding to the instruction. Set iUniqueFileID as -2 to indicate the end of the NC code file.
iLine long* Array of NC code file line numbers corresponding to the instruction. Line number starts from 1.
iNumDevice int Number of devices to be instructed.
iDeviceID int* Array of device IDs for each device.
iNumDVariable int* Array of number of integer variable IDs for each device.
iVariableID int** Array of array of integer variable values for each device.
iVariableValue char** Array of array of string variable values for each device.

*: signifies a data array.

**: signifies an array of a data array.

For string instruction files, the following variable IDs can be used:

Variable Example
WorkOriginNameVarID = 0, //G54
CutterCompensationVarID = 1, //LEFT, RIGHT, OFF
SpindleDirectionVarID = 2, //CW, CCW, OFF
SpindleModeVarID = 3, //RPM, CSS
CoolantVarID = 4, //ON, OFF, MIST

Instruction File Example
Below is an example of an instruction file.



Where:

  • 1: DofInstruction to set the initial machine position.
  • 17: StringInstruction for a G40 interpretation where:
    • 1 is the CutterCompensationVarID (line 20), and;
    • OFF sets the value is off (line 21).
  • 27: DofInstruction with an IntegerInstruction to specify a tool change:
    • DofInstruction to go to the tool change point.
    • IntegerInstruction to set the tool number where 0 (line 42) is the ToolVarID and 101 (line 43) is the tool number.