System for building an industrial control program from device type classes having device specific instructions

A program environment is configured to allow building an industrial control program by instantiating classes of device types corresponding to industrial control devices in which each device type includes a device profile defining parameter(s) for communicating with the type of device and instruction(s) for causing the type of device to take action(s) in the program. Accordingly, device-specific instructions can be injected into logic of the control program. Such device type classes can correspond to various types of devices, such as variable frequency drives, mass flow meters, HART devices, and the like. A user interface can connect to the program environment to allow such devices to be instantiated from the device type classes and/or displayed to a GUI a diagrammatical arrangement. As a result, the control program can be developed with increased speed and reduced complexity.

FIELD OF THE INVENTION

The present invention relates to the field of industrial automation, and more particularly, to a system for building an industrial control program using device type classes in which each device type class corresponds to a type of industrial control device having a common configuration and each device type class includes a device profile configured to allow communication with an industrial control device corresponding to the device type class and at least one instruction configured to cause the industrial control device to execute an action.

BACKGROUND OF THE INVENTION

Industrial controllers are specialized computer systems used for the control of industrial processes or machinery, for example, in a factory environment. Generally, an industrial controller executes a stored control program that reads inputs from a variety of sensors associated with the controlled process and machine and, sensing the conditions of the process or machine and based on those inputs and a stored control program, calculates a set of outputs used to control actuators controlling the process or machine.

Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and damage and to better resist external contaminants and extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.

Generally, the controllers have a highly modular architecture, for example, that allows different numbers and types of input and output modules to be used to connect the controller to the process or machinery to be controlled. This modularity is facilitated through the use of special “control networks” suitable for highly reliable and available real-time communication. Such control networks (for example, ControlNet) differ from standard communication networks (such as Ethernet) by guaranteeing maximum communication delays by pre-scheduling the communication capacity of the network, and/or providing redundant communication capabilities for high-availability.

As part of their enhanced modularity, industrial controllers may employ I/O modules or devices dedicated to a particular type of electrical signal and function, for example, detecting input AC or DC signals or controlling output AC or DC signals. Each of these I/O modules or devices may have a connector system allowing them to be installed in different combinations in a housing or rack along with other selected I/O modules or devices to match the demands of the particular application. Multiple or individual I/O modules or devices may be located at convenient control points near the controlled process or machine to communicate with a central industrial controller via the control network.

Control networks can also employ “connected messaging” in which the bandwidth of the network and buffer space is pre-allocated to dedicated “connections” to prevent lost or unpredictably delayed data transfer that can occur in standard network protocols such as Ethernet. An example of connected messaging is Common Industrial Protocol (CIP), which is a media independent industrial protocol for industrial automation applications supported by ODVA, Inc. CIP is described in “The Common Industrial Protocol (CIP™) and the Family of CIP Networks,” Copyright 2016, ODVA, Inc., which document is incorporated herein by reference in its entirety.

CIP encompasses a comprehensive suite of messages and services for the collection of manufacturing automation applications, including control, safety, synchronization, motion, configuration and other information. Application extensions to CIP include: CIP Safety, providing a communication between nodes such as safety I/O blocks, safety interlock switches, safety light curtains and safety PLC's in safety applications up to Safety Integrity Level (SIL) 3 according to IEC 61508 standards; CIP Motion, allowing integration of field devices and motion drives on the same network thereby eliminating the need for a separate motion optimized network; and CIP Sync, a time synchronization extension to CIP based on the recent IEEE-1588 standard—Precision Clock Synchronization Protocol for Networked Measurement and Control Systems—providing increased control coordination for sequencing demanding events recording, distributed motion control and other distributed applications. CIP maximizes compatibility among devices in an industrial system, and typical control networks implementing CIP include EtherNet/IP, DeviceNet, ControlNet and similar networks whose specifications are published and whose protocols are used broadly by a number of manufacturers and suppliers.

To build an industrial control system, it is often desirable to prepare the control program to utilize the industrial control devices of the system in advance of commissioning. Device-specific instructions, Add-On Instructions (AO′) and the like can be provided to users, including by way of sample control programs. However, it is typically up to the user to integrate the necessary instructions into control program for utilization in the user's desired system. As a result, users are required to spend more time investigating industrial control devices and preparing control programs using such devices. It is therefore desirable to provide a system which reduces the time and complexity for preparing a control program.

