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
"$