A prototype automatic translation utility was developed and demonstrated. The translation capabilities of the utility will be expanded upon as more and more translation points are identified, translated manually, and then turned into additional PLC code libraries. The simplified process flow for translating a single “send_command” line from tabular spec to PLC code. The spreadsheet that contains the application software in tabular spec format is exported to plain text and is used as input to the translation utility, along with the PLC code library. The translation utility processes these input files, using program transformation steps. This creates an output file that can be imported by the PLC coding IDE.
This work successfully demonstrated that a process and a software tool can generate executable PLC code from a high-level specification representation of a safety-critical control system. This process includes some manual work to find translation points and to create PLC code libraries, but that up-front and one-time manual effort is overshadowed in the end by the automatic generation of repetitious and tedious functionality that would be difficult and error-prone to perform manually and tool increase the quality, reliability, maintainability, and verification/validation pedigree of the PLC code over code that is generated manually. It also provides a high level of PLC Code consistency and could even reduce operations and maintenance costs for the control system after it is deployed.
Follow-on phases of development of the automatic translation utility should include most, if not all, of the following tasks:
• Represent as much LCS application software in the tabular spec format as possible without overcomplicating the tabular spec format,
• Manually implement the remaining translation points and any newly discovered translation points, along with the matching PLC code libraries,
• Add code to the translation utility to recognize and handle the new translation points, along with the new PLC code libraries, and
• Test and certify the translation utility for automatic generation of safety-critical PLC control logic in the LCS at KSC.