SUMMARY OF THE INVENTION

A program environment is configured to allow building an industrial control program by instantiating classes of device types corresponding to industrial control devices in which each device type includes a device profile defining parameter(s) for communicating with the type of device and instruction(s) for causing the type of device to take action(s) in the program. Accordingly, device-specific instructions can be injected into logic of the control program. Such device type classes can correspond to various types of devices, such as variable frequency drives, mass flow meters, HART devices, and the like. A user interface can connect to the program environment to allow such devices to be instantiated from the device type classes and/or displayed to a GUI a diagrammatical arrangement. As a result, the control program can be developed with increased speed and reduced complexity.

Accordingly, support for a device type can be separately installed into an industrial control system programming environment, such as a “device profile.” The installed device profile can include inside it definitions for device-specific instructions that can be used in various programming languages in the programming environment. The device-specific instructions can be designed to make control of a device simpler and development of control programs take less time.

While using the device profile, a user can have the option of injecting the device-specific instructions into logic in the control program. Accordingly, the invention could be used in various ways, including: (1) injecting the device-specific instructions into a current project upon request by a user through a user interface of the device profile; (2) injecting the device-specific instructions into a current project upon a first instantiation of the device type; (3) injecting the device-specific instructions into a programming system itself for later selection, upon installation of the device profile; and/or (4) displaying the device-specific instructions of all installed device profiles in the context of programming for a user to select. As a result, the knowledge and/or effort required for a user to write logic associated with a device or application can be reduced with the preconfigured instructions based on expert knowledge from the device manufacturer.

Specifically then, one aspect of the present invention can provide a system for building an industrial control program, the system including: a data structure holding multiple device type classes, each device type class corresponding to a type of industrial control device having a common configuration, in which each device type class includes: a device profile configured to allow communication with an industrial control device corresponding to the device type class in an industrial control program; and at least one instruction configured to cause the industrial control device to execute an action; and a processor executing a program stored in a non-transient medium, the processor executing the program to: instantiate a model of an industrial control device from a device type class of the multiple device type classes in an industrial control program; and configure the industrial control program to include the instruction from the device type class.

Another aspect of the present invention can provide a method for building an industrial control program, the method including: (a) holding multiple device type classes in a data structure, each device type class corresponding to a type of industrial control device having a common configuration, in which each device type class includes: a device profile including multiple parameters configured to allow communication with an industrial control device corresponding to the device type class in an industrial control program; and at least one instruction configured to cause the industrial control device to execute an action, in which the instruction is configured to use at least one parameter of the multiple parameters; (b) instantiating a model of an industrial control device from a device type class of the multiple device type classes in an industrial control program; and (c) configuring the industrial control program to include the device-instruction from the device type class.

These and other objects, advantages and aspects of the invention will become apparent from the following description. The particular objects and advantages described. herein can apply to only some embodiments falling within the claims and thus do not define the scope of the invention, in the description, reference is made to the accompanying drawings which form a part hereof, and in which there is shown a preferred embodiment of the invention. Such embodiment does not necessarily represent the full scope of the invention and reference is made, therefore, to the claims herein for interpreting the scope of the invention.

DETAILED DESCRIPTION OF THE OF THE INVENTION

Referring now toFIG. 1, in accordance with an aspect of the invention, an industrial automation system10can include an industrial controller12configured to execute an industrial control program14. The controller12, which could be a Programmable Logic Controller (PLC), such as a ControlLogix 5570 or 5580 Controller available from Rockwell Automation, Inc., can execute the control program14to control multiple industrial control devices16, such as first and second devices16aand16b(labelled “A” and “B”), respectively, operating to control an industrial process or machine18. The first and second devices16aand16b, respectively, can provide such control with respect to the industrial process or machine18, for example, by communicating over channels first and second20aand20bwith first and second industrial control elements22aand22b, respectively, integrated with respect to the industrial process or machine18.

