paradoxham
Messages postés39Date d'inscriptionvendredi 14 octobre 2005StatutMembreDernière intervention27 novembre 2009
-
20 déc. 2005 à 23:59
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 2014
-
21 déc. 2005 à 13:31
salut Mr
merci pour ce forum qui nous aide bcp dans nos projet
j'aime envoyer un etat 0 ou 1 par une liason serie avec Tcomport
qu est ce que j ecrit comme code dans le bouton d envoye sur delphi de meme pour recevoir un etat 0 ou 1
comment je connait que cet etat sera sur le port 1 ou 2 ...
est ce qu il ya un exemple ou des documents qui me facilite l'utilisation de ce composant ? j ai trouve un mais avec un exemple de chaine de caractere j aime avec des etat 0 ou 1
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201412 21 déc. 2005 à 07:43
salut
le port COM2 étant réservé à la souris il est inutilisable. En régle
générale sur les PC seul le port COM1 est accessible (sauf à rajouter
une carte d'extension ) il te faut simplement raccorder ton automate
sur le port COM1 ; ne connaissant pas le S200 de siemens vérifie qu'il
communique bien sous RS232 sinon il te faudra un convertisseur de
mode.
il me semble aussi que certains automate de cette serie communiquent
par ethernet et que dans ce cas on peut choisir le numero de port serie
celui ci étant vu comme un port virtuel par le PC.
qu'entends tu par un etat 0 et un état 1?
je suppose qu'il du caractere #0 et du carctere #1. Si c'est bien le
cas les routines données dans le tuto de Nono40 fonctionnent
parfaitement.
pour communiquer il faut
placer un composant Tcomport sur ta form
dans les proprietes
choisir le port sur lequel est connecté ton automate (le COM1 si tu travailles en direct)
choisir la vitesse de communication (baudrate) elle doit être égale à celle de l'automate (voir documentation de celui-ci)
en principe les proprietes databits;parity,stopbits,flowcontrol peuvent
être utilisées par défaut mais à vérifiées avec la doc de l'automate.
pour un test tu mets la propriété connected à true mais en régle
générale il est préférable de la laisser à false et à
nela connecter que quand celà est nécessaire.
pour envoyer un caractere #0:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Comport1.Connected then Comport1.Open;//on établit la communication
Comport1.ClearBuffer(true,true);//on vide le buffer de reste éventuel
Comport1.WriteStr(#0);// envoi un caractere 0
end;
pour recevoir tu peux utiliser l'évènement onRXchar
paradoxham
Messages postés39Date d'inscriptionvendredi 14 octobre 2005StatutMembreDernière intervention27 novembre 2009 21 déc. 2005 à 09:03
slt merci pour cette explication
je veux dire d'une etat c'est que j ai une sortie d'une automate qui envoie soit 0 ou 1 qui indique que ma machine est en marche ou non. Selon etat je vais activer une photo et desactiver l autre selon 0 ou 1. Vous pensez que ce programme accepte ces valeurs comme caractere ou booleeen ou autre
merci
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201412 21 déc. 2005 à 13:31
dans ce cas tu ne peux pas lire directement cette sortie avec la
liaison serie; qui a besoin d'un protocole de communication bien défini.
tu as besoin d'une entrée sur le PC qui réagisse aux 2 états, tu as plusieurs solutions pour cela:
- utiliser le port parallele (solution la plus simple)
- utiliser les lignes de controle du port serie ( solution un peu plus compliqué mais qui peu réagir à des évènements)
- utiliser une carte d'entrées/sorties (solution la plus sure mais demande un investissement en matériel)
ATTENTION DANS TOUS LES CAS IL FAUT ADAPTER LES NIVEAUX DE TENSION SOUS PEINE DE DESTRUCTION DU PC
en effet les entrees PC ne supporte pas plus de 5V pour le port parralele et 15V pour le port serie.
la aussi plusieurs solutions soit passer par un optocoupleur, soit
mettre un pont diviseur, soit rappeler l'entrée au plus 5V en mettre
une diode de protection.
pour lire le port parallele vas voir la source de ryryl: