Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHODS, APPARATUS AND COMPUTER PROGRAMS
Document Type and Number:
WIPO Patent Application WO/2012/152890
Kind Code:
A2
Abstract:
A method comprising: receiving state information for a plurality of elements of a system, the state information defining one or more physical attributes of the plurality of elements; and generating control information for one or more elements of the plurality of elements, using the received state information for the plurality of elements. One or more sequence checks and/or one or more interlock checks may be performed to generate the control information. The one or more interlock checks and the one or more sequence checks between the plurality of elements may define control behaviour for the plurality of elements.

Inventors:
HARRISON ROBERT (GB)
VERA DANIEL (FR)
MCLEOD CHARLES STUART (GB)
Application Number:
PCT/EP2012/058692
Publication Date:
November 15, 2012
Filing Date:
May 10, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV LOUGHBOROUGH (GB)
HARRISON ROBERT (GB)
VERA DANIEL (FR)
MCLEOD CHARLES STUART (GB)
International Classes:
G05B23/02; G05B19/05
Foreign References:
US6453210B12002-09-17
US20030234218A12003-12-25
Other References:
None
Attorney, Agent or Firm:
THOULD, Lee et al. (48 Friar Gate, Derby Derbyshire DE1 1GY, GB)
Download PDF:
Claims:
CLAIMS

1 . A method comprising:

receiving state information for a plurality of elements of a system, the state information defining one or more physical attributes of the plurality of elements; and

generating control information for one or more elements of the plurality of elements, using the received state information for the plurality of elements. 2. A method as claimed in claim 1 , wherein one or more sequence checks and/or one or more interlock checks are performed to generate the control information.

3. A method as claimed in claim 2, wherein the one or more interlock checks and the one or more sequence checks between the plurality of elements define control behaviour for the plurality of elements.

4. A method as claimed in any of the preceding claims, further comprising causing the control information to be transmitted to a programmable controller for controlling the at least one element of the plurality of elements of the system.

5. A method as claimed in any of the preceding claims, further comprising controlling the one or more elements of the plurality of elements of the system using the generated control information.

6. A method as claimed in any of the preceding claims, wherein the elements of the system are machine elements and/or human elements. 7. A method as claimed in any of the preceding claims, wherein the one or more physical attributes of the plurality of elements include a position and/or a movement vector for at least some of the plurality of elements.

8. A method as claimed in any of the preceding claims, wherein the programmable controller is a programmable logic controller (PLC). 9. A method as claimed in any of the preceding claims, wherein the system is a manufacturing system, an energy management and control system, a warehousing and logistics system or a transportation system.

10. An apparatus comprising:

at least one processor;

at least one memory including computer program code;

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

receiving state information for a plurality of elements of a system, the state information defining one or more physical attributes of the plurality of elements; and

generating control information for at least one element of the plurality of elements, using the received state information for the plurality of elements. 1 1 . A computer program that, when run on a computer, performs a method as claimed in any of claims 1 to 9.

12. A method comprising:

providing a graphical user interface including visualisations of a plurality of elements of a system;

receiving state information for the plurality of elements of the system, the state information defining one or more physical attributes of the plurality of elements; and

controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements.

13. A method as claimed in claim 12, wherein the plurality of elements are inter-related via sequence checks and interlock checks, wherein the interlock checks and the sequence checks define the behaviour of the system. 14. A method as claimed in claim 13, wherein the graphical user interface is configured to provide engineering tools for enabling the interlock checks and the sequence checks to be defined.

15. A method as claimed in any of claims 12 to 14, wherein controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements includes changing a position, and/or movement and/or a colour of the visualisations.

16. A method as claimed in any of claims 12 to 15, wherein the elements of the system are machine elements and/or human elements.

17. A method as claimed in any of claims 12 to 16, wherein the one or more physical attributes of the plurality of elements include a position and/or a movement vector and/or a force and/or a temperature and/or a speed and/or a velocity for at least some of the plurality of elements.

18. An apparatus comprising:

at least one processor;

at least one memory including computer program code;

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

providing a graphical user interface including visualisations of a plurality of elements of a system;

receiving state information for the plurality of elements of the system, the state information defining one or more physical attributes of the plurality of elements; and controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements.

19. A computer program that, when run on a computer, performs a method as claimed in any of claims 12 to 17.

20. A method comprising:

providing a graphical user interface including engineering tools and visualisations of a plurality of elements of a system, the plurality of elements including at least one element representing a human operator;

enabling the human operator element position and movement to be defined in, and controlled within, the engineering tools, and to be observed on the graphical user interface;

recording the position and movement of the human operator element in the graphical user interface in a state based representation; and

providing an output defined by the recorded position and movement information of the human operator.

21 . A method as claimed in claim 20, wherein the recorded position and movement of the human operator element are observable via the graphical user interface.

22. A method as claimed in claim 20 or 21 , wherein the plurality of elements include one or more machine elements and the position and movement of the human operator element are defined in relation to the one or more machine elements.

23. A method as claimed in claim 22, wherein the output includes timing information for the one or more machine elements.

24. A method as claimed in any of claims 20 to 23, wherein the output includes the position and movement information of the human operator over time 25. A method as claimed in any of claims 20 to 24, wherein the output is a Modular Arrangement of predetermined Time Standards (MODAPTS) output, or a Methods Time Measurement (MTM) output or Global Study Process Allocation System (GSPAS) output. 26. An apparatus comprising:

at least one processor;

at least one memory including computer program code;

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

providing a graphical user interface including engineering tools and visualisations of a plurality of elements of a system, the plurality of elements including at least one element representing a human operator;

enabling the human operator element position and movement to be defined in, and controlled within, the engineering tools, and to be observed on the graphical user interface;

