  Integrating the design and creation of fault identification and diagnostic
capabilities into Model-Driven Development methodologies is one approach to
enhancing the resilience of Industrial Cyber-Physical Systems. We present a
Fault Diagnostic Engine designed to recognise and diagnose faults in IEC 61499
Function Block Applications. Using diagnostic agents that interact directly
with the target application, we demonstrate fault monitoring and analysis
techniques and as well as failure scenario intervention. By designing and
building fault diagnostic resources during early phases of Model-Driven
Development, both iterative testing and long-term fault management capabilities
can be created. While applying and refining appropriate model artifacts, we
demonstrate that the concurrent development of function blocks alongside fault
management capabilities is both feasible and worthwhile.
