<?xml version="1.0" encoding="UTF-8"?>
<xml>
  <records>
    <record>
       <contributors>
          <authors>
             <author>Plötzeneder, B.</author>
          </authors>
       </contributors>
       <titles>
          <title>
             Code Generation for State Machine Based Control Systems
          </title>
       </titles>
       <publisher>JACoW Publishing</publisher>
       <pub-location>Geneva, Switzerland</pub-location>
       <abstract>
          Many subsystems at ELI Beamlines (for example vacuum, pneumatic, machine and personal safety systems) can be described as a set of interacting state machines whose outputs are controlled by their states. We generate software for their control systems from a standardised spreadsheet-based description of the state machine logic; supporting different hardware platforms: PILZ safety PLCs, B&amp;R PLCs and National Instruments FPGA devices. This approach allows us to eliminate errors in programming individual applications, and to focus entirely on system logic. The spreadsheets are used both as system documentation and programming tool; avoiding discrepancies between documentation and implementation. We have also developed tools for simulation and debugging of the resulting control systems based on these descriptions.
       </abstract>
    </record>
  </records>
</xml>
