IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

interface Cobol/RPG AS400 avec une balance


Sujet :

AS/400

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut interface Cobol/RPG AS400 avec une balance
    Bonjour,

    J'ai besoin d'interroger une balance à partir d'un AS400

    Le constructeur m'a indiqué qu'il était possible de mettre un convertisseur RS232-> Ethernet (car l'AS400 n'est pas à côté de la balance)

    Je souhaite donc écrire un programme Cobol de préférence ou RPG pour lire les données de la balance. Je n'ai pas d'expérience particulière pour la communication avec d'autres ordinateurs (j'ai tout de même déjà utilisé quelques fois un fichier ICF mais cela fait presque 20 ans - connexion avec un Microvax et aussi un terminal portable - donc par un câble rs232)

    Si quelqu'un peut m'aider

    Merci

    Voici l'exemple que l'on m'a donné en VB6 sous Windows

    The winsock control is a standard control in visual basic 6. (mswinsck.ocx)

    The most important code is written below.
    (Extra code is usefull to make sure the connection is complete before afsking the weight. Or to wait until the answer from te scale is complete)

    1) make a connection

    Winsock1.RemoteHost = 192.168.1.201 '(IP-adres of the Serial-to-Ethernet converter)
    Winsock1.RemotePort = 4001 '(port of the Serial-to-Ethernet converter)
    Winsock1.Connect

    2) send the $-sign to ask the weight

    Winsock1.SendData("$")


    3) wait for the response(Winsock.DataArrival is an event in the winsock-control)

    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    Winsock1.GetData strData
    end sub

    4) Extract the weight from strData


    5) Close the connection

    Winsock1.Close

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 123
    Points : 146
    Points
    146
    Par défaut
    Bjr,

    Compte tenu du convertisseur et de l'exemple fourni en VB, la communication devra être faite en sockets TCP et non pas en RS232/ICF.

    Pour cela il faut se pencher sur les API unix de socket.
    Le lien sur les docs IBM :
    http://publib.boulder.ibm.com/infoce...apis/unix8.htm

    Et un célèbre tutoriel de Scott Klement :

    http://www.scottklement.com/rpg/socktut/tutorial.html

    (C'est en RPG IV, mais je pense facilement portable en Cobol)

    C'est assez simple en fait, il faut considérer la balance comme le Serveur et le programme sur l'AS est le Client.
    Le truc pénible, il en faut bien un, c'est que je suis prêt à parier gros que la balance est en codage ASCII... l'AS est en EBCDIC. Donc des conversions à prévoir...

    Sur le principe de base, tu auras besoins de 5 fonctions (API) :

    - socket() : déclaration d'un "socket" (~canal) de communication TCP,
    - connect() : connexion à la balance
    - send() : envoi de caratères à la balance
    - recv() : reception de caractères de la balance
    - close() : fermeture du socket

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Avant de t'embarquer dans les sockets qui représentent quand même un beau morceau à ingurgiter, je te recommande de consulter d'abord la doc qui accompagne la balance. Avec un peu de pôt, il est possible que la balance aie une doc qui montre quelques exemples de récupération des poids par des logiciels tels que VB, C++, etc.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci pour les infos

    j'ai téléchargé les exemples de Scott Klement et je vais donc m'atteler à la lecture

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de communication avec une balance
    Par jo9090 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 17/02/2012, 11h44
  2. connection Excel / As400 avec une variable
    Par NATOU2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2008, 15h52
  3. Dataset interfacé avec une Collection d'objets
    Par boulo dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/03/2007, 10h55
  4. probleme avec une interface graphique
    Par jibb2b dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/01/2007, 13h52
  5. Comment interfacer une apllication pour mobile gsm avec une application sur pc
    Par appsn dans le forum Développement Mobile en Java
    Réponses: 2
    Dernier message: 19/08/2006, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo