Associate Editor: Sridhar Chimalakonda (@ChimalakondaSri)
Domain Specific Programmable Logic Controller (PLC) Languages
Several control systems used for
factory and industrial automation of electromechanical processes are developed
using Programmable Logic Controllers (PLC). PLCs are specifically adapted for
the control of a manufacturing process and programmed using domain specific
languages. The International Electro-technical Commission (IEC) (a non-profit
international standards organization) developed a standard called as IEC
61131-3 which defines the basic programming elements, syntactic and semantic
rules for text-based and graphical or visual programming languages for
programming PLCs [IEC]. Structured Text (ST) is one the text-based PLC
programming languages defined by the IEC 61131-3 standard and is widely used in
industrial automation engineering application development. Similarly, Ladder
Diagram (LD) programming language is a visual programming language and is one
of the five languages defined in the IEC 61131-3 standard. ST is a domain
specific language and several of its language features and programming
constructs are different than that of general purpose programming languages
such as Java, C++, C# and Python. ST has several characteristics which are
different than that of general purpose programming languages because the
primary purpose of a PLC is to control an industrial process and the ST
language is defined for solving problems in a specific domain of factory and
industry process automation [Roos2008].
Correlation between Source Code Metrics and Software Quality for PLC Systems
There has been a lot of work done
in the area of predicting change proneness and faulty components or modules of
software using source code metrics for general purpose programming languages.
However, defining software metrics and investigating their impact on important
software engineering prediction problems such as change proneness and faulty
module identification is relatively unexplored in the domain of applications
developed using IEC 61131-3 languages [Kumar2016] [Kumar2017]. We believe that
one of the primary reasons of lack of empirical studies in the area of source
code analysis for PLC programming languages and their impact on software
maintainability and quality is the lack of publicly available data for
researchers and scientists in academia. Through this blog, our objective is to
share our work in this relatively unexplored but a promising research direction
[Kumar2016] [Kumar2017]. In [Kumar2016], we proposed source code level metrics
to measure size, vocabulary, cognitive complexity and testing complexity of a
visual Programmable Logic Controller (PLC) programming language. We apply
Weykur’s property to validate the metrics and evaluate the number of properties
satisfied by the proposed metric [Kumar2016]. In [Kumar2017], we study the
correlation between the 10 ST source code metrics and their relationship with
change proneness. We built predictive models using Artificial Neural Network
(ANN) based techniques to predict change proneness of the software [Kumar2017].
Similarly, we are working towards examining whether source code metrics can be
used to identify defective and faulty components.
Bringing Both Relevance and Rigor through Industry Academia
Collaboration
Our experimental results are
encouraging and provides evidences that there is a correlation between source
code metrics and software quality and maintainability in the domain of
industrial automation and PLC applications. However, more research studies from
industry through industry and academia collaboration is needed to further add to
the body of knowledge in this topic. It is hard for companies working in the
industrial automation engineering domain to make their source code available in
public domain for researchers in academia which creates a natural barrier for
entry for academics to conduct research in this unexplored area. Industrial
research labs does not have all the competencies, resources and time within a
single organization to address all the research and technical challenges in
this area and we believe that university and academia collaboration is the only
possible solution to advance and disseminate knowledge on this topic. Our work
is also a collaboration between industry and academia and gave positive results
due to the successful partnership. One possible solution to build bridges is to
conduct focused workshops on software engineering issues and challenges for
industrial and factory automation. Some progress has been made in this
direction which is encouraging and more needs to be done.
References
[Kumar2016] Lov Kumar, Raoul
Jetley, and Ashish Sureka. 2016. Source
code metrics for programmable logic controller (PLC) ladder diagram (LD) visual
programming language. In Proceedings of the 7th International Workshop on
Emerging Trends in Software Metrics (WETSoM '16). ACM, New York, NY, USA,
15-21. DOI: http://dx.doi.org/10.1145/2897695.2897699
[Kumar2017] Lov Kumar and Ashish
Sureka. 2017. Using Structured Text
Source Code Metrics and Artificial Neural Networks to Predict Change Proneness
at Code Tab and Program Organization Level. In Proceedings of the 10th
Innovations in Software Engineering Conference (ISEC '17). ACM, New York, NY,
USA, 172-180. DOI: https://doi.org/10.1145/3021460.3021481
[Roos2008] Nieke Roos. 2008.
Programming PLCs using Structured Text." International Multiconference on
Computer Science and Information Technology (IMCSIT’08)
[IEC] International
Electrotechnical Commission, International Standards and Conformity Assessment
for all electrical, electronic and related technologies http://www.iec.ch/