recording the position and movement of the human operator element in the graphical user interface in a state based representation; and

providing an output defined by the recorded position and movement information of the human operator.

27. A computer program that, when run on a computer, performs a method as claimed in any of claims 20 to 25.

28. A method comprising:

enabling control data to be generated at an apparatus, the control data being for use by a programmable controller to control one or more machine elements of a system, the control data being generated in a structure directly useable by the programmable controller; and

causing the control data to be transmitted to the programmable controller.

29. A method as claimed in claim 28, wherein the control data is encoded in a programming language of the programmable controller.

30. A method as claimed in claim 28 or 29, wherein the control data has a predetermined structure, the predetermined structure being directly useable by a computer program of the programmable controller to control one or more machine elements of the system.

31 . A method as claimed in any of claims 28 to 30, further comprising providing a graphical user interface for enabling a user to generate the control data.

32. A method as claimed in any of claims 28 to 31 , wherein the programmable controller is a programmable logic controller (PLC).

33. A method as claimed in any of the preceding claims, wherein the system is a manufacturing system, an energy management and control system, a warehousing and logistics system or a transportation system. 34. An apparatus comprising:

at least one processor;

at least one memory including computer program code;

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

enabling control data to be generated, the control data being for use by a programmable controller to control one or more machine elements of a system, the control data being generated in a structure directly useable by the programmable controller; and

causing the control data to be transmitted to the programmable controller.

35. A computer program that, when run on a computer, performs a method as claimed in any of claims 28 to 33.

36. Methods substantially as hereinbefore described with reference to, and/or as shown in the accompanying figures.

37. Apparatus substantially as hereinbefore described with reference to, and/or as shown in the accompanying figures. 38. Computer programs substantially as hereinbefore described with reference to, and/or as shown in the accompanying figures.

39. Any novel subject matter or combination including novel subject matter disclosed herein, whether or not within the scope of or relating to the same invention as any of the preceding claims.

Description:
TITLE

Methods, Apparatus and Computer Programs TECHNOLOGICAL FIELD

Embodiments of the present invention relate to methods, apparatus and computer programs. In particular, they relate to methods, apparatus and computer programs in a manufacturing system.

BACKGROUND

In manufacturing systems, it is usual for a programmable logic controller (PLC) to control the operation of machine elements such as actuators, robots etc. If the manufacturing system is incorrectly designed, poorly commissioned, faulty or is not optimised, an engineer may have to visit the PLC and the machine elements to carry our repairs. However, the PLC and machine elements may be located in a different town or even country to the engineer and it may therefore be relatively expensive and inconvenient to carry out engineering activities throughout their lifecycle.

BRIEF SUMMARY

According to various, but not necessarily all, embodiments of the invention there is provided a method comprising: receiving state information for a plurality of elements of a system, the state information defining one or more physical attributes of the plurality of elements; and generating control information for one or more elements of the plurality of elements, using the received state information for the plurality of elements.

One or more sequence checks and/or one or more interlock checks may be performed to generate the control information. The one or more interlock checks and the one or more sequence checks between the plurality of elements may define control behaviour for the plurality of elements.

The method may further comprise causing the control information to be transmitted to a programmable controller for controlling the at least one element of the plurality of elements of the system. The method may further comprise controlling the one or more elements of the plurality of elements of the system using the generated control information.

The elements of the system may be machine elements and/or human elements.

The one or more physical attributes of the plurality of elements may include a position and/or a movement vector for at least some of the plurality of elements. The programmable controller may be a programmable logic controller (PLC).

The system may be a manufacturing system, an energy management and control system, a warehousing and logistics system or a transportation system.

According to various, but not necessarily all, embodiments of the invention there is provided an apparatus comprising: at least one processor; at least one memory including computer program code; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: receiving state information for a plurality of elements of a system, the state information defining one or more physical attributes of the plurality of elements; and generating control information for at least one element of the plurality of elements, using the received state information for the plurality of elements.

According to various, but not necessarily all, embodiments of the invention there is provided a computer program that, when run on a computer, performs a method as described in any of the preceding paragraphs.

According to various, but not necessarily all, embodiments of the invention there is provided a method comprising: providing a graphical user interface including visualisations of a plurality of elements of a system; receiving state information for the plurality of elements of the system, the state information defining one or more physical attributes of the plurality of elements; and controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements.

The plurality of elements may be inter-related via sequence checks and interlock checks, wherein the interlock checks and the sequence checks may define the behaviour of the system. The graphical user interface may be configured to provide engineering tools for enabling the interlock checks and the sequence checks to be defined.

Controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements may include changing a position, and/or movement and/or a colour of the visualisations.

The elements of the system may be machine elements and/or human elements. The one or more physical attributes of the plurality of elements may include a position and/or a movement vector and/or a force and/or a temperature and/or a speed and/or a velocity for at least some of the plurality of elements. According to various, but not necessarily all, embodiments of the invention there is provided an apparatus comprising: at least one processor; at least one memory including computer program code; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: providing a graphical user interface including visualisations of a plurality of elements of a system; receiving state information for the plurality of elements of the system, the state information defining one or more physical attributes of the plurality of elements; and controlling the graphical user interface using the received state information to change the visualisations of the plurality of elements.

According to various, but not necessarily all, embodiments of the invention there is provided a computer program that, when run on a computer, performs a method as described in any of the preceding paragraphs.

According to various, but not necessarily all, embodiments of the invention there is provided a method comprising: providing a graphical user interface including engineering tools and visualisations of a plurality of elements of a system, the plurality of elements including at least one element representing a human operator; enabling the human operator element position and movement to be defined in, and controlled within, the engineering tools, and to be observed on the graphical user interface; recording the position and movement of the human operator element in the graphical user interface in a state based representation; and providing an output defined by the recorded position and movement information of the human operator.

The recorded position and movement of the human operator element may be observable via the graphical user interface. The plurality of elements may include one or more machine elements and the position and movement of the human operator element may be defined in relation to the one or more machine elements. The output may include timing information for the one or more machine elements.

The output may include the position and movement information of the human operator over time

The output may be a Modular Arrangement of predetermined Time Standards (MODAPTS) output, or a Methods Time Measurement (MTM) output or Global Study Process Allocation System (GSPAS) output. According to various, but not necessarily all, embodiments of the invention there is provided an apparatus comprising: at least one processor; at least one memory including computer program code; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: providing a graphical user interface including engineering tools and visualisations of a plurality of elements of a system, the plurality of elements including at least one element representing a human operator; enabling the human operator element position and movement to be defined in, and controlled within, the engineering tools, and to be observed on the graphical user interface; recording the position and movement of the human operator element in the graphical user interface in a state based representation; and providing an output defined by the recorded position and movement information of the human operator.

According to various, but not necessarily all, embodiments of the invention there is provided a computer program that, when run on a computer, performs a method as described in any of the preceding paragraphs. According to various, but not necessarily all, embodiments of the invention there is provided a method comprising: enabling control data to be generated at an apparatus, the control data being for use by a programmable controller to control one or more machine elements of a system, the control data being generated in a structure directly useable by the programmable controller; and causing the control data to be transmitted to the programmable controller.

The control data may be encoded in a programming language of the programmable controller.

The control data may have a predetermined structure, the predetermined structure may be directly useable by a computer program of the programmable controller to control one or more machine elements of the system.

The method may further comprise providing a graphical user interface for enabling a user to generate the control data.

The programmable controller may be a programmable logic controller (PLC).

The system may be a manufacturing system, an energy management and control system, a warehousing and logistics system or a transportation system. According to various, but not necessarily all, embodiments of the invention there is provided an apparatus comprising: at least one processor; at least one memory including computer program code; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: enabling control data to be generated, the control data being for use by a programmable controller to control one or more machine elements of a system, the control data being generated in a structure directly useable by the programmable controller; and causing the control data to be transmitted to the programmable controller.

According to various, but not necessarily all, embodiments of the invention there is provided a computer program that, when run on a computer, performs a method as described in any of the preceding paragraphs.

BRIEF DESCRIPTION For a better understanding of various examples of embodiments of the present invention reference will now be made by way of example only to the accompanying drawings in which:

Fig. 1 illustrates a schematic diagram of a system according to various embodiments of the invention;

Fig. 2 illustrates a schematic diagram of an example of actuator behaviour according to various embodiments of the invention; Fig. 3 illustrates a first flow diagram according to various embodiments of the invention of how an element moves from a first state to a second state;

Fig. 4 illustrates a schematic flow diagram of another system according to various embodiments of the invention;

Fig. 5 illustrates a second flow diagram according to various embodiments of the invention;

Fig. 6 illustrates a third flow diagram according to various embodiments of the invention; Fig. 7 illustrates a fourth flow diagram according to various embodiments of the invention;

Fig. 8 illustrates a fifth flow diagram according to various embodiments of the invention; and

Fig. 9 illustrates an exemplary graphical user interface including a human operator element according to various embodiments of the invention. DETAILED DESCRIPTION

Fig. 1 illustrates a schematic diagram of a system 10 according to various embodiments of the invention. The system 10 may be a manufacturing system and may be, for example, an automotive manufacturing system. In other embodiments, the system 10 may be an energy management and control system, a warehousing and logistics system, a transportation system or any control system where a programmable logic controller (PLC) is used.

The system 10 includes a programmable controller 12, a plurality of actuator elements 14, sensor elements 99, a network 18 and an apparatus 20 for generating control data for the programmable controller 12. The programmable controller 12 hardware and/or software includes the representation of a plurality of elements of sensor, actuator and other types. The actuator and sensor elements 14, 99 provide actuator and sensor behaviour in the system respectively. The actuator elements 14 include an actuator 14i and associated feedback sensor(s) 161. It should be noted that the feedback sensor(s) 16i may not always be present. The sensor elements 99 include one or more sensors to report the state of part of the external system (outside world) of interest. The modelling of these actuator and sensor elements within software embodies the control of the system. In addition to sensor and actuator elements, the system may also include virtual elements with no external manifestation, which typically enable process behaviour to be defined, or other functionality such as counting or timing. The modelling of human operators within the software is also supported via elements. The modelling of part-flow (or any other outside world state behaviour) may also be supported via other forms of element.

The programmable controller 12 may be any suitable programmable controller for controlling the plurality of elements (e.g. actuators) 14 (encapsulating 14i and 16i) and monitoring sensor elements 99 and may be a programmable logic controller (PLC) or a programmable logic relay (PLR) for example. The programmable controller 12 includes a controller 22, a memory 24, a user input device 26 and a display 28. The controller 22 may be any suitable controller and may be a microprocessor or an Application Specific Circuit (ASIC) for example. The implementation of the controller 22 can be in hardware alone (for example, a circuit or a processor), have certain aspects in software including firmware alone or can be a combination of hardware and software (including firmware). The controller 22 may be implemented using instructions that enable hardware functionality, for example, by using executable computer program instructions in a general-purpose or special-purpose processor that may be stored on a computer readable storage medium (disk, memory etc) to be executed by such a processor.

