Visual I/O Components for serial port Page 1 Gestion de liaison
Transcription
Visual I/O Components for serial port Page 1 Gestion de liaison
*HVWLRQGHOLDLVRQVpULHVRXV9LVXDO,2 Composant Nom du Fichier : Serial Coms Receiver : Com232RX.VPU Destination du fichier : Æ Directory de l’application courante. Æ Directory d’installation, répertoire Module Onglet Boite à outils : Fichier : Serial Com.BOITE Æ Directory de l’application courante. Æ Directory d’installation, répertoire Module Description du composant : • • • Initialisation de la liaison série COM1 à COM8. Réception des caractères et stockage dans une variable Visual I/O. Gestion de perte de communication (Time Out). $WWHQWLRQ : Pour que le composant soit opérationnel, le synoptique le contenant doit être visible. Si ce composant doit être toujours en service le mettre dans le synoptique principal de l’application &RQILJXUDWLRQGHODOLDLVRQVpULH Comport : Com1 Æ Com8 Baudrate : 110 Æ 115200 bauds Parity : Even (Paire), Odd (Impaire), None (Aucune) DataBits : 8 Bits ou 7 Bits de données Stop Bits : 1 ou 2 bit de stop )RQFWLRQQDOLWpV ReadSerial : Entrée permettant de lire et de stocker les caractères reçus sur la liaison série. En connectant cette entrée sur la sortie Datapresent une lecture est effectuée à chaque réception de nouveau caractère. DataType : String ou Byte. Décrit si les caractères sont ASCII ou numériques. ResetCursor : Permet de remettre à 0 le pointeur de réception. TimeOut : En x10ms permet de fixer un temps maxi entre 2 réception de caractères. Si ce temps est dépassé une remise à zéro du curseur et de la variable Visual I/O est effectuée. Si time out=0 alors aucun traitement n’est effectué. VarVisual : Variable Visual I/O de type String ou Array of Byte. Recevant tous les caractères reçus de la liaison série. ComOk : Boolean passant à True si le port de communication s’est bien ouvert au lancement de l’application. DataPresent : Bit passant à true si un caractère non lu est présent dans le buffer du port de com (buffer Windows) LastCar : Byte indiquant le dernier caractère recu. Cursor : Curseur interne comptant le nombre de caractères dans la variable Visual I/O Variable Globales GS ResCur TS ComOK LastRec Count : %RROHDQ; : %RROHDQ; : 6WULQJ; : %RROHDQ; : :RUG; : ,QWHJHU; %XIIHU9LVXDO,2 Serial Com Receiver 76 = COM1 Organe externe envoie les caractères $562)7 ARSOFT &RXQW = 6 SI ResetCursor = True ou Timeout>0 ou Cursor>=255 76 = &RXQW = 0 Le principe est le même avec un tableau de byte Déclarez un tableau dans les Variables globales 5HF%\WH : Array [0..500] Of Byte; Ici 'DWDV7\SH est paramétré en réception de bytes et la variable Visual I/O est un tableau recevant les caractères de la liaison série. Le maximum est fixé à la taille du tableau (ici 500 bytes) Recbyte[0], Recbyte[1] … Recbyte[500] ARSOFT &RXQW = 6 "! Composant Nom du Fichier : Serial Coms Transmitter : Com232TX.VPU Destination du fichier : Æ Directory de l’application courante. Æ Directory d’installation, répertoire Module Onglet Boite à outils : Fichier : Serial Com.BOITE Æ Directory de l’application courante. Æ Directory d’installation, répertoire Module Description du composant : • • Initialisation de la liaison série COM1 à COM8. Emission de caractères sur une liaison série. $WWHQWLRQ : Pour que le composant soit opérationnel, le synoptique le contenant doit être visible. Si ce composant doit être toujours en service le mettre dans le synoptique principal de l’application &RQILJXUDWLRQGHODOLDLVRQVpULH Comport : Com1 Æ Com8 Baudrate : 110 Æ 115200 bauds Parity : Even (Paire), Odd (Impaire), None (Aucune) DataBits : 8 Bits ou 7 Bits de données Stop Bits : 1 ou 2 bit de stop )RQFWLRQQDOLWpV DataType : String ou Byte. Décrit si les caractères à envoyer sont ASCII ou numériques. MaxCarTrans : Nombre de caractères à transmettre sur la liaison série. Ce paramètre est utile seulement dans le cas de transfert de bytes. Dans le cas de transfert de chaînes de caractères la longueur des chaînes est prise en compte pour l’émission. Send : Commande pour envoyer les caractères sur la liaison série. L’envoi se fait sur front montant, le programme doit remettre le bit à false et le repasser à true pour effectuer un nouvel envoi.. VarVisual : Variable Visual I/O de type String ou Array of Byte. Transmise sur la liaison série. ComOk : Boolean passant à True si le port de communication s’est bien ouvert au lancement de l’application. "# ,QVWUXFWLRQVSRXUOHSLORWDJHGHODOLDLVRQVpULH±/LEUDULH6HULDO938 Vous pouvez aussi directement piloter la liaison série en utilisant les fonctions et procédures de la librairie Serial.VPU ^2XYUHXQFDQDOVpULH` Function 2SHQ&RP (ComPort,Baudrate,Parity,Bits,Stop:String ): Boolean; ^7HVWVLOH&DQDOVpULHVSpFLILpHVWGpMjRXYHUW` Function *HW&RP2SHQ (Comport : Integer) : Boolean; ^)HUPHXQFDQDOVpULH` Procedure 'LVDEOH&RP (ComPort : Byte); ^)HUPHWRXVOHVFDQDX[VpULH` Procedure 'LVDEOH$OO&RPV; ^7HVWVLXQFDUDFWqUHHVWSUpVHQWGDQVOHEXIIHUGHUpFHSWLRQ` Function 9'DWD2N (ComPort : Byte) : Boolean; ^5pFXSqUHXQFDUDFWqUHGDQVOHEXIIHUGHUpFHSWLRQ` Function *HW%\WH (ComPort : Byte ) : Byte; ^(QYRLHXQHFKDLQHGHFDUDFWqUHVGDQVOHEXIIHUG¶pPLVVLRQGXSRUWGHFRPPXQLFDWLRQ` Procedure &RP:ULWH (ComPort :Byte; Value : String); Exemple Portion de codes 8VHV6HULDO6\VSOF 9DU Ok : Boolean ; DoClose : Boolean ; B : Byte ; TS : String ; %HJLQ Ok := OpenCom(‘1’,’9600’,’E’,’8’,’1’) ; (VVDLHG¶RXYULUOHSRUWVpULH 3DULW\ 3DLUHGDWD%LWVVWRS%LW ,I GetComOpen(1)=False 7KHQ Message(‘Erreur Com1 pas ouvert’) ; ,I DoClose And Ok 7KHQ DisableCom(1) ; IHUPHOHSRUWVpULH (QG %HJLQ 7HVWVLLO\DGHVFDUDFWqUHVSUpVHQWGDQVOHEXIIHUGH:LQGRZV ,I V24DataOK (1) 7KHQ7HVWGHSUHVHQFHGHVFDUVVXUFRP %HJLQ B := GetByte(1) ; UpFXSqUHXQFDUGDQVOHEXIIHUGH:LQGRZV TS :=TS+Chr(B) ; 6LHVWXQFDU$6&,,DMRXWHUDODFKDLQH76 SendByte(2,B) 5HQYRLHOHE\WHVXU&RP ComWrite (2,TS) ; 5ppPHWODFKDLQHHQWRWDOLWpVXUFRP (QG ; (QG; ^(QYRLHXQHVpULHGHE\WHGDQVOHEXIIHUG¶pPLVVLRQ` Procedure &RP:ULWH%XI (ComPort:Byte; Var PointerTable; NB : Integer); Exemple 9DU Tab : Array [0..100] Of Byte ; &RP:ULWH%XI (3,Tab[0],101); (QYRLHE\WHVVXU&20 "$