sequence-controlled web services for programmable logic controllers

6
Sequence-Controlled Web Services for Programmable Logic Controllers Christoph Stoidner, Markus Mathes, Bernd Freisleben Dept. of Mathematics and Computer Science, University of Marburg Hans-Meerwein-Str. 3, D-35032 Marburg, Germany {stoidner,mathes,freisleb}@informatik.uni-marburg.de Abstract: The use of service-oriented architectures based on web services in the manufacturing layer of industrial enterprises enables vertical integration and promises increased interoperabil- ity. Unfortunately, the differing execution patterns—cyclic execution on programmable logic controllers vs. on-demand execution on industrial PCs—complicate the use of web services in the manufacturing layer. This paper introduces sequence-controlled web services that permit to easily export a control module as a web service. An automation engineer can use familiar IEC 61131-3 programming languages to implement the control application and subsequently can export selected modules as web services. Keywords: Factory and Industrial Automation, Enterprise-wide Information System, Web-based Service for Maintenance and Process Supervision 1. INTRODUCTION The software infrastructure of today’s industrial enter- prises in the manufacturing domain, e.g. vehicle manu- facturing and aircraft construction, typically consists at least of two different layers: The business layer contain- ing software functionality for planning purposes, and the manufacturing layer where the core business of an indus- trial enterprise is located—the manufacturing process. The software in the business layer is usually based on stan- dardized web service solutions, whereas the manufacturing layer utilizes vendor-specific automation solutions. The vertical adoption of a service-oriented architecture (SOA) based on web services on both layers is desirable, since it leads to a homogeneous communication infrastructure based on a single communication paradigm within the entire enterprise (Jammes and Smit (2005)). Unfortunately, the use of web services in the manufac- turing layer is aggravated by the fundamentally different processing paradigms of both technologies. Web services are processed on-demand in contrast to manufacturing control applications that operate in a processing loop. Consequently, from an automation engineer’s point of view, exposing control application functionality as web service is difficult. The main research contributions of this paper are: (1) The paper identifies the challenges of using web services in the manufacturing layer. (2) To solve the identified problems, a new approach to interface web services and manufacturing control applications called sequence-controlled web services is presented. Sequence-controlled web services are compat- ible with the IEC 61131-3 PLC programming standard (International Electrotechnical Commission (IEC) (2003)) that is well-known by automation engineers. The sequence- controlled web services have been developed as part of the Time-Constrained Services (TiCS) framework (Mathes et al. (2008a)). TiCS is a full-fledged development and execution environment for time-constrained web services and consists of four functional layers—tool support layer, real-time service layer, real-time infrastructural layer, and hardware layer—that contain several components to meet the demands of a web service based automation infrastruc- ture. The rest of this paper is organized as follows. Section 2 explains the use of programmable logic controllers (PLCs) for industrial automation. In Section 3, the two different processing paradigms of web services and manufacturing applications and resulting problems are discussed. Section 4 presents the sequence-controlled web services approach for processing web services on PLCs. Section 5 presents a prototypical implementation of our approach. Section 6 demonstrates a use case realized via sequence-controlled web services. Related work is discussed in section 7. Section 8 concludes the paper and outlines areas for future work. 2. INDUSTRIAL AUTOMATION USING PROGRAMMABLE LOGIC CONTROLLERS This section outlines the conventional implementation of control applications using PLCs. More precisely, the functionality of a PLC is presented and best-practice solutions developed over the years for the design and implementation of production processes are discussed. At present, the entire manufacturing process is subdivided into several disjunctive manufacturing steps that are called production cells. Each production cell contains several manufacturing devices, e.g. industrial robots or hoisting platforms, that are controlled by a PLC. A PLC is a specialized automation hardware that dif- fers significantly from common desktop PCs. A PLC has

Upload: others

Post on 03-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sequence-Controlled Web Services for Programmable Logic Controllers

Sequence-Controlled Web Services forProgrammable Logic Controllers

Christoph Stoidner, Markus Mathes, Bernd Freisleben

Dept. of Mathematics and Computer Science, University of MarburgHans-Meerwein-Str. 3, D-35032 Marburg, Germany{stoidner,mathes,freisleb}@informatik.uni-marburg.de

