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é. Exemple de DB de commandes: [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. Exemple de définition du device: [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. Exemple de définition du device: [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 La société Banner propose le produit EZ-Light K50 Modbus Series Pick-to-Light Sensors ou Pick-IQ K50 Ces boutons doivent être connectés entre eux par un bus RS-485. Il existe des convertisseurs USB-RS-485 pour pouvoir les connecter sur un PC. La fiche technique peut être téléchargée ici . 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 Sélectionner le menu "Mode de fonctionnement" à l'aide des boutons gauche et droit en les pressant brièvement. Une fois le menu surligné, presser sur le bouton central. Les modes possibles sont affichés: 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: Le premier menu permet de définir le type de bouton utilisé. Pour l'instant 2 types sont possibles: Le deuxième menu permet de définir les boutons utilisés: 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.