TECHNIQUE DE PESAGE · DÉVELOPPEMENT INTERNE · ASSISTANCE
+386 2 320 33 46info@preciz.si

NEUTRON · PROTOCOLE DE COMMUNICATION

Neutron Modbus RTU/TCP — manuel d’intégration

Référence Neutron Modbus RTU/TCP pour l’intégration PLC, SCADA et HMI : connexion, adressage, registres, calibrage et commande de trieuse pondérale automatique.

1. VERSIONS DU MANUEL

Tableau 1

Version

Date

Description de la modification

1.0

Juin 2026

Première édition du manuel Neutron Modbus.

2. PRÉSENTATION

CloudScale Neutron NS et Neutron NT fournissent une interface Modbus pour lire les données de pesage, états, I/O numériques et données de calibrage, et exécuter certaines commandes de balance. Elle est destinée aux intégrations PLC, SCADA, HMI, MES et aux logiciels spécifiques.

Neutron prend en charge les variantes de transport Modbus suivantes :

  • Modbus RTU par RS-232 ou RS-485. L’identifiant Modbus esclave / unité par défaut est 1.

  • Modbus TCP par Wi-Fi ou Ethernet. Le port TCP par défaut est 502.

Fonctions et zones de registres disponibles constituent la même interface logique pour Modbus TCP et Modbus RTU, sauf que TCP utilise un Unit Identifier uniquement lorsque le client ou la passerelle l’exige.

Important : les paramètres de communication, comme ceux du port série et du réseau, doivent être configurés dans Neutron avant la connexion du maître Modbus. L’appareil utilise l’adresse Modbus définie par MBA.

3. CONNEXION ET ACTIVATION

3.1 MODBUS TCP

Modbus TCP est disponible par la connexion réseau de Neutron. Utilisez l’adresse IP attribuée et le port TCP 502. La communication TCP ne nécessite pas de configuration de ligne série.

Pour utiliser Modbus TCP, sélectionnez Modbus TCP dans les interfaces de communication de la balance (paramètre SCI). Modbus TCP peut fonctionner avec d’autres interfaces, par exemple RS-232 pour communiquer avec un ordinateur par CSCP.

Tableau 2

Configuration

Résultat

SCI = 10

Active uniquement Modbus TCP.

SCI = 5,10

Active la communication normale RS-232 de la balance avec Modbus TCP.

SCI = 6,10

Active la communication normale RS-485 de la balance avec Modbus TCP.

MBA

Définit l’adresse Modbus esclave / unité. Par défaut : 1.

Port TCP

502

Lorsque plusieurs valeurs SCI sont indiquées, configurez les interfaces selon la configuration de communication Neutron choisie. Après modification, redémarrez la communication ou l’appareil si le menu de configuration l’exige.

3.2 CONNEXION TCP TYPE

Tableau 3

Élément

Exemple

Maître Modbus

PLC, SCADA, HMI or industrial PC

Transport

Ethernet ou Wi-Fi TCP/IP

Adresse cible

Adresse IP Neutron

Port de service

502

Unit ID

Valeur MBA ; par défaut 1

Pour une installation industrielle stable, Ethernet est recommandé dès qu’un réseau filaire est disponible. Wi-Fi ajoute une latence dépendante du réseau et doit être évalué dans l’environnement d’application.

3.3 MODBUS RTU (RS-232/RS-485)

Modbus RTU peut utiliser RS-232 ou RS-485. Les réglages série du maître Modbus doivent correspondre à ceux configurés dans Neutron. L’identifiant esclave Modbus est défini par MBA, avec 1 par défaut.

Pour utiliser Modbus RTU, choisissez Modbus RS-232 ou Modbus RS-485 dans les interfaces de communication de la balance (paramètre SCI).

Tableau 4

Interface

Principe de câblage type

Remarque importante

RS-232

Reliez TX, RX et GND entre Neutron et le maître Modbus. TX/RX peuvent devoir être croisés selon que les ports connectés sont DTE ou DCE.

Utilisez des connexions point à point courtes et une masse de signal commune.

RS-485

Reliez A à A et B à B selon le marquage des bornes des deux appareils ; raccordez la référence du signal / GND si l’installation l’exige.

Utilisez une topologie en chaîne. Évitez le câblage en étoile. Placez les terminaisons de ligne uniquement aux deux extrémités physiques, si nécessaire.

Respectez toujours le marquage des bornes Neutron et le schéma fourni avec l’appareil. Les fabricants ne désignent pas toujours la polarité RS-485 de la même façon ; en l’absence de communication, vérifiez la polarité A/B et la configuration du maître.

4. ADRESSAGE ET REPRÉSENTATION DES DONNÉES

Ce manuel utilise la notation de référence Modbus conventionnelle (par exemple 40101). De nombreux outils clients utilisent des adresses de départ à base zéro. Dans ces outils, retirez le premier chiffre de zone de registre et soustrayez 1 de l’adresse de référence.

Tableau 5

Notation de référence

Adresse de départ à base zéro

Exemple

40001
0

Registre de maintien 40001

40101
100

