Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » Tranfert fichier sur CNC via port COM

diemaker form
ProgBoarder
Citer Windows XP Firefox 2 - Posté le 13/02/2008 à 15:26
Bonjour,
Je souhaite tranférer un fichier iso (fichier de données texte)
via un port com sur une commande numérique
dans mon prog, je veux pouvoir changer les paramètres en dehors
de mon programme principal, fichier dat éditable manuellement.

voila mon bout de code qui me met une erreur que je ne comprend pas :


CLS
compcc$ = "com2:" 'donnees dans fichier dat
baud$ = "9600" 'donnees dans fichier dat
parite$ = "0" 'donnees dans fichier dat
nbrebits$ = "8" 'donnees dans fichier dat
bitsarret$ = "1" 'donnees dans fichier dat
sortie$ = compcc$ + baud$ + "," + parite$ + "," + nbrebits$ + "," + bitsarret$

PRINT
PRINT sortie$ 'pour controle affichage sans les apostrophes

OPEN "comtexte.dmf" FOR OUTPUT AS #1
WRITE #1, sortie$
CLOSE #1

OPEN "comtexte.dmf" FOR INPUT AS #1
LINE INPUT #1, sortie$
CLOSE #1

PRINT
PRINT sortie$ 'pour controle affichage avec les apostrophes

OPEN "pcc-fin.txt" FOR INPUT AS #1 ' ouverture du fichier iso

OPEN sortie$ FOR OUTPUT AS #2 'sortie sur le port COM ' probleme doit etre la

DO WHILE NOT EOF(1)
LINE INPUT #1, LigneEnt$
PRINT #2, LigneEnt$
LOOP
CLOSE
CLEAR



