A Limited-Instruction-Set Virtual Programmable Automatic Controller
Main Article Content
Abstract
This work presents techniques to develop cross-platform virtual programmable controller machine for reducing cost of using imported software and system in automation works. Its main work can be separated into 1) virtual machine architecture design 2) simulation software development and 3) hardware-software interface testing. For implementation, Python language is selected because of its portability to run in both Windows and Linux-based operating systems including mobile platforms such as Android phone. From the results of time-constraint experiments, the developed virtual machine can execute main instructions mimicking limited ladder diagram at reasonable speed for both simulation mode only and interfacing test based on Arduino nano hardware.
On Linux virtualization platform, if the virtual machine has input-output size under 64bit, its timer instruction can be executed at a good precision down to 100ms whereas the scan time can be less than 100ms for virtual machine up to 2,048bit input-output size. Moreover, the developed virtual machine is designed and tested to communicate with Arduino Nano leading to possibility in using the virtual machine with real external devices.
Article Details

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Articles published in Journal of Industrial Technology Ubon Ratchathani Rajabhat University both hard copy and electronically are belonged to the Journal.
References
G. J. Popek and R. P. Goldberg, “Formal requirements for virtualizable third generation architectures,” Communications of the ACM, vol. 17, no. 7, pp. 412–421, 1974.
T. Lindholm, F. Yellin, G. Bracha, and A. Buckley, The Java Virtual Machine Specification Java SE, 7th ed. Oracle America, 2013.
W. Bolton, Programmable Logic Controllers, 4th ed. Elsevier, 2006.
T. Alves and T. Morris, “OpenPLC: An IEC 61131-3 compliant open source industrial controller for cyber security,” Computers & Security, vol. 78, pp. 364–379, 2018.
C. Andrei, G. Tudor, M. Arhip-Calin, G. Fierascu, and C. Urcan, “Raspberry Pi, and alternative low-cost PLC,” in Proc. IEEE Int. Symp. Fundamentals of Electrical Engineering, 2020.
G. Viera, J. Barbosa, P. Leitao, and L. Sakurada, “Low-cost industrial controller based on the raspberry pi platform,” in Proc. IEEE Int. Conf. Industrial Technology, 2020.
M. Virbel et al., Kivy. Accessed: Jun. 24, 2022. [Online]. Available: https://kivy.org
PyInstaller. Accessed: Jun. 24, 2022. [Online]. Available: https://pyinstaller.org/en/stable/
Buildozer. Accessed: Jun. 24, 2022. [Online]. Available: https://buildozer.readthedocs.io/en/latest/
C. Liechti, PySerial. Accessed: Jun. 24, 2022. [Online]. Available: https://github.com/pyserial/pyserial/
Oracle, VirtualBox. Accessed: Jun. 24, 2022. [Online]. Available: https://www.virtualbox.org.
C. Zhou and H. Chen, “Development of a PLC Virtual Machine orienting IEC 61131-3 Standard,” in Proc. Int. Conf. Measuring Technology and Mechatronics Automation, 2009.
C. M. Park et al., “Development of Virtual Simulator for Visual Validation of PLC Program,” in Proc. Int. Conf. Computational Intelligence for Modelling Control and Automation and Int. Conf. Intelligent Agents Web Technologies and Int. Commerce, 2006.
V. Mariano et al., “The adaptable Pareto set problem for facility location: A video game approach,” Expert Systems With Applications, vol. 186, Art. no. 115758, 2021.
Y. Ryo et al., “A revisited visual-based geolocalization framework for forensic investigation support tools,” Forensic Science International: Digital Investigation, vol. 35, Art. no. 203004, 2020.