Écriture de règles de remplacement des lots personnalisées

L'ordonnanceur utilise les règles de remplacement dans l'écran Fabrications groupées pour déterminer si des lots en cours de création doivent être lancés, même s'ils n'ont pas encore atteint la quantité minimum nécessaire au lancement.
Remarque :  Pour consulter un récapitulatif de la procédure de création des règles personnalisées, reportez-vous à la rubrique Ecriture de règles d'ordonnancement personnalisées. Pour obtenir plus de détails sur les fonctions décrites dans cette rubrique, reportez-vous au Guide de personnalisation de l'ordonnancement (Scheduling Customization Guide) qui peut être téléchargé sur notre site Web d'assistance technique.

Logique des règles de lancement forcé

Avant de créer des règles de lancement forcé de lot personnalisées et d'écrire les fonctions de lancement forcé de lot correspondantes, vous devez comprendre la logique utilisée par la fonction de lancement forcé. Cette règle est utilisée dans deux circonstances :

  • Lorsque les contrôles pour lancement forcé sont activés et qu'un OF est ajouté à un lot en cours de création, mais que ce lot n'atteint ou ne dépasse pas la quantité minimum nécessaire pour le lancement.
  • Lors d'un contrôle pour lancement forcé périodique, qui est effectué à une fréquence déterminée au niveau de la fabrication groupée, si un tel contrôle est activé.

Lorsque la fonction de lancement forcé de lot est appelée, celle-ci détermine si le lot en cours de création doit être lancé ou non.

Nom de la fonction

Votre fonction de lancement forcé personnalisée peut porter n'importe quel nom qui n'est pas un nom de fonction standard exécutable par l'utilisateur.

Arguments


#include "factor.h"
int borl(formbat, batch)
FORMBAT *formbat;    /* pointer to the forming batch */
BATCHDEF *batch;     /* pointer to the batch definition */

La fonction de lancement forcé accepte deux arguments, un pointeur vers le lot en cours de création (Type : FORMBAT *) et un pointeur vers le lot (Type : BATCHDEF *).

Valeur de retour

La fonction retourne TRUE (valeur non nulle) si le lot en cours de création doit être lancé ou FALSE (valeur nulle) s'il ne doit pas être lancé (Type :int).

Voici ci-dessous un exemple de fonction de lancement forcé de lot basé sur une durée supérieure ou égale au seuil de lancement forcé :


int borl (FORMBAT *formbat, BATCHDEF *batch)
/*-----------------------------------------------------------------
     Batch override rule which determines that the forming batch should
     be released if it has been waiting longer or equal to the override
     threshold.
     ARGS:
       formbat - pointer to the arriving forming batch
       batch - pointer to the batch that this load will follow
     RETURNS: true, if it has been waiting too long
              false, otherwise
-----------------------------------------------------------------*/
{
     double x;
     x = cstnow - formbat->fbsttim;
     /* If the time the batch has been forming is at least the
        threshold, then release the batch */
     if (x >= batch->btovth)
     {
         return(1)
     }
     else
     {
         return(0)
     }
{

Installation de la fonction personnalisée

Pour rendre votre fonction de lancement forcé personnalisée disponible pour l'ordonnancement, vous devez l'"installer" à partir de ucini1 en appelant la fonction sedfok. Cette fonction a deux arguments dans l'ordre suivant :

  • Le numéro de la règle de lancement forcé pour laquelle votre fonction contient une logique personnalisée
  • L'adresse de votre fonction de lancement forcé

Par exemple, pour installer la règle exemple "borl" ci-dessus dans la position de règle 39 :


sedfok (39, borl);