The present invention relates to industrial apparatus of the type used in a product packaging facility arranged to pack one or more products into one or more packs, and methods for providing remote support for such apparatus.
It is known for industrial printers such as industrial coding and labelling machines to provide a local user interface (for example a touchscreen interface), by which a user of the industrial printer is able to control operation of the industrial printer. Such local interfaces are typically controlled by so-called “native” or “local” software operating on the industrial printer, in order to deliver a responsive user experience. Local interfaces of this type require a user to be in the same location as the industrial printer.
It is also known for industrial printers to be configured to provide a remote interface distinct from the native interface. Often, the remote interface is a so-called “web-interface” which can be accessed by a web-browser over a network such as the Internet. In this way, where a user may not have local access to an industrial printer, that user can nonetheless control aspects of the operation of the industrial printer via the remote interface. In some cases, both the native interface, and the remote interface can be active simultaneously. For example, in the event of a problem with the industrial printer, a local user may request support from a remote user. In this way, a local user (for example on a production line on which the industrial printer is operating) may be providing operational commands to the industrial printer by way of the native interface at the same time as a remote user is providing operational commands to the industrial printer by way of the remote interface. This can lead to, at best unhelpful, and potentially damaging, conflicts in the instructions that are provided to the industrial printer.
This problem is exacerbated where, as is often the case, an industrial printer is installed in a production line without access to telecommunications facilities, such as telephones. As such, in order to communicate with a remote user who is providing support, a local user may need to leave the production line to find a designated ‘quite area’ providing telephones with which communication with remote users may be achieved. Where local interaction with the industrial printer is required (for example for remedial action, testing or verification of an expected outcome, etc), the local user is required to return to the production line, halting communication with the remote user. This, of course, may need repeating. In addition to being inefficient, requiring the local user to repeatedly leave and return to the industrial printer increases the likelihood that errors, and conflicts between the local and remote user interfaces, may occur.
It is an object of the present invention to obviate or mitigate at least one problem of the prior art, whether identified herein or elsewhere, or to provide an alternative to existing apparatus or methods.
According to a first aspect of the present invention, there is provided an industrial apparatus of the type used in a product packaging facility arranged to pack one or more products into one or more packs, the apparatus comprising: a device configured to perform an operation on at least some of the packs as the packs are transported past the device; a controller arranged to control the apparatus, the controller providing a user interface for the apparatus; a communications link providing bi-directional communication between the controller and a remote device. The controller is configured to: receive a command from the user interface indicating a request to initiate a remote support session; initiate the remote support session by establishing a communications session between the controller and the remote device; and receive data from the remote device in the communications session to provide remote support for the apparatus.
In this way, a remote support communications session may be initiated from the industrial apparatus itself, thereby increasing the efficiency of remote support provision for the industrial apparatus. The industrial apparatus may take the form of any device which is used in a product packaging facility to package products into packs and/or to apply data to the packs. As such, examples of industrial apparatus include industrial printers (e.g. thermal transfer overprinters (TTO), ink jet printers (including but not limited to continuous ink jet printers), labelling machines and print and apply labelling machines.
By providing a user with a mechanism to initiate the remote support session from the industrial apparatus a convenient support mechanism is provided. In particular, whereas heretofore an operator of the industrial apparatus may have been required to initiate a support session by telephoning or otherwise contacting a remote support provider separately and remote from the apparatus of interest, apparatus in accordance with some embodiments described herein allows a more integrated approach where the industrial apparatus itself is used for the establishment of the support session. Such an approach increases efficiency as a user is no longer required to make use of a telephone or desktop computer to initiate the support session.
As will be described in further detail herein, in some embodiments, the remote support session may be arranged such that a remote support operative (i.e. an individual providing the remote support) is able to communicate with an operator of the industrial apparatus. This may be achieved by providing communication functionality (e.g. voice and/or video communication functionality) to the industrial apparatus and using this communication functionality during the remote support session. Again, such an approach provides increased levels of overall integration as an operator of the industrial apparatus is then able to communicate with the remote support operative without leaving the industrial apparatus. As well as increasing efficiency, such an approach allows more effective support to be provided as the operator of the industrial apparatus can interact with the industrial device during the remote session and while communicating with the remote support operative.
Additionally or alternatively, in some embodiments the remote support session may be arranged such that the remote support operative is provided with a user interface for the industrial apparatus from which he or she is able to control the industrial apparatus. Such an approach may enhance support by allowing the remote support operative to directly affect operation of the industrial apparatus.
The user interface provided by the controller may be a local user interface. That is, the user interface provided by the controller may be presented for use at a controller device local to the industrial apparatus. For example the local user interface may be presented on a touch screen display located adjacent to the industrial apparatus. To initiate the remote support session the controller may be configured to transmit a remote user interface from the industrial apparatus to the remote device.
To initiate the remote support session, the controller may be further configured to generate the remote user interface.
The local user interface may comprise a plurality of components, and to generate the remote user interface the controller may be configured to generate computer program code for at least some of the plurality of components of the local user interface.
To generate the computer program code for at least some of the plurality of components the controller may be configured to generate computer program code for each of a plurality of components visible in the local user interface. For example, where the local user interface comprises a plurality of components (for example windows, controls, etc), some of which are visible and others of which are not visible, the controller may be configured to generate computer program code only for those components which are currently visible.
Each component of the plurality of components of the local user interface may be adapted to generate computer program code for representing that component in the remote user interface. For example, at least some of the components of the local user interface (i.e. at least some of the plurality of components) may be adapted to generate HTML code to represent those components in the remote user interface.
The industrial apparatus may further comprise an audio input device and an audio output device. For example, the audio input device and audio output devices may be provided by a suitable headset. The remote support session may therefore comprise an audio connection between the industrial apparatus and the remote device. For example, the audio connection may operate using a Voice-Over-IP protocol. In this way, a user of the industrial apparatus can utilise voice communication during the remote support session to enhance the remote support session.
The industrial apparatus may further comprise a video camera. The remote support session may therefore comprise a video connection between the industrial apparatus and the remote device. In this way, a user of the industrial apparatus can utilise video communication during the remote support session to enhance the remote support session.
The controller may be configured to receive an indication of an interaction with the remote user interface and to update the local user interface in response to the interaction with the remote user interface. Similarly, the controller may be adapted to receive an indication of an interaction with the local user interface and to update the remote user interface in response to the interaction with the local user interface. Indeed, any changes made to, or interactions with, either the remote user interface or the local user interface can be reflected in the other of the local user interface or the remote user interface, thereby avoiding conflicting interactions with the remote user interface and the local user interface.
According to a second aspect of the present invention, there is provided a method for providing a remote support system for an industrial apparatus of the type used in a product packaging facility arranged to pack one or more products into one or more packs, comprising: providing a user interface for the apparatus; receiving a command from the user interface indicating a request to initiate a remote support session; initiating the remote support session by establishing a communications session between the controller and a remote device; receiving data from the remote device in the communications session to provide remote support for the apparatus.
The method may further comprise modifying operation of the industrial apparatus in response to receiving data from the remote device.
According to a third aspect of the present invention, there is provided a system for providing remote support to an industrial apparatus comprising an industrial apparatus of the first aspect at a first location, and at least one remote device at a second location, distinct from and remote to the first location.
According to fourth aspect of the present invention, there is provided a method of providing support for a printer comprising: providing an industrial printer system at a first location, the industrial printer system comprising a first interface; and providing a second interface at a second location remote from the first location, wherein the second interface provides a substantially exact copy of the first interface in substantially real time, such that a change in one of the interfaces is substantially instantaneously reflected in the other interface.
The industrial printer system may be a thermal transfer printer, a continuous inkjet printer, or a label applicator.
The connection may be provided by the internet. The method may further comprise providing a voice over internet protocol between the first interface and the second interface to allow a user of the industrial printer to speak with a support person located at the second interface. The method may further comprise providing a video camera operably connected to the industrial printer and providing a video connection between the video camera and the second interface to allow a support person at the second interface see through the video camera.
The method may further comprise providing a user of one interface an indication of an update from the other interface.
The method may further comprise allowing a user to force the interfaces into a certain mode if a fault is detected. For example, where a user detects a fault with the industrial printer, that user may force the second interface into an operable mode to initiate a remote support session.
The method may further comprise providing a plurality of connected interfaces. In this way, a plurality of users can interact with the industrial printer at one time. Each of the plurality of interfaces may provide a substantially exact copy of the first interface in substantially real-time, such that a change in one of the interfaces is reflected in the others of the plurality of interfaces.
The method may further comprise allowing a user to see which of the plurality of interfaces are currently active at a point in time.
According to a fifth aspect of the present invention, there is provided a remote support system for a printer comprising: an industrial printer system at a first location, the industrial printer system comprising a first interface; and a second interface at a second location remote from the first location, wherein the second interface provides a substantially exact copy of the first interface in substantially real time, such that a change in one of interfaces is substantially instantaneously reflected in the other interface.
It will be appreciated that features presented in the context of one aspect of the present invention in the preceding and following description can equally be applied to other aspects of the invention.
It will be appreciated that aspects of the present invention can be implemented in any convenient way including by way of suitable hardware and/or software. For example, a device arranged to implement the invention may be created using appropriate hardware components. Alternatively, a programmable device may be programmed to implement embodiments of the invention. The invention therefore also provides suitable computer programs for implementing aspects of the invention. Such computer programs can be carried on suitable carrier media including tangible carrier media (e.g. hard disks, CD ROMs and so on) and intangible carrier media such as communications signals.
Embodiments of the present invention are now described by way of example only, with reference to the accompanying Figures, in which:
a is a schematic illustration of components suitable for implementing a remote device in the remote support system of
b is a schematic illustration of components suitable for implementing an printer in the remote support system of
Referring to
The printer 2 is connected to a network 3 via a connection 4. Remote client computers 5, 6 are also connected to the network 3 via respective connections 7, 8. In this way, the remote client computers 5, 6 are able to transmit data to and receive data from the printer 2 via the network 3. Additionally, where provided, a user of the printer 2 is able to communicate with users of the client computers 5, 6 visually by means of the camera 2b, and orally/aurally by means of the headset 2c. Each client computer 5, 6 can take any appropriate form, for example, laptop computers, desktop computers, tablet computers, smartphones etc. Further, while in
Referring to
The client computer 5 further comprises non-volatile storage 5c, which may, for example, take the form of a hard disc drive or solid state drive. The client computer 5 further comprises an I/O interface 5d to which are connected peripheral devices used in connection with the client computer 5. More particularly, a display 5e is configured so as to display output from the client computer 5. Input devices are also connected to the I/O interface 5d. Such input devices include a keyboard 5f and a mouse 5g which allow user interaction with the client computer 5. A network interface 5h allows the client computer 5 to be connected to an appropriate computer network, such as the network 3, so as to receive and transmit data from other computing devices and the printer 2. The CPU 5a, volatile memory 5b, hard disc drive 5c, I/O interface 5d, and network interface 5h, are connected together by a bus 5i. It will be appreciated that the client computer 6 may be implemented similarly to that of the client computer 5.
Referring to
It is to be appreciated that the components illustrated in
Referring to
a single window may comprise a plurality of buttons, an edit box and a drop down menu). While a single Window class 15 and a single Control class 16 are shown in
The web server 11 uses the WindowHandle attribute to reference instances of the Window class 15 and Control class 16 as described in further detail below with reference to
OnGetHTML function creates HTML tags by creating instances of an HTMLTag class 18. That is, each of the Window class 15 and the Control class 16 may comprise one or more instances of the HTMLTag class 18. The HTMLTag class 18 comprises a plurality of functions (not shown) that can be used by the OnGetHTML functions to generate and format appropriate HTML tags.
It will be appreciated that the classes illustrated in
The OnGetHTML function is implemented differently for each Window class 15 and each Control class 16 so as to be able to provide appropriate HTML to represent instances of that class. A general overview of the operation of the OnGetHTML function of the Window class 15 is, however, now described with reference to
It will be appreciated from the following description operation of the OnGetHTML function of the Control class 16 proceeds in a similar manner. Referring to
If, on the other hand, it is determined at step S2, that the calling window instance is visible, processing passes to step S4, at which an HTMLTag object is created (i.e. an instance of the HTMLTag class 18) to provide an HTML tag to represent a first part of the window to be rendered in the remote interface application 12. Attributes and styles of the HTML tag are set using the appropriate functions of the HTMLTag class 18 to appropriately render the first part of the window. The particular way in which instances of the HTMLTag class 18 are created and configured for a particular window (or control) may vary for different states of the local interface application 10, in order to reflect the current state of the local interface application 10.
When the HTML tag has been created and configured, processing passes to step S5, at which the HTML tag is appended to a string variable stored in the memory of the printer 2. Processing passes from step S5 to step S6, at which it is determined whether any further parts of the calling window instance are to be rendered in the remote interface application 12. If it is determined that further parts of the calling window instance are to be rendered in the remote interface application 12, processing passes back to step S4, at which a further HTMLTag object is created to provide an HTML tag representing the next part to be rendered, before passing to step S5 at which the further HTML tag is appended to the string variable. Processing therefore loops between steps S4 and S6 until an HTMLTag object has been created for each part of calling window instance that is to be rendered in the remote interface application 12. When it is determined at step S6 that no further parts of the calling window instance are to be rendered in the remote interface application 12, processing passes to step S7. At step S7, a further HTMLTag object is created representing an HTML <div> tag.
As will be well known by those skilled in the art, a <div> tag is used to group a plurality of elements into a ‘division’ or section in an HTML document. The previously created HTML tags are added to the <div> tag. Processing passes to step S8, at which the string containing the HTML code representing the parts of the calling window that are to be rendered in the remote interface application 13 are copied to the buffer location provided as a parameter to the OnGetHTML function.
An example of processing that may be carried out by the printer 2 to provide a remote user interface to the client computer 5 is now described with reference to the flowchart of
Processing then passes to a step S14 at which it is determined whether the remote interface application 13 has been requested. If it is determined at step S14 that the request was not for the remote application 13, (for example, the user of a client computer 5, 6 may instead have navigated the browser 13 to a user guide), processing passes from step S14 to step S15, at which the requested page (if available) is served from the memory of the printer 2.
If, however, the request is for the remote application 12, processing passes from step S14 to step S16, at which the web server obtains a handle for the main window of the local interface application 10 and assigns this as the current window. Processing passes from step S16 to step S17, at which the web server 11 transmits an HTML generation request message to the current window. The HTML generation request message includes an address and size of a buffer in the memory of the printer 2, to which HTML code is to be written. Where, as in the present example, the printer 2, local application 10 and web server 11 operate within a Microsoft Windows environment, the message may take the form of a Windows application (WM_APP) message.
At step S18, the HTML generation request message is received by the current window of the local interface application 10 (in this case the main window). The HTML generation request message is mapped to the OnGetHTML function of the current window, passing the buffer address and size information provided in the HTML generation request message as parameters to the OnGetHTML function. In the presently described embodiment operating of a Microsoft Windows environment, the WM_APP HTML generation request message may be mapped in a similar way to the way in which classes of the Microsoft Foundation Class (MFC) library maps of native Windows messages to applications written in the C++ language. Processing then passes to step S19, at which, as described above with reference to
From step S17, processing also passes to step S20, at which the web server 11 determines whether the current window has any un-traversed sub-windows (i.e. any sub-windows (or controls) to which an HTML generation request message has not been transmitted). If it is determined at step S20 that the current window does have further sub-windows, processing passes to step S21 at which the web server 11 obtains a handle for one of the further sub-windows, and makes that sub-window the current window. Processing passes from step S21 back to step S17, at which an HTML generation request message is passed to the current window (or control).
If, on the other hand, it is determined at step S20 that there are no further sub-windows (i.e. that all sub-windows of the current window have been traversed), processing passes to step S22, at which it is determined whether the current window is the main window (such that there are no further parent windows). If it is determined at step S22 that the current window is not the main window, processing passes to step S23, at which the parent of the current window is assigned as the current window. Processing then passes back to step S20. If, on the other hand, it is determined at step S22 that the current window is the main window, processing passes from step S22 to step S24 at which the HTML stored at the buffer address in the memory of the printer 2 is retrieved. It can be seen, therefore, that by the processing of steps S16 to S24, the web server 11 and the local application 10, operate to recursively generate appropriate HTML code for each window (and control) and sub-window (and sub-control) of the local interface application 10.
Processing passes from step S24 to step S25 at which the HTML code stored in the string at the buffer location is transmitted from the printer 2 to the web browser 13 of the client computer 5 for rendering in the browser 13 to provide the remote interface 12.
While the processing described above with reference to
Once displayed in the browser 13, the remote interface application 12 can be used by a user of the client computer 5 to affect operation of the printer 2. Interaction with components of the remote user interface application 12, causes requests to be sent to the web server 11. The web server 11 is configured to parse received requests and, where appropriate, to affect operation of the local interface application 10. For example, user interactions with controls in the remote user interface 12 (those controls corresponding to controls in the local user interface 10), cause the browser 13 to request an ‘event.html’ web page from the server 11. An interaction may be, for example, a ‘click’ event (e.g. on a button, or sub-window), an ‘item selection’ event (e.g. from a list), an ‘edit box’ event (e.g. activation of an edit box) or a ‘key’ event (e.g. entry of data using a keyboard). Each request for the event.html web page includes the handle of the window in the local application 10 corresponding to the window in the remote application 13 from which the event originated.
Additionally, upon a ‘click’ event, the request for the event.html web page provides the coordinates of the click within the window in which the click event originated. These coordinates are passed by the web server 11 to the local interface application 10 to ensure that the click event is reflected in the local interface application 10. Upon an ‘item selection’ event, the event.html request additionally provides the index of a selected item in the list from which the item was selected, again to be provided by the web server 11 to the local application 10 to ensure that the item selection is reflected local application 10. Upon a ‘key’ event, the event.html request additionally provides the text string from the currently selected ‘edit box’ into which the text string was entered, to update the corresponding edit box in the local application 10.
In this way, it will be appreciated that interactions with the remote interface application 12 are updated substantially instantly within the local interface application 10 (within the constraints of the speed of data transfer provided by the connections between the remote client computer and the printer 2). Similarly, the web server 11 is configured to listen for events occurring within the local user application 10, and in response to detection of such interaction events, to cause new HTML to be provided for updating of the remote interface application 13. That is, for example, where a local user of the printer 2 clicks a button in the local user interface 10 which causes the local user interface 10 to display a new window, the click event is detected by the web server 11 which sends HTML request messages to the visible components of the local application 10 to cause calls to be made to those corresponding OnGetHTML functions of those components. In this way, the states of the remote interface application 13 and the local interface application 10 are maintained in synchrony.
By use of the headset 2c, and optionally the camera 2a, the remote support system 1 further provides the ability to avoid downtime caused by the physical distance between the printer 2 and a telephone which a local user requires to speak to and gain support advice from a remote user. This is achieved by combining the remote interface application 13 described above with a mechanism to simultaneously utilise the Voice Over Internet Protocol (VoIP) to enable the user to speak directly to the remote support engineer from the printer 2 itself, without the need for a separate telephone. The headset 2c is typically a microphone and headphones. A typical example is a Bluetooth headset. The printer 2 may further be equipped with appropriate software to enable a VoIP connection between the printer 2 and the remote devices 5, 6, simultaneously with the remote interface application 13 described above. Thus, equipped with the headset 2c, the local user of the printer 2, and a user of a remote client computer 5, 6 can not only control the industrial printer 2 together in real time, but also talk at the same time.
Additionally, remote support in the remote support system 1 may be further enhanced by the provision, in real time, of a video stream from the location of the printer 2 to the user of a remote client computer 5, 6, by way of the camera 2b, to further enhance the capacity to offer fast and effective support. The camera 2b may be provided in the headset 2c, such that a user of the remote client computer 5, 6 is able to see, in real-time a “point of view” video stream from the user of the printer 2. The camera 2c may be of the type referred to commonly as a “webcam”. Where the camera 2b is provided as part of the headset 2c, the wired or wireless communication means between the headset 2c and the industrial printer 2 includes the means to transmit the video stream from the webcam to the industrial printer 2, which in turn relays the video stream to the remote client computers 5, 6 via the network 3.
The features described above therefore advantageously allow a local user of the printer 2 to initiate and partake in an enhanced remote support session with a user of a client device 5, 6 from the printer 2 itself, without the need to seek out further devices, or communication means which may result in a breaking of communication with a user providing remote support.
Embodiments of the present invention have been described above and it will be appreciated that the embodiments described are in no way limiting. Indeed, many variations to the described embodiments will be apparent to an ordinary skilled person, and such variations are within the spirit and the scope of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/GB2012/052358 | 9/24/2012 | WO | 00 | 3/14/2014 |
Number | Date | Country | |
---|---|---|---|
61538272 | Sep 2011 | US |