The memory 24 may include any one or more suitable memory types. The memory 24 may include Read Only Memory (ROM) for storing programs and Random Access Memory (RAM) for storing data of the programs. The memory 24 may include removable memory (such as a USB flash drive, a Compact Disk (CD), a digital versatile disk (DVD) or a Blu-Ray disk) or a nonremovable memory (such as a hard disk) for storing, loading and/or archiving the programs and/or the data. The controller 22 is configured to read from and write to the memory 24. The controller 22 may also comprise an output interface via which data and/or commands are output by the controller 22 and an input interface via which data and/or commands are input to the controller 22.

The input and output interfaces are connected to the physical manifestation of the actuator and sensor elements 14, 99 which are represented within the controller (e.g. in software or hardware). For example, the input and output of the controller 22 is from the programmable controller 12 to the actuator elements 14 (with their optionally associated sensors 16), and also from the sensor elements 99.

The memory 24 stores a first computer program 30 comprising computer program instructions that control the operation of the programmable controller 12 when loaded into the controller 22. The computer program instructions 30 provide the logic and routines that enables the programmable controller 22 to perform the methods described in the following paragraphs. The controller 22 by reading the memory 24 is able to load and execute the first computer program 30.

The first computer program 30 may arrive at the programmable controller 12 via any suitable delivery mechanism 32. The delivery mechanism 32 may be, for example, a computer-readable storage medium, a computer program product, a memory device, a record medium such as a Compact disk (CD) or a Digital Versatile Disk (DVD), a Blu-Ray Disk, an article of manufacture that tangibly embodies the first computer program 30. The delivery mechanism 32 may be a signal configured to reliably transfer the first computer program 32. The programmable controller 12 may propagate or transmit the first computer program 30 as a computer data signal. The user input device 26 may receive an input from a user of the programmable controller 12 and provide the input to the controller 22 for processing. The user input device 26 may be any suitable user input device that enables a user to interact with, and control the programmable controller 12. For example, the user input device 26 may be a keypad, a keyboard, a joystick, a computer mouse or a touch pad. In some embodiments, the user input device 26 may be integrated into the display 28 to form a touch screen display. The display 28 is configured to receive data/information from the controller 22 and display the data/information to the user of the programmable controller 12. The display 28 may be any suitable display for displaying data/information to a user of the programmable controller 12. The display 28 may be a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode display (OLED) or a cathode ray tube (CRT) display.

The plurality of actuator and sensor elements 14 and 99 respectively includes a first actuator 14i, a second actuator 14 2 and so on to an Nth actuator 14 N , and 99i to 99N sensor elements. The plurality of elements 14 and 99 includes 'machine elements' and may also include 'human operator elements'. A 'machine element' may be any mechanical component that is involved in the production of an article (that is, the assembly or creation of parts to form an article). Examples of common classes of machine elements are actuators and sensors. For example, a 'machine element' may be a robotic arm, an actuator or a fastening device such as a clamp or a vice. A system my also include virtual elements that have no physical manifestation, e.g., counters, timers, process sequences. A human operator element' may be any human (male or female) that is involved in any aspect of the production process. For example, a 'human operator element' may perform all or part of a given assembly process in combination with one or more machine elements. A 'human operator element' may also typically perform tasks to visually inspect parts that have been connected by 'machine elements' or by 'human operator elements'. The controller 22 is configured to provide control signals to the plurality of actuator elements 14 to control one or more physical attributes of the actuator elements 14, (e.g. position, movement vector, force, temperature, speed, pressure applied by the element etc) or monitor signals from sensor elements 99. For example, the controller 22 may provide a control signal to the first actuator 14i to move the first actuator 14i from a first position to a second position. If present, its state may be monitored via the feedback sensor 16 1 . These elements are modelled within the programmable controller 12 utilising the controller 22 and memory 24 which hold the control behaviour of the system 10. The transition of elements between their states is controlled by conditions which may be related to the state of the sensors 16 (if present) associated with the actuator element 14, or the states of other sensor elements 99, actuator elements 14, virtual elements, or mannequin (human operator) elements. When present, the plurality of sensors 16 include a first subset of sensors 16i, a second subset of sensors 16 2 and so on to an Nth subset of sensors 16N that are associated with the first actuator 14i, the second actuator 14 2 and so on to the Nth actuator 14 N respectively. For example, the actuator element 1 , includes the actuator itself 14i plus associated sensors 16 1 to feedback, for example, its position.

When present, the plurality of sensors 16 are configured to sense a physical attribute of the plurality of actuator elements 14 (e.g. feedback the position and/or motion of each of the plurality of elements 14) and provide the sensed information which is encapsulated into the model of each of the plurality of elements contained within the controller 22 and memory 24 of the programmable controller 12. The plurality of sensors 16 may include proximity, contact, velocity, acceleration sensors that are coupled to each of the plurality of elements 14 for providing feedback on the behaviour of those elements 14. When the sensors are not present, the actuator elements 14 will have no feedback of their actual state sent back to the model of the element within the controller 22 and memory 24. I.e., they operate in an open-loop manner.

The plurality of sensor elements 99 sense physical attributes of the outside world and provide the sensed information which is encapsulated into the model of each of the plurality of sensor elements 99 contained within the controller 22 and memory 24 of the programmable controller 12. The plurality of sensors elements 99 may include position, velocity, acceleration elements. The sensor elements have no actuation capability.

The plurality of actuator elements 14 have 'state' based behaviour which may be defined by 'static states' and 'dynamic states'. 'Static states' relate to states held for a period of time, whereas 'dynamic states' relate to the transitions between static states. For example, an element which is configured to push other elements (a pusher) may have two static states; a retracted position and an extended position. The element also has two dynamic states representing movement between these static positions, i.e. extending and retracting. The sensor elements have only static states. The controller 22 is configured to read control data from the memory 24 and provide control signals to the plurality of actuator elements 14 to change and/or maintain their states.

