Embedded non-volatile programming tool

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000, C700S017000, C700S018000

Reexamination Certificate

active

06247168

ABSTRACT:

FIELD OF THE INVENTION
The present invention generally relates to tools for programming non-volatile memory, and more specifically relates to a non-volatile memory programming tool which is embedded in a module of a programmable controller.
DESCRIPTION OF RELATED ART
Programmable controller systems are known for controlling industrial processes. A typical programmable controller system comprises a processor module, for example a PLC® processor module, and a plurality of other programmable controller modules. The other modules could include, for example, one or more Ethernet® modules, DHRIO (Data Highway™ Remote Input/Output) modules, CNB (ControlNet™ Bridge) modules, analog modules, and/or a plurality of other types of modules. (Herein, for convenience, trademarks are designated as such only upon their first occurrence.) The PLC processor module and the plurality of other modules are disposed in a rack and networked by a common backplane.
Programmable controllers are usually programmed using an object-oriented programming language which is formed by a set of objects which model real-world problems. The objects each provide a set of services and each have one or more attributes which define the parameters of the object or the services it provides. The objects interact through a message-based interface which allows them to access each other's services without having to understand each other's internal characteristics. Different objects are implemented in different modules, and the different objects give the modules their unique functionality.
The objects are implemented in the firmware of the PLC processor module and the other modules. The firmware is programmed into the modules during production and is often later updated. According to present methods, the programming of a module during production occurs according to the following two-step process. First, automatic test equipment loads boot code (a small amount of code on the order of 32-64 kilobytes) directly into non-volatile memory (e.g., Flash memory or EEPROM) using specialized in-circuit test equipment.
Second, a non-volatile memory programming tool is then used to load the remainder of the firmware (a large amount of code on the order of 150-500 kilobytes). The boot code loaded during the first step contains enough functionality to program the non-volatile memory with the remainder of the firmware received from the programming tool. The programming tool resides on a personal computer (PC) and connects to an individual module by way of a communication port disposed on the front of the module. The programming tool establishes a connection (e.g., usually a serial connection) with the module, and then downloads the firmware to the module by way of the communication port. For simplicity, it is desired that the same programming tool be usable both for production and for field updates; thus, field updates also occur in accordance with the second part of this process.
This approach suffers at least two drawbacks. First, a separate and unique programming tool is required for each of the different types of modules. Different types of modules have different types of communication ports, depending on the function which the particular type of module is designed to perform. The unique aspects of the different types of communication ports inherently require different hardware and software configurations on the PC for each of the different types of modules.
Second, this approach is very slow. The communication port disposed on the front of most types of modules is a serial port, which is very slow. For example, the programming time for a typical PLC processor module using an RS-232 serial connection is on the order of about twenty minutes. While some modules have an Ethernet connection and thus have lower programming times, these modules are very much in the minority.
Thus, what is needed is a non-volatile memory programming tool which can be used with a plurality of different types of modules, regardless of the type of communication port on the front of the module, and which can program non-volatile memory at high speeds.
SUMMARY OF THE INVENTION
A production object for an object-oriented programming language is disclosed. The production object is disposed in a first module and has a plurality of services and a plurality of attributes which are adapted for transferring a program from the first module to a second module over a common network.
A programmable controller system is also disclosed. The programmable controller system includes a backplane, a first module, and a second module. The first and second modules are disposed in the backplane and are linked by the backplane. The first module is adapted for receiving a firmware program. The first module has a programming tool disposed therein which is adapted for transferring the firmware program from the first module to the second module over the backplane. Preferably, the programming tool is in the form of a production object as described above.
A method of transferring a program to a plurality of target modules is also disclosed. According to the method, a programmable controller system comprising a first module and the plurality of target modules is provided. The programmable controller system is programmable with an object-oriented programming language, and the first module and the plurality of target modules are commonly disposed in a common backplane.
Then, a first allocate request message is sent to a memory object in the first module. The memory object has a plurality of services and a plurality of attributes which are adapted for managing memory of the first module. Responsive to the first allocate request message, the memory object allocates a first memory block in the memory of the first module. A script file is then transferred from a user interface to the first memory block. The script file defines parameters for transferring the firmware program to the plurality of target modules.
Also, a second allocate request message is sent to the memory object in the first module. Responsive to the second allocate request message, the memory object allocates a second memory block in the memory of the first module. Then, a data file is transferred from the user interface to the second memory block. The data file contains the firmware program.
Next, a create request message is sent to a production object. The production object has a plurality of services and a plurality of attributes which are adapted for transferring the firmware program from the first module to the plurality of target modules. The production object is disposed in the first module. The create request message causes a new instance of the production object to be created for transferring the firmware program to the plurality of target modules.
Also, script and data pointer attributes are set. The script and data pointer attributes point to the first and second memory blocks, respectively. The script and data pointer attributes are two of the plurality of attributes of the production object.
Finally, the production object is invoked and the firmware program is transferred from the first module to the plurality of target modules over the common backplane. This transferring step is performed by the production object.
Advantageously, the preferred embodiment of the present invention provides a rapid way of programming modules having non-volatile memory. Unlike current systems, the programming tool is in the form of an embedded object and is located internally and not externally to the programmable controller system. As a result, it is possible to transfer the firmware program to the production object just once (e.g., over a serial link), and then the production object can transfer the firmware program to a virtually unlimited number of target modules over a high-speed network connection. Thus, the amount of time required to program a plurality of modules is drastically reduced. Further, the preferred embodiment of the present invention is usable both during production and in the field. It is not necessary to have

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Embedded non-volatile programming tool does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Embedded non-volatile programming tool, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Embedded non-volatile programming tool will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2439976

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.