Bonjour,Je reste dans l'attente d'un message de MGU
Bonjour,Hello MGU,
Il n'y a rien de bien compliqué, il faut juste récupérer les infos dans la trame émise par le Linky (ou même les anciens compteurs électroniques, mais normalement il n'y en a plus).
Pour ce qui est d'un organigramme, OK, je vais m'y mettre (d'ici 1 ou 2 semaines)
Bonjour,En ce qui concerne l'organigramme promis, je l'ai commencé, j'espère le finir d'ici qq jours (ce sera dessiné "main", car pas de logiciel ad'hoc). Toutes mes excuses à MGU pour le délai.
Comme promis, en pièce jointe l'organigramme (pas très joli, mais fait main). Je n'ai pas fait les organigrammes des S/P qui restes simples à suivre et assez commentés me semble-t-il. Du coup, oui, il semble qu'il y a bien des simplifications à faire ...
Je reste à dispo.
PS: aucun message de l'initiateur de ce post depuis le début de mon projet, il n'est plus intéressé ???
Bonjour Jarrige,Bonjour, je reviens sur ce sujet avec mon programme légèrement modifié ... J'ai rajouté quelques lignes afin d'émettre quelques valeurs "clés" calculées ou reçues de la TIC sur la ligne série, ceci à des fins de contrôle, suivi, mise au point. Pour ceci j'ai dû un peu modifier le schéma d'origine (rajouté une 22k en provisoire sur le cuivre pour l'instant). J'ai réalisé ça car j'ai une demande d'une autre réalisation pour un ami. Ce rajout permet donc aussi téléchargement de programme. Je le passe en PJ. Et je reste dans l'attente des nouvelles de MGU (rien depuis début Août ??)
Bonjour,Salut MGU,
Pour "l'esthétique" du programme, je reste en attente de tes modifs, et oui, attention ... C'est vrai que ça fonctionne bien comme ça depuis maintenant environ 8 mois. Je confirme que je peux valider toute nouvelles modifs sur mon montage, d'autant que maintenant avec la com, c'est facile de reprogrammer le PICAXE in-situ.
Oui, il y a des tests avec sauts dans les S/P, donc des GOTO, et à la fin un RETURN ... Je suppose que tu veux parler des S/P "aug" et "dim"
Je ne vois pas pourquoi il y aurait un problème de pile du processeur... La pile sert lors du GOSUB pour stoker l'adresse de retour, pas en cas de saut à ma connaissance !!. Mais je reste à l'écoute d'autre(s) idée(s) pour faire la même chose sans GOTO (A un moment, j'ai essayé de voir avec SELECT CASE, sans rien de concluant avec la suite des tests à faire sur les 2 variables).
Un LCD, peut-être, ce LCD se pilote en I2C (jamais utilisé), mais il y a une visualisation du niveau de commande du CE, ce qui me semble suffisant pour "l'utilisateur".
L'émission des valeurs précitées sur la com est juste pour faire des vérifs de l'évolution des variables en fonctionnement. Il suffit de brancher le jack de l'AXE27 et de démarrer le terminal dans PE6 et ça ne coûte absolument rien de plus.
Je vais modifier mon routage sous TCI pour ajouter la 22k et une prise jack.
Pour un autre routage et des CI "pros", il faudrait que d'autres personnes soient intéressées .
Comme beaucoup de particuliers se sont lancés dans le PV et en auto-conso, c'est d'ailleurs assez étonnant de n'avoir aucun "bricoleur" qui n'ait envie de construire ce dispositif ...
A+
#picaxe 14M2;
symbol Amp=b4; valeur courant (apres calcul) TIC,on utilise b2 et b3 pour la reception, b4 non utilise
symbol Papp=b9; indicateur puissance apparente (apres calcul) TIC, on utilise b5,b6,b7,b8 pour la reception
symbol cumul=w7; mot 16 bits cumul pour calcul energie
symbol boucles=b17; mot 8 bits nb boucles cumul energie;
symbol charge=b18; consigne niveau de charge par potentiometre
symbol puiss=w10;pour calcul puissance injectee
symbol pce=w13;valeur puissance chauffe-eau dans mot 16 bits (octets b0 et b1)
symbol infonuit=pinC.1 ;; test entree jour/nuit sur C.1
symbol creneau=pinC.2 ; test entree creneau horaire sur C.2 : contact ouvert >>entree etat bas = chauffe
high B.1; LED jaune eteinte
high B.3; LED rouge eteinte
energie: ;
; Emission valeur energie atteinte (en 1/100 heure equivalent pleine puissance)
; On emploie le mot puiss et les octets b5, b6, b7 utilises pour la reception TIC
; pour la conversion afin de mettre une virgule entre les digits ;
puiss = boucles
puiss = puiss*100/51; mise a l'echelle (boucles = 51 pour 1H pleine puissance)
BINTOascii puiss,b5,b6,b7
sertxd ("Temps chauffe equivalent pleine puissance = ",b5,",",b6,b7," H",$0A,$0D) ;
if pce>=100 then
; on ne fait rien si pce<100, la conduction du gradateur est negligeable
puiss=PCE: puiss=puiss/10; mise a l'echelle
puiss=puiss*puiss; mise au carre
puiss=puiss/10; mise a l'echelle
cumul=cumul+puiss
if cumul >= 32670 then ;
boucles=boucles+1
cumul=0
endif
endif
return
Dim:
if Amp>=7 and PCE>=400 then
PCE=PCE-400
elseif Amp>=6 and PCE>=200 then
PCE=PCE-200
elseif Amp>=5 and PCE >=100 then
PCE=PCE-100
elseif Amp>=4 and PCE>=50 then
PCE=PCE-50
elseif Amp>=3 and PCE>=30 then
PCE=PCE-30
elseif PCE>=5 then
PCE=PCE-5
endif
return
aug:
if Amp >= 7 and PCE < 800 then
PCE=PCE + 100
elseif Amp >= 6 and PCE <850 then
PCE =PCE+ 50
elseif Amp>=5 and PCE< 860 then
PCE =PCE + 40
elseif Amp >=4 and PCE < 870 then
PCE =PCE +30
elseif Amp>=3 and PCE <890 then
PCE=PCE+10
elseif PCE < 900 then
PCE=PCE+5
endif
return
#picaxe 14M2
#no_data
symbol rang=b1
symbol Amp=b4; valeur courant (apres calcul) TIC,on utilise b2 et b3 pour la reception, b4 non utilise
symbol Papp=b9; indicateur puissance apparente (apres calcul) TIC, on utilise b5,b6,b7,b8 pour la reception
symbol boucles=b17; mot 8 bits nb boucles cumul energie;
symbol charge=b18; consigne niveau de charge par potentiometre
symbol cumul=w11; mot 16 bits cumul pour calcul energie
symbol puiss=w12;pour calcul puissance injectee
symbol pce=w13;valeur puissance chauffe-eau dans mot 16 bits (octets b0 et b1)
symbol infonuit=pinC.1 ;; test entree jour/nuit sur C.1
symbol creneau=pinC.2 ; test entree creneau horaire sur C.2 : contact ouvert >>entree etat bas = chauffe
high B.1; LED jaune eteinte
high B.3; LED rouge eteinte
init:
PWMOUT B.2,OFF;sortie pwm a l'arret
cumul=0 :boucles=0:pce=0
sertxd ("Version programme :2_3_outdata mod4",$0A,$0D)
jour:
do
if Infonuit = 0 then nuit ; test entree jour/nuit sur C.1
; test entree creneau horaire sur C.2 : contact ouvert >>entree etat bas = chauffe
if creneau = 0 then demchauff; dans creneau chauffage
pwmout B.2,OFF;arret chauffe
low B.1: low B.3; pour cligno des 2 led
pause 500
high B.1:High B.3
pause 500
pce=0; pour reprise ulterieure dans prochain creneau horaire valide
loop
;
demchauff:
SERIN [3000,norecep],C.0,T1200,($C9,$C9,$4E,$53,$D4,$A0),b2,b3,Amp;reception de la valeur
;intensite instantanee avec "qualifier" correspondant a l'etiquette IINST et space en
;tenant compte de la parite paire de la TIC.
;I en amperes, recue sur 3 caracteres en ascii unite en b4, dizaines en b3 (b2= centaines inutilisee)
;
high B.1; reset LED erreur com
low B.3; LED reception OK on
;
; on masque les 1/2 octets de poids fort >>> on ne garde que la valeur 0-9 en bin de chaque octet
b4=b4 and %00001111 ;
b3=b3 and %00001111 ;
b3= b3*10; b3 contient les dizaines ;<=> Amp=10*b3+Amp (à vérifier..)
Amp=Amp+b3; Amp contient la valeur globale intensite ;
sertxd ("Intensite lue TIC = ",#Amp," A ",$0A,$0D); emission intensite lue en provenance de la TIC
;
SERIN [3000,norecep],C.0,T1200,($50,$41,$50,$50,$A0),b5,b6,b7,b8,Papp; reception de la valeur
;de P apparente avec "qualifier" correspondant a l'etiquette "PAPP" et "space" et tenant compte
;de la parite paire de la TIC.
;P apparente en VA,recue sur 5 caract.si P=0 tous les caracteres sont a 0 ascii >>> en injection
;
high B.3; LED reception OK off (pour cligno ...)
;
; on masque les 1/2 octets de poids fort >>> on ne garde que la valeur 0-9 en bin de chaque octet
b5=b5 and %00001111
b6=b6 and %00001111
b7=b7 and %00001111
b8=b8 and %00001111
Papp= Papp and %00001111
Papp=Papp+b8+b7+b6+b5; somme de toutes les valeurs
if Papp<>0 then
rang=0
elseif Amp>=3 then
rang=1
elseif Amp<2 then
rang=2
endif
on rang gosub dim,aug,Diminj ;retour après le on gosub
; intensite dispo =2A, on ne change pas la puissance
PWMOUT PWMDIV4,B.2,249,pce; ecriture puissance
; emission valeur % puissance CE
puiss=pce:puiss=puiss/9; mise a l'echelle
sertxd ("Niveau commande chauffe eau = ",#puiss,"%",$0A,$0D) ;
gosub energie; calcul energie
readadc B.5,charge; lecture consigne charge
if boucles >= charge then goto finchauff; on est arrive a la consigne de chauffe
;
goto jour; nouvelle boucle
;____________________________________________________________________________
;Fin de chauffe en journee, on attend le passage nuit, puis le retour en jour
;pour nouveau cycle
;____________________________________________________________________________
finchauff:
pwmout B.2,OFF;sortie pwm a l'arret
low B.3; LED reception OK en permanent indique fin de chauffe;
do ; attente passage en nuit
pause 1000
loop while infonuit=1
do
pause 1000
loop while infonuit=0 ;attente passage en jour
high B.3
goto init
;____________________________________
;Chauffe et/ou fin de chauffe en nuit
;____________________________________
nuit: ;
do
if infonuit=1 then jour ; entree en mode jour
; test de l'entree nuit (cas de coupure de tension et d'init calybox en jour)
readadc B.5,charge; lecture consigne charge
IF boucles>= charge then goto finnuit; test energie totale envoyee(en journee et ou nuit en cours)
pause 900; pause totale env. 1,85s pour sp calcul energie, equivalent a une boucle TIC en journee
low B.1; cligno led rouge,indique chauffe nuit en cours
pause 900
high B.1
pce=900; puissance chauffe au maxi
PWMOUT PWMDIV4,B.2,249,pce
gosub energie; calcul energie
loop
finnuit:
PWMOUT B.2,OFF; pwm a l'arret
low B.3; LED jaune "reception OK" on permanent indique fin de chauffe
high B.3
do
pause 1000
loop while infonuit=0
goto init
;
;______________________________________________________________________________
; S/P augmentation de puissance en fonction de I dispo et du niveau en cours
; La variable Amp contient la derniere valeur de courant lue depuis la TIC
; A la sortie,la variable PCE contient la valeur puissance pour le PWM
;______________________________________________________________________________
Aug:
if amp >= 7 and pce < 800 then
pce=pce + 100
elseif amp >= 6 and pce <850 then
pce =pce+ 50
elseif amp>=5 and pce< 860 then
pce =pce + 40
elseif amp >=4 and pce < 870 then
pce =pce +30
elseif amp>=3 and pce <890 then
pce=pce+10
elseif pce < 900 then
pce=pce+5
endif
return
;;
;______________________________________________________________________________________
;S/P diminution de puissance en fonction du niveau de I en cours en injection (0 ou 1A)
; La variable Amp contient la derniere valeur de courant lue depuis la TIC
;______________________________________________________________________________________
;
diminj:
if amp=0 and pce >= 20 then
pce=pce-20
elseif amp> 0 and pce >= 10 then
pce=pce-10
elseif amp > 0 and pce >= 5 then
pce=pce-5
elseif amp > 0 then
pce=0
endif
return
;;___________________________________________________________________________________
; S/P diminution de puissance en fonction de I soutiree (P apparente non nulle)et/ou
; du niveau en cours
; La variable Amp contient la derniere valeur de courant lue depuis la TIC
; A la sortie,la variable PCE contient la valeur puissance pour le PWM
;___________________________________________________________________________________
Dim:
if amp>=7 and pce>=400 then
pce=pce-400
elseif amp>=6 and pce>=200 then
pce=pce-200
elseif amp>=5 and pce >=100 then
pce=pce-100
elseif amp>=4 and pce>=50 then
pce=pce-50
elseif amp>=3 and pce>=30 then
pce=pce-30
elseif pce>=5 then
pce=pce-5
endif
return
;;__________________________________________________________________________________________________
;S/P cumul pour calcul energie
;
;Evaluation puissance injectee dans le CE : PCE est la valeur de commande du gradateur via le PWM et
;en consequence une image approximative de la valeur de la tension appliquee au CE
;Pour PCE = 100 a 900, le calcul de puissance donne = 10 a 810
;__________________________________________________________________________________________________
energie: ;
; Emission valeur energie atteinte (en 1/100 heure equivalent pleine puissance)
; On emploie le mot puiss et les octets b5, b6, b7 utilises pour la reception TIC
; pour la conversion afin de mettre une virgule entre les digits ;
puiss = boucles
puiss = puiss*100/51; mise a l'echelle (boucles = 51 pour 1H pleine puissance)
BINTOascii puiss,b5,b6,b7
sertxd ("Temps chauffe equivalent pleine puissance = ",b5,",",b6,b7," H",$0A,$0D) ;
if pce>=100 then
; on ne fait rien si pce<100, la conduction du gradateur est negligeable
puiss=pce: puiss=puiss/10; mise a l'echelle
puiss=puiss*puiss; mise au carre
puiss=puiss/10; mise a l'echelle
cumul=cumul+puiss
if cumul >= 32670 then ;
boucles=boucles+1
cumul=0
endif
endif
return
;;
norecep:
sertxd ("Erreur communication avec Linky",$0A,$0D)
low B.1; allumage voyant erreur pas de reception
PWMOUT B.2,OFF;arret ou confirmation arret pwm
goto jour
end
if Papp<>0 then rang=0 elseif Amp>=3 then rang=1 elseif Amp<2 then rang=2 else rang=3 ; intensite dispo =2A, on ne change pas la puissance endif on rang gosub dim,aug,Diminj PWMOUT PWMDIV4,B.2,249,pce; ecriture puissanceBonjour,Bonjour,
Je reviens sur ce sujet avec un nouveau programme (en PJ).
Les principales évolutions (voir les commentaires détaillés dans le programme) :
- Pilotage en fonction des informations issues de la trame TIC, y compris les périodes tarifaires (entrée HP/HC plus utilisée)
- Décalage des périodes de chauffe en HC "inversement proportionnel" au temps de chauffe paramétré (environ mini 1h et maxi 3h)
- Gestion de la puissance envoyée au CE en mode HC à partir de l'info puissance souscrite au contrat (délestage avant coupure).
Je reste à dispo ...
Bonsoir et merci, je verrai ce que je peux faireSalut MGU,
Pas de problème, si quelqu'un a des questions, ce sera avec plaisir.
Je précise que je n'ai pas de compétences particulières en PPV, il n'y en a pas besoin. Il s'agit juste d'exploiter les infos disponibles du compteur et d'avoir un moyen de piloter l'énergie envoyée dans le CE.
Mes principales "difficultés" ont été la com et le décorticage des infos avec le Linky, étant donné le matériel dont je dispose et mes début avec ce microcontrôleur PICAXE et son Basic. Aussi d'obtenir une bonne réduction des interférences générées par le gradateur en angle de phase.
Si tu veux mettre ce projet sur ton site, tu as bien sûr mon plein accord ... si ça peut servir !! D'ailleurs, comme déjà évoqué, je trouve étonnant que personne ne semble s'intéresser à cette réalisation ??
Pour info, je suis en train d'en faire un autre exemplaire pour une connaissance.