Jump to content

Comando Binário para Driver de Servo Motor


Adriano1981

Recommended Posts

Pessoal boa tarde

Preciso controlar um driver pra servo motor SMC modelo JXC92, estou usando protocolo Ethernet\ip para a comunicação! São três eixos. Tenho uma TAG de saída de 10 bits e preciso modificar a combinação binária em cada bit de acordo com o movimento a ser executado! Eu criei para cada movimento um bloco de função auxiliar e uma Tag com os valores já definidos. Na estrutura eu coloco como saída os bits que acionam o drive e como entrada cada bit da Tag que criei. Mas seguindo essa lógica você terá que criar um bloco e uma Tag para cada movimento! Gostaria de saber se alguém conhece uma forma mais simples de executar esta ação!

Agradeça pela atenção 

Link to comment
Share on other sites

  • MVP 2023

Google translate...

Good afternoon guys I need to control a driver for the SMC servo motor model JXC92, I'm using the Ethernet\ip protocol for communication! There are three axes. I have a 10-bit output TAG and I need to modify the binary combination in each bit according to the movement to be executed! I created an auxiliary function block and a Tag for each movement with the values already defined. In the structure, I place as output the bits that activate the drive and as input each bit of the Tag that I created. But following this logic you will have to create a block and a Tag for each movement! I would like to know if anyone knows a simpler way to perform this action! Thank you for your attention

Link to comment
Share on other sites

  • MVP 2023

As far as I understand from the manual for this driver - you have pre-programmed positions in the driver itself and you have to go through them in the appropriate sequence using the position number.

My thoughts:

1) A binary position number can be represented by a simple decimal number. And if necessary, rewrite in the tag as a binary number.

2) Enter the required sequences in the data table. Line number = step number. Column = program number. In this way, you will be able to edit both programs and steps.

3) Make a State Machine which, after starting, will increment the step number (line) starting from 0 (start position of the system after separate homing process). It will read the specified number from the line number from the column of the desired selected program. It will then send this code to the motion controller. Next, it will send the movement command and wait for confirmation that the movement is complete. And so on until there is no special unique stop code in the table, or, for example, a zero position value.

4) If pauses are necessary at the points of movement, they should also be entered in a table with a similar structure and added to the State Machine.

5) Interactions with other parts of your system can also be used to switch the State Machine.

Link to comment
Share on other sites

Agradeço pela resposta e pela atenção! 
 

seria possível criar um exemplo dentro  da estrutura de programação do unilogic? Por ser meu primeiro contato com a unitronics ainda não sei muito bem como utilizar as ferramentas só software! Outro detalhe! Eu não tenho uma confirmação de término de movimento! Não existe um sinal que é acionado sempre que o movimento é concluído! 
 

Agradeco mais uma vez pela atenção 

Link to comment
Share on other sites

  • MVP 2023

Translated - 

Thank you for your response and attention!
 
Would it be possible to create an example within the unilogic programming structure? As this is my first contact with unitronics, I still don't know very well how to use the software-only tools! Another detail! I don't have a movement end confirmation! There is no signal that is triggered every time the movement is completed!

Thank you once again for your attention

Link to comment
Share on other sites

  • MVP 2023
2 hours ago, Adriano1981 said:

Outro detalhe! Eu não tenho uma confirmação de término de movimento! Não existe um sinal que é acionado sempre que o movimento é concluído! 

 

2 hours ago, Joe Tauser said:

Another detail! I don't have a movement end confirmation! There is no signal that is triggered every time the movement is completed!

In manual p.48

https://www.smcworld.com/assets/manual/en-jp/files/JXCx-OMU0026.pdf

you can see Input - output  allocation of memory

All needed signal present via Ethernet IP.

Or if you have standard IO on PLC - this I/O signal can be wired to JXC92 inputs-outputs directly.

Link to comment
Share on other sites

Sim eu consegui identificar todas as memórias de entrada e saída via ethernet ip, porém na prática os sinais não funcionam de forma padronizada! Existem alguns sinais, out de 0 a 10, área de 1 a 3 que são acionados de forma aleatoria, para cada movimento existe uma combinação destes sinais! Até aí tudo bem, basta fazer a associação destes sinais para criar os targts positions! A a minha dúvida maior esta na sistemática para criar o acionamento binário  para a chamada de cada um dos movimentos! 

Link to comment
Share on other sites

  • MVP 2023

Translate...

Yes, I managed to identify all input and output memories via Ethernet IP, but in practice the signals do not work in a standardized way! There are some signals, out from 0 to 10, range from 1 to 3 that are triggered randomly, for each movement there is a combination of these signals! So far so good, just combine these signals to create the target positions! My biggest question is the system for creating the binary drive to call each of the movements!

4 hours ago, Adriano1981 said:

Sim eu consegui identificar todas as memórias de entrada e saída via ethernet ip, porém na prática os sinais não funcionam de forma padronizada! Existem alguns sinais, out de 0 a 10, área de 1 a 3 que são acionados de forma aleatoria, para cada movimento existe uma combinação destes sinais! Até aí tudo bem, basta fazer a associação destes sinais para criar os targts positions! A a minha dúvida maior esta na sistemática para criar o acionamento binário  para a chamada de cada um dos movimentos! 

I recommend that you carefully read the manual and learn how to do all the movements using the program from the manufacturer of this controller. The whole point of your problem is to write a sequence of the necessary movements and number them. Next, using the data from page 57, you can design the steps of your controller. The main task is to understand how the controller performs transitions between the positions you need. I recommend encoding the positions in absolute format. Then it will be possible to move from an arbitrary point to an arbitrary point without taking into account the sequence of movements. Note that the axis not selected in the program for this point will not move. Only after performing a full movement cycle manually (via the manufacturer's program or via conventional switches connected to the controller inputs) would I recommend that you start controlling via PLC.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...