lunes, 8 de junio de 2015

Estación de ensamblaje con robot RV-3SB, con cámara para control de la calidad.

La estación de ensamblaje con robot es la responsable de armar las diferentes variantes de un conjunto de escritorio cuando el sistema de Manufactura Integrada por Computadora industrial (iCIM3000) trabaja en el modo de demostración.
Figura 1. Ejemplos de la gama de productos a fabricar por el iCIM3000.

Una vez un conjunto de escritorio se ensambla, los palés necesarios, conteniendo los componentes precisos, se solicitan para la colocación en los palés de recepción.

En primer lugar, una placa base se coloca en la posición de montaje, a continuación, el primer instrumento es montado. Después de montar el primer instrumento, el segundo instrumento es montado en la misma forma. Los instrumentos vienen del almacén local. Un porta-bolígrafos de aluminio o bronce, dependiendo de la orden, se ensambla en la placa base. El porta-bolígrafos viene de un palé. Al menos un bolígrafo se inserta en el porta bolígrafos, el bolígrafo se toma del almacén local. El conjunto de escritorio ensamblado se devuelve a su posición de recuperación y se almacena en la estación AS/RS (Sistema de Recuperación/Almacenamiento Automático) para su uso posterior.

La estación posee su propio control, que está montado en el bastidor básico de la misma estación. La unidad de accionamiento del robot suministra el control.

La comunicación de la unidad de accionamiento hacia la PC con el software de gestión de la producción CIROS Production Supervision se da a través de Ethernet.


Si la estación se opera sin el sistema iCIM, en modo "autónomo", es posible realizar capacitaciones sobre robótica industrial.



Posición
Descripción
Posición
Descripción
1
Cámara para control de calidad
7
Panel de operación
2
Almacén local de bolígrafos
8
Robot RV-3SB
3
Almacén local 2
9
Módulo de ensamblaje
4
Almacén local 1
10
Soporte de la pieza para visión
5
Caja RIA
11
Recepción del palé
6
Controlador CR2


 Figura 2. Información general de la estación de ensamblaje con robot.

Realización del control de calidad de las piezas maquinadas por medio de la cámara de la estación de ensamblaje con robot.
En esta ocasión se presenta un trabajo realizado junto con estudiantes de la carrera de Automatización, para la asignatura de Automatización de Procesos Industriales de la cual fui docente en el año 2012.

Descripción del problema.
Debido a que el iCIM3000 adquirido por la Universidad Don Bosco no posee la estación de manipulación y control de calidad, la cual es una opción que se puede agregar a la compra del sistema, pero la estación de ensamblaje con robot sí posee una cámara para el control de calidad (Figura 2), surgió la idea de utilizar el robot de ensamblaje en conjunto con la cámara para realizar el control de calidad de las placas base que sirven para armar los conjuntos de escritorio.

El sistema verificará medidas como:
·         Diámetro de los orificios de la placa base
·         Profundidad de las cajeras (orificios) de la placa base
·         Medida de la longitud de la placa base
·         Medida del largo de la placa base

1. Captura, preprocesamiento y evaluación de la calidad de la placa base.
La cámara del sistema de visión tomará una fotografía de acuerdo a la configuración del software de captura y preprocesamiento de imágenes CheckKon de la empresa Festo, que será luego analizada por el software para control de calidad CheckOpti de la misma empresa.
   
Figura 3. Visualización de la pieza en el software CheckOpti.

Para la configuración del sistema, primero se deben configurar los parámetros con los que será capturada la imagen, para esto se utiliza el programa CheckKon con el cual se configuran los parámetros de la captura de la imagen que será posteriormente analizada.

Los parámetros que se configuran son:
·         Dimensión de la imagen
·         Calidad de color
·         Ganancia
·         Intensidad de color

El tamaño de la imagen se configuró en base al tamaño de la placa base que se analizará.
La calidad de color, para poder diferenciar claramente los orificios que posee la pieza, se dejó en calidad de color real.
La ganancia se dejó en la más baja posible para evitar que los cambios en la intensidad de luz ambiente, en que se toma la imagen, puedan afectar a la medición.

Una vez configurada la cámara se procede a configurar el programa que realizará las mediciones de la pieza CheckOpti.

Primero se obtiene una imagen muestra que servirá como comparación. Se procede a medir los parámetros de esta imagen con las herramientas del programa.
Figura 4. Definición de los parámetros para captura de imagen.