Registre de maintien 40101

40232
231

Registre de maintien 40232

40380
379

Registre de maintien 40380

Vérifiez la convention d’adressage du maître Modbus avant la mise en service. Un décalage d’un registre est la cause la plus fréquente de mauvaise interprétation des données.

4.1 FORMAT DU POIDS

  • Les valeurs brute, nette et de tare sont des entiers signés 32 bits stockés dans deux registres 16 bits consécutifs.

  • Le mot de poids fort est transmis en premier (ordre des registres big-endian).

  • La position décimale est indiquée dans le registre de configuration des sorties / état, bits 14..13.

  • Les registres brut et net haute résolution 40109–40112 utilisent deux décimales supplémentaires lorsque la valeur haute résolution est disponible.

Exemple : si le champ de position décimale indique 2 décimales, la valeur signée 32 bits 12345 représente 123.45 dans l’unité active. L’unité figure dans le registre 40113 et est aussi codée dans le registre de configuration des sorties/état.

5. FONCTIONS MODBUS PRISES EN CHARGE

Tableau 6

Fonction

Nom

Utilisation dans Neutron

01

Read Coils

Lire les états des sorties numériques (les bobines 1..6 correspondent à DO1..DO6).

03

Read Holding Registers

Lire les registres modifiables et ceux liés aux commandes.

04

Read Input Registers

Lire les données de processus, poids et registres d’état.

05

Write Single Coil

Régler une sortie numérique dont la fonction est désactivée.

06

Write Single Register

Écrire un registre de maintien, y compris les champs liés aux commandes.

15

Write Multiple Coils

Régler plusieurs sorties numériques dont les fonctions sont désactivées.

16

Write Multiple Registers

Écrire commande, paramètres et données de calibrage en bloc.

Les écritures sur les sorties commandées par une fonction configurée sont rejetées. Les sorties de tolérance et de dosage en sont des exemples typiques.

6. CARTE DES REGISTRES DE PROCESSUS

6.1 REGISTRES PRINCIPAUX DE PROCESSUS

Tableau 7

Référence Input / Holding

Description

Type de données / remarques

30001-30002 / 40001-40002

Poids brut

INT32 signé, ordre des registres big-endian.

30003-30004 / 40003-40004

Poids net

INT32 signé, ordre des registres big-endian.

30005 / 40005

État de la balance

Champ de bits ; voir section 6.3.

30006 / 40006

État de la commande

État du traitement de commande.

30007 / 40007

Configuration des sorties / état

Champ de bits : sorties, unité et position décimale.

La carte principale permet aux maîtres simples d’obtenir le poids net ou brut et les états essentiels dans une petite plage de registres contigus.

6.2 REGISTRES DE PROCESSUS ÉTENDUS

Tableau 8

Registre de maintien

Description

Type de données / remarques

40101-40102

Poids brut

INT32 signé.

40103-40104

Poids net

INT32 signé.

40105-40106

Poids de tare

INT32 signé.

40107

État de la balance

Champ de bits ; voir section 6.3.

40108

Configuration des sorties / état

Champ de bits ; voir section 6.3.

40109-40110

Brut haute résolution

INT32 signé ; deux décimales supplémentaires si disponibles.

40111-40112

Net haute résolution

INT32 signé ; deux décimales supplémentaires si disponibles.

40113

Unité

0 = g; 1 = kg; 2 = t; 3 = lb.

40114

Masque des entrées numériques

Bits 0..5 = DI1..DI6.

40115

Masque des sorties numériques

Bits 0..5 = DO1..DO6.

40116

Masque des fonctions de sortie

Un bit à un signifie que la sortie associée est commandée par une fonction.

40117

Points ADC

Valeur ADC brute.

40119

Millivolts

Signal du capteur de pesage en mV.

40231

État de la commande

État du traitement de commande.

40232

Commande

Écrivez le code de commande ici.

40233

Paramètre de commande 1

Paramètre facultatif de la commande dans 40232.

6.3 CHAMPS DE BITS D’ÉTAT ET DE CONFIGURATION

6.3.1 REGISTRE D’ÉTAT DE LA BALANCE (30005 / 40005 / 40107)

Tableau 9

Bit

Signification (si valeur du bit=1)

0

Le poids net est négatif.

1

Le poids brut est négatif.

2

Le poids est stable.

3

État de sous-charge.

4

État de surcharge.

5

La tare est active.

6

La tare prédéfinie / manuelle est active.

7

Le poids brut est nul.

8

L’entrée numérique 1 est active.

9

L’entrée numérique 2 est active.

10

Une erreur balance / ADC est active.

6.3.2 REGISTRE DE CONFIGURATION SORTIES / ÉTAT (30007 / 40007 / 40108)

Tableau 10

Bit(s)

Signification

0..5

État des sorties numériques : DO1..DO6.

6..7

Code d’unité active : 0 = g ; 1 = kg ; 2 = t ; 3 = lb.

8

Erreur balance / capteur de pesage.

13..14

Code de position décimale des poids standard.