The plurality of sensors 16 (where present) enable sensing of the states of their associated elements within the plurality of actuator elements 14 and provide this state information to the controller 22 of the programmable controller 12. The plurality of sensor elements 99 are configured to sense the states of interest in the outside world and provide this state information to the controller 22 of the programmable controller 12. The sensor elements 99 have no actuation function and only provide state information to the controller 22 of the programmable controller 12. It is important to appreciate that the elements (actuation, sensing, mannequin, etc.) exist in a model within the software.

The controller 22 of the programmable controller 12 is configured to perform 'interlock checks' and 'sequence checks' when controlling the plurality of actuator elements 14 for each of the elements using the state information received from the states of any combination of other elements; sensor elements 99, actuator elements 14, plus virtual and mannequin (human operator). An 'interlock check' is performed to ensure that the states of other elements are maintained when an element is operating within its current state. For example, where an element is performing a drilling operation or a tapping operation, the controller 22 performs an 'interlock check' to ensure that the part being drilled or tapped is correctly secured by the other elements. A 'sequence check' is performed to ensure that an element may proceed to the next state. For example, prior to moving an element, the controller 22 may perform a sequence check to ensure that no other elements obstruct the intended path of the element. The interlock checks and the sequence checks define the overall logical control behaviour of the system 10. The network 18 may be any suitable network that enables communication between the programmable controller 12 and the apparatus 20. For example, the programmable controller 12 may transmit data to, and receive data from, the apparatus 20 via the network 18, and the apparatus 20 may transmit data to, and receive data from, the programmable controller 12 via the network. The network 18 may be the Internet, any suitable Fieldbus, a Wide Area Network (WAN), a Local Area Network (LAN) or a cellular network. In some embodiments, the network 18 may be a direct connection (e.g. a data line) between the programmable controller 12 and the apparatus 20.

The apparatus 20 may be any electronic device that enables a user to generate control data that may be used by the programmable controller 12 to control and monitor the plurality of elements 14 and 99. The apparatus 20 may be, for example, a personal computer (PC), a laptop computer, a palm top computer or a mobile cellular telephone. The apparatus 20 includes a processor 34, a memory 36, a user input device 38 and a display 40. The apparatus 20 may be located remotely from the programmable controller 12 and may be located in a different town or country.

The processor 34, memory 36, user input device 38 and the display 40 of the apparatus 20 are similar to the controller 22, memory 24, user input device 26 and the display 28 of the programmable apparatus 12 described above respectively and operate in a similar manner.

The memory 36 stores a second computer program 42 comprising computer program instructions that control the operation of the apparatus 20 when loaded into the processor 34. The computer program instructions 42 provide the logic and routines that enables the apparatus 20 to perform the methods described in the following paragraphs and those illustrated in figs. 4, 5, 6 and 7. The processor 34 by reading the memory 36 is able to load and execute the second computer program 42.

The second computer program 42 may arrive at the apparatus 20 via any suitable delivery mechanism 44. The delivery mechanism 44 may be, for example, a computer-readable storage medium, a computer program product, a memory device, a record medium such as a Compact disk (CD) or a Digital Versatile Disk (DVD), a Blu-Ray Disk, an article of manufacture that tangibly embodies the second computer program 42. The delivery mechanism 44 may be a signal configured to reliably transfer the second computer program 42. The apparatus 20 may propagate or transmit the second computer program 42 as a computer data signal.

Fig. 2 illustrates the behaviour of a typical actuator, Pusher 14i . The actuator 14i has two sensors associated with it, sensors 16i and 162. The sensors 161 and 162 enable feedback from the actuator 14i to track its state.

Transitions of the actuator 14i from dynamic states (e.g. retracting) to static states (e.g. retracted) are governed by inputs from the sensors 16N, in this case 161 assocated with this element. This is an example of a sequence check which is internal to the element, i.e., based on its own associated sensors and not the states of other elements.

Any transitions from the static states, e.g. in this case retracted and extended states, are governed by the associated transitional conditions being satisfied based on any combination of states of other elements. This is an example of a sequence check which is external to the element, i.e., based on any combination of states of other elements. Greater detail concerning the sequence check are provided below with reference to Fig. 3 and the sequence check 50.

Fig. 2 also Illustrates the behaviour of a typical sensor element, Part Present 99i . A sensor drives an element internally between two states, Part and No- Part. Sensor elements can be used in the sequence and interlock checks of other actuator or virtual elements.

Fig. 3 illustrates a first flow diagram according to various embodiments of the invention of how an element (e.g. actuator element) moves from a first state to a second state. At block 46, the first actuator 14i (for example) is in the first state (labelled 'State n' in the figure) and interlock checks 48 are performed to ensure that the states of the other actuators 14 2 ...N, sensor elements 99, or virtual or mannequin (human operator) elements are maintained. If the states of the other actuators 14 2 ... N are maintained, the controller 22 may control the first actuator 14i to continue in the first state. If the states of the other actuators 14 2 ... N are not maintained (i.e. an error has occurred), the controller 22 may control the first actuator 14i to pause or stop so as to prevent damage to the article being manufactured or injury to a human operator.

If the controller 22 intends to change the state of the first actuator 14i to the second state (labelled 'State n+1 ' in the figure), the controller 22 first performs a sequence check 50 to qualify that the first actuator 14i may proceed to the second state. If the sequence check 50 qualifies that the first actuator 14i may advance to the second state, the controller 22 sends control data to the first actuator 14i to advance to the second state. If the sequence check 50 does not qualify that the first actuator 14i may advance to the second state, the controller 22 controls the first actuator 14i to remain in its current state, I.e., no change of state occurs.