merci pour vos commentaires,
DMF
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Firefox 2 - Posté le 13/02/2008 à 16:30
(héhé Salutations.

OPEN "pcc-fin.txt" FOR INPUT AS #1 ' ouverture du fichier iso
Le fichier que tu tentes d'ouvrir en lecture n'existe pas …. (Code erreur 53).
Je ne peux t'en dire plus pour le moment.

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 14/02/2008 à 09:06
Bonjour,
le fichier "pcc-fin.txt" existe dans mon répertoire et contient des données à transferer sur la machine CNC via "le port com2"
l'erreur doit être à ce niveau, j'explique ce que je pense avoir compris :
pour envoyer sur un port com il faut la syntaxe :
OPEN "com2 : 9600,0,8,1" AS #1
les apostrophes doivent être importantes ?
c'est pour ça que j'exporte mes variables dans un fichier avec WRITE #1 pour que ma variable sortie$ soit égale à "com2 : 9600,0,8,1"
le plus simple serait de mettre directement : OPEN "com2 : 9600,0,8,1" AS #1
mais je veux pouvoir changer les paramètres de transfert dans un fichier extérieur au programme.
je ne sais pas si j'ai été clair ?
Merci
DMF
(confus)
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Firefox 2 - Posté le 14/02/2008 à 11:29
(héhé Salutations.

Je pense que tu devrais consulter l'aide Qbasic, Index, COM (instruction), pour changer de port de communication.
Tu dis : pour envoyer sur un port com il faut la syntaxe : OPEN "com2 : 9600,0,8,1" AS #1.
Cela ne doit pas être valable (code erreur 64).
Un nom de fichier ne peut comporter que HUIT caractères, UN point et une extension de TROIS caractères.
Qu'appelles-tu fichier extérieur au programme ? Ne serait-il pas possible de le placer dans un autre répertoire ?
Je n'ai jamais utilisé cette instruction COM (gêné)

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 15/02/2008 à 14:07
Bonjour,
regarde dans l'aide qbasic la fonction OPEN COM et je pense
que tu comprendra mon problème qui n'est pas une histoire de 8 caractères.
le fichier extérieur au programme est un fichier texte qui contient mes variables :
compcc$ = "com2:"
baud$ = "9600"
parite$ = "0"
nbrebits$ = "8"
bitsarret$ = "1"
Salutations,
DMF
(héhé
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Firefox 2 - Posté le 15/02/2008 à 16:34
(héhé Salutations.

Effectivement tu as raison et j'ai poursuivi les recherches.
J'ai essayé de faire fonctionner ton programme ou, tout du moins une partie que je te place ci-dessous :

CLS
F1$ = "COM1:9600,N,8,1,BIN" ' Exemple trouvé dans l'aide
PRINT F1$ + " le fichier fonctionne mais erreur (délai d'attente dépassé)"
'OPEN F1$ FOR RANDOM AS 2 'je l'ai mis en remarque

' Parité du périphérique à ouvrir. Les arguments valables pour la parité sont : N (pas de 'Parité), E (parité paire), O (parité impaire), S (espace) et M (marque).

compcc$ = "COM1:" 'données dans fichier dat
baud$ = "9600" 'données dans fichier dat
parite$ = "N" 'données dans fichier dat LE O (lettre) ne semble pas accepté ?
' Tu avais mis Zéro
nbrebits$ = "8" 'données dans fichier dat
bitsarret$ = "1" 'données dans fichier dat
F2$ = compcc$ + baud$ + "," + parite$ + "," + nbrebits$ + "," + bitsarret$
F2$ = F2$ + ",BIN" ' le BIN a peut-être son importance et tu n'as rien prévu …
PRINT
PRINT F2$ 'pour contrôle affichage sans les guillemets
SLEEP
OPEN F2$ FOR RANDOM AS #2 'fonctionne avec Erreur, délai d'attente dépassé

Je n'avais jamais eu à me servir de cela et ma remarque a du te paraître idiote (tu as raison).
J'espère que ces quelques remarques pourront te servir.

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 15/02/2008 à 18:45
Bonjour,
en effet SFLPMEA, ma parité n'est pas bonne,
sur les anciennes commandes numériques, on mettait :
"(TTY,B9600,P0,S1,D8)"
la parité était bien zéro, mais avec qb4.5 la parité est "N" qui doit être :
parité "NONE" soit pas de parité
pour le "BIN" je pense que ça doit transférer les données en binaire.
mes données sont du texte soit ASCII, mes je ne vois pas comment mettre les paramètres du port com en ascii (pas trouvé)
encore merci
salut
dmf
(confus)

Edité par diemaker form ( 15/02/2008 18:47:44 )
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 25/02/2008 à 16:06
Bonjour,
Pour faire plus simple, j'ai mis :
OPEN "COM2:9600,N,8,1,,RS" FOR RANDOM AS #2
PRINT #2, "COUCOU"
CLOSE #2
ça me retourne l'erreur :
"délai d'attente du périphérique écoulé"
pourtant j'ai mis "RS" qui ne devrait pas attendre de réponse du périphérique et envoyer directement ?
Si vous avez une solution, bienvenue dans ma galère !
Merci,
DMF
(désapprouve)
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 25/02/2008 à 18:33
Bonjour,
il manquait des infos :
j'ouvre le port sur la machine en entrant les commandes :
(tty,b9600,p0,s1,d8)
et la machine est en attente .
Si ça peut aider ?
Merci,
DMF
(gêné)
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 26/02/2008 à 11:12
Bonjour,
j'ai trouvé un site qui explique les options OPEN COM, mais je ne vois pas quoi prendre pour envoyer mes données.
http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOpenCom
ça se trouve en bas de page.
J'ai essayé avec :
OPEN "COM2:9600,N,8,1,op0,RS" FOR OUTPUT AS #2 ' ça ne coince plus ici
PRINT #2, "COUCOU" ' mais ça coince ici avec "délai d'attente du péripherique dépassé"
j'utilise un logiciel qui passe par le "com" pour envoyer des données via un tableau qui ressemble à ça :


!Comments start with ! or #
!Columns are separated by space, tab, CR, LF, FF, ",'
#
# possible entries for data link: file
# rs232
# hpib
# centronics
# pipe
#
# possible entries for access type: direct
# spooler
# rpcs
# iod
#
# parameter entries only for data link :rs232 interface settings
# pipe piped process
#
#device device data access
#name host file link type parameters
#
NELC1 systemX com2 rs232 direct 9600,n,8,1,x,1,1 # envoi sur machine
NELC3 systemX pertinax.txt file direct noparams # envoi dans fichier





je sais pas si ça peux aider ?
DMF
(désapprouve)

Edité par diemaker form ( 26/02/2008 11:14:12 )
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 27/02/2008 à 17:06
Bonjour,
Ya quelqu'uuunnnnnn (exclamation)!!!
J'ai l'impression de parler seul. (désapprouve)
Bon, j'ai trouvé quelques infos sur la ligne de commande :
NELC1 systemX com2 rs232 direct 9600,n,8,1,x,1,1
NELC1=driver par lequel passe le fichier
systemX=?
com2=com2
rs232=com2
direct=type d'envoi
9600,n,8,1= paramètres bauds, etc...
x=xon/xoff
1,1=?
Pour ça, je n'ai rien trouvé d'autre.
Pour mon programme,j'ai changé de tactique !
je passe par la fonction "sheell" qui me donne :
SHELL "mode com2:9600,n,8,1,x"
SHELL "type fichier.txt>com2"
ça m'affiche les paramètres du port et ensuite ça me met une erreur :
Write fault error writing device com2
abord, retry, ignore,fail ?
Merci à la personne qui essaie de chercher aussi mon problème,
car je pense avoir tout essayé.(à ma connaissance)
DMF
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,073 s - Crédits - Stats
1 connecté