Abstract: The use of service-oriented architectures based on web services in the manufacturinglayer of industrial enterprises enables vertical integration and promises increased interoperabil-ity. Unfortunately, the differing execution patterns—cyclic execution on programmable logiccontrollers vs. on-demand execution on industrial PCs—complicate the use of web services inthe manufacturing layer. This paper introduces sequence-controlled web services that permitto easily export a control module as a web service. An automation engineer can use familiarIEC 61131-3 programming languages to implement the control application and subsequentlycan export selected modules as web services.

Keywords: Factory and Industrial Automation, Enterprise-wide Information System,Web-based Service for Maintenance and Process Supervision

1. INTRODUCTION

The software infrastructure of today’s industrial enter-prises in the manufacturing domain, e.g. vehicle manu-facturing and aircraft construction, typically consists atleast of two different layers: The business layer contain-ing software functionality for planning purposes, and themanufacturing layer where the core business of an indus-trial enterprise is located—the manufacturing process. Thesoftware in the business layer is usually based on stan-dardized web service solutions, whereas the manufacturinglayer utilizes vendor-specific automation solutions. Thevertical adoption of a service-oriented architecture (SOA)based on web services on both layers is desirable, sinceit leads to a homogeneous communication infrastructurebased on a single communication paradigm within theentire enterprise (Jammes and Smit (2005)).

Unfortunately, the use of web services in the manufac-turing layer is aggravated by the fundamentally differentprocessing paradigms of both technologies. Web servicesare processed on-demand in contrast to manufacturingcontrol applications that operate in a processing loop.Consequently, from an automation engineer’s point ofview, exposing control application functionality as webservice is difficult.

The main research contributions of this paper are: (1) Thepaper identifies the challenges of using web services in themanufacturing layer. (2) To solve the identified problems, anew approach to interface web services and manufacturingcontrol applications called sequence-controlled web servicesis presented. Sequence-controlled web services are compat-ible with the IEC 61131-3 PLC programming standard(International Electrotechnical Commission (IEC) (2003))that is well-known by automation engineers. The sequence-controlled web services have been developed as part of theTime-Constrained Services (TiCS) framework (Mathes

et al. (2008a)). TiCS is a full-fledged development andexecution environment for time-constrained web servicesand consists of four functional layers—tool support layer,real-time service layer, real-time infrastructural layer, andhardware layer—that contain several components to meetthe demands of a web service based automation infrastruc-ture.

The rest of this paper is organized as follows. Section 2explains the use of programmable logic controllers (PLCs)for industrial automation. In Section 3, the two differentprocessing paradigms of web services and manufacturingapplications and resulting problems are discussed. Section4 presents the sequence-controlled web services approachfor processing web services on PLCs. Section 5 presentsa prototypical implementation of our approach. Section 6demonstrates a use case realized via sequence-controlledweb services. Related work is discussed in section 7.Section 8 concludes the paper and outlines areas for futurework.

2. INDUSTRIAL AUTOMATION USINGPROGRAMMABLE LOGIC CONTROLLERS

This section outlines the conventional implementationof control applications using PLCs. More precisely, thefunctionality of a PLC is presented and best-practicesolutions developed over the years for the design andimplementation of production processes are discussed.

At present, the entire manufacturing process is subdividedinto several disjunctive manufacturing steps that are calledproduction cells. Each production cell contains severalmanufacturing devices, e.g. industrial robots or hoistingplatforms, that are controlled by a PLC.

A PLC is a specialized automation hardware that dif-fers significantly from common desktop PCs. A PLC has

Page 2: Sequence-Controlled Web Services for Programmable Logic Controllers

PLC Application Task List

Task<<abstract>>

POU

Function Block ProgramFunction

1 11

*

1

1

<<executes>>

<<calls>>*

*

Fig. 1. Logical structure of a PLC application.

several input/output modules that are connected to sen-sors and actuators, respectively. A sensor collects (oftenanalog) input data from the shop floor, e.g. temperature,pressure, or humidity, whereas an actuator allows to ma-nipulate the production process. Examples for actuatorsare electric motors, solenoids, or conveyor belts.