The devices16can be any type of industrial control device for providing control with respect to the industrial process or machine18. Examples of types of devices16can include variable frequency drives, mass flow meters, Highway Addressable Remote Transducer (HART) devices, I/O modules, and the like. A variable frequency drive is an adjustable-speed drive which may be used in electro-mechanical drive systems to control Alternating Current (AC) motor speed and torque by varying motor input frequency and voltage. In one aspect, the device16acould be variable frequency drive configured to drive a load represented by the first element22a. A mass flow meter is a device which can measure a mass flow rate of a fluid traveling through a volume. In another aspect, the device16acould be an analog I/O module configured to communicate with a mass flow meter represented by the first element22a. The HART protocol is a hybrid analog/digital industrial automation protocol that can communicate over legacy 4-20 mA analog instrumentation current loops. In another aspect, the device16acould be a HART device configured to communicate with a HART compatible process module represented by the first element22a. In yet another aspect, the device16acould be an industrial control I/O module configured to communicate with sensors and/or actuators represented by the first element22a. It should be appreciated that various types of devices, including as described in “Common Industrial Protocol (CIP™) and the Family of CIP Networks,” Copyright 2016, ODVA, Inc., in combination or otherwise, could be implemented in the system10according to the present invention. Moreover, it should be appreciated that the above examples could be further divided into types of devices according to having a common set of configurations as will be described herein.

The controller12can communicate with the devices16over a control network24suitable for highly reliable and available real-time communication. The control network24could be, for example, a ControlNet or EtherNet/IP network configured to guarantee maximum communication delays by pre-scheduling the communication capacity of the network, and/or providing redundant communication capabilities for high-availability. In addition, the control network24can employ connected messaging, such as Common Industrial Protocol (CIP), in which the bandwidth of the network and buffer space is pre-allocated to dedicated connections to prevent lost or unpredictably delayed data transfer that can occur in standard network protocols such as Ethernet.

The controller12can also operate in communication with a workstation26which, in turn, is in communication with a data structure28, Accordingly, the workstation26can be used by a user to commission, monitor and/or modify operation of the system10, including with respect to the control program14.

With additional reference toFIG. 2, a diagram of a program environment40for building the control program14is provided in accordance with an aspect of the invention. While the workstation26can be used to execute the program environment40to build the control program14, in another aspect, a separate workstation can also be used to execute the program environment40to build the control program14for the system10. The program environment40can include a library42including multiple device type classes43for devices16, a user interface44and a diagrammatical arrangement46of the control program14.

The device type classes43can be held in the data structure28. Each device type class corresponds to a type of device16having a common set of configurations, which can include common functions, parameters, I/O, services and the like. In a preferred implementation, device type classes can correspond to particular devices having a common model or part number. For example, a first device type class can correspond to a variable frequency drive that is a “PowerFlex 755T Low Voltage AC Drive,” while a second device type class can correspond to variable frequency drive that is a “PowerFlex 7000 Medium Voltage AC Drive,” each available from Rockwell Automation, Inc.

Each device type class43can include a device profile50. With additional reference toFIG. 3, the device profile50can include multiple parameters configured to allow communication with a device16corresponding to the device type class43in the control program14. Accordingly, the parameters can be primitive data sets defining variables, formats (including with respect to bit and byte settings), data types, protocols, and the like, for enabling such communication. By way of example, for a variable frequency drive, such as the PowerFlex 7000 Medium Voltage AC Drive, the parameters can include: (1) a speed parameter specific to the drive, (2) a torque parameter specific to the drive, (3) a direction parameter specific to the drive, (4) a starting parameter specific to the drive and/or (5) a stopping parameter specific to the drive.

In addition, each device type class43can include one or more device-specific instructions52. With additional reference toFIG. 4, each instruction52is configured to cause the device16to execute an action in the control program14. Such actions are dependent upon the device type and its capabilities. Also, the instructions52can be configured to use one or more parameters of the device profile50to execute the action. Accordingly, the instructions52can be code fragments for implementing logic with respect to the device16. Typically, this may be logic that has been determined to be frequently used in many systems. Moreover, the instructions can be configured as Add On Instructions (AOI), including as described in the “Logix5000 Controllers Add On Instructions Programming Manual,” Publication 1756-PM010H-EN-P, December 2016, which document is incorporated herein by reference in its entirety.

