The application is entitled " the Chainable Plugin Business Logic submitted on November 11st, 2011
Through a Generalized Object Model " U.S. Provisional Patent Application No.61/559,020 non-provisional Shen
Please, it is incorporated into herein by quoting.
Embodiment
Generally, when state change is communicated, control seriously relies on automatic controller with monitoring system, such as programmable
Sequence logic controller (PLC), and automatic controller program (for example, PLC is programmed) to be influenceed on control with monitoring system.
Automatic controller programming seriously by task and/or logic based on event and/or based on program execution (for example, with
The machine readable instructions that programming language is write, such as relay ladder logic) come to controlling the change with monitoring system to carry out shadow
Ring.Automatic controller, which is often used in, consumes all input data, calculating and the change for being distributed output data, processing data
Change and by data distribution to control and monitoring system part.Unfortunately, such part to by controlling with monitoring system
(for example, automatic controller and automatic controller programming) influences and the heavy dependence of the centralized data model of trustship result in perhaps
It is more inefficient.For example, with for the scheduling of centralized model and the task based on event number increase, due to that may lead
Many additional changes of single model are caused, it may occur that the deterioration of performance.In addition, the serious use of centralized model
(for example, via automatic controller) creates the method more concentrated of processing control logic, causes the poorly efficient of control logic to be held
Row, Single Point of Faliure (for example, when automatic controller breaks down, whole control may break down with monitoring system), and
The processing load to automatic controller may be caused.
According to the present embodiment, by using distributed data model, distributions change is passed on and distributed command
Perform, control can become more flexible with monitoring system.For example, by providing increased association with monitoring system in whole control
Make ability, increased data redundancy and processing load balance, embodiment shows more robust and flexibly automatically control
With monitoring environment.
Robust control and monitoring system
Many aspects, part and processing will be described by following discussion.Via introduction, overall system summary purpose exists
It is herein in being located at these innovations.Fig. 1 is control for interface and monitoring software framework in accordance with an embodiment of the present disclosure
10 graphic representation.Framework 10 is advantageous to by using the interconnection mechanism 12 based on module come constructing function software, interconnection mechanism
12 inherently support dynamic operation and configuration.The dynamic operation and allocative abilities are beneficial to effectively provide spy for configurable interface
The abundant configuration surroundings of sign.That is, as described below, individual equipment key element is configured to the independence that can be programmed individually
The code of operation, prewrite to use when in storehouse, it is self-defined they function and the outward appearance in screen, and be mutually connected
Connect to supply information to user and control and function for monitoring.
Framework 10 includes may belong to two related software environments of individual system (for example, computer).Specifically, transport
Environment 14 makes operator (for example, people user) to interact with the application during row, such as (for example, using interface during operation
Period, generally during being interacted with the processing in operation or observation operate in processing during) processing.Environment during design
16 allow designers to configure interface and its part.For example, system can via runtime environment 14 display (for example, meter
Calculation machine or interface equipment screen) on give operator by operation information is graphically present.In addition, system can include being used for
Receive can via runtime environment 14 come detect and manage operator input device (for example, keypad).Environment is for example following
Interaction as detailed description, provides the use of the interface greatly enhanced and programming in an innovative way.
Runtime environment 14 includes or is provided with the entrance for leading to equipment key element 18.Equipment key element 18 is software part,
It can include any key element that accesses or can configure in software environment.For example, when equipment key element 18 includes passing through operation
Environment 14 is come the software part that manages, such as " ActiveX " control or " .NET " part." ActiveX " and " .NET " refers to
It is the concept, technology and instrument of object-oriented.Generally those skilled in the art will very familiar such Programming Methodology.
Herein, such standard should be considered merely as being example, and " equipment key element " is construed as including and any can made
The independent key element that is defined and the substantially similar part or self-liquidating program run, it is sometimes referred to as " object ".For
Be present other standards and platform in such key element, generally supported by different companies or industrial colony.
Because such equipment key element is basic for some concepts in concept set forth herein, first press
Order is slightly introduced.Equipment key element generally includes four features:Property, method, connection (or contact) and communication interface.
Herein, property is the attribute that can be adjusted, such as defining expression or image of the key element in screen view, and
The position of key element on screen etc..Herein, method be executable function (be referred herein as sometimes key element " feature " or
Person's " state engine "), and define by performing key element the operation that carries out.Herein, connection is the link between key element,
And it can be used to make (reading from memory or write-in memory) data be sent to another key element.
The specific example of equipment key element 18 can include software push buttons, timer, gauge table, plc communication server, visual
Change (such as showing automatically controlling the screen with the state of the part in monitoring system) and apply.Generally, it is substantially any can
The function of identification can be configured to such key element.In addition, as discussed below, such key element can communicate
To carry out various displays, monitoring operation and control function.It is noted that equipment key element 18 need not be used to support design mould
The special limitation of formula.Moreover, although the key element associated with image is highly useful, in particular for visualization, many will
Element can not have a visual representation, but can in HMI perform function, such as calculate, or even management and at other
Data exchange is carried out between key element.
Runtime environment 14 is operated usually using communication subsystem 20.Communication subsystem 20 will suitable for interconnection equipment
Element 18.In fact, communication subsystem 20 can be viewed as comprising the connection of equipment key element 18.However, communication subsystem 20 can be with
Including sending data to external circuit and a series of softwares, hardware and the firmware of data being received from external circuit, such as from
Movement controller, other computers, network, satellite, sensor, executing agency etc..
Runtime environment 14 is operated usually using behavior subsystem 22, and behavior subsystem 22 will suitable for management equipment
The behavior of element 18.For example, the responsibility of behavior subsystem 22 can include it is as follows:Place and mobile device key element, modification equipment will
Element, equipment key element is gathered on interchangeable screen, preserved and recovered screen layout, management security, preservation and recovers connection row
Table, and provide remote access to runtime environment 14.Equally, in fact, such behavior can be referred to as each equipment will
A part for the profile (profile) (that is, " method " or " state engine ") of element.
Environment 16 includes the advance realization of behavior subsystem 22 during design, and the advance realization of behavior subsystem 22 is beneficial to not
In the case of the behavior for hindering or damaging runtime environment 14, runtime environment 14 is directly or indirectly operated.Namely
Say, equipment key element 18 can also be designed and reconfigure in the case that interface is by operation.Behavior subsystem 22 is via setting
The long-range offer of timing environment 16 carrys out extended access runtime environment 14, such as in the browser of routine.Behavior subsystem 22
Allow designer via long-range program terminal by by design when environment 16 or design when environment 16 aspect from HMI provide to
Program terminal, the aspect of HMI runtime environment 14 is interacted and changed with the aspect of HMI runtime environment 14.For example,
Can be on knee by being supplied to environment 16 during specific design via network via the HMI of network-coupled to laptop computer
Computer provides the user with allocative abilities.
The details and example presented below for how realizing this point.In the present example, environment 16 can be during design
Dynamic content is provided with reference to Dynamic Hyper Text Makeup Language (DHTML) and Active Server Pages (ASP) server script
Product to browser.ASP scripts are the codes of bespoke, are included in the page and are sent to before user in server (example
Such as, Web server) on one or more scripts (that is, small embedded program) for handling.Generally, in routinely applying, this
The script prompt server of sample makes a change from database access data and in database.Next, sent by the page
Before requestor, script generally constructs or the self-defined page.As discussed below, such script is very different
Ground is used in this framework, such as in the case of the feature of no equipment key element or the prior knowledge of their correlation
Create visualization.
By promoting the change of equipment key element, environment 16 allows designer to make the special reality of behavior subsystem 22 during design
Now or interchangeable set timing model.The specific example realized during the design of behavior subsystem 22 includes the design based on Web
When environment 16, TCP/IP connection of the environment 16 between HMI and remote equipment is come extended access HMI during design based on Web
On runtime environment 14.Environment 16 is beneficial to manage in the case where not endangering runnability or safety during design based on Web
Manage equipment key element.In a special realization, behavior subsystem 22 give designer's use be able to access that relevant interface or
HMI Web browser operates the ability of the aspect of runtime environment 14.As described above, and as described in detail below, this
Realized by using the combination of the configuration of dynamic content, script and equipment key element property.
Fig. 2 is the control and monitoring of realizing said frame for example for industrial automation in accordance with an embodiment of the present disclosure
The graphic representation of system 24.System 24 includes HMI 26, and HMI 26 is suitable to and the part of networking and configuration equipment connection.System 24
Be shown as including HMI 26, HMI 26 be suitable to by control/supervision equipment 30 (for example, remote computer, automatic controller,
Such as programmable logic controller (PLC) (PLC), or other controllers) come with processing 28 part cooperation.HMI 26 can be with physics
Ground is similar to existing hardware, such as panel, monitor or autonomous device.
Cooperation between HMI 26 and the part for handling 28 can be promoted by using any appropriate network strategy.It is real
On border, industry standard network, such as DeviceNet can be used, enables to carry out data transfer.Such network allows
Data exchange is carried out according to predefined agreement, and the ability for operating networking key element can be provided.Though as described above,
Networked system and the system for combining controller and other equipments, described HMI 26 and volume are so with reference in being currently discussed
Journey technology can be equally applicable to non-networked part (for example, GPS display, game display, mobile telephone display, tablet personal computer
Display etc.) and suitable for the networked system outside industrial automation.For example, arrangement described below and processing can
Be used for facilities management, automobile and vehicle interface, computer numerical control (CNC) machine, point of sale (POS) system, for business
The control interface in market (for example, elevator, entrance system) etc., is named a few.
By corresponding behavior management subsystem and construction operation when or operating environment 14 stored and reside in HMI
On 26.For example, such behavior subsystem may be adapted to from storage location loading application configuration framework (for example, 10), such as
During HMI 26 initial manufacture or setting.When loaded, the application framework of storage may be adapted to create screen and
Location user interface device key element in screen (corresponding with key element actual image or figure represent).These application, screens
And the equipment key element that user interface key element is each type.As described below, HMI 26 includes regulation layout and equipment
The application of the storage of the interaction of key element.Environment 16 is also loaded and resided in during the design based on Web of engine during based on operation
On HMI 26.During design environment 16 may be adapted to for design when both environment and runtime environment handle advanced feature (example
Such as, safety management).
HMI 26 may be adapted to allow user to interact with substantially any processing.For example, processing can include:Compressor station,
Oil plant, the batch operation for manufacturing food item (food items), the assembly line etc. of mechanization.Therefore, processing 28 can
With including various functional units, such as motor, valve, executing agency, sensor, or countless manufactures, processing, material process
And other applications.In addition, processing 28 can include being used to adjust the control of processing variable by automating and/or observing
Equipped with monitoring.The processing 28 shown includes sensor 34 and executing agency 36.Sensor 34 can include be adapted to provide on
Many equipment of the information for the treatment of conditions.Executing agency 36, which can be similarly included, is adapted for input signal to carry out machinery
Many equipment of effect.
As shown, these sensors 34 and executing agency 36 and control/supervision equipment 30 (for example, automatic controller)
Communicating and can be assigned to can be by the specific address in control/supervision equipment 30 that HMI 26 is accessed.The He of sensor 34
Executing agency 36 can directly be communicated with HMI 26.These equipment can be used to operate processing equipment.In fact, they
It can be used in processing cycle, the processing cycle is controlled and monitored by control/supervision equipment 30 and/or HMI 26.Can be with base
In processing input (for example, input from sensor 34) or directly input (for example, the operator received by HMI 26 is defeated
Enter) start such processing cycle.
Server software on interface allows to check development environment, and directly reconfigure interface (specifically equipment will
Element and the outward appearance and function of their association) checked or configuration software without special.The benefit comes from following facts:
Environment belongs to HMI 26 in itself when equipment key element and design, and by HMI 26 " offer " to browsing in program terminal 46
Device or other general readers.In other words, it can reduce or eliminate to outside computer workstation (for example, above-knee
Type computer and desktop computer) necessary support.It is noted that " browser " of configuration for checking and changing interface
Reference is not limited to Web browser or any specific browser.The reference of browser is intended that exemplary.In general,
Term " browser " is used in includes the software of any generic viewer to quote herein.
By the programming of equipment key element as described below, HMI 26 may be considered that including for presentation one or more
Multiple screen views or visual instruction and by reference to screen view (for example, button, touch position etc. of screen)
Come the equipment key element performed in the case of being interacted with HMI 26.It can be determined by any desired software or software kit
Adopted screen view and equipment key element.For example, screen view and equipment key element can be called or performed by operating system 38.As above institute
State, the equipment key element according to the present embodiment can meet the object of " .NET " or " ActiveX " standard.Operating system is in itself
Can be based on any appropriate platform, such as Window CE, OS-X etc..As cited herein, equipment key element and instrument branch
Hold the network service or technology for sending data over a network (e.g., the internet).Therefore it is as described below, these
Equipment key element follows the set of rule on information sharing.And by various scripts and programming language accommodation to make
With.Such equipment key element makes it possible to be supplied to the applications, such as LAN, WAN, Intranet, extranet to be interaction content
To WWW.Therefore, operating system 38 and various equipment key elements are beneficial to by means of browser 48 by allowing to browser 48
Configuration access (such as, there is provided (serving up)) dynamically configure HMI26.
For example, such configuration access includes being used for the access for illustrating equipment key element.In other words, can essentially be from clear
Device 48 of looking at creates and performed new equipment key element.Further, it is noted that browser 48 does not need actual function to access.Really, one
In individual embodiment, cause via the request of browser 48 based on the operation of the content of equipment key element in data functionality and container
" extract out (draw) " sequence, thus actually without providing in terms of function in the case of allow that equipment key element represents show and
The access of configuration to them.This allow need not to remote work station technical support in the case of enter via remote work station
Row configuration.
In addition to the operating system 38 and equipment key element of (and as described in more detail below) as described above, HMI 26
Including application or application layer 40.The application that equipment key element can be included with itself is beneficial to access and wanted from HMI 26 various equipment
Element obtains information.Specifically, the first order in the multilevel device key element that can be performed for and enumerate is represented using 40.In reality
During border is realized, the user that XML page face form can be included using 40 applies.Then user apply with user or operator, with
And interacted with designer, as described in more detail below.
Screen view and equipment key element can be described as independent executable software.In the present implementation, by using mark
Note language (for example, HTML or HTML) the appropriate code write defines screen view.Therefore, Ke Yi
The configuration of HMI 26 graphic interface screen is carried out in the case of without using conversion program.In addition, by being carried out to equipment key element
Programming, screen view directly can be developed on HMI 26 via following resident service device softwares (being referred to as server 42), should
Resident service device software makes resident development environment can be used for remotely accessing.Specifically, in one embodiment, some equipment will
The expression (for example, ActiveX is controlled) of element is provided to browser 48 without providing software part in itself.Because can be via
Environment when browser 48 accesses exploitation or design, therefore can eliminate and change is downloaded into screen and renewal Remote configuration software
The needs of application.
As described above, equipment key element can include feature, they by the feature from generally in other equipment (but
Being can also be in HMI) specific memory or storage register read or write specific memory or storage register.Example
Such as, specific function can correspond to write the register 32 of control/supervision equipment 30 or posting from control/supervision equipment 30
Storage 32 is read.In simple cases, for example, object accesses one piece of data is (for example, the shape of the part such as determined by sensor
State), and output signal is generated to write the value for the state for corresponding to different networked devices.As discussed in more detail below
, this status information can be passed on via state increment 43.For example, in the embodiment described in fig. 2, control/monitoring
Equipment 30 and HMI 26 can pass on status information with use state increment 43.In addition, program terminal 46 can also use state
Increment 43 carries out the reception and registration of status information with control/supervision equipment 30 and HMI26.
Of course, it is possible to configure more complicated function.For example, in Industry Control with monitoring in environment, such equipment will
Element can emulate to the operation of a series of physical part, such as momentary contact button, the button with delay output, switch
Deng.The equipment key element of many pre-programmeds can use for HMI 26.Such functional module can via network access,
It either may reside within HMI 26 or reside in and be directly linked in HMI 26 single equipment.In this way,
HMI supplier or software vendor can provide many possible structure blocks, can be to screen and multiple according to the structure block
Miscellaneous control is programmed with function for monitoring.In fact, the storehouse 44 of available equipment key element may reside within HMI 26 with
Beneficial to HMI 26 is configured, as described below.Screen command can be inputted based on operator to be used to perform desired work(to call
The equipment key element of energy, and these instructions can be programmed to the version of pre-programmed key element.For example, operator can pass through touch
Position on touch-screen or the key on pressure keyboard provide initial input.It is then based on screen command and associated with instruction
Equipment key element (for example, called with specific location triggered or perform pre-configured equipment key element), expectation can be performed
Function.Therefore, operator can be interacted with processing generally to change screen view, write-in register or order generation
Other outputs or control signal.Unit realization in, interaction can be simply recall or data storage, change screen
Deng.
There are many such screens and the HMI of substantial amounts of equipment key element for some, can use one or more
Single interface screen.Each equipment key element and then can uniquely it be programmed to consider specifically to input, perform specific work(
The signal for specifically exporting and can be generated.As described below, multiple such equipment key elements can be loaded and by
Trustship is in single software " container " (for example, ActiveX containers).
It can interact to configure by the screen or panel directly with HMI 26 itself (if there is one)
HMI 26, but will perform configuration from long-range program terminal 46 in many cases.For example, via browser 48 or similar
Application the access to being resident storehouse 44 and/or operating system 38 and application 40 is directly provided.In the present implementation, in programming eventually
Hold and other special-purpose softwares are not needed at 46.In fact, the server 42 resided on HMI 26 can be provided in storehouse 44
The access of equipment key element.By the equipment key element directly on HMI 26 in thesaurus 44, version conflict is eliminate or reduced
Deng risk.Therefore.HMI 26 can be directly connected to program terminal 46, or according to distribute to HMI 26 IP address (because
Special fidonetFido address) access HMI 26.
Access control scheme can be used for the ability that limitation changes screen and equipment key element.For example, it may be desirable to password
Or user's access state obtains such access.In addition, it is presently contemplated that embodiment in, program terminal automatically identifies
HMI 26 or following terminals, HMI 26 is resident as being couple to the equipment of program terminal 46 (for example, being similar on the terminal
External memory storage or driving).Therefore, it is once connected to program terminal, HMI 26 can be simply " recognized " as can be by
The equipment of access (following configuration screen and instrument are provided).
Once the equipment key element then resided on HMI 26 can be programmed terminal 46 and access, then can be self-editing via coming
The communication link of journey terminal 46 on HMI 26 directly in terms of changing or updating HMI 26.For example, user may want to update
Specific HMI figures to provide data, such as historical data or the information to being received from the sensor 34 newly installed it is related
Trend.Updated in addition, user is can be found that in the case of with offline mode (for example, not being immediately performed change) for representing this
The HMI figures of the data of sample are desired or convenient.In this case, user can be linked to via program terminal 46
The storehouse 44 of available equipment key element, and make to use it to change HMI figures or function in development environment.
It is noted that additional equipment key element can be added to storehouse 44.For example, if trend equipment key element is not resident in
On HMI 26, such element can be downloaded to HMI 26 by user from the repository 50 resided in program terminal 46.Or
User can access trend equipment key element via network (for example, internet) from addressable resources bank 52, directly arrive HMI 26
Or pass through program terminal 46.This can be with particularly advantageous, because new and improved equipment key element can be individually and fixed
HMI 26 is downloaded on the basis of phase, thus need not regularly publish new conversion program or HMI operating systems or fortune
Increase new function during row or when designing in the case of environment software.Development environment can set the link in such storehouse.This
Outside, (for example, operating system, server software, device object etc.) in the embodiment using embedded code, due to embedded code
Reside on HMI 26, it is possible to avoid and the version conflict of embedded code and program terminal software upgrading can be eliminated
Necessity.
For Tracing Control and the status information of one or more parts of monitoring system 24, control and monitoring system 24
Part can use and represent control and the distributed data model of the various aspects of monitoring system 24.For example, distributed data
Model can enable the copy of multiple caches of the data model of representative control and monitoring system 24 be present in control with
In monitoring system 24 (for example, one or more places in the part with monitoring system 24 is controlled).As below by more detail
Ground description, distributed data model can combine increment script and distributed command processing carrys out work.Increment script can make
One or more parts of control and monitoring system 24 can determine the state change of data model, and generation only includes data mould
The change of type and/or the increment script of whole data model, and increment script is supplied to its of control and monitoring system 24
His part.The data that miscellaneous part can consume increment script and will be contained in increment script are applied to local data model
Cache copy (for example, included in control and distributed copies of one of the part of monitoring system 24).In addition, such as with
Under will be discussed in, some parts of control and monitoring system 24, which can utilize, to be allowed at distributed command
The distributed execution engine of reason.Such distributed command processing enables control and the distributed elements of monitoring system 24 to be based on
It is supplied to event or the scheduling of distributed elements to be performed to handle order.
By using distributed data model, distributed increment communication (for example, via increment script) and distribution
Order performs, and caused control and monitoring system 24 can more robusts and flexible.It is, for example, possible to use distributed data model
Copy to influence control and the change in monitoring system 24, rather than depending on the collection at centerized fusion/supervision equipment 30
Chinese style data model.For example, HMI 26 can include the copy of distributed data pattern, HMI 26 is influenceed dependent on the copy
Within change, rather than rely on the centralized data model at control/supervision equipment 30 to influence HMI 26 change.This
Outside, HMI 26 can receive following state increments 43 (for example, via increment script):State increment 43 is consumed by HMI 26, and
And it is the local replica for the data model that HMI is applied to by HMI 26.In addition, as will be described in more detail below, HMI
26 can locally execute engine (for example, being distributed in HMI 26 enforcement engine) including following:This locally execute engine for
It is useful that offer to HMI 26 order is performed at HMI 26.
In addition, this function enables synchronous data storage to exist throughout control with monitoring system 24.These synchronizations
Data storage can be by enabling multiple users to will be synchronous with each data storage in other data storages
What individual data storage made a change and made can be cooperated.Further, since data storage can be controlled and supervised with cache
The single copy of the data of viewing system 24, it is possible to carry out off line modification.For example, even if when controller is unavailable, pass through
Using the data cached in one of data storage high speed, user can modify to controlling with monitoring system 24.Work as user
When recovering online (for example, can be with access process device), the modification made by user under offline condition can be with other data
Storage is synchronous.Therefore, change can be supplied to control and monitoring system 24 by user with more consistent and reliable way.
For example, user can be in design software (such as the Logix of Rockwell automations limited companyTM) in
Tag definitions, metadata definition are changed, the key element renaming of design can be changed alarm setting, change number
According to type and/or modification data record situation.Local datastore can be made in these changes submitted by user.When online,
These changes can propagate to control and other data storages in monitoring system 24, so as to throughout these changes of the application of system 24
Change.During off line, these changes can be retained in local datastore, and (for example, reconnecting to control when returning to online
With the controller of monitoring system 24) then can be synchronous.By the automatic spread of change, the change typing of redundancy can be avoided,
So as to save development effort.Debugging and initialization can be reduced in addition, being based on automatic renaming by system 24 and propagating.In addition,
Because these changes can originate from whole system, so can allow when different user develops controller and HMI flexible
Workflow.
As described above, by distributed data model, via increment script by change propagation to distributed data model, with
And distributed command performs, control and monitoring system 24 can be greatly improved relative to Traditional control and monitoring system.For example,
Can be by controlling with any one in the multiple copies of the data model of distribution in monitoring system 24 come Service controll and monitoring
The client (for example, request control and part of the data of the data model of monitoring system 24) of system 24.Control and monitoring system
Which copy system 24 can determine come service client from based on one of many decision factors.For example, it can select specific
Distributed data model copy, with based on effectiveness of performance such as high-efficiency network path (for example, close to the copy of client, local
Or network path etc. on network or with maximum bandwidth) provide data to client.In addition, processing considers
Can be by the phoneme as such decision-making.For example, the control of this robust can enable data be carried with monitoring system 24
It is supplied to the client using load-balancing technique.In one embodiment, can from comprising it is known or may than control and prison
The other part of viewing system 24 provides the parts of the distributed copies of the data model of less request to clients providing data.
In one example, control can include two control/supervision equipments 30 (for example, 2 automatic controllers) with monitoring system 24.
Control can predict or observe the first control/control of supervision equipment 30 to the second/supervision equipment 30 with monitoring system 24 and receive more
More requests to data.Therefore, control can be determined from the service client of the second control/supervision equipment 30 with monitoring system 24
To avoid excessive use first from controlling/supervision equipment 30.Thus, control can be by based on control and monitoring with monitoring system 24
The load of part in system 24 and balancing requests, to avoid the overflow of control/supervision equipment 30.In certain embodiments, this
It can include asking to provide the amount to the number of threshold values of request or data and being moved to when a threshold is reached excessive from single part
Stream source.In certain embodiments, this can be included in when providing data and substantially uniformly share the load of request or the amount of data.
In addition to the load balance ability of distributed data model, increment script and enforcement engine can be provided, this
A little abilities can also be beneficial to control and the data redundancy in monitoring system 24.For example, control and one in monitoring system 24
Or multiple parts can monitor one or more distributed copies of data model.Once detect that copy is unstable (such as not
The copy of distributed model is represented exactly), copy that unstable copy can stablize (such as distribution is represented exactly
The copy of model) replace.Control and monitoring with the copy for representing data model exactly can be confirmed as from being distributed in
Any one in other copies of data model in system 24 obtains stable copy.
In certain embodiments, control can access following redundancy ponds with the part of monitoring system 24, the redundancy pond to point
The control of effective copy of effective copy or distributed storage data model of cloth data model and the part of monitoring system 24
Pointer is provided.For example, when the data in client component requests data model, where it can obtain data to reception and registration
Redundancy pond conduct interviews.As described above, control and one or more parts of monitoring system 24 can monitor data model
Copy, to determine unstable copy.When detecting one or more unstable copies, control and monitoring system 24
Part can remove the pointer of unstable copy or store the control of unstable copy and the part of monitoring system 24.Cause
This, can not access unstable copy via redundancy pond.
In certain embodiments, as described above, removing unstable copy (or the copy that storage is unstable from redundancy pond
Part) after, control can use version stably replace unstable copy with the part of monitoring system 24.Unstable
After copy is replaced, control and the part of monitoring system 24 can will replace stable release (or stable release replaced in storage
Part) rejoin the redundancy pond for being back to and using in the future.
In order to preferably show design when environment and runtime environment between relation, Fig. 3 provide represent HMI 26 with
The high level flow chart of the interphase interaction of program terminal 46.The following provide the more details on this process.Generally, use
It will include operating system or configuration processor software 38, application software 40 and any in the platform of HMI 26 and program terminal 46
Communication software, microprocessor, network interface, input/output hardware, wildcard software library, data base administration, user interface software etc.
(not specifically shown in Fig. 3).In the illustrated embodiment, platform interacts in HMI 26 when platform and operation during design.
Platform provides following view during design, and (such as operation is suitable with environment 16 during the design for accomplishing desktop PC for the view
Operating system 38 such as Windows XP, Windows Vista or Linux) and when running platform via operating system (such as
Windows CE, Linux) with design when platform cooperation.Platform provides dynamic state server content 54 during design, and platform when running
Show the view (if providing display screen on HMI 26) on HMI 26 itself.Environment 16 is in (the example of browser 48 during design
Such as Web browser or other general browsers) in show.
Fig. 3 very high level show design when environment 16 how with operating system 38, using 40 and runtime environment 14
Interaction.Arrow 56 represents that HMI 26 exchanges with the dynamic content between program terminal 46.Environment 16 when generally, with designing
Interaction is the task of following designers 58, and designer 58 initially configures HMI screens or visualization, equipment key element and their work(
Can and it interact, or designer 58 reconfigures this software.Runtime environment 14 is generally by operator 60 directly in HMI
Interacted on 26 with environment 16 during design.It should be noted that when when design, environment 16 has special requirement, in this implementation
In example, this is largely dependent upon operating system 38, using 40 and runtime environment 14.Ring when environment 16 and operation during design
Border 14 can utilize some fiducial techniques, and (such as DHTML, HTML, HTTP, dynamic state server content, JavaScript, Web are clear
Look at device) platform and to be operated respectively in design in platform during operation.Although in the embodiment illustrated, runtime environment 14
Belong to the platform of difference with environment 16 during design, but in certain embodiments, runtime environment 14 can with environment 16 when designing
To belong to identical platform.For example, platform and platform can be configured as or be considered as single platform during operation during design.
In one embodiment of the invention, Web is implemented when make use of design.Such as by the dynamic state server content in Fig. 3
54 is being recorded and by discussed below, and Web is implemented by using being supported with the DHTML from HMI during the design
The speed of software when Web browser (for example, 48) operates in design to provide on platform and flexibility.DHTML is used to pair set
Web content in timing environment 16 carries out dynamic operation.In addition, using dynamic state server content 54 with by Dynamic Web in HMI
Environment 16 when content uses design.The dynamic client-server environment enables web browser to be directed to
Application when in the case of about handling the software to be collected to operating in design on platform is simulated.
Fig. 4 is the figure of one or more equipment key elements in environment when showing the design according to this technology embodiment.
The figure includes passing through between display 100 (for example, the screen shown for browser), attribute Editor 102 and HMI 26
Relation is come the interaction that shows.
Environment includes static content 104 and dynamic content during the design represented with configuration screen or display 100.In dynamic
Holding is included with 106 corresponding image of equipment key element that is any shown or representing (for example, virtual on/off button, measuring instrument
Device).In one embodiment of this technology, image is specified by the image tag in HTML, and is by being retouched as following
A part for the jpeg file that the HMI stated is created.Static content 104 can be created by Active Server Pages (ASP) server
Build, or it can be preexisted in html file.It should be noted that in certain embodiments, the designer only specified is
Edlin can be entered to static content 104.
Environment includes static content 104 and dynamic content during the design represented by configuration screen or display 100.In dynamic
Holding is included with 106 corresponding image of equipment key element that is any shown or representing (for example, virtual on/off button, measuring instrument
Device).In one embodiment of this technology, image is specified by the image tag in HTML, and is by such as following institute
A part for the jpeg file that the HMI of description is created.Static content 104 can be created by ASP servers, or it can be pre-
Pre-exist in html file.It should be noted that in certain embodiments, the designer only specified can be to static content
104 enter edlin.
In Fig. 4 expression, equipment key element represents that 106 are included in view container 108.Such as those skilled in the art institute
Understand, container typically limits the part in the processing space opened particular device key element and can used.Therefore, container
108 can be corresponding with the first view container of the key element for only including to watch in current screen.As discussed above, exist
Many such screens can be set in HMI.Other screens can be provided with other view containers such as container 110 as substituted
Control or interface screen.Usually, in order to accelerate HMI operation (e.g., the change between screen view), by limiting these
Each equipment key element of expression associated or that equipment key element is provided with it, to predefine these view containers and incite somebody to action
Its is associated with each other.The all devices key element that global container 112 can be defined to include needed for various view containers and any
The other element not represented in view container.As figure 4 illustrates, therefore, view container 108 includes performing " slow-motion
To (jog) " function and by the expression in the first screen come the virtual push button 106 that shows.If new container 110 includes dry part
Such as START button 114, " stopping " button 116, virtual instrument 118 and digital read out 120.Global container 112 can then wrap
Include all these equipment key elements for various view containers, and required for the operation of visible equipment but its own is invisible
Any equipment key element 122.These equipment key elements can include performing calculating, trend analysis, communication and many other functions
Key element.
Fig. 4 also show the attribute Editor 102 that user wherein can access each attribute of key element 106.As above institute
Discuss, key element 106 can also include it is associated with key element 106 contact and text, its can also by user by with attribute
Editing machine 102 similar editing machine configures.
In one embodiment, attribute Editor 102 can by reside in HMI 26 from browser (e.g., Fig. 2
Browser 48) interacted to the inquiry string of server 96 (e.g., HTTP server) with HMI 26.Server 96 and bag
The ASP servers 98 for including the interconnection mechanism 12 based on module of such as dynamic link library (DLL) are cooperated to receive and respond
Inquiry.DLL allows executable routine being stored as single file, when program needs or quotes, these single file energy
Enough it is loaded.In the examples described above, when receiving calling, by the heavily loaded page of ASP servers 98 and inquiry string is entered
The initial parsing of row causes to assess movement directive.Server side scripting and then the equipment key element 18 to being represented by image 106
Conduct interviews to update its position attribution.Then new attribute information is updated on the page and passes to the page
Browser 48.
Pass on state change
The distributions change performed through discussing using combining by increment script and distributed command uses
The benefit of distributed data model, distributions change notification will be discussed in further detail below.It is as discussed above
, Fig. 2 is to be adapted in use to increment script according to this technology embodiment to provide the exemplary control of unit information and prison
The outline of viewing system 24 represents.As shown, control can include one or more man-machine interfaces with monitoring system 24
(HMI) 26 and suitable for entering one or more control/supervision equipments 30 of line interface with the part of processing 28.Control/monitoring is set
Standby 30 can include contributing in control with performing task (e.g., processing control, remote equipment monitoring, data in monitoring system 24
Obtain etc.) one or more processors and data storage device.In addition, program terminal 46 can cause it is one or more
Individual user can configure to HMI 26 and/or control/supervision equipment 30 attribute.
In environment is controlled, control and the various objects of monitoring system 24 (e.g., control program, label, module configuration and
HMI screen) state can be stored in control (e.g., program terminal 46, control/monitoring are set with all parts of monitoring system 24
Standby 30, I/O modules and/or HMI terminal 26) memory (e.g., hard disk drive, read-only storage, and/or arbitrary access are deposited
Reservoir) in.Control with the part of monitoring system 24 each can by loose coupling, it is asynchronous in a manner of be operating independently.In addition,
Part can be different programming technique (e.g., C++, Java, and/or C#) implement.Due to believing the state for controlling environmental objects
Breath is made that change, it may be necessary to synchronizes the status information with the status information resided on miscellaneous part, to cause
Part can continuously understand control and the state of the object in monitoring system 24.According to the present embodiment, in order to keep notifying shape
State information, the self-winding parts of storage state information can receive the data (state e.g., changed for being referred to as state increment 43
Key element), do not change also without reception and be already present in the state stored on all parts of storage state information
State key element in information.For example, state increment 43 can include because control with the effect in monitoring system 24 and changed
Any data.By providing state increment 43 without providing unchanged status information, the raising of efficiency can be observed.Example
Such as, can will be each in 100 state key elements in traditional control with 100 state key elements and monitoring system 24
It is supplied to each part for the status information for storing that object.By only providing state increment 43, control and monitoring system 24
Part can only transmission for the data of key element that have changed.Therefore, will if only having a state in 100 state key elements
Element changes, then will not transmit other 99 key elements, so as to the network traffics reduced relative to legacy system.In addition, only provide
State increment 43 can reduce the state change information that the other places generation in control with monitoring system 24 has been override because of carelessness
Possibility.For example, in the case of 100 state key elements being generally noted above, if all 100 state key elements are transferred to
Miscellaneous part, then 99 unchanged key elements may cause the overriding that elsewhere one of this 99 key elements are made with change.Pass through
Unchanged key element (e.g., state increment 43) is only provided, it is that above-mentioned 99 unchanged key elements can not have been changed and with
The influence of one key element of miscellaneous part communication.
The purposes of state increment 24 is now been discussed, Fig. 5, which is shown, to be included for control and monitoring system 24
Part between the control of persistence object model passed on of state change and monitoring system 24.For example, above-mentioned part
Control/supervision equipment 30 (e.g., PLC) can be included, provide the program terminal of item file 150 and such as trustship persistence object mould
The part of the control/supervision equipment 30 and client 156 of type 152 and collaboration session 154.As discussed previously, control/monitoring
Equipment 30 may be adapted to enter line interface with 28 (Fig. 1) of processing part.Item file 150 can be to control and monitoring system 24
Restriction and each attribute for being stored in program terminal 46 (Fig. 1) memory (e.g., hard disk drive) be indicated
Computer documents exports.Persistence object model 152 can be control with (e.g., being led in a manner of lasting in monitoring system 24
Cross and status data be stored in the non-volatile memory medium such as hard disk drive) to controlling and the status number in monitoring system 24
According to change keep tracking one or more parts status data computer model.Persistence object model 152 can
All it is by persistence object for use as reception and registration authenticating party is changed to cause the change made to the state of object of all submissions
Model 152 is stored and passed on.As in following be discussed in greater detail, collaboration session 154 can be control and monitoring
Interactivity information Fabric Interface between the part of system 24, it (e.g., is carried for the offer environment of making of uncertain change in user's selection
After handing over some to change, only these changes can be transferred in the miscellaneous part of control and monitoring system 24).Client 156 can
To be control and the status information of object is preserved any other part in memory by monitoring system 24, such as, there is provided
The part of the expression view of object.
In the embodiment illustrated, shown part (provide collaboration session data 154 control/supervision equipment 30,
The program terminal of updated item file 150 is provided, control/prison of persistence object model 152 and collaboration session 154 is provided
Depending on equipment 30 and client 156) in each included data capsule 158 (e.g., for data retain memory).Number
Include the state key element 160 to controlling the state with one or more objects of monitoring system 24 to be defined according to container 158.
State key element 160 can be defined such that different technology (e.g., C++, Java, and/or C#) can be with data-driven version
Use the data represented by state key element 160.As discussed previously, it may be desirable to being stored in control and monitoring system 24
Status information in all parts is effectively synchronous.Because one in the state key element 160 being stored in data capsule 158 or
More are changed, it may be necessary to which the Data Elements 160 being stored in miscellaneous part are synchronized.
As discussed above, persistence object model 152 can be when in control and all parts in monitoring system 24
Between application state specified authenticating party when changing.Persistence object model 152 can include being referred to as its data capsule 158
In one or more objects status information gold copy 162 thing (as shown by intersecting hachure).Gold
Copy 162 includes the copy of status information, and control always considers that the copy is correct with monitoring system 24.In other words, gold pair
Sheet 162 is the certified copy of status information.There is the gold copy 162 of its own per bar state information, it may or may not
With residing in control together with the gold copy 162 of other status informations with monitoring system 24 (e.g., in same computer system
On).If have submitted one or more state factor changes, the key element of change is provided in the form of increment script 170
To gold copy 162, increment script 170 is updated based on state factor change.Then by increment script 170 by state key element
Change from gold copy and be supplied to control and the miscellaneous part in monitoring system 24.
In order to realize state change in data capsule 158, control can play the part of different from the part of monitoring system 24
Role.These roles can include change instrument 164, change moderator 166 and audient 168.Change instrument 164 (e.g., by working as
Editing machine in preceding embodiment provides the client of the item file 150 of modification) to change moderator 166 send change please
Ask.Change instrument can verify change by receiving asynchronous change response and/or errored response on change request
Success.Change of the change moderator 166 (e.g., the server of trustship persistence object model 42) to entrance is ranked, and is passed through
Perform asked change and carry out processing variation, make other side effects change based on request or abandon the change.Change arbitration
Device 166 can provide to be responded to the change for changing instrument 164, when change occurs (e.g., change notification is published into audient 168
The client 156 and/or control/supervision equipment 30 being related in collaboration session 154), and/or change is write into gold copy
162.Audient 168 receives change notification and using above-mentioned notice come the data capsule 158 for being stored in them to status information
In their local replica be updated.
As discussed previously, the programming technique used in all parts with monitoring system 24 are controlled may not be system
One.For example, some parts can use C++, and miscellaneous part can use C# or Java.Therefore, Fig. 2 is arranged on change
State increment 43 between instrument 164, change moderator 166 and audient 168 can be arranged on independent of particular technique
In data-driven increment script 170.Increment script 170 can be retouched in the form of creating, updating and/or delete (CRUD) data
State Obj State change.Creating data can be including contributing to some or all of data of establishment of object (e.g., for rectangle, square
Locus, width and the height of shape).Default value can be used for any without the data for providing request to create.Updating the data can
(e.g., for the rectangular graph with the locus that have updated, to be updated the data including the data that have updated in object
New locus can only be included).Removed Obj State number can be identified and (e.g., describe its indications) by deleting data
According to (e.g., for the rectangle removed, the title of rectangle to be deleted can be included by deleting data).In one example,
If generate change using following C# pseudo-codes:
Data-driven increment script may be similar to following pseudo- XML examples:
In alternative embodiment, it may not be necessary to including CreatorID or ParentID.But in present example
In provide these ID with to may be included in change in additional data (e.g., make the mark of the entity of change and/or at it
The lower parent object for creating existing object) illustrate.Because data-driven increment script 170 is unknowable or independent of tool
The programming technique of body, so increment script 170 can be consumed by controlling with any miscellaneous part of monitoring system 24, and with institute
The programming technique used is unrelated.
As shown in the above example, in certain embodiments, increment script 170 can include more than one and become
Change.Therefore, increment script 170 provides a kind of is handled with all or noon regular (all or nothing approach)
The mode of whole change set.For example, it is as implied above go out, include in increment script visual on display
Two groups of establishment data, one group is used to create rectangular image, and one group is used to create circular image.If the establishment of circular image produces
Mistake, then it can cancel rectangle change, this causes all or noon regular.
Increment script 170 can also include heading message such as change revision number, submit change when timestamp, make change
The identifier of the user of change, and/or unique revision identifier etc..The identifier of user potentially contributes to recognize change source
Card.In addition, increment script 170 includes changing the identifier of be applied to object, the state key element 160 and state changed
The changing value of key element 160.Because each key element in state key element 160 will be introduced in increment script 170 for the first time
Consumer, so the total state (e.g., all state key elements 160) of object can be included by creating data acquisition system.
Fig. 6 is turned now to, shows the state change between change instrument 164, change moderator 166 and audience members 168
The progress 190 of reception and registration.In the present example, audient 168 (e.g., client 156) provides subscription request to collaboration session 154
192.The revision number of revision 194 of the status information for being stored in audience members 168 can be included by subscribing to request 192.
With subscribing to the mismatch of the revision number sent in request 192, if collaboration session will be sent out the revision on collaboration session 154
The direct notice of the renewal gone out required for this group of increment script 170 with by audience members 168 with to being stored in collaboration session 154
Revision.For example, in panel A, client 156 sends the subscription request 192 for including revision 5.Collaboration session 154 is being revised
On 8, therefore the increment script 170 for revision 6,7 and 8 is sent to client 156.Client 156 can be by increment script 170
Its state is applied to, therefore as shown in panel B, revision 8 is arrived in client renewal.
If change instrument 164 (such as, there is provided the client or server of the program file 150 of renewal) renewal gold copy
162, then change notification to collaboration session 154 and should be subscribed to audience members (e.g., client 156).Such as shown in panel B
, when gold copy 162 is from the renewal of revision 8 to the (item for e.g., sending the renewal from change instrument 164 via passing through when revising 9
Mesh file 150 is come the change that arranges), change moderator 166 provides the increment script 170 for revision 9 to collaboration session 154.
As shown in panel C, the application of collaboration session 154 is updated to revision 9 for revising 9 increment script 170.Increase
Then foot-measuring sheet 170 is transmitted to audience members 168 (e.g., client 156).The application increment of client 156 script 170 simultaneously updates
To revision 9.
In some scenes, audience members may need more more than the increment script 170 being stored in collaboration session 154
Increment script 170.If for example, when client 156 be in revision 2 when by send subscribe to request 192 and collaboration session 154 only
With for revision 5 to 8 increment script 170, then client 156 by still need for revision 3 and 4 increment script 170.
If collaboration session 154 is just lacking necessary increment script 170, it can request that gold copy 162 provides required increment
Script 170.In certain embodiments, gold copy 162 can store all increasings of each revision of the status information for object
Foot-measuring sheet.But in other embodiments, can only store limited quantity script (e.g., last 5 of increment script 170,10,
50 or 100 revisions).If gold copy 162 can provide required script, can by collaboration session 154 by they
Propagate to client 156.But if increment script necessary to could not propagating, can notify audience members 168 (e.g., to lead to
Cross unexpected message) and/or using the next heavily loaded audience members 168 of the whole elements combination associated with current state information so that
Audience members 168 are newest.In addition, if audience members 168 meet with one or more mistakes using increment script 170
By mistake, then the whole elements combination associated with current state information is used to carry out heavily loaded audience members 168.In addition, in some situations
Under, it is fully heavily loaded compared to application state increment if substantial amounts of increment script 170 will be needed to update audience members 168
All status informations may be more efficient or catered to the need.In certain embodiments, the increment script applied if desired
Quantity has exceeded maximal increment script threshold value, then uses the whole elements combination associated with current state information to carry out heavily loaded audient
Member 168.The complete heavy duty that can tend to cause status information based on the meeting perceived is than loading increased increment script
Significantly more efficient increment script quantity customizes maximal increment script threshold value.
In certain embodiments, control can also include reverse increment with monitoring system 24.Reverse increment from currently to repairing
Change necessary to returning back to previous revision is ordered to be described.If be employed, reverse increment script can be by the state of object
Information retracts one and revised.This reversely increment script applications are compiled to including being revised with the quantity identical of reverse increment script
Number data capsule (e.g., Fig. 5 data capsule 158).Reverse increment script can aid in establishment and be directed in control and monitoring
Change " cancellation " function of being submitted in system 24, and can be also used for withdrawing also without the uncertain change submitted, such as submitting
Those changes created before change in collaboration session 154.
Fig. 7 shows a cancellation scheme according to the present embodiment.In panel A, object 210 is initiated by the first client
For revision 211 edit session.First client enter in the session edlin with by the band of object 210 into panel B
Uncertain revision 214.First client disconnects, and when broken apart, the second client cancels revision 214 and 213, such as in panel
Shown in C.Then, the second client can make new change 213 and 214.
In order to prevent the first client to be based only upon revision number to detect it be newest, each revision one can be assigned to
Identifier is directed to the unique identifier of the revision number to cause the combination of revision number and identifier to create.If application is reverse
Increment script can then retain cancelled increment script, to allow to implement " reforming " function to cancel change.If weight
Do and change, then reuse the previous identifier for the revision, because the increment script had been reintroduced back to previously
Removed identical change.But if making new revision, using new revision identifier, with not control with
The part of monitoring system 24 obscures the revision cancelled with the new revision with identical numbering.
For example, in revision in Fig. 7 each of there is associated identifier.Revision 211 has identifier M, revises
212 have identifier R, and original revision 213 has identifier T, and original revision 214 has identifier X.If cancellation is repaiied
214 and 213 are ordered, then never periodical repair orders middle removal by them.If they are re-added to uncertain change by their quilts " cancellation "
Change, regenerate the revision with identical identifier T and X.But in present exemplary, new change is made, tool is respectively created
There are identifier S and Y new revision 213 and 214.Because they are entirely new revision, identified using identifier S and Y
Above-mentioned revision.Once the first client recovers online and reformulate readding for renewal, then will without doubt, it is not to work as
Preceding newest, because final revision is 214-X and current revision is 214-Y.In certain embodiments, can be by chasing after
Track revision number and indications find edit path and correspondingly update revision information to update the first client.Other
In embodiment, if it find that whole set (e.g., all shapes of inconsistent revision number identifier, then use state information
State key element 160) carry out the heavily loaded part.
Can be to carrying out the gold copy of the collaboration session (e.g., the collaboration session 154 in Fig. 6) of uncertain editor outside
(e.g., the gold copy 162 in Fig. 6) makes change.Fig. 8 shows following scene:Making the outside for gold copy 162
While change currently uncertain editor is being made in collaboration session 154.As shown, the revision 221-B to object 210
Using the first uncertain changes delta 1 222-J is revised to generate.In addition, respectively by the second uncertain 2 and the 3rd uncertain changes delta of changes delta
3 are used to generate revision 223-N and revision 224-D.Before uncertain changes delta 1, Δ 2 and Δ 3 is submitted, by control and monitoring system
External change Δ 1 ' is applied to the gold copy 162 for being currently at revision 221-B by 24 another part.If collaboration session
154 receive that new revision 222 is existing to be notified, then collaboration session 154 withdraw uncertain changes delta 3, Δ 2 and Δ 1 (with by they
Preserved as following pending forward direction increment).Then, collaboration session applies the increment script for revision 222-H, and
Then revision 223-R, 224-C and 225-X uncertain changes delta 1, Δ 2 and Δ 3 is respectively created in application.In some cases, may be used
To change uncertain changes delta 1, Δ 2 and Δ 3 to apply them after 222-H is revised.In certain embodiments, can notify assisting
Make to make the uncertain change of audience members of uncertain change in session 154 to be applied to gold pair with covering recent external change
This 162.
In some cases, user may expect to terminate in collaboration session 154 change made.Fig. 9, which is shown, to be used for
Process for stopping the uncertain change in collaboration session 154.As shown in present exemplary, user is from revision 221-B
Create uncertain changes delta 1, generation revision 222-J.Uncertain changes delta 2, generation revision 223-N are created from revision 222-J.In addition,
Uncertain changes delta 3, generation revision 224-D are created from state 223-N.User can determine that change is not required and/or not be
It is desired and change (e.g., the cancel button by selecting in the program terminal 46 in Fig. 2) can be cancelled.It is uncertain in order to withdraw
Change, the part with unsettled condition change can be applied for the reverse of each uncertain change (e.g., Δ 3, Δ 2 and Δ 1)
Increment is to retain original non-uncertain revision (e.g., revising 221-B).Alternately, because gold copy 162 has what is stored
Newest non-uncertain revision (revision for e.g., not including change to be aborted), so part can be simply from gold copy 162
Heavily loaded whole status information.Therefore, as shown in figure 9, by reverse increment or from the heavy duty of gold copy 162, at time T1
Collaboration session is stayed in into revision 221-B.Therefore, collaboration session, which can be used to undertake from revision 221-B, carries out additional editor's (e.g., Δ
4) new revision 222-R, is generated at time T2.
In some cases, single revision is created compared to for each in uncertain change, by multiple uncertain changes
It is probably beneficial that change, which is compressed into a revision,.Figure 10 shows following examples:Some uncertain changes are combined into one group of volume
Volume, to generate less revision.As shown, edit session is opened at time T0.By uncertain change application to revision
221-B, generation revision 222-J, 223-N and 224-D.Uncertain change may be relevant with the change made to common state key element
(e.g., each change may change the locus of rectangle over the display).For example, revision 222-J can be by rectangular arrangement
In the center of screen, revision 223-N can update rectangle position in the upper left corner to screen, and revise 224-D can should
Location updating is to the lower left corner of screen.Therefore, although being applied with some value changes, may only need (e.g., to repair from original value
Order 221-B) to end value (for example, screen the lower left corner arrangement, as revising 224-D described in) increment.Therefore, assist
Make the single revision that the middle revision in session 154 may be reduced on gold copy 162.Therefore, as at T2 shown in, not
Determine changes delta 1, Δ 2 and Δ 3 to be compressed and be applied to revision 221-B, generate revision 222-R.It is configured in part when inspection
When measuring the conflict mark symbol associated with revised edition number in the embodiment of fully heavily loaded all status informations, work as notifying parts
When revising 222-R available (e.g., being shown at T3), part can heavily loaded all status informations for revision 222-R.Such as this
Art personnel it should be appreciated that this only may be employed to combine increment compression form in one kind.There is provided
Example be not intended to limit for uncertain change compress technique.
Distributed command performs
Turning now to following discussion:How change changes, Figure 11 shows once being communicated in control and the interior application of monitoring system 24
Having gone out has various parts (e.g., HMI terminal 26, control/supervision equipment 30, program terminal 46, intelligent input/output equipment 260
With mute input/output (I/O) equipment 262) control and monitoring system 24.Intelligent I/O equipment 260 can include central processing list
First (CPU), to allow intelligent I/O equipment 260 based on being supplied to their data come execution logic.Mute I/O equipment 262 can
Not include CPU, therefore controller is may rely on by Logic application to their input.
Enforcement engine 264 can be embedded in control and monitoring system 24 and can support in all parts of enforcement engine.
In one example, the part with CPU is implemented using enforcement engine 264.Enforcement engine 264 can be by control and monitoring system
Change application in 24 (e.g., state increments 43) of system is to being embedded with all parts of enforcement engine 264.Enforcement engine 264 wraps
Include order (e.g., command script 266) and trigger condition 268.When trigger condition 268 is assessed as true, by enforcement engine 264
Perform command script 266.For example, trigger condition 268 can be evaluated as very in a case where:When intelligent I/O equipment 260 or mute
The state of I/O equipment 262 is changed, and the data value in control/supervision equipment 30 is changed and (e.g., produced by increment script 170)
And/or when user and HMI 26 interact.By by enforcement engine 264 throughout control and all parts of monitoring system 24 come
Distribution, it can more efficiently handle control and the change in monitoring system 24.For example, the CPU of all parts can be utilized
Disposal ability controls control logic needed for the part with monitoring system 24 to perform.In addition, compared with the controller of concentration, control
Redundancy can be increased and/or provide more preferable place to perform life by being performed with the order in the various parts of monitoring system 24
Order.For example, intelligent I/O equipment 260 is enabled to perform specific to intelligent I/O equipment 260 with monitoring system 24 in response to control
Logic, without dependent on control/supervision equipment 30.
As discussed above, some parts (e.g., mute I/O equipment 262) may not support embedded enforcement engine 264,
Or it may support enforcement engine 264 still without embedded enforcement engine 264.These parts may rely on miscellaneous part and (e.g., control
System/supervision equipment 30) come perform be directed to without be embedded in enforcement engine 264 part logic.It is for example, as shown in fig. 11
, enforcement engine 264 of the mute I/O equipment 262 without insertion.It is in addition, (e.g., terraced using the traditional logic of control/supervision equipment 30
Shape logic (LL), functional block diagram (FBD), SFC (SFC) etc.) carry out polling data.
Order (such as command script 266, the relay ladder logic as defined in user and/or system) can be storage
In tangible, non-volatile, computer-readable medium (for example, hard disk drive, database, read-only storage, and/or arbitrary access
Memory) in the computer-readable instruction (e.g., object) being performed when trigger condition occurs or at scheduling time.Example
Such as, order can be stored in data capsule 158 in Figure 5.Order can from order base class inherited attribute and/or function
Basis set.Specific attribute and behavior can be added in base class, to derive other order classes, such as be used for screen navigation and write
The class of label value etc..In certain embodiments, order base class can include parameter, or the parameter number that can be used for inputting and export
According to the parameter sets of name/value pair.In addition, order base class can include " completion " attribute that instruction order has performed completion.
Order base class can include instruction causes order to perform the wrong community stopped because of mistake.In addition, order base class can include
By control with monitoring system 24 be used for whom is determined come be responsible for order storage, clearing (e.g., what entity should after execution by
Order deleted from data capsule 158) parent attribute.Order base class can include the name attribute being identified to order.Can be with
Name attribute is used in expression and trigger condition 268, to allow the attribute of order to trigger additional command.Order base class can
The progress attribute being in progress with the execution including instruction order, and can also have the execution of instruction order to have timed, out and (e.g., exist
Be not carried out in the period distributed) timeout properties.Order base class can include order being added to appropriate execution
The scheduling attributes of thread, it will be discussed in more detail further below.In addition, order base class can include referring to comprising execution
The execution attribute of order.
In some embodiments it is possible to it will order compound or put together.With two kinds of basic complex forms:Order is ordered
Make compound peaceful line command compound.In sequence command is compound, each order being brought together in group is every with given order
Next ground performs.A compound example of useful sequence command can carry out the Management Information Base of following processing:1) write
Label is filled with starting tank, and 2) specific label value is waited, and 3) change Graphic State key element.It is possible order life below
Make compound pseudo-code example:
<Sequence>
<WriteTag ref=" mytank " ...>
<WaitFor trigger=" mytank.fill==100 " ...>
<SetState ref=" myTankDoneText " state=" Done "/>
</Sequence>
In parallel command is compound, it is compound in each order together performed in the same time.For example, following writes
Tag command can perform in the same time started:
In certain embodiments, order is compound can include the sequentially compound and combination of parallel composition.Such as:
Turn now to Figure 12, there is provided by enforcement engine come perform frame circulation 300 embodiment.Frame circulation 300 is to close
In the controlled time cycle (e.g., 30 times per second) come one group of computer-readable instruction performing.The target of frame circulation 300 is to carrying
The data variation (e.g., state increment 43) for supplying Figure 11 enforcement engine 264 is made a response.As shown, frame circulation 300 can
Represented with assessing at frame 302.For example, expression data (e.g., the value of data object) are provided by data acquisition thread 303,
Data acquisition thread 303 can conduct interviews to controlling the status data with monitoring system 24.Frame is circulated based on the table assessed
Reach and trigger condition (e.g., the trigger condition 268 in Figure 11) is assessed at frame 304.If based on the expression assessed
Any one in trigger condition 268 is evaluated as very, then can couple order (e.g., the Tu11Zhong associated with trigger condition 268
Command script 266) be scheduled or perform.As being discussed in greater detail below, on Figure 13, can be circulated in frame
Some orders are performed in 300, and can be in other threads or thread pool (e.g., user inputs thread 305 and thread pool 307)
Other orders are scheduled and performed.Frame ordering or the scheduled order to be run in frame circulation 300 can be at frames 306
Perform.Then, any transition renewal is performed at frame 308 (e.g., how from a value changes to the computer-readable of another value
Instruction).One example of transition renewal can include the graphic animations of designated state change, for example, showing the valve for opening
Flowing animation arrow, or for it is figured recently state change the animation arrow to fade out.Then, frame circulation 300
The change (such as, there is provided the screen picture of renewal and/or new data value) applied by performed order can be provided.
As discussed above, frame circulation 300 can run (e.g., 30 times per second) on the controlled time cycle.
In some embodiments, it can be held by the part with given time interval skipped frame circulation 300 to adjust frame circulation 300
OK.Run 30 times for example it is assumed that frame circulation 300 is per second, then frame circulation 300 can be designed to that each 3rd frame table reaches and commented
Estimate (frame 302), (frame 304) can be assessed trigger at each 3rd frame since the second frame, and can be from
Three frames start to provide transition renewal (frame 308) at each 3rd frame.The offer (frame 310) can continuously be held at each frame
OK, or only can most preferably be run when change occurs.Therefore, each can still perform in order in frame, but saved
It is made as performing with less frequency (e.g., 1/3 frequency or 10 frame per second).
Furthermore, it is possible to frame rate is changed based on the hardware of operation enforcement engine 264.For example, in certain embodiments, such as
Fruit is such as based on using the processor of lower capabilitySystem, then frame circulation can run with 12 frame per second, if
Using the system based on Atom, then frame circulation can be run with 30 frame per second, if using desktop computer, frame circulation can
To be run with 60 frame per second, and if using the system based on browser, then frame circulation can be run with 24 frame per second.This
Outside, transition option can allow less transition (e.g., every 6 frame 1 time) and/or can allow depend on used platform and compared with
There is provided transition with infrequently (e.g., not being each frame).Enforcement engine 264 can be adapted to based on identified frame circulation 300
The execution time in various stages, frame circulation 300 is adjusted during operation.For example, expressing heavy screen may need
The times are assessed in more expression, and the heavy screen of transition may need more transition processings/execution time.
Turn now on how discussion of the traffic order to perform, Figure 13 is shown is used for traffic order according to embodiment
Processing 320.When trigger condition 268 is evaluated as into true at frame 322, start dispatch deal 320.As discussed previously,
There can be one or more orders associated with trigger condition 268.Depending on the order associated with trigger condition 268
Type, processing 320 can take in two paths one.Order can be any in frame ordering 324 or order thread 326
One.Frame ordering 324 influences the data in main frame circulation 300.In order to be performed in main frame circulation 300, can incite somebody to action
Frame ordering 324 is added to frame ordering list 326.Performed it is then possible to be circulated in main frame on 300 (frames 306 in Figure 12)
Frame ordering 324.Generally, these orders change the data for bringing up again confession for needing data.Therefore, (the frame in Figure 12 can provided
310) these orders are performed before.
Order thread 326 is the order that the data in the memory space not performed to frame circulation 300 conduct interviews.Can be
Circulated from frame and freely dispatch these orders on 300 different threads.Therefore, if trigger condition 268 is commented for order thread 326
It is true to estimate, then scheduling thread order in thread pool 307 to run.Can more efficiently it be utilized by using thread pool 307
Resource.For example, circulating 300 threads by making order thread 326 avoid frame, frame circulates 300 freely to perform more importantly
Order and/or the order that must be run in frame circulation 300.
Plug-in architecture can be linked
It now been discussed control and passed on the conversion in monitoring system 24 and performed with order, is discussed below by can chain
The data conversion that connector function is carried out.As discussed above, control with monitoring system 24 can be have can be in system 24
Part between the data-driven system of polytype resource passed on.Resource type can be that what number is mark resource be
According to classification.The example of these resource types can be in label, object data type, visualization screen or system 24 it is any its
The object that he can be defined by the user.These resources can inherit mutual function, create high dynamic type system.In other words, it is
There may be the multiple resources type of the granularity with varying level in system.
It there may come a time when it is expected to controlling the part with monitoring system 24 to modify.For example, control and monitoring system 24
Design and/or the manufacturer of control software or user may expect a type of data (or the thing associated with the data
Part) it is converted into another type of data or event.These modifications can be added to and limit the latent of control and monitoring system 24
In machine readable instructions, still, these modifications are likely to require to be recompilated to these machine readable instructions.So as to,
The part of control and monitoring system 24 can make it that generation can be with the plug-in unit of the various resource types in processing system 24.Plug-in unit can
To be following machine readable code:Separated with the machine readable code of application and enable work(that is customizable or increasing the application
Energy.Figure 14 provide according to the present embodiment it is a kind of as system schematic diagram.
Similar to Fig. 1, Figure 14 system 350 includes controller 30, and it represents control and/or supervision equipment.In operation,
Controller 30 is monitored and controlled to processing 28 by sensor 34 and executing agency 36.In addition, system 350 includes HMI
26, HMI 26 include being used to enable the business 352 that people is monitored and/or controlled to the various processing in system 350.System
Program terminal 46 in system 350 can cause one or more users to match somebody with somebody HMI 26 and/or controller 30 attribute
Put.
As discussed above, many situations below be present:It may be desirable to the function additional to the addition of system 350.For example, it is
The user of system 350 may want to the machine of the disabled customization in HMI 26 and/or program terminal 46 is implemented to instruct into
Row enables.In addition, the manufacturer of HMI 26 and/or program terminal 46 may want to implement new feature without re-establishing definition
The a whole set of machine readable instructions of these parts of system 350.Therefore, part (e.g., HMI 26 and/or program terminal 46) can wrap
The machine readable instructions for handling plug-in unit are included, these instructions can be defined to the instruction to HMI 26 and/or program terminal 46
A part for machine readable code in addition.These plug-in units can make it possible following:The feelings of part need not restarted
The function of part is modified under condition.
As shown in Figure 14, HMI 26 and program terminal 46 are respectively equipped with insert management system 354 and 356.These
Insert management system 354 and 356 can enable HMI 26 and program terminal 46 to be registered respectively to plug-in unit 358 and 360.
It can be appreciated that by registered plug-ins 358 and 360, HMI 26 and program terminal 46 and implement pin function.For example, plug-in unit
358 can include the external security logic to be used in HMI 26.User or HMI 26 manufacturer can create plug-in unit 358
And by insert management system 354 to the registered plug-ins 358 of HMI 26.
When to HMI 26 and/or the registration of program terminal 46, plug-in unit 358 and 360 can access the part that they are registered
Business 352 and 355.For example, HMI plug-in units 358 can access HMI 26 business 352 by business interface 364.Programming is eventually
End plug-in unit 360 can access the business 355 of program terminal 46 by business interface 366.In one embodiment, interface 364
Can be with 366 can be from the API (API) of the reception interactive instruction of plug-in unit 358 and 360.
As discussed above, resource 162 can be passed between the part of system 350.Resource 162 can be with polymorphic chain
Come the object created.Polymorphism is related to the ability with shared interface (e.g., the interface of function) of object, even if it has difference
Type.In addition, polymorphic chain might mean that different types of resource from drawing each other.In simple example, have shape,
The resource 162 of rectangle and square type can be appeared in system 350.Rectangle type can draw from shape type, just
Square type can be drawn from rectangle type.In addition, these resources 162 can be by general object model or not by recipient
The model that is made a distinction with other required parameters limits.Because these resource types are limited by general object model,
The data access of resource 162 and conversion can be with expanded, without will change recipient and other associated with resource 162
Parameter distinguishes.It is thus possible to so that insert management system 354 and 356 be able to access that and using in polymorphic chain Anywhere
Data.It is, for example, possible to use regulation resource 162 size plug-in unit come to rectangle and square size be adjusted.This
Can be by can be by together to handling a series of plug-in units of specific resource type to carry out.For example, plug-in management
System 354 and/or 356 can determine can chain connector appropriate subset, with based on limit resource 162 common object model road
Footpath handles specific resource 162.In certain embodiments, plug-in unit can specify the particular type of the resource handled by them.
Insert management system 354 and/or 356 can determine to implement appropriate chain (e.g., the appropriate set of plug-in unit and appropriate needed for function
Sequentially).
Can by can chain connector come the quantity for the feature implemented be very big.Because plug-in unit is linkable, institute
The feature of almost all of resource type in system 350 is appeared in can generate to be directed to, but regardless of which point in polymorphic chain
Resource type can be found.Furthermore, it is possible to by insert design into:Before the establishment and/or deletion of resource, period and/or it
After add function.It is thus possible to realize the very dynamic plug-in unit set that can handle many resource types.
Although some features of the present invention only have shown and described herein, those skilled in the art will recognize that perhaps
More modifications and variations.Therefore it should be understood that appended claims are intended to cover all these fall within the true spirit of the invention
Modifications and variations.