# CFG



# General

<table border="1" id="bkmrk-topic-parameters-tha" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 33.2335%;"></col><col style="width: 33.2335%;"></col><col style="width: 33.2335%;"></col></colgroup><tbody><tr><td>**Topic**</td><td>**Parameters that affect**</td><td>**File name**</td></tr><tr><td>Controller</td><td>Event routines, etc.</td><td>SYS.CFG</td></tr><tr><td>Communication</td><td>Serial channels</td><td>SIO.CFG</td></tr><tr><td>IO Signals</td><td>I/O boards and signals</td><td>EIO.CFG</td></tr><tr><td>Manipulator</td><td>The robot and external axes</td><td>MOC.CFG

</td></tr><tr><td>Teach Pendant</td><td>Displaying data and access  
on the teach pendant</td><td>MMC.CFG</td></tr><tr><td>Arc Welding</td><td>Arc welding</td><td>PROC.CFG</td></tr></tbody></table>

Estos archivos vienen definidos por defecto en el disquete de System Parameters.

No hay documentación oficial de aquella época que haya encontrado que diga cómo se estructura los archivos de configuración, así pues toda información aquí se ha extraído por comparación entre varios archivos y "lógica" que parece tener. Si bien es cierto, que hay pistas en documentación actual.

En todos estos archivos de configuración son archivos de texto plano y hay una cabecera al inicio del archivo del estilo:

SYS:CFG\_1.0:2:0::

Estos parámetros vienen separados por : y siguiendo este ejemplo tenemos que,

SYS haciendo referencia al nombre del archivo,

CFG\_1.0 haciendo referencia a que pueda haber más de una configuración

Seguido de 2:0:: esto para determinar a qué versión del software pertenece ya que también se ha encontrado archivos con 2:1::

