IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 8, NO. 2, MAY 2012 279 Semantics-Robust Design Patterns for IEC 61499 Victor N. Dubinin and Valeriy Vyatkin, Senior Member, IEEE Abstract—The international standard IEC 61499 for the design of distributed industrial control systems defines an abstract model of function blocks (FB) which allows many different semantic interpretations. As a consequence, in addition, so-called execution models were proposed to specify the execution order of FBs. The variety of models leads to the incompatibility of tools and hinders the portability of automation software. To achieve a degree of execution model independence, in this paper, design patterns are suggested that make FB systems-robust to changes of execution semantics. A semantic-robust pattern is defined for a particular source execution model. The patterns themselves are implemented by means of the FB apparatus and therefore are fairly universal. The patterns can be defined and implemented using the FB trans- formations expressed in terms of Attributed Graph Grammars. Index Terms—Design patterns, IEC 61499, portability, refac- toring, robustness, semantics, software engineering. I. INTRODUCTION T HE MAIN trend in the development of industrial automa- tion systems is the shift from centralized systems to dis- tributed intelligent systems. This trend was reflected in the de- velopment of a new international standard IEC 61499 [1], [2]. The standard supports the design paradigm based on function blocks (FB). Despite the undeniable advantages of this concept, it was discovered that the standard has some semantic ambigu- ities [3]. This may lead to an unacceptable situation when the same FB system will have different behavior when executed on different platforms. This hinders the portability of automation software developed following the IEC 61499 standard. To resolve the semantic ambiguities of the standard, several models of FB execution were proposed and implemented. These include: the “nonpreemptive multithreaded resource” (NPMTR- model) [4], the “interrupted multithreaded resource” (PMTR- model), the model based on the sequential hypothesis [5], the cyclic model [6], [7], the synchronous model [8], Petri net-based models [9], as well as models implemented in runtimes Crons [10], FUBER [11], and CEC [12]. In addition, there are models proposed for the implementation of some elements of the stan- dard, namely: for composite FBs [13] and basic FBs [5]. A few efforts have been undertaken to categorize FB execution models on the basis of various criteria. For example, in [3], two cri- teria to identify so-called “implementation approaches” have Manuscript received March 30, 2011; revised August 16, 2011, November 14, 2011, January 07, 2012; accepted January 09, 2012. Date of publication Feb- ruary 03, 2012; date of current version April 11, 2012. This work was supported in part by the FRFD under grant 3625072/9573 of the University of Auckland. Paper no. TII-11-172.R3. V. N. Dubinin is with the Department of Computer Science, University of Penza, Penza 440026, Russia (e-mail: victor_n_dubinin@yahoo.com). V. Vyatkin is with the Department of Electrical and Computer Engi- neering, University of Auckland, Auckland 1142, New Zealand (e-mail: v.vyatkin@auckland.ac.nz). Digital Object Identifier 10.1109/TII.2012.2186820 Fig. 1. General pattern of the SRDPs application. been chosen: 1) FB Scan Order and 2) Multitasking Implemen- tation. However, as practice has shown, for the complete speci- fication of FB execution models much more criteria are required [24]. For specification of different FB execution models a spe- cial graphical notation XNet, has been even proposed [36]. After the semantic problems have been pinpointed in a number of research publications (e.g., [3] and [4]), the o3neida community formed a taskforce to resolve them. As a result, the compliance profile [14] has been developed. Based on the recognition of existing practices, that document narrows the variety of semantic interpretations down to three models of FB implementation: sequential, parallel and cyclical. An overview of these models can be found in [16]. However, the portability between these models still remains a problem. While elimination of the semantic ambiguities in IEC 61499 can be seen as the ultimate solution, in practice, it is hard to expect or can take long time to achieve. There are already several tools on the market compliant with the standard, but following different execution models. The method, proposed in this paper can immediately help in migrating applications from one tool to another, for example, from ISaGRAF [17], implementing the cyclic execution model, to NxtControl [18], implementing the sequential model, or to the synchronous compiler [8]. To solve the portability problem, this paper proposes seman- tics-robust design patterns (SRDP). As illustrated in Fig. 1, an SRDP is applied to a function block application (FBA) origi- nally designed to be executed in some source model (the orig- inal FBA), and results in a functionally equivalent application (the resulting FBA) that exhibits the same behavior in one, some, or even an arbitrary target execution model. Conceptually, the application of the SRDPs consists in three steps: 1) adding some new (service) function blocks; 2) changing some function blocks in the original application; and 3) changing some of their interconnections. The function blocks of the original FBA and their counter- parts in the resulting FBA will be referred to as working FBs, as 1551-3203/$31.00 © 2012 IEEE