To control the manufacturing devices, the PLC reads thedata from the sensors, computes the necessary reactionusing a PLC application, and uses its actuators to react.The PLC application is set up by a domain expert, namelythe automation engineer who maintains the productionprocess. Most PLC vendors provide a proprietary inte-grated development environment allowing to implementthe PLC application with respect to the IEC 61131-3standard.

An IEC 61131-3 compatible PLC application is organizedinto several modules that are called program organizationunits (POUs). A POU consists of multiple expressionsof one of the following programming languages: FunctionBlock Diagram (FBD), Instruction List (IL), Ladder Dia-gram (LD), Structured Text (ST), or Sequential FunctionChart (SFC). A POU may also contain calls to otherPOUs. Three types of POUs can be distinguished:

• A function is comparable with functions known fromother programming languages like C. A function isdefined by a unique name, several input variables (thearguments) and a return type. Furthermore, a func-tion consists of local variables and some instructions.The instance of a function is allocated on the caller’sstack and exists only during its execution. When thefunction terminates, its instance is destroyed.• A function block is similar to a C++ or Java class

containing only a single method. Like a function,it is defined by a unique name and several inputvariables (the arguments), local variables and someinstructions. A function block has no return type, butmay consist of several output variables. The callerhas to create an instance manually, thus the instanceexists beyond its execution.• A program is similar to a singleton, i.e. only one

instance of the program exists. It may contain localvariables that are allocated statically. Consequently,the instance of a program exists during the completeruntime of the PLC application.

A PLC application operates in a loop called input-processing-output cycle (IPO cycle). Such an IPO cycleis called a PLC task. Since each step in an IPO cycle canonly take a predetermined time, a PLC inherently supportsreal-time processing. A PLC application consists of one ormore PLC tasks. Each task is responsible for the executionof a dedicated program POU defined by the automation

New Position

Start Positioning Position

Reached

Fig. 2. Carriage movement using a PLC.

engineer. Figure 1 outlines the logical structure of a PLCapplication.

Figure 2 shows the installation of a simple automationexample using a PLC. In the example, a carriage can bemoved from left to right and vice versa on an axis. ThePLC has two physical inputs in1 (trigger new positioningof the carriage) and in2 (define the new position) and onephysical output out1 (lamp for signaling that new positionhas been reached).

Figure 3 shows the program POU Axis that realizesthe described PLC application using the IEC 61131-3programming language FBD. The POU consists of oneinstance of the function block TON named tonPos andone instance of the function block FBAxisControl namedaxisControl. TON implements an on-delay timer, i.e. ona rising edge on its input IN, it delays for the time givenon input PT. After the delay, the output Q becomes TRUE.The function block FBAxisControl controls the axis. On arising edge on startPositioning, it moves the carriage tothe position given on newPosition. While the positioningis active, the output ready is FALSE. When the newposition is reached, FBAxisControl sets ready to TRUE.

The program POU Axis in Figure 3 uses the physicalinput in1 of the PLC to start a new positioning process.The physical input in2 contains the new position for thecarriage. The POU tonPos between in1 and the inputstartPositioning of axisControl realizes a delay of500ms to assure that the analog value on in2 has a stablestate when the process starts. The physical output out1signals the state of the axis since it is connected to readyof axisControl.

The program POU Axis is attached to a PLC task of theapplication. The PLC task executes the attached POUcyclically with a defined interval time. In every cycle,all concerned POUs (here tonPos and axisControl) areexecuted to read their inputs, do some processing andwrite their outputs. Thus, every POU is a state machinethat will be triggered by the task. Each task within a PLCcan be given a priority depending on its importance withregard to the control application.

3. PROBLEM STATEMENT

The use of web services in combination with PLC ap-plications is complicated by the fundamentally differentprocessing paradigms of both technologies. A PLC appli-cation consists of several PLC tasks, i.e. infinitely runningIPO cycles, that are scheduled by a real-time operating

Page 3: Sequence-Controlled Web Services for Programmable Logic Controllers