Veáse el apartado de SYS.CFG.  
  
  
Puede contener algo de información útil, pero no es directa, con pinzás.  
[https://manualsnet.com/abb/robotware-add-ins](https://manualsnet.com/abb/robotware-add-ins)  
  
[![Captura de pantalla 2026-01-03 000827.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-000827.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-000827.png)

[![Captura de pantalla 2026-01-03 000851.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-000851.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-000851.png)

[![Captura de pantalla 2026-01-03 000952.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-000952.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-000952.png)

[![Captura de pantalla 2026-01-03 001118.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-001118.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-001118.png)

[![Captura de pantalla 2026-01-03 001005.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-001005.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-001005.png)

[![Captura de pantalla 2026-01-03 001041.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-001041.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-001041.png)

[![Captura de pantalla 2026-01-03 001026.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-001026.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-001026.png)

[![Captura de pantalla 2026-01-03 001303.png](https://wiki.racarla.es/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-03-001303.png)](https://wiki.racarla.es/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-03-001303.png)

# SYS.CFG

Aquí tenemos dos ejemplos de configuración tanto para la vesión 2.0 cómo la versión 2.1, ambos comparten los mismos campos. Explicados en orden de aparición.

<table border="1" id="bkmrk-nombre-funci%C3%93n-%28%2A%29-s" style="border-collapse: collapse; width: 100%; height: 445.526px;"><colgroup><col style="width: 23.9743%;"></col><col style="width: 76.0144%;"></col></colgroup><tbody><tr style="height: 29.7017px;"><td style="height: 29.7017px;">**NOMBRE**</td><td style="height: 29.7017px;">**FUNCIÓN**</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">(\*) SYS\_MISC</td><td style="height: 29.7017px;">??? (\*) Sólo disponible en la vesión 2.1.</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">CAB\_TASKS</td><td style="height: 29.7017px;">Define las **tareas de ejecución** del robot en el controlador:

- Nombre
- Tipo (NORMAL, SEMISTATIC, etc.)
- Programa asociado
- Punto de entrada

Esto controla qué procesos funcionan simultáneamente.

</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;"> </td><td style="height: 29.7017px;">Configuraciones de distancias y tolerancias para la recuperación de posición del robot, usadas en movimientos automáticos y manuales.</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">CAB\_EXEC\_HOOKS</td><td style="height: 29.7017px;">Estos son **“ganchos” o hooks del sistema** que asocian programas o rutinas con eventos internos como:

- POWER\_ON
- START
- RESET

Imagina que es un *trigger* que dice “cuando ocurra X, ejecutar Z”

</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">CAB\_TASK\_MODULES</td><td style="height: 29.7017px;">Este bloque especifica **qué módulos de código se cargan** para cada tarea definida:

- Nombre del archivo (.sys, .mod, .prg)
- Nombre del módulo
- A qué tarea va asociado

Esto es lo que realmente hace que el robot sepa qué código ejecutar para cada parte del sistema.

</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">MASTER\_BOOL</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">AUTH\_INTERACTIVE\_UNITS</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">AUTH\_CLIENTS</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">AUTH\_CLIENT\_PERMISSION</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">WORKDIR</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">MMC\_ATTRIBUTE</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">MMC\_FKEY</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">MMC\_OUTLINE</td><td style="height: 29.7017px;">???</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">MMC\_CHOICE</td><td style="height: 29.7017px;">???</td></tr></tbody></table>

CAB\_EXEC\_HOOKS:

-Routine "RESTORE\_IO" -Shelf "POWER\_ON" -Task "0"

Vamos a desglosar aquí que ocurre, la rutina (función de programación) RESTORE\_IO (en este caso, definida en el archivo base.sys) es lanzada cuando se produce el evento de POWER\_ON.

La tarea 0 no sé si está definida en algún sitio o es una forma de referirse al sistema operativo o una tarea que se ejecuta siempre en por encima de todo, al estilo SO.

```
SYS:CFG_1.0:2:0::
#
#
#
CAB_TASKS:

      -Name "MAIN" -Prog 0 -Task_in_forground "" -Type "NORMAL" -Entry "main"\
      -RewERIfStop 0
#
CAB_REGAIN_DIST:

      -Name "MAN" -Tcp_dist 0.010000 -Tcp_rot 0.200000 -Ext_dist 0.050000\
      -Ext_rot 0.200000

      -Name "AUTO" -Tcp_dist 0.500000 -Tcp_rot 1.570000 -Ext_dist 0.500000\
      -Ext_rot 1.570000
#
CAB_EXEC_HOOKS:

      -Routine "SYS_RESET" -Shelf "RESET" -Task "0"

      -Routine "SYS_RESET" -Shelf "START" -Task "0"

      -Routine "RESTORE_IO" -Shelf "POWER_ON" -Task "0"
#
#
CAB_TASK_MODULES:

      -File "ram1disk:base.sys" -ModName "BASE" -Task "0"

      -File "ram1disk:user.sys" -ModName "USER" -Task "0"
#
MASTER_BOOL:

#
AUTH_INTERACTIVE_UNITS:

#
AUTH_CLIENTS:

#
AUTH_CLIENT_PERMISSION:

#
WORKDIR:

#
#
MMC_ATTRIBUTE:

#
MMC_FKEY:

#
MMC_OUTLINE:

#
#
MMC_CHOICE:

#
#
#
#
#
#
#
#
#

```

```
SYS:CFG_1.0:2:1::
#
#
SYS_MISC:

#
#
CAB_TASKS:

      -Name "MAIN" -Prog 0 -Task_in_forground "" -Type "NORMAL" -Size 0\
      -StackSize 0 -BindRef 1 -Entry "main" -RewERIfStop 0
#
CAB_REGAIN_DIST:

      -Name "MAN" -Tcp_dist 0.050000 -Tcp_rot 0.200000 -Ext_dist 0.050000\
      -Ext_rot 0.200000

      -Name "AUTO" -Tcp_dist 0.500000 -Tcp_rot 1.570000 -Ext_dist 0.500000\
      -Ext_rot 1.570000
#
CAB_EXEC_HOOKS:

      -Routine "SYS_RESET" -Shelf "RESET" -Task "0"

      -Routine "SYS_RESET" -Shelf "START" -Task "0"

      -Routine "RESTORE_IO" -Shelf "POWER_ON" -Task "0"

      -Routine "glb_power_on" -Shelf "POWER_ON" -Task "0"

      -Routine "glb_start" -Shelf "START" -Task "0"

      -Routine "glb_restart" -Shelf "RESTART" -Task "0"

      -Routine "glb_stop" -Shelf "STOP" -Task "0"

      -Routine "glb_qstop" -Shelf "QSTOP" -Task "0"

      -Routine "glb_mode_switch" -Shelf "MODE_SWITCH" -Task "0"
#
#
CAB_TASK_MODULES:

      -File "ram1disk:base.sys" -ModName "BASE" -Task "0" -Storage "LOADED"\
      -Txres 0

      -File "ram1disk:user.sys" -ModName "USER" -Task "0" -Storage "LOADED"\
      -Txres 0

      -File "ram1disk:gluser.sys" -ModName "GLUSER" -Task "0" -Storage "LOADED"\
      -Txres 0

      -File "ram1disk:glbase.sys" -ModName "GLBASE" -Task "0" -Storage "LOADED"\
      -Txres 0

      -File "ram1disk:gltext.sys" -ModName "GLTEXT" -Task "0" -Storage "LOADED"\
      -Txres 0
#
MASTER_BOOL:

#
AUTH_INTERACTIVE_UNITS:

#
AUTH_CLIENTS:

#
AUTH_CLIENT_PERMISSION:

#
WORKDIR:

#
#
MMC_ATTRIBUTE:

#
MMC_FKEY:

#
MMC_OUTLINE:

#
#
MMC_CHOICE:

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

```

```
SYS:CFG_1.0:2:0::
#
#
#
CAB_TASKS:

      -Name "MAIN" -Prog 0 -Task_in_forground "" -Type "NORMAL" -Entry "main"

      -Name "com" -Prog 1 -Task_in_forground "MAIN" -Type "SEMISTATIC"\
      -Entry "haupt"
#
CAB_REGAIN_DIST:

      -Name "MAN" -Tcp_dist 0.010000 -Tcp_rot 1.000000 -Ext_dist 0.100000\
      -Ext_rot 1.570000

      -Name "AUTO" -Tcp_dist 0.500000 -Tcp_rot 1.570000 -Ext_dist 0.500000\
      -Ext_rot 1.570000
#
CAB_EXEC_HOOKS:

      -Routine "SYS_RESET" -Shelf "RESET" -Task "0"

      -Routine "SYS_RESET" -Shelf "START" -Task "0"

      -Routine "RESTORE_IO" -Shelf "POWER_ON" -Task "0"
#
#
CAB_TASK_MODULES:

      -File "ram1disk:base_mt.sys" -ModName "BASE_MT" -Task "com"

      -File "ram1disk:user.sys" -ModName "USER" -Task "0"

      -File "ram1disk:dat_mt16.sys" -ModName "DAT_MT16" -Task "0"

      -File "ram1disk:dat_mt16.sys" -ModName "DAT_MT16" -Task "com"

      -File "ram1disk:com200.sys" -ModName "Com200" -Task "com"

      -File "ram1disk:base.sys" -ModName "BASE" -Task "MAIN"
#
MASTER_BOOL:

#
AUTH_INTERACTIVE_UNITS:

#
AUTH_CLIENTS:

#
AUTH_CLIENT_PERMISSION:

#
WORKDIR:

#
#
MMC_ATTRIBUTE:

#
MMC_FKEY:

#
MMC_OUTLINE:

#
#
MMC_CHOICE:

#
#
#
#
#
#
#
#
#
#
#

```

# SIO.CFG

Archivo:

SIO:CFG\_1.0:2:0::

\#

COM\_PHY\_CHANNEL\_TYPE:

 -Name "sio" -Data1 0 -Data2 0 -Data3 0 -Data4 0 -Data5 0

\#

COM\_PHY\_CHANNEL:

 -Name "sio1:" -Type "sio" -Channel 1 -Baudrate 9600 -Parity "none"\\

 -NoOfBits 8 -NoOfStopBits 1.000000 -Duplex "full" -Data1 0 -Data2 0\\

 -Data3 0 -Data4 0 -Data5 0

 -Name "printer1:" -Type "sio" -Channel 2 -Baudrate 9600 -Parity "none"\\

 -NoOfBits 8 -NoOfStopBits 1.000000 -Duplex "full" -Data1 0 -Data2 0\\

 -Data3 0 -Data4 0 -Data5 0

 -Name "sio3:" -Type "sio" -Channel 3 -Baudrate 9600 -Parity "none"\\

 -NoOfBits 8 -NoOfStopBits 1.000000 -Duplex "full" -Data1 0 -Data2 0\\

 -Data3 0 -Data4 0 -Data5 0

 -Name "sio4:" -Type "sio" -Channel 4 -Baudrate 9600 -Parity "none"\\

 -NoOfBits 8 -NoOfStopBits 1.000000 -Duplex "full" -Data1 0 -Data2 0\\

 -Data3 0 -Data4 0 -Data5 0

\#

COM\_TRP\_TYPE:

 -Name "none" -Data1 0 -Data2 0 -Data3 0 -Data4 0 -Data5 0

 -Name "XON/XOFF" -Data1 0 -Data2 0 -Data3 0 -Data4 0 -Data5 0

 -Name "SLIP" -Data1 0 -Data2 0 -Data3 0 -Data4 0 -Data5 0

\#

COM\_TRP:

 -Name "printer1:" -Type "XON/XOFF" -PhyChannel "printer1:"\\

 -HostName "none" -LocalAdress "100.100.100.101"\\

 -RemoteAdress "100.100.100.102" -PortNo -1 -Data1 0 -Data2 0 -Data3 0\\

 -Data4 0 -Data5 0

\#

COM\_APP\_TYPE:

 -Name "RAP" -Data1 0 -Data2 0 -Data3 0 -Data4 0 -Data5 0 -InitFunc ""\\

 -DrvC

onfig ""

\#

COM\_APP:

\#

\#

\#

\#

\#

\#

\#

\#

\#

\#

\#

Según ChatGPT:

Este archivo es una configuración de comunicaciones serie (SIO) de un controlador ABB (RobotWare / RAPID). Define canales físicos, protocolos de transporte y aplicaciones que usan esos canales.

Voy sección por sección, de arriba a abajo.

\---

1\. Encabezado

SIO:CFG\_1.0:2:0::

Indica:

Tipo de archivo: SIO (Serial I/O)

Versión del formato: CFG\_1.0

Usado por RobotWare para configurar puertos serie RS-232/RS-422.

\---

2\. COM\_PHY\_CHANNEL\_TYPE

COM\_PHY\_CHANNEL\_TYPE:

 -Name "sio"

Define un tipo de canal físico llamado "sio".

👉 Es el tipo genérico de puerto serie del controlador ABB.

\---

3\. COM\_PHY\_CHANNEL (canales físicos reales)

Aquí se definen los puertos serie disponibles y sus parámetros eléctricos.

Ejemplo:

-Name "sio1:" -Type "sio" -Channel 1 -Baudrate 9600

Parámetros clave:

Name → Nombre lógico del puerto (ej. sio1:)

Channel → Número de puerto físico (1, 2, 3, 4)

Baudrate → 9600 baudios

Parity → none

NoOfBits → 8 bits de datos

NoOfStopBits → 1 bit de parada

Duplex → full (envío y recepción)

Puertos definidos:

Puerto lógico Canal físico Uso típico

sio1: 1 Comunicación serie genérica

printer1: 2 Impresora o dispositivo externo

sio3: 3 Libre

sio4: 4 Libre

👉 Todos usan RS-232 a 9600 8N1.

\---

4\. COM\_TRP\_TYPE (tipos de protocolo)

COM\_TRP\_TYPE:

 -Name "none"

 -Name "XON/XOFF"

 -Name "SLIP"

Define protocolos de transporte disponibles:

none → sin control de flujo

XON/XOFF → control de flujo por software

SLIP → encapsulación serie (menos común)

\---

5\. COM\_TRP (transporte activo)

COM\_TRP:

 -Name "printer1:" -Type "XON/XOFF" -PhyChannel "printer1:"

Aquí se asigna un protocolo a un puerto físico.

Significado:

El puerto printer1:

Usa control de flujo XON/XOFF

Se apoya en el canal físico printer1:

Las direcciones IP indicadas:

-LocalAdress "100.100.100.101"

-RemoteAdress "100.100.100.102"

⚠️ No son IP reales en este contexto

→ Son campos heredados del sistema de comunicaciones, no se usan en RS-232.

👉 En la práctica:

&gt; El puerto printer1: está configurado para comunicar con una impresora o equipo serie usando XON/XOFF.

\---

6\. COM\_APP\_TYPE

COM\_APP\_TYPE:

 -Name "RAP"

Define el tipo de aplicación:

RAP → Comunicación usada por programas RAPID

\---

7\. COM\_APP

COM\_APP:

Está vacío → no hay ninguna aplicación RAPID asociada directamente a estos puertos en este archivo.

👉 La comunicación puede ser usada desde RAPID con instrucciones como:

Open "printer1:",\\Write;

Write ...

Close;

\---

Resumen rápido

Este archivo:

✅ Configura 4 puertos serie físicos

✅ Todos a 9600 baudios, 8N1, full duplex

✅ El puerto printer1: usa XON/XOFF

✅ Está pensado para impresora o dispositivo serie externo

✅ No define aún una aplicación específica, solo la infraestructura

\---

Si quieres, puedo:

Decirte cómo usar printer1: desde RAPID

Explicar qué cable RS-232 usar

Ayudarte a migrarlo a RobotWare moderno

Revisar si sirve para un PLC o lector de códigos