-
Notifications
You must be signed in to change notification settings - Fork 0
Setup Instructions
For a given process, it should be split into stations and then groups of motions. For an indexing rotary machine with distinct stations, e.g. Camco https://www.destaco.com/rotary-positioning/mechanical-indexers/mechanical-rotary-indexers-rd.html each position would have its own station from 1-6
- Read FC_Setup.TcPOU and alter the TRUE/FALSE as as required
- Decide on how many stations exist (1 to 6) a. write station names e.g. "Load" "Robot" "Test" "Press" "Camera", etc and enter them into "StationNames" text list
b. enable logic for each stations (WIP) 2. a. For each station, and for each MotionRow, enter the inputs and outputs required, and/or enter complex logic for an external device, e.g. servo drive, camera, etc
The IO is pre-mapped for a basic cylinder and only requires mapping to the I/o module
b. Enter the interlocks and prompt, if required
c. Enter the text for the MotionRows in the MotionRowText TextList
The texts are split for 20 rows per motion line starting from 10000
- 10000 for station 1
- 20000 for station 2
- 30000 for station 3
- 40000 for station 4
- 50000 for station 5
- 60000 for station 6
If it not known where the text exists for a given row, the project and be run on the XAE and the displayed number checked in the MotionRowText listing
- a. Enter the alarm text for each Motion called in the station(s)
Each Alarm group for a MotionRow is grouped into slots of 10. 5 are reserved for the motion block and the remaining 5 are free to use
-
Enter logic for power on, enable contactors, etc in the Mc (machine) section also referred to as station 0
-
Commissioning motion
At this point, it should be possible to actuate each motion in turn, depending if the above steps were skipped or not, therefor it is possible to check the process and message of each motionrow in isolation of other motions (functions of groups) on the machine in question
- Automatic cycle logic
It is possible to get to this point in the machine's build/commissioning project without requiring any automatic sequencing logic, thus time can be saved and the process confirmed before time is committed to writing automatic logic. In the past, some people have attached SFC logic to call each step, but this is not required
To connect MotionRows together in automatic mode. Connect the .qAdvanced or .qReturned to the input of the next motion block, as required in the sequence
This has the effect of automaticly linking the functions, for example; "The Gantry has loaded the machine AND in auto cycling mode, Clamp the part"
The automatic function will only occur when the station is in "AutoCycling" mode. If the station is continued by an operator in manual mode, the above logic will **continue ** from the correct programmed state, and so, no SFC is needed
For power services, e.g. pneumatic, hydraulic, electrical enabling should be entered into the base station (Mc_xxxxxx) as the services could be common for the global machine
For each station, the group of motions should be split up into each motion row, for each device, e.g. cylinder
Each station contains up to 99 rows grouped up in screens of 6 rows
Below is a screen shot of what is possible in the framework. Displayed is Station 1, Row 1,2,3,4,5,6.
The button numbers on the left hand side are not the row number, but rather the order of button presses to achieve a cycle. Ideally, the motions should count down on the left hand side, and up on the right hand side. This is to allow a finger to press on the first button and the operators hand to press every button without releasing his grip.
Each row corresponds to a FC call that is pre programmed, there is no need to alter the base logic to get each row to appear
Each row call is as a prg
The HMI row is called from the FB_HMI_Control
for the input limit switches for a basic, conventional cylinder the switches are fed into the template on the below rungs
The coil for the cylinder, for a double action cylinder are written on the below rungs
The declarations for each motion in a basic format are pre-programmed for each row 1-99
these can be mapped into the desired input / output module, eg. the EL1018 and EL2008 modules.
Each station has 1000 messages of each type of Alarm, Warning and Prompt.
Each motion block is pre-programmed with the correct offset for each motion v.s. position in the row of 1000
For Station 1, Row 1, this uses alarm messages 0-4 and prompt messages 0-1
For Station 1, Row 2, this uses alarm messages 10-14 and prompt messages 10-11, and so on the defined offset of 10
Using this mask, each alarm message text can be entered freely into the base messages, which are all defined.
Each message exists for every row, so it is possible to not enter any message text and see the default message texts on the message view
Station 1, Row 1 and Row 2 will appear in the above messages and can be edited freely.
Many machines exist with fault messages that could be described as "beyond unacceptable". From the Venture 'Problem Light' to equality lazy and unimaginative fault messages as follows....
Don't Do This
- Fault
- Cylinder Fault
- Clamp Fault
- Clamps
A fault message must convey the following;
${\color{red}What\space is\space at\space fault}$ ${\color{yellow}What\space the\space reference\space in\space the\space supplied\space schematics}$ ${\color{orange}What\space the\space fault\space is\space}$
Therefore a worthwhile message would contain the following
It should not be a priority for a programmer to drive for endless hours and perhaps halfway across the planet to point out to the customer on his site; "what we really meant was" and should be considered a personal failure for a programmer
Each motion row's interlocks can be entered in the below rungs for advance and return. The interlocks will drive the indicator on the motion row and inhibit the motion if the button is pressed. The interlocks are generally for any motion in any state that would cause machine damage if it were to be pressed.
Each motion row's prompt, which could be the same as the interlock, but in practice is more subtle. The prompt is 'what is the next stage of the process' which is not the same as the allowed motion conditions to not cause machine / part damage
If a motion has a complex feedback, e.g. position feedback, force feedback, text feedback ,etc then this can be fed into the block to display on the motion row. use the xxx_to_string function in the motion row prg to enter this text
Each motion is designed to occur in a set order. The order integer below is used to convey to the operator what order to press the buttons