1

yop,

J'ai la doc d'un moteur brushless qui me dit ça :
Jog movements represent "classical jogging". The motor is moved over
a selected distance by start signals. If the start signal is applied for a
longer period of time, the motor switches to continuous movement.
Mais... qu'est-ce qu'un "classical jogging" ?
Il y a des paramètres à passer pour tourner dans un sens ou dans l'autre, ou pour choisir une des deux vitesses prédéfinies dans ce mode. Mais que fais le moteur quand il "jog" ?

Merci d'avance smile


ps -> j'aurais jamais cru poster ici un jour grin
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

2

jog->il avance d'un step...

si, au moment ou le step est fini, le signal est toujours present, il attaque un autre step.

sinon, il attend, et il fera un autre step a la prochaine impulsion.

c'est en effet un mode classique de controle des moteurs, qui permet d'utiliser un brushless comme un pas-a-pas

exemple ici



vers 6 minutes

3

Merci beaucoup, ça colle avec ce que j'ai en effet ! top

Autre chose : à côté du positionnement absolu (on assigne une incrémentation où il faut se rendre), du positionnement relatif (on se déplace de tant d'incrémentation par rapport à la position actuelle, il y a le "Continue positioning ".
J'arrive pas à démarrer le moteur dans ce mode, et je ne sais pas trop ce qu'il est censé faire...

Une idée ?

Merci d'avance smile

Pour info, il s'agit d'un moteur brushless Schneider ILE1F : https://www.schneider-electric.fr/fr/download/document/0198441113568/
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

4

et tu as absolument besoin du moteur dans ce mode ? grin

(connais pas, regarderai la doc tt a l'heure)

5

Ah, trouvé. Quand on a un défaut et qu'on l'acquitte, ça permet de terminer l'ordre précédent.

En fait, je cherche un mode de type Jog, mais qui permette plus de chose que celui qui est proposé (que deux vitesses...).
Du coup j'explore, et je documente.
Les docs sont là : http://www.mirari.fr/g4LC et http://www.mirari.fr/gi2p
J'ai défriché et ça donne ça : http://www.mirari.fr/hlNB?a=view&nowrap=0&showln=0&tablen=4
Il me reste à documenter le sens slave-> master, mais c'est tout aussi simple.

Et je vais devoir compléter à la main les fichiers PDO / EDS, qui n'exportent que le strict minimum pour faire tourner le moteur, alors que la config est très riche (et entre autres, elle permet de modifier ces deux fameuses vitesses du mode Jog).

Merci pour tout, et surtout, je suis preneur de tout tuyau !!
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

6

mario-clipart-green-pipe-5.gif

dehors
avatar"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches / Meilleur smiley = #helico#

7

la je sais pas... ptet faut controler directement en mode vitesse si c'est dispo?

8

avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

9

" Profile velocity Etalonage vitesse "

Non, profile c'est bien profil,pas étalonnage, la vitesse consigne est pas directement atteinte, mais il y a un profil d'accélération pour atteindre la vitesse demandée, en général un profil trapézoidal, ie accélération constante tant que Vcur != Vconsigne, et pareil pour le freinage.

je devine avec le mot PDO que tu controles ton bouzin en CANopen, et que donc la doc CAN CIA 402 te sera utile.

Elle n'est pas dispo, oui, oui, je sais. http://www.mirari.fr/oBnN

10

(vous me rappelez des mauvais souvenirs avec vos histoires de moteurs et de CANopen embarrassed)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

11

12

Merci squalyl, juste une n-ième doc à déchiffrer, mais un grand merci grin
Je vais d'ailleurs devoir me pencher sur les PDO, et les SDO (service data object ?), car il y a tout un tas de paramètres que je vois dans la doc, et auxquels je dois pouvoir accéder "avec SDO" (je comprends pas trop ce que c'est que cette techno). Il y a un tas de données auxquelles ça m'intéresserait d'accéder.

J'ai tout à découvrir ><
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

13

(attention si tu t'inscris sur le site officiel pour choper les docs CANopen : ils t'envoient des mails régulièrement ensuite, et y'a pas de lien de désabonnement dedans cheeky)

Et pour les fichiers EDS, tu peux essayer de contacter le fabricant, il a peut-être les fichiers complets sous la main.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

14

Tu crois que si je demande à Schneider, ils vont s'occuper de moi ? Je peux rêver je pense, mais bon pourquoi pas ^^
Le truc marrant, c'est que je vois tout ce qui concerne le SDO dans le fichier EDS, mais dans mon IDE, dans la configuration de l'automate, rien qui ne me calcule les adresses de ces données sad
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

15

Folco (./14) :
Tu crois que si je demande à Schneider, ils vont s'occuper de moi ? Je peux rêver je pense, mais bon pourquoi pas ^^
J'ai jamais eu affaire à Schneider spécifiquement, mais avec un peu de persévérance j'arrive la plupart du temps à causer avec les fabricants / fournisseurs. Donc si ça marche même pour une micro-boîte comme la mienne, je vois pas pourquoi ça ne fonctionnerait pas pour le responsable technique d'un site industriel comme tu l'es smile
Si tu n'arrives à rien en les contactant directement et que tu as acheté les moteurs chez un revendeur en matos d'automatisme, tu peux aussi passer par lui (il a forcément des contacts avec le fabricant qu'il distribue).

Folco (./14) :
Le truc marrant, c'est que je vois tout ce qui concerne le SDO dans le fichier EDS, mais dans mon IDE, dans la configuration de l'automate, rien qui ne me calcule les adresses de ces données sad
Il n'y a rien dans ton IDE qui te permette de charger le fichier EDS directement ? En principe c'est à ça que ça sert, pour justement ne pas avoir à entrer la configuration à la main.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

16

les PDO c'est des messages dont l'adresse CAN décrit implicitement le role, ils ne contiennent que de la donnée utile et leur émission/réception doit être préconfigurée. Ils peuvent même s'échanger directement entre deux noeuds capteur et actionneur sans intervention d'un controleur.

Les SDO c'est un protocole complet de configuration des noeuds, avec en gros une méthode set et une méthode get pour changer les propriétés CAN de l'objet décrites dans son datasheet.

J'avais commencé une implémentation du merdier sous nuttx juste pour voir comment ca marchait, mais je suis pas allé très loin, et y'a encore des trucs pas super clairs pour moi.

Je n'ai non plus aucune idée de quoi sont capables les outils de configs d'automates qui savent de quoi ca parle... moi je n'ai fait que jouer avec quelques messages sans vue globale d'un bus.

17

Bon, merci pour tout. smile
Je viens de tomber sur une lib, CanUser_Master.lib, avec des fonctions qui pourraient bien être rigolotes. smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

18

En fait c'est un peu indigeste en lisant seulement la doc, ça va mieux en expérimentant concrètement avec les softs et le matos réel.

Et si ça peut rassurer Folco : sur un projet, j'avais fait acheter des moteurs et un automate en me basant sur les recommandations de la boîte d'automatisme qui les vendait. Sauf que je n'arrivais à faire marcher que les PDO, pas les SDO (il me semble, ça fait un petit moment maintenant). Donc j'ai demandé conseil à la boîte. Au bout de deux semaines ils m'ont recontacté, un peu embêtés : "ouais effectivement on n'y arrive pas non plus, il semble que le fabricant de moteurs n'interprète pas la spéc de la même façon que le fabricant d'automates, et aucun des deux ne veux patcher son code"...
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

Excellent grin
Bon, ben je demanderai alors, merci bien du conseil smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

20

Pas mal trilove

ils me semblent qu'il y a des plugfest, pourtant...

21

Un peu de doc : https://usermanual.wiki/Schneider-Electric/SchneiderElectricIp67UsersManual526934.1518744190/html
Il semble bien que je vais devoir utiliser une lib, vu les exemples.
Celle-ci me fait de l'oeil : ftp://ftp.moeller.net/DOCUMENTATION/AWB_MANUALS/MN05010001Z_EN.pdf

Vivement lundi, sur le banc d'essai smile




raaaaaaaaaaaaaaaaaahhh poutaing !!!!!!

Voici une doc du moteur : http://www.mirari.fr/YKEc
Voir le chapitre Using SDO Commands : http://www.mirari.fr/YKEc#G9.22910387
Hé ben avec ça, encore un peu de déchiffrage et je pourrai peut-être arriver à quelque chose love boing

• Folco va embaucher Warpten pour ses compétences en hacking tongue
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

22

Ça fait plaisir de te voir aussi motivé ^^
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

Grave. Si je me laissais aller, je me surprendrais à regretter de devoir passer du temps à la maison, je serais seul je serais h24 au taf xD
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

24

Bon ben c'est bon, j'écris un petit wrapper autour de cette fonction :
FUNCTION_BLOCK CanUser_SDOdownload
(*
	This function block starts a SDO download transfer and sends the data (max 4 byte) to the SDO server.
	The data transfer from the SDO client to the SDO server is made by an "expedited CAN transfer". 
	The SDO client sends the data with index and subindex to the SDO server. Afterwards the SDO server confirms the receipt of the data.

	Input parameter
		wDrvNr						CAN driver number (default: 0, more supported driver numbers are dependent on the used device)
		bNodeNr						CAN node number: 1..127
		bLen							Data length: 1..4
		wIndex							Index
		bSubIndex						Subindex
		bTxByte0						Data byte 1
		bTxByte1						Data byte 2
		bTxByte2						Data byte 3
		bTxByte3						Data byte 4

	Output parameter
		xReady						FALSE	... 	Action runs
										TRUE 	... 	Action done
		iStatus							1	...	OK
										0 	...	Wait
										-1 	...	Communication-Timeout (500ms)
										-2 	...	Abort
										-3 	... 	Send-Error
										-4 	... 	wrong node number
										-5 	... 	wrong data length
										-7 	... 	wrong wDrvNr
		dwAbortCode					Additional error code from CAN driver
										Possible error codes are to be taken from the CiA DS301 (Abort code).
	
	Input / Output parameter
			xStart						Level controlled Start/Stop of action: If the action is done the function block resets xStart automatically.
										FALSE ... 	Stop action
										TRUE	... 	Start action

	Note:
		The command byte of the SDO will be built by the FB as "initiate download request" with datasize inicated (see also description from CANopen, DS301).

		bit-no.		description
		5..7		css:	client command specifier		1	... initiate download request
		4			x:		not used, always 0
		2..3		n:		only valid if e = 1 and S = 1, otherwise 0. If valid it indicates the number of bytes that do not contain data.
		1			e:		transfer type 					1	... 	expedited transfer
		0			s:		size indicator  					1	...	data set size is indicated
*)
(ya la fonction symétrique en Rx)
Il suffira de passer une structure de donnée custom en paramètre, avec index, subindex et datalength.

Ensuite, j'écris un header bien documenté, basé sur ça : http://www.mirari.fr/mrSt#G13.20074210 , pour pouvoir lire/écrire tous les paramètres accessibles en SDO. J'ai juste à extraire les index/subindex/datalength.

Et pouf.

Le patron voulait avoir un nouveau mode de coulage de niveau avec des têtes volumétriques. On savait pas faire. Il sera servi. smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

25

top (je ne valide pas pour les tabulations par contre embarrassed)

26

(putain d'IDE où on ne peut pas remplacer les tabs par des espaces, ni paramètrer la taille des tabs triso)
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

27

(awwww)