By way of example, for a variable frequency drive, such as the PowerFlex 7000 Medium Voltage AC Drive, the instructions52can include a first instruction54(“instruction x”), which could be configured to start rotation of the drive in a particular direction, and/or a second instruction56(“instruction y”), which could be configured to spin the drive at a desired RPM. Accordingly, the first instruction54could apply the direction parameter (3) and the starting parameter (4) to accomplish the desired start action, whereas the second instruction56could apply the speed parameter (1) and the torque parameter (2) to accomplish the desired RPM action. Similarly, for a mass flow meter, instructions52could include a command to measure a mass flow rate of a fluid using a fluid sensing parameter, and/or a command to measure a temperature value using a temperature sensing parameter. Also, for a HART device, instructions52could include a command to schedule data from process modules on the channels20, such as by way of a round robin scheme. Accordingly, a variety of device specific instructions can be provided in the device type class43for reducing the time and complexity for building a control program using a particular device type.

Through the user interface44, a user can instantiate industrial control devices from a device type class43in the diagrammatical arrangement46of the control program14. The user interface can enable such instantiations, such as by way of a drag and drop action by the user in a Graphical User Interface (GUI) implemented by the workstation or HMI implementing the program environment40, which could supplement, for example, the RS-Logix 5000 software development environment as available from Rockwell Automation, Inc.. For example, a user could select a third device type class43c(“0003”), which could correspond to the PowerFlex 7000 Medium Voltage AC Drive, and provide first and second instantiations53aand53b(labelled “A” and “B”), respectively, of the device type class43c, in the diagrammatical arrangement46. Moreover, the user can connect such instantiations in the user's program as desired, such as on a common control network connected to a PLC, to implement the user's desired configuration for controlling the industrial process or machine18.

In addition, the user can configure the instantiations to execute one or more of the instruction52from the device type class43, In particular, the user can select a manner in which one or more of the instructions52are integrated into logic of the control program for controlling the industrial process or machine18. For example, the user could: (1) inject one or more of the instructions52into the diagrammatical arrangement46of the control program following a selection of the instruction52by a user through the user interface44; (2) inject the instructions52into the diagrammatical arrangement46of the control program upon instantiation of the device type class43in the diagrammatical arrangement46; (3) inject the instructions52into the program environment40for later selection by a user, upon installation of a device type class43in the library42; and/or (4) display the instructions52of all installed device type classes43in the program environment40for a user to select. Then, the workstation or HMI implementing the program environment40can synthesize the diagrammatical arrangement46into the control program14having a format configured to execute on the controller12.

Accordingly, as a result, the knowledge and/or effort required build the control program14associated with a device or application can be reduced with the preconfigured instructions52based on expert knowledge from the device manufacturer. With additional reference toFIG. 5, an exemplar model representation57of a device16that is a type of variable frequency drive is provided in accordance with aspect of the invention. Ire the model representation57, a first portion58represents a standard portion for the drive which may be accessible in the program environment40upon instantiation. The first portion58can include an I/O section60that is accessible in the program environment40according to established settings, such as: (1) the speed parameter, (2) the torque parameter, (3) the direction parameter, (4) the starting parameter and/or (5) the stopping parameter for a variable frequency drive. Accordingly, by arranging the control program14to send messages to the drive using such parameters, three phase power inputs can be received at a process input section62, and delivered at a process output section64, to operate the drive in the process or machine18.

In addition, to reduce the knowledge and/or effort required build the control program14, an augmented portion66is added in the model representation57. The augmented portion66adds an augmented I/O section68that is now accessible in the program environment40, such as: (1) the “instruction x” to start rotation of the drive in a particular direction, and/or (2) the “instruction y” to spin the drive at a desired RPM. As a result, from the user's perspective through the program environment40, the model representation57provides enhanced capabilities and features by having the augmented portion66for ease of integration into the control program14.

Certain terminology is used herein for purposes of reference only, and thus is not intended to be limiting. For example, terms such as “upper,” “lower,” “above,” and “below” refer to directions in the drawings to which reference is made. Terms such as “front,” “back,” “rear,” “bottom,” “side,” “left” and “right” describe the orientation of portions of the component within a consistent but arbitrary frame of reference which is made clear by reference to the text and the associated drawings describing the component under discussion. Such terminology may include the words specifically mentioned above, derivatives thereof, and words of similar import. Similarly, the terms “first,” “second” and other such numerical terms referring to structures do not imply a sequence or order unless clearly indicated by the context.