At block 52, the first actuator 14i is in the second state and interlock checks 54 are performed to ensure that the states of the other actuators 14 2 ... N , sensor elements 99, or virtual or mannequin (human operator) elements are maintained. If the states of the other actuators 14 2 ... N are maintained, the controller 22 controls the first actuator 14i to continue in the second state. If the states of the other actuators 14 2 ... N are not maintained (i.e. an error has occurred), the controller 22 raises an interlock error in actuator 14i, typically causing the machine to be paused or stopped so as to prevent damage to the article being manufactured or injury to a human operator.

Fig. 4 illustrates a schematic flow diagram of another system 56 according to various embodiments of the invention. The system 56 is similar to the system 10 illustrated in fig. 1 and where the features are similar, the same reference numerals are used. The system 56 includes a programmable logic controller (PLC) 12, machinery 14, 16, 99 including a plurality of elements and sensors, the internet 18, an electronic device 20 providing a human machine interface (HMI) and engineering tools 67, a remote web HMI 21 , a broadcaster 58, a marshaller 60, an electronic device 62 providing a local web human machine interface (HMI) 62, an installer 64, a common data model 66. It should be appreciated that there may be any number of local HMIs 62 or remote HMIs 21 .

The broadcaster 58 includes circuitry that is configured to receive data (e.g. state information on the plurality of elements 14 and 99) from the programmable logic controller 12 and broadcast the data to the electronic devices 20, 21 62. The marshaller 60 is configured to receive data from the electronic devices 20, 21 and 62 and provide the data to the programmable logic controller 12. The marshaller 60 may also be configured to ensure that only one electronic device is in control at any time, with the other electronic devices monitoring the behaviour of the elements 14 and 99.

The electronic device 62 is configured to provide a local human machine interface that is connected locally to the programmable logic controller 12 via a suitable network, such as an Industrial Ethernet or a suitable Fieldbus. The electronic device 62 is located in proximity to the programmable logic controller 12 and may be located in the same premises (e.g. in the same factory). The electronic device 62 may have a similar structure to the apparatus 20 and include a processor 34, a memory 36, a user input 38 and a display 40. A user may operate the electronic device 62 to provide control data to the programmable logic controller 12 to control the machinery 14. The electronic device 62 may also receive state information for the elements 14 and 99 of the machinery from the programmable logic controller 12 and display the state information to a user.

The installer 64 includes circuitry that is configured to receive control data (which may also be referred to as configuration data) from the engineering tools 67 running on the apparatus 20 and thus provides the control data to the programmable logic controller 12 for controlling the machinery 14. The common data model 66 is stored in the memory 36 of the apparatus 20 and includes data that defines the structure and operation of the machinery 14 and is created and populated by using the engineering tools 67. The common data model 66 will be explained in more detail in the following paragraphs with reference to fig. 5.

Fig. 5 illustrates a second flow diagram according to various embodiments of the invention which is described in the following paragraphs with reference to figs. 1 and 4.

At block 68, the processor 34 enables control data to be generated at the apparatus 20. Initially, the processor 34 controls the display 40 to display a graphical user interface which includes the engineering tools 67 (which may also be referred to as modelling tools). The graphical user interface may include a window that represents a three dimensional space and may include other windows that include modelling tools that allow a user to generate three dimensional shapes in the three dimensional space. The graphical user interface may also include other windows that allow the user to define how the generated three dimensional shapes move/operate.

A user may operate the user input device 38 to interact with the graphical user interface to create models/visualisations of the elements 99I ...N and 14i. N . The models/visualisations of the actuator elements 14 define how the actuators 14i... N are structured and a user may specify how they operate over time and with what other elements they interact with (including associated interlock checks and sequence checks). For example, a user may model a robotic arm by defining the structure of the robotic arm in three dimensions (e.g. as a solid, surface or wire frame model) and then defining how the robotic arm moves over a period of time and how it interacts with other elements (e.g. picking up and moving other elements). The sensor elements 99 may be similarly represented, e.g. via a colour or shape change as they change state.

The memory 36 of the apparatus 20 may store a library of different three dimensional shapes representing different physical elements and these may be copied in by the user to assist in the modelling of the elements 14 and 99.

The models generated in the graphical user interface and their associated operations form control data 70 (which may also be referred to as common data model 66 in fig. 4) that may be used by the programmable controller 12 to control and/or monitor one or more of the machine elements 14 and 99 over a period of time. The control data 70 has a structure that is directly useable by the programmable controller 12. The control data 70 does not require any conversion either at the apparatus 20 or at the programmable controller 12 to enable the logic-engine program loaded and executed on the programmable controller 12 to read and use the control data 12.

In various embodiments, the control data is encoded in a programming language of the programmable controller 12 and may therefore be directly executed on the programmable controller 12. For example, the control data may be encoded in one of the following programming languages: C, Function block diagram (FBD), Ladder diagram (LD), Structured text (ST), Instruction list (IL) and Sequential function chart (SFC). The control data may have a predetermined structure that is stored in the memory 24 of the programmable controller 12 and is therefore directly useable by the first computer program 30 of the programmable controller 12 to control or monitor one or more machine elements 14 and 99 of the system. For example, the control data may be structured as a multi-dimensional array where the structure of an element and the states of the element (including interlock checks and sequence checks) are defined in predetermined places in the array. The predetermined structure of the multi-dimensional array is stored in the memory 24 of the programmable controller 12 and the processor 22 may use this stored information to read control data received from the apparatus 20. This may be directly in memory, e.g., addressed via pointers, or in a PLC data block or blocks.