Pour les applications nécessitant tous les états de sortie, utilisez le registre 40115. Utilisez 40116 pour déterminer les sorties actuellement réservées par la fonction active.

7. COMMANDES ET SORTIES NUMÉRIQUES

7.1 UTILISATION DU REGISTRE DE COMMANDE

Écrivez un code de commande dans le registre de maintien 40232. Écrivez le paramètre facultatif dans 40233 avant d’émettre la commande. L’état de commande est lisible dans 40231. Le code 0 efface la protection antirépétition et permet de réexécuter la même commande.

Tableau 11

Code de commande

Paramètre 40233

Action

0
-

Aucune commande ; réinitialiser la protection antirépétition.

1
0

Zéro après contrôle de stabilité.

1
1

Zéro immédiat.

2
0

Tare après contrôle de stabilité.

2
1

Tare immédiate.

3
-

Effacer la tare.

25

Masque de bits des sorties

Régler les sorties numériques selon le masque de bits.

Raccourci : écrire le code de commande dans le registre de maintien 40001 exécute aussi la commande. Pour une intégration prévisible, les registres étendus 40232 et 40233 sont recommandés, surtout lorsqu’un paramètre est nécessaire.

7.2 SORTIES NUMÉRIQUES

  • Les bobines 1..6 correspondent à DO1..DO6.

  • Utilisez les fonctions 01, 05 et 15 pour lire ou écrire les bobines.

  • Une sortie n’est modifiable par Modbus que lorsque sa fonction de sortie est désactivée.

  • Si une sortie est commandée par une tolérance, un dosage ou une autre fonction active, l’appareil rejette les écritures Modbus vers cette sortie.

Exemple : pour activer DO1 et DO3 avec le code 25, écrivez le masque binaire 000101 (décimal 5) dans 40233, puis 25 dans 40232. Vérifiez le résultat par le registre 40115 ou les bobines 1..6.

8. INTERFACE DE CALIBRAGE

Le calibrage s’effectue par les registres de maintien. Les données de calibrage réussies sont enregistrées en mémoire flash. En cas d’échec, les données modifiées ne sont pas sauvegardées.

8.1 DONNÉES DE CALIBRAGE

Tableau 12

Référence Holding

Début à base zéro

Description

40300
299

Champ de bits d’état du calibrage.

40301
300

Canal de la balance.

40302
301

Nombre de décimales utilisé pour les masses de calibrage.

40303
302

Nombre de points de calibrage valides.

40304-40305
303

Point zéro ADC, INT32 signé.

Tableau 13

Bit d’état du calibrage

Signification

0

Le point zéro existe.

1

Le premier point de masse de calibrage existe.

2

La balance possède le calibrage minimal valide.

8

Une erreur balance / ADC est active.

8.2 BLOCS DES POINTS DE CALIBRAGE

Le point 1 commence à 40310 (début à base zéro 309). Chaque point utilise huit registres. Le registre initial du point N est 40310 + ((N - 1) x 8).

Tableau 14

Décalage dans le bloc du point

Description

+0

Indicateur de validité : 0 = invalide ; 1 = valide.

+1..+2

Masse de calibrage, INT32 signé.

+3..+4

Point ADC, INT32 signé.

+5..+6

Facteur x100, INT32 signé.

+7

Réservé.

Exemples : point 1 = 40310-40317 ; point 2 = 40318-40325 ; point 3 = 40326-40333 ; point 8 = 40366-40373.

8.3 COMMANDES DE CALIBRAGE

Tableau 15

Référence Holding

Début à base zéro

Description

40380
379

Commande.

40381
380

Numéro du point.

40382-40383
381

Masse de calibrage, INT32 signé.

40384
383

Indicateurs.

40385
384

Déclencheur.

40386
385

Résultat de commande.

40387
386

Dernière commande exécutée.

Tableau 16

Commande

Description

1

Calibrer le zéro.

2

Calibrer un point de masse.

3

Supprimer un point de calibrage.

4

Supprimer le point zéro.

5

Supprimer tout le calibrage.

6

Recharger / initialiser la balance.

Registre d’indicateurs 40384 : le bit 0 détermine si la stabilité est requise. La valeur 0 exécute immédiatement ; la valeur 1 exige une moyenne ADC stable. Tous les autres bits sont réservés.

Tableau 17

Résultat 40386

Signification

0

OK.

1

Commande incorrecte.

2

Données incorrectes.

3

Non autorisé.

4

Commande non prise en charge.

5

Échec du calibrage.

8.4 SÉQUENCE DE DÉCLENCHEMENT

Le micrologiciel ne traite le calibrage que lorsque le registre déclencheur 40385 passe à une valeur non nulle. Utilisez la séquence suivante pour chaque commande de calibrage :

  1. Écrivez la commande et tous les paramètres nécessaires.

  2. Écrivez 40385 = 1 pour exécuter l’opération.

  3. Attendez la fin de la commande et lisez 40386.

  4. Écrivez 40385 = 0 pour réinitialiser le déclencheur.

  5. Pour la commande suivante, écrivez les paramètres et remettez 40385 à 1.

8.5 EXEMPLES