Una vez Parametrizada la imagen y obtenidas las medidas deseadas se procede a crear unos Teach-Data con estos parámetros. Los Teach-Data (datos de entrenamiento) es una base de datos que se llena con los parámetros de la pieza buena con los cuales se compararán las nuevas piezas a evaluar capturadas por la cámara.
Figura 5. Resultado de los Teach Data.

Durante la ejecución del programa, con los Teach-Data configurados, el programa puede evaluar la fotografía de la pieza que se está capturando. El programa compara medida por medida de la pieza a evaluar con los de la pieza de muestra y así crea una hoja de reporte donde evalúa si la pieza está buena o posee defectos.

Figura 6. Evaluación de la pieza utilizando los Teach Data

En esta hoja reporte, el programa muestra los parámetros que están buenos como en los que hay variaciones con la pieza de muestra. En esta hoja también se configuran los porcentajes de tolerancia y error que serán admitidos en la medición (para fines prácticos se configuraron al 10% de tolerancia).

Una vez configurados los Teach-Data, así como todos los parámetros de medición, se crea un programa que será cargado en la cámara. Hecho esto, la cámara puede trabajar independientemente de la computadora con el software CheckOpti.

2. Programación del robot RV-3SB
Además se debe crear un programa en el robot RV-3SB para que realice el posicionado de la placa base sobre la mesa, de manera de poder inspeccionar la pieza. Para realizar este programa se ha tomado de base el programa MBP.MB4 (MoveBasePlate o Mover Placa Base) que trae el robot RV-3SB y se han creado las posiciones necesarias para que el programa trabaje adecuadamente al mover la placa base.

El programa original MBP tiene las siguientes posiciones:
Posiciones/Tareas del programa “MBP” mover placa base (Move Base Plate) del robot RV3SB.
Este programa sirve, por ejemplo, para cargar una placa base en la posición de ensamble.

Posiciones del robot para el programa “MBP”
1
PINIT
2
PBP(5)
3
PBP (1)
4
PBP (2)
5
PBP (3)
6
PBP (4)
Figura 7. Posiciones del programa “MBP”.

El programa llamado “CALIDAD.MB4” y las posiciones utilizados para el proyecto se encuentran en el Anexo 1 al final de esta entrada al blog.


3. Gestión de la producción por medio del software Ciros Production – Supervision ProjectStudio

El método de comunicación de la cámara con la computadora que está realizando la supervisión de la calidad del proceso es vía Ethernet. Cuando se realiza una llamada a la cámara mediante un plan de procesos (un plan de procesos es una unidad de programa básica en el software Ciros Production), la cámara con el programa cargado toma una fotografía y ejecuta el programa guardado en ella, modifica una variable del sistema a la que hemos llamado SUM, la cual es una variable tipo binario que le indica a la computadora si la pieza evaluada está buena o mala.

Figura 8. Software CIROS Production – Supervision ProjectStudio

El archivo mostrado en la Figura 8 es el “iCIM.LPJ” que viene como demostración del sistema iCIM3000 de la empresa Festo Didactic, y a partir de él se modifica para añadir las nuevas funcionalidades para el control de calidad de las placas bases por medio de la cámara.

En la ventana de la izquierda de la Figura 8, se activa la pestaña Project Item, dentro del árbol que aparece se abre la carpeta User y allí se busca el plan de procesos llamado Prod_User3 que es en el que se creará la programación para que todo el proceso de control de calidad de la placa base se pueda ejecutar con solo presionar un botón.

3.1. Descripción del proceso de control de calidad de la placa base

Una vez que se activado el modo de producción en el software CIROS Production – Supervision ProjectStudio y se tiene una pieza maquinada guardada en el almacén (Estación AS/RS) con el número 42140, se puede iniciar la ejecución del proceso de control de calidad al presionar el botón User3 en la ventana de supervisión del programa.

