Speaker
Description
At the RIKEN Radioactive Isotope Beam Factory (RIBF), commercial PLCs are used in various accelerator subsystems. Among them, the Yokogawa FA-M3 series with a Linux CPU module running EPICS IOC has been successfully adopted. Following this model, and in response to user requests, we implemented a similar architecture using the embedded Linux controller (RD55UP12-V) of Mitsubishi Electric’s MELSEC iQ-R series. Conventional MELSEC-based integration with EPICS has relied on asynchronous device support communicating over TCP/IP (e.g., MC protocol). These approaches often face reliability issues, such as socket disconnections and failed reconnections after network disruptions. To address these problems, we developed a native EPICS device support that runs directly on the MELSEC Linux CPU. A Python-based prototype using PyDevice was first created for rapid development and verification, incorporating a thread-safe worker architecture. Based on its success, we re-implemented the support in C++ using the asynPortDriver class of the EPICS asynDriver module. The C++ version provides improved performance, robust multithreading, and better maintainability. This paper presents the development process, differences between the Python and C++ implementations, and results from system integration within the RIBF control environment.