Tableau 18

Commande

Calibrer le zéro

But

Write Multiple Registers à partir de l’adresse à base zéro 379.

Réponses

40380 = 1

Commande : calibrer le zéro.

40381 = 0

Numéro de point inutilisé.

40382 = 0; 40383 = 0

Masse de calibrage inutilisée.

40384 = 1

Exiger une moyenne ADC stable.

40385 = 1

Déclencher l’opération.

Lire 40386

Résultat attendu : 0 (OK).

Tableau 19

Commande

Calibrer le point 1 avec 10.000 kg

But

Pour 40302 = 3, multiplier la masse de calibrage par 1000.

Réponses

40380 = 2

Commande : calibrer un point de masse.

40381 = 1

Numéro de point 1.

40382-40383 = 10000

10.000 kg x 1000.

40384 = 1

Exiger une moyenne ADC stable.

40385 = 1

Déclencher l’opération.

Lire 40386

Résultat attendu : 0 (OK).

Tableau 20

Commande

Supprimer le point 1

But

Supprimer le premier point de calibrage.

Réponses

40380 = 3

Commande : supprimer un point de calibrage.

40381 = 1

Numéro de point 1.

40385 = 1

Déclencher l’opération.

Tableau 21

Commande

Supprimer tout le calibrage

But

Supprimer toutes les données de calibrage enregistrées.

Réponses

40380 = 5

Commande : supprimer tout le calibrage.

40385 = 1

Déclencher l’opération.

9. MISE EN SERVICE ET DÉPANNAGE

  1. Configurez SCI pour la combinaison d’interfaces requise et réglez MBA sur l’identifiant Modbus esclave / unité souhaité.

  2. Pour Modbus TCP, vérifiez l’IP et connectez-vous au port TCP 502. Pour Modbus RTU, faites correspondre les paramètres série et vérifiez le câblage.

  3. Lisez un registre connu comme 40113 (unité) ou 40107 (état de la balance) pour valider l’adressage.

  4. Lisez 40101-40106 et décodez les valeurs brute, nette et de tare signées 32 bits avec la position décimale indiquée.

  5. Vérifiez l’état de la balance, les entrées et sorties numériques avant d’activer les fonctions de commande.

  6. N’utilisez les registres de commande et fonctions de calibrage qu’après avoir confirmé le canal de balance et l’état d’application actifs.

9.2 PROBLÈMES COURANTS

Tableau 22

Symptôme

Cause probable

Action

Aucune réponse Modbus

L’interface de communication de la balance (SCI) n’est pas configurée pour l’interface choisie ; IP/port ou paramètres série incorrects ; câblage incorrect.

Vérifiez SCI, le port TCP 502, MBA, l’accessibilité réseau, les paramètres série et le câblage physique.

Les valeurs semblent décalées ou invalides

Le client convertit mal les références en adresses à base zéro ; les mots 32 bits sont décodés dans le mauvais ordre.

Vérifiez la convention d’adressage client et utilisez INT32 signé avec ordre des registres big-endian.

Le poids a une position décimale incorrecte

Le client ignore la configuration décimale ou le format haute résolution.

Lisez 40108 et appliquez les bits 14..13 ; utilisez les registres haute résolution seulement si nécessaire.

Écriture de sortie impossible

La sortie est commandée par une fonction attribuée.

Lisez 40116 et désactivez la fonction de sortie concernée avant de commander la sortie par Modbus.

La même commande ne se réexécute pas

La protection antirépétition n’a pas été réinitialisée.

Écrivez la commande 0 dans 40232, puis émettez à nouveau la commande.

La commande de calibrage reste sans effet

Le déclencheur n’est pas passé à une valeur non nulle ou n’a pas été réinitialisé après une commande précédente.

Réglez tous les paramètres, passez 40385 à 1, lisez 40386 puis remettez 40385 à 0.

Sécurité : calibrage, mise à zéro, tarage et commande des sorties peuvent affecter le résultat de pesage et les machines connectées. Appliquez un contrôle d’accès, validez les commandes dans l’application hôte et assurez la conformité de toutes les opérations aux exigences métrologiques et de sécurité des machines applicables.

10. Trieuse pondérale automatique

Ce chapitre décrit l’interface CHECKWEIGHER de base, carte des registres version 1. Elle permet la lecture de l’état du processus et du dernier résultat terminé, le choix d’une recette existante, la configuration du démarrage automatique et START / STOP / STOP NOW / RESET. L’édition de recettes, la configuration des filtres, le choix d’application, l’affectation I/O et le flux détaillé de débogage sont exclus. Configurez-les avec l’interface de réglage normale avant d’utiliser ce bloc.

10.1 Connexion et adressage

La carte est identique sur Modbus TCP et les interfaces Modbus RTU activées. Utilisez un seul client/maître de commande ; d’autres lecteurs peuvent surveiller les données. Une boîte de commandes unique est partagée entre tous les transports, pas une par client. N’utilisez pas de requêtes de diffusion pour cette interface. Avant toute commande, lisez le bloc et vérifiez application=4 (CHECKWEIGHER), le canal et la validité de l’instantané.

Les adresses ci-dessous sont des adresses PDU à base zéro. Pour les clients utilisant la notation 4xxxx, référence = 40001 + adresse : l’adresse 400 correspond à 40401 et 480 à 40481. Lisez par la fonction 03 (ou 04). Écrivez les commandes uniquement par la fonction 16 (0x10), à partir de 480 et sur exactement huit registres. La fonction 06 et les écritures partielles sont rejetées. Les registres de résultat/état sont en lecture seule. L’intervalle entre blocs de lecture et d’écriture n’est pas lisible.

Lisez l’adresse 400, nombre 48, pour obtenir état, acquittement de commande et dernier résultat en une requête. Vous pouvez aussi lire 400/nombre 24 pour l’état ou 424/nombre 24 pour le résultat. Toutes les valeurs 32 bits ont le mot de poids fort en premier ; chaque registre respecte l’ordre Modbus standard, octet de poids fort en premier. Ne divisez pas une valeur 32 bits entre requêtes distinctes.

10.2 Carte des registres d’état et de résultat

Tableau 23

PDU / référence

Mots

Nom / type

Description

400 / 40401
1

MAP_VERSION / UINT16

1 pour cette carte.

401 / 40402
2

BOOT_ID / UINT32

Jeton de session aléatoire non nul généré au démarrage de l’appareil. Répétez-le dans chaque écriture ; il n’est pas conservé après redémarrage. Ce n’est pas un identifiant de sécurité.

403 / 40404
1

CHANNEL / UINT16

Canal de pesage actuel.

404 / 40405
1

APPLICATION / UINT16

Doit être 4 pour la commande.

405 / 40406
1

STATE / UINT16

0 IDLE ; 1 START_CHECK ; 2 RUN ; 3 DRAINING ; 4 PAUSED ; 5 STOPPED ; 6 ERROR ; 7 CONS_LOST.

406 / 40407
1

ACTIVE_ID / UINT16

Recette sélectionnée ; peut différer du RESULT_ID du produit précédent.

407 / 40408
1

AUTOSTART / UINT16

CWAUTO persistant : 0 désactivé, 1 activé.

408 / 40409
1

PROCESS_ERROR / UINT16

Erreur bloquante actuelle du processus ; 0 aucune.

409 / 40410
1

BELT / UINT16

Demande logique de convoyeur, 0/1 ; pas un retour d’état moteur.

410 / 40411
1

CONS / INT16

-1 (0xFFFF) non affecté ; 0 inactif ; 1 actif.

411 / 40412
1

PQ / UINT16

Produits en attente.

412 / 40413
1

EQ / UINT16

Événements de sortie en attente/actifs.

413 / 40414
1

AUTO_STATE / UINT16

Résultat du démarrage automatique : voir 10.5.

414 / 40415
1

AUTO_ERROR / UINT16

Erreur du démarrage automatique à la mise sous tension ; 0 aucune.

415 / 40416
1

SNAPSHOT_VALID / UINT16

1 instantané exploitable ; 0 indisponible. Vérifiez aussi APPLICATION avant commande.

416 / 40417
2

REQUEST_ID / UINT32

Dernière requête acceptée ; change immédiatement à l’acceptation.

418 / 40419
2

ACK_ID / UINT32

Dernière requête terminée. 0 signifie aucune depuis le démarrage.

420 / 40421
1

COMMAND_STATE / UINT16

0 IDLE ; 1 BUSY ; 2 DONE ; 3 ERROR.

421 / 40422
1

COMMAND_ERROR / UINT16

Erreur applicative de la requête terminée ; voir 10.4.

422 / 40423
1

APPLIED_MASK / UINT16

Bit 0 sélection de recette appliquée ; bit 1 démarrage automatique appliqué. Peut être non nul si START échoue.

423 / 40424
1

LAST_COMMAND / UINT16

Code de commande de la dernière requête acceptée.

424 / 40425
2

RESULT_SEQ / UINT32

Séquence du dernier produit terminé ; comparer avec BOOT_ID.

426 / 40427
1

RESULT_ID / UINT16

Recette utilisée pour ce résultat.

427 / 40428
1

RESULT_FLAGS / UINT16

Bit 0 résultat existant ; bit 1 masse valide/représentable ; bit 2 limites représentables ; bit 3 dépassement/conversion numérique invalide.

428 / 40429
1

DECIMALS / UINT16

Décimales pour W, LO et HI de ce résultat.

429 / 40430
1

UNIT / UINT16

0 g ; 1 kg ; 2 t ; 3 lb ; 4 oz ; 5 N ; 65535 autre/inconnue. Ne supposez pas g pour les unités inconnues.

430 / 40431
2

W / INT32

Masse nette tenant compte de la tare ; diviser par 10^DECIMALS. Utiliser uniquement si le bit 1 de RESULT_FLAGS est à un.

432 / 40433
2

LO / INT32

Limite inférieure de tolérance ; utiliser uniquement avec le bit 2 des indicateurs.

434 / 40435
2

HI / INT32