Figura 9. Pantalla de supervisión de los procesos del iCIM3000. 
  1. El almacén deposita la placa base junto al palé en el transportador más cercano que se encuentra en la banda transportadora
  2. La palé conteniendo la placa base se envía hacia el robot ensamblador
  3. El robot toma el palé que contiene la pieza y lo coloca en el mini almacén (búfer) que posee el robot.
  4. El transportador es liberado
  5. El robot toma la placa base para colocarla en la posición ya establecida
  6. La cámara a través de los parámetros determinados, realizará la comparación con la pieza que se ha señalado como correcta.
    • Si la pieza evaluada resulta correcta entonces se le coloca el número 60140.
    • Si resulta ser incorrecta se le coloca el número 92140
  7. Luego la pieza es tomada de nuevo para colocarla en el palé
  8. Se espera un transporte, se coloca el palé en el transporte que está en la banda transportadora
  9. La placa base se lleva de nuevo al almacén
  10. El almacén guarda el conjunto palé y placa base con el nuevo número de pieza en la base de datos del contenido del almacén, dependiendo si fue correcta (Figura 10) o incorrecta (Figura 11)

 El plan de procesos “Prod_User3” generado para el proyecto se encuentra en el Anexo 2, al final de esta entrada al blog.
Figura 10. Ítemes del almacén, pieza 60140 (pieza Correcta).

Figura 11. Ítemes del almacén, pieza 92140 (pieza Incorrecta).

Conclusiones:
El control de calidad es una parte muy importante en los diferentes procesos industriales, éste incluye todos los mecanismos, acciones, herramientas que realizamos para detectar la presencia de errores.
Este proyecto se realizó con la finalidad de llevar un control de las piezas en buen estado o en mal estado que se tengan después de ser mecanizadas por el centro de maquinado CNC (Control Numérico por Computadora).
Se observó que utilizando herramientas HMI (Interfaces Humano-Máquina) se puede llevar el orden de los parámetros de una pieza ya elaborada, de la misma manera se puede comparar con patrones ya establecidos y tolerancias predeterminadas y así definir si cumple con la calidad requerida o no.
Durante la elaboración del proyecto se observó que es muy importante tener un control completo sobre el ambiente lumínico de la estación de control de calidad a manera que los cambios de luz no nos afecten en la comparación de cada pieza.

Los estudiantes desarrollaron sus competencias para:
  1. Configurar la cámara y programarle algoritmos de medición y comparación de patrones,
  2. Comunicar la cámara con el software de gestión de la producción,
  3. Programar el robot y colocar las posiciones necesarias para el movimiento de la placa base en la estación de ensamble y
  4. Realizar la gestión de todo el proceso de control de calidad de la placa base
En resumen, solucionar problemas de control de la calidad en sistemas de manufactura integrados por computadora.

Los estudiantes trabajaron en este proyecto son:
Francisco D. Torres
Francisco A. Pinto
Mario O. Morales
Jorge A. Cáceres
Erick A. Hernández
Carlos A. Zarco
Luis A. León
Rolando J. García

