<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ángela</title>
    <description>The latest articles on DEV Community by Ángela (@clients-bl).</description>
    <link>https://dev.to/clients-bl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4115389%2F572f6207-0196-4c07-afa0-13e75b1b8713.png</url>
      <title>DEV Community: Ángela</title>
      <link>https://dev.to/clients-bl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/clients-bl"/>
    <language>en</language>
    <item>
      <title>Building Adaptive Robotic Cells: Integrating Vision Systems with Industrial PLCs via TCP/IP</title>
      <dc:creator>Ángela</dc:creator>
      <pubDate>Thu, 22 Oct 2026 08:29:09 +0000</pubDate>
      <link>https://dev.to/clients-bl/building-adaptive-robotic-cells-integrating-vision-systems-with-industrial-plcs-via-tcpip-4pk1</link>
      <guid>https://dev.to/clients-bl/building-adaptive-robotic-cells-integrating-vision-systems-with-industrial-plcs-via-tcpip-4pk1</guid>
      <description>&lt;p&gt;In industrial automation, traditional fixed-position robotics is rapidly giving way to vision-guided systems. When dealing with variable product geometries or random conveyor alignment, sending real-time offset coordinates from a vision system to an industrial PLC or robot controller is essential.&lt;/p&gt;

&lt;p&gt;Below is an overview of the communication architecture and a Python implementation simulating a vision server processing coordinates and streaming them to a PLC/robot via Socket TCP/IP.&lt;/p&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;The control loop relies on three main layers working synchronously within the cell's Takt Time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Vision Acquisition Layer:&lt;/strong&gt; High-speed camera captures the part and calculates spatial coordinates $(X, Y, Z, \theta)$.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Industrial Gateway / PLC:&lt;/strong&gt; Validates safety interlocks, parses the vision datagram, and updates the motion registers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robot Controller (FANUC / KUKA / UR):&lt;/strong&gt; Executes kinematic trajectory adjustments based on offset data.&lt;/li&gt;
&lt;/ol&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
text
+------------------------+      TCP/IP / Profinet      +-----------------------+
|  Vision System (2D/3D) | --------------------------&amp;gt; | Industrial PLC (Control|
| (Calculates X,Y,Z,θ)   |                             |   &amp;amp; Safety Logic)     |
+------------------------+                             +-----------------------+
                                                                   |
                                                                   | EtherNet/IP
                                                                   v
                                                       +-----------------------+
                                                       |   Robot Controller    |
                                                       |  (Kinematic Execution)|
                                                       +-----------------------+
Python Implementation: Industrial Vision Coordinate Server
This script demonstrates how a vision processing module packs spatial offsets into binary structs and dispatches them over TCP sockets to an industrial automation controller:
import socket
import struct
import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

class VisionCoordinateServer:
    def __init__(self, host: str = '192.168.1.100', port: int = 5000):
        self.host = host
        self.port = port

    def pack_coordinates(self, x: float, y: float, z: float, angle: float) -&amp;gt; bytes:
        """
        Packs 4 float values (x, y, z, angle) into a 16-byte Big-Endian binary buffer
        standard for PLC memory registers.
        """
        return struct.pack('!ffff', x, y, z, angle)

    def send_offsets(self, x: float, y: float, z: float, angle: float):
        payload = self.pack_coordinates(x, y, z, angle)

        try:
            with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
                client_socket.settimeout(2.0)
                client_socket.connect((self.host, self.port))
                client_socket.sendall(payload)
                logging.info(f"Successfully sent offsets -&amp;gt; X:{x:.2f}, Y:{y:.2f}, Z:{z:.2f}, Angle:{angle:.2f}")
        except Exception as e:
            logging.error(f"Failed to communicate with PLC controller: {e}")

if __name__ == '__main__':
    # Simulated inspection result from vision pipeline
    vision_server = VisionCoordinateServer(host='127.0.0.1', port=5000)
    vision_server.send_offsets(x=124.50, y=-45.20, z=12.10, angle=8.75)

Real-World Engineering Considerations
Lighting Normalization: Using narrow-band LED strobe lighting paired with bandpass optical filters eliminates ambient factory lighting noise.

Deterministic Latency: High-speed Pick &amp;amp; Place operations require real-time fieldbus protocol integration (Profinet IRT or EtherCAT) rather than standard TCP sockets to keep latency below 2ms.