Limite supérieure de tolérance ; utiliser uniquement avec le bit 2 des indicateurs.

436 / 40437
1

WS / UINT16

Classification de masse : 0 LOW ; 1 OK ; 2 HIGH ; 3 ERROR.

437 / 40438
1

LTS / UINT16

Longueur : 0 OK ; 1 LENGTH_LOW ; 2 LENGTH_HIGH ; 3 DISABLED.

438 / 40439
1

RESULT / UINT16

0 LOW ; 1 OK ; 2 HIGH ; 3 ERROR ; 4 OVERLAP ; 5 ABORTED ; 6 ABORTED_CONS.

439 / 40440
1

PRODUCT_ERROR / UINT16

Erreur de ce produit ; distincte de PROCESS_ERROR.

440 / 40441
1

NS / UINT16

Échantillons acceptés du dernier résultat terminé avant élimination des extrêmes ; pas le nombre d’échantillons du produit actuel.

441 / 40442
2

TD / UINT32

Instant de détection en millisecondes depuis le démarrage ; reboucle après environ 49.7 jours.

443 / 40444
2

ET / UINT32

Millisecondes de la détection au résultat.

445 / 40446
2

LT / UINT32

Durée ON du capteur produit en millisecondes ; 0 en mode de déclenchement par masse.

447 / 40448
1

RESERVED / UINT16

0 ; ignorer pour la version 1.

L’état et le dernier résultat sont copiés sous verrou du processus. Chaque réponse contient un instantané cohérent ; la suivante peut voir des données plus récentes. RESULT_SEQ, RESULT_ID, DECIMALS et UNIT appartiennent au résultat stocké, pas à la recette sélectionnée actuellement. Avant le premier résultat, le bit 0 est à zéro : n’interprétez pas les champs remplis de zéros comme un produit réel de masse nulle. La lecture ne consomme ni n’efface jamais un résultat.

Exemple : W high=0x0000, low=0x07D1 donne l’entier signé 2001. Avec DECIMALS=1 et UNIT=0, la masse est 200.1 g. Les valeurs négatives utilisent le complément à deux 32 bits. Si la conversion dépasse INT32 ou si la valeur de la balance n’est pas représentable, le bit de validité correspondant est à zéro, ses registres numériques sont nuls et le bit 3 est à un. Le résultat produit d’origine n’est pas modifié.

10.3 Bloc de commande en une écriture

Tableau 24

Adresse / référence

Nom

Valeur

480 / 40481
COMMAND

0 réglages seuls ; 1 START ; 2 STOP DRAIN ; 3 STOP NOW ; 4 RESET.

481 / 40482

CHANGE_MASK

Bit 0 : sélectionner RECIPE_ID. Bit 1 : régler AUTOSTART. Les autres bits doivent être 0.

482 / 40483

RECIPE_ID

1–500 si le bit 0 du masque est à un. Sinon écrire 0. La recette doit déjà exister.

483 / 40484
AUTOSTART

0 ou 1 si le bit 1 du masque est à un. Sinon écrire 0.

484–485 / 40485–40486

REQUEST_ID

UINT32, high word first. Next nonzero ID after ACK_ID. First request is 1; after 0xFFFFFFFF use 1.
486–487 / 40487–40488

BOOT_ID

UINT32, high word first. Echo the current token from 401–402.

Pour COMMAND 2, 3 ou 4, CHANGE_MASK, RECIPE_ID et AUTOSTART doivent tous être 0. Les réglages peuvent être combinés avec COMMAND 0 ou 1. Sélection de recette et changements de démarrage automatique nécessitent un processus arrêté et vidé. START sans bit de changement de recette lance la recette actuellement sélectionnée. Choix de l’application et création de recettes restent hors du périmètre Modbus.

La trame complète est validée avant acceptation. Aucune écriture partielle du bloc de commande ne prend effet. Une réponse normale de fonction 16 signifie l’acceptation dans la boîte, pas la réussite de START. L’exécution passe par la boucle principale existante. Interrogez jusqu’à ce qu’ACK_ID corresponde à l’identifiant soumis et que COMMAND_STATE soit DONE ou ERROR. BUSY peut être trop bref pour être observé ; n’exigez jamais de l’avoir vu avant d’accepter DONE.

Gardez une seule requête en cours. Si l’écriture expire, relisez BOOT_ID, REQUEST_ID et ACK_ID. Si le jeton de démarrage est inchangé, retransmettez si nécessaire exactement les huit mêmes mots. Une répétition de la dernière requête acceptée avec des données identiques est acquittée sans réexécution, qu’elle soit en attente ou terminée. Le même identifiant avec d’autres données, les identifiants sautés/anciens, un autre jeton de démarrage ou une requête pendant BUSY sont rejetés. Après redémarrage, resynchronisez-vous avec le nouveau jeton et l’état actuel ; ne rejouez pas automatiquement un ancien START.

Seule la dernière requête est conservée pour détecter les doublons ; aucun journal persistant des commandes n’existe. Redémarrer le réseau sans redémarrer l’appareil ne vide pas la boîte. Ce protocole suppose un PLC de commande unique ; il n’arbitre pas les émetteurs concurrents. Jeton de démarrage et compteur évitent les répétitions accidentelles, pas les accès non autorisés.

10.4 Réglages appliqués, résultats de commande et erreurs

La sélection de recette est appliquée d’abord, le démarrage automatique ensuite, puis la commande. Syntaxe, plage d’identifiants et validité de la recette sont vérifiées avant de modifier les réglages. Une erreur flash peut néanmoins laisser un réglage antérieur appliqué. APPLIED_MASK indique exactement quels réglages ont réussi. Par exemple, la recette 25 et AUTOSTART=1 peuvent être enregistrés alors que START est refusé parce que CONS est inactif : COMMAND_STATE=ERROR, COMMAND_ERROR=11, APPLIED_MASK=3. Les réglages ne sont pas annulés. Relisez ACTIVE_ID et AUTOSTART avant de décider quoi réessayer.

Les codes ci-dessous appartiennent à COMMAND_ERROR et ne doivent pas être confondus avec les erreurs de processus/produit. Une écriture rejetée au niveau transport ne change ni la boîte ni ACK_ID. Adresses illégales, écritures en lecture seule, partielles et plages de blocs non prises en charge retournent l’exception Modbus 02. Une écriture de commande de huit mots correctement adressée avec données, jeton, séquence ou état de boîte invalide retourne l’exception 03.

Tableau 25

Code

Signification

0

Réussite.

1

Recette sélectionnée absente ou invalide.

5 / 6

START refusé : poids hors de la plage autorisée.

7

Mémoire nécessaire indisponible.

11

CONS configuré inactif.

13

L’unité de recette ne correspond pas à la balance.

15

La configuration/l’état du capteur empêche l’opération.

16

Mauvaise application, processus actif, défaut non résolu ou opération de balance incompatible.

17

Arguments de requête invalides ou système de mesure non prêt.

25

Échec de lecture ou d’écriture des réglages/de la base.

STOP DRAIN n’accepte pas de nouveaux produits et termine les produits et événements de sortie déjà acceptés. Son acquittement DONE signifie que l’arrêt est demandé ; STATE=5 confirme son achèvement. STOP NOW annule les produits/événements ouverts et désactive les sorties du processus. STOP ne remplace pas RESET lors d’un défaut bloquant. RESET revérifie la balance et les conditions préalables sans lancer le convoyeur ; si la cause persiste, il échoue. Toutes les commandes utilisent les verrouillages normaux de la trieuse. Un résultat est une mesure, pas une confirmation de l’actionnement physique du dispositif de rejet.

10.5 Démarrage automatique

AUTOSTART est le réglage CWAUTO persistant, 0 par défaut. L’activer ne démarre pas immédiatement ; combinez-le avec COMMAND=1 pour un START immédiat. Au prochain démarrage, l’application CHECKWEIGHER doit être sélectionnée, la mise à zéro initiale activée et réussie, et la dernière recette permanente active valide disponible. Les contrôles START normaux restent applicables. Un échec au démarrage n’est pas réessayé si une entrée change ensuite. STOP, PAUSE manuels ou défauts ne déclenchent pas de redémarrage automatique. Une valeur inchangée n’entraîne pas de nouvelle écriture des réglages.

AUTO_STATE : 0 DISABLED ; 1 WAIT_ZERO ; 2 ZERO_DISABLED ; 3 ZERO_FAILED ; 4 NO_PRODUCT ; 5 STARTED ; 6 START_FAILED ; 7 CANCELLED ; 8 INACTIVE ; 9 INIT_FAILED. AUTO_ERROR est le code du START refusé au démarrage. C’est le résultat de la tentative au démarrage ; STATE et PROCESS_ERROR décrivent le processus actuel.

10.6 Exemples PLC

Exemple 1 — tout lire : fonction 03, début PDU=400, nombre=48 (référence 40401). Vérifiez MAP_VERSION=1, APPLICATION=4 et SNAPSHOT_VALID=1. Enregistrez BOOT_ID et ACK_ID. Aucune commande n’est nécessaire pour lire.

Exemple 2 — choisir la recette 25, activer le démarrage automatique et START en une écriture. Supposez BOOT_ID=0x12345678 et ACK_ID=0. Écrivez par fonction 16, début PDU=480, nombre=8, avec les mots décimaux : [1, 3, 25, 1, 0, 1, 4660, 22136]. Les mots de démarrage sont illustratifs : copiez-les toujours depuis l’appareil. Attendez ACK_ID=1 et COMMAND_STATE=2, puis vérifiez STATE=2 (RUN). Si COMMAND_STATE=3, examinez COMMAND_ERROR et APPLIED_MASK.

Exemple 3 — STOP DRAIN. Après achèvement de la requête précédente, envoyez [2, 0, 0, 0, 0, 2, 4660, 22136]. Attendez ACK_ID=2. DONE confirme l’acceptation ; continuez à interroger jusqu’à STATE=5 (STOPPED). Les produits en attente peuvent encore produire des résultats pendant DRAINING.

