CIP Assembly Object Explained: How EtherNet/IP Devices Bundle I/O Data

When a ControlLogix PLC reads inputs from a 1734-AENT Point I/O block, it does not read each input one by one. It reads one big block of bytes that contains every input in a defined order. That block is an Assembly Object instance. The Assembly Object is the mechanism CIP uses to bundle scattered data — input bits,… Read More »

Zakaria El Intissar

CIP Forward_Open Service Explained: How Every EtherNet/IP Connection Starts

Every CIP I/O connection in the world starts with one service: Forward_Open. The PLC sends it to a remote drop, the drop validates it, and if everything checks out, the cyclic exchange begins. If something does not check out, the Forward_Open returns an error and the connection never opens — the device is invisible to the PLC until… Read More »

Zakaria El Intissar

CIP Service Codes Complete Reference: Common Services and Object-Specific Codes

Every CIP message starts with a one-byte service code. That byte tells the target device what to do — read an attribute, write an attribute, open a connection, reset, save configuration. This page is the authoritative reference for every CIP service code defined by ODVA’s CIP Networks Library Volume 1, Appendix A. If services are the verbs of… Read More »

Zakaria El Intissar

CIP General Status Codes Reference: Complete List with Troubleshooting

When a CIP service fails, the device returns an error response with a one-byte General Status Code that tells you why. This page is the complete reference for every code defined by the official CIP specification — what each one means, what usually causes it, and how to fix it. The codes come straight from ODVA’s CIP Networks… Read More »

Zakaria El Intissar

DLR Device Level Ring Explained: Ring Redundancy for EtherNet/IP

Pull a cable in a star-topology EtherNet/IP network and one device goes dark. Pull a cable in a properly designed DLR ring and the network recovers in less than 3 milliseconds — fast enough that the PLC scan does not even register the change. That recovery time is the whole reason DLR exists. Engineers building motion-control machines, robotic… Read More »

Zakaria El Intissar

MQTT 5 Session & Message Expiry Intervals Explained

Two of the most practical additions in MQTT 5 are about time: how long the broker should hold on to a client’s session, and how long it should hold on to an individual message. In MQTT 3.1.1, neither was a protocol concern. A persistent session lived indefinitely on the broker until something explicitly wiped it, and a queued… Read More »

Zakaria El Intissar

What’s New in MQTT 5? Features, Changes & Why Upgrade

MQTT 5 is the current version of the protocol. It was ratified as an OASIS standard on 7 March 2019, succeeding MQTT 3.1.1, which had been the standard since 2014. MQTT 5 is not a rewrite. It is an evolution of MQTT 3.1.1 that keeps the core (publish/subscribe, topics, QoS, sessions, retained messages, LWT, keep alive) and adds… Read More »

Zakaria El Intissar

MQTT Over WebSockets Explained: Browsers, Ports, TLS

MQTT runs on top of TCP. That works well almost everywhere it is deployed: on embedded devices, gateways, servers, and desktop tools. There is one environment, though, where it does not work directly: the browser. A web page cannot open a raw TCP connection, which means a JavaScript MQTT client cannot connect to a broker over plain MQTT… Read More »

Zakaria El Intissar