Fig. 3. A PLC control program for carriage movement.

SOAP

TaskPLC Application

POU

outputs

POU

inputs

outputs

POU

inputs WS

Fig. 4. Execution of PLC tasks and web service operations.

system. In contrast, a web service offers several operationsthat can be invoked at an arbitrary time. To permit theinteraction of the PLC control application and the webservice interface, the web services must write the inputsand read the outputs of the POUs. Figure 4 illustratesthis behaviour.

Regarding the previous example, a corresponding webservice operation has to access the inputs of the POUaxisControl and finally has to wait until the outputready becomes TRUE again. This leads to several problems:

• task synchronization: The web service operationand the PLC tasks are executed concurrently (indifferent tasks). To avoid race conditions, the taskshave to be synchronized if they access the sameresources (such as inputs or ouputs of a POU). Theautomation engineer is responsible for protecting allcritical sections against competing calls, e.g. by meansof a mutex semaphore operation. However, using amutex semaphore to synchronize a PLC control taskand the SOAP task is challenging, since too manySOAP invocation messages will also slow down thePLC control task and therefore will result in theviolation of real-time constraints.• dataflow problem: Inputs and outputs of a POU

have to be written/read taking the IPO cycle intoaccount, i.e. (1) input variables have to be written, (2)processing has to be triggered, (3) output variableshave to be read. This procedure becomes apparentin the example shown in Figure 3: After setting theinput startPositioning, the output ready is stillTRUE until the POU is triggered and recognizes thenew input value. Thus, before interpreting the outputvalue, the web service operation has to wait until thePOU is triggered by its PLC task. However, there isno standard mechanism for this purpose.• scheduler issues: Since the web service operation

is executed in the context of the SOAP engine, it isnot embedded within the PLCs multitasking concept,i.e. the PLC task scheduler does not handle the webservice operation. Consequently, it is not possible toprioritize web service operations among each otheror with running PLC tasks. Furthermore, their ex-

Fig. 5. Execution of a web service by means of a SOAfunction block.

ecution is transparent for the real-time watchdog ofthe underlying real-time operating system and theirreal-time constraints are not observed.

A convenient web service interface for PLCs should em-bed the execution of the web service operation into thecorresponding IPO cycle. Thus, the web service operationis related to the context where it belongs to with allcorresponding real-time parameters (such as cycle time,priority, etc.). Consequently, there is no additional syn-chronization concept required. Furthermore, the dataflowproblem is solved since the PLC development environmentknows the web service and may adjust the dataflow corre-spondingly.

4. SEQUENCE-CONTROLLED WEB SERVICES

This section presents a new approach for realizing webservices on a PLC called sequence-controlled web services.It solves the problems discussed in Section 3 and improvesthe usability of web services in combination with PLCapplications.

A sequence-controlled web service is a regular web servicewith a specialized processing flow adapted to the PLCprogramming paradigm. From the client’s point of view,a sequence-controlled web service is not distinguishablefrom a regular web service. An operation of a sequence-controlled web service is represented by an instance of afunction block POU called SOA function block. The SOAfunction block encapsulates the input/output parametersof the SOAP request/response message and maps them toits own inputs/outputs.

The SOA function block forwards the input parametersof a SOAP request message to the succeeding POU. Thus,they are mapped to the outputs of the SOA function block.On the other hand, the SOA function block forwards thedata from the preceding POU to the SOAP engine for theuse as return parameters within a SOAP response message.Thus, the SOA function block’s inputs are mapped to theSOAP return parameters. Figure 5 illustrates this concept.

Additionally, the SOA function block contains a booleaninput (chipselect-in) and output (chipselect-out). Thechipselect output indicates to the PLC application that theoutput values are valid. Thus, the chipselect output is TRUEwhile a SOAP invocation message is pending. In contrast,the chipselect input indicates to the SOAP engine that theinput values are valid. The PLC application sets this inputto TRUE if the SOAP invocation message is processed.

Page 4: Sequence-Controlled Web Services for Programmable Logic Controllers

Fig. 6. Example of a simple SOA-ready PLC application.

