EP2010975A2 - Method and device for communication between a device and a server - Google Patents

Method and device for communication between a device and a server

Info

Publication number
EP2010975A2
EP2010975A2 EP07731145A EP07731145A EP2010975A2 EP 2010975 A2 EP2010975 A2 EP 2010975A2 EP 07731145 A EP07731145 A EP 07731145A EP 07731145 A EP07731145 A EP 07731145A EP 2010975 A2 EP2010975 A2 EP 2010975A2
Authority
EP
European Patent Office
Prior art keywords
communication
module
server
remote server
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP07731145A
Other languages
German (de)
French (fr)
Inventor
Simon Bretin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sierra Wireless Solutions and Services SA
Original Assignee
Anyware Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR0602286A external-priority patent/FR2898697B1/en
Priority claimed from FR0602287A external-priority patent/FR2898698B1/en
Application filed by Anyware Technologies SA filed Critical Anyware Technologies SA
Publication of EP2010975A2 publication Critical patent/EP2010975A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1214Real-time communication between plc, Ethernet for configuration, monitor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23297Remote load of program with cellular, wireless, satellite connection
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23298Remote load of program, through internet

Definitions

  • the present invention relates to a method and a device for programming communication between an equipment and a server through a communicatio module and a programming method of such a device. It applies, in particular, to remote control and control of office, household or industrial equipment, vehicles or buildings. Traditionally, these devices are not equipped with communication interfaces to remote elements (of the Ethernet or Wi-Fi type), but rather communication buses (Serial, RS485, etc.) and inputs / outputs allowing communication to elements close to the equipment.
  • a monitoring operator regularly makes a maintenance pass to verify the proper operation of the equipment and, in case of default, alert a technical service.
  • This procedure has many disadvantages.
  • the delay of detection of a failure can be important and, on the other hand, the quality of intervention of the technical service is subject to the quality of the report transmitted by the surveillance operator.
  • SMS short message system or short message system
  • a remote communication module which monitors the state of the equipment and which, as a function of crossing thresholds, triggers an alarm on a remote terminal, by example e emitting a mini-message, known as SMS (short message system or short message system) to the mobile phone of a maintainer
  • SMS short message system or short message system
  • These systems have many disadvantages. On the one hand, they do not allow centralized management of a set of equipment. On the other hand, they are subject to the availability of the communication network of the alarm. In addition, they request, for the programming, the intervention of a qualified computer scientist. Finally, they can not be reprogrammed remotely.
  • the present invention aims, in a first aspect, a device d means for associating said electronic module with an equipment such that said module receives signals representing states or operating parameters of said equipment through at least one connector; a communication server application on said module; electronic module, said communication server application being adapted to communicate automatically with said equipment as well as with said remote server through at least one communication means and a communication server application on said remote server for the adapt to automatically communicate with said electronic module through at least one communication channel through at least one communication means; each of said server applications being adapted: to decide the transmission of a request to the other server application, according to a predetermined criterion, said remote server and said module being thus adapted to transmit a request to said module or said remote server, respectively, following said decision and upon receipt of said request, to transmit a response to the other server application, said module and said remote server being thus adapted to transmit to said remote server or said module, respectively, said response encapsulating information representative of said states or parameters of said equipment.
  • each of the two server applications can interrogate the other and obtain, in return, instructions or status information.
  • at least one of said server applications comprises means for automatically selecting a communication channel between the electronic module and said remote server, according to characteristics of the data to be transmitted and the available communication channels, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
  • At least one of said applications comprises means for storing the information to be transmitted as long as a complete request / response cycle has not been positively completed.
  • one of the means of communication is a GSM / GPRS wireless network.
  • the present invention aims at a method of communication between an electronic module and a remote server, characterized in that it comprises: a step of associating said electronic module provided with a programmable controller with an equipment such that said module receives signals representative of states or operating parameters of said equipment through at least one connector; a step of implementing a communication server application on said electronic module, said communication server application being adapted to communicate automatically with said equipment as well as with said remote server through at least one means; Communication ; a step of implementing a communication server application on said remote server to adapt it to communicate automatically with said electronic module through at least one communication channel through at least one communication means ;
  • the method as briefly described above comprises a step of automatically selecting a communication channel between the electronic module and said remote server, according to the characteristics of the data to be transmitted and the available communication channels, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
  • the method as briefly described above includes a step of storing the information to be transmitted as long as a complete request / response cycle has not been completed positively, in order to be able to send, again, said information through one of the other means of communication.
  • one of the means of communication is a GSM / GPRS wireless network.
  • the present invention aims at a method of developing a machine-to-machine application between a communication module intended to be associated with an equipment and a computer system, characterized in that it comprises: a definition step logical data of an application intended to run on the communication module, the logical data being a representation of the functionalities offered by the equipment, a step of matching each logical data element to at least one acquisition or control means in relation to this datum, thus allowing the actual manipulation of the data,
  • step of defining the communication between the module and the computer system a step of generating the application intended to execute on the module, this generation being specific to the settings and data previously made or defined and
  • the method which is the subject of the third aspect further comprises a step of selecting a type of communication module, for example through its make and model, the generation of the application intended for executing on the module being, moreover, specific to the choice of the type of module.
  • the method that is the subject of the third aspect further comprises a step of defining an event logic that makes it possible to interact the logical data with one another, the generation of the application intended to execute on the module being in addition, specific to the defined event logic.
  • the method that is the subject of the third aspect further comprises:
  • a step of mapping each logical data to at least one storage means of the computer system a step of defining the event logic for making the logical data of the application of the computer system interact, a configuration step computer system parameters, a step of generating the application intended to run on the computer system, this generation being specific to the settings, choices, and logics previously made or defined and
  • logical devices manipulated by an application are defined, and logic variables representative of their logical characteristics are added to them.
  • an editor is implemented which makes it possible to create, modify and delete logical equipments, without reference to their electronic realization, by defining its variables. , through parameters, this definition of variables and parameters being constrained through the editor by the compatibility with the type of communication module chosen during the selection step.
  • the definition of logical data is done by means of graphic screens guiding the user by proposing him / her choices specific to the type of communication module chosen for certain parameters and leaving him free to use. other.
  • At least one of the communication mapping and definition steps is performed by means of graphic interfaces constraining the user with respect to the type of the communication module that he uses.
  • an editor is implemented which makes it possible to associate each variable defined during the step of defining logical data with an acquisition means, control or storage, this editor limiting the choices according to the parameters, variables and functions offered by the type of communication module that is programmed.
  • At least one event logic definition step is done graphically by selecting the logical data to be controlled, by associating a notion of binary logic and by choosing an action to be executed from among a plurality of actions, the data logic to control, the binary logic relationships and the actions to be executed being represented by specific graphic elements.
  • the dynamic choice of the communication channel to be used according to the states is defined. possible from each other communication channel.
  • the method object of the third aspect does not require writing code in computer language and consists solely in the manipulation of graphical interfaces.
  • FIG. 1 represents, schematically, an implementation of a particular embodiment of the device that is the subject of the present invention
  • FIG. 2 represents, in the form of a logic diagram, a particular embodiment of the method that is the subject of the present invention
  • FIG. 3 represents, in the form of a logic diagram, a particular embodiment of a programming method. of the device object of the present invention.
  • FIG. 1 shows a device to be monitored 100, a communication module 110 associated with the equipment 100 and comprising a controller 115 and, preferably, at least two communication means 120 and 125, two communication channels 130 and 135 , an operating server 140, comprising two communication means 155 and 160, a controller 170 and an information storage means 145, a programming terminal 150 comprising a communication means 165 and a client terminal 180.
  • 110 is, for example, a Q2686 module from Wavecom (registered trademarks) or TC65 from Siemens (registered trademarks).
  • the equipment to be supervised 100 may be stationary, such as, for example, a boiler, an office equipment or an electronic billboard, or mobile, such as a vehicle.
  • the equipment 100 comprises a controller 101 and implements software, in particular for monitoring the state of sensors 102 and / or actuators 104 and for communicating via at least one connector 103.
  • the communication module 110 is adapted to receive, via the connector 103, data from the equipment 100 and in particular signals representative of states or operating parameters of said equipment 100.
  • the communication module 110 is also adapted to send commands to the equipment 100 via the connector 103.
  • the communication means 120 and 125 enable the communication module 110 to communicate, via the two communication channels 130 and 135, with the server 140 and, optionally, with the programming terminal 150, knowing that another channel (not shown) can be used for the communication between the communication module 110 and the programming terminal 150.
  • the communication channels 130 and 135 are, for example, wireless telephony networks, for example of the GSM type. and GPRS, respectively.
  • the communication module 110 is adapted to download software via at least one of the networks 130 and 135 from the server 140 and / or the programming terminal 150, under external control, such as a third-party software or an SMS.
  • the server 140 is of known type and is adapted to interrogate each module 110, to receive its responses, to aggregate the received data and to trigger instructions or alarms, according to the data received or the aggregated data.
  • the server 140 is also adapted to provide data to client terminals by acting as the server of the web.
  • the programming terminal 150 is adapted to program applications for each module 110 and applications for each server 140.
  • the programming terminal 150 implements a development suite detailed later in the description.
  • the communication module 110 and the server 140 and, more precisely, the controllers 115 and 170 are adapted to implement between them the communication method that is the subject of the present invention, as presented with regard to the logic diagram of FIG. 2. , after a programming phase illustrated in Figure 3.
  • the client terminal 180 of any type, a mobile telephone, a personal digital assistant, a personal computer or a network server, for example, enables a user or operator to access the data storage means 145 kept by the server 140 and in particular, the data relating to each of the modules 110, possibly after authentication.
  • the server 140 behaves as server of the web to allow access to data with an interface well known to any user, ie a browser software on the internet.
  • FIG. 2 shows a step 205 of association, according to known techniques, of the communication module 110 equipped with the programmable controller 115 with said equipment 100 in such a way that said communication module 110 receives signals representative of states or of operating parameters of said equipment 100.
  • a communication server application of a type similar to those of the server of the fabric is implemented on the communication module 110.
  • the server Embedded is programmed in Java (registered trademark) and has a very small size. It is observed that this embedded server, characteristic of the present invention, allows the remote supervision and control of the module 110 and the associated equipment 100. It will also be observed that this communication module 110 is not adapted to receive data.
  • the communication module 110 behaves like a communication server, for example a server of the web, or "web" server.
  • a communication server includes software that responds to requests from clients, for example with so-called communication means http (hypertext transfer protocol acronym for hypertext transfer protocol) or minimessages, known as SMS (acronym for Short Message System).
  • http hypertext transfer protocol acronym for hypertext transfer protocol
  • SMS minimessages
  • the communication module 110 does not provide a page but data that the server 140 will integrate into pages that it provides to the clients 180. This data can be provided, for example, in SMS.
  • a communication trigger between the module 110 and the server 140 can take place under different circumstances: in the event of detection of triggering events, by the module 110, for example as a function of thresholds applied to sensors associated with the equipment 100, step 212, according to a predetermined schedule of communications between the module 110 and the server 140, this calendar being able to be managed by the module 110 or by the server 140 (case exposed in FIG. 2, in step 255),
  • steps 250 according to requests transmitted by the client terminal 180, in the case where the data stored in the database 145 would be considered obsolete in view of the request received, steps 250.
  • the server that wants to initiate a communication with the other server determines the best communication medium between the module. communication 110 and the server 140.
  • the following criteria may be considered in the order of decreasing priority: the availability of the communication channels, the urgency of transmission of the data stream to be transmitted, the pricing operators who manage the different communication channels.
  • step 220 the corresponding communication protocol switching, if any, is performed. Then, during a step 225, communicating the communication module 110 and said remote server 140, for example by implementing the hypertext transfer protocol http.
  • the initiator server of the communication transmits a request to the recipient who receives it, for example by implementing the hypertext transfer protocol http.
  • the communication module 110 or the server 140 checks, for security reasons, during step 230, the address of the server issuing the request.
  • the recipient analyzes the received request, retrieves the required data, in particular from the equipment 100 or the data storage means 145, processes this data and sends a response to the initiator of the data request. the request. This response thus encapsulates in particular information representative of the states or parameters of the equipment 100 or the communication module 110.
  • steps 230 and 235 the case where the server 140 initiates the communication has been considered.
  • the step 230 does not take place and, during the step 235, the communication module 110 retrieves the data to be transmitted, especially to the equipment 100, processes this data and sends a message to the server 140.
  • This response thus encapsulates information representative of the states or parameters of the equipment 100 or the communication module 110.
  • the server 140 aggregates and distributes the data collected from the various communications modules 110 to the persons, client terminals, databases and computer applications concerned.
  • This aggregation can comprise the constitution of a state of equipment history 100 associated with the electronic modules 110 and the triggering of alert in case of failure, the need for preventive maintenance, for example the need for supply of consumable.
  • alerts are determined according to the information representative of the states or parameters of the equipment 100 received during the step 235 or aggregated during the step 240.
  • a database or an application during a step 245, it is verified that the sender of this request is authorized to issue it. according to known techniques. It is observed that the request sent by the client terminal 180 is a request sent by a browser, the server 140 then acting server web.
  • a request to the equipment 110 is necessary, according to the request received and the time elapsed since the last update of the data concerning this module and at least a server configuration parameter.
  • the reading of the memory of the equipment module or the memory of the equipment is avoided if there is sufficiently recent information available, for example in the case of a query concerning data whose value and value are known. possible evolution. For example, a refresh of the state of the toner level each week may be sufficient.
  • step 250 If the result of the step 250 is positive, a request to the equipment 100 being necessary, one proceeds to the step 215. Otherwise, one proceeds to the step 255 during which one determines the next expiry of a a request to be sent to the equipment 100, the data required by the user are read in the database 145 and / or extrapolates the recent data stored in the database and provides the client terminal 180, in the form of a web page, the data required by the client terminal.
  • the server 140 aggregates data from databases and physical dynamic data transmitted by the electronic modules 110, for example, to define customer records that it transmits to the issuer.
  • the next request date to be addressed to the communication module is determined and when this date occurs, proceed to step 212.
  • the duration considered sufficient between two updates is configurable.
  • FIG. 3 shows the implementation of a quick and easy software development method for developing, generating and deploying machine-to-machine applications and programming, connecting and managing remote equipment 100 from one or more application servers 140 .
  • the method is implemented in a graphical and powerful development environment to develop, generate and deploy machine-to-machine applications much faster than with a traditional development approach and without knowledge of programming languages. This minimizes development costs and maximizes productivity.
  • the communication module 110 is selected which will be programmed, it being understood that the physical interface of this module with a device 100 has been made beforehand, for example or during its physical installation.
  • a logical data model of the application intended to execute on the communication module 110 is defined. This model is realized by defining logical devices handled by the application and then adding them. variables representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others. This logical data model is totally independent of the actual data acquisition physics existing.
  • an alarm center will be represented by a "CentralAlarm” logical device with its logical “State” variables (boolean representing the on or off state of the alarm) and "InAlarm” (boolean representing the triggering or not of the alarm). 'alarm).
  • logical “State” variables boolean representing the on or off state of the alarm
  • InAlarm boolean representing the triggering or not of the alarm. 'alarm.
  • a "mapping" or a mapping is performed so that each logic variable of the logical data model of the application can be acquired (read) and / or controlled (write) on physical media. or software. Moreover, this configuration is achieved by means of graphic interfaces constraining the user with respect to the physical reality of the communication module 110 that he uses.
  • An editor is implemented which makes it possible to associate each logical variable defined during step 310 with an acquisition or control means supported by the environment. This editor limits the choices according to the parameters of the previously defined logical variables and the functionalities offered by the module 110 which is programmed.
  • the logical variable "State" of the alarm center may be associated with the GPIO pin (General Purpose Input Output) No. 4 of the communication module, the user can not choose the pins 0 to 3 because those they do not exist on the module used.
  • GPIO pin General Purpose Input Output
  • the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions.
  • this event logic indicates which combinations of states of the equipment cause which actions on the part of the associated communication module.
  • This definition is done graphically by selecting the logical data to control (represented, for example, by rectangles), by associating a notion of binary logic (represented, for example, by relations between the previously selected rectangles) and finally by choosing an action to execute from those available (represented by icons).
  • the logical data to be controlled, the binary logic relations and the actions to be executed are preferably represented by specific graphic elements.
  • the configuration parameters of the communication module 110 are defined which will allow its interface with the equipment 100, as well as the proper operation of the communication module 110 itself.
  • This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the components of the communication module 110. for example, it will be possible to configure the communication speed of an existing serial port on the module.
  • steps 330 to 345 the same steps as steps 310 to 325, respectively, are performed for the programming of the communication application to be implemented on the server side considered preselected as common to different modules 110.
  • a logical data model of the application intended to execute on the server 140 is defined.
  • This model is realized by defining logical hardware and software manipulated by the application, then by adding variables representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others.
  • This logic model is totally independent of the physics of processing or storing existing real data. This definition of variables and parameters is constrained by the compatibility with the features offered by the editor.
  • a "mapping" or mapping is performed so that each variable of the logical data model of the application can be acquired (read) and / or controlled (written) on physical media or software.
  • this configuration is achieved by means of graphical interfaces constraining the user with respect to the physical reality of the server 140 and its peripherals that it uses.
  • the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions.
  • this event logic indicates which state combinations cause which actions on the part of the server 140 or its peripherals.
  • This definition is done graphically by selecting the logical data to control (represented by rectangles), by associating a notion of binary logic (represented by relations between the previously selected rectangles) and finally by choosing an action to execute from those available. (represented by icons).
  • the configuration parameters of the server 140 and its peripherals are defined which will allow its interface with the module 110. This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the server 140 and its peripherals. For example, it will be possible to configure the communication speed of an existing serial port on the server.
  • the communication between the module and the server is defined.
  • An editor is implemented which makes it possible to select the communication means according to the communication capabilities offered by the communication module 110.
  • step 365 also makes it possible to organize the dynamic choice of the communication channel to be used. This organization aims to maintain a link between the communication module and the server, even if a means of communication was faulty.
  • the choice depends on the available channels and / or the price of the communication channels.
  • the choices are made graphically thanks to multiple choice boxes, text fields and interfaces refreshing according to the choices made previously.
  • This application is an assembly of bricks or generic software components, for example the server. communication, web server or "web”, or specifically generated by the device described.
  • the bricks and software components are selected according to the choices made previously, in a deterministic manner. These choices made previously also constrain the order of execution of these bricks or components, which ensures the proper functioning of the application generated.
  • the bricks concern one the communication server, web server or SMS server, the other the GPRS communication, ...
  • the generated application intended to be executed on the communication module 110 is generated in the native language thereof.
  • Positioning System for global positioning system
  • a "classic" web server allowing access to the business information of the developed application
  • o application templates, presentation pages, graphic components known as widgets.
  • GSM Global System for Mobile communication
  • GPRS Global Packet Radio Service
  • Edge Wired Fidelity
  • Wifi Wired Fidelity for, in French , Loyalty Wireless
  • LAN Local Area Network
  • 3 / Security through integrated security mechanisms the implementation of the https secure data transfer protocol, personal authentication devices, terminals or applications, management of user profiles; 4 / The performances thanks to: the optimization of embedded codes for a minimal influence on the resources, in particular resources of memory, electronic modules and a maximum reliability and the optimization of bandwidth used on the communication networks, by compression data to minimize the cost of data traffic between the electronic modules 110 and the servers 140; 5 / Maintenance and update: provision, diagnosis, maintenance and download of applications remotely, thanks to remote communication capabilities provided by the module 110 and 6 / Data recovery from the remote electronic modules 110 for storage in the information processing system (server 140), for reporting, billing, knowledge base, for example.
  • server 140 information processing system
  • the elements and the programming are stored in the memory of the programming terminal 150 and can be edited and remotely downloaded to the module 110 and / or the server 140 at any time.
  • the graphical macro-language and the graphical environment thus use, at the same time, generic parts and specific parts for particular modules. Thanks to these characteristics, the programming language is independent of the communication module and its provider, the BSP (acronym for Board Support Package for, in French, card support package) or MSP (module support package for, in French, module support package) or the set of drivers for their command.

