{"id":118413,"date":"2023-08-25T13:30:47","date_gmt":"2023-08-25T11:30:47","guid":{"rendered":"https:\/\/www.velasolaris.com\/handbuch\/reglage-plugin\/"},"modified":"2025-04-23T11:46:20","modified_gmt":"2025-04-23T09:46:20","slug":"reglage-plugin","status":"publish","type":"handbuch","link":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/","title":{"rendered":"R\u00e9glage Plugin"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Le r\u00e9glage Plugin est un r\u00e9glage qui peut \u00eatre \u00e9tendu par des extensions. Les Plugins du r\u00e9glage peuvent \u00eatre cr\u00e9\u00e9s m\u00eame dans le langage de programmation Java. Cela permet de cr\u00e9er des r\u00e9glages complexes. Le transfert vers d&rsquo;autres environnements de programmation comme Matlab est possible, par exemple pour int\u00e9grer des r\u00e9glages existantes dans Polysun.&nbsp; L&rsquo;interface des r\u00e9glages Plugin est l&rsquo;interface Java <em>IPluginController<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Introduction\" style=\"font-size:30px\">Introduction<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9glages Plugin permettent de cr\u00e9er des r\u00e9glages dans Polysun. Ils permettent de d\u00e9velopper des r\u00e9glages complexes et puissants. Ces r\u00e9glages peuvent \u00eatre d\u00e9velopp\u00e9s par l&rsquo;utilisateur ou des plug-ins de r\u00e9glages re\u00e7us peuvent \u00eatre ajout\u00e9s \u00e0 une installation Polysun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diverses r\u00e9glages Plugin sont incluses dans une installation Polysun, voir les chapitres suivants.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans l&rsquo;application, les r\u00e9glages Plugin se comportent de la m\u00eame mani\u00e8re que les \u00ab\u00a0r\u00e9glages traditionnels\u00a0\u00bb. La diff\u00e9rence est que toute personne sachant programmer Java peut d\u00e9velopper et distribuer des r\u00e9glages Plugin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Diff\u00e9rence-par-rapport-au-r\u00e9glage-programmable-ou-avantages-du-r\u00e9glage-Plugin\" style=\"font-size:30px\">Diff\u00e9rence par rapport au r\u00e9glage programmable ou avantages du r\u00e9glage Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9glages Plugin permettent \u00e9galement la programmation de r\u00e9glages comme la \u00ab\u00a0R\u00e9glage programmable\u00a0\u00bb. Toutefois, les r\u00e9glages sont programm\u00e9es dans les langages de programmation Java, Python ou Matlab. Des r\u00e9glages complexes peuvent \u00eatre programm\u00e9s. Des boucles de programme ou des biblioth\u00e8ques peuvent \u00eatre utilis\u00e9es. La gamme compl\u00e8te de ces langages de programmation est disponible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il existe en outre la possibilit\u00e9 de programmer des \u00ab\u00a0redirections\u00a0\u00bb vers des r\u00e9glages existantes ou vers d&rsquo;autres environnements de programmation, comme cela a \u00e9t\u00e9 fait pour Matlab ou Python, par exemple.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Application-des-r\u00e9glages-Plugin\" style=\"font-size:30px\">Application des r\u00e9glages Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9glages Plugin sont ajout\u00e9es comme des \u00a0\u00bb r\u00e9glages traditionnels \u00a0\u00bb via la s\u00e9lection des r\u00e9glages d&rsquo;une variante. Toutes les r\u00e9glages Plugin existantes sont affich\u00e9es dans la s\u00e9lection de r\u00e9glage Plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les projets qui contiennent un r\u00e9glage Plugin ont besoin du Plugin avec le r\u00e9glage pour \u00eatre ex\u00e9cut\u00e9s et modifi\u00e9s. Les Plugins sont stock\u00e9s sous forme de fichiers .jar et peuvent \u00eatre ajout\u00e9s au dossier Plugins dans le chemin des donn\u00e9es de Polysun, par exemple, pour Windows, ce serait normalement C:UsersPublicPolysunplugins oder normalerweise f\u00fcr MacOS \/Programme\/Polysun\/plugins. Les Plugins ajout\u00e9s sont disponibles pour la s\u00e9lection apr\u00e8s un red\u00e9marrage de Polysun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez l&rsquo;essayer en utilisant le r\u00e9glage Plugin de d\u00e9monstration, qui est contenu dans le Plugin DemoPlugin.jar. Il est stock\u00e9 dans le r\u00e9pertoire de donn\u00e9es de Polysun et peut \u00eatre copi\u00e9 du r\u00e9pertoire de donn\u00e9es plugins\/examples dans le dossier plugins. Le r\u00e9glage est disponible pour la s\u00e9lection apr\u00e8s le red\u00e9marrage de Polysun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si un r\u00e9glage Plugin est manquant, une erreur est affich\u00e9e. L&rsquo;\u00e9dition ou la simulation n&rsquo;est pas possible si le Plugin est absent. Le Plugin de r\u00e9glage manquant doit \u00eatre ajout\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Polysun est livr\u00e9 avec un certain nombre de r\u00e9glages Plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Des exemples de projets sont disponibles dans le r\u00e9pertoire de donn\u00e9es plugins\/examples.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9glages Plugin ne sont actuellement pas ajout\u00e9s automatiquement aux projets comme les profils. Les Plugins doivent \u00eatre transmis par l&rsquo;utilisateur lui-m\u00eame.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"R\u00e9glage-du-d\u00e9bit-par-Plugin\" style=\"font-size:30px\">R\u00e9glage du d\u00e9bit par Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9glage de d\u00e9bit Plugin se comporte exactement comme le r\u00e9glage de d\u00e9bit existant. C&rsquo;est une copie. Ce r\u00e9glage est disponible en code source et est un logiciel open source, voir dans le r\u00e9pertoire de donn\u00e9es plugins\/PolysunPluginDevelopmentKit.zip.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"R\u00e9glage-Plugin-&quot;Intervalle-fixe&quot;\" style=\"font-size:30px\">R\u00e9glage Plugin \u00ab\u00a0Intervalle fixe\u00a0\u00bb<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un r\u00e9glage qui sp\u00e9cifie un intervalle r\u00e9gulier et fixe dans la simulation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour chaque point temporel qui est un multiple d&rsquo;intervalle fixe, la simulation ex\u00e9cute un intervalle. Polysun peut effectuer plus d&rsquo;intervalles si la simulation l&rsquo;exige. Par exemple, pour un intervalle fixe de 180s, la simulation ex\u00e9cute les pas de temps suivants : 0s, 180s, 360s, 480s, 720s, &#8230;..&nbsp; 0 signifie qu&rsquo;il n&rsquo;y a pas d&rsquo;intervalle fixe et que les intervalles normaux (240s pendant le jour et 720s pendant la nuit) de Polysun sont appliqu\u00e9s. 0 repr\u00e9sente donc les \u00ab\u00a0intervalles normaux\u00a0\u00bb.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"R\u00e9glage-Plugin-Matlab\" style=\"font-size:30px\">R\u00e9glage Plugin Matlab<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9glage Matlab est un r\u00e9glage Plugin qui transmet les appels de r\u00e9glage de Polysun \u00e0 une fonction Matlab. Le nom de la fonction dans Matlab est d\u00e9fini dans le r\u00e9glage. Cette fonction doit se trouver dans le chemin de Matlab ou dans le r\u00e9pertoire de d\u00e9marrage. La fonction Matlab doit avoir les arguments de fonction suivants :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> <strong>[<\/strong> controlSignals<strong>,<\/strong> logValues<strong>,<\/strong> timepoints <strong>]<\/strong> <strong>=<\/strong> control<strong>(<\/strong> simulationTime<strong>,<\/strong> status<strong>,<\/strong> sensors<strong>,<\/strong> sensorsUsed<strong>,<\/strong> properties<strong>,<\/strong> propertiesStr<strong>,<\/strong> preRun<strong>,<\/strong> controlSignalsUsed<strong>,<\/strong> numLogValues<strong>,<\/strong> stage<strong>,<\/strong> fixedTimestep<strong>,<\/strong> verboseLevel<strong>,<\/strong> parameters<strong>)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La fonction Matlab sp\u00e9cifi\u00e9e dans le r\u00e9glage Matlab est appel\u00e9e \u00e0 chaque intervalle par Polysun et doit calculer les signaux de r\u00e9glage pour Polysun \u00e0 chaque intervalle en fonction des param\u00e8tres d&rsquo;entr\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configuration et les exemples du r\u00e9glage Matlab sont stock\u00e9s dans le r\u00e9pertoire de donn\u00e9es de Polysun plugins\/com.velasolaris.plugin.controller.matlab.matconsolectl.MatlabPluginController nach dem ersten Steuerungsaufruf abgelegt, z.B.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C:UsersPublicPolysunpluginscom.velasolaris.plugin.controller.matlab.matconsolectl.MatlabPluginController.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le fichier config.properties contient la configuration de base du r\u00e9glage Matlab. Si Matlab n&rsquo;est pas trouv\u00e9, le chemin du fichier du programme Matlab doit \u00eatre d\u00e9fini avec matctl.matlabLocation, par exemple&nbsp;:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">matctl.matlabLocation=C:\\Program&nbsp;Files\\MATLAB\\R2017a\\bin\\matlab.exe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sp\u00e9cification correcte de \u00ab\u00a0\u00a0\u00bb est techniquement n\u00e9cessaire, c&rsquo;est-\u00e0-dire double et simple avant les deux points (\u00ab\u00a0:\u00a0\u00bb). De m\u00eame, le r\u00e9pertoire de d\u00e9marrage peut \u00eatre d\u00e9fini avec le param\u00e8tre matctl.matlabStartingDirectory lorsque Matlab est appel\u00e9 pour la premi\u00e8re fois. La plupart des autres param\u00e8tres sont explicites par leur nom ou ne n\u00e9cessitent g\u00e9n\u00e9ralement pas d&rsquo;adaptation suppl\u00e9mentaire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les arguments de la fonction du r\u00e9glage sont document\u00e9s dans control.m. La fonction Matlab controlFlowrate.m met en \u0153uvre un r\u00e9glage d\u00e9bit. Il se comporte de la m\u00eame mani\u00e8re que le \u00ab\u00a0r\u00e9glage d\u00e9bit traditionnel\u00a0\u00bb de Polysun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce r\u00e9glage est disponible en code source et est un logiciel open source, voir dans le r\u00e9pertoire de donn\u00e9es plugins\/PolysunPluginDevelopmentKit.zip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si Matlab n&rsquo;a pas encore \u00e9t\u00e9 d\u00e9marr\u00e9, Matlab est d\u00e9marr\u00e9. Les points d&rsquo;arr\u00eat dans Matlab sont support\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9glage Matlab utilise la biblioth\u00e8que MatConsoleCtl pour la communication interne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le chapitre \u00ab\u00a0Comparaison des vitesses\u00a0\u00bb, Matlab est compar\u00e9 aux autres types d&rsquo;appels de r\u00e9glage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"R\u00e9glage-Plugin-RCP\" style=\"font-size:30px\">R\u00e9glage Plugin RCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9glage RPC est un r\u00e9glage Plugin qui transmet les appels de r\u00e9glage de Polysun \u00e0 un serveur RPC via un Remote Procedure Call (RPC). Le nom de la fonction et l&rsquo;URL du serveur sont d\u00e9finis dans le r\u00e9glage, par exemple \u00ab\u00a0controlFlowrate\u00a0\u00bb et \u00ab\u00a0http:\/\/localhost:2102\/control\u00a0\u00bb. La fonction dans le serveur RPC doit avoir les arguments de fonction suivants :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">control(simulationTime, status, sensors, sensorsUsed, properties, propertiesStr, preRun, controlSignalsUsed, numLogValues, stage, fixedTimestep, verboseLevel, parameters)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=&gt; controlSignals, logValues, timepoints<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La fonction RPC sp\u00e9cifi\u00e9e dans le r\u00e9glage est appel\u00e9e \u00e0 chaque intervalle par Polysun et doit renvoyer les signaux de r\u00e9glage pour Polysun \u00e0 chaque intervalle en fonction des param\u00e8tres d&rsquo;entr\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trois types de RPC sont support\u00e9s : JSON-RPC stream (vitesse optimis\u00e9e) JSON-RPC et XML-RPC. JSON-RPC et XML-RPC sont tous deux support\u00e9s par de nombreux syst\u00e8mes, par exemple par le langage de programmation Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python (<a href=\"https:\/\/python.org\/\">https:\/\/python.org<\/a>) supporte JSON-RPC via des modules suppl\u00e9mentaires et XML-RPC par d\u00e9faut. Un serveur XML, un serveur JSON-RPC et un serveur JSON-RPC stream optimis\u00e9 pour Python sont disponibles dans le r\u00e9pertoire de donn\u00e9es du r\u00e9glage RPC (plugins\/com.velasolaris.plugin.controller.rpc.SimpleRpcPluginController). Les fonctions de r\u00e9glage sont dans controlFunctions.py.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9marrage du serveur de fonctions :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">python controlJsonRpcStreamServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">python controlJsonRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">python controlXmlRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">python controlRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ou avec pypy (<a href=\"http:\/\/pypy.org\/\">http:\/\/pypy.org<\/a>), qui utilise un compilateur Just in Time (JIT) et est donc plus rapide :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pypy controlJsonRpcStreamServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pypy controlJsonRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pypy controlXmlRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pypy controlRpcServer.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est possible de d\u00e9marrer le serveur de fonctions RPC automatiquement dans Polysun. Pour un d\u00e9marrage r\u00e9ussi du serveur RPC, les param\u00e8tres doivent \u00eatre d\u00e9finis correctement. Si le d\u00e9marrage automatique du serveur RPC ne fonctionne pas, veuillez consulter le fichier journal de Polysun dans le r\u00e9pertoire de donn\u00e9es de Polysun, par exemple C:UsersPublicPolysundata.log. L&rsquo;analyse des probl\u00e8mes requiert une certaine compr\u00e9hension technique.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les diff\u00e9rents types d&rsquo;appels de r\u00e9glage sont compar\u00e9s entre eux dans le chapitre \u00ab\u00a0Comparaison des vitesses\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Des informations suppl\u00e9mentaires sont document\u00e9es dans les fichiers de script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce r\u00e9glage est disponible en code source et est un logiciel Open Source, voir dans le r\u00e9pertoire des donn\u00e9es plugins\/PolysunPluginDevelopmentKit.zip.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"D\u00e9veloppement-du-r\u00e9glage-Plugin\" style=\"font-size:30px\">D\u00e9veloppement du r\u00e9glage Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez cr\u00e9er vous-m\u00eame des r\u00e9glages Plugin dans le langage de programmation Java. La condition pr\u00e9alable \u00e0 la cr\u00e9ation de Plugins de r\u00e9glage est la connaissance de la programmation Java et un environnement de d\u00e9veloppement Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour introduire, l&rsquo;interface <em>IPluginController<\/em> d\u00e9finit un r\u00e9glage et <em>ControllerPlugin<\/em> d\u00e9finit un Plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9glages Plugin doivent se conformer ( impl\u00e9menter ) \u00e0 l&rsquo;interface Java <em>IPluginController<\/em>. La m\u00e9thode la plus importante est control(). Cette m\u00e9thode est appel\u00e9e \u00e0 chaque intervalle et calcule les signaux de r\u00e9glage \u00e0 partir des signaux des sondes. La signature est<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">control<strong>(<\/strong>int simulationTime<strong>,<\/strong> boolean status<strong>,<\/strong> float<strong>[]<\/strong> sensors<strong>,<\/strong> float<strong>[]<\/strong> controlSignals<strong>,<\/strong> float<strong>[]<\/strong> logValues<strong>,<\/strong> boolean preRun<strong>,<\/strong> Map<strong>&lt;<\/strong>String<strong>,<\/strong> Object<strong>&gt;<\/strong> parameters<strong>)<\/strong><strong>.<\/strong><strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les valeurs des entr\u00e9es de r\u00e9glage sont mises \u00e0 disposition dans le sensors-Array \u00e0 chaque intervalle. \u00c0 partir de l\u00e0, le r\u00e9glage Plugin calcule les signaux de r\u00e9glage (controlSignals-Array) pour les sorties de r\u00e9glage d\u00e9finies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les fichiers n\u00e9cessaires au d\u00e9veloppement des r\u00e9glages Plugin sont disponibles dans le r\u00e9pertoire de donn\u00e9es de l&rsquo;archive zip plugins\/PolysunPluginDevelopmentKit.zip. Des informations compl\u00e9mentaires sont d\u00e9crites dans les fichiers README.txt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un Plugin de r\u00e9glage est d\u00e9fini par l&rsquo;interface <em>ControllerPlugin<\/em>. Un Plugin doit avoir une classe qui impl\u00e9mente cette interface. Pour que le Plugin soit trouv\u00e9, il doit \u00eatre \u00ab\u00a0enregistr\u00e9\u00a0\u00bb. Pour ce faire, le nom de classe complet du Plugin cr\u00e9\u00e9 (y compris les paquets) doit \u00eatre saisi dans le fichier<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">META-INFservicescom.velasolaris.plugin.controller.spi.ControllerPlugin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour le Plugin de d\u00e9monstration, le contenu de ce fichier est le suivant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">com.velasolaris.plugin.controller.DemoControllerPlugin. Les classes Java compil\u00e9es (.class) avec le r\u00e9pertoire META-INF peuvent ensuite \u00eatre emball\u00e9es dans une archive Java (fichier .jar) et ajout\u00e9es au classpath de Polysun. Il est pr\u00e9f\u00e9rable d&rsquo;ajouter les Plugins dans le dossier plugins du r\u00e9pertoire de donn\u00e9es. La fa\u00e7on la plus simple de cr\u00e9er le fichier jar du Plugin est avec un script Ant, voir build.xml pour le Plugin de d\u00e9monstration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Par d\u00e9faut, les jars des Plugins ne sont pas recharg\u00e9s lorsque Polysun est en cours d&rsquo;ex\u00e9cution. Cependant, le rechargement peut \u00eatre utile pendant le d\u00e9veloppement. Si dans le fichier user.ini (par exemple dans C:UsersPublicPolysun), qui contient les param\u00e8tres de l&rsquo;utilisateur Polysun, le param\u00e8tre<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin.ReloadAlways=1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">est d\u00e9fini, les Plugins sont recharg\u00e9s \u00e0 chaque fois que le dialogue du r\u00e9glage Plugin est appel\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour d\u00e9velopper un nouveau r\u00e9glage Plugin, il est pr\u00e9f\u00e9rable de faire une copie du Plugin de d\u00e9monstration et d&rsquo;adapter les fichiers correspondants. Il est recommand\u00e9 de s\u00e9curiser les nouveaux r\u00e9glages avec des tests JUnit. Le test DemoFlowratePluginControllerTest est un exemple de test JUnit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Comparaison-de-la-vitesse\" style=\"font-size:30px\">Comparaison de la vitesse<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les appels de r\u00e9glage Plugin sont possibles de diff\u00e9rentes mani\u00e8res. Les langages de programmation tels que Matlab, Python ou Java peuvent \u00eatre particuli\u00e8rement adapt\u00e9s \u00e0 certaines t\u00e2ches.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La dur\u00e9e de la simulation d\u00e9pend du type d&rsquo;appels de r\u00e9glage. Pour avoir une comparaison de vitesse, les diff\u00e9rents appels de r\u00e9glage ont \u00e9t\u00e9 compar\u00e9s entre eux. Le mod\u00e8le \u00ab\u00a016c : Chauffage (pompe \u00e0 chaleur, sans puffer)\u00a0\u00bb avec toujours la m\u00eame logique de r\u00e9glage du d\u00e9bit a \u00e9t\u00e9 utilis\u00e9 pour la comparaison, voir le projet Polysun \u00ab\u00a0FlowratePluginControllerComparison.pse\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tableau: Temps de simulation et temps moyen d&rsquo;appel des r\u00e9glages pour diff\u00e9rents types de commandes plug-in Testsystem: Intel Core i7-6820HQ 2.7GHz, Windows 10 1607, Java 8, Matlab 2016a, pypy 5.4.1, Polysun 9.2 dev (r24000), plugins\/examples\/FlowratePluginControllerComparison.pse<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Type d&rsquo;appel<\/strong><\/td><td><strong>Dur\u00e9e de la simulation<\/strong><\/td><td><strong>\u00d8 Appel de contr\u00f4le<\/strong><strong><\/strong><\/td><\/tr><tr><td>FlowrateController<\/td><td>4 s<\/td><td>0 ms<\/td><\/tr><tr><td>Java FlowratePluginController<\/td><td>4 s<\/td><td>0 ms<\/td><\/tr><tr><td>MatlabPluginController<\/td><td>86 s<\/td><td>0.5 ms<\/td><\/tr><tr><td>JSON-RPC stream (Python)<\/td><td>14 s<\/td><td>0.06 ms<\/td><\/tr><tr><td>JSON-RPC (Python)<\/td><td>Arr\u00eat (68s)<\/td><td>0.4 ms<\/td><\/tr><tr><td>XML-RPC (Python)<\/td><td>228 s<\/td><td>1.5 ms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Comparaison des appels de contr\u00f4le \u00e0 travers diff\u00e9rents protocoles RPC (Remote Procedure Call) avec les diff\u00e9rents interpr\u00e9teurs Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tableau: Temps moyen d&rsquo;appel de r\u00e9glage pour diff\u00e9rents interpr\u00e9teurs Python et protocoles RPC Testsystem: Intel Core i7-4500U CPU 1.80GHz, openSuse 13.2 Linux, Java 8, Polysun 9.2 dev (r24000), plugins\/examples\/FlowratePluginControllerComparison.pse<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Python \/ RPC-Protocole<\/strong><\/td><td><strong>JSON-RPC stream<\/strong><\/td><td><strong>JSON-RPC<\/strong><\/td><td><strong>XML-RPC<\/strong><\/td><\/tr><tr><td>Type RPC<\/td><td>D\u00e9veloppement propre<\/td><td>Standard<\/td><td>Standard<\/td><\/tr><tr><td>Protocole de communication<\/td><td>TCP Socket<\/td><td>HTTP<\/td><td>HTTP<\/td><\/tr><tr><td>&nbsp;EineTCP-Connection pro<\/td><td>Simulation<\/td><td>Intervalle<\/td><td>Intervalle<\/td><\/tr><tr><td>PyPy 5.4.1<\/td><td>0.06 ms<\/td><td>0.5 ms<\/td><td>0.6 ms<\/td><\/tr><tr><td>Python 2.7<\/td><td>0.09 ms<\/td><td>0.7 ms<\/td><td>1.3 ms<\/td><\/tr><tr><td>Python 3.4<\/td><td>0.08 ms<\/td><td>0.9 ms<\/td><td>1.4 ms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">JSON-RPC provoque l&rsquo;erreur \u00ab\u00a0java.net.BindException : Address already in use : connect\u00a0\u00bb (PSA-4571) sur un syst\u00e8me rapide sous Windows lorsqu&rsquo;il est ex\u00e9cut\u00e9 localement. Utilisez plut\u00f4t le protocole \u00ab\u00a0JSON-RPC stream\u00a0\u00bb.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"D\u00e9veloppements-ult\u00e9rieurs-possibles\" style=\"font-size:30px\">D\u00e9veloppements ult\u00e9rieurs possibles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Actuellement, les Plugins de r\u00e9glage doivent \u00e9galement \u00eatre transmis en parall\u00e8le lors de la transmission de projets. Dans le futur, il sera peut-\u00eatre possible des enregistrer les Plugins dans des fichiers de projet Polysun .pse, comme c&rsquo;est d\u00e9j\u00e0 le cas pour les profils.<\/p>\n","protected":false},"author":19748,"featured_media":0,"parent":118412,"menu_order":27,"comment_status":"closed","ping_status":"closed","template":"","class_list":["post-118413","handbuch","type-handbuch","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.0 (Yoast SEO v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>R\u00e9glage Plugin - POLYSUN<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u00e9glage Plugin\" \/>\n<meta property=\"og:description\" content=\"Le r\u00e9glage Plugin est un r\u00e9glage qui peut \u00eatre \u00e9tendu par des extensions. Les...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/\" \/>\n<meta property=\"og:site_name\" content=\"POLYSUN\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/polysun.switzerland\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-23T09:46:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/reglage-plugin\\\/\",\"url\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/reglage-plugin\\\/\",\"name\":\"R\u00e9glage Plugin - POLYSUN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#website\"},\"datePublished\":\"2023-08-25T11:30:47+00:00\",\"dateModified\":\"2025-04-23T09:46:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/reglage-plugin\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/reglage-plugin\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/reglage-plugin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Polysun Designer\",\"item\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Fonctionnalit\u00e9s Premium\",\"item\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/handbuch\\\/polysun-designer\\\/fonctionnalites-premium\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"R\u00e9glage Plugin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/\",\"name\":\"POLYSUN\",\"description\":\"by Vela Solaris\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#organization\",\"name\":\"POLYSUN\",\"url\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.velasolaris.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/Polysun-Logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.velasolaris.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/Polysun-Logo.svg\",\"width\":1,\"height\":1,\"caption\":\"POLYSUN\"},\"image\":{\"@id\":\"https:\\\/\\\/www.velasolaris.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/polysun.switzerland\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/vela-solaris\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"R\u00e9glage Plugin - POLYSUN","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/","og_locale":"fr_FR","og_type":"article","og_title":"R\u00e9glage Plugin","og_description":"Le r\u00e9glage Plugin est un r\u00e9glage qui peut \u00eatre \u00e9tendu par des extensions. Les...","og_url":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/","og_site_name":"POLYSUN","article_publisher":"https:\/\/www.facebook.com\/polysun.switzerland\/","article_modified_time":"2025-04-23T09:46:20+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/","url":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/","name":"R\u00e9glage Plugin - POLYSUN","isPartOf":{"@id":"https:\/\/www.velasolaris.com\/fr\/#website"},"datePublished":"2023-08-25T11:30:47+00:00","dateModified":"2025-04-23T09:46:20+00:00","breadcrumb":{"@id":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/reglage-plugin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.velasolaris.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Polysun Designer","item":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/"},{"@type":"ListItem","position":3,"name":"Fonctionnalit\u00e9s Premium","item":"https:\/\/www.velasolaris.com\/fr\/handbuch\/polysun-designer\/fonctionnalites-premium\/"},{"@type":"ListItem","position":4,"name":"R\u00e9glage Plugin"}]},{"@type":"WebSite","@id":"https:\/\/www.velasolaris.com\/fr\/#website","url":"https:\/\/www.velasolaris.com\/fr\/","name":"POLYSUN","description":"by Vela Solaris","publisher":{"@id":"https:\/\/www.velasolaris.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.velasolaris.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.velasolaris.com\/fr\/#organization","name":"POLYSUN","url":"https:\/\/www.velasolaris.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.velasolaris.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.velasolaris.com\/wp-content\/uploads\/2020\/07\/Polysun-Logo.svg","contentUrl":"https:\/\/www.velasolaris.com\/wp-content\/uploads\/2020\/07\/Polysun-Logo.svg","width":1,"height":1,"caption":"POLYSUN"},"image":{"@id":"https:\/\/www.velasolaris.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/polysun.switzerland\/","https:\/\/www.linkedin.com\/company\/vela-solaris\/"]}]}},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/handbuch\/118413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/handbuch"}],"about":[{"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/types\/handbuch"}],"author":[{"embeddable":true,"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/users\/19748"}],"replies":[{"embeddable":true,"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/comments?post=118413"}],"version-history":[{"count":1,"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/handbuch\/118413\/revisions"}],"predecessor-version":[{"id":130980,"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/handbuch\/118413\/revisions\/130980"}],"up":[{"embeddable":true,"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/handbuch\/118412"}],"wp:attachment":[{"href":"https:\/\/www.velasolaris.com\/fr\/wp-json\/wp\/v2\/media?parent=118413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}