Mise en oeuvre du régulateur de charge PHOCOS

Le régulateur de charge PHOCOS

Le régulateur de charge protège les batteries contre les risques de surcharge et les décharges au-dessous du seuil minimum (décharge profonde). Il est en liaison avec les panneaux photovoltaïques, les batteries et les sorties.

Le régulateur protège donc la batterie de toute surcharge du champ solaire et de décharges trop importantes dues à la surconsommation des charges de sortie.

Le modèle utilisé ici : PHOCOS-CX20 (pour kits solaires de 80Wc à 720Wc 12V/24V)

Il est possible de définir le type de batteries (au plomb à liquide électrolyte ou VRLA de type GEL ou AGM) à contrôler et la fonction “coupure charge faible” en sélectionnant un mode parmi ceux proposés. Le contrôleur dispose de cinq modes destinés à éviter que la batterie ne se décharge complètement (voir document constructeur).

On pourra aussi activer ou désactiver :

  • le verrouillage de la programmation
  • le verrouillage du signal sonore (buzzer) de niveau de charge de la batterie
  • la charge de sortie raccordée à son installation (mode jour/nuit).

Le régulateur fournit notamment :

  • régulateur de charge » :
  • la tension en Volts
  • le niveau de charge en %
  • la fin de tension de charge en Volts
  • le surplus d’énergie en %
  • les courants photovoltaïque et charge en Ampères
  • le niveau de charge le matin et le soir en %
  • les consommations (panneaux, charge) et excédant en Ampères/h
  • le type de batteries, le mode de charge, le nombre de semaines sans charge complète des batteries et la température

Il se raccorde au PC via une liaison USB qui sera gérée comme un port série virtuel.

Prise en charge sous Raspberry Pi

Brancher le CXCOM Phocos sur un port USB de la raspberry

Vérifier la détection du périphérique :

$ dmesg
...
usb 1-1.2: new full-speed USB device number 4 using dwc_otg
usb 1-1.2: New USB device found, idVendor=0403, idProduct=d360
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: Phocos CX-I  V1.0
usb 1-1.2: Manufacturer: Phocos
usb 1-1.2: SerialNumber: PHQUVUV4

$ lsusb
...
Bus 004 Device 003: ID 0403:d360 Future Technology Devices International, Ltd

Charger les modules (driver) de gestion de ce périphérique :

$ sudo modprobe usbserial
$ sudo modprobe ftdi_sio vendor=0x0403 product=0xd360

Modifier les droits d’accès manuellement au fichier device :

$ sudo chmod 666 /dev/ttyUSB0

Pour obtenir une modification permanente et automatique, éditer le fichier :

$ sudo vim /etc/udev/rules.d/51.ttyusb.rules
# adaptateur Phocos CX-I USB
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="d360", MODE="0666", NAME="ttyUSB0", SYMLINK+="phocos"

$ sudo vim /etc/modules
...
usbserial
ftdi_sio

$ sudo vim /etc/modprobe.d/phocos.conf
options ftdi_sio vendor=0x0403 product=0xd360

Sauvegarder et quitter vim avec :wq

Protocole de communication

Technical_Desciption_CX_CXN_2.pdf

Le protocole est basée sur un système de requête-réponse. Le logiciel interroge le PHOCOS en envoyant les requêtes de commande :

  • la valeur 0x20 (le caractère espace en ASCII) : la réponse de 64 octets contient les informations de base contenues dans le PHOCOS
  • la valeur 0x21 (le caractère ‘!’ en ASCII) : la réponse de 769 octets contient la journalisation des données réalisée par le PHOCOS

Exemple de trame reçue pour la commande 0x20 :

Transfert:03/04/2013 15:03:00.60664 (+0.0000 seconds)

 20                                                                

Réponse:03/04/2013 15:03:00.68464 (+0.0781 seconds)

 20 30 36 34 20 30 31 34 20 30 30 33 20 31 30 39    064 014 003 109
 20 31 36 39 20 30 39 37 20 30 30 30 20 30 30 30    169 097 000 000
 20 32 35 35 20 30 30 30 20 31 33 34 20 30 30 35    255 000 134 005
 20 2B 30 30 33 20 2B 30 30 33 20 30 30 30 20       +003 +003 000  

Exemple de trame reçue pour la commande 0x21 :

Transfert:03/04/2013 15:02:55.60664

 21                                                !               

Réponse:03/04/2013 15:03:00.60664 (+5.0000 seconds)

 21 45 31 20 30 32 20 31 41 20 45 36 20 30 30 20   !E1 02 1A E6 00 
 30 30 20 46 41 20 39 30 20 46 46 20 46 46 20 30   00 FA 90 FF FF 0
 32 20 30 32 20 30 32 20 36 38 20 36 45 20 46 46   2 02 02 68 6E FF
 20 46 46 20 46 46 20 46 46 20 34 30 20 30 30 20    FF FF FF 40 00 
 30 30 20 30 31 20 30 30 20 30 30 20 34 38 20 30   00 01 00 00 48 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 38 20 36 39 20 36 38 20 30 30 20    00 08 69 68 00 
 30 30 20 30 30 20 30 30 20 30 30 20 37 37 20 30   00 00 00 00 77 0
 30 20 37 31 20 37 31 20 30 30 20 30 30 20 30 30   0 71 71 00 00 00
 20 30 30 20 30 30 20 42 42 20 30 30 20 36 45 20    00 00 BB 00 6E 
 36 44 20 30 30 20 30 30 20 30 30 20 30 30 20 30   6D 00 00 00 00 0
 30 20 39 41 20 30 30 20 36 44 20 36 43 20 30 30   0 9A 00 6D 6C 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 39 39 20    00 00 00 00 99 
 30 30 20 36 44 20 36 43 20 30 30 20 30 30 20 30   00 6D 6C 00 00 0
 30 20 30 30 20 30 30 20 39 39 20 30 30 20 36 43   0 00 00 99 00 6C
 20 36 41 20 30 30 20 30 30 20 30 30 20 30 30 20    6A 00 00 00 00 
 30 30 20 38 38 20 30 30 20 36 41 20 36 39 20 30   00 88 00 6A 69 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 37 37   0 00 00 00 00 77
 20 30 30 20 36 44 20 36 43 20 30 30 20 30 30 20    00 6D 6C 00 00 
 30 30 20 30 30 20 30 30 20 39 39 20 30 30 20 30   00 00 00 99 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20    00 00 00 00 00 
 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30   00 00 00 00 00 0
 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30   0 00 00 00 00 00
 20 30 30 20 46 46 20 46 46 20 46 46 20 46 46 20    00* FF FF FF FF 
 46 46 20 46 46 20 46 46 20 46 46 20 46 46 20 46   FF FF FF FF FF F
 46 20 46 46 20 46 46 20 46 46 20 46 46 20 46 46   F FF FF FF FF FF
 20                                                                

Exemple

Lire la mise en oeuvre d’un port série sous Qt [PDF].

Code source : test-mo-phocos.zip

Retour au sommaire