Figure 6 shows the SOA-ready implementation of the car-riage example. The instance moveTo of the function blockFBMoveTo realizes the web service operation. The chipse-lect output is used to trigger the start positioning process.The output position supplies the position value fromthe SOAP invocation message. As soon as the position isreached, the output ready of axisControl acknowledgesthe web service operation via the chipselect input. Whenthe chipselect input is TRUE, the SOAP response will besent to the web service consumer.

Besides solving the problems discussed in Section 3,sequence-controlled web services offer additional advan-tages. The web service operation is no longer an unlabeledfunction that is called within the SOAP engine. It is rep-resented by a graphical element that may be used at anylocation within the PLC application. Thus, it is placed andconnected directly to the interacting POUs. Furthermore,it is possible to create more than one instance of a functionblock representing a web service operation. Thus, in appli-cations with several similar production lines, the requirednumber of instances could be created—one instance foreach line. Each instance is accessible by a unique webservice operation.

The sequence-controlled web services approach allows se-lecting several function blocks of a PLC application forSOA handling, i.e. each instance of a selected functionblock becomes accessible by a unique web service oper-ation. To enable a function block for SOA handling, someadditional handling code is required. This code organizesthe interaction with the underlying SOAP engine andmanages the input/output-mapping with the instances ofthe function blocks.

The handling code consists of two components for eachinstance of a SOA function block: (1) A handler functionthat will be called on an incoming SOAP request message.(2) The SOA function block’s implementation that will betriggered by the IPO cycle.

4.1 Handler Function

The handler function is a function POU that has to be ex-ported by the underlying SOAP engine. Thus, the functionis executed within the SOAP task context. On invocation,it performs the input/output-mapping as discussed before.For this purpose, it writes the values of the input messagesto the outputs of the function block instance and setsthe chipselect output to TRUE. After that, it waits untilthe chipselect input becomes TRUE. Then, it reads theinputs of the function block instance and uses them asreturn parameter for the web service operation. Figure 7illustrates the interaction between the SOA function blockand the handler function. The write access to the outputsand chipselect output as well as the read access to the

Fig. 7. Data mapping with handler function.

inputs and the chipselect input are enclosed in a mutexsemaphore block. This assures a synchronous access to thePLC task’s IPO cycle, as described below.

4.2 SOA Function Block

The SOA function block’s implementation permits theactivation of the handler function at the correct point intime within the IPO cycle. To accomplish this, the samemutex semaphore block applied by the handler functionis also used here. The mutex semaphore block is reservedby the SOA function block instance. When it is triggeredby the IPO cycle, the implementation releases the mutexsemaphore block. Then, the SOA function block permitsaccess to the IPO cycle to the handler function to performthe mapping. Afterwards, the mutex semaphore block isagain reserved by the SOA function block instance. Figure7 shows the alternate execution of the SOA functionblock implementation and the handler function’s mappingsections.

5. IMPLEMENTATION

This section presents a prototypical implementation of thesequence-controlled web services approach. More precisely,the generator for the handling code and the handling codeitself are discussed.

5.1 Soft- and Hardware Environment

The IPC@CHIPR©

based PLC (Beck IPC GmbH (2008))was used as our experimental hardware. As our PLC devel-opment environment, the IEC 61131-3 based programmingsystem CoDeSys (http://www.3s-software.com/) wasused. The CoDeSys programming system consists of twosoftware components. The first one is CoDeSys itself. Thisis a Microsoft Windows application that realizes the PLCdevelopment environment consisting of editor, compiler,debugger, etc. The second software component is the run-time system called CoDeSys SP. CoDeSys SP runs on thetarget system (the IPC@CHIP

R©based PLC) and manages

Page 5: Sequence-Controlled Web Services for Programmable Logic Controllers

Fig. 8. The handler function and extended SOA functionblock.

download, linking, execution, and debugging of the PLCapplication.

The actual SOAP protocol handling is realized by theSOAP4PLC (Mathes et al. (2009)) engine, a SOAP engineespecially designed for use on a PLC.

5.2 Handling Code

