Bonjour à tous !
Voici mon projet que je développe depuis quelques mois. N’hésitez pas à me faire part de vos critiques et idées. Les questions sont aussi les bienvenues.
Sur mon webdav, vous trouverez la totalité de mon projet. Il se nomme CIBUS. Il sera mis à jour au fur et à mesure de l’avancement des travaux.
Le but, à titre expérimental, est de pouvoir piloter toute la fabrication et la distribution d’aliments pour animaux sur l’exploitation agricole de mon beau-frère.
L’interface avec les machines se fera dans un premier temps par le port imprimante du PC. J’utiliserai la DLL inpout32.dll disponible sur le site
http://panoramic-language.pagesperso-orange.fr/French/index.htmlJ’ai créé une interface avec 16 sorties et 16 entrées. Le prototype est fonctionnel. Reste à le fabriquer au propre.
Les entrées et sorties (TTL pour les initiés) sont réparties en 4 ports de 8 bits.
J’ai fabriqué également une carte de contrôle qui me permet de visualiser et simuler les commandes des différentes machines :
- 8 x arrivées de produits dans une grande soupière ;
- 1 x broyeur pour transformer certains aliments en farine ;
- 1 x brasseur pour mélanger la soupe ;
- 1 x vanne « départ » pour distribuer la soupe ;
- 1 x pompe pour pousser la soupe dans 4 circuits ;
- 4 x vannes de « retour » ;
- 255 vannes de distribution de la soupe dans les auges (limité à 60 pour l’instant) ;
La soupière de 4000 litres est montée sur 3 jauges de contrainte qui permet de mesurer la masse. L'électronique fournie avec les jauges de contrainte donne en sortie un mot de 12 bit pour la masse mesurée.
La partie logicielle est en cours de développement. J’ai longuement cherché quelle ergonomie adopter. Finalement, j’ai choisi de n’utiliser qu’une seule et unique FORM sur laquelle je crée et détruis les objets en fonction des besoins. Pour faire fonctionner le programme vous aurez besoin de (dans mon WEBDAV) :
- Inpout32.dll
- Rouage.bmp
- Coche.bmp
- Cibus.bas
Au démarrage du programme, j’affiche un écran d’initialisation :
Il n’apparaît qu'au démarrage du programme.
Il permet de vérifier la date et l'heure du système => à modifier directement dans l'OS en cas d'inexactitude.
Suite à un incident, en cas de démarrage sur une sauvegarde ancienne (30 jours maxi), on peut ajuster l'age des animaux pour
rétablir un calcul correct des rations alimentaires.
Une champ RESET permet d'effacer totalement les données. Il est légèrement sécurisé pour éviter un RESET accidentel. Le code à saisir est "1234".
Les données sont sauvegardées à chaque changement de menu. Le fichier de sauvegarde est "CIBUS.CIB"
Sont sauvegardées toutes les données saisies. Certaines données seront incrémentées automatiquement à minuit : ages des animaux et calculs des rations alimentaires.
Un clic sur le bouton START permet d'accéder au menu principal :
Il se compose de 7 boutons latéraux qui donnent accès aux sous-menus.
Le programme est prévu pour fonctionner 24h/24 toute l'année sur le menu AUTO.
1er sous-menu : PRODUITS
« Produits » c’est l’entrée et sortie des matières premières qui permettent de réaliser la soupe.
La colonne 1 -
Nom Produit - permet de saisir les ingrédients pour la soupe. Le produit 0 est réservé à l’eau. Il ne doit pas être modifié. En effet, c’est l’eau qui doit arriver en premier dans la soupière (dans laquelle tourne un brasseur) avant tous les autres produits. Les autres noms de produits peuvent être modifiés à souhait. Par exemple : Blé, Maïs, Pois, Sérum, Orge … Ils peuvent être sous la forme liquide, farine ou en grains.
Les aliments liquides ou en farine tomberont directement dans la soupière. Ceux en grains passeront dans un broyeur - mû par un moteur de 10CV - pour les réduire en farine avant d’arriver dans la soupière.
La colonne 2 –
Date d’entrée – n’est pas modifiable. C’est la date système au moment de la saisie et la validation (enter) d’une quantité entrée.
La colonne 3 –
Quantité entrée – juste pour une gestion de stock des produits. Sans aucun lien avec le fonctionnement du programme.
La colonne 4 –
Prix au kilo – Permet le calcul du prix de reviens des menus confectionnés.
Les colonnes 5 et 6 – Date de sortie / quantité sortie – Idem colonne 2 et 3.
La colonne 7 –
Stock – Résultante des saisies des colonnes 3 et 6. Juste pour une gestion de stock des produits. Sans aucun lien avec le fonctionnement du programme.
La colonne 8 –
M.S. par Kg – Quantité de Matière Sèche par kilo de produit. Important pour les calculs des rations alimentaires : seule la matière sèche apporte de l’énergie digestive. L’eau contenue dans les aliments n’a pas d’énergie digestive.
La colonne 9 –
Chute – C’est la quantité de produit en kilo qui tombe encore dans la soupière alors que la vanne d’arrêt dudit produit a été fermée. Autrement dit, c’est la quantité contenue dans les tuyaux entre la vanne d’arrêt et la soupière.
La colonne 10 -
Broy – C’est un indicateur oui / non pour savoir s’il faut mettre en route le broyeur en fonction du type de produit.
==> Toutes ces données sont mises en mémoire sur le disque (fichier CIBUS.CIB) dès que l’on change de sous-menu.
2ème sous-menu : MENUS
« Menus » c’est la conception de la soupe. Six menus différents sont possibles.
Ils sont sélectionnés par les boutons MENU 1 , MENU 2, MENU 3 …
On peut donner à chaque menu un nom (par exemple MENU 1 : Croissance ; MENU 2 : Finition)
Chaque menu est composé de plusieurs ingrédients (produits). Tous ces ingrédients sont incorporés dans la soupière, sous forme d’un pourcentage (colonne "TX à 86%"), calculés avec un taux de 86% de matière sèche.
L’ensemble des ingrédients doit faire 100%. Par exemple 10% de blé + 30% de maïs + 70% d’orge = 100% du menu. Tant que l’on n’a pas 100%, on ne peut pas sortir de la composition du menu.
Le taux de dilution permet de calculer la quantité d’eau à ajouter pour obtenir une soupe ni trop épaisse, ni trop liquide. Il est donc très important de renseigner dans le sous-menu « PRODUITS » la quantité réelle de matière sèche de chaque ingrédient.
Quatre heures de distribution dans une journée peuvent être programmées. Ceci pour chaque menu.
Si deux menus doivent s’enchaîner, il faut alors leurs donner la même heure de distribution.
Dans la colonne gr/kg, l’ordinateur calcul automatiquement, en fonction du pourcentage de chaque produit, en fonction de la quantité de matière sèche de chaque ingrédient et en fonction du taux de dilution que l’on désire, la quantité réelle de chaque produit en gramme pour fabriquer un kilo de soupe.
La quantité de soupe à fabriquer est calculée en fonction des 2 prochains sous-menus : COURBE (pour Courbe de croissance) et Animaux (pour Inventaire et rations animaux)
Dernière colonne : en cours de développement.
==> Toutes ces données sont mises en mémoire sur le disque (fichier CIBUS.CIB) dès que l’on change de sous-menu.
3ème sous-menu : COURBES
« Courbes » sont les courbes de croissance des animaux en fonction de leur âge et de leur sexe.
Elles permettent de calculer les rations alimentaires et donc la quantité de soupe à fabriquer pour chaque menu.
Il y a 2 courbes de croissances : mâles et femelles.
Limité à 30 semaines d’âge.
Les quatre boutons à droite du sous-menu permettent de choisir la courbe et la tranche d’âge.
Pour chaque tranche d’âge (au pas de 7 jours) on définit le poids théorique de l’animal, la ration alimentaire ou l’énergie digestive et le menu attribué. Tout est interactif en temps réel sauf le poids théorique qui est juste indicatif.
==> Toutes ces données sont mises en mémoire sur le disque (fichier CIBUS.CIB) dès que l’on change de sous-menu.
4ème sous-menu : ANIMAUX
« Animaux » permet d’inventorier les animaux par case. Chaque case reçoit des animaux de même âge et de même sexe. 30 cases sont disponibles (extensible à 254). Chaque case est desservie par une auge (mangeoire).
Pour le calcul de la quantité de soupe à servir par case, il est donc important que chaque case soit occupée par des animaux de même sexe et du même âge. Le nombre d’animaux entre aussi dans le calcul des rations alimentaires par auge.
Explication des champs :
Auge : numéro fixe d’ordre des auges
Sex : sélection mâle ou femelle
Nb A : Nombre d’animaux présents dans la case
Jour : âge des animaux en jours
Sem : calcul automatique de l’âge en semaine des animaux
N° M : numéro du menu affecté automatiquement en fonction des courbes de croissance (sous-menu 3)
Ration : en principe à 100%. Possibilité de réduire ou d’augmenter les rations en cas de nécessité.
Durée : durée en jours avant que la ration ne retrouve sa base de 100%
Nb rep : nombre de repas par jour, calculé automatiquement en fonction des courbes de croissance et des menus confectionnés. (Définis aux sous-menus 2 et 3).
Kg soupe : quantité de soupe à préparer, calculé en fonction de tous les autres paramètres précédemment entrés.
==> Toutes ces données sont mises en mémoire sur le disque (fichier CIBUS.CIB) dès que l’on change de sous-menu.
5ème sous-menu : AUTO
« Auto » C’est le mode automatique qui est prévu pour fonctionner à longueur d’année.
Le programme attend patiemment, tel un réveil, que les heures de préparation et distribution arrivent. Une zone « historique journalier » permettra de suivre les évènements écoulés durant la journée (bon ou non fonctionnement de chaque étape).
A suivre ...
Bonne programmation à tous.
Marc