Anexo 1. Código y posiciones del programa “CALIDAD”
1000 '|------------------------------------------------------------------------------------------------------------------|
1010 '| Assembly ICIM |
1020 '| MoveBasePlate(Source, Target) |
1030 '| |
1040 '| Parameter: MSource/MTarget = 1 --> Retrieve from / Store to : Pallet position 1 |
1050 '| Parameter: MSource/MTarget = 2 --> Retrieve from / Store to : Pallet position 2 |
1060 '| Parameter: MSource/MTarget = 3 --> Retrieve from / Store to : Pallet position 3 |
1070 '| Parameter: MSource/MTarget = 4 --> Retrieve from / Store to : Pallet position 4 |
1080 '| Parameter: MSource/MTarget = 5 --> Retrieve from / Store to : assemble position |
1090 '|------------------------------------------------------------------------------------------------------------------|
1100 '| Author : Christian Heinisch Fa.Festo Didactic 22.09.04 Robot type RV-2AJ |
1110 '| b |
1120 '| folgende Positionen m􀳦ssen geteacht werden / these positions must be teached |
1130 '|------------------------------------------------------------------------------------------------------------------|
1140 '| PBP(1) pallet place 1 / Palettenposition 1 |
1150 '|------------------------------------------------------------------------------------------------------------------|
1160 '| PBP(2) pallet place 2 / Palettenposition 2 |
1170 '|------------------------------------------------------------------------------------------------------------------|
1180 '| PBP(3) pallet place 3 / Palettenposition 3
|
1190 '|------------------------------------------------------------------------------------------------------------------|
1200 '| PBP(4) pallet place 4 / Palettenposition 4 |
1210 '|------------------------------------------------------------------------------------------------------------------|
1220 '| PBP(5) assemble position / Montageplatz |
1230 '|------------------------------------------------------------------------------------------------------------------|
1240 '|------------------------------------------------------------------------------------------------------------------
1250 '| Init
1260 '|------------------------------------------------------------------------------------------------------------------
1270 'Define inputs
1280 DEF IO ASTART = BIT,1 'start control panel
1290 DEF IO ASTOP = BIT,2 'stop control panel
1300 DEF IO KSWITCH = BIT,3 'Auto/Man.
1310 DEF IO RRESET = BIT,4 'reset control panel
1320 DEF IO P1AV = BIT,5 'pallet 1 available
1330 DEF IO P2AV = BIT,6 'pallet 2 available
1340 DEF IO P3AV = BIT,7 'pallet 3 available
1350 DEF IO P4AV = BIT,8 'pallet 4 available
1360 DEF IO FCYL1 = BIT,9 'part clamped mit cylinder 1
1370 DEF IO FCYL2 = BIT,10 'part clamped mit cylinder 2
1380 DEF IO FWORKP = BIT,11 'base plate available in assembling place
1570 DEF POS PHELP2
1580 DEF POS PINIT
1590 DEF POS PCLAMP
1600 DEF POS AUXPOS
1601 DEF POS PESP1
1602 DEF POS PESP2
1610 DIM PBP(6)
1620 PCLAMP = (+1.00,+1.00,+0.00,+0.00,+0.00,+0.00)
1630 PLACE1% = 170
1640 PICK1% = 170
1650 ACCEL 10 , 10 'define acceleration
1660 JOVRD 50 'define joint override
1670 SPD 200 'define interpolation speed
1680 MSOURCE%=M_00# 'write the submit parameter 1 into the Variable MSource
1690 MTARGET%=M_01# 'write the submit parameter 2 into the Variable MTarget
1700 M_00# = 0 'clear submit parameter 1
1710 M_01# = 0 'clear submit parameter 2
1720 M_02# = 0 'clear submit parameter 3
1730 M_19# = 0 'clear handshake variable
1740 '------------------------------------------------------------------------------
1750 ' Test source position
1760 '------------------------------------------------------------------------------
1770 *TESTS
1780 IF (MSOURCE% < 1 OR MSOURCE% > 6) THEN 'check if the Paramter Msource is in the right range
1790 M_00# = 30 'write to return parameter 30 for "source does not exist"
1800 GOTO *ENDE 'jump to label *ENDE
1810 ENDIF
1820 SELECT MSOURCE% 'check if the Source Position is occupied
1830 CASE 1
1840 IF P1AV = 0 THEN
1850 M_00# = 1
1860 GOTO *ENDE
1870 ENDIF
1880 BREAK
1890 CASE 2
1900 IF P2AV = 0 THEN
1910 M_00# = 1
1920 GOTO *ENDE
1930 ENDIF
1940 BREAK
1950 CASE 3
1960 IF P3AV = 0 THEN
1970 M_00# = 1
1980 GOTO *ENDE
1990 ENDIF
2000 BREAK
2010 CASE 4
2020 IF P4AV = 0 THEN
2030 M_00# = 1
2040 GOTO *ENDE
2050 ENDIF
2060 BREAK
2070 CASE 5
2080 IF FWORKP = 0 THEN
2090 M_00# = 1
2100 GOTO *ENDE
2110 ENDIF
2120 CLMPWP = 0
2130 UCLMPWP = 1
2140 DLY 0.5
2150 UCLMPWP=0
2160 BREAK
2170 END SELECT
2180 '------------------------------------------------------------------------------
2190 ' Test target position
2200 '------------------------------------------------------------------------------
2210 *TESTT
2220 IF (MTARGET% < 1 OR MTARGET% > 6) THEN 'check if the Paramter MTARGET is in the right range
2230 M_00# = 40 'write to return parameter 40 for "target does not exist"
2240 GOTO *ENDE 'jump to label *ENDE
2250 ENDIF
2260 SELECT MTARGET% 'check if the Target Position is occupied
2270 CASE 1
2280 IF P1AV = 0 THEN
2290 M_00# = 3
2300 GOTO *ENDE
2310 ENDIF
2320 BREAK
2330 CASE 2
2340 IF P2AV = 0 THEN
2350 M_00# = 3
2360 GOTO *ENDE
2370 ENDIF
2380 BREAK
2390 CASE 3
2400 IF P3AV = 0 THEN
2410 M_00# = 3
2420 GOTO *ENDE
2430 ENDIF
2440 BREAK
2450 CASE 4
2460 IF P4AV = 0 THEN
2470 M_00# = 3
2480 GOTO *ENDE
2490 ENDIF
2500 BREAK
2510 CASE 5
2520 IF FWORKP = 1 THEN
2530 M_00# = 4
2540 GOTO *ENDE
2550 ENDIF
2560 UCLMPWP = 1
2570 DLY 0.5
2580 UCLMPWP = 0
2590 BREAK
2600 END SELECT
2610 '------------------------------------------------------------------------------
2620 ' Pick workpiece at source position
2630 '------------------------------------------------------------------------------
2640 *PICK
2650 COLLVL 50,120,120,100,120,100,100,100
2660 ' COLCHK ON
2670 CNT 1
2680 HOPEN 1 'open hand
2690 WAIT GROPEN = 1 'wait till hand is opened
2700 MOV PINIT
2701 IF MSOURCE% = 6 THEN
2702 MVS PESP1
2703 MVS PESP2
2704 ENDIF
2705 IF MSOURCE% < 6 THEN
2710 MOV PBP(MSOURCE%),-PICK1% 'move to a position which is Pick1 mm above the Source position
2711 ENDIF
2720 MOV PBP(MSOURCE%) 'move straight to source position
2730 DLY 0.5 'delay 0.5 s
2740 HCLOSE 1 'close hand
2750 WAIT GRCLOSE = 1 'wait till hand closed
2760 DLY 0.5
2761 IF MSOURCE% < 6 THEN 'delay 0.5 s
2770 MVS PBP(MSOURCE%),-PICK1%
2771 ENDIF 'move to a position which is Pick1 mm above the Source position
2780 IF MSOURCE% = 5 THEN MOV PINIT
2790 '------------------------------------------------------------------------------
2800 ' Place workpiece at target position
2810 '------------------------------------------------------------------------------
2820 *PLACE
2830 AUXPOS = PBP(MTARGET%)
2831 IF MSOURCE% = 6 THEN
2832 MOV PESP2
2833 MVS PESP1
2834 ENDIF
2835 IF MTARGET% = 6 THEN
2836 MVS PESP1
2837 MVS PESP2
2838 ENDIF
2840 IF MTARGET% = 5 THEN
2850 MOV PINIT 'If target position is the assembly position move to init position
2860 AUXPOS = PBP(MTARGET%)+PCLAMP
2870 ENDIF
2871 IF MTARGET% < 6 THEN
2880 MOV AUXPOS,-PLACE1% 'move to a position which is Place1 mm above the target position
2890 ' COLCHK OFF
2891 ENDIF
2900 MOV AUXPOS 'move straight to target position
2910 DLY 0.5 'delay 0.5 s
2920 HOPEN 1 'open hand
2930 WAIT GROPEN = 1 'wait till hand opened
2940 DLY 0.5
2941 IF MTARGET% = 6 THEN
2942 MOV PESP2
2943 ENDIF
2944 IF MTARGET% < 6 THEN 'delay 0.5 s
2950 MVS AUXPOS,-PLACE1% 'move straight to a position which is Place1 mm above the target p
2960 ' COLCHK ON
2961 ENDIF
2970 IF MTARGET% = 5 THEN 'if target is the assembleplace then clamp base plate
2980 UCLMPWP = 0
2990 CLMPWP = 1
3000 DLY 1
3010 CLMPWP=0
3020 IF FWORKP = 0 OR FCYL1 = 0 OR FCYL2 = 0 THEN
3030 M_00# = 4
3040 CLMPWP = 0
3050 UCLMPWP = 1
3060 DLY 0.5
3070 UCLMPWP=0
3080 MOV PINIT
3090 GOTO *ENDE
3100 ENDIF
3110 ENDIF
3120 MOV PINIT
3130 CNT 0
3140 *ENDE
3150 ' COLCHK OFF
3160 END
1390 DEF IO FED1AV = BIT,12 'part in feeder 1 available
1400 DEF IO FED2AV = BIT,13 'part in feeder 2 available
1410 DEF IO PENAV = BIT,14 'pen available
1420 DEF IO GROPEN = BIT,900 'gripper opened
1430 DEF IO GRCLOSE = BIT,901 'gripper closed
1440 'Define outputs
1450 DEF IO HSTART = BIT,0 'lamp start control panel
1460 DEF IO HRESET = BIT,1 'lamp reset control panel
1470 DEF IO LEDQ1 = BIT,2 'lamp Q1 control panel
1480 DEF IO LEDQ2 = BIT,3 'lamp Q2 control panel
1490 DEF IO CLMPWP = BIT,5 'clamp base plate
1500 DEF IO UCLMPWP = BIT,4 'unclamp base plate
1510 'Definitionen/definitions
1520 DEF INTE PICK1
1530 DEF INTE PLACE1
1540 DEF INTE MSOURCE
1550 DEF INTE MTARGET
1560 DEF POS PHELP1