At block 72, the processor 34 causes the control data 72 to be transmitted to the programmable controller 12. For example, the processor 34 may control the transmission of the control data 72 to the programmable controller 12 via the internet 18. The programmable controller 12 then receives the control data 70 and stores the control data 70 in the memory 24. The programmable controller 12 may then use the stored control data 70 to control one or more of the elements 14.

Embodiments of the present invention as illustrated in fig. 5 provide an advantage in that when the programmable controller 12 controls the actuator elements 14 using the received control data 70, the operation of the controlled actuator elements 14 corresponds to the operation of the modelled elements in the graphical user interface on the apparatus 20. It has been found that conversion of control data usually introduces errors into the control data which leads to errors in the control or monitoring of the elements 14 and 99. Since the control data 70 is directly useable by the programmable controller 12 without requiring conversion, the programmable controller 12 may accurately control the actuator elements 14 in accordance with the models in the engineering tools 67 of the apparatus. Consequently, embodiments of the invention may result in a system whereby the actuator elements 14 operate accurately.

Embodiments of the invention also provide an advantage in that they enable a user to model and optimise a manufacturing system (for example), without requiring the manufacturing system to be built. Once an optimum manufacturing system has been found at the apparatus 20 using engineering tools 67, it may be built and the control data 70 may then be sent from the apparatus 20 to the programmable controller 12. Consequently, embodiments of the invention may reduce the cost in designing and optimising a system. Additionally, embodiments of the invention provide an advantage in that the apparatus 20 may be used as a training tool since a user may experiment with different settings on the graphical user interface to determine what changes they make to the system. It should be appreciated that the sequence and interlock checks between the elements define the logical behaviour of the combined/resultant system 10. The engineering tools 67 enable these to be defined.

Fig. 6 illustrates a third flow diagram according to various embodiments of the invention which is described in the following paragraphs with reference to figs. 1 and 4. The method illustrated in fig. 6 may be performed at the programmable controller 12, at the apparatus 20 and/or at the electronic device 62. At block 74, the method includes receiving state information for the plurality of elements 14 and 99. The state information defines one or more physical attributes of the plurality of elements 14 and 99. For example, the state information may define the position of an element, the movement vector of an element, the pressure being exerted by the element (in the case of a Vice or a Clamp for example) or the number of revolutions per minute carried out by the element (in the case of a drill for example).

At block 76, the method includes generating control information/data 70 for at least one of the elements 14 using the state information received in block 74. In other words, the state information for each of the plurality of elements 14 and 99 is analysed and is used in the generation of control information/data for one or more of the elements 14. For example, the state information of the plurality of elements 14 and 99 may be analysed to determine whether the first actuator 14i may move from a first position to a second position (i.e. perform a sequence check). If it is determined that one or more elements are in the intended path of the first actuator 14i, control information may be generated so that the first actuator 14i does not move until the intended path is clear. Alternatively, control information may be generated so that the first actuator 14i moves along a different path that is free of obstructions. The state information of the plurality of elements 14 and 99 may also be used to perform interlock checks, i.e. to determine whether an operation may be carried out by an element in its current state.

If the method of fig. 6 is carried out by the apparatus 20 (or the electronic device 62), the method moves to block 78. At block 78, the processor 34 causes the generated control information 70 to be transmitted to the programmable controller for controlling the element(s) of the system.

If the method of fig. 6 is carried out by the programmable controller 12, the method moves to block 80. At block 80, the controller 22 controls one or more of the elements 14 using the generated control information 70.

As mentioned above, it should be appreciated that the blocks of figure 5 may be used for performing interlock checks and for performing sequence checks.

Embodiments of the present invention as illustrated in fig. 6 provide an advantage in that the status of each of the plurality of elements 14 and 99 is taken into consideration when generating control information/data for one or more of the elements 14. This may help to reduce damage caused by collisions between elements for example, since the generated control data for an element takes into account the positions of each of the elements. Fig. 7 illustrates a fourth flow diagram according to various embodiments of the invention which is described in the following paragraphs with reference to figs. 1 and 4. At block 82, the processor 34 controls the display 40 to provide a graphical user interface that includes engineering tools and visualisations of the plurality of elements 14 and 99 of the system. The graphical user interface may include visualisations of both machine elements (including parts of the article being manufactured), virtual elements and human operators (mannequins).

At block 84, the processor 34 receives state information for the plurality of elements 14 and 99 of the system. As described above, the state information defines one or more physical attributes of the plurality of elements 14 and 99. As also described above, the state information is sensed by the sensors 99 and provided to the apparatus 20 from the programmable controller 12.

At block 86, the processor 34 controls the graphical user interface displayed on the display 40 using the state information received in block 84 to change the visualisations of the plurality of elements 14 and 99 (e.g. by changing the position, movement or colour of the visualisations). For example, the received state information may indicate a change in position of the first actuator 14i and the processor 34 uses the state information to correspondingly change the position of the visualisation of the first actuator 14i in the graphical user interface. By way of another example, the received state information may indicate a change in the movement vector of the first actuator 14i and the processor 34 uses the state information to correspondingly change the movement of the visualisation of the first actuator 14i in the graphical user interface. By way of a further example, the received element state information may indicate a temperature of the first element 99i and the processor 34 uses the state information to update the colour of the visualisation of the first element 99i (e.g. the visualisation is blue if the temperature of the first element is cold, and the visualisation is red if the temperature of the first element is hot).

The method may then loop back to block 84 to receive further state information concerning the plurality of elements 14 and 99, and then move to block 86 again.