Abstract

The invention concerns a device for communication between an electronic module (110) provided with a programmable controller and a remote server (140), comprising: means for associating the electronic module with a device (100) such that said module receives signals representing operating states or parameters of said device via at least one connector (103), a communication server application on said electronic module, said communication server application being capable of automatically communicating with said device as well as with said remote server via at least one communication means (120, 125) and a communication server application on said remote server for making it capable of automatically communicating with said electronic module via at least one communication channel via at least one communication means (155, 160). Each of the server applications is capable: of deciding the transmission of a request to the other server application, based on a predetermined criterion, said remote server and said module being thus capable of transmitting a request addressed to said module or to said remote server, respectively, following said decision; and upon receiving said request, to cause a reply to be transmitted to the other server application, said module and said remote server being thus capable of transmitting to said remote server or said module, respectively, said reply encapsulating data or parameters of said device.

Description

PROCEDE ET DISPOSITIF DE COMMUNICATION ENTRE UN EQUIPEMENT ET UN METHOD AND DEVICE FOR COMMUNICATING BETWEEN EQUIPMENT AND A
SERVEURSERVER
La présente invention concerne un procédé et un dispositif de programmation d communication entre un équipement et un serveur au travers d'un module de communicatio et un procédé de programmation d'un tel dispositif. Elle s'applique, en particulier, au contrôl et à la commande, à distance, d'équipements bureautiques, domestiques ou industriels, e de véhicules ou de bâtiments. Traditionnellement, ces équipements ne sont pas muni d'interfaces de communication vers des éléments distants (de type Ethernet ou Wi-Fi) mai plutôt de bus de communication (Série, RS485, ...) et entrées/sorties permettant I communication vers des éléments proches de l'équipement.The present invention relates to a method and a device for programming communication between an equipment and a server through a communicatio module and a programming method of such a device. It applies, in particular, to remote control and control of office, household or industrial equipment, vehicles or buildings. Traditionally, these devices are not equipped with communication interfaces to remote elements (of the Ethernet or Wi-Fi type), but rather communication buses (Serial, RS485, etc.) and inputs / outputs allowing communication to elements close to the equipment.
Dans le domaine du contrôle et de la commande à distance d'un équipemen généralement, un opérateur de surveillance fait régulièrement un passage de maintenanc pour vérifier le bon fonctionnement de l'équipement et, en cas de défaut, alerter un servie technique. Cette procédure présente de nombreux inconvénients. D'une part, le délai d détection d'une panne peut être important et, d'autre part, la qualité d'intervention du servie technique est soumise à la qualité du rapport transmis par l'opérateur de surveillance.In the field of control and remote control of equipment generally, a monitoring operator regularly makes a maintenance pass to verify the proper operation of the equipment and, in case of default, alert a technical service. This procedure has many disadvantages. On the one hand, the delay of detection of a failure can be important and, on the other hand, the quality of intervention of the technical service is subject to the quality of the report transmitted by the surveillance operator.
Dans des systèmes plus automatisés, il est connu de munir l'équipement d'un modul de communication à distance qui surveille l'état de l'équipement et qui, en fonction d franchissement de seuils, déclenche une alarme sur un terminal distant, par exemple e émettant un mini-message, connu sous le nom de SMS (pour short message System o système de message court) à destination du téléphone mobile d'un responsable d'entretier Ces systèmes présentent de nombreux inconvénients. D'une part, ils ne permettent pas un gestion centralisée d'un ensemble d'équipements. D'autre part, ils sont soumis à I disponibilité du réseau de communication de l'alarme. De plus, ils demandent, pour lei programmation, l'intervention d'un informaticien qualifié. Enfin, ils ne peuvent pas êtr reprogrammés à distance.In more automated systems, it is known to provide the equipment with a remote communication module which monitors the state of the equipment and which, as a function of crossing thresholds, triggers an alarm on a remote terminal, by example e emitting a mini-message, known as SMS (short message system or short message system) to the mobile phone of a maintainer These systems have many disadvantages. On the one hand, they do not allow centralized management of a set of equipment. On the other hand, they are subject to the availability of the communication network of the alarm. In addition, they request, for the programming, the intervention of a qualified computer scientist. Finally, they can not be reprogrammed remotely.
La présente invention vise à remédier à ces inconvénients. A cet effet, la présente invention vise, selon un premier aspect, un dispositif d - un moyen d'association dudit module électronique avec un équipement de telle manière que ledit module reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement au travers d'au moins un connecteur, - une application de serveur de communication sur ledit module électronique, ladite application de serveur de communication étant adaptée à communiquer de manière automatique avec ledit équipement ainsi qu'avec ledit serveur distant au travers d'au moins un moyen de communication et une application de serveur de communication sur ledit serveur distant pour l'adapter à communiquer de manière automatique avec ledit module électronique au travers d'au moins un canal de communication au travers d'au moins un moyen de communication ; chacune des dites applications de serveur étant adaptée : à décider la transmission d'une requête à l'autre application de serveur, en fonction d'un critère prédéterminé, ledit serveur distant et ledit module étant ainsi adaptés à transmettre une requête à destination dudit module ou dudit serveur distant, respectivement, à la suite de ladite décision et à réception de ladite requête, à faire transmettre une réponse à l'autre application de serveur, ledit module et ledit serveur distant étant ainsi adaptés à transmettre à destination dudit serveur distant ou dudit module, respectivement, ladite réponse encapsulant des informations représentatives desdits états ou paramètres dudit équipement.The present invention aims to remedy these disadvantages. For this purpose, the present invention aims, in a first aspect, a device d means for associating said electronic module with an equipment such that said module receives signals representing states or operating parameters of said equipment through at least one connector; a communication server application on said module; electronic module, said communication server application being adapted to communicate automatically with said equipment as well as with said remote server through at least one communication means and a communication server application on said remote server for the adapt to automatically communicate with said electronic module through at least one communication channel through at least one communication means; each of said server applications being adapted: to decide the transmission of a request to the other server application, according to a predetermined criterion, said remote server and said module being thus adapted to transmit a request to said module or said remote server, respectively, following said decision and upon receipt of said request, to transmit a response to the other server application, said module and said remote server being thus adapted to transmit to said remote server or said module, respectively, said response encapsulating information representative of said states or parameters of said equipment.
Grâce à ces dispositions, chacune des deux applications de serveur peut interroger l'autre et obtenir, en retour, des consignes ou des informations d'état. Selon des caractéristiques particulières, au moins une desdites applications de serveur comporte un moyen de sélection automatique d'un canal de communication entre le module électronique et ledit serveur distant, en fonction de caractéristiques des données à transmettre et des canaux de communications disponibles, au moins l'une des étapes de transmission d'une requête et de réponse à ladite requête étant effectuée en mettant en oeuvre le canal de communication sélectionné.With these provisions, each of the two server applications can interrogate the other and obtain, in return, instructions or status information. According to particular features, at least one of said server applications comprises means for automatically selecting a communication channel between the electronic module and said remote server, according to characteristics of the data to be transmitted and the available communication channels, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
Selon des caractéristiques particulières, au moins une desdites applications comporte un moyen de conservation de l'information à transmettre tant qu'un cycle de requête/réponse complet n'a pas été achevé positivement.According to particular characteristics, at least one of said applications comprises means for storing the information to be transmitted as long as a complete request / response cycle has not been positively completed.
Selon des caractéristiques particulières, l'un des moyens de communication est un réseau sans-fil de type GSM/GPRS.According to particular characteristics, one of the means of communication is a GSM / GPRS wireless network.
Selon un deuxième aspect, la présente invention vise un procédé de communication entre un module électronique et un serveur distant, caractérisé en ce qu'il comporte : - une étape d'association dudit module électronique doté d'un contrôleur programmable avec un équipement de telle manière que ledit module reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement au travers d'au moins un connecteur ; - une étape d'implantation d'une application de serveur de communication sur ledit module électronique, ladite application de serveur de communication étant adaptée à communiquer de manière automatique avec ledit équipement ainsi qu'avec ledit serveur distant au travers d'au moins un moyen de communication ; une étape d'implantation d'une application de serveur de communication sur ledit serveur distant pour l'adapter à communiquer de manière automatique avec ledit module électronique au travers d'au moins un canal de communication au travers d'au moins un moyen de communication ;According to a second aspect, the present invention aims at a method of communication between an electronic module and a remote server, characterized in that it comprises: a step of associating said electronic module provided with a programmable controller with an equipment such that said module receives signals representative of states or operating parameters of said equipment through at least one connector; a step of implementing a communication server application on said electronic module, said communication server application being adapted to communicate automatically with said equipment as well as with said remote server through at least one means; Communication ; a step of implementing a communication server application on said remote server to adapt it to communicate automatically with said electronic module through at least one communication channel through at least one communication means ;
- une étape de transmission d'une requête depuis ledit serveur distant ou dudit module à destination dudit module ou dudit serveur distant, respectivement, à la suite d'une décision automatique d'utilisation d'un moyen de communication disponible eta step of transmitting a request from said remote server or said module to said module or said remote server, respectively, following an automatic decision to use an available communication means and
- à réception de ladite requête, une étape de transmission d'une réponse, de la part dudit module ou dudit serveur distant et à destination dudit serveur distant ou dudit module, respectivement, ladite réponse encapsulant des informations représentatives desdits états ou paramètres dudit équipement. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci- dessus comporte une étape de sélection automatique d'un canal de communication entre le module électronique et ledit serveur distant, en fonction de caractéristiques des données à transmettre et des canaux de communications disponibles, au moins l'une des étapes de transmission d'une requête et de réponse à ladite requête étant effectuée en mettant en œuvre le canal de communication sélectionné.- On receipt of said request, a step of transmitting a response from said module or said remote server and to said remote server or said module, respectively, said response encapsulating information representative of said states or parameters of said equipment. According to particular features, the method as briefly described above comprises a step of automatically selecting a communication channel between the electronic module and said remote server, according to the characteristics of the data to be transmitted and the available communication channels, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci- dessus comporte une étape conservation de l'information à transmettre tant qu'un cycle de requête/réponse complet n'a pas été achevé positivement, afin de pouvoir envoyer, de nouveau, ladite information au travers d'un des autres moyens de communication. Selon des caractéristiques particulières, l'un des moyens de communication est un réseau sans-fil de type GSM/GPRS.According to particular features, the method as briefly described above includes a step of storing the information to be transmitted as long as a complete request / response cycle has not been completed positively, in order to be able to send, again, said information through one of the other means of communication. According to particular characteristics, one of the means of communication is a GSM / GPRS wireless network.
Selon un troisième aspect, la présente invention vise un procédé de développement d'une application machine à machine entre un module de communication destiné à être associé à un équipement et un système informatique, caractérisé en ce qu'il comporte : - une étape de définition de données logiques d'une application destinée à s'exécuter sur le module de communication, les données logiques étant une représentation des fonctionnalités offertes par l'équipement, - une étape de mise en correspondance de chaque donnée logique à au moins un moyen d'acquisition ou de commande en relation avec cette donnée, permettant ainsi la manipulation effective des données,According to a third aspect, the present invention aims at a method of developing a machine-to-machine application between a communication module intended to be associated with an equipment and a computer system, characterized in that it comprises: a definition step logical data of an application intended to run on the communication module, the logical data being a representation of the functionalities offered by the equipment, a step of matching each logical data element to at least one acquisition or control means in relation to this datum, thus allowing the actual manipulation of the data,
- une étape de définition de paramètres de configuration du module de communication qui permettent son interfaçage avec l'équipement, de paramétrer des moyens de communication et de définir d'autres paramètres spécifiques au module de communication choisi au cours de l'étape de sélection,a step of defining configuration parameters of the communication module that enable it to be interfaced with the equipment, to set up communication means and to define other parameters specific to the communication module chosen during the selection step,
- une étape de définition de la communication entre le module et le système informatique, - une étape de génération de l'application destinée à s'exécuter sur le module, cette génération étant spécifique aux paramétrages et données précédemment effectués ou définis eta step of defining the communication between the module and the computer system; a step of generating the application intended to execute on the module, this generation being specific to the settings and data previously made or defined and
- une étape de téléchargement de l'application sur le module.- a step of downloading the application on the module.
Selon des caractéristiques particulières, le procédé objet du troisième aspect comporte, en outre, une étape de sélection d'un type de module de communication, par exemple au travers de sa marque et de son modèle, la génération de l'application destinée à s'exécuter sur le module étant, en outre, spécifique au choix du type de module.According to particular features, the method which is the subject of the third aspect further comprises a step of selecting a type of communication module, for example through its make and model, the generation of the application intended for executing on the module being, moreover, specific to the choice of the type of module.
Selon des caractéristiques particulières, le procédé objet du troisième aspect comporte, en outre, une étape de définition d'une logique événementielle permettant de faire interagir les données logiques entre elles, la génération de l'application destinée à s'exécuter sur le module étant, en outre, spécifique à la logique événementielle définie.According to particular features, the method that is the subject of the third aspect further comprises a step of defining an event logic that makes it possible to interact the logical data with one another, the generation of the application intended to execute on the module being in addition, specific to the defined event logic.
Selon des caractéristiques particulières, le procédé objet du troisième aspect comporte, en outre :According to particular features, the method that is the subject of the third aspect further comprises:
- une étape de définition de données logiques d'une application destinée à s'exécuter sur le système informatique,a step of defining logical data of an application intended to execute on the computer system,
- une étape de mise en correspondance de chaque données logiques à au moins un moyen de stockage du système informatique, une étape de définition de la logique événementielle permettant de faire interagir les données logiques de l'application du système informatique, - une étape de configuration des paramètres du système informatique, une étape de génération de l'application destinée à s'exécuter sur le système informatique, cette génération étant spécifique aux paramétrages, choix, et logiques précédemment effectués ou définis eta step of mapping each logical data to at least one storage means of the computer system, a step of defining the event logic for making the logical data of the application of the computer system interact, a configuration step computer system parameters, a step of generating the application intended to run on the computer system, this generation being specific to the settings, choices, and logics previously made or defined and
- une étape de téléchargement de l'application sur le système informatique. Selon des caractéristiques particulières, au cours d'au moins une étape de définition de données logiques, on définit des équipements logiques manipulés par une application, puis on leur ajoute des variables logiques représentatives de leurs caractéristiques logiques. Selon des caractéristiques particulières, au cours d'au moins une l'étape de définition de données logiques, on met en œuvre un éditeur qui permet de créer, modifier et supprimer des équipements logiques, sans référence à leur réalisation électronique, en définissant ses variables, au travers de paramètres, cette définition de variables et de paramètres étant contrainte au travers de l'éditeur par la compatibilité avec le type de module de communication choisi au cours de l'étape de sélection.- A step of downloading the application on the computer system. According to particular characteristics, during at least one logical data definition step, logical devices manipulated by an application are defined, and logic variables representative of their logical characteristics are added to them. According to particular characteristics, during at least one logical data definition step, an editor is implemented which makes it possible to create, modify and delete logical equipments, without reference to their electronic realization, by defining its variables. , through parameters, this definition of variables and parameters being constrained through the editor by the compatibility with the type of communication module chosen during the selection step.
Selon des caractéristiques particulières, avec ledit éditeur, la définition de données logiques se fait au moyen d'écrans graphiques guidant l'utilisateur en lui proposant des choix spécifiques au type de module de communication choisi pour certains paramètres et en le laissant libre pour d'autres.According to particular characteristics, with said editor, the definition of logical data is done by means of graphic screens guiding the user by proposing him / her choices specific to the type of communication module chosen for certain parameters and leaving him free to use. other.
Selon des caractéristiques particulières, au moins l'une des étapes de mise en correspondance et de définition de communication est réalisée au moyen d'interfaces graphiques contraignant l'utilisateur par rapport au type du module de communication qu'il utilise. Selon des caractéristiques particulières, au cours d'au moins une étape de mise en correspondance, on met en œuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape de définition de données logiques avec un moyen d'acquisition, de commande ou de stockage, cet éditeur limitant les choix en fonction des paramètres, des variables et des fonctionnalités offertes par le type de module de communication qui est programmé.According to particular characteristics, at least one of the communication mapping and definition steps is performed by means of graphic interfaces constraining the user with respect to the type of the communication module that he uses. According to particular characteristics, during at least one mapping step, an editor is implemented which makes it possible to associate each variable defined during the step of defining logical data with an acquisition means, control or storage, this editor limiting the choices according to the parameters, variables and functions offered by the type of communication module that is programmed.
Selon des caractéristiques particulières, au moins une étape de définition de logique événementielle se fait de manière graphique en sélectionnant les données logiques à contrôler, en associant une notion de logique binaire et en choisissant une action à exécuter parmi une pluralité d'actions, les données logiques à contrôler, les relations de logique binaire et les actions à exécuter étant représentées par des éléments graphiques spécifiques.According to particular features, at least one event logic definition step is done graphically by selecting the logical data to be controlled, by associating a notion of binary logic and by choosing an action to be executed from among a plurality of actions, the data logic to control, the binary logic relationships and the actions to be executed being represented by specific graphic elements.
Selon des caractéristiques particulières, au cours de l'étape de définition de la communication entre le module et le système informatique, si au moins deux canaux de communication ont été définis, on définit le choix dynamique du canal de communication à utiliser en fonction des états possibles de chaque autre canal de communication.According to particular characteristics, during the step of defining the communication between the module and the computer system, if at least two communication channels have been defined, the dynamic choice of the communication channel to be used according to the states is defined. possible from each other communication channel.
Selon des caractéristiques particulières, le procédé objet du troisième aspect ne nécessite pas d'écrire de code en langage informatique et consiste uniquement en la manipulation d'interfaces graphiques.According to particular features, the method object of the third aspect does not require writing code in computer language and consists solely in the manipulation of graphical interfaces.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels : - la figure 1 représente, schématiquement, une implantation d'un mode de réalisation particulier du dispositif objet de Ia présente invention,Other advantages, aims and features of the present invention will emerge from the description which follows, made for an explanatory and non-limiting purpose with reference to the appended drawings in which: FIG. 1 represents, schematically, an implementation of a particular embodiment of the device that is the subject of the present invention,
- la figure 2 représente, sous forme d'un logigramme, un mode de réalisation particulier du procédé objet de la présente invention et - la figure 3 représente, sous forme d'un logigramme, un mode de réalisation particulier d'un procédé de programmation du dispositif objet de la présente invention.FIG. 2 represents, in the form of a logic diagram, a particular embodiment of the method that is the subject of the present invention; and FIG. 3 represents, in the form of a logic diagram, a particular embodiment of a programming method. of the device object of the present invention.
On observe, en figure 1 , un équipement à superviser 100, un module de communication 110 associé à l'équipement 100 et comportant un contrôleur 115 et, préférentiellement, au moins deux moyens de communication 120 et 125, deux canaux de communication 130 et 135, un serveur d'exploitation 140, comportant deux moyens de communication 155 et 160, un contrôleur 170 et un moyen de stockage de l'information 145, un terminal de programmation 150 comportant un moyen de communication 165 et un terminal client 180. Le module de communication 110 est, par exemple, un module Q2686 de Wavecom (marques déposées) ou TC65 de Siemens (marques déposées). L'équipement à superviser 100 peut être fixe comme, par exemple, une chaudière, un équipement bureautique ou un panneau d'affichage électronique, ou mobile comme, par exemple un véhicule. Ces équipements sont, en général, nombreux et on parle en termes de flotte d'équipements que l'on souhaite surveiller ou contrôler. Préférentiellement, l'équipement 100 comporte un contrôleur 101 et met en oeuvre des logiciels, en particulier pour contrôler l'état de capteurs 102 et/ou d'actionneurs 104 et pour communiquer par l'intermédiaire d'au moins un connecteur 103.FIG. 1 shows a device to be monitored 100, a communication module 110 associated with the equipment 100 and comprising a controller 115 and, preferably, at least two communication means 120 and 125, two communication channels 130 and 135 , an operating server 140, comprising two communication means 155 and 160, a controller 170 and an information storage means 145, a programming terminal 150 comprising a communication means 165 and a client terminal 180. 110 is, for example, a Q2686 module from Wavecom (registered trademarks) or TC65 from Siemens (registered trademarks). The equipment to be supervised 100 may be stationary, such as, for example, a boiler, an office equipment or an electronic billboard, or mobile, such as a vehicle. This equipment is, in general, numerous and we speak in terms of fleet of equipment that we want to monitor or control. Preferably, the equipment 100 comprises a controller 101 and implements software, in particular for monitoring the state of sensors 102 and / or actuators 104 and for communicating via at least one connector 103.
Le module de communication 110 est adapté à recevoir, par l'intermédiaire du connecteur 103, des données de la part de l'équipement 100 et notamment des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement 100. Le module de communication 110 est également adapté à envoyer des commandes à l'équipement 100, par l'intermédiaire du connecteur 103.The communication module 110 is adapted to receive, via the connector 103, data from the equipment 100 and in particular signals representative of states or operating parameters of said equipment 100. The communication module 110 is also adapted to send commands to the equipment 100 via the connector 103.
Par ailleurs, les moyens de communication 120 et 125 permettent au module de communication 110 de communiquer, par l'intermédiaire des deux canaux de communication 130 et 135, avec le serveur 140 et, éventuellement, avec le terminal de programmation 150, sachant qu'un autre canal (non représenté) peut être utilisé pour la communication entre le module de communication 110 et le terminal de programmation 150. Les canaux de communication 130 et 135 sont, par exemple, des réseaux de téléphonie sans fil, par exemple de type GSM et GPRS, respectivement.Furthermore, the communication means 120 and 125 enable the communication module 110 to communicate, via the two communication channels 130 and 135, with the server 140 and, optionally, with the programming terminal 150, knowing that another channel (not shown) can be used for the communication between the communication module 110 and the programming terminal 150. The communication channels 130 and 135 are, for example, wireless telephony networks, for example of the GSM type. and GPRS, respectively.
Le module de communication 110 est adapté à télécharger des logiciels par l'intermédiaire de l'un, au moins, des réseaux 130 et 135 à partir du serveur 140 et/ou du terminal de programmation 150, sous commande extérieure, telle qu'un logiciel tiers ou un SMS. Le serveur 140 est de type connu et est adapté à interroger chaque module 110, à recevoir ses réponses, à agréger les données reçues et à déclencher des consignes ou des alarmes, en fonction des données reçues ou des données agrégées. Le serveur 140 est aussi adapté à fournir des données à des terminaux clients en se comportant comme serveur de la toile.The communication module 110 is adapted to download software via at least one of the networks 130 and 135 from the server 140 and / or the programming terminal 150, under external control, such as a third-party software or an SMS. The server 140 is of known type and is adapted to interrogate each module 110, to receive its responses, to aggregate the received data and to trigger instructions or alarms, according to the data received or the aggregated data. The server 140 is also adapted to provide data to client terminals by acting as the server of the web.
Le terminal de programmation 150 est adapté à programmer des applications pour chaque module 110 et des applications pour chaque serveur 140. Le terminal de programmation 150 met en oeuvre une suite de développement détaillée plus loin dans la description. Le module de communication 110 et le serveur 140 et, plus précisément, les contrôleurs 115 et 170 sont adaptés à mettre en œuvre, entre eux, le procédé de communication objet de la présente invention, tel que présenté en regard du logigramme de la figure 2, après une phase de programmation illustrée en figure 3.The programming terminal 150 is adapted to program applications for each module 110 and applications for each server 140. The programming terminal 150 implements a development suite detailed later in the description. The communication module 110 and the server 140 and, more precisely, the controllers 115 and 170 are adapted to implement between them the communication method that is the subject of the present invention, as presented with regard to the logic diagram of FIG. 2. , after a programming phase illustrated in Figure 3.
Le terminal client 180, de type quelconque, téléphone mobile, assistant personnel numérique, ordinateur personnel ou serveur de réseau, par exemple, permet à un utilisateur, ou opérateur, d'accéder au moyen de stockage de données 145 conservée par le serveur 140 et, en particulier, aux données concernant chacun des modules 110, possiblement après authentification. Dans cette communication, le serveur 140 se comporte comme serveur de la toile pour permettre l'accès aux données avec une interface bien connue de tout utilisateur, c'est à dire un logiciel de navigation sur internet.The client terminal 180, of any type, a mobile telephone, a personal digital assistant, a personal computer or a network server, for example, enables a user or operator to access the data storage means 145 kept by the server 140 and in particular, the data relating to each of the modules 110, possibly after authentication. In this communication, the server 140 behaves as server of the web to allow access to data with an interface well known to any user, ie a browser software on the internet.
On observe, en figure 2, une étape 205 d'association, selon des techniques connues, du module de communication 110 doté du contrôleur programmable 115 avec ledit équipement 100 de telle manière que ledit module de communication 110 reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement 100. Puis, au cours d'une étape 210, on implante une application de serveur de communication, de type similaire à ceux de serveur de la toile, sur le module de communication 110. Par exemple, le serveur embarqué est programmé en Java (marque déposée) et possède une taille très réduite. On observe que ce serveur embarqué, caractéristique de la présente invention, permet la supervision et le contrôle à distance du module 110 et de l'équipement associé 100. On observera par ailleurs que ce module de communication 110 n'est pas adapté à recevoir des composants disponibles sur étagère à l'homme du métier (typiquement, les serveurs de la toile traditionnellement disponibles sur les équipements embarqués), et ce du fait des fortes contraintes imposées par les modules de communication. A partir de l'étape 210, le module de communication 110 se comporte comme un serveur de communication, par exemple un serveur de la toile, ou serveur « web ». On rappelle qu'un serveur de communication comporte un logiciel qui répond à des requêtes provenant de clients, par exemple avec des moyens de communication dits http (acronyme de hypertext transfer protocol pour protocole de transfert hypertexte) ou des minimessages, connus sous le nom de SMS (acronyme de Short Message System, pour système à messages courts). On observe que, préférentiellement, le module de communication 110 ne fournit pas de page mais des données que Ie serveur 140 intégrera dans des pages qu'il fournit aux clients 180. Ces données peuvent être fournies, par exemple, en SMS.FIG. 2 shows a step 205 of association, according to known techniques, of the communication module 110 equipped with the programmable controller 115 with said equipment 100 in such a way that said communication module 110 receives signals representative of states or of operating parameters of said equipment 100. Then, during a step 210, a communication server application of a type similar to those of the server of the fabric is implemented on the communication module 110. For example, the server Embedded is programmed in Java (registered trademark) and has a very small size. It is observed that this embedded server, characteristic of the present invention, allows the remote supervision and control of the module 110 and the associated equipment 100. It will also be observed that this communication module 110 is not adapted to receive data. components available on the shelf to the skilled person (typically, web servers traditionally available on embedded equipment), and this due to the strong constraints imposed by the communication modules. From step 210, the communication module 110 behaves like a communication server, for example a server of the web, or "web" server. It is recalled that a communication server includes software that responds to requests from clients, for example with so-called communication means http (hypertext transfer protocol acronym for hypertext transfer protocol) or minimessages, known as SMS (acronym for Short Message System). It is observed that, preferably, the communication module 110 does not provide a page but data that the server 140 will integrate into pages that it provides to the clients 180. This data can be provided, for example, in SMS.
Un déclenchement de communication entre le module 110 et le serveur 140 peut avoir lieu dans différentes circonstances : en cas de détection d'événements déclenchant, par le module 110, par exemple en fonction de seuils appliqués à des capteurs associés à l'équipement 100, étape 212, en fonction d'un calendrier prédéterminé de communications entre le module 110 et le serveur 140, ce calendrier pouvant être gérer par le module 110 ou par le serveur 140 (cas exposé en figure 2, en étape 255),A communication trigger between the module 110 and the server 140 can take place under different circumstances: in the event of detection of triggering events, by the module 110, for example as a function of thresholds applied to sensors associated with the equipment 100, step 212, according to a predetermined schedule of communications between the module 110 and the server 140, this calendar being able to be managed by the module 110 or by the server 140 (case exposed in FIG. 2, in step 255),
- en fonction de requêtes transmises par le terminal client 180, au cas où les données conservées dans la base de données 145 seraient considérées comme obsolètes au vu de la requête reçue, étapes 250.according to requests transmitted by the client terminal 180, in the case where the data stored in the database 145 would be considered obsolete in view of the request received, steps 250.
Au cours d'une étape 215, le serveur qui veut initier une communication avec l'autre serveur, c'est à dire soit le serveur de communication du module 110, soit le serveur 140, détermine le meilleur support de communication entre le module de communication 110 et le serveur 140. Au cours de cette étape 215, on pourra notamment considérer les critères suivants dans l'ordre de priorité décroissante : la disponibilité des canaux de communication, l'urgence de transmission du flux de données à transmettre, la tarification des opérateurs qui gèrent les différents canaux de communication.During a step 215, the server that wants to initiate a communication with the other server, that is to say either the communication server of the module 110 or the server 140, determines the best communication medium between the module. communication 110 and the server 140. During this step 215, the following criteria may be considered in the order of decreasing priority: the availability of the communication channels, the urgency of transmission of the data stream to be transmitted, the pricing operators who manage the different communication channels.
Grâce à cette étape, on garantit pratiquement le maintien de la capacité de communication entre le module de communication 110 et le serveur 140, même si l'un des canaux est indisponible.With this step, it is practically guaranteed to maintain the communication capacity between the communication module 110 and the server 140, even if one of the channels is unavailable.
En fonction du canal de communication sélectionné au cours de l'étape 215, au cours de l'étape 220, on effectue Ia commutation de protocole de communication correspondant, Ie cas échéant. Puis, au cours d'une étape 225, on met en communication le module de communication 110 et ledit serveur distant 140, par exemple en mettant en oeuvre le protocole de transfert hypertexte http.Depending on the communication channel selected in step 215, in step 220, the corresponding communication protocol switching, if any, is performed. Then, during a step 225, communicating the communication module 110 and said remote server 140, for example by implementing the hypertext transfer protocol http.
Au cours d'une étape 230, le serveur initiateur de la communication transmet une requête à destination du destinataire qui la reçoit, par exemple en mettant en oeuvre le protocole de transfert hypertexte http. Préférentiellement, pour chaque requête reçue, le module de communication 110 ou le serveur 140 vérifient, pour des raisons de sécurité, au cours de l'étape 230, l'adresse du serveur émetteur de la requête. Au cours d'une étape 235, le destinataire analyse Ia requête reçue, récupère les données requises, notamment auprès de l'équipement 100 ou du moyen de stockage des données 145, traite ces données et émet une réponse à destination de l'initiateur de la requête. Cette réponse encapsule ainsi notamment des informations représentatives des états ou paramètres de l'équipement 100 ou du module de communication 110.During a step 230, the initiator server of the communication transmits a request to the recipient who receives it, for example by implementing the hypertext transfer protocol http. Preferably, for each request received, the communication module 110 or the server 140 checks, for security reasons, during step 230, the address of the server issuing the request. During a step 235, the recipient analyzes the received request, retrieves the required data, in particular from the equipment 100 or the data storage means 145, processes this data and sends a response to the initiator of the data request. the request. This response thus encapsulates in particular information representative of the states or parameters of the equipment 100 or the communication module 110.
Pour la description des étapes 230 et 235, on a considéré le cas où le serveur 140 initie la communication. Dans l'autre cas, dans lequel c'est le serveur de communication du module de communication 110 qui initie la communication, l'étape 230 n'a pas lieu et, au cours de l'étape 235, le module de communication 110 récupère les données à transmettre, notamment auprès de l'équipement 100, traite ces données et émet un message à destination du serveur 140. Cette réponse encapsule ainsi des informations représentatives des états ou paramètres de l'équipement 100 ou du module de communication 110.For the description of steps 230 and 235, the case where the server 140 initiates the communication has been considered. In the other case, in which it is the communication server of the communication module 110 which initiates the communication, the step 230 does not take place and, during the step 235, the communication module 110 retrieves the data to be transmitted, especially to the equipment 100, processes this data and sends a message to the server 140. This response thus encapsulates information representative of the states or parameters of the equipment 100 or the communication module 110.
Au cours d'une étape 240, le serveur 140 agrège et distribue les données collectées depuis les différents modules de communications 110 vers les personnes, terminaux clients, bases de données et applications informatiques concernées. Cette agrégation peut comporter la constitution d'un historique d'états des équipements 100 associés aux modules électroniques 110 et le déclenchement d'alerte en cas de panne, de besoin de maintenance préventive, par exemple de besoin de fourniture de consommable. Ces alertes sont déterminées en fonction des informations représentatives des états ou paramètres de l'équipement 100 reçues au cours de l'étape 235 ou agrégées au cours de l'étape 240.During a step 240, the server 140 aggregates and distributes the data collected from the various communications modules 110 to the persons, client terminals, databases and computer applications concerned. This aggregation can comprise the constitution of a state of equipment history 100 associated with the electronic modules 110 and the triggering of alert in case of failure, the need for preventive maintenance, for example the need for supply of consumable. These alerts are determined according to the information representative of the states or parameters of the equipment 100 received during the step 235 or aggregated during the step 240.
Lors d'une requête arrivant au serveur 140 de la part d'un terminal client 180, une base de données ou une application, au cours d'une étape 245, on vérifie que l'émetteur de cette requête est autorisé à l'émettre, selon des techniques connues. On observe que la requête émise par le terminal client 180 est une requête émise par un navigateur, Ie serveur 140 agissant alors en serveur de la toile.During a request arriving at the server 140 from a client terminal 180, a database or an application, during a step 245, it is verified that the sender of this request is authorized to issue it. according to known techniques. It is observed that the request sent by the client terminal 180 is a request sent by a browser, the server 140 then acting server web.
Puis, au cours d'une étape 250, on détermine si une requête à l'équipement 110 est nécessaire, en fonction de la requête reçue et de Ia durée écoulée depuis la dernière mise à jour des données concernant ce module et d'au moins un paramètre de configuration du serveur. Ainsi, on évite la lecture de la mémoire du module de l'équipement ou la mémoire de l'équipement si on dispose d'information suffisamment récente, par exemple dans le cas d'une requête concernant des données dont on connaît la valeur et l'évolution possible. Par exemple, un rafraîchissement de l'état du niveau de toner chaque semaine peut suffire.Then, during a step 250, it is determined whether a request to the equipment 110 is necessary, according to the request received and the time elapsed since the last update of the data concerning this module and at least a server configuration parameter. Thus, the reading of the memory of the equipment module or the memory of the equipment is avoided if there is sufficiently recent information available, for example in the case of a query concerning data whose value and value are known. possible evolution. For example, a refresh of the state of the toner level each week may be sufficient.
Si le résultat de l'étape 250 est positif, une requête à l'équipement 100 étant nécessaire, on passe à l'étape 215. Sinon, on passe à l'étape 255 au cours de laquelle on détermine la prochaine échéance d'une requête à adresser à l'équipement 100, on effectue la lecture des données requises par l'utilisateur, dans la base de données 145 et/ou on réalise une extrapolation des données récentes conservées dans la base de données et on fournit au terminal client 180, sous forme d'une page de Ia toile, les données requises par le terminal client.If the result of the step 250 is positive, a request to the equipment 100 being necessary, one proceeds to the step 215. Otherwise, one proceeds to the step 255 during which one determines the next expiry of a a request to be sent to the equipment 100, the data required by the user are read in the database 145 and / or extrapolates the recent data stored in the database and provides the client terminal 180, in the form of a web page, the data required by the client terminal.
En réponse aux requêtes qu'il reçoit, le serveur 140 agrège des données provenant de bases de données et des données dynamiques physiques transmises par les modules électroniques 110, pour, par exemple, définir des fiches clients qu'il transmet à l'émetteur de Ia requête reçue au cours de l'étape 245. >In response to the requests it receives, the server 140 aggregates data from databases and physical dynamic data transmitted by the electronic modules 110, for example, to define customer records that it transmits to the issuer. The request received during step 245.>
Au cours d'une étape 255, on détermine la prochaine date de requête à adresser au module de communication et lorsque cette date survient, on passe à l'étape 212. Préférentiellement, la durée considérée comme suffisante entre deux mises à jour est paramétrable.During a step 255, the next request date to be addressed to the communication module is determined and when this date occurs, proceed to step 212. Preferably, the duration considered sufficient between two updates is configurable.
On observe, en figure 3, la mise en œuvre d'un procédé de développement de logiciel rapide et facile pour développer, générer et déployer des applications machine à machine et programmer, connecter et gérer les équipements lointains 100 depuis un ou plusieurs serveurs applicatifs 140.FIG. 3 shows the implementation of a quick and easy software development method for developing, generating and deploying machine-to-machine applications and programming, connecting and managing remote equipment 100 from one or more application servers 140 .
Le procédé est mis en œuvre dans un environnement de développement graphique et puissant afin de développer, générer et déployer des applications machine à machine beaucoup plus rapidement qu'avec une approche développement traditionnel et sans connaissance des langages de programmation. On minimise ainsi les coûts de développement et on maximise Ia productivité.The method is implemented in a graphical and powerful development environment to develop, generate and deploy machine-to-machine applications much faster than with a traditional development approach and without knowledge of programming languages. This minimizes development costs and maximizes productivity.
Au cours d'une étape 305 optionnelle, on sélectionne le module de communication 110 qui va être programmé, étant entendu que l'interfaçage physique de ce module avec un équipement 100 a été réalisé préalablement, par exemple ou cours de son installation physique. Au cours d'une étape 310, on définit un modèle de données logiques de l'application destinée à s'exécuter sur le module de communication 110. Ce modèle se réalise en définissant des équipements logiques manipulés par l'application, puis en leur ajoutant des variables représentatives de leurs caractéristiques logiques. Cette définition se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres. Ce modèle de données logiques est totalement indépendant de la physique d'acquisition des données réelles existantes. Par exemple une centrale d'alarme sera représentée par un équipement logique « CentraleAlarme » avec ses variables logiques « Etat » (booléen représentant l'état marche ou arrêt de l'alarme) et « EnAlarme » (booléen représentant le déclenchement ou non de l'alarme). On met en œuvre un éditeur qui permet de créer, modifier et supprimer des équipements logiques (sans référence à sa réalisation électronique) en définissant ses variables, au travers de paramètres tels que type de données (chaîne de caractère, numérique ou booléen), mode d'accès (écriture et/ou lecture), limites de variation (valeur ou longueur maximum et minimum).During an optional step 305, the communication module 110 is selected which will be programmed, it being understood that the physical interface of this module with a device 100 has been made beforehand, for example or during its physical installation. During a step 310, a logical data model of the application intended to execute on the communication module 110 is defined. This model is realized by defining logical devices handled by the application and then adding them. variables representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others. This logical data model is totally independent of the actual data acquisition physics existing. For example, an alarm center will be represented by a "CentralAlarm" logical device with its logical "State" variables (boolean representing the on or off state of the alarm) and "InAlarm" (boolean representing the triggering or not of the alarm). 'alarm). We implement an editor that allows to create, modify and delete logical devices (without reference to its electronic realization) by defining its variables, through parameters such as data type (string, numeric or Boolean), access mode (write and / or read), variation limits (value or maximum and minimum length).
Cette définition de variables et paramètres est contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur. Par exemple, le type de données peut être limité aux trois exemples donnés ci-dessus et donc ne pas permettre un tableau.This definition of variables and parameters is constrained by the compatibility with the features offered by the editor. For example, the data type may be limited to the three examples given above and thus not allow a table.
Au cours d'une étape 315, on effectue un « Mapping » ou une mise en correspondance pour que chaque variable logique du modèle de données logiques de l'application puisse être acquis (lecture) et/ou commandé (écriture) sur des supports physiques ou logiciels. Par ailleurs, cette configuration se réalise au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du module de communication 110 qu'il utilise.During a step 315, a "mapping" or a mapping is performed so that each logic variable of the logical data model of the application can be acquired (read) and / or controlled (write) on physical media. or software. Moreover, this configuration is achieved by means of graphic interfaces constraining the user with respect to the physical reality of the communication module 110 that he uses.
On met en œuvre un éditeur qui permet d'associer chaque variable logique définie au cours de l'étape 310 avec un moyen d'acquisition ou de commande supporté par l'environnement. Cet éditeur limite les choix en fonction des paramètres des variables logiques précédemment définies et des fonctionnalités offertes par le module 110 qui est programmé.An editor is implemented which makes it possible to associate each logical variable defined during step 310 with an acquisition or control means supported by the environment. This editor limits the choices according to the parameters of the previously defined logical variables and the functionalities offered by the module 110 which is programmed.
Par exemple, la variable logique « Etat » de Ia centrale d'alarme pourra être associée à la broche GPIO (General Purpose Input Output) n°4 du module de communication, l'utilisateur ne pouvant pas choisir les broches 0 à 3 car celles-ci n'existent pas sur le module utilisé. On constitue donc, ici, une association spécifique au module de communication et équipements concernés par la programmation.For example, the logical variable "State" of the alarm center may be associated with the GPIO pin (General Purpose Input Output) No. 4 of the communication module, the user can not choose the pins 0 to 3 because those they do not exist on the module used. Here, therefore, there is an association specific to the communication module and equipment involved in the programming.
Au cours d'une étape 320, on définit la logique événementielle, c'est-à-dire le fonctionnement de l'application informatique et les conditions de réalisation de ses actions. Par exemple, cette logique événementielle indique quelles combinaisons d'états de l'équipement provoquent quelles actions de la part du module de communication associé. Cette définition se fait de manière graphique en sélectionnant les données logiques à contrôler (représentées, par exemple, par des rectangles), en associant une notion de logique binaire (représentées, par exemple, par des relations entre les rectangles précédemment sélectionnés) et finalement en choisissant une action à exécuter parmi celles disponibles (représentées par des icônes). Ainsi, les données logiques à contrôler, les relations de logique binaire et les actions à exécuter sont préférentiellement représentées par des éléments graphiques spécifiques.During a step 320, the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions. For example, this event logic indicates which combinations of states of the equipment cause which actions on the part of the associated communication module. This definition is done graphically by selecting the logical data to control (represented, for example, by rectangles), by associating a notion of binary logic (represented, for example, by relations between the previously selected rectangles) and finally by choosing an action to execute from those available (represented by icons). Thus, the logical data to be controlled, the binary logic relations and the actions to be executed are preferably represented by specific graphic elements.
Au cours d'une étape 325, on définit les paramètres de configuration du module de communication 110 qui permettront son interfaçage avec l'équipement 100, ainsi que le bon fonctionnement du module de communication 110 lui même.During a step 325, the configuration parameters of the communication module 110 are defined which will allow its interface with the equipment 100, as well as the proper operation of the communication module 110 itself.
Cette configuration se réalise au travers d'interfaces graphiques limitant l'utilisateur par rapport aux réalités physiques des composants du module de communication 110. Par exemple, on pourra configurer la vitesse de communication d'un port série existant sur le module.This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the components of the communication module 110. for example, it will be possible to configure the communication speed of an existing serial port on the module.
Au cours des étapes 330 à 345, on effectue les mêmes étapes que les étapes 310 à 325, respectivement, pour la programmation de l'application de communication à implanter du côté serveur considéré comme présélectionné car commun à différents modules 110.During steps 330 to 345, the same steps as steps 310 to 325, respectively, are performed for the programming of the communication application to be implemented on the server side considered preselected as common to different modules 110.
Ainsi, au cours de l'étape 330, on définit un modèle de données logiques de l'application destinée à s'exécuter sur le serveur 140. Ce modèle se réalise en définissant des matériels et logiciels logiques manipulés par l'application, puis en leur ajoutant des variables représentatives de leurs caractéristiques logiques. Cette définition se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres. Ce modèle logique est totalement indépendant de la physique de traitement ou de stockage des données réelles existantes. Cette définition de variables et paramètres est contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur. Au cours d'une étape 335, on effectue un « Mapping » ou une mise en correspondance pour que chaque variable du modèle de données logiques de l'application puisse être acquis (lecture) et/ou commandé (écriture) sur des supports physiques ou logiciels. Par ailleurs, cette configuration se réalise au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du serveur 140 et de ses périphériques qu'il utilise.Thus, during step 330, a logical data model of the application intended to execute on the server 140 is defined. This model is realized by defining logical hardware and software manipulated by the application, then by adding variables representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others. This logic model is totally independent of the physics of processing or storing existing real data. This definition of variables and parameters is constrained by the compatibility with the features offered by the editor. During a step 335, a "mapping" or mapping is performed so that each variable of the logical data model of the application can be acquired (read) and / or controlled (written) on physical media or software. Moreover, this configuration is achieved by means of graphical interfaces constraining the user with respect to the physical reality of the server 140 and its peripherals that it uses.
On met en œuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape 330 avec un moyen d'acquisition ou de commande supporté par l'environnement. Cet éditeur limite les choix en fonction des paramètres des variables prédéfinis et des fonctionnalités offertes par le serveur 140 qui est programmé. On constitue donc, ici, une association spécifique au serveur 140 et à ses périphériques concernés par la programmation.An editor is implemented which makes it possible to associate each variable defined during step 330 with a means of acquisition or command supported by the environment. This editor limits the choices according to the parameters of the predefined variables and the functionalities offered by the server 140 which is programmed. Here, therefore, there is an association specific to the server 140 and its peripherals involved in the programming.
Au cours d'une étape 340, on définit la logique événementielle, c'est-à-dire le fonctionnement de l'application informatique et les conditions de réalisation de ses actions. Par exemple, cette logique événementielle indique quelles combinaisons d'états provoquent quelles actions de la part du serveur 140 ou de ses périphériques. Cette définition se fait de manière graphique en sélectionnant les données logiques à contrôler (représentées par des rectangles), en associant une notion de logique binaire (représentées par des relations entre les rectangles précédemment sélectionnés) et finalement en choisissant une action à exécuter parmi celles disponibles (représentées par des icônes). Au cours d'une étape 345, on définit les paramètres de configuration du serveur 140 et de ses périphériques qui permettront son interfaçage avec le module 110. Cette configuration se réalise au travers d'interfaces graphiques limitant l'utilisateur par rapport aux réalités physiques du serveur 140 et de ses périphériques. Par exemple, on pourra configurer la vitesse de communication d'un port série existant sur le serveur.During a step 340, the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions. For example, this event logic indicates which state combinations cause which actions on the part of the server 140 or its peripherals. This definition is done graphically by selecting the logical data to control (represented by rectangles), by associating a notion of binary logic (represented by relations between the previously selected rectangles) and finally by choosing an action to execute from those available. (represented by icons). During a step 345, the configuration parameters of the server 140 and its peripherals are defined which will allow its interface with the module 110. This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the server 140 and its peripherals. For example, it will be possible to configure the communication speed of an existing serial port on the server.
Puis, au cours d'une étape 365, on définit la communication entre le module et le serveur. On met en œuvre un éditeur qui permet de sélectionner les moyens de communication en fonction des capacités de communication offertes par le module de communication 110.Then, during a step 365, the communication between the module and the server is defined. An editor is implemented which makes it possible to select the communication means according to the communication capabilities offered by the communication module 110.
Si au moins deux canaux de communication ont été définis, l'étape 365 permet également d'organiser le choix dynamique du canal de communication à utiliser. Cette organisation vise à conserver un lien entre le module de communication et le serveur, même si un moyen de communication était défaillant.If at least two communication channels have been defined, step 365 also makes it possible to organize the dynamic choice of the communication channel to be used. This organization aims to maintain a link between the communication module and the server, even if a means of communication was faulty.
Par exemple, le choix dépend des canaux disponibles et/ou des prix des canaux de communication. Au cours de cette étape, les choix sont effectués graphiquement grâce notamment à des boites à choix multiples, des champs textes et des interfaces se rafraîchissant en fonction des choix faits précédemment.For example, the choice depends on the available channels and / or the price of the communication channels. During this step, the choices are made graphically thanks to multiple choice boxes, text fields and interfaces refreshing according to the choices made previously.
Puis, au cours d'une étape 370, on génère l'application qui s'exécutera sur le module 110 et celle qui s'exécutera sur le serveur 140. Cette application est un assemblage de briques ou composants logicielles génériques, par exemple le serveur de communication, de serveur de la toile ou « web », ou spécifiquement généré par le dispositif décrit. Les briques et composants logiciels sont sélectionnés en fonction des choix effectués précédemment, de manière déterministe. Ces choix faits précédemment contraignent aussi l'ordre d'exécution de ces briques ou composants, ce qui assure le bon fonctionnement de l'application générée.Then, during a step 370, the application that will run on the module 110 and the one that will run on the server 140 is generated. This application is an assembly of bricks or generic software components, for example the server. communication, web server or "web", or specifically generated by the device described. The bricks and software components are selected according to the choices made previously, in a deterministic manner. These choices made previously also constrain the order of execution of these bricks or components, which ensures the proper functioning of the application generated.
Par exemple, les briques concernent l'une le serveur de communication, serveur de la toile ou serveur SMS, l'autre la communication GPRS, ...For example, the bricks concern one the communication server, web server or SMS server, the other the GPRS communication, ...
L'application générée destinée à être exécutée sur le module de communication 110 est générée dans le langage natif de celui-ci.The generated application intended to be executed on the communication module 110 is generated in the native language thereof.
Au cours d'une étape 375 on télécharge chacune des applications sur le module et le serveur, on lance ses applications, avec ou sans réinitialisation. Les avantages principaux de ce procédé de développement sont les suivants :During a step 375 we download each of the applications on the module and the server, we launch its applications, with or without reinitialization. The main advantages of this development process are:
1/ sa facilité d'utilisation : une approche de programmation graphique guidant les choix de développement de l'utilisateur ;1 / ease of use: a graphical programming approach guiding the user's development choices;
- une approche de programmation de haut niveau : o utilisation de briques de modèle de données efficaces pour définir la logique de l'application et la lier à un dispositif de communication ; o utilisation d'un dispositif d'association des paramètres logiques et physiques- a high-level programming approach: o use of efficient data model bricks to define the logic of the application and link it to a communication device; o use of a device for associating logical and physical parameters
(moyen d'acquisition) de l'application ; o mise à disposition d'un assistant de configuration pour définir tous les paramètres de communication entre le module 110 et le serveur 140 ; - une génération de code informatique automatique ; un ensemble de composants d'application prêts à l'emploi : o un serveur web embarqué ; o une librairie de protocoles applicatifs (Modbus, Nmea, par exemple) pour une interconnexion aisée avec des équipements spécifiques tels que PLC (acronyme de Programmable Logic Controller pour, en français, automate programmable), dispositif de télémétrie, modules GPS (acronyme de Global(means of acquisition) of the application; o provision of a configuration wizard to define all the communication parameters between the module 110 and the server 140; - a generation of automatic computer code; a set of ready-to-use application components: o an embedded web server; o a library of application protocols (Modbus, Nmea, for example) for easy interconnection with specific equipment such as PLC (acronym for Programmable Logic Controller for, in French, PLC), telemetry device, GPS modules (acronym for Global
Positioning System pour système de positionnement global), par exemple ; o un serveur web « classique » permettant d'accéder aux informations métier de l'application développée ; o des modèles d'applications, des pages de présentation, des composants graphiques (connus sous le nom de widgets).Positioning System for global positioning system), for example; o a "classic" web server allowing access to the business information of the developed application; o application templates, presentation pages, graphic components (known as widgets).
2/ Une connexion d'une extrémité à l'autre pour développer et déployer une solution machine à machine complète depuis les équipements éloignés jusqu'aux serveurs applicatifs, permettant la communication par l'intermédiaire de réseaux, par exemple GSM (acronyme de Global System for Mobile communication pour, en français, système de communication globale pour équipements mobiles), GPRS (acronyme de Global Packet Radio Service pour, en français, système de communication radio par paquets), Edge, Wifi (acronyme de Wireless Fidelity pour, en français, Fidélité sans fil), LAN (Local Area Network pour, en français réseau local). 3/ La sécurité par le biais de mécanismes de sécurité intégrés : la mise en œuvre du protocole de transfert de données sécurisé https, de dispositifs d'authentification de personnes, de terminaux ou d'applications, de gestion de profils d'utilisateurs ; 4/ Les performances grâce à : l'optimisation de codes embarqués pour une emprise minimale sur les ressources, en particulier ressources de mémoire, des modules électroniques et une fiabilité maximale et l'optimisation de bande passante utilisé sur les réseaux de communication, par compression de données pour minimiser les coûts de trafic de données entre les modules électroniques 110 et les serveurs 140 ; 5/ Maintenance et mise à jour : fourniture, diagnostic, maintenance et téléchargement d'applications à distance, grâce à des capacités de communication à distance fournies par le module 110 et 6/ Récupération de données depuis les modules électroniques distants 110 pour stockage dans le système de traitement d'information (serveur 140), pour réalisation de rapports, facturation, base de connaissance, par exemple.2 / An end-to-end connection to develop and deploy a complete machine-to-machine solution from remote devices to application servers, enabling communication over networks, for example GSM (acronym for Global System for Mobile communication for, in French, global communication system for mobile devices), GPRS (acronym for Global Packet Radio Service for, in French, packet radio communication system), Edge, Wifi (acronym for Wireless Fidelity for, in French , Loyalty Wireless), LAN (Local Area Network for, in French Local Area Network). 3 / Security through integrated security mechanisms: the implementation of the https secure data transfer protocol, personal authentication devices, terminals or applications, management of user profiles; 4 / The performances thanks to: the optimization of embedded codes for a minimal influence on the resources, in particular resources of memory, electronic modules and a maximum reliability and the optimization of bandwidth used on the communication networks, by compression data to minimize the cost of data traffic between the electronic modules 110 and the servers 140; 5 / Maintenance and update: provision, diagnosis, maintenance and download of applications remotely, thanks to remote communication capabilities provided by the module 110 and 6 / Data recovery from the remote electronic modules 110 for storage in the information processing system (server 140), for reporting, billing, knowledge base, for example.
Grâce à la mise en œuvre de cet environnement de développement, on développe une solution globale et centralisée. Pratiquement, la suite de développement organise le développement et s'abstrait de la forme d'exécution. Un macro-langage graphique permet de s'affranchir de connaissance de langage informatique.Thanks to the implementation of this development environment, we develop a global and centralized solution. Practically, the development suite organizes the development and abstracts from the form of execution. A graphical macro-language makes it possible to dispense with knowledge of computer language.
On observe que les éléments et la programmation sont conservés en mémoire du terminal de programmation 150 et peuvent être édités et téléchargés à distance sur le module 110 et/ou sur le serveur 140 à tout moment.It is observed that the elements and the programming are stored in the memory of the programming terminal 150 and can be edited and remotely downloaded to the module 110 and / or the server 140 at any time.
Le macro-langage graphique et l'environnement graphique utilisent ainsi, à la fois, des parties génériques et des parties spécifiques pour des modules particuliers. Grâce à ces caractéristiques, le langage de programmation est indépendant du module de communication et de son fournisseur, des BSP (acronyme de Board Support Package pour, en français, ensemble de support de carte) ou MSP (module support package pour, en français, ensemble de support de module) ou de l'ensemble de pilotes permettant leur commande. The graphical macro-language and the graphical environment thus use, at the same time, generic parts and specific parts for particular modules. Thanks to these characteristics, the programming language is independent of the communication module and its provider, the BSP (acronym for Board Support Package for, in French, card support package) or MSP (module support package for, in French, module support package) or the set of drivers for their command.

Claims

REVENDICATIONS
1 - Dispositif de communication entre un module électronique (110) doté d'un contrôleur programmable et un serveur distant (140), caractérisé en ce qu'il comporte : - un moyen d'association dudit module électronique avec un équipement (100) de telle manière que ledit module reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement au travers d'au moins un connecteur (103), une application de serveur de communication sur ledit module électronique, ladite application de serveur de communication étant adaptée à communiquer de manière automatique avec ledit équipement ainsi qu'avec ledit serveur distant au travers d'au moins un moyen de communication (120, 125) et une application de serveur de communication sur ledit serveur distant pour l'adapter à communiquer de manière automatique avec ledit module électronique au travers d'au moins un canal de communication au travers d'au moins un moyen de communication (155, 160) ; chacune des dites applications de serveur étant adaptée :1 - Communication device between an electronic module (110) having a programmable controller and a remote server (140), characterized in that it comprises: - means for associating said electronic module with a device (100) of such that said module receives signals representative of states or operating parameters of said equipment through at least one connector (103), a communication server application on said electronic module, said communication server application being adapted communicating automatically with said equipment as well as with said remote server through at least one communication means (120, 125) and a communication server application on said remote server to adapt it to communicate automatically with said electronic module through at least one communication channel through at least one communication means (155, 160); each of said server applications being adapted:
- à décider la transmission d'une requête à l'autre application de serveur, en fonction d'un critère prédéterminé, ledit serveur distant et ledit module étant ainsi adaptés à transmettre une requête à destination dudit module ou dudit serveur distant, respectivement, à la suite de ladite décision et- to decide the transmission of a request to the other server application, according to a predetermined criterion, said remote server and said module being thus adapted to transmit a request to said module or said remote server, respectively, to following that decision and
- à réception de ladite requête, à faire transmettre une réponse à l'autre application de serveur, ledit module et ledit serveur distant étant ainsi adaptés à transmettre à destination dudit serveur distant ou dudit module, respectivement, ladite réponse encapsulant des informations représentatives desdits états ou paramètres dudit équipement.- upon receipt of said request, to send a response to the other server application, said module and said remote server being thus adapted to transmit to said remote server or said module, respectively, said response encapsulating information representative of said states or parameters of said equipment.
2 - Dispositif selon la revendication 1, caractérisé en ce qu'au moins une desdites applications de serveur comporte un moyen de sélection automatique d'un canal de communication entre le module électronique et ledit serveur distant, en fonction de caractéristiques des données à transmettre et des canaux de communications disponibles, au moins l'une des étapes de transmission d'une requête et de réponse à ladite requête étant effectuée en mettant en oeuvre le canal de communication sélectionné.2 - Device according to claim 1, characterized in that at least one of said server applications comprises means for automatically selecting a communication channel between the electronic module and said remote server, according to characteristics of the data to be transmitted and communication channels available, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
3 - Dispositif selon l'une quelconque des revendications 1 ou 2, caractérisé en ce qu'au moins une desdites applications comporte un moyen de conservation de l'information à transmettre tant qu'un cycle de requête/réponse complet n'a pas été achevé positivement.3 - Device according to any one of claims 1 or 2, characterized in that at least one of said applications comprises a means of retaining the information to be transmitted until a complete request / response cycle has not been completed positively.
4 - Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'un des moyens de communication est un réseau sans-fil de type GSM/GPRS. 5 - Procédé de communication entre un module électronique (110) et un serveur distant (140), caractérisé en ce qu'il comporte :4 - Device according to any one of claims 1 to 3, characterized in that one of the communication means is a wireless network type GSM / GPRS. 5 - Method of communication between an electronic module (110) and a remote server (140), characterized in that it comprises:
- une étape d'association dudit module électronique doté d'un contrôleur programmable avec un équipement (100) de telle manière que ledit module reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement au travers d'au moins un connecteur (103) ;a step of associating said electronic module provided with a programmable controller with a device (100) such that said module receives signals representative of states or operating parameters of said equipment through at least one connector ( 103);
- une étape d'implantation d'une application de serveur de communication sur ledit module électronique, ladite application de serveur de communication étant adaptée à communiquer de manière automatique avec ledit équipement ainsi qu'avec ledit serveur distant au travers d'au moins un moyen de communication (120, 125) ;a step of implementing a communication server application on said electronic module, said communication server application being adapted to communicate automatically with said equipment as well as with said remote server through at least one means; communication (120, 125);
- une étape d'implantation d'une application de serveur de communication sur ledit serveur distant pour l'adapter à communiquer de manière automatique avec ledit module électronique au travers d'au moins un canal de communication au travers d'au moins un moyen de communication (155, 160) ; - une étape de transmission d'une requête depuis ledit serveur distant ou dudit module à destination dudit module ou dudit serveur distant, respectivement, à la suite d'une décision automatique d'utilisation d'un moyen de communication disponible eta step of implementing a communication server application on said remote server to adapt it to communicate automatically with said electronic module through at least one communication channel through at least one means of communication; communication (155, 160); a step of transmitting a request from said remote server or said module to said module or said remote server, respectively, following an automatic decision to use an available communication means and
- à réception de ladite requête, une étape de transmission d'une réponse, de la part dudit module ou dudit serveur distant et à destination dudit serveur distant ou dudit module, respectivement, ladite réponse encapsulant des informations représentatives desdits états ou paramètres dudit équipement.- On receipt of said request, a step of transmitting a response from said module or said remote server and to said remote server or said module, respectively, said response encapsulating information representative of said states or parameters of said equipment.
6 - Procédé selon la revendication 5, caractérisé en ce qu'il comporte une étape de sélection automatique d'un canal de communication entre le module électronique et ledit serveur distant, en fonction de caractéristiques des données à transmettre et des canaux de communications disponibles, au moins l'une des étapes de transmission d'une requête et de réponse à ladite requête étant effectuée en mettant en œuvre le canal de communication sélectionné.6 - Process according to claim 5, characterized in that it comprises a step of automatically selecting a communication channel between the electronic module and said remote server, according to characteristics of the data to be transmitted and the available communication channels, at least one of the steps of transmitting a request and responding to said request being performed by implementing the selected communication channel.
7 - Procédé selon l'une quelconque des revendications 5 ou 6, caractérisé en ce qu'il comporte une étape conservation de l'information à transmettre tant qu'un cycle de requête/réponse complet n'a pas été achevé positivement, afin de pouvoir envoyer, de nouveau, ladite information au travers d'un des autres moyens de communication.7 - Process according to any one of claims 5 or 6, characterized in that it comprises a conservation step of the information to be transmitted until a complete request / response cycle has been completed positively, in order to able to send, again, said information through one of the other means of communication.
8 - Procédé selon l'une quelconque des revendications 5 à 7, caractérisé en ce que l'un des moyens de communication est un réseau sans-fil de type GSM/GPRS. 8 - Process according to any one of claims 5 to 7, characterized in that one of the communication means is a wireless network type GSM / GPRS.
EP07731145A 2006-03-15 2007-03-15 Method and device for communication between a device and a server Withdrawn EP2010975A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0602286A FR2898697B1 (en) 2006-03-15 2006-03-15 METHOD AND DEVICE FOR COMMUNICATION BETWEEN EQUIPMENT AND A SERVER
FR0602287A FR2898698B1 (en) 2006-03-15 2006-03-15 METHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION
PCT/FR2007/000453 WO2007104868A2 (en) 2006-03-15 2007-03-15 Method and device for communication between a device and a server

Publications (1)

Publication Number Publication Date
EP2010975A2 true EP2010975A2 (en) 2009-01-07

Family

ID=38445760

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07731145A Withdrawn EP2010975A2 (en) 2006-03-15 2007-03-15 Method and device for communication between a device and a server

Country Status (3)

Country Link
US (1) US8484285B2 (en)
EP (1) EP2010975A2 (en)
WO (1) WO2007104868A2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596439B2 (en) * 2005-01-20 2009-09-29 General Motors Corporation Method for controlling a remote monitoring device
US8762963B2 (en) * 2008-12-04 2014-06-24 Beck Fund B.V. L.L.C. Translation of programming code
US20100180711A1 (en) 2009-01-19 2010-07-22 Comau, Inc. Robotic end effector system and method
WO2010107872A2 (en) * 2009-03-17 2010-09-23 Comau, Inc. Industrial communication system and method
KR101850817B1 (en) * 2011-11-17 2018-04-23 삼성전자주식회사 The method and apparatus for auto installing applications into different terminal
DE102012016824A1 (en) * 2012-06-19 2013-12-19 Robert Bosch Gmbh Method for generating control commands for automation device, involves converting transferred control command datums and transmission datums derived from control command datums in device into interpretable code of control commands
JP5980037B2 (en) * 2012-08-06 2016-08-31 キヤノン株式会社 Management system, server, client, and method thereof
JP6054238B2 (en) * 2013-04-26 2016-12-27 株式会社東芝 Electronic device and communication control method
US9774982B2 (en) * 2013-10-30 2017-09-26 AT&T Intellectual Propetry I, L.P. Long term evolution machine to machine privacy protection
DE102014105075B4 (en) * 2014-04-09 2023-12-07 Krohne Messtechnik Gmbh Method and communication arrangement for data communication
US10437241B2 (en) 2016-12-16 2019-10-08 General Electric Company Systems and methods for generating maintenance packages
EP3376319B1 (en) * 2017-03-14 2021-01-06 CODESYS Holding GmbH Method and system for an automated configuration of an industrial controller

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2807254B1 (en) * 2000-03-31 2004-08-27 Schneider Automation SYSTEM FOR ACCESSING A PROGRAMMABLE AUTOMATION ASSEMBLY ON A WAP ARCHITECTURE
US6640140B1 (en) 2000-10-10 2003-10-28 Schneider Automation Inc. PLC executive with integrated web server
US7228129B1 (en) * 2001-03-20 2007-06-05 Logical Concepts, Inc. Expert system for monitoring, recording and controlling remote equipment that minimizes wireless telephone airtime
FR2831969B1 (en) 2001-11-08 2004-01-16 Schneider Automation ELECTRONIC CARD DOWNLOAD AND REMOTE MAINTENANCE SYSTEM
FI20015050A (en) * 2001-12-13 2003-06-14 Nokia Corp Systems in a wireless data transmission network for transmission of information
US8116889B2 (en) * 2002-06-27 2012-02-14 Openpeak Inc. Method, system, and computer program product for managing controlled residential or non-residential environments
US20050021839A1 (en) 2003-06-23 2005-01-27 Russell Thomas C. Method and apparatus for providing a selectively isolated equipment area network for machine elements with data communication therebetween and with remote sites
US20080027679A1 (en) * 2004-07-21 2008-01-31 Dror Shklarski Wearable Device, System and Method for Measuring Physiological and/or Environmental Parameters
FR2881594B1 (en) * 2005-02-01 2007-03-23 Awox Sa METHOD AND DEVICE FOR EXCHANGING DATA
US8316152B2 (en) 2005-02-15 2012-11-20 Qualcomm Incorporated Methods and apparatus for machine-to-machine communications
US7224960B2 (en) * 2005-07-12 2007-05-29 Kyocera Wireless Corp. System and method for updating wireless applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007104868A2 *

Also Published As

Publication number Publication date
WO2007104868A2 (en) 2007-09-20
WO2007104868A3 (en) 2007-11-01
US20090216344A1 (en) 2009-08-27
US8484285B2 (en) 2013-07-09

Similar Documents

Publication Publication Date Title
EP2010975A2 (en) Method and device for communication between a device and a server
US20200413320A1 (en) Management of applications for a device located at a premises
US11227080B2 (en) Industrial automation information contextualization method and system
US11900790B2 (en) Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US8132127B2 (en) System and methodology providing adaptive interface in an industrial controller environment
EP1164756B1 (en) System of access to automation equipment via a proximity wireless network
EP2728428B1 (en) Cloud based drive monitoring solution
CA2342129C (en) Programmable automatic control access system based on wap architecture
CN113075909A (en) Industrial data service platform
CA2992429A1 (en) Data model for home automation
EP1726124A1 (en) System and method for remotely monitoring equipment with the aid of at control, device, radiocommunications module and corresponding program
FR2898698A1 (en) Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request
FR2898697A1 (en) Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request
US20170302512A1 (en) Universal control and monitoring of security systems and security components
US11656610B2 (en) Quick connection techniques for skid communicator tool
FR2835673A1 (en) Automation equipment having an instant messaging communication capability enabling its remote real-time command and control via a third party connected to an instant messaging server
FR2902271A1 (en) METHOD OF CONTROLLING AN ELECTRONIC RADIO COMMUNICATION MODULE BY A CORRESPONDING EQUIPMENT, EQUIPMENT, MODULE, SIGNAL AND DESCRIPTION FILE.
FR3038401A1 (en) CONFIGURATION METHOD AND METHOD FOR CONTROLLING A SYSTEM OF INTERCONNECTED EXECUTION MODULES.
EP2086282B1 (en) Self-adaptive communication system
CA3171907A1 (en) Open world communication device for communicating with an avionics system, associated communication system and communication method
FR2896049A1 (en) Teleassistance system for e.g. identifying failure of drilling equipment, has case exchanging data with sensors and actuators of machine, and local server exchanging data with teleassistance station via interface and mobile telephone
EP3471346A1 (en) Method for generation of requests for the segmentation of monitoring of an interconnection network and associated equipment
FR2972319A1 (en) Method for processing data transmitted by e.g. equipment in local area network facilitated by gateway, involves processing data by processor of autonomous auxiliary device connected to gateway
FR2955680A1 (en) Master automaton for managing access control of installation of e.g. military site, has units selecting hardware between electric circuits, and library controlling readers in which automaton draws appropriate control for specific reader

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20081010

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

17Q First examination report despatched

Effective date: 20090610

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20091001