The signature of each handler function depends on thesignature of the corresponding SOA function block. Thus,all output variables of the SOA function block are used asinput arguments for the handler function and all inputs ofthe SOA function block are used as return arguments ofthe handler function. Note that the chipselect input andoutput variables are ignored, since they are not visiblefor the web service consumer. Figure 8 shows the handlerfunction for moveTo used in the example of Figure 6.

The implementation of the SOAAxis moveTo handler func-tion follows the steps shown in Figure 7. The mutexsemaphore—an instance of the function block FBMutexprovided by a system library—is allocated within thelocal data of the SOA function block (comparable withan attribute in object-oriented programming languages).Consequently, every instance of the SOA function blockuses its own mutex semaphore. The SOA function block’simplementation is extended to control the activation ofthe handler function. For this purpose, the local mutexsemaphore is released and subsequently reserved again, asshown in Figure 8.

The handler function requires to be registered at theSOAP4PLC engine. After that, the SOA function blocksare accessible by their location instance name (i.e. nameof the environmental POU). The example in Figure 8is accessible by the operation moveTo of the web serviceSOAAxis.

Since the handling code follows a recurrent pattern, itcan be generated automatically. CoDeSys’ macro supportallows to implement a simple code generator, e.g. usinga pattern matching script language like awk (Aho, A. V.and Kernighan, B. W. and Weinberger, P. (1998)).

6. USE CASE

This section describes an application of the sequence-controlled web services approach.

Figure 9 shows a photograph of the installation. The axis(3) consists of a one dimensional rail on which a carriage

Fig. 9. Overview of the experimental setup.

is installed. The carriage is driven by a high voltage servo-motor. The servo controller (2) that manages the powersupply is connected to an IPC@CHIP

R©based PLC (1)

