  Programmable Logic Controllers (PLCs) provide a prominent choice of
implementation platform for safety-critical industrial control systems. Formal
verification provides ways of establishing correctness guarantees, which can be
quite important for such safety-critical applications. But since PLC code does
not include an analytic model of the system plant, their verification is
limited to discrete properties. In this paper, we, thus, start the other way
around with hybrid programs that include continuous plant models in addition to
discrete control algorithms. Even deep correctness properties of hybrid
programs can be formally verified in the theorem prover KeYmaera X that
implements differential dynamic logic, dL, for hybrid programs. After verifying
the hybrid program, we now present an approach for translating hybrid programs
into PLC code. The new tool, HyPLC, implements this translation of discrete
control code of verified hybrid program models to PLC controller code and, vice
versa, the translation of existing PLC code into the discrete control actions
for a hybrid program given an additional input of the continuous dynamics of
the system to be verified. This approach allows for the generation of real
controller code while preserving, by compilation, the correctness of a valid
and verified hybrid program. PLCs are common cyber-physical interfaces for
safety-critical industrial control applications, and HyPLC serves as a
pragmatic tool for bridging formal verification of complex cyber-physical
systems at the algorithmic level of hybrid programs with the execution layer of
concrete PLC implementations.
