Industrial Automation communication protocols customized drivers HMI controllers custom software replacing PLC based solutions bare-bone Linux computers machine vision applications