CFG
General
| Topic | Parameters that affect | File name |
| Controller | Event routines, etc. | SYS.CFG |
| Communication | Serial channels | SIO.CFG |
| IO Signals | I/O boards and signals | EIO.CFG |
| Manipulator | The robot and external axes |
MOC.CFG |
| Teach Pendant | Displaying data and access on the teach pendant |
MMC.CFG |
| Arc Welding | Arc welding | PROC.CFG |
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
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.
| NOMBRE | FUNCIÓN |
| (*) SYS_MISC | ??? (*) Sólo disponible en la vesión 2.1. |
| CAB_TASKS |
Define las tareas de ejecución del robot en el controlador:
Esto controla qué procesos funcionan simultáneamente. |
| Configuraciones de distancias y tolerancias para la recuperación de posición del robot, usadas en movimientos automáticos y manuales. | |
| CAB_EXEC_HOOKS |
Estos son “ganchos” o hooks del sistema que asocian programas o rutinas con eventos internos como:
Imagina que es un trigger que dice “cuando ocurra X, ejecutar Z” |
| CAB_TASK_MODULES |
Este bloque especifica qué módulos de código se cargan para cada tarea definida:
Esto es lo que realmente hace que el robot sepa qué código ejecutar para cada parte del sistema. |
| MASTER_BOOL | ??? |
| AUTH_INTERACTIVE_UNITS | ??? |
| AUTH_CLIENTS | ??? |
| AUTH_CLIENT_PERMISSION | ??? |
| WORKDIR | ??? |
| MMC_ATTRIBUTE | ??? |
| MMC_FKEY | ??? |
| MMC_OUTLINE | ??? |
| MMC_CHOICE | ??? |
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:
> 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