PPSolma
PPSolma
The program is menu driven and all the individual functions from customisation to CNC
output generation are available to the user. The user can receive already customised
Post-Processors (Name.cfg files) with which he can directly use with his VISI-CAM
workfiles to produce CNC output files. If the output is not entirely to their requirements,
and if the user has some experience in programming, he can directly modify or customise
the Post Processor to suit their particular machine tool and control combination. The user
may also create new Post Processors for new or similar machines when needed, as all the
modification and customisation utilities are included in the package.
EXECUTION
This function generates CNC blocks from an existing VISI-CAM workfile.
This command can also be invoked merely by pressing the ‘E’ key.
The VISI-CAM filename for input and the name of the file which will contain the CNC output
blocks are requested. If the data for Input Path and Output Path and Extension have been
set in the General description menu option, the system will automatically show the files that
are present in the specified directories.
Note - On the tool table the parameters CORRD, CORRL and CARUSEL are all the same
and they correspond to the tool number unless they are specifically assigned in the
PROCESSOR phase.
When all the necessary modifications are completed it is possible to continue by pressing
the EXIT button.
At the end of the execution the program will ask if you want to edit the CNC file which has
been generated. The invoked editor is the VISIEDIT editor.
This menu lets you call an existing G-code file into the editor page. A file input selection
window which points to the G-code output folder will be displayed and lets you select the
required file. If an EXECUTION command has already been performed the file generated
last will be loaded.
CHANGE CNC
Once inside the post processor program it is still possible to change the machine
configuration file parameter (i.e. read a different xxxxx.CFG file) using this menu option.
The machine configuration files window is displayed on selecting the Change CNC option.
This option may be useful when a mistake is made on the first selection or when the same
part must be generated on more than one machine tool
For both selections the machine configuration window file is displayed to allow the name of
the new machine may be entered.
CONFIGURATION
This section contains all options necessary to enter or modify the machine file
configuration parameters.
GENERAL DESCRIPTION
This menu option contains the description parameters necessary to precisely identify the
machine.
The first line in particular can contain 250 characters of description in which it is possible
to insert detailed information about the machine, axes used, special devices and functions
etc. The other parameters are of 50 characters each:
Start block string: A fixed string of characters to be added at the beginning of each block.
End block string: A fixed string of characters to be added at the end of each block.
Block increment number: Value to indicate the block sequence number increment. The
value should be set to 0 if block numbering is not required in the G-code file.
Tool control point (0=centre / 1=tip): Parameter to indicate if the tool reference must be
at the centre or at the tip of the tool. The value 0 produces output based on the centre of
the tool while the value 1 produces output based on the tip of the tool.
Max number of characters in the file (0/>1000): Maximum number of bytes allowed for a
G-code file (normally a machine’s control limitation). If the output file size is bigger than
this number the program will automatically split the file in two or more files of smaller sizes.
The macro-language allows the generation of specific blocks at the beginning and at the
end of these divided files. The minimum value that can be used is 1000. If the value is set
to 0 no splitting of the output file will be performed.
Max number of lines (blocks) in the file (0/>100): Maximum number of blocks allowed
for a G-code file (normally a machine’s control limitation). If the number of blocks in the
output file are larger than the set value the program will automatically split the file into two
or more files with a smaller number of blocks. The macro-language allows the generation
of specific blocks at the beginning and at the end of these divided files. The minimum
value that can be used is 100. If the value is set to 0 no splitting of the output file will be
performed.
Max spindle speed (>1): Maximum spindle speed supported by the machine tool. The
program will not generate spindle speed functions for revolutions greater than this number.
This value cannot be 0.
Min spindle speed (>1): Minimum spindle speed allowed by the machine tool. The
program will not generate spindle speed functions for revolutions lower than this number.
This value must be bigger than 0.
Max feedrate (>1): Maximum feedrate supported by the machine tool. The program will
not generate feedrate functions for feedrates greater than this number. This value cannot
be 0.
Min feedrate (>1): Minimum feedrate allowed by the machine tool. The program will not
generate feedrate functions for feedrates less than this number.
Rapid feed on X axis (>100); This value is used to calculate the time spent in rapid
movement.
Rapid acceleration: This value is used to calculate the time for rapid acceleration.
Machining acceleration: This value is used to calculate the time for machining
acceleration.
Start spindle time: This value is used to calculate the total time to start the spindle.
Stop spindle time: This value is used to calculate the total time to stop the spindle
Tool change time: This value is used to calculate the total time to tool change.
Rotary table time: This value is used to calculate the total time to index the rotary table.
X axis travel: Maximum machine X axis travel. The post processor will check for
movement outside the limit.
Y axis travel: Maximum machine Y axis travel. The post processor will check for
movement outside the limit.
Z axis travel: Maximum machine Z axis travel. The post processor will check for
movement outside the limit.
Note: The program verifies that the parameters you have entered are within the allowed
ranges (shown in brackets) before exiting from the option. If a value is outside of the
defined limits then it will not be possible to exit from the function without entering the
correct value.
This menu option defines all machining planes, functions and formatting rules.
It is necessary to describe the general rules for machine block generation before detailing
the definition of machining planes and their associated functions.
The program assumes that all of the machine’s available functions have been defined for
each working (machining) plane. The machine’s working planes use the normal references
for machine axes. For example XYZ (G17) XZY (G18) and ZYX (G19). The machine
functions are all keywords interpreted by the control unit to execute an operation or a
command.
The first rule is that the programmer must assume that the machine functions are stored in
a one dimensional array. In this way each function is associated to a given position in the
array. This position in will be referred to in the program messages and in this guide as a
CHANNEL.
The same function can be defined several times so that it can be generated more than
once in the same block. This is typical for G and M functions.
The function keyword can be composed of 1 or more characters. The maximum is 8
characters. It is also possible that no character is associated to a channel in order to
generate an information statement without a keyword.
A function can be associated to any channel with the exception for the channels 1-2-5-6-7-
8-9-10-11-12-13 that have already been pre-defined for the following reserved functions:
1 - for block numbering (typically N..).
2 - for preparatory function - linear/circular interpolation (typically G).
5 - for the axis associated with the X axis of VISI-CAM (typically X.. on
the XYZ plane but Y or Z on others planes).
6 - for the axis associated with the Y axis of VISI-CAM (typically Y.. on
the XYZ plane but X or Z on others planes).
7- for the axis associated with the Z axis of VISI-CAM (typically Z.. on the XYZ plane
but Y or X on others planes).
8 - for the axis associated with the I axis of VISI-CAM (typically I.. on the
XYZ plane but J or K on others planes).
9 - for the axis associated with the J axis of VISI-CAM (typically J.. on
the XYZ plane but I or K on others planes).
10 - for the axis associated with the K axis of VISI-CAM (typically K.. on
the XYZ plane but I or J on others planes).
11 - for the axis associated with the U axis of VISI-CAM (typically U.. on
the XYZ plane).
12 - for the axis associated with the V axis of VISI-CAM (typically V.. on
the XYZ plane).
13 - for the axis associated with the W axis of VISI-CAM (typically W.. on
the XYZ plane)
These pre-defined channels are indicated by a pre-defined comment in the input window.
Also the two first channels are pre-defined. The post processor assumes that if a block
contains only the first two functions it will not be generated (is a typical case of Nxxx G00).
We suggest that the other functions are defined in the order that they are normally
required in the machine blocks. In this way it will be easier to understand.
Having defined these functions (alphanumeric data), it is necessary to the set the format of
the numeric data coming from the processor. This format information consists of a series
of flags and associated numbers to indicate the number of integers, decimals, type of
separator, trailing and leading zeros etc.
Selecting this option, the program will display a dialogue box with 6 data lines that are the
planes
Plane 0:
Plane 1:
Plane 2:
Plane 3:
Plane 4:
Plane 5;
The functions must be entered starting from the first plane (Plane 0). Select Plane 0 and
confirm to enter the function.
If there is no data in the space after the name of the plane it means that no main functions
have been defined for this plane. The main functions are those assigned to the pre-
defined channels 5-6-7-8-9-10. If these functions are already defined, then the plane
format will be shown as below:
Plane 0: X Y Z I J K
Plane 1:
This information is useful because it indicates that the plane contains data and it is
possible to see the axes connected to that plane.
When a plane with no defined or pre-defined functions has been selected, the program
asks if you wish to copy the data of another plane. This possibility is particularly useful in
allowing all the functions of another plane to be copied and those which require modifying
to be changed, for example the machine axes functions associated with the VISI-CAM
(channels 5-6-7-8-9-10). The program requests which plane to be copied with the
following question:
Copy an existing plane?
Enter the number of the plane to be copied. It is possible to enter the function windows,
where no data has been assigned (empty plane), by selecting the EXIT button. A plane is
considered to be empty when the channels 5-6-7 do not contain any functions.
Once inside the machine function window it is possible to define or modify function names
and the format of their numeric data. This window contains the list of all functions, the
position or channel for their association and up to a 50 characters description. The
description is relative to the position as it is for all planes. For the pre-assigned channels
a pre-defined description is given but this can be modified.
After selecting a channel and confirming, a new window is displayed in which it is possible
to input or modify the existing data. The following is a list of the parameters and their
descriptions:
Require at least one integer figure: Indicates that in the case of a number with no
integer, a 0 must be inserted before the separator.
Example: value .55 --> 0.55
Invert sign of the value: Positive values become negative and vice-versa.
Example -15 -->> 15
Require + sign character: The + character must be generated. Example 35 -->> +35
Require all integer figures: The number must be formatted with all the requested integer
figures.
Example 25.8 -->> 0025.8
Require decimal separator: The separator must be generated.
Example 23 -->> 23.
Require all decimal figures: The number must be formatted with all the requested
decimal figures.
Example 25.8 -->> 25.800
Incremental value: The value must be transformed into an incremental value.
Function require (when no value): The program must output only the function with no
number when the value is null or equal to the previous value.
The next 3 parameters define the maximum number of integers and decimal figures and
the type of separator
No of integer figures: ......
Type of separator: It can be . or ,
No of decimal figures: .....
For the parameters shown with a tick it is sufficient to click on them to activate the
condition.
These parameters must be set for all the channels.
MACROLANGUAGE
An editor is activated where it is possible to enter in text mode a macro-language that
specifies the output sequence and position of each pre-defined function with its associated
numerical values read from the CLF. The macro-language makes use of base commands
and variables returned from the program. By combining them together as shown in the
pre-defined sections listed below it is possible to define the sequence of the functions that
will generate the blocks. These pre-defined sections are like subroutines that the post-
processor will call when a processor operation is read from the CLF.
With this macro-language it is possible to configure the machining block for different
machine tools for each of these sections and in consequence for each basic processor
operation.
Follows the list of pre-defined SECTIONS and their description. The sections specific for
turning operations are indicated with (turn)
VARIOUS
NMAX maximum number blocks.
TYPM type of operation.
AXES workplane variable XY Z-=0 YZ X-=1 XZ Y-=2
XY Z+=3 YZ X+=4 XZ Y+=5
ORIG workpiece origin.
GENERAL COORDINATES
N variable for block number.
X X co-ordinate.
Y Y co-ordinate.
Z Z co-ordinate.
XOLD previous X co-ordinate value.
YOLD previous Y co-ordinate value.
ZOLD previous Z co-ordinate value.
TOOLS
T tool number.
S spindle speed.
F feed rate.
M M function for spindle start up.
TLEN tool length.
D tool diameter.
R tool radius.
CH tool safety distance.
CLNT coolant type of coolant.
CORRD diameter corrector number.
TCM indicator of tool change 0=manual / 1=automatic.
CORRL length corrector number.
TLTY tool type.
List of OPERATIONS.
= assign.
+ add.
- subtract.
* times.
/ division.
SQR(n) square root.
INT(n) integer part of a number.
SGN(n) sign of a value (-1 if negative 0 if 0 1 if positive).
ABS(n) absolute value.
CONSTANTS
NODEF is a constant that indicates no value for a variable (internally is the value
999999). For example tool change position has not been set it is possible to test
(Z=NODEF).
The following INSTRUCTIONS are specific statements to indicate the FUNCTIONS output
for block generation.
@ nnVAR or @nn(mm)
Combines numerical values with an output symbol which is associated by a specific
channel.
#nn
Forces the output in the next block @nn(mm) or @nnVAR for the function and the
value combined by a specific channel(nn). This is the case of non modal functions that
must be outputted also if they are the same as the previous.
#nn=VAR or #nn=mm
Forces the value combined with channel nn to the value mm or a specified variable
value. This is a case where you know that there is a function that will be generated
because it has a different value with respect to the previous one but you do not want to
output it.
VAR=#nn
Assignment of a variable to the last numeric value used by the
channel nn (old value of nn).
VAR generic variable to which the old value of the channel nn will
be assigned.
= assignment.
#nn old value for the nn code nn.
“xxxx”
Generation of a string by a fixed set of characters.
‘ comment
the ‘ character identifies the start of a comment.
To understand the above instructions and how the block is generated the following rule
must be considered:
Imagine to have two dimensional arrays (1 dimension ) associated to the function array
previously described. On the first are stored all the old values of the functions and on the
second the new values.
The output is performed only on those position where the two values are different. The
character @ point on the new data while the character # point on the old data. Assigning
values to the new and to the old data will cause a block generation.
The instruction #nn for example causes the old value to be changed and for this reason
the function is output again with the same value. When a function is generated the new
value goes automatically on the old value.
NOTE: If a block that has to be generated contain only the two first functions (channel 1
and channel 2 that are pre-defined) the block will not be generated.
HELP
Information available on the post-processor.