Lo que has mostrado no es una buena manera de hacer una traducción de nivel. Hay varios problemas. En primer lugar, su amplificador operacional funciona con 3.3V. Poner 24V en una entrada está muy lejos del rango del modo común, no es gracioso. En la práctica, fumará el diodo de sujeción ESD en la entrada no inversora, lo más probable es que cause una falla corta de 3.3V. No es una buena situación. Además, no será muy rápido para la comunicación en serie. Necesitaría un amplificador operacional con una alta velocidad de giro para que realmente funcione.
A partir de lo que ya has hecho, esta es una mejor implementación. El LM311 es un comparador de salida de colector abierto, por lo que la señal de 24 V tiene menos posibilidades de llegar al pin GPIO, y nada explotará.
simular este circuito : esquema creado usando CircuitLab
No soy realmente un tipo de PLC, pero en la mayoría de los casos PLC e industrial en general, la optoaislamiento es una buena cosa.
simular este circuito
Con este esquema, el lado de 24 V no tiene conexión eléctrica con el Beaglebone. Cuando el IO Link se eleva, el LED interno se ilumina y hace que el transistor conduzca. Actúa como un seguidor emisor. Me iré encontrando esa parte en tus manos. Querrá uno que tenga un transistor de salida NPN y una velocidad de datos compatible con IO Link. Los valores de los componentes necesitarán un ajuste fino.