Figura 12. Posiciones del programa “CALIDAD.POS” establecidas para los movimientos del robot.



Anexo 2. Plan de procesos Prod_User3
; ------------------------------
; Process plan automatically generated from Default template.
;
; Date: 06.10.2012
; Time: 12:07:00
; ------------------------------
;
; --------------------
; BEGIN of automatically generated process plan.
; --------------------
;
; ----------
; BEGIN of user defined process plan part.
; ----------
;
; +++++ Transport: Get new carrier. +++++
10 Transport REQUIRE("Stopper_001", 1)
20 .CALC %CarrierID = 1
; +++++ Station StockSingle: Move pallet from station buffer to conveyor. +++++
30 StockSingle MovToTrans(42140, 0)
40 Transport SetProductId(42140, %CarrierID)
; +++++ Transport: Move carrier to processing station. +++++
50 Transport to_Stopper_003(1)
; +++++ Station AssemblyRV3SB: Move pallet from conveyor to station buffer. +++++ AssemblyRV3SBVisionData GetData("RES",2)
60 AssemblyRV3SB MovFromTrans(42140, 0)
70 Transport SetProductId("", %CarrierID)
; +++++ Transport: Release carrier. +++++
80 Transport RELEASE(1)
81 .CALC %CarrierID = 0
82 AssemblyRV3SBRobot ExecProg("CALIDAD",1,6,0)
83 AssemblyRV3SBVisionData %retval= GetData("RES",2)
84 .DISPLAY %retval
; BEGIN of IfThenElse structure.
; ********************
;
; ***** Evaluate expression. *****
IF1 .CALC %retval=="000000: 1.000"
; ***** Jump according to result. *****
92 1 .NOOP
.NOOP ELSE1
; ***** Go on here if expression TRUE. *****
THEN1 .NOOP
;
; **********
; BEGIN of TRUE user defined structure part.
; **********
;
; +++++ Transport: Move carrier to processing station. +++++
93 AssemblyRV3SBRobot ExecProg("CALIDAD",6,1,0)
94 .CALC %RESP= "60140"
;
; **********
; END of TRUE user defined structure part.
; **********
;
ENDTHEN1 .NOOP ENDIF1
; ***** Go on here if expression FALSE. *****
ELSE1 .NOOP
;
; **********
; BEGIN of FALSE user defined structure part.
; **********
;
; +++++ Transport: Move carrier to processing station. +++++
97 AssemblyRV3SBRobot ExecProg("CALIDAD",6,1,0)
98 .CALC %RESP= "92140"
;
; **********
; END of FALSE user defined structure part.
; **********
;
ENDELSE1 .NOOP
; ***** Continue with normal execution. *****
ENDIF1 .NOOP
;
; ********************
; END of IfThenElse structure.
; ********************
; +++++ Transport: Get new carrier. +++++
100 Transport REQUIRE("Stopper_003", 1)
110 .CALC %CarrierID = 1
; +++++ Station AssemblyRV3SB: Move pallet from station buffer to conveyor. +++++
120 AssemblyRV3SB MovToTrans(42140, 0)
130 Transport SetProductId(%RESP, %CarrierID)
; +++++ Transport: Move carrier to processing station. +++++
140 Transport to_Stopper_001(1)
; +++++ Station StockSingle: Move pallet from conveyor to station buffer. +++++
150 StockSingle MovFromTrans(%RESP, 0)
160 Transport SetProductId("", %CarrierID)
;
; ----------
; END of user defined process plan part.
; ----------
170 .NOOP END
; --------------------
; END of automatically generated process plan.
; -------------------- 

No hay comentarios:

Publicar un comentario