Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2008, 19h37   #1
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut Fix32 et Sql server

bonjour à tous,
Pour une application j'ai besoin de récuperer des données sur un serveur sql avec une supervision sous fix32 de gefanuc.

Quelqu'un a t'il déjà fait ce genre de commande ?

merci
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2008, 16h28   #2
Membre habitué
 
Avatar de Angath
 
Inscription : juin 2004
Messages : 140
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 140
Points : 145
Points : 145
Envoyer un message via MSN à Angath
Bonjour,

Je connais pas trop FIX32, mais plus iFix (son succeseur) et Cimplicity (autre produit GeFanuc), je vais quand même essayer de t'aider.

Je dirai que tu dois regarder du coté des scripts VBA de FIX32. Faut créer un script VBA qui se connecte à ton SQL et fait la requête pour remonter tes données. Tu devrais trouver des exemples en VB/VBA sur devellopez.com
Une fois ton script capable de lire SQL, te reste à écrire ces données dans tes tag Fix32.

On fait comme ça dans iFix et dans Cimplicity, ça doit être sensiblement pareil sous FIX32.

Essayes ce forum sinon, si tu ne le connais pas déjà :

http://gefanuc.bnsi.net/eforum/forumdisplay.php?f=80
Angath est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2008, 20h32   #3
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut Fix32 et Sql server

bjr,
Je vais dire ce que j'ai fait déjà mais qui ne marche pas en tout je n'ai pas de valeur à l'ecran .
voici le code:
declare #VAR numeric picture
declare #RESULT[10][10] table picture
#VAR = SQL(nom_bd,"select","colonne1,colonne2,","nom_table","#RESULT")

Et sur la feuille j'ai crée des liens qui sont censés lire les valeurs suivantes

#RESULT[1][1] #RESULT[1][2] etc...

Pour le moment celà ne marche pas et pourtant j'ai suivi leur exemple illustré dans l'aide et dans les manuels.

Merci de me dire où est ce que j'ai foiré..
merci à bientôt
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 12h04   #4
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 24
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juin 2007
Messages : 24
Points : 28
Points : 28
Bonjour,

J'utilise cette syntaxe qui fonctionne sans problème sur un fix32 version 7.0

Code :
1
2
3
4
5
6
7
DECLARE #SEL NUMERIC SCRIPT
DECLARE #NUM_RECET NUMERIC SCRIPT
PROMPT #NUM_RECET "Entrez le numero de recette"
#SEL = SQL("Recet"; "SELECT"; "Abrviation,Code,Intitule"; "nom_table"; "WHERE Num_recette = #NUM_RECET"; 0; #RECETTE)
SETVAL FABRIQUE:ABREV.A_CV #RECETTE[1][0]
SETVAL FABRIQUE:CODE.A_CV #RECETTE[1][1]
SETVAL FABRIQUE:INTITULE.A_CV #RECETTE[1][2]
Il est possible que ton "#result" ne fonctionne pas à cause des guillemets.

J'espère que cela t'aidera.
Bonne continuation
sethangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 13h34   #5
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut RE

Merci de la réponse , je vais essayer de l'adapter à ma base et je te tiendrais au courant.

merci encore
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 18h41   #6
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut re

bjr,
#RESULT[1][1] #RESULT[1][2] ne marchait pas .
La raison est que je pointais sur une seule table avec 3 colonnes , donc la valeur de la table arrivait dans
colonne 1 arrivait dans #RESULT[1][0]
colonne 2 --------> #RESULT[1][1]
colonne 3 --------> #RESULT[1][2]
Là tout marche bien

Un autre probleme :
Dans ma requete
declare #VAR numeric picture
declare #RESULT[10][10] table picture
#VAR = SQL(nom_bd,"select","colonne1,colonne2,","nom_table","WHERE code = #code","#RESULT")
La commande WHERE marche bien sauf que des fois dans certaines tables il arrive qu'on aie 2 code identiques.
Comment pourrais je ajouter un second filtre (par une autre table) ?
Entre les 2 commande WHERE que faut il mettre : , ou & ou rien

merci
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 09h46   #7
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 24
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juin 2007
Messages : 24
Points : 28
Points : 28
Bonjour,

D'après ce que j'ai pu trouver tu dois pouvoir mettre
Code :
#VAR = SQL(nom_bd,"select","colonne1,colonne2,","nom_table1, nom_table2","WHERE code = #code AND col_table1 = col_table2","#RESULT")
Malheureusement je suis en train de réinstaller mon poste de développement et je n'ai pas pu tester.
Dès que je peux j'essaye et en attendant bon courage, et si tu as trop de problèmes tu peux peut-être passer par des commandes stockées dans ta base sql et les appeler avec des SQT et SQD.

Bon courage
sethangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 20h13   #8
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut re suite

bsr sethangel,
J'ai résolu mon probléme en creant une autre table SQL qui contient un resume de toutes les données dont j'ai besoin.
Celà m'evite de piocher dans différentes tables avec les erreurs que celà peut produire en cas d'oubli .

Maintenant il ne me reste plus qu'à lier ces données à des tags pour les exploiter avec mon PLC .
Cette partie n'est pas tres compliquée, mais si je bloque j 'appelerais au secours !!!
merci encore pour l'aide..
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 07h41   #9
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 24
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juin 2007
Messages : 24
Points : 28
Points : 28
Bonjour soninkara,

Ta solution de regrouper les données est effectivement une excellente idée.
De rien pour l'aide et je reste à disposition si jamais tu bloques sur la suite.

Bonne continuation.
sethangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 00h04   #10
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 37
Points : 37
Par défaut re suite

bonjour,

Je place le résultat de ma requête sql dans #RESULT
Maintenant j'ai une erreur quand le veux faire cette copie

STRCAT #NB #RESULT[1][2] car #NB est declaré dans la synoptique en tant que numeric picture alors que #RESULT est declaré en table global
Donc on ne peut pas copier 1 table vers 1 valeur numerique !!!

Comment pourrais je convertir ma table #RESULT[1][2] en numeric ?

merci
soninkara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web