Implementing these high-performance robotic cells requires a multidisciplinary engineering approach. Specialized integrators such as ASP Robotics design custom industrial automation solutions, seamlessly combining PLC logic, machine vision, and custom robotic kinematics for modern smart factories.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>robotics</category>
      <category>automation</category>
      <category>python</category>
      <category>industrial</category>
    </item>
    <item>
      <title>Cómo conectar PLCs, visión artificial y brazos robóticos en líneas de fabricación 4.0</title>
      <dc:creator>Ángela</dc:creator>
      <pubDate>Tue, 08 Sep 2026 10:17:18 +0000</pubDate>
      <link>https://dev.to/clients-bl/como-conectar-plcs-vision-artificial-y-brazos-roboticos-en-lineas-de-fabricacion-40-published-4mk</link>
      <guid>https://dev.to/clients-bl/como-conectar-plcs-vision-artificial-y-brazos-roboticos-en-lineas-de-fabricacion-40-published-4mk</guid>
      <description>&lt;p&gt;En el diseño de celdas de trabajo para entornos industriales, la falta de interoperabilidad entre controladores lógicos programables (PLC), cámaras matriciales y manipuladores robóticos suele ser la causa principal de tiempos de ciclo elevados y paradas no planificadas. &lt;/p&gt;

&lt;p&gt;La integración moderna exige pasar de topologías rígidas entrada/salida a arquitecturas orientadas a eventos en bus de campo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arquitectura de comunicación en tiempo real
&lt;/h3&gt;

&lt;p&gt;Para lograr un &lt;em&gt;pick and place&lt;/em&gt; guiado por visión con margen de error submilimétrico, la cadena de señal debe minimizar la latencia en tres capas principales:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Capa de captura (Visión Artificial):&lt;/strong&gt; La cámara procesa el mapa de bits, aplica filtros de contraste/bordes y calcula las coordenadas $(X, Y, Z, \theta)$ de la pieza.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capa de control (PLC):&lt;/strong&gt; Recibe el datagrama por Ethernet/IP o Profinet y valida los interbloqueos de seguridad perimetral.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capa de ejecución (Robot):&lt;/strong&gt; El controlador cinemático ajusta la trayectoria del gripper dinámicamente antes de iniciar la aproximación.&lt;/li&gt;
&lt;/ol&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
text
+-------------------+      Profinet / TCP      +--------------------+
|  Visión 2D / 3D   | -----------------------&amp;gt; |    PLC Central     |
| (Cálculo X,Y,Z,θ) |                          | (Lógica &amp;amp; Safety)  |
+-------------------+                          +--------------------+
                                                         |
                                                         | EtherNet/IP
                                                         v
                                               +--------------------+
                                               |  Controlador Robot |
                                               | (FANUC / KUKA / UR)|
                                               +--------------------+

Script de sincronización de coordenadas (Ejemplo conceptual en Python / Socket Industrial)
Cuando el sistema de visión envía las coordenadas corregidas al PLC, los datos deben parsearse y validarse mediante checksum antes de enviarse al área de memoria de la celda:

import socket
import struct

def parse_vision_data(raw_bytes):
    # Formato: 3 floats para posición (x,y,z) y 1 float para orientación (angle)
    if len(raw_bytes) != 16:
        raise ValueError("Longitud de trama inválida")

    x, y, z, angle = struct.unpack('!ffff', raw_bytes)
    return {"x": x, "y": y, "z": z, "angle": angle}

def send_to_robot_controller(ip, port, coords):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect((ip, port))
        payload = f"SET_POS({coords['x']:.2f},{coords['y']:.2f},{coords['z']:.2f},{coords['angle']:.2f})"
        s.sendall(payload.encode('utf-8'))


Retos comunes en el entorno real
Condiciones lumínicas variables: Requieren ópticas con filtros de banda estrecha e iluminación estroboscópica coordinada con el obturador de la cámara.

Tiempos de ciclo estrictos: El procesamiento de imagen debe completarse en la ventana del Takt Time asignado, utilizando aceleración por hardware cuando se ejecutan redes neuronales de inspección.

La correcta puesta en marcha de estas arquitecturas requiere una ingeniería integral que enlace el código de control con la seguridad física de la planta. Empresas especializadas como [ASP Robotics](https://asprobotics.com/) desarrollan este tipo de proyectos de ingeniería y robótica a medida, garantizando la integración transparente de la lógica PLC con los controladores robóticos de última generación.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>robotics</category>
      <category>automation</category>
      <category>python</category>
      <category>iot</category>
    </item>
  </channel>
</rss>