via Profibus—an industrial real-time bus (http://www.profibus.com/pi/).

The control software is implemented as a PLC application.The axis control is encapsulated in a function block calledSEC AC. The function block contains several inputs andoutputs to control the axis and to determine its currentstate. Some of these inputs and outputs are controlledby SOA function blocks to permit control of the carriageusing web services. The rest of the inputs and outputs arecontrolled by a cyclic PLC task that verifies the accuratefunction of the entire device permanently. If an exceptionoccurs, it stops the carriage and switches off the power toavoid threats to life or physical condition or damages tothe hardware.

To move the carriage, the inputs startPositioning andnewPosition are used. First, the new position is definedusing newPosition. After that, the boolean input start-Positioning has to go from FALSE to TRUE (high edgetriggered). When SEC AC has recognized the high edge, theoutput ready becomes FALSE and the positioning processstarts. When the new position has been reached, theoutput ready becomes TRUE again. The positioning processusing a web service is provided by the SOA function blockFBMoveTo. FBMoveTo consists of a chipselect-out (clk), achipselect-in (ack) and an integer output called position.When the corresponding web service invocation arrives,chipselect-out is set to high level and the positioningprocess is triggered via startPositioning. When thepositioning process has been finished, a high edge on theready output of SEC AC acknowlegdes this to the webservice via the chipselect-in of FBMoveTo. FBMoveTo isaccessible via the operation moveTo of the web serviceAxis.

Besides the operation moveTo, the PLC application sup-ports further web service operations. Two of them—the function blocks FBSetupVelocity and FBSetup-Acceleration—support the configuration of the car-riage’s velocity and acceleration. Their outputs (velocityand acceleration) are connected to the correspondinginputs of SEC AC. To buffer the input value for velocityrespectively acceleration, a latch is used. This is re-quired since the ouput of the FBSetupVelocity respec-tively FBSetupAcceleration is only valid during the cor-responding web service invocation.

Page 6: Sequence-Controlled Web Services for Programmable Logic Controllers

Fig. 10. SOA-ready carriage control application.

The last three web service operations return the val-ues of the outputs maxPosition, maxVelocity and max-Acceleration of SEC AC. Thus, the outputs are connectedto the concerned function blocks’ inputs. The SOA func-tion blocks’ chipselect-outputs are connected to their ownchipselect-inputs, i.e. the web service operations are re-turning immediately.

7. RELATED WORK

The SIRENA project (Jammes and Smit (2005)) is aimedat the development of a service infrastructure for real-time embedded networked applications. Unfortunately,SIRENA only offers an innovative architectural blueprintof service-oriented industrial automation, but no practicalimplementation or tool support are presented.

Gilart-Iglesias et al. (2007) present a normalization processof industrial machinery called Industrial Machine as aService (IMaaS). Even though IMaaS is similar to ourapproach, no connection to well-established automationtools and programming languages (such as IEC 61131-3)is presented.

Web Service for Devices (WS4D) (http://ws4d.org/)present a toolkit that adopts Microsoft’s DPWS technol-ogy in the industrial automation domain. Unfortunately,there is no stack available that permits the usage of DPWSwithin a typical development environment for industrialautomation software.

Kalogeras et al. (2004) present a web service based systemarchitecture for industrial enterprises. This architectureignores the specific real-time requirements within themanufacturing layer and tool support for automationengineers. Thus, our proposal can be used as a technicalfoundation for this architecture.

8. CONCLUSIONS

The use of web services within industrial automationpromises to offer several benefits. Web services permitthe interaction between the manufacturing layer and thebusiness layer without knowledge of the details of thecounterpart. Unfortunately, the use of web services ona PLC is complicated by the fundamentally differentprocessing paradigm of a PLC compared with an IPC.The sequence-controlled web services approach presentedin this paper interfaces web services and PLCs with respectto the IEC 61131-3 PLC programming standard. Insidethe PLC application, a sequence-controlled service appearsas a conventional PLC program module. Consequently,

the web service module is organized by common PLCmechanisms like prioritization, monitoring, or real-timewatchdog inspection.

In future work, we will integrate WS-TemporalPolicy(Mathes et al. (2008b)) to describe the real-time propertiesof the PLC application. Additionally, we will concentrateon asynchronous web services to handle signals and alarms.

REFERENCESAho, A. V. and Kernighan, B. W. and Weinberger, P.

(1998). The awk Programming Language. http://netlib.bell-labs.com/cm/cs/awkbook/index.html.

Beck IPC GmbH (2008). http://www.beck-ipc.com.Gilart-Iglesias, V., Macia-Perez, F., Marcos-Jorquera, D.,

and Mora-Gimeno, F.J. (2007). Industrial Machinesas a Service: Modelling Industrial Machinery Processes.In Proceedings of the 5th IEEE International Confer-ence on Industrial Informatics (INDIN), 737–742. IEEEComputer Society Press.

International Electrotechnical Commission (IEC) (2003).Programmable Controllers – Part 3: Programming Lan-guages (IEC 61131-3). Technical report, IEC. http://www.iec.ch/.

Jammes, F. and Smit, H. (2005). Service-OrientedParadigms in Industrial Automation. IEEE Transac-tions on Industrial Informatics, 1, 62–69.

Kalogeras, A., Gialelis, J., Alexakos, C., Georgoudakis,M., and Koubias, S. (2004). Vertical Integration ofEnterprise Industrial Systems Utilizing Web Services.In Proceedings of the 5th IEEE International Workshopon Factory Communication Systems (WFCS), 187–192.IEEE Computer Society Press.

Mathes, M., Heinzl, S., and Freisleben, B. (2008a). To-wards a Time-Constrained Web Service Infrastructurefor Industrial Automation. In Proceedings of the 13th

IEEE International Conference on Emerging Technolo-gies and Factory Automation (ETFA), 846–853. IEEEComputer Society Press.

Mathes, M., Heinzl, S., and Freisleben, B. (2008b). WS-TemporalPolicy: A WS-Policy Extension for DescribingService Properties with Time Constraints. In Proceed-ings of the 1st IEEE International Workshop On Real-Time Service-Oriented Architecture and Applications(RTSOAA), 1180–1186. IEEE Computer Society Press.

Mathes, M., Stoidner, C., Heinzl, S., and Freisleben, B.(2009). SOAP4PLC: Web Services for ProgrammableLogic Controllers. In Proceedings of the 17th Euromi-cro International Conference on Parallel, Distributed,and Network-Based Processing (PDP), 210–219. IEEEComputer Society Press.