Embodiments of the present invention as illustrated in fig. 7 provide an advantage in that the graphical user interface displayed on the display 40 of the apparatus 20 is updated automatically with the state information from the programmable controller 12 and reflects the physical status of the elements 14 and 99. Consequently, the user of the apparatus 20 is kept informed of the status of each of the elements 14 and 99, and if there is a problem, the user may use the graphical user interface to generate control data for controlling the elements 14 and thereby address the problem. The update of the graphical user interface may be carried out in real time or may be carried out periodically.

Fig. 8 illustrates a fifth flow diagram according to various embodiments of the invention which is described in the following paragraphs with reference to figs. 1 , 4 and 9.

At block 88, the processor 34 controls the display 40 to provide a graphical user interface 90 that includes visualisations of a plurality of actuator elements 14 and 99 including a visualisation 91 of an element representing a human operator. As illustrated in fig. 9, the graphical user interface 90 includes a first window 92 that provides a three dimensional space for elements 14 and 99, a second window 94 that shows the human element's 91 co-ordinates, a third window 96 that shows the human element's 91 order of movement and a fourth window 98 that shows the timing of the human element's 91 movements. At block 100, the method includes enabling the human operator visualisation 91 position and movement to be controlled within the graphical user interface 90. A user may operate the user input device 38 to control the position and movement of the human operator visualisation 91 over a period of time. For example, the user may control the human operator visualisation 91 to perform a manufacturing process (e.g. connecting two parts of an article together) over a period of time.

At block 102, the processor 34 records the position and movement of the human operator element 91 in the graphical user interface 90 over time and stores the recorded data in the memory 36. The position and movement of the human operator element 91 may be recorded in relation to the other elements 14 and 99 of the system (for example, as part of a timing diagram for a plurality of elements including machine elements).

At block 104, the method includes providing an output defined by the recorded position and movement information of the human operator. In particular, the processor 34 may read the recorded data in the memory 36 and provide an output to the display 40 or control a printer to print the output on paper. The output may include timing information for one or more machine elements that takes the human operator's actions into account (e.g. a time gap is provided in the machine elements actions to allow the human operator to carry out a manufacturing process). Additionally or alternatively, the output may include the recorded position and movement data of the human operator over time.

In various embodiments, the output is a Modular Arrangement of predetermined Time Standards (MODAPTS) output. MODAPTS is an established way of identifying and coding human motion and will not be described in detail here. 1 MOD is equal to 0.129 seconds and corresponds to a user moving his finger 25mm. In 2 MODS a user may move his hand 50mm. In 3 MODS a user may move his forearm 150 mm and so on. The output from the apparatus 20 may be in the form of instructions for a human operator and may be coded in MODAPTS. In some embodiments, a user may specify the number of MODS required (in block 100) to complete a particular action performed by the human operator. In other embodiments, the output may be a Methods Time Measurement (MTM) output, Global Study Process Allocation System (GSPAS) output, or any equivalent output.

Embodiments of the present invention as illustrated in fig. 8 provide an advantage in that they enable a user to model a human operator in a system. In particular, a user may define how one or more human operator elements interact with machine elements and how much time he/she should take to complete certain tasks. This may very advantageously enable any combination of machine elements and human elements to be integrated and optimised.

Embodiments of the invention also provide an advantage in that they provide an output that includes the recorded position and movement information of the human operator over time. Such an output may be used to train human operators how to carry out tasks. Furthermore, where the output also includes timing information for the machine elements, the output may be used to train human operators on the processes carried out by the machine elements. Although embodiments of the present invention have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as claimed. For example, the graphical user interface 90 illustrated in fig. 9 may have a different layout to the illustrated layout. The system 10, 56 may include more than one apparatus 20 which is located remotely from the programmable controller 12 and is connected to the programmable controller 12 via the network 18. The human operator elements and the machine elements may initially reside in the engineering tool 67 as models. This enables virtual engineering of the system, i.e., simulation of its behaviour. The machine elements are subsequently migrated to the PLC when the machine is deployed. The human elements are replaced by the actual machine operator(s). Any combination of virtual and real elements may be supported by the system 10.

Although the memory's 24 and 36 are illustrated as single components, they may be implemented as one or more separate components some or all of which may be integrated/removable and/or may provide permanent/semipermanent/ dynamic/cached storage.

The system 10 may be any system in which sequence and interlock based control is required, i.e., any system where elements transition between defined states.

It should be appreciated that the term 'element' may (in at least some embodiments) be replaced by the term 'component', 'module' or 'object'.

References to 'computer-readable storage medium', 'computer program product', 'tangibly embodied computer program' etc. or a 'controller', 'computer', 'processor' etc. should be understood to encompass not only computers having different architectures such as single /multi- processor architectures and sequential (Von Neumann)/parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device whether instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device etc. As used in this application, the term 'circuitry' refers to all of the following: (a) hardware-only circuit implementations (such as implementations in only analogue and/or digital circuitry) and (b) to combinations of circuits and software (and/or firmware), such as (as applicable): (i) to a combination of processor(s) or (ii) to portions of processors )/software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions) and (c) to circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.

This definition of 'circuitry' applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term "circuitry" would also cover an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term "circuitry" would also cover, for example and if applicable to the particular claim element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in server, a cellular network device, or other network device.

The blocks illustrated in the Figs. 2, 3, 5, 6, 7 and 8 may represent steps in a method and/or sections of code in the computer program 42. The illustration of a particular order to the blocks does not necessarily imply that there is a required or preferred order for the blocks and the order and arrangement of the block may be varied. Furthermore, it may be possible for some blocks to be omitted.

Features described in the preceding description may be used in combinations other than the combinations explicitly described. Although functions have been described with reference to certain features, those functions may be perfornnable by other features whether described or not. Although features have been described with reference to certain embodiments, those features may also be present in other embodiments whether described or not.

Whilst endeavouring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the Applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon. l/we claim: