La fonction "Pick/Put-to-Light"
Lorsque QuickView est utilisé sur une machine manuelle (sans robot), la fonction "Pick/Put-to-Light" est utilisée pour suivre/indiquer les manipulations faites/à faire pas l'opérateur. Jusqu'à la version 10.26, cette fonction était réalisée dans l'automate programmable. A partir de la version 10.27, il sera possible d'utiliser un nouveau driver de communication avec des boutons tactiles Banner. La communication avec ces boutons est effectuée à l'aide du protocole ModBus RTU sur une ligne série RS-485.
Configuration des robots virtuels
Pour pouvoir utiliser la fonction "Pick/Put-to-Light", un ou des robots virtuels doivent être définis. Ceci se fait dans le fichier VKServer.ini dans les sections [Hoist1]..[HoistX]. Ces sections sont utilisées pour définir les robots de la machine. Dans le cas d'une machine manuelle, le type de robot doit être défini comme Type=CBSim2. Ce type de robot demande l'utilisation d'un DB de données ainsi qu'un DB de commande.
Exemple de configuration:
[Hoist1]
Type=CBSim2
DbData=23
RegData=0
DbCommand=24
RegCommand=0
Le DB de données
Dans ce DB, le statut du robot est simulé par le système.
Le DB de données est défini avec les mots clef DBData=N° de DB et RegData=N° de registre. Un DB interne sera utilisé et celui-ci doit contenir 100 words.
Exemple de DB de données:
[DataBank23]
Device=0
Channel=0
Level=0
Regi=0
Regf=100
Pool=-1
Le DB de commandes
Ce DB sert à l'envoie des informations de destination et à la réception des données des boutons sur lesquels l'opérateur a pressé.
Le DB de commande est défini à l'aide des mots clef DBCommand=N° de DB et RegCommand=N° de registre. Un DB de l'automate programmable ou du nouveau device BannerPicktolight sera utilisé.
[DataBank24]
Device=1
Channel=250
Regi=0
Regf=29
Pool=500
RegType=Word
Le premier registre contient le n° de position sur laquelle le bouton a été pressé. Le deuxième registre contient le n° de position sur laquelle la montre connectée a simulé la pression sur le bouton. Le troisième registre correspond dans le Low-byte au n° de position sur laquelle la lampe doit être allumée et dans le High-byte la fonction à exécuter soit 1 pour une montée et 2 pour une descente. Dans le cas où la position ne serait pas équipée d'un bouton lumineux, l'automate (ou le driver) doit simuler la pression sur le bouton jusqu'à ce que le n° de la position de destination soit mis à zéro.
Le device BannerPickToLight
Le nouveau device se défini en utilisant un port série du PC. Un convertisseur COM vers RS-485 devra être utilisé pour permettre la connexion sur les boutons Banner.
[Device1]
Protocol=BannerPickToLight
ComPort=3
BaudRate=19200
Parity=Even
DataBits=8
StopBits=1
Timeout=1000
ConfigString=1:1,3:3,4:5..10
Le mot clef ConfigString permet de définir les boutons qui sont connectés sur le Bus. Il se compose d'une série de paires de chiffres X:Y séparées par une virgule. X correspondant au numéro de position et Y correspondant à l'adresse du bouton. Pour définir un suite de boutons consécutifs, il suffit de définir l'adresse par 2 chiffres séparés par deux points. Dans l'exemple ci-dessus, les boutons pour les positions 1,3,4,5,6,7,8 et 9 utilisent les adresses 1,3,5,6,7,8,9 et 10.
Ce device possède 30 registres permettant de définir 3 opérateurs (couleurs) différents.
|
Registre |
Couleur |
Fonction |
|
0 |
Numéro de position sur laquelle l'opérateur a touché le bouton vert (lecture uniquement) |
|
|
1 |
|
Numéro de position sur laquelle l'opérateur utilisant une montre connectée l'a spécifiée. |
|
2 |
Vert |
Low-Byte: Numéro de position sur laquelle le bouton vert doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
3 |
|
Position sur laquelle le bouton vert est allumé. |
|
4 |
|
Numéro de position sur laquelle l'opérateur a touché le bouton rouge (lecture uniquement) |
|
5 |
|
Numéro de position sur laquelle l'opérateur utilisant une montre connectée l'a spécifiée. |
|
6 |
Rouge |
Low-Byte: Numéro de position sur laquelle le bouton rouge doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
7 |
|
Position sur laquelle le bouton rouge est allumé. |
|
8 |
|
Numéro de position sur laquelle l'opérateur a touché le bouton jaune (lecture uniquement) |
|
9 |
|
Numéro de position sur laquelle l'opérateur utilisant une montre connectée l'a spécifiée. |
|
10 |
Jaune |
Low-Byte: Numéro de position sur laquelle le bouton jaune doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
11 |
|
Position sur laquelle le bouton jaune est allumé. |
|
12 |
|
Mode de fonctionnement: 0=Run 1=Test vert 2=Test rouge 3=Test jaune |
|
13 |
|
Erreur de communication bouton positions 1 à 15 |
|
14 |
|
Erreur de communication bouton positions 16 à 31 |
|
15 |
|
Erreur de communication bouton positions 32 à 47 |
|
16 |
|
Erreur de communication bouton positions 48 à 63 |
|
17 |
|
Erreur de communication bouton positions 64 à 79 |
|
18 |
|
Erreur de communication bouton positions 80 à 95 |
|
19 |
|
Erreur de communication bouton positions 96 à 111 |
|
20 |
|
Erreur de communication bouton positions 112 à 127 |
|
21 |
|
Réserve |
|
22 |
|
Réserve |
|
23 |
|
Réserve |
|
24 |
|
Réserve |
|
25 |
|
Réserve |
|
26 |
|
Réserve |
|
27 |
|
Réserve |
|
28 |
|
Réserve |
|
29 |
|
Réserve |
Diagramme de fonctionnement
Le device PickToLightGateway
Ce device utilise le réseau du PC pour envoyer et recevoir les données des boutons. Un module VK Pick-to-Light Gateway devra être utilisé pour permettre les échanges entre le PC et les boutons Banner.
[Device1]
Protocol=PickToLightGateway
Address=192.168.11.3
Port=80
Timeout=1000
ConfigString=1:1,3:3,4:5..10
IOAlarm=28
Le mot clef ConfigString permet de définir les boutons qui sont connectés sur le Bus. Il se compose d'une série de paires de chiffres X:Y séparées par une virgule. X correspondant au numéro de position et Y correspondant à l'adresse du bouton. Pour définir un suite de boutons consécutifs, il suffit de définir l'adresse par 2 chiffres séparés par deux points. Dans l'exemple ci-dessus, les boutons pour les positions 1,3,4,5,6,7,8 et 9 utilisent les adresses 1,3,5,6,7,8,9 et 10.
Le mot clef IOAlarm=N° d'I/O permet d'activer une alarme lorsqu'une charge doit être déplacer. L'alarme est annulée lorsque l'opérateur presse sur le bouton de la charge à déplacer. Dans l'exemple ci-dessus, l'I/O N° 28 sera activée lors d'une alarme. Cette I/O est du type Word. Chaque bit correspond à un numéro d'opérateur.
Ce device possède 40 registres permettant de définir 6 opérateurs (couleurs) différents.
|
Registre |
Opérateur |
Fonction |
|
0 |
1 |
Numéro de position sur laquelle l'opérateur 1 a touché le bouton (lecture uniquement) |
|
1 |
1 |
Réserve |
|
2 |
1 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 1 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
3 |
1 |
Position sur laquelle le bouton de l'opérateur 1 est allumé. |
|
4 |
2 |
Numéro de position sur laquelle l'opérateur 2 a touché le bouton (lecture uniquement) |
|
5 |
2 |
Réserve |
|
6 |
2 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 2 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
7 |
2 |
Position sur laquelle le bouton de l'opérateur 2 est allumé. |
|
8 |
3 |
Numéro de position sur laquelle l'opérateur3 a touché le bouton (lecture uniquement) |
|
9 |
3 |
Réserve |
|
10 |
3 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 3 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
11 |
3 |
Position sur laquelle le bouton de l'opérateur 3 est allumé. |
|
12 |
4 |
Numéro de position sur laquelle l'opérateur 4 a touché le bouton (lecture uniquement) |
|
13 |
4 |
Réserve |
|
14 |
4 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 4 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
15 |
4 |
Position sur laquelle le bouton de l'opérateur 4 est allumé. |
|
16 |
5 |
Numéro de position sur laquelle l'opérateur 5 a touché le bouton (lecture uniquement) |
|
17 |
5 |
Réserve |
|
18 |
5 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 5 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
19 |
5 |
Position sur laquelle le bouton de l'opérateur 5 est allumé. |
|
20 |
6 |
Numéro de position sur laquelle l'opérateur 6 a touché le bouton (lecture uniquement) |
|
21 |
6 |
Réserve |
|
22 |
6 |
Low-Byte: Numéro de position sur laquelle le bouton de l'opérateur 6 doit être allumé. High-Byte: fonction à effectuer 1=prendre 2=déposer |
|
23 |
6 |
Position sur laquelle le bouton de l'opérateur 6 est allumé. |
|
24 |
|
Couleur de l'opérateur 1: 0=OFF 1=Red 2=Green 3=Yellow 4=Blue 5=Magenta 6=Cyan 7=White 8=Amber 9=Rose 10=Lime Green 11=Orange 12=Sky blue 13=Violet 14=Spring Green |
|
25 |
|
Couleur de l'opérateur 2 |
|
26 |
|
Couleur de l'opérateur 3 |
|
27 |
|
Couleur de l'opérateur 4 |
|
28 |
|
Couleur de l'opérateur 5 |
|
29 |
|
Couleur de l'opérateur 6 |
|
30 |
|
Mode flash à utiliser pour indiquer la dépose: 0=OFF 1=Steady 2=Flash 3=Strobe 11-20= N-Pulse (N=Index-10) (e.g. 13=3 pulses) |
|
31 |
|
Mode de fonctionnement: 0=Run, 1=Test Opérateur 1, 2=Test Opérateur 2, 3=Test Opérateur 3, 4=Test Opérateur 4, 5=Test Opérateur 5, 6=Test Opérateur 6, 7=Configuration des boutons, 8=Reset Factory default, 9=Reset System, 10=Reset commun Address, 11=Reset state Mode, 12=Reset test mode |
|
32 |
|
Configuration: 0=Off 1=Renvoie la configuration à la passerelle une seule fois, remis à zéro par le driver |
|
33 |
|
Erreur de communication bouton positions 1 à 15 |
|
34 |
|
Erreur de communication bouton positions 16 à 31 |
|
35 |
|
Erreur de communication bouton positions 32 à 47 |
|
36 |
|
Erreur de communication bouton positions 48 à 63 |
|
37 |
|
Erreur de communication bouton positions 64 à 79 |
|
38 |
|
Erreur de communication bouton positions 80 à 95 |
|
39 |
|
Erreur de communication bouton positions 96 à 111 |
|
40 |
|
Erreur de communication bouton positions 112 à 127 |
|
41 |
|
Force la lampe de la position si>0 et < 128 |
|
42 |
|
Eteins la lampe de la position si>0 et < 128. Si =0 alors éteins toutes les lampes |
|
43 |
|
Step de configuration 0=Pas en mode configuration 1=En mode configuration |
|
44 |
|
Nombre de boutons à configurer |
|
45 |
|
Prochain ID de configuration |
|
46 |
|
Erreur RFID: 0=Pas d'erreur, 1=Pas de RFID détecté sur la position, 2=Le RFID ne correspond pas |
|
47 |
|
Position sur laquelle l'alarme est intervenue |
|
48 |
|
0=Mode RFID inactif, 1=Mode RFID actif |
Registres Modbus des boutons Pick-IQ
Les registres suivants dont utilisés:
| Registre | Adresse | Fonction | Valeur | |
| 6100 | 0 | 16 | Max ID | ID Max (broadcast) |
| 6300-6301 | 16 | 0, 0 | Reset state mode | |
| 6500 | 0 | 16 | 0 | Reset test mode (broadcast) |
| 6500 | ID | 16 | 1 | Set test mode |
| 7940 | 195 | 3 | Lecture du statut commun | |
| 7940 | 195 | 16 | Set commun ID | |
| 7941 | ID | 16 | 0 | Effacement Latch |
| 7942 | ID | 3 | Lecture du statut | |
| 8701-8702 | 0 | 16 | n, m |
n=Mode de fonctionnement: 0=OFF 1=Steady 2=Flash 3=Strobe 11-20= N-Pulse (N=Index-10) (e.g. 13=3 pulses)
m=couleur à utiliser (broadcast): 0=OFF 1=Red 2=Green 3=Yellow 4=Blue 5=Magenta 6=Cyan 7=White 8=Amber 9=Rose 10=Lime Green 11=Orange 12=Sky blue 13=Violet 14=Spring Green |
| 8701-8702 | ID | 16 | n,m | n=Mode de fonctionnement, m=couleur à utiliser |
| 8701-8702 | 0 | 16 | 0 ,0 | All OFF (broadcast) |
| 8701-8702 | ID | 16 | 0,0 | Bouton OFF |
| 8810-8811 | 0 | 16 | 0 , 195 | Reset commun ID (broadcast) |
Travail avec des lecteurs RFID
En parallèle avec les boutons, il est possible de vérifier que le bon bouclard est déposé dans une position à l'aide de lecteurs RFID. Il faut pour cela ajouter des antennes RFID sur les positions devant être contrôlées. Lorsque le bouclard est déposé dans une position équipée d'une antenne, le système vérifie que le RFID du bouclard correspond au RFID lu par l'antenne. Si le RFID correspond alors la charge est transférée dans la position. S'il ne correspond pas alors une alarme est générée. Sur les postes de charge, la vérification est également effectuée lors de la prise de la charge. Si les RFID ne correspondent pas alors une alarme est générée. Les alarmes possibles sont:
| DB | Reg | Bit | Message |
| 24 | 46 | 0 | Aucun RFID détecté sur le poste de charge |
| 24 | 46 | 1 | Le RFID du bouclard ne correspond pas au RFID lu par l'antenne |
Pour définir les lecteurs RFID dans le système, il faut définir la section suivante:
[RFID]
CheckDB=25
ConfigReaders=1..3,47
Les mots clef ci-dessus permettent de définir les antennes. CheckDB permet de définir le Databank contenant les RFID lu sur les positions. Par exemple DB25. Ce Databank est composé du nombre de registres string correspondant aux positions machine. Le registre 1 correspond à la position 1, le 2 à la position 2, etc... ConfigReaders permet de définir sur quelles positions une antenne est installée. Dans l'exemple ci-dessus, des antennes sont installées sur les positions 1,2,3 et 47. Le registre 48 du Databank de commandes doit être =1 pour que la vérification par RFID soit fonctionnelle.
Les boutons tactiles Banner EZ-Light ou Pick-IQ
Installation typique
A) CÔble "Single-Ended" (RK 4.5T-2/S2501)
B) Tee (Truck RSC 2RKC 57)
C) CÔble "Double-Ended" (Truck RK 4.5T-1-RS 4.5T/S2501)
D) Résistance terminale (Banner EZL-RTM-M or F)
Convertisseur FTDI USB-485
Pour connecter les boutons sur un PC, nous utiliserons le convertisseur USB-RS485-WE-1800-BT.
VK Pick-to-Light Gateway
Cette passerelle fonctionne à l'aide de messages UDP. Ces messages UDP consistent en un enregistrement JSON. A chaque commande, une réponse est attendue. Les messages contiennent tous un numéro de fonction et un numéro d'évènement. La réponse doit contenir le numéro d'événement du message reçu
Liste des commandes
Fonction 1: définition de la liste des boutons
Cette fonction permet de définir la liste des boutons connectés sur la passerelle.
PC->Passerelle
| Paramètres | Type | Description |
| f | integer | =1 |
| e | integer | Numéro d'évènement |
| btn | string | Liste des ID des boutons séparée par ; |
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =9 (ack) |
| e | integer | Même numéro d'événement que commande |
Exemple:
PC->M5 : {"f":1,"e":12456,"btn":"1;2;3;4"}
M5->PC : {"f":9,"e":12456}
Fonction 2: interface avec un bouton
Cette fonction permet d'allumer, d'éteindre ou de faire clignoter un bouton
PC->Passerelle
| Paramètres | Type | Description |
| f | integer | =2 |
| e | integer | Numéro d'évènement |
| btn | integer | ID du bouton |
| clr | integer |
Couleur du bouton: 0=OFF 1=Red 2=Green 3=Yellow 4=Blue (bouton Pick-IQ seulement) 5=Magenta (bouton Pick-IQ seulement) 6=Cyan (bouton Pick-IQ seulement) 7=White (bouton Pick-IQ seulement) 8=Amber (bouton Pick-IQ seulement) 9=Rose (bouton Pick-IQ seulement) 10=Lime Green (bouton Pick-IQ seulement) 11=Orange (bouton Pick-IQ seulement) 12=Sky blue (bouton Pick-IQ seulement) 13=Violet (bouton Pick-IQ seulement) 14=Spring Green (bouton Pick-IQ seulement) |
| blk | integer |
Type de lumière: 0=OFF 1=Steady 2=Flash 3=Strobe 11-20= N-Pulse (N=Index-10) (e.g. 13=3 pulses) |
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =9 (ack) |
| e | integer | Même numéro d'événement que commande |
Exemple:
PC->M5 : {"f":2,"e":12459,"btn":2,"clr":1,"blk":2} //Faire clignoter le bouton ID 2 en vert
M5->PC : {"f":9,"e":12459}
Fonction 3: Commandes pour tous les boutons
Cette fonction permet d'allumer, d'éteindre ou de faire clignoter tous les boutons
PC->Passerelle
| Paramètres | Type | Description |
| f | integer | =3 |
| e | integer | Numéro d'évènement |
| clr | integer | Couleur des boutons (voir fonction 2) |
| blk | integer | type de lumière (voir fonction 2) |
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =9 (ack) |
| e | integer | Même numéro d'événement que commande |
Exemple:
PC->M5 : {"f":3,"e":12874,"clr":2,"blk":1} // tous les boutons en rouge fixe
M5->PC : {"f":9,"e":12874}
Fonction 4: définition de l'adresse "remote"
Cette fonction permet d'indiquer à la passerelle l'adresse et le port utilisés par le PC.
PC->Passerelle
| Paramètres | Type | Description |
| f | integer | =4 |
| e | integer | Numéro d'évènement |
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =9 (ack) |
| e | integer | Même numéro d'événement que commande |
Exemple:
PC->M5 : {"f":4,"e":32874}
M5->PC : {"f":9,"e":32874}
Fonction 5: information d'un redémarrage de la passerelle
Cette fonction indique au PC que la passerelle a redémarré.
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =5 |
Exemple:
M5->PC : {"f":5}
Fonction 6: information d'un bouton pressé
Cette fonction indique que le bouton a été pressé.
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =6 |
| btn | integer | ID du bouton ayant été pressé |
Exemple:
M5->PC : {"f":6,"btn":3} // le bouton 3 a été pressé
Fonction 7: information d'un bouton relÔché
Cette fonction indique que le bouton a été relÔché
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =7 |
| btn | integer | ID du bouton ayant été relÔché |
Exemple:
M5->PC : {"f":7,"btn":3} // le bouton 3 a été relÔché
Fonction 8: erreur de communication avec un bouton
Cette fonction indique que le bouton ne répond pas
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =8 |
| btn | integer | ID du bouton ayant été pressé |
Exemple:
M5->PC : {"f":8,"btn":3} // le bouton 3 ne répond pas
Fonction 10: acquittement des erreurs
Cette fonction permet d'acquitter les erreurs de communication avec les boutons:
PC->Passerelle
| Paramètres | Type | Description |
| f | integer | =10 |
| e | integer | Numéro d'évènement |
Passerelle -> PC
| Paramètres | Type | Description |
| f | integer | =9 (ack) |
| e | integer | Même numéro d'événement que commande |
Exemple:
PC->M5 : {"f":10,"e":2456}
M5->PC : {"f":9,"e":2456}
Les écrans de la passerelle
Ecran principal
Cet écran est affiché au démarrage de la passerelle. Les ID des boutons définis sont affichés sur cet écran. Si un bouton est allumé, son image est affichée dans la couleur sélectionnée.
Sur l'image précédente, le bouton avec l'ID 1 est affiché en rouge.
Lorsqu'une erreur de communication est détectée, une icône d'alarme est affichée à côté de l'image du bouton.
Sur cette image, le bouton avec l'ID 5 est en erreur. Pour acquitter le défaut, il faut presser sur le bouton central.
Le coin en haut à droite indique le mode de fonctionnement du Wifi. Les barres indiquent que le mode Wifi est activé et est connecté. Les lettres AP indique que le Wifi est en mode AccessPoint et est activé.
Tous les écrans précédents indiquent un mode de fonctionnement en mode Marche (fonctionnement normal). Il est possible de changer de mode de fonctionnement en mode DEMO ou en mode TEST. Ce changement se fait en accédant au menu principal en maintenant enfoncé le bouton de gauche. Le menu s'affiche:
Sélection du mode de fonctionnement
Le mode "Arrêt":
Le mode "Arrêt" ne fait rien (pas d'action sur les boutons).
Le mode "Test":
Pour démarrer le mode "Test", pressez sur le bouton central. Le mode "Test" fait clignoter chaque bouton en jaune, il faut ensuite presser sur le bouton pour passer au bouton suivant. Une fois pressé, le bouton s'allume en vert fixe et le prochain bouton clignote en jaune et ainsi de suite jusqu'à tous les boutons on été pressés.
Le mode "DEMO":
Pour démarrer le mode "DEMO", pressez sur le bouton central. Le mode "DEMO" affiche chaque bouton, les uns après les autres, dans toutes les couleurs possibles. Une fois la boucle terminée, celle-ci recommence avec le premier bouton et ceci indéfiniment jusqu'à ce que l'utilisateur arrête le fonctionnement en pressant sur le bouton central encore une fois.
Les écrans de configuration
Configuration de l'adresse Ethernet locale en mode cÔblé:
L'adresse locale est l'adresse Ethernet de la passerelle en mode cÔblé (RJ-45)
Configuration de l'adresse Ethernet distante (PC) en mode cÔblé:
Configuration des boutons:
Pour définir un ID utilisé (adresse du bouton), déplacer le curseur à l'aide des flèches et sélectionner avec le bouton central pour activer/désactiver un ID.
Configuration du WiFi:
Il est possible de désactiver le WiFi, de fonctionner en mode Access Point ou de se connecter à un réseau WiFi existant.
Fonctionnement direct sur Comport sans passer par la passerelle
Le device peut également fonctionner directement sur un comport sans passer par la gateway. Pour cela, il faut définir le device comme suit:
[Device1]
Protocol=PickToLightGateway
ComPort=3
BaudRate=19200
Parity=Even
DataBits=8
StopBits=1
Timeout=500
ConfigString=1:16,2:1..12,14:17,15:13..15,18:19..21,21:22..31,31:18
De cette manière, tout le travail de communication avec les boutons est réalisé par le programme serveur sans passer par une passerelle.


















No comments to display
No comments to display