Exemple 4 — changer seulement la recette après arrêt : [0, 1, 26, 0, 0, 3, 4660, 22136]. Cela ne change pas le démarrage automatique et ne démarre pas. Démarrez ensuite avec [1, 0, 0, 0, 0, 4, 4660, 22136].

Exemple 5 — réinitialiser un défaut corrigé : COMMAND=4 avec mask/recipe/autostart=0, l’identifiant de requête suivant et BOOT_ID actuel. Attendez un acquittement réussi ; émettez un START distinct si nécessaire. Ne répétez pas RESET sans diagnostiquer le défaut.

Logique PLC cyclique suggérée (pseudocode Structured Text ; adaptez les noms des blocs Modbus à votre PLC) :

ReadHoldingRegisters(Start := 400, Count := 48, Data := Rx);
BootId := JoinUInt32(Rx[1], Rx[2]);
AckId := JoinUInt32(Rx[18], Rx[19]);
IF BootId <> SavedBootId THEN
    SavedBootId := BootId; HaveSeenResult := FALSE;
    (* Resynchronise command handling; do not replay old START. *)
END_IF;
IF (Rx[15] = 1) AND ((Rx[27] AND 1) <> 0) THEN
    Seq := JoinUInt32(Rx[24], Rx[25]);
    IF NOT HaveSeenResult OR (Seq <> SavedSeq) THEN
        SavedSeq := Seq; HaveSeenResult := TRUE;
        IF ((Rx[27] AND 2) <> 0) AND (Rx[29] <> 65535) THEN
            Mass := SignedInt32(Rx[30], Rx[31]) / Power10(Rx[28]);
        END_IF;
        Samples := Rx[40]; ProductResult := Rx[38];
        (* Process this snapshot once, including invalid/rejected products. *)
    END_IF;
END_IF;

NS concerne le dernier produit terminé et reste inchangé jusqu’à un nouveau résultat. Le bloc du dernier résultat n’est pas une file : si deux produits se terminent entre interrogations, le résultat intermédiaire n’est pas récupérable par cette carte de base. Surveillez SEQ et choisissez un intervalle d’interrogation inférieur au plus court intervalle produit. Après reconnexion, décidez si le premier résultat disponible doit être enregistré comme instantané récupéré ou servir seulement de référence initiale. Cette interface ne garantit pas une piste d’audit pour chaque produit.

10.7 Vérifications de mise en service

  1. Vérifiez les deux conventions d’adresse, l’ordre des mots et des masses positives/négatives connues ; lisez les 48 mots et les deux sous-blocs de 24 mots.

  2. Vérifiez les indicateurs d’absence de résultat avant le premier produit, puis un produit OK, LOW et invalide ; confirmez que l’identifiant/l’unité restent liés au résultat stocké après changement de recette.

  3. Répétez une écriture acceptée identique avant/après achèvement : elle ne doit s’exécuter qu’une fois. Essayez un contenu modifié avec le même identifiant, un identifiant sauté, une écriture partielle et en lecture seule : chacun doit être rejeté sans modifier les réglages acceptés.

  4. Testez START avec CONS inactif et examinez APPLIED_MASK ; testez STOP DRAIN jusqu’à STOPPED, STOP NOW, RESET du défaut puis START.

  5. Déconnectez/reconnectez et redémarrez l’appareil. Vérifiez la resynchronisation des requêtes et le rejet de l’ancien jeton. Testez le démarrage automatique activé/désactivé avec mise à zéro initiale réussie et échouée.

  6. Répétez sur le PLC réel et les deux transports TCP/RTU configurés. Vérifiez que la communication cyclique n’empêche pas le pesage ni la temporisation des sorties.

Questions fréquentes

Comment convertir une référence de registre en adresse PDU ?

Les tableaux utilisent des références 4xxxx à base un. Pour la référence 40101, l’adresse PDU à base zéro est 100. Utilisez la convention d’adressage exigée par votre client Modbus.

Combien de décimales supplémentaires utilisent les poids haute résolution ?

Les poids brut et net haute résolution des registres 40109–40112 utilisent deux décimales supplémentaires si disponibles. Décodez-les comme valeurs signées 32 bits et tenez compte de la configuration de position décimale.

Le bloc de résultat de la trieuse automatique est-il une file ?

Non. Il conserve le résultat du dernier produit terminé et reste inchangé jusqu’au suivant. Surveillez SEQ et choisissez un intervalle d’interrogation inférieur au plus court intervalle produit. Les résultats intermédiaires ne sont pas récupérables par cette carte de base.

Un PLC peut-il rejouer START après redémarrage de l’appareil ?

Resynchronisez la gestion des commandes quand BOOT_ID change. Lisez les BOOT_ID et ACK_ID actuels, ne rejouez pas un ancien START et suivez la séquence et les contrôles de boîte de commandes décrits dans les exemples PLC.

Besoin d’aide ?

Besoin d’aide pour logiciel, connectivité ou utilisation ? Décrivez le problème pour que nous aidions à la prochaine étape.

Préparer une demande →