Você está na página 1de 346

Driving Value

MP2000Siec com Sigma-5


Programação com o
MotionWorks IEC

TRM010-MP2000iecSeries-AppProg | Rev 3.00 | Data: 30/12/2010 | © 2010 Yaskawa Elétrico do Brasil. Todos os direitos reservados.
Visão Geral do Treinamento Módulos eLearning
Espera-se que o aluno já tenha feito os treinamentos:
 eLM.MP2300Siec.01.HardwareOverview
 eLM.MP2600iec.01.HardwareOverview
Estes Módulos eLearning incluem as seguintes informações:
 Recursos
 Características
 Opções
 EtherNet/IP
 MECHATROLINK-II

Estes eLMs estão inclusos no CD de eLearning e no Class CD


2
Visão Geral do Treinamento Cronograma
UNIDADE 1: Startup and Manutenção (5 horas)
• Interface Web, Project Archive (via web), Configuração de Hardware

UNIDADE 2: Programação Básica (5 horas)


• IEC61131-3, PLCopen, Posicionamento, Variáveis, IO

UNIDADE 3: Programação Avançada (6 horas)


• Funções de Usuário e Blocos de Funções, Bibliotecas de Usuário, Biblioteca Yaskawa(toolbox),
Homing, Engrenagem Eletrônica, Came Eletrônico

UNIDADE 4: Conectividade Ethernet (2 horas)


• Modbus/TCP, Ethernet/IP)

UNIDADE 5: Execução de Tarefas (1 hora)


• Tempo de Scan, Watchdog, Mlink, Criação de Tarefas, multi-task

TESTE DE CERTIFICAÇÃO(1 hora)

Apêndices
• Done vs InPosition
• Video OPC server eLearning
• MotionWorks IEC Express vs Pro
• Introdução à Programação SFC

3
Visão Geral do Treinamento Esquema de Aula

• Unidade
 Divisão
» Objetivos (apresentação do conceito)
– Apresentação do conteúdo
– Utilização dele como referência
» Aprendizagem
– Faça você
– “Mão na massa”
– Descrição da tarefa
– Descrição do procedimento
» Testes (quando disponível)
– Repetição da aprendizagem e objetivos apresentados
– Aplicação do que você sabe para criação de algo novo

4
Driving Value

UNIDADE 1
Startup e Manutenção

Visão Geral
Procedimentos de Manutenção
Análise e Rastreio de Falhas
Procedimentos de Startup
Driving Value Unidade 1
Startup e Manutenção

VISÃO GERAL

Objetivo: Apresentação da Maleta


Objetivo: Ferramentas do Software
Objetivo: Ajuste das chaves Frontais
Objetivo
Explanação Apresentação do Kit de Treinamento

Sigma-5 Sigma-5
Rede Mechatrolink-II Nó 1 Nó2
para controle de
Eixos e I/O

Encoder Absoluto Encoder Absoluto

I/O do SERVOPACK:
3 saídas (SO1, SO2, SO3)
7 entradas (SI0 ~ SI6)
LIO-01: SI1 = P-OT, SI2 = N-OT
8 saídas (DO0 – DO7)
8 entradas (DI0 – DI7)
16 I/Os disponíveis, mas somente 8
conectados no kit

7
Objetivo
Explanação Ferramentas de Software

Comunicação Ethernet com o PC

Servidor Web
•Confirmar a comunicação Ethernet
•Determinar/Ajustar o endereço IP
•Executar upgrade de firmware
•Localização de defeitos e reset
•Salvar/Descarregar um arquivo de projeto
•Testar o movimento dos eixos

MotionWorks IEC
Ambiente de programação
Configuration Tool
•Salvar a auto-configuração
•Configurar o hardware do controlador
e do servo
•Teste de movimento do(s) eixo(s)

8
Objetivo:
Explanação Ajuste das Dip Switches do MP

STOP: parar o programa


SUP: modo de supervisão para
upgrade de firmware
INIT: sempre em OFF
Use
CNFG: auto-configuração do
hardware (deixe em ON)
MON: sempre em OFF
TEST: sempre em OFF
Use
E-INIT: força temporariamente o Condiçõa Normal: Todas as chaves em OFF exceto
endereço IP para 192.168.1.1 a CNFG e talvez a E-INIT

E-TEST: sempre OFF Veja o


Guia de
Referências
Rápidas

9
Driving Value Unidade 1
Startup e Manutenção

Procedimentos de
Manutenção
Aprendizagem Identificar/Configurar um endereço IP
Objetivo Executar um Upload do Projeto
Aprendizagem “Puxar” o projeto de um controlador
Objetivo Substituir o controlador
Procedimentos de Aprendizagem:
Manutenção Estabelecer Comunicação Ethernet

Veja o Guia da Referências Rápidas para estabelecer


comunicação Ethernet com a página web do controlador

Procure o
endereço IP do
Controlador.

11
Procedimentos de
Manutenção
Web Server

Web Server do MP
 Credenciais Case Sensitive
» Login: Admin
» Password depende do controlador
Dados do login:
– MP2300S
Admin – MP2310
MP2300S – MP2600

Ou  Níveis de Acesso
Admin Customizáveis
MP2600 » Definido no arquivo www.xml
Ou
» Nota ténica AN.MCD.09.069
Admin detalha o procedimento
MP2310
 Alarmes, Histórico de Alarmes,
Referências de Alarme

12
Procedimentos de Objetivo:
Manutenção Indentificar/Configurar um endereço IP
O Endereço IP do The IP do controlador pode ser definido através da página web
Se o endereço IP não for conhecido, conecte usando a chave E-INIT e o IP192.168.1.1

MP2600iec
Dados do login:
Admin
MP2300S

Ou

Admin
MP2600

Ou

Admin
MP2310

13
Procedimentos de
Arquivo de Projeto
Manutenção
• Install Archive
 Descarrega todo o projeto no
controlador (no formato .zip)
 Gera um “clone” com o novo
controlador
• Create Archive
 Tira uma “foto” do controlador
(no formato .zip)
Login como:
» Configuração
Admin
» Programa MP2300S
» Boot Project ou
» Arquivo-fonte
Admin
(editável no software) MP2600

14
Procedimentos de APRENDIZAGEM:
Manutenção Criar um Arquivo de Projeto(Upload)
Create Archive
 Clique em “Receive from Controller”
 Salve como qualquer arquivo da
internet
O Arquivo contém os dados da
aplicação visualizados em ”File
Listing”
 Programa
 Configuração
 Tabelas de Cames
 Parametros do Servopack
O Arquivo não possuem alguns dados
específicos de hardware:
 Endereço IP
 Offset do encoder Absoluto
 Histórico de Alarmes , data, tempo
 Valores das variáveis retentivas
 Firmware
15
Procedimentos de
Instalação do Arquivo
Manutenção
Instale o arquivo salvo anteriormente
Recupere o programa do outro MP
Troque o controlador danificado Configuraçõesque devem ser ajustados
manualmente
Implemente o novo controlador 


Endereço IP
Offsets de Encoder Absoluto
 Histórico de Alarme,
 Data, hora
User  Valor de varíaveis gravadas
 Firmware
Abuse

16
Procedimentos de Startup a partir do
Manutenção Project Archive
Topologia da demosntração de substituição de hardware
 Simulador de IHM no PC via Modbus/TCP
 Todos os controladores da Classe irão rodar com o mesmo arquivo
» Os Endereços IP serão diferentes
» Diferentes Drives e motores
» Cargas montadas no motor com diferentes orientações

17
Prática:
Maintenance Procedures
Startup a partir do Project Archive
Install Archive
 Primeiro “Delete All User
Files”
 Procure o arquivo no
PenDrive
Archive_TreinaExemplo.zip
 A Instalação estará
completa quando os
arquivos aparecerem
» Aproximadamente 30
segundos
 Clique em Reboot para
rodar
Veja o
Guia de Reboot
Referencias reenergizará
Rápidas somente o
Item 2.4 controlador
18
Procedimentos de Prática:
Manutenção Startup a partir do Project Archive
Iniciando o Simulador Crimson
 Abra o Software“Crimson3.0”
 Abra o arquivo, selecione o
arquivo de acordo com o
endereço IP
 Utilize o botão
 Acesse o modo
Manutenção

19
Procedimentos de Prática:
Manutenção Startup a partir do Project Archive
Comissionando um novo Sistema
 Envie os Parâmetros para o
servo
 Reset o Encoder Absoluto
 Faça um novo
Referenciamento

Escreva todos os
Pn do Servo

Reset Abs
Encoder

20
Procedimentos de Prática:
Manutenção Startup a partir do Project Archive
Faça um novo Referenciamento
 Faça o referenciamento nos
Eixos
 Movimente até a nova posição
 Regule-a como novo ponto
zero
 Refaça o referenciamento

21
Procedimentos de
Manutenção
Substituição de Hardware
Controlador
 Ajuste o Endereço IP
 Descarregue o Arquivo (zip)
 Regule o novo offset do ponto zero (para abs
enc)
Drives
 Ajuste o Endereço Mechatrolink (exceto para o
MP2600iec)
 Envie os Parâmetros
» Estes estão incorporados no programa!
– Veja como é simples implementar no TreinaExemplo
» Para maiores detalhes , veja o documento Veja
PD.MP2000iec.10.105 Guia de Referencias Rápidas
Motores
 Reset do Encoder Absoluto*
 Envie o Limite de multi-turn (se aplicável)*
* Reset do Encoder
» Incorporado no programa
Absoluto e o envio do
– Veja como é simples implementar no TreinaExemplo
limite Multi-Turn(Número
» Veja o documento: PD.MP2000iec.10.106
de voltas do encoder)
» Veja o vídeo: eLV.MP2000iec.01.Maint-MtrRplce são enviados através do
MotionWorks IEC
22
Procedimentos de Prática:
Manutenção Machine Operations “Test Move”

Machine Operations Machine Operations necessita do Java


 Rastreio de Falhas
de uma máquina
existente
» Ligue a chave STOP
» A programação do
eixo está na unidade
de máquina (mm /
graus / polegadas)
» Rode o motor para
confirmar a
funcionalidade do
eixo
O Controlador não deve estar em
 “Drive Pn” tab modo RUN .Ligue a chave STOP.
» Análise de alarmes e
reset
» Ajuste do Encoder
Absoluto

23
Driving Value Unidade 1
Startup e Manutenção

Analise / Rastreio de Falhas

Objetivo Tela Principal do MotionWorks IEC


Prática Monitore a Ordem de Execução da POU
Prática Monitore a POU
Prática Watch Window
Procedimentos de
Manutenção
Execute o MotionWorks IEC
Vamos dar uma olhada no projeto rodando no controlador

25
Analise / Rastreio de Prática:
Falhas Começando um Novo Projeto

Veja o Guia de Referencia Rapidas como iniciar um novo


Projeto(item 1.3)
 O propósito deste novo projeto é somente conectar ao
controlador e fazer um Upload do código Fonte(source)

26
Análises / Localização de Objetivo:
Falhas Tela Principal do MotionWorks IEC

•Aumente a área de visualização do


programa fechando algumas janelas
•Algumas janelas são habilitadas
somente quando a áre do programa
estiver ativa
•As janelas podem ser realocadas

27
Análises / Localização de Objetivo:
Falhas Tela Principal do MotionWorks IEC

Área de Programação

Logica dos Programas


Páginas de Código
T = comando de
texto
V = variáveis

28
Análises / Localização de
Falhas
Endereço IP
Defina o endereço IP do projeto no ambiente de programação do
MotionWorks IEC

Right-Click
Set Project IP
Address to match
controller address

29
Analise / Rastreio de
Falhas
Resource Dialog
Botão Project Control
 Abra a caixa de comunicação “Resource”
» O controlador é o seu “Resource”
 Estabeleça a conexão com o controlador
» Se estiver “online” aparecerá a tarja verde
» Se o botão Error estiver vermelho, você deve
clicar para visualizar / resolver o erro
 Feche a caixa Resource quando não
estiver usando
» Ela consome processamento do software e do
controlador enquanto aberta
» As Tasks não podem ser deletadas ou suas
propriedades alteradas com esta caixa aberta
» Evite Erros “A com chanel is open”

30
Análises / Localização de
Hardware Físico
Falhas
“Resource” é o Controlador
 Resource roda “Tasks”
 “Tasks” roda “Programs POUs”
 “Order of POUs” é a ordem na qual
elas são executadas

A “Resource” está rodando as tasks?


 Ajuste o Endereço IP
 Cheque o status da janela
“Resource”
 Verifique o led RUN do controlador

31
Análises / Localização de
Falhas
Código Fonte
“Carreguando no PC” o código
Fonte(source)
 O código fonte é uma cópia
editável de todo o projeto
» Inclue a Configuração de
hardware e o Ajuste dos ganhos
 Não é necessário salvar o
código fonte
 O Source fica dentro do
project archive “zipfile.zwt”
» Somente para o MP2300Siec e
MP2310iec
 Se o controlador possui o
código fonte, o botão Upload
fica habilitado na janela do
Resource

32
Análises / Localização de
Falhas
Upload do Project Source
Procedimento
 Faça o upload do Project
Source no Controlador
 O MotionWorks IEC
descompacta o fonte no PC
 O projeto será fechado
automaticamente
» Você será questionado para
salvar o projeto
 Abra o projeto
 Ajuste o endereço IP para
comunicar através do “Project
Control”

33
Analise / Rastreio de
Falhas
Project Source Upload
Finalize o procedimento para extrair o código fonte do projeto
 Veja Guia de Referencias Rápidas Item 2.2
 Após a extração do projeto, você deverá salvar em uma pasta
no PC
 Veja o Guia de Referencias Rápidas para abrir e rodar o
projeto TreinaExemplo

34
Analise / Rastreio de
Monitor Code
Falhas
Monitore o código através do
modo Debug
 Clique no botão DEBUG ON
 A edição não será permitida
durante a execução deste
modo

Abra a POU chamada “HMI”


 Habilite e desabilite os servos
através da IHM

35
Analise / Rastreio de
Monitore e Force os I/Os
Falhas
I/O físicas podem ser forçadas
 Duplo-clique na variável do código
 Duplo-clique na lista de variáveis
globais

36
Análises / Localização de
Monitore e Force o I/O Físico
Falhas
Monitore as Variáveis Globais

• Duplo cilque na linha


superior para abrir uma
janela de variáveis no
modo Debug.

37
Sobreescrevendo o Valor
Análises / Localização de Falhas de uma Variável

Abra diferentes POUs conforme você for trabalhando com eles


 Abra o POU “Positioning”, por exemplo
 Dê um duplo clique na variável chamada “Velocity”
 Digite o valor de “90.0” e dê um “Overwrite” para alterar temporariamente o
valor
 Para o temporizador, coloque o pre-fixo T#0.3s ou T#300ms etc

•O valor mostrado NÃO


é o valor corrente da
variável; ele é o último
valor inserido neste
campo.

38
Analise / Rastreio de Prática:
Falhas Watch Window

Clique B-Direito na variável


(Debug Mode)
Ou Arraste para a Janela
 Add to Watch Window
 View – Watch Window
» D-click para mover a janela
» Múltiplas listas podem ser criadas
B-Direito

The Watch Window is •Tab names can be


only available in changed
DEBUG MODE
39
Análises / Localização de Falhas Cross Reference

Cross Reference
 B-direito na variável, Build Cross
References
 Clique na variável, a janela
Cross References lista outras
ocorrências
 Clique na variável da lista para
abrir a página com o código
 B-direito na barra lateral, “Filter”
para acessar mais opções

40
Analise / Rastreio de Prática:
Falhas Logic Analyzer

Explanação do Logic Analyzer


 Podem ser ‘plotadas’ até 16
variáveis
 Facilita a análise do programa

O Logic Analyzer está


disponível somente no
modo DEBUG A janela Logic
analyzer pode ficar
muito pequena. B-
Direito ‘undock’ e
redimensione a Tela

41
Analise / Rastreio de Prática:
Falhas Logic Analyzer

Adcione as Var. ao Logic Analyzer


 Ligue o Modo Debug
 Arraste as variáveis a partir do
código
 B-Direito para adicionar à lista
de variáveis

Adicione estas Variáveis


ActualVelocityLeft
ActualVelocityRight
O Logic Analyzer está Done
disponível somente no AX1_PSET
modo DEBUG AX2_PSET

42
Analise / Rastreio de Prática:
Falhas Logic Analyzer

Trigger Configuration
 B-Direito no menu Logic Analyzer

B-Direito

43
Analise / Rastreio de Prática:
Falhas Logic Analyzer

• A captura dos dados é


dada pelo tempo da Task
 Aba Hardware
 B-Direito “Task”
» Settings

O ajuste “Interval” representa


o tempo de varredura da task.

Não mude arbitrariamente o


intervalo simplesmente para
melhorar resolução do Logic
Analyzer

44
Aprendizagem:
Análises / Localização de Falhas Logic Analyzer

• Execute o programa de exemplo e


grave os dados
 Plote qualquer dado

Segure os botões esquerdo


ou direito do mouse para
ajustar a escala horizontal e
vertical

Arraste as cooredenadas do
eixo para medir dos valores

45
Aprendizagem:
Análises / Localização de Falhas Descarregando o Projeto

Dois passos para descarregar as


modificações
 Make
 Download Changes

• Example
 Abra a POU IHM
 Debug Mode OFF
 Adicione contato paralelo
 Make
 Download Changes
Para adicionar um contato paralelo:
•Clique no contato existente
•Clique no botão paralelo
•Duplo clique no novo contato e nomeie a variável

46
Objetivo:
Análises / Localização de Falhas Descarregar o Projeto

• Três itens principais


 Project Desmarque ítens durante
 Boot Project o desenvolvimento do
código para um download
 Source mais rápido

• Desmarque alguns itens durante


o desenvolvimento do programa
para um download mais rápido
• Boot Project
 É carregado na memória RAM na
energização e executado
automaticamente
• Source Code
 Salva todo o arquivo de projeto no
controlador para um futuro upload
 O Download será demorado
47
Objetivo:
Análises / Localização de Falhas Auto-Start do Programa

• Veja o GRR para descarregar o Boot Project e garantir o


auto-start do programa

O Boot Project
pode ser
O Boot Project descarregado
pode ser individualmente
descarregado junto
com o projeto (e o
fonte)

48
Objetivo:
Análises / Localização de Falhas Salva o projeto para futuro upload

• Veja o GRR para descarregar o “Sources” e permitir


futuro Upload

O Source pode ser


descarregado junto
com o projeto (e o
boot project)
O Source pode
ser descarregado
individualmente

Marque todas as
opções

49
Analise / Rastreio de Objetivo:
Falhas Cold Start, Warm Start, Hot Start

Três formas de ‘rearmar’ a CPU


 Cold Start
Por que marcar a opção “Retain”?
» Todas as variáveis, incluindo as retentivas Offsets de Home, Contagem de
“Retained” serão inicializadas peças e outras variáveis que
 Warm Start necessitarem que o dado seja
mantido após desligar o controlador.
» Semalhante à reenergizar o controlador
» Variáveis retentivas não serão inicializadas, O controlador utiliza uma bateria de
todas as outras serão lítio para manter os valores das
 Hot Start variáveis.
» As variáveis não são inicializadas; o valor
permanece o mesmo que estava antes

50
Analise / Rastreio de Objetivo:
Falhas Cold Start, Warm Start, Hot Start

• System Tasks a partir do Cold Start ou Warm Start

• Cold start ocorre durante o


desenvolvimento do código ou no start-
up de uma nova máquina via project
archive(web server)

51
Driving Value UNIT 1
Startup e Manutenção

Procedimento de Startup

Arquivos de Configuração
Novo Projeto
Ressetando para o padrão de fábrica(Factory Default)
Configuração de Hardware
Iniciando a Programação
Procedimentos de Arquivos de
Startup Configuração

• Configuração
Configuração
 Arquivos XML definem o
hardware
• Execução
 Código da aplicação (LD, ST,
etc)
Execução

53
Procedimentos de Arquivos de
Startup Configuração

O arquivo de configuração pode ser visualizado através do webserver


 Que configuração de arquivo está “In Use” ?

54
Procedimentos de Arquivos de
Startup Configuração
Chave CNFG e os arquivos de configuração (veja o que acontece dentro do controlador)
1. Na primeira energização, DEFAULT é utilizado (apenas na condição ‘ressetado para o padrão de fábrica’)
2. A toda energização com a chave CNFG=ON é criado um arquivo DISCO (mas não é usado)
3. Importe o arquivo DISCO para o projeto OFFLINE quando conectar com o controlador
4. Salve o projeto OFFLINE para o STARTUP no MWIEC
5. Na segunda energização, o STARTUP será utilizado

Default Cnfg
CNFG =ON
Disco Cnfg

Startup Cnfg Offline Cnfg

55
Aprendizagem:
Procedimentos de Startup Começar um Projeto Novo

Veja o GRR para iniciar um novo projeto


 QRR Seção 1.7

 Salve como “Projeto Temporario.mwt”

56
Procedimentos de Prática:
Startup Resete para o Padrão de Fábrica

Siga o GRR para Resetar para o Padrão de Fábrica


 O controlador salva o endereço IP em uma área separada da
memória FLASH e não pode ser resetado
» Utilize a chave E-INIT para sobreescrever o endereço IP para
192.168.1.1
» Somente para o MP2600iec: a chave E-INIT também sobreescreve a
porta B para 192.168.2.1

Após “Restore to
Factory Default”, não
há nenhuma
configuração de
Start-up

57
Procedimentos de Startup Configuração de Hardware– Online

Siga o GRR para Entrar Online


 Endereço IP no Configuration Tool do MotionWorks IEC

O IP do “Connect” é utilizado
pela parte de Configuração de
Hardware, somente

TCP/IP Settings define o IP do


Controlador (E-INIT = Off)

58
Procedimentos de Use as configurações do
Startup Auto-Discovery
O controlador descobre o hardware local e a Mechatrolink na
energização
 Quando CNFG = On
As configurações do Auto Discovery podem ser importadas
para o projeto
 Somente quando não há configurações de Startup (depois de
resetar o controlador)
A única vez que você
conseguirá “puxar” a
configuração “Disco” para
seu projeto será após um
RESET do controlador,
porque nesse momento não
haverá arquivos de “Startup”

59
Procedimentos de
Startup
Reset dos Eixos
• Resete os Parâmetros Pn para valores de fábrica
 Envie os parâmetros de fábrica para o ServoPack
• Reset o Encoder Absoluto
 Limpe Alarmes
 Zere a contagem de voltas do encoder Absoluto
 Envie o limite Multi-turn (Pn205) para o encoder

60
Procedimentos de
Startup
Online Save
SEMPRE Salve a Configuração
Atenção especial ao item!
 Se offline ou online

 Make e Download

 Reenergize a potência

61
Configuração de Hardware
Procedimentos de Startup
afeta os programas
• A configuração de hardware muda o programa executável
 Variáveis Globais
 Configurações de IO(drivers)

62
Procedimentos de
Startup
Ajuste as unidades de usuário
• Ajuste as Unidades de Usuário
 Use mm como unidade
 Sistema Mecânico:
» Fuso de Esferas(Ballscrew)
» Passo 10mm/rev
» Sem Redutor

Machine Cycle é
aplicável somente
quando o parâmetro Feed Constant é o
1007 “Load Type” = quanto a máquina
rotary desloca por revolução
da carga

GB

N-OT P-OT

63
Procedimentos de
Startup
Envie as configurações Offline

• Se você salvou as
alterações quando
OFFLINE
 Envie para o
Controlador
» Rapidamente
 Connect, Online Save
» Assim os parâmetros do
Servo serão Atualizados
 Recupere as
Configurações Atuais
» Recupera as alterações
salvas no controlador
» Descarta as alterações offline

64
Procedimentos de Startup Teste de Movimento
• Teste de Movimento
 Verifica as unidades do usuário

Aceleração típica é de
Speed x 100

65
Procedimentos de Startup Ganhos do Servo
Sigma-5
 O padrão “Tuning-Less”
normalmente já é suficiente
 Ajuste “fino” com o SigmaWin
Plus
» Autotuning Avançado e o “One
Parameter Tuning”
» Análises mais precisas (0,125
ms)
» É necessário desconectar o
Servo da Mechatrolink

Sigma-2 e Sigma-3
 Ajuste os ganhos
manualmente através do
MotionWorks IEC ou Web
Server
» Menor precisão na análise (2,0
ms de acordo com a taxa da
Mechatrolink)

66
Procedimentos de Startup Ganhos do Servo
Sincronize os parâmetros com o Controlador
 Abra o CT do MotionWorks IEC
 Entre Online , “Use Startup Configuration”, e SALVE
 Você pode confirmar se os parâmetros foram salvos abrindo o
arquivo de parâmetros daquele eixo

67
Procedimentos de Startup Ganhos do Servo
Recomendações para Tuning

 Implemente a função
“Y_WriteParameters” no
programa
» Permite uma substituição
extremamente simples do
servo em campo
» Recomendamos rodar a
função apenas após
solicitação do usuário, não
automaticamente a cada
energização

68
Driving Value

UNIDADE 2
Programação Básica
Padrão IEC61131-3
Padrão PLCopen
MC_Power
Posicionamento Ponto-a-Ponto
Temporizadores e Sequenciamento
Utilizando I/Os
Variáveis
Driving Value Unidade 2
Programação Básica

Padrão IEC61131-3

Objetivo Resumo da IEC61131


Objetivo Execução dos Programas
Aprendizagem Criar um POU do tipo LD
Aprendizagem Inserir uma instrução
Teste Criar um programa novo e inserir uma instrução
Objetivo Conceitos de Linguagem de Alto nível
Objetivo Regras para Variáveis
Áprendizagem Digitando uma variável
Aprendizagem Visualizando Variáveis
Objective Utilizando Variáveis
Padrão IEC61131-3 Resumo da IEC61131-3

• Padrão de programação que define:


 Comportamento da execução dos
programas
 Linguagens de programação
 Conceitos de linguagens de alto nível
 Sintaxe das variáveis

71
Padrão IEC61131-3 Execução do POU

• Program Organization Unit (POU)


 3 tipos de POU
» Programas Apenas os programas
» Funções POUs podem rodar em
uma tarefa. Funções e
» Bloco Funcionais Blocos de Funções rodam
em um programa.

POUs Lógicos contém


a página de código

A aba Hardware mostra a ordem de


execução dos POUs dentro de uma
tarefa (Task)

72
Aprendizagem:
Padrão IEC61131-3 Criar um novo Programa

• Passos para criar um novo POU


 Clique com o botão direito na pasta dos POUs.
 Digite o nome: “Pratica_LD”
 Escolha a linguagem de programação: selecione LD
 Adicione uma instância de programa nas tarefas.

73
Aprendizagem:
Padrão IEC61131-3
Inserir uma Instância de Programa
• Passos para rodar um programa POU em uma tarefa
 Botão direito na tarefa – Inserir uma instância de programa
 Escolha o tipo do programa
 Digite a instância de forma que case com o tipo de programa

Tipo de instância deve


casar com o tipo de
programa

74
Objetivo:
Padrão IEC61131-3 Linguagens de programação

• 5 Linguagens de
programação
 IL (Instruction List)
Use  ST (Structured Text)
 SFC (Sequential
Function Chart)
 FBD (Function Block
Diagram)
Use
 LD (Ladder Diagram)
Quando você cria um novo POU, seja ele um
programa, uma função ou um Bloco Funcional, você
deverá escolher em qual linguagem você irá
*FBD e LD são “híbridos” de ambas as trabalhar com ele…
linguagens e são equivalentes. Não há conversão entre linguagens.

75
Padrão IEC61131-3 As 5 Linguagens da IEC 61131-3

Lista de Instruções Texto Estruturado Carta de Funções Sequenciais


LD A
ANDN B C:= A AND NOT B
ST C
Passo 1 N Preenc.

Transição 1

Blocos de Funções Ladder Passo 2 S Vazio

A B C
AN -| |--|/|----------------( ) Transição 2
A D C
B Passo 3

76
Padrão IEC61131-3 Modelo de Sofware IEC 61131-3

IEC 61131-3 Software Model


Configuration A
Resource L Resource L

Task1 Task2 Task3 Task4

Program P1 Program P2 Program P3 Program P4

FB1 FB2 FB3 FB4

global and direct adressed variables

access paths

Task association
Access path association

77
Padrão IEC61131-3 Termos Utilizados no Modelo

• Configuração
São todas as configurações de software pertinentes à topologia adotada para
sua automação
• Recurso
Todo elemento dentro de uma CONFIGURAÇÃO que possua capacidade de
processamento, como Controladores, IHM, Gateways, etc.
• Tarefa
É um elemento de execução para um determinado grupo de programas, que
podem ser executados de forma periódica, cíclica ou condicionados (trigger)
• POU
Unidades de programa que interagem com inúmeras entradas, saídas,
Funções e Blocos Funcionais
• BF
São Blocos Funcionais que interagem com inúmeras entradas e saídas,
Funções e Bloco Funcionais (são PROGRAMAS encapsulados)

78
Padrão IEC61131-3 O Modelo dentro do MotionWorks IEC

• Detalhes da aba Task

Os controladores são os
“Resource” Clique e arraste para
1) Mudar a ordem de execução dos
programas
2) Mover o programa para outra tarefa
3) Remover da lista de tarefas
Multiplas tarefas rtodam
com taxas de atualização
diferentes. Tarefas de
sistema podem ser
ajustadas para rodas uma
vez, assim como no
WarmStart

79
Padrão IEC61131-3 Elementos Comuns

IEC 61131-3: Os elementos comuns

• Conjunto de caracteres (English.........)

• Tipo de Dado (BOOL, WORD, INTEGER.................)

• Variáveis (VAR, VAR_input, VAR_output..........)

• POUs, Unidade de Organização de Programa (Function, Function Block...)

• Elementos SFC (Steps, Transitions.................................)

• Elementos de Configuração
: (Tasks)

•Base para reutilização do


Software
80
IEC61131-3 Standard Elementary Data Types

Data Types padrão na IEC61131-3

No. Keyword Data Type Bits


1 Boolean 1
BOOL Use
2 Short integer 8
SINT
3 Integer 16
INT Use
4 Double integer 32
DINT
5 Long integer 64
LINT
6 Unsigned short integer 8
USINT
7 Unsigned integer 16
UINT Use
8 Unsigned double integer 32
UDINT
9 Unsigned long integer 64
ULINT
10 Real numbers 32
REAL
11 Long reals 64
LREAL Use
12 Duration 32
TIME Use
13 Date (only) 16
DATE
14 Time of day (only) 32
TIME_OF_DAY or TOD
15 Date and time of day 64
DATE_AND_TIME or DT
16 Character string 8
STRING
17 Bit string of length 8 8
BYTE Use
18 Bit string of length 16 16
WORD Use
19 Bit string of length 32 32
DWORD
20 Bit string of length 64 64
LWORD
81
Aprendizagem:
Padrão IEC61131-3 Inserir uma instrução

• Passos para inserir uma instrução


 Abra o POU
 Clique em alguma área em branco do

programa para habilitar a janela Edit Wizard


 Escolha <PLCopenPlus>

 Duplo clique para inserir

 Aceite a configuração padrão

Insira o bloco TON_1

82
Teste:
Padrão IEC61131-3 Criar um POU e Inserir uma Instrução

• Crie outro Programa


 Nome: Pratica_ST
 Tipo: Structured Text

• Insira o mesmo bloco TON_1 neste POU


 Quais são as semelhanças e diferenças na forma como o bloco
aparece entre as linguagens Ladder e Texto Estruturado?
 Qual a ordem de execução do programa/instrução?

83
Padrão IEC61131-3 Respostas
• Um Bloco Funcional trabalha da mesma forma, tanto no
Ladder quanto na linguagem de Texto Estruturado
• A única coisa que muda é a forma como ele aparece no
programa

Entrando no FB vemos o
“encapsulamento” dele. Nós
necessitamos apenas inserir
as variáveis, independente da
linguagem

84
Objetivo:
Padrão IEC61131-3 Conceitos de Linguagens de Alto Nível

• Conceitos de Linguagens de Alto Nível


 Struct (Dados Estruturados)
 Dados Enumerados
 If, Else, Case, etc (KeyWords)

• Em linguagem “Texto Estruturado”


 Comentários entre aspas (* *)
 Ponto-e-vírgula para fechar instruções ;

85
Aprendizagem:
Padrão IEC61131-3 Criando uma Variável

No Pratica_LD
• Duplo-clique na entrada ou saída
 Fique atento ao Tipo de Dado (Data Type)
 Dê um nome para a variável, como por exemplo “Start1”
 Digite uma literal (constante),como por exemplo LREAL#400.0

Uma variável também pode ser


inserida com F5 ou com o botaão
direito no espaço branco,
selecione “variable”

86
Aprendizagem:
Padrão IEC61131-3 Criando uma Variável

Na Pratica_ST
• Siga esses passos para criar uma variável
Posicione o cursor no local de inserção de variável

Se você não apertar F5, você


2 espaços e flecha para a esquerda estará entrando apenas como
texto!
A primeira vez que você usa
F5 uma variável em um POU, você
deve definir suas propriedades.

Após ser definida, ela irá


aparecer na lista de variáveis
locais

Digite um nome de variável, “Start1”


Data Type NÂO é reconhecido; entre como um comentário

87
Objetivo:
Padrão IEC61131-3 Regras para Variáveis

• Sempre com caracteres alfanuméricos e “_”


 Inicie com uma letra ou _
• Maiúsculas e minúsculas podem ser utilizadas para facilitar a
visualização, mas não tem importância
 Var1, var1, e VAR1 são a MESMA variável
• 30 caracteres no máximo
 Estruturas e “ dot notation” para nomes maiores
» Ex: FeedAxis.Home.CreepSpeed

Essas regras e sintaxe são


muito rigorosas. Não há
excessões!

88
Objetivo:
Padrão IEC61131-3 Regras para Variáveis

• Variáveis possuem tipos específicos


 O valor deve respeitar o tipo de dado
» Ex: para uma INT, o valor não pode ser
1.0, tem que ser 1
» Ex: para uma REAL, o valor não pode ser
1, tem que ser 1.0
• Os tipos de dados podem ser
convertidos
 Ao utilizar funções matemáticas os
dados devem ser do mesmo tipo.

89
Objetivo:
Padrão IEC61131-3 Regras para Variáveis

• Converta o tipo do dado da variável se for necessário


 Se a função ou o bloco funcional necessitam de um certo tipo de
dado, então SOMENTE aquele tipo de dado será aceito
 Para fazer a conversão utilize as Funções de Conversão

Compare essa lista de tipos de


Compare com o MP2300 e o
dados com o SMC que tem
MP2200 que tem apenas os
apenas varáveis decimais de
tipos Bit, Word, Long, Float
48-bits fixos..

90
Objetivo:
Padrão IEC61131-3 Regras para Variáveis

• Literais (constantes) Observe a necessidade do ponto decimal : ele


 REAL#1.0 não é implícito.
Observe também que TODAS AS PALAVRAS
 INT#3 DEVEM SER MAIÚSCULAS para definir um
valor literal
 TIME#2s
• O “ _ “ pode ser utilizado
como um identificador
de milhares
 LREAL#50_000_000.0
• Palavras reservadas
 Lista das “keywords” no
Edit Wizard
• Essas palavras são
reservadas apenas na
linguagem ST
91
Aprendizagem
Padrão IEC61131-3
Variáveis Globais

92
Aprendizagem:
Padrão IEC61131-3 Visualização de Variáveis

• Visualizando Variáveis Locais

• Visualizando variáveis globais

93
Objetivo:
Padrão IEC61131-3 Utilização de variáveis

• Três “aplicações” (escopo) de variáveis


 Local (VAR)
» Utilizada somente por um específico POU
 Global (VAR_GLOBAL)
» Pode ser utilizada em qualquer POU
 External (VAR_EXTERNAL)
» Uma variável local que aponta para o dado da variável global com o
mesmo nome

94
Objetivo:
Padrão IEC61131-3 Utilização de variáveis

POU 1 Variáveis: POU 1 VARIÁVEIS_GLOBAIS

Name Usage
Name Usage
MC_Power_2 MC_Power_2 G_AccDec VAR_GLOBAL
Axis02.AxisNum Axis
MC_Power
Axis Axis02.AxisNum Axis02.AxisNum
Enable02
Axis

Enable
MC_Power
Axis

Status
Axis02.AxisNum

Status02
V001 VAR
V004 VAR_GLOBAL
Enable02 Enable Status Status02

Enable_Positive Busy Enable_Positive Busy

V002 VAR
Enable_Negative Active Enable_Negative Active

BufferMode Error BufferMode Error

ErrorID ErrorID

MC_Power_2 MC_Power_2 G_AccDec VAR_EXTERNAL V005 VAR_GLOBAL


MC_Power MC_Power
Axis02.AxisNum Axis Axis Axis02.AxisNum Axis02.AxisNum Axis Axis Axis02.AxisNum

Enable02 Enable

Enable_Positive

Enable_Negative

BufferMode
Status

Busy

Active

Error
Status02 Enable02 Enable

Enable_Positive

Enable_Negative

BufferMode
Status

Busy

Active

Error
Status02

V004 VAR_EXTERNAL
ErrorID ErrorID

POU 2 Variáveis: POU 2


MC_Power_2 MC_Power_2
MC_Power MC_Power
Axis02.AxisNum Axis Axis Axis02.AxisNum Axis02.AxisNum Axis Axis Axis02.AxisNum

Enable02 Enable Status Status02 Enable02 Enable Status Status02

Enable_Positive Busy Enable_Positive Busy

Enable_Negative

BufferMode
Active

Error

ErrorID
Enable_Negative

BufferMode
Active

Error

ErrorID
Name Usage
001 Input01 Enable01
V001 VAR
Enable02

Input02 Reset Start


V002 VAR
/

StartAgain
G_AccDec VAR_EXTERNAL
Input03 Reset V005 VAR_EXTERNAL
StopAll

Variáveis: POU xxx


POU xxx

95
Padrão IEC61131-3 Criando Variáveis Globais e Locais

• Criando Variáveis Globais e Locais


Ladder Variáveis: Ladder Variáveis Globais

Boa Prática:
Nomear as variáveis
globais com prefixo G_

Texto Estruturado Variáveis: Texto Estruturado

96
Padrão IEC61131-3 Regras de Uso
• GLOBAL ou LOCAL?
 Padrão usar LOCAL
 Considere a lista global
“sagrada”
 Conveção sugerida
• Digite G_ na frente de todas
as variáveis globais
G_EnableRight
G_EnableLeft
• Confirme visualmente
quando olhar a lista global

97
Driving Value Unidade 2
Programação Básica

Padrão PLCopen

Objetivo Resumo da PLCopen


Objetivo Motion State Diagram
Objetivo Regras Gerais
Teste Regras Gerais
Objetivo:
Padrão PLCopen Resumo da PLCopen

• O padrão PLCopen
define como um Bloco
Funcional do tipo Motion
Control deve operar
 Estados relativos ao
Movimento
 Comportamento das
entradas e saídas
 Regras gerais

• Esses Blocos
Funcionais aparecem no
Edit Wizard com o
prefixo “MC_”
99
Objetivo:
Padrão PLCopen Diagrama de Movimento

• Motion States(Mc_ReadMotion
State)
 Synchronized Motion
 Discrete Motion
 Continuous Motion
 Stopping
 ErrorStop
 Homing
 Standstill
 Disabled
• A PLCopen descreve quais
blocos têm prioridade e qual
“estado” é acionado

100
Objetivo:
Padrão PLCopen Regras gerais

• A seção 2.3.1 das especificações da PLCopen (Function


Blocks for motion control - Part1) explica alguns conceitos
básicos e regras importantes de como os Blocos
Funcionais operam.
• Utilize as páginas seguintes como referência
 PDF disponível no PenDrive “tf_mc_part1_version1_1.pdf”
 Baixe as versões mais recentes em www.plcopen.org

101
Objective:
PLCopen Standard General Rules
Output status The Done, InGear, InSync, InVelocity, Error, ErrorID and CommandAborted outputs are reset

Instruções with the falling edge of execute. In must be guaranteed that they are set for at least one cycle if
the corresponding situation occurs, even if execute was reset before.
Done and Error outputs are mutually exclusive (cannot be true at the same time). If an instance of a

 Leia as regras gerais FB receives a new execute before it finished (as a series of commands on the same instance), the FB
won’t return any feedback, like ‘Done’ or ‘CommandAborted’, for the previous action.

ou utilize o help do FB Input parameters The parameters are used with the rising edge of the execute input. To modify any parameter it is
necessary to put the correct set of values and to trigger the motion again
Missing input According to IEC 61131-3, if any parameter of a function block input is missing (“open”) then
 Responda as parameters the value from the previous invocation of this instance will be used. In the first invocation the
initial value is applied.

perguntas na próxima Position versus


distance
“Position” is a value defined within a coordinate system. “Distance” is a relative measure related
to technical units . “Distance” is the difference between two positions.
Sign rules The Velocity, Acceleration, Deceleration and Jerk are always positive values. Position and
página Error Handling
Distance can be both positive and negative
All blocks have two outputs which are dealing with errors that can occur while executing a
Behavior Function Block. These outputs are defined as follow:
Error Rising edge of Error informs that an error occurred during the execution of
the Function Block.
ErrorID Error number

Done, InVelocity, InGear, and InSync mean successful completion so these signals are logically
exclusive to Error.

Types of errors:
• Function blocks (e.g. parameters outside range, state machine)
• Communication
• Drive
Instance errors are not always resulting in an axis error (bringing the axis to standstill)
FB Naming In case of multiple libraries within one system (to support multiple drive / motion control systems), the
FB naming may be changed to “ MC_FBname_SupplierID".
Behavior of Done The Done output (as well as InGear, InSync, ..) is set when the commanded action has been
output completed successfully.
With multiple Function Blocks working on the same axis in a sequence, the following applies:
when one movement on an axis is interrupted with another movement on the same axis without
having reached the final goal, Done of the first FB will not be set.

Behavior of CommandAborted is set, when a commanded motion is interrupted by another motion command
CommandAborted or MC_Stop.
output The reset-behavior of CommandAborted is like Done. When CommandAborted occurs, the
other output-signals like InVelocity are reset.

102
Teste:
Padrão PLCopen Regras Gerais
1. Qual a diferença entre os termos “posição” e “distância”?
A posição é definida em coordenadas absolutas e a distância é relativa à posição no início do
deslocamento (posição atual).
2. Qual é o valor padrão para a entrada de um Bloco
Funcional se não houverem conexões?
O último valor ou então o valor inicial (normalmente zero).

3. Você pode utilizar uma velocidade negativa para inverter a


direção do Bloco MC_MoveVelocity?
Não.

4. A execução de um Bloco Funcional é através de uma borda


de subida ou de lógica positiva na entrada?
Borda de subida.

5. Se a velocidade de um FB é alterada enquanto um bloco é


executado, quando ela será efetivamente alterada?
Durante a próxima execução.
103
Padrão PLCopen Valor Inicial (Padrão)
• Para ajuda, clique com o botão direito em qualquer bloco
A coluna “Default” corresponde ao valor inicial que será usado
por esta entrada do bloco funcional se nada estiver conectado

104
Padrão PLCopen Bloco Funcional “Instâncias”
A “Instância” é o título acima do bloco funcional
Representa uma área separada da memória de execução

Nunca faça isso!

Neste caso, há duas invocações da mesma instância


MC_MoveRelative. A segunda invocação usaria os mesmos valores
de entrada da primeira, mesmo que nada esteja conectado.

105
Driving Value Unidade 2
Programação Básica

Início de um Projeto

Aprendizagem Preparação do Projeto


Objetivo Visão geral do Programa
Aprendizagem 1 Criando uma nova POU
Estudo do Programa Preparando o Projeto
• Inicie um novo projeto
 Save As: Treinamento_01
 Reset o Sistema para as condições iniciais
» Controladores, Amplificadores, Motores
 GRR (item 1.7)
• Configuração (ambos os eixos)
 Modo Linear
 Unidades de mm
» 360 mm por volta do motor

Ø = 114,5949 mm (360 mm/rev)


Acoplamento 1:1 (sem redução)

(diagrama sem escala)

• Salve e Reenergizeo a maleta

107
Estudo do Programa Preparando o Projeto
• MP2600iec – Adicionando um Eixo Virtual

108
Estudo do Programa Preparando o Projeto
• Configuração (todos os eixos)

109
Objetivo:
Estudo do Programa Sobre o programa

Funcionalidade Programa Final


 Habilitar Servos
 Movimentos Relativos e Absoluto
• Servos revezam os posicionamentos avante e reverso
• Tempo entre os movimentos
 Parar o movimento
 Resetar os Alarmes
 Função Matemática: Y=mX+b
 Bloco Funcional de Usuário: Jog Simples
 Home
 Engrenagem
 Cames
 Ethernet/IP Modbus/TCP

110
Objetivo:
Estudo do Programa Mapa do Programa

Mapa de Programa
Inicializar (ST)

IHM (LD) Habilitar (LD) Alarm e(LD) Engrenagem (LD)

Posicionamento (LD) Parar (LD) Cames (LD)

Monitor (LD) Home (LD)

111
Driving Value Unidade 2
Programação Básica

Conceitos dos Blocos


Funcionais
Conceitos dos Blocos Funcionais POUs do Projeto
• Crie o POU de habilitação
• Rode em “ Slow task”

Inicializar (ST)

Habilitar (LD)

113
Conceitos dos Blocos Funcionais Inserir o MC_Power
• Entradas dos BFs
 Conecte a variável
G_HabilitaEsquerdo à entrada
Enable
 As demais entradas podem ficar
desconectadas
» O valor padrão será usado

114
Teste:
Conceitos dos Blocos Funcionais
Utilizando o Help
• Clique com o botão direito no bloco e selecione a opção HELP
para ver que tipo de dado é solicitado para uma determinada
entrada

• Que tipo de dado é necessário para as entradas e saídas do


MC_POWER?
Axis_Ref
 Axis __________

Bool
 Enable __________

Bool
 Enable_Positive __________

Bool
 Enable_Negative __________

• Quais entradas DEVEM ser utilizadas?


DICA: Passe o mouse sobre a
• Quais entradas nunca são utilizadas? entrada/saída para visualizar o tipo de
dado

115
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref
• Todos os Blocos Funcionais
PLCopen possuem uma
entrada/saída Axis
 Entrada obrigatória
• A entrada Axis necessita de
uma variável do tipo
“AXIS_REF”
• O tipo de dado AXIS_REF é
um dado “structure”
• Structures
 Um grupo de dados que
seguem um padrão de
organização
 Este tipo de dado pode ser
utilizado em um BF através
de uma única variável
116
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref

• Structure
 Todas as informações definidas por uma structure podem
ser transmitidas por uma única variável
AXIS_REF
Exemplo de definição de Element Data Type
MC_Power_1
tipo de dado AXIS_REF Axis Number UINT
MC_Power
Axis Name STRING
MotorEsquerda Axis Axis
Encoder Resolution DINT
Enable Status
Servopack Model STRING
Enable_Positive Busy

Enable_Negative Active

MotorEsquerda BufferMode Error


Campo Tipo Dado ErrorID
Variável denominada Nº do Eixo UINT 1
MotorEsquerda, do tipo Nome do Eixo STRING Sigma-5
AXIS_REF Resolução do Encoder DINT 8192
Servopack STRING SGDV
Servo Motor STRING SGMAV

117
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref

• O tipo AXIS_REF é definido no campo Data Types

• Ele tem apenas um elemento na sua estrutura


 Mais elementos poderão ser adicionados pela Yaskawa
em versões de firmware futuras

Qual é o tipo de dados


AXIS_REF
requerido para o
Element Data Type
elemento AxisNum?
AxisNum UINT

118
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref
• Escolha o tipo AXIS_REF quando estiver criando variáveis
de entrada de eixos (axis)
 Lembre-se de organizar as variáveis globais em “User Variables”

Não digite um vaIor inicial


nas propriedades dessa
variável, pois vocêirá gerar
um erro “invalid initial value”

119
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref
• Os dados do tipo Struct são muito
complexos para serem inicializados pela Inicializar (ST)
lista de variáveis
 Isso ocorre porque esses dados possuem
vários elementos para serem inicializados
conjuntamente
Habilitar (LD)
 Eles devem ser inicializados dentro do
programa
• Recomendamos inicializar os dados do
tipo estruturado em linguagem de texto

MotorEsquerda.AxisNum:=UINT#1;
MotorEsquerda Este comando carrega o valor “1” dentro do campo Nº do eixo,
Campo Tipo Valor
da variável MotorEsquerda
Nº do eixo UINT 1

120
Conceitos dos Blocos Funcionais Tipo de dado Axis_Ref
• Procedimento para inicialização de dados estruturados
utilizando ST Passo 3
Digite o ponto: uma lista de
 O nome do eixo é “LeftMotor” possíveis campos dessa variável
irão aparecer

Passo 1
Digite o nome da variável e
pressione F5

Passo 2
Confirme se o tipo
de dado é o
Axis_Ref e clique
em OK
Passo 4
Complete o comando,
Quando terminar, clique no botão MAKE digitando o tipo de dado

121
Conceitos dos Blocos Funcionais Número do Eixo
• De onde vem esse número de eixo?
 NÃO é necessariamente devido ao ajuste da chave da MLINK!
 É o Parâmetro # 1031 do eixo (“Logical Axis Number”),
localizado na parte de configuração do sistema

Qual é o númerol Qual é o númerol lógico


lógico do eixo para o do eixo para o
EIXO VIRTUAL? ENCODER EXTERNO?

122
Driving Value Unidade 2
Programação Básica

MC_Power

Aprendizagem 2 Programa com


MC_Power para o Eixo 1
Objetivo 3 Utilização do modo Debug
Quiz 1 Programa com MC_Power
para o eixo 2 e o Virtual
Aprendizagem:
MC_Power Programa com MC_Power para 1 Eixo

• Make, Download, Run


 “Warm Start” é necessário para rodar a função Inicializar
» Às vezes um novo projeto necessita de 2 “warms starts”

Cheque se o valor foi carregado

• Testando com o Modo Debug


 Por enquanto não será necessário
nenhum sinal de I/O físico

124
Quiz 1
MC_Power Program MC_Power for Axis2

Programa com o MC_Power para o Eixo 2 e/ou Eixo Virtual


Verifique o funcionamento através do modo Debug

 Solução Parcial

125
Driving Value Unidade 2
Programação Básica

Posicionamento
Ponto-a-Ponto
Aprendizagem:
Posicionamento Ponto-a-Ponto POU para posicionamento

• Crie mais um POU para posicionamento


 Qual tarefa é mais apropriada? (Fast, Med, Slow)

Inicializar (ST)

Habilitar (LD)

Posicionamento (LD)

127
Skill
Posicionamento Ponto-a-Ponto Axis1 MC_MoveRelative

• Bloco Funcional MoveRelative

LeftMotor Move Profile


Input Initial Value Unit Note
Distance 270.0 mm Use Variable
Velocity 180.0 mm/sec Use Variable
Accel 360000.0 mm/sec² Use Literal LREAL#360_000.0
Decel 360000.0 mm/sec² Use Literal LREAL#360_000.0

É necessário um Warm Start para os valores


iniciaisserem alterados

128
Objetivo:
Posicionamento Ponto-a-Ponto Sintaxe

• Os valores iniciais devem obedecer o formato específico


daquele tipo de dado
 REAL e LREAL
» Necessidade do ponto decimal
– Ex: “20.0”
– NÃO apenas“20”

129
Aprendizagem:
Posicionamento Ponto-a-Ponto Sequenciamento

• Dicas
 Utilize a tecla CTRL para copiar
qualquer elemento, como o
campo Axis

 Utilize a tecla SHIFT para


desconectar variáveis

 A precisão pode ser modificada


para melhor legibilidade
» Dê um duplo clique para abrir o
bloco
» Ajuste Global do software

130
Aprendizagem:
Posicionamento Ponto-a-Ponto Sequenciamento

• Passos
 Adicione o bloco
MoveAbsolute
» Utilize a posição 0.0
» Utilize a mesma
velocidade, etc; adotadas
anteriormente
 Crie uma sequência de
movimentos

Relativo

Absoluto

131
Skill
Posicionamento Ponto-a-Ponto Axis1 MC_MoveAbsolute Sequence

• Solução Parcial

Jerk, Direction, BufferMode podem ser


desconectados e os valores padrão são
usados

•Jerk existe como um parâmetro em


HWConfig “Moving Average Filter” #1300,
#1301

•BufferMode e Direction são “Enumerated


Data Types” (mais informações adiante)

132
Teste:
Posicionamento Ponto-a-Ponto Bit DONE e Sequenciamento
• Instruções
 Ajuste a velocidade para 30.0
 Rode o MoveRelative
 Observe o bit Done
» E se a entrada execute ficar ligada após
posicionamento tiver sido concluído?
» E se ela for desligada durante o
posicionamento?
» Verifique a ajuda dos BF
– Clique com o direito para acessar o Help

Desenhe a carta de tempo abaixo

Execute Execute

Done Done
<resposta> <resposta>

133
Driving Value Unidade 2
Programação Básica

Temporizadores e
Sequenciamento
Objetivo:
Temporizadores e Sequenciamento Timer TON

Timer TON
 Clique com o botão direito em HELP
para definição de parâmetro
 O tipo de dado TIME possui um formato
especial e valores iniciais devem ser
expressos como um literal
Exemplo: T#2s, e não simplismente “2”

Seção da ajuda IEC61131

135
Aprendizagem:
Temporizadores e Sequenciamento Utilizando Temporizadores

• Sequência de Repetição

Temporizadores contam
por quanto tempo a
entrada IN é verdadeira.
Use um contato N.F.
para repetição

136
Teste:
Temporizadores e Sequenciamento Sequenciamento

• Altere o programa para operar como segue:


 Move o eixo 1, aguarda 2s
 Move o eixo 2, aguarda 2s
Aprenda mais dicas nos próximos slides!
 Retorna o eixo 1, aguarda 2s
 Retorna o eixo 2, aguarda 2s

Incremental
Eixo 1 Absoluto

2s 2s

Incremental
Absoluto
Eixo 2
2s 2s

137
Dicas de Edição– Copy
Temporizadores e Sequenciamento
and Paste
Copy and Paste
 Abra o bloco funcional e clique OK para adicionar uma nova
instância à lista de variáveis locais.

Se você não abrir e clicar OK, MAKE irá gerar os erros “… not found!”

138
Quiz
Temporizadores e Sequenciamento MC_MoveRelative e
MC_MoveAbsolute Sequence

• Solução Parcial

139
Temporizadores e Sequenciamento Programa Monitor POU

• Add o Programa(POU) Monitor


Inicializar (ST)
 Qual tarefa é apropriada para
monitorar o movimento?

Habilitacao (LD)

Posicionamento (LD)

Monitor (LD)

140
Temporizadores e SequenciamentoMC_ReadActualVelocity

• Add MC_ReadActualVelocity

141
Quiz
Temporizadores e Sequenciamento Utilizando o Logic Analyzer

• Utilize o Logic Analyzer para confirmar o movimento


 Ajuste o tempo de atraso, velocidade etc
Tente velocidade 1000.0, atraso 300ms

142
Driving Value Unidade 2
Programação Básica

Utilizando I/Os
Objetivo Sintaxe dos I/Os
Objetivo Regras para os I/Os
Objetivo Lógica Ladder e edição
Aprendizagem Entradas no Programa
Teste MC_Stop e os I/Os
Aprendizagem:
Utilizando I/Os POU para Lógica de Controle

• IHM programa o POU


Inicializar (ST)  Provê interface para
I/O físico
 Variáveis Globais
conecta os POUs
IHM (LD) Habilitar (LD)

Posicionamento (LD)

Monitor (LD)

144
Aprendizagem:
Utilizando I/Os Entradas no Programa

• Crie uma Ladder Network no POU da


IHM
 SI0 liga cada servo
 DI0 liga o Eixo Virtual
 DI1 inicia a sequência de movimentação
• Use Variáveis Globais
 G_EnableLeft, G_EnableRight,
G_EnableVirtual, G_Start

145
Teste:
Utilizando I/Os MC_Stop e I/Os

• Adapte seu programa para parar toda a movimentação com DI2


 Adicione o programa POU “Parar”

 Adicione lógica ao IHM

IHM (LD) Habilitar (LD)

Posicionamento (LD) Parar (LD)

Monitor (LD)

146
Quiz
Utilizando I/Os
Programa “Stop”
• Solução Parcial
Parar

IHM

147
Quiz
Utilizando I/Os Programa “Reset Alarms”
• Ajuste o códico para resetar os alarmes do eixo e os alarmes do
controlador com DI7
 Adicione o programa POU “Reset”
 Adicione lógica ao IHM

IHM (LD) Habilitar (LD) Reset (LD)

Posicionamento (LD) Stop (LD)

Produza um alarme de sobre-velocidade


ajustando uma alta velocidade. A distância
Monitor (LD) também deve ser editada para um valor alto
para que o motor possa atingir a
velocidade. Por exemplo, 40_000.0 é um
pouco mais rápido que a máxima
velocidade de 6.600 rpm
148
Quiz
Utilizando I/Os Programa “Reset Alarms”

• Solução Parcial

Ajuste Valuedisplay
para ver o código
de Alarme em seu
formato nativo
hexadecimal.

149
Driving Value UNIDADE 2
Programação Básica

Editando Variáveis

Uso de Variáveis
Renomeando Variáveis
Local e Global com mesmo nome
Organização da Lista de Variáveis
Limpeza da Lista Global
Remoção de Instâncias não utilizadas
Objetivo:
Variáveis Utilização de variáveis

POU 1 Variáveis: POU 1 VARIÁVEIS_GLOBAIS

Nome Uso
Nome Uso
MC_Power_2
MC_Power
MC_Power_2
MC_Power
V003 VAR_GLOBAL
Axis02.AxisNum

Enable02
Axis

Enable

Enable_Positive
Axis

Status

Busy
Axis02.AxisNum Axis02.AxisNum

Status02 Enable02
Axis

Enable

Enable_Positive
Axis

Status

Busy
Axis02.AxisNum

Status02
V001 VAR
Enable_Negative Active Enable_Negative Active

V004 VAR_GLOBAL
V002 VAR
BufferMode Error BufferMode Error

ErrorID ErrorID

Axis02.AxisNum Axis
MC_Power_2
MC_Power
Axis Axis02.AxisNum Axis02.AxisNum Axis
MC_Power_2
MC_Power
Axis Axis02.AxisNum V003 VAR_EXTERNAL V005 VAR_GLOBAL
Enable02 Enable Status Status02 Enable02 Enable Status Status02

Enable_Positive Busy Enable_Positive Busy

Enable_Negative

BufferMode
Active

Error

ErrorID
Enable_Negative

BufferMode
Active

Error

ErrorID
V004 VAR_EXTERNAL

POU 2 Variáveis: POU 2


MC_Power_2 MC_Power_2
MC_Power MC_Power
Axis02.AxisNum Axis Axis Axis02.AxisNum Axis02.AxisNum Axis Axis Axis02.AxisNum

Enable02 Enable Status Status02 Enable02 Enable Status Status02

Enable_Positive Busy Enable_Positive Busy

Enable_Negative Active Enable_Negative Active

BufferMode Error

ErrorID
BufferMode Error

ErrorID
Nome Uso
001 Input01 Enable01

Enable02
V001 VAR
Input02 Reset
/
Start
V002 VAR
StartAgain
V003 VAR_EXTERNAL
Input03 Reset

StopAll
V005 VAR_EXTERNAL

Variáveis: POU xxx


POU xxx

151
Variáveis Renomeando Variáveis
Renomeando Variáveis utilizando “Global Replace”
 Renomear apenas na Lista de Variáveis Globais quebra a
conexão do POU
EXEMPLO:
» Lista de Variável Local Renomear devido a um erro de
» Utilização em Código digitação ou convenção de nomes

Certifique-se de marcar
o “Whole Word”

152
Variáveis Local e Global de mesmo nome
• E se você criou uma variável Global mas ela deveria ser
Local?
 Um aviso aparece, perguntando se você quer utilizar a variável
Global ou criar uma nova do tipo Local

 Solução: Primeiro exclua a variável global

153
Variáveis Organização da Lista de Variáveis
• Variáveis globais no grupo errado?
 Exemplo: Cheque o grupo LIO-01
 Arraste as variáveis desejadas para o grupo certo

Clique e arraste o
cabeçalho de uma
linha para selecionar
múltiplas linhas.

Clique e arraste o
cabeçalho de uma
linha novamente
para mover o grupo
de variáveis

Uma linha vermelha orienta o usuário da


posição enquanto estiver arrastando as
variáveis

154
Variáveis Limpeza da Lista Global
• A lista Global tem variáveis que não deveriam ser globais
 Apague-as

 Mude o uso da lista local para “var”


• Procure usar MAKE
DICA: Se você tem
muitas variáveis para
atualizar…
1. Clique no campo
“Usage”
2. Digite a letra ‘v’
3. Clique no próximo

155
Variáveis Remoção de Variáveis Não Utilizadas
• Você teve muitos avisos de
variáveis não utilizadas (“unused
variable”)?

 Menu Build
» “Remove unused variables and FB
instances”
– “Unused” significa não utilizadas em um
POU

» MAKE finaliza sem nenhum aviso

156
Driving Value UNIDADE 2
Programação Básica

Tipos de Dados
Enumerados

Definição
MC_Direction e MC_BufferMode
Diretórios de Tipos de Dados
Tipos Enumerados como Literal e Variáveis
MC_Direction em um programa
Tipos de Dados Enumerados Definição

• O que é um tipo de dado enumerado?


 É um NOME que é dado para um NÚMERO
» Torna a leitura do código mais simples
» Reduz possibilidade de enganos

• Temos dois:
 MC_Direction
 MC_BufferedMode
MC_Direction#
0 positive_direction
1 shortest_way
2 negative_direction
3 current_direction

MC_BufferMode#
0 Aborting
1 Buffered
2 BlendingLow
3 BlendingPrevious
4 BlendingNext
5 BlendingHigh

158
MC_Direction e
Tipos de Dados Enumerados
MC_BufferMode
• MC_Direction • MC_BufferedMode
 Posicionamento absoluto de cargas  Permite que um
rotativas movimento interrompa
» Quatro “direções” possíveis
outro
 Exemplo: Mesa Rotativa
» Posição 0 = Posição 360  Cria “movimentos
emendados”
0|360
 Utilizado para aplicações
Como com registro
chegar em
180?  Veja o help para maiores
informações
180 MC_BufferMode#
0 Aborting
MC_Direction# 1 Buffered
0 positive_direction 2 BlendingLow
1 shortest_way 3 BlendingPrevious
4 BlendingNext
2 negative_direction
5 BlendingHigh
3 current_direction

159
Tipos de Dados Enumerados Diretório de Tipos de Dados

• Definição no diretório “Data types”


 “MotionBlock Types”
 Exite outros tipos Enumerados, relacionado ao Came
Eletrônico

160
Tipos de Dados Enumerados Literais e Variáveis

• Programando com Tipos de Dados Enumerados


 Como um literal - Ex: MC_BufferedMode#Aborting

 Como uma variável

» Defina a variável com o tipo de dado correto


- Limitação: Tipo Enumerado não é auto-detectado
» Utilize a instrução MOVE ou o texto estruturado para atribuir o valor
– Limitação: Não é possível alterar o valor no modo Debug
– Limitação: Não é possível ajustar o valor inicial do Tipo Enumerado

Variável

Literal

161
Tipos de Dados Enumerado Ajuda

Utilize a Ajuda Online


 Copie e cole da Ajuda para ter a digitação correta

162
MC_Direction em um
Tipos de Dados Enumerado
programa
• Altere a configuração para Rotativa
 Sistema rotativo
 Unidade de graus
• Adicione uma entrada para Direção
 Conecte uma constante na entrada Direction
• Observe o comportamento

163
Driving Value UNIDADE 2
Programação Básica

Função x Bloco Funcional

Definição
Entradas Duplicadas
Função x Bloco Funcional Definição

• Definição de um Bloco Funcional (IEC61131-3)


Instância
Instance

Função Bloco Funcional


Executa em 1 scan Pode necessitar de vários scans para executar.
Executa sem uma "instância" de memória, como indicado no
Cada BF roda em uma instância de memória separada, como indicado pelo ícone.
ícone
Pode usar significantemente mais poder de processamento e memória para
Uso mais eficiente do processador e da RAM
realizar a mesma tarefa.
Apenas uma saída Multiplas saídas possíveis
A saída e TODAS as entradas devem ser conectadas para ser
Apensa Var_In_Out deve ser conectada para compilar.
compilado.
Blocos Funcionais não podem ser usados dentro de funções. Outros BFs podem ser utilizados em um bloco funcional.
O valor de saída pode depender de outros valores que não sejam entradas do
O valor da saída depende apenas das entradas da função.
bloco.
Apenas variáveis VAR (local) VAR_GLOBAL é permitido, mas não recomendado.

165
Função x Bloco Funcional Entradas Duplicadas
• Algumas funções
embutidas
permitem entradas
duplicadas
 Função AND pode
fazer o E lógico de
multiplos valores,
não apenas 2.
• Entradas
Booleanas podem
ser invertidas.

166
Driving Value

UNIDADE 3
Programação Avançada

Funções de Usuários
Blocos Funcionais de Usuários
Bibliotecas de Usuário
Bibliotecas de Ferramentas Yaskawa
Referenciamento (Homing)
Engrenagens
Cames
Driving Value UNIDADE 3
Programação Avançada

Funções de Usuários

Descrição das Funções


Inserindo uma Função
Escrever Códigos de Funções
Funções no Programa POU
PowerFlow
Busca de falhas nas Funções
Teste
Funções de Usuário Descrição das Funções
• Escreva um POU com função
de usuário
 Converte entrada de tensão
analógica em temperatuda
- Baseado na escala e offset
- Equação Linear: Y=mX+b
 Temperatura
- Saída da função
Uma função ou bloco Todas as funções
 Escala funcional criado pelo e blocos
usuário tem essa funcionais criados
- Entrada “Inclinação” da função no seu projeto irão
coloração (verde)
 Tensão aparecer no grupo
Edit Wizard
- Tensão de entrada pura
 Offset
- Calibração do offset
169
Funções de Usuário Inserindo uma Função
• Crie uma nova função POU
 Nome: Temperatura
 Tipo: Função
 Linguagem: LD
 Tipo de dado para valor de retorno: LREAL

170
Funções de Usuário Escrever Códigos de Funções

• Escolha VAR_INPUT para


utilizar nas entradas

• Escreva o nome da função


na saída

171
Funções de Usuário Funções no Programa POU
No campo “Edit wizard / group”, selecione o nome do projeto
 Compile o projeto (MAKE)
 Insira o bloco no programa POU
- Use o programa POU “Main”
 Insira as variáveis
 Ajuste os valores no modo Debug para confirmar a saída

172
Funções de Usuário PowerFlow
• PowerFlow é um recurso de debug que deve ser usado com
POUs e serve para ver quais linhas foram executadas
 Perguntado se deseja ligá-lo quando um código de uma função
de usuário está aberto.

Clique em NÂO
para desabilitar esta
função

 Os cálculos intermediários não serão mostrados corretamente se


responder “SIM”

173
Busca de Falhas –
Funções de Usuário
Ordem de Entrada
• As entradas e suas ordens de exibição são definidas por
uma lista de variáveis locais para a Função POU

Undesired input order

Unexpected Input

• Delete a Função do programa e a insira novamente quando


as entradas forem modificadas, ou B-Direito=>Update

174
Busca de Falhas –
Funções de Usuário
Tipo de Dado do Retorno
• O tipo de dado do retorno(Saída da Função) pode ser alterado nas
propriedades do POU
 O tipo de dado do retorno pode ter sido deixado como BOOL quando
o programador inseriu o POU

175
Teste:
Funções de Usuário Criando uma Função

• Crie essa mesma função utilizando um POU do tipo ST.


 Força = Tensão x Fator de Escala + Offset

DICAS:
1. Pode ser feito em uma linha do ST.
2. Use o F5 para declarar variáveis no ST.
3. Consulte a POU Inicialização para saber
sobre a sintaxe.

176
Driving Value UNIDADE 3
Programação Avançada

Blocos Funcionais de
Usuários

Descrição do Bloco Funcional de Usuário


Escrever códigos de um Bloco Funcional
EN/ ENO
Instância de um Bloco Funcional
Bloco Funcional de Usuário Descrição Bloco Funcional
• Escreva um Bloco Funcional de usuário (POU/FB)
 Crie um Bloco Funcional de JOG com uma velocidade pré-
definida
 Entradas
» Eixo
» Partida
» Sentido de Giro
 Saídas
» Na Velocidade
» Erro

178
Bloco Funcional de Usuário Escreva um Bloco Funcional

• Faça um SimpleJog

DICA: Cheque o Boas Práticas:


Type, Usage, Init e Nunca use Variáveis
Retain de cada Globais em um
variável Bloco Funcional.

179
Bloco Funcional de Usuário Funções com EN / ENO
Menu “Extras”, “Options”
• EN/ENO
 Suportado pelo Firmware
2.1 ou superior
 Código equivalente pode ser
critado sem o EN/ENO,
utilizando Jump e Label.
Botão direito “Connector/Jump”

180
Propriedades dos
Bloco Funcional de Usuário
Blocos Funcionais
• As entradas e
saídas dos Blocos
Funcionais podem
ser ocultadas e
atribuído um valor
oculto.
 Clique duplo
para abrir as
propriedades

181
Bloco Funcional de Usuário Utilize o Bloco Funcional
• Insira o Bloco Funcional SimpleJog em algum POU
 Jog no LeftMotor
 Jog no VirtualMotor
Use o “Machine Operations” para provar
que o eixo virtual está se movendo.

182
Driving Value UNIDADE 3
Programação Avançada

Bibliotecas de Usuário

Visão Geral do Processo


Criar uma Biblioteca
Usar uma Biblioteca
Compactar / Descompactar
Apagar Tipos de Dados (Datatypes)
Bibliotecas de Usuário Visão Geral do Processo

• Um projeto pode ser


inserido em outro como
uma Biblioteca de Usuário
 Use os POUs FU & FB
 POUs Programa
 Tipos de Dados
 NÃO use variáveis
globais!
• Mantenha-se organizado!
 Mantenha um projeto
especificamente como um
projeto de biblioteca
 Controle das Revisões

184
Aprendizagem:
Bibliotecas de Usuário
Crie uma Biblioteca
• Salve o projeto no diretório “Libraries” com um novo nome
• Faça o projeto
• Salve como ZIP
 Para referência
Refira ao Guia de Referência Rápido

The user Library


A User library contains all POUs
também pode from
conter the library
todos os POUs project.
daqueleEven program
projeto, quePOUs
podem
can
serbe reused. More
reutilizados common
em outro andOuseful
projeto. maisiscomum
to onlyereuse
útil é FU and FB.
reutilizar o FU e o FB.
185
Bibliotecas de Usuário Compactar / Descompactar
Compacte para o diretório
Libraries
 Mantenha-o organizado
 Único arquivo portátil

• FW-Libraries
 Como no PLCopenPlus –
o software já vai tê-lo
pronto.
• Bibliotecas de Usuários
 Se sua biblioteca utiliza
outras bibliotecas, você
pode compactar todas
elas.
• Código de Frontend
 O retorno do “Make” é
compactado.
• Layouts das páginas
Marque “Zip User-Libraries” e “Zip Frontend-Code”
 Não é utilizado pela
Yaskawa

186
Aprendizagem:
Bibliotecas de Usuário
Utiliza uma Biblioteca
• Crie um novo projeto
• Adicione uma “user library” do projeto anterior
• Adicione a função do usuário e o bloco funcional para um
POU
Refira ao Guia de Referênica Rápido

A User Library também pode conter todos os POUs daquele projeto, que podem
ser reutilizados em outro projeto. O mais comum e útil é reutilizar o FU e o FB.
187
Bibliotecas de Usuário Deletando Data Types
• As informações dentro da pasta “Data Types” não podem ser repetidas /
declaradas mais de uma vez
• Devemos então deletar o “MotionBlockTypes” desse Novo Projeto

Delete os tipos de dados


do projeto porque você já
os tem como parte da
biblioteca de usuário.

188
Driving Value UNIDADE 3
Programação Avançada

Bibliotecas de Ferramentas
Yaskawa
Conceito da Toolbox
Aprendizagem: Inserir PLCopen_Toolbox
Arquivos de Projeto no Windows
Bibliotecas Dependentes
Destaque – Tipo de Dado AxisStruct
Destaque – Bloco Funcional AxisControl
Destaque –Bloco Funcional ReadAxisParameters
Inicialização da Estrutura
Template customizado
Bibliotecas de Ferramentas
Yaskawa
Conceito da Toolbox
• TN.MCD.08.130

190
Bibliotecas de Ferramentas
Yaskawa
Conceito da Toolbox

191
Bibliotecas de Ferramentas
Yaskawa
Inserir um PLCopen Toolbox
• Abra o Manual de Ajuda do Toolbox pelo PenDrive
• Abra/Descompacte o “PLCopen Toolbox” no Pen Drive
• Insira a Biblioteca no projeto “Treinamento_01”
 Sigua o Guia Rápido de Referência

Refira ao Guia de Referênica Rápido

192
Bibliotecas de Ferramentas Arquivos de Projeto no
Yaskawa Windows

Um projeto tem um *.Mwt e


uma pasta de arquivos, que
pode ser compactada em um
*.Zwt

Use o MotionWorks IEC


para compactar e
descompactar um *.Zwt

193
Bibliotecas de Ferramentas Conceito de Bibliotecas
Yaskawa Dependentes
• Bibliotecas dependentes necessitam de inserção individual
LibraryProject.Mwt Salvar/Zipar

Inserir LibraryProject.Zwt
SupportingUserLib1.Mwt

Inserir
SupportingUserLib2.Mwt

Unzip
Inserir
AuxFirmwareLibrary.Fwl

NewProject.Mwt
LibraryProject.Mwt
Inserir LibraryProject.Mwt
Inserir SupportingUserLib1.Mwt
SupportingUserLib1.Mwt
Inserir
SupportingUserLib2.Mwt SupportingUserLib2.Mwt

Inserir
AuxFirmwareLibrary.Fwl
AuxFirmwareLibrary.Fwl

194
Bibliotecas de Ferramentas Biblioteca de Ferramentas
Yaskawa Dependentes
• Necessário PLCopen_Toolbox
 Math_Toolbox
• Necessário Cam_Toolbox
 PLCopen_Toolbox
 Math_Toolbox
 Ymotion (biblioteca de firmware)

NewProject.Mwt
Inserir
Inserir Inserir Inserir

Ymotion.FWL Cam_Toolbox

PLCopen_Toolbox

Math_Toolbox

195
Bibliotecas de Ferramentas
Yaskawa
Tipo de Dado AxisStruct
• Crie uma nova variável com o tipo “AxisStruct”
 AxisStruct está definida na Biblioteca PLCopen Toolbox

Adicione o “Watch”
Para ver os elementos
da estrutura.

196
Bibliotecas de Ferramentas
Yaskawa
Bloco Funcional AxisControl

• Axis Var_IN_OUT com blocos do PLCopen Toolbox

Note o “.Ref”

O tipo de dado
AxisStruct já
contém
elementos para
alarmes e
avisos.

197
Bibliotecas de Ferramentas Bloco Funcional
Yaskawa ReadAxisParameters
• Leitura de Parâmetros do Eixo
 Similar às “system variables” dos outros controladores

198
Bibliotecas de Ferramentas
Yaskawa
Inicialização da Estrutura
• A Biblioteca PLCopen Toolbox contém um POU lógico com um texto
genérico para guardar os dados inseridos.
 Vá para a aba “Library” e abra o POU “Initialize”
 Copie as linhas de inicialização desejada.
 Cole na sua própria POU “Initialize”
 Procure e substitua o “ReplaceMe” pelo nome de suas variáveis
 Entre com os valores iniciais requiridos

Copie da
Biblioteca para
o Projeto

199
Bibliotecas de Ferramentas
Yaskawa
Template Customizado
Qualquer projeto pode ser salvo como um template para um novo projeto.

Boas Práticas:
Compacte uma cópia do
template do projeto.
O próprio template é apenas um
ajuste para o MotionWorks IEC

200
Driving Value UNIDADE 3
Programação Avançada

Referenciamento (Homing)

Programa POU de Home


Homing com PLCopen
Blocos Funcionais Suportados
Ferramenta de Homing do PLCopen
Diagrama de Estados de Homing
Testes / Exercícios
Homing Introdução
O que é Homing?
 Uma sequência de movimentos repetitivos que movem o eixo de uma
posição desconhecida para uma posição conhecida.
 Executado em toda energização do sistema(encoder incremental)
 Executado uma única vez quando o eixo é implementado (encoder absoluto)
 Geralmente é feito em baixas velocidades
 Pode envolver sensores de proximidade, pulso de referência do encoder,
parada brusca, chaves limitadoras, limite de torque.

202
Referenciamento pela
Homing
PLCopen
• PLCopen parte 5: Homing
 Detalhes no PDF da PLCopen, parte 5
 PLCopen define:
• “Procedimentos” de Homing
• “Passos” do Homing
• Passos do Homing
 Não existe um bloco que satisfaça todas as
condições
 No lugar disso, a PLCopen define a forma
de construção, ou passos, para o
referenciamento
» Os blocos de referenciamento são
chamados de MC_StepXxxxx
Dois passos de
homing são
suportados pelos
controladores
MP2300iec.

203
Homing Blocos Funcionais Suportados
• O MP2300Siec suporta os seguintes BF relacionados ao
referenciamento
 MC_StepLimitSwitch
» PLCopen pg.11-12
 MC_StepRefPulse
» PLCopen pg.16-17
 MC_FinishHoming
» PLCopen pg.15
 MC_SetPosition

204
Diagrama de Estados de
Homing
Homing
• Alguns blocos deixam o controlador em
“homing mode”
 MC_StepLimitSwitch
• Outros fazem ele retornar para o modo
“standstill”
 MC_FinishHoming
 MC_StepRefPulse

205
Homing Programa POU de Home
• Adicione um Programa POU para Home
Inicializar(ST)

IHM(LD) Habilitar(LD) Alarme (LD)

Posicionamento(LD) Parar(LD)

Monitor (LD) Home (LD)

206
Homing Ferramenta de Homing do PLCopen
• A biblioteca de ferramentas
PLCopen da Yaskawa oferece
blocos de homing.
 O tipo de dado “HomeStruct” é para
Home Data
Use a watch
window para
achar bons
valores para os
dados.

Então inicialize
a estrutura em
um ST POU.

Veja o manual
de Ajuda das
Ferramentas.

207
Teste:
Homing
Homing
• Crie uma rotina de referenciamento (obeserve isso
acontecendo passo-a-passo)
 Referencie o eixo com o pulso C,
 Gire o motor até que o eixo esteja alinhado
 Defina a posição com o eixo alinhado como zero
• Características opcionais
 Referencie até um sensor antes de localizar o pulso C
» Utilize o MC_MoveVelocity
 Utilize o MC_StepLimitSwitch

208
Homing Solução Sugerida
• Uma possível solução parcial para o teste de Homing:

209
Driving Value UNIDADE 3
Programação Avançada

Engrenagem Eletrônica

Visão Geral
Engrenamento pelo PLCopen
Programa POU de Engrenagem
Exemplo de Programa
GearInPos
Engrenagem Eletrônica Visão Geral
• Engrenamento Eletrônico
 O motor se movimenta como a engrenagem de saída – “Escravo”
 Engrenagem de entrada é outro encoder – “Mestre”
» Encoder Externo Engrenagem de
Engrenagem de Entrada (Mestre)
» Eixo do Servo
Saída (Escravo)
» Eixo Virtual
 Razão da Engrenagem
» Numerador = Unidades do Escravo
» Denominador = Unidades do Mestre

Unidades do Escravo (Saída)


RazãoEngrenagem 
Unidades do Mestre(Entrada)

211
Engrenagem Eletrônica PLCopen Gearing
• GearIn
 “solta a embreagem” e engrena o escravo no mestre.
 Se o mestre já está em movimento, o escravo acelera até a velocidade
necessária e então “encaixa” na posição.
• GearOut
 “pressiona a embreagem” e deixa o escravo e o mestre desconestado.
 O escravo continuará na velocidade anterior, como se não houvesse
atrito.

Output Gear Input Gear


(Slave) (Master)

212
Programa POU de
Engrenagem Eletrônica
Engrenagem

Inicializar(ST)

IHM(LD) Habilitar(LD) Alarme (LD) Engrenagem(LD)

Posicionamento(LD) Parar(LD)

Monitor (LD) Home (LD)

213
Engrenagem Eletrônica Exemplo de Programa
Teste o programa
 “SimpleJog” o mestre
 Engrene enquanto o
mestre estiver
movendo/parado.
 Tente razões diferentes
 Mova o mestre com a mão
com o servo
habilitado/desabilitado.
 Observe a saída do InGear
• Recursos do Programa
 Chaveamento no modo
Boolean (TB)
 Acesso direto às saídas do
FB (F_Trig_1.Q) 214
Engrenagem Eletrônica Gear In Pos
Posição de Engrenamento do Mestre = 20
Posição Absoluta Posição de Engrenamento do Escravo = 20
Distâcia inicial para o Mestre = 5

(mode sincronizado não suportado)

20

15

Tempo

Velocidade do Mestre Velocidade do Escravo

215
Driving Value UNIDADE 3
Programação Avançada

Came Eletrônico

Recursos Disponíveis
Visão Geral
Perfil do Came
Software “Cam Tool”
Implementar um Came Eletrônico
Visão Avançada dos Cames
Came Eletrônico Recursos Disponíveis
• Introdução e Help sobre o Came Eletrônico
 Clique com o botão direito para obter ajuda sobre o FB
 Vá até o tópico “Camming”

217
Came Eletrônico Recursos Disponíveis
• Guia de Referência Rápida para Came Eletrônico
 Procure pelo documento número EM.MCD.09.043

Guia você
através de um
projeto novo de
Cames

218
Came Eletrônico Visão Geral
• Came Eletrônico tem origem mecânica
 Posição do Motor (escravo) é controlado pelo posicionamento
de um outro encoder (mestre)
 O mestre é um eixo giratório com um encoder
» Encoder Externo, Eixo do Servo, Eixo Virtual
» A posição do mestre tipicamente é de um angulo de 0° a 360° Escravos

Eixo
Mestre

Eixos
Escravos Mestre

219
Came Eletrônico Visão Geral
• Conceito principal
 Posição do escravo é controlada pela posição do
mestre
 A relação da posição Mestre-Escravo é descrita
por uma tabela de came.

3.00 360 3.00 360


Posição do Escravo
Posição do Mestre

0 0 0
Tempo Repete
220
Came Eletrônico Visão Geral - Ilustração

TrnCam01.csv

Envie o arquivo da dado do


came para o Controlador
•Configuração de Hardware:
Menu de Configuração de
Utilidades do Controlador

Crie uma tabela de came (Arquivo de texto)


•Cam Tool, Excel
•Escravo como .csv (limite de 8 caracteres)

Engrene o came eletrônico


•Y_CamIn
•CamTableID é utilizada

Acesse a tabela de Came pelo código


•Y_CamFileSelect
•CamTableID é criada

221
Came Eletrônico Programa POU de Came

Inicializar(ST)

IHM(LD) Habilitar(LD) Alarme (LD) Engrenagem(LD)

Posicionamento(LD) Parar(LD) Came (LD)

Monitor (LD) Home (LD)

222
Came Eletrônico Perfil do Came
• Desenvolver o perfil do came é uma ciência.
 Nós utilizaremos um perfil do came arbitrário
 Quais são os pontos críticos?

Este perfil de came


deve ser
representado como
Slave Position [mm]

uma tabela de
posicionamento
mestre/escravo no
formato *.csv .

A ferramenta de
Came faz isto para
nós!

Master Position “Phase” [Degrees]

223
Came Eletrônico “Cam Tool” – Ajustar o Estilo
Cam Tool é um software grátis
 Rode o “Cam Tool”
 “File” – “New”
 “Set Style”
» Escolha “No Unit”
– Unidades são ajustadas pelo “Hardware Configuration”, não pelo “CamTool”
» “Max. Phase” é a máxima posição do mestre – um “ciclo do mestre”
» “Max. Position” é a posição máxima do escravo por ciclo.
– Controle o máximo pelo do gráfico
» “Machine/Motor Information” é opcional e não será utilizado.

224
“Cam Tool” – Ajuste de
Came Eletrônico
Parâmetros
• Entre com os pontos críticos
• Forma da Curva
 Afeta a velocidade, acelerção e
jerk 72[deg],180 [mm] 180[deg],180 [mm]

• Plotagem Mestre
 Valor pequeno = muitos pontos,
alta resolução, movimento
suave
 Seções com linhas retas
necessitam de apenas 2 pontos
» Controlador aplica uma
interpolação linear entre pontos 0[deg],0 [mm] 360[deg], 0 [mm]
na tabela CSV final.

225
Came Eletrônico “Cam Tool” – Analizador de Perfil
• “Data Graph” – mostra a tabela de came no formato gráfico
• “Data List” – mostra os pontos da tabela de came
• “Control Graph” – calcula velocidade, aceleração e jerk

226
Came Eletrônico “Cam Tool” – Criando um CSV
• Salve tanto como CDT (projeto) e como CSV (dado de
posição)
 Máximo de 8 caracteres
 Recomendado salvar na pasta do projeto

227
Enviando a tabela de came
Came Eletrônico
para o controlador
• Utilize o “Hardware Configuration”
• Confirme no “Project Archive” (interface web)

DICA:
Copie o diretório da página web
‘data/cam/TrnCam01.csv’

Você vai precisar dele para o


Y_CamFileSelect

228
Acesse a Tabela de Came pelo Código:
Came Eletrônico
Y_CamFileSelect
• Y_CamFileSelect
 A entrada “File” é do tipo de dado STRING
» Feche com apóstrofos ou crie uma variável STRING com valor inicial
 O valor da saída “CamTableID” é determinada pelo
controlador

229
Implementando um Came
Came Eletrônico
Eletrônico
• Faça um Jog no mestre
ou mova-o com a mão
• Observe
 Saída InSync
 Engrenamento e
Desengrenamento.

Nós apenas encostamos


na superfície de um
Came Eletrônico!

230
Visão avançada dos Cames:
Came Eletrônico Opções de Engrenamento

1440
1080
720
360
0

360 360 360 360

0 0 0 0 0

231
231
Visão avançada dos Cames:
Came Eletrônico “Engage Window”
• Detalhes da “Engage Window”
 A janela permite a detecção da Posição de
Engate quando o mestre está em velocidade.
 Determinando um valor ótimo
» Máxima velocidade do mestre x taxa do
Mechatrolink x 2
 Uma janela muito grande pode causar um
salto do escravo para a posição
correspondente da tabela de posicionamento. Small (normal) window
Janela Pequena (normal)
» A relação Mestre / Escravo não é afetado pelo
tamanho da janela.
 Uma janela muito pequena pode causar o
não engate do escravo.
» O controlador pode nunca ver o mestre na
janela. Salto
Jump
 O tamanho padrão da janela é de 1% do ciclo
do mestre, o que é um valor apropriado para
a maioria das aplicações. Large (oversized) window
Janela Grande

232
Visão avançada dos Cames:
Came Eletrônico Shift do Came

Shifting
 Ajuste do lado do mestre
 Útil quando uma marca de registro
detecta produtos no eixo do mestre.
 O padrão do escravo fica inalterado.

Master
Shifting é um
deslocamento
controlado do lobe do
came vermelho no
eixo preto.

233
Visão avançada dos Cames:
Came Eletrônico Shift do Came

90 graus de shift

180 graus de duração

234
Visão avançada dos Cames:
Came Eletrônico Scale do Came

• Scaling
 Ajuste do lado do escravo
 Multiplicação simples de todos os pontos do lado do escravo
 O padrão do escravo pode ser alongado ou reduzido.

Escravo

Mestre

235
Visão avançada dos Cames:
Came Eletrônico Offset do Escravo

• Offset do Escravo
 Ajuste do lado do escravo
 Adição simples nos pontos do lado do escravo
 O padrão do escravo será o mesmo, mas será
reposicionado em uma faixa diferente.

Escravo

Mestre

236
Visão avançada dos Cames:
Came Eletrônico Offset do Escravo

237
Electronic Cam Aprenda Mais
Deseja realmente aprender a aproveitar o poder dos Cames?
 Vídeo de eLearning
» eLV.MotionWorksIEC.01.CamDemo
 Apresentação
» TP.MCD.09.056 (Apenas acesso de parceiros)
 Workshop de Programação Avançada (Treinamento In-House)
» TRM020-MP2000iec-APW1
» Aplicação de faca rotativa
 Busca na página web
» Notas de aplicação(número do documento AN.xx.xxx)
» Código Exemplo (número do documento EC.xx.xxx)
 Leia toda a ajuda!
 Utilize o “CamToolbox” e leia o arquivo de ajuda
 Resolva uma aplicação!

238
Driving Value

UNIDADE 4:
Comuniação Ethernet

Visão Geral
Modbus / TCP
Ethernet / IP
OPC
Visão Geral Comunicação Simultânea
 3 ferramentas de
software
 E/IP
 Modbus/TCP
 OPC
 Mestre & Escravo

240
Visão Geral Comunicação via Rede
• O Mestre inicia a comunicação
• Os dados fluem nos dois sentidos

Master Slave
Device Device

Modbus/TCP “Function Code”


Protocolo Modbus/TCP protocol
“Function Code”
Ethernet/IP
Protocolo“Instance” protocol
Ethernet/IP “Instance”
Master Slave
Mestre
Local Memory Escravo
Local Memory
Memória Local Memória local
Network Memory
Memória de Rede

241
Visão Geral Dispositivos de Rede como Hardware
• Quando o controlador é configurado para Modbus/TCP
 Global_Variables group aparecerá
 IO_Configuration aparecerá

Geralmente o controlador
NÂO possui nenhuma
variável glocal ou
configuração de I/O

Elas devem ser definidas


manualmente em Hardware
Configuration

242
Visão Geral Memória Global de I/O
• Variáveis relacionadas a dispositivos físicos possuem endereço de
I/O

Entradas Saídas
%IB %QB
Local Slots Local Slots
LIO cards LIO cards
Mlink Mlink
Axes Axes
I/O devices I/O devices
Modbus/TCP Modbus/TCP
Master Master
E/IP Scanner E/IP Scanner
Modbus/TCP Slave Modbus/TCP Slave
E/IP Adapter E/IP Adapter

243
Visão Geral Endereçamento de I/O
• Siga o nível de endereçamento de Byte IEC61131-3

%IB 43210 %IX 43210.7


QB X bit (0-7)
yte(8 bits)

W ord (16 bits)

D ouble (32 bits)

L ong (64 bits)

244
Visão Geral Exercício
• Comunicação controlador para controlador
 Um é o mestre, o outro o escravo

Protocolo Modbus/TCP “Function Code”


Protocolo Ethernet/IP “Instance”
Mestre Escravo
Memória Local Memória local

Memória de Rede

245
Driving Value UNIDADE 4
Comunicação Ethernet

Aplicação em Modbus/TCP

Visão Geral
Configuração do Escravo
Configuração do Mestre
Aplicação em Modbus/TCP Ajuda Online
• Utilize o Online Help, itens 1.9.2 e 1.9.3
 Acesso pelo Hardware Configuration

247
Aplicação em Modbus/TCP Instruções
• Interligue dois controladores
 Um será o MASTER
 O outro será o SLAVE
• Aplicação
 O controlador mestre enviará palavras de 16 bits para o
controlador escravo
 O controlador mestre receberá palavras de 16 bits do
controlador escravo
• Detalhes nos slides seguintes
 Configure o Escravo e crie variáveis
 Configure o Mestre e crie variáveis

248
Aplicação em Modbus/TCP Comunicação de Dados
Mestre Escravo

• Comunicação de
dados via
Modbus/TCP

IN (variáveis que vêm do OUT (variáveis que vão para o


Escravo) Mestre)
Modbus FC#04 (Read Input Registers)
Os endereços Byte Byte %QB1168
dependem da Byte Byte %QB1169
Configuração Byte Byte
OUT (variáveis que vão para IN (variáveis que vêm do
o Escravo) Escravo)
Modbus FC#16 (Write Multiple Registers)
Os endereços Byte Byte %IB1168
dependem da Byte Byte
Configuração Byte Byte %IB1169

249
Aplicação em Modbus/TCP Visão geral
• Variáveis são transmitidas de um controlador para outro

•Apenas o mestre possui um status


variável para cada um de seus
escravos

Modbus FC#04 (Read Input Registers)

Modbus FC#16 (Write Multiple Registers)

250
Aplicação em Modbus/TCP Configuração do Escravo
• Habilite o Controlador como Escravo Modbus
 Cheque a caixa!
 Escolha as tarefas de I/O (Slow provavelmete já será suficente!)
 Outras opções podem ser necessárias

Escravo

251
Aplicação em Modbus/TCP Atualização do Sistema
• Save Slave

 Atualiza a configuração do projeto


 Cria variáveis globais & grupos
 Cria dispositivos de I/O
• Envia a configuração para o
controlador
 Sincroniza o controlador com o projeto
• Reseta o Controlador
 Reinicie ou energize novamente para
utilizar a nova configuração
• Make, Download, Warm start
 Novas variáveis e hardware requerem
um “fresh start”

252
Confirmação do Hardware
Aplicação em Modbus/TCP
Escravo
• Grupos de Variáveis Globais adcionados
 Grupo para cada códico de função suportado pelo Modbus
 Address Range é listado
• Adicionados Dispositivos de I/O
 Address Range confirmado
 Não há a necessidade de mudanças, apenas observe

253
Criação de Variáveis do
Aplicação em Modbus/TCP
Escravo
• Crie Variáveis no Controlador Escravo
 Utilize o intervalo de endereços indicado no
cabeçalho do grupo

Palavra de 16-bit
representam 2
bytes

OUT_To_Master01
Byte %QB28676
Byte %QB28677

IN_From_Master01

3 variables of 8 total shown Byte %IB24560


Use sempre
MAIÚSCULAS
Byte %IB24561
Para os Endereços

254
Aplicação em Modbus/TCP Adicionando Escravos
• Adicionamos o controlador Escravo no controlador Mestre
 Entre online na Configuração
 Sob “Modbus/TCP” clique em “Add Slave Device”

Mestre

255
Aplicação em Modbus/TCP Adicionando Escravos
• Propriedades do Escravo
 “IP address” do escravo
 Nome do “Status Variable” Este endereço IP é apenas um exemplo.
O Mestre usa o endereço IP do dispositivoo
 Intervalo de tarefa e intervalo de rede escravo.

Mestre Escravo

Não há motivo para


atualizar a rede mais rápido
que a tarefa do controlador.

192.168.15.22 192.168.15.21

256
Adicionando um
Aplicação em Modbus/TCP
Bloco de Dados
• Adicione um Bloco de Dados
 Adicione blocos para as palavras de ENTRADA e SAÍDA

Mestre

257
Aplicação em Modbus/TCP Bloco de Entrada
• Detalhes do Bloco de Entradas

Mestre Escravo

IN (variáveis que vêm do OUT (variáveis que vão para o


Escravo) Mestre)
Modbus FC#04 (Read Input Registers)
Os endereços Byte Byte %QB1168
dependem da Byte Byte %QB1169
Configuração Byte Byte

258
Aplicação em Modbus/TCP Intervalos de Endereço Local

• Detalhes dos Intervalos de Endereço Local

O controlador tem este intervalo


reservado em sua memória de I/O local
para dados de entrada do Modbus/TCP

Mestre
Esta é o primeiro bloco de dados de
entrada do escravo, então faz mais
sentido começar pelo endereço mais
baixo. Outro bloco de dados de
entrada poderia ser adicionado e
poderia começar no próximo
endereço livre 43026.

8 itens significa 8 palavras Modbus (1


palavra tem 16 bits).
O controlador endereça sua memória
local em bytes (1 byte = 8 bits)
8 palavras modbus necessitam de 16
bytes do controlador, então o endereço
final é calculado.
IN_Var_FromSlave
Modbus FC#04 (Read Input Registers)
Os endereços Byte Bytes de “padding” reservados para
dependem da Byte Byte a palavra de status, como nomeado
Configuração Byte na janela anterior

259
Aplicação em Modbus/TCP Bloco de Saída
As saídas do Modbus são guardadas na
• Detalhes do Bloco de Saídas área de memória %Q do controlador,
então os valores de endereço podem ser
os mesmos que das entradas na área %I

Master Slave

IN (variáveis que vêm do


OUT_ Var_toSlave Mestre)
Modbus FC#16 (Write Multiple Registers)
Address Byte Byte %IB1168
depends on Byte Byte
Byte Byte %IB1169
configuration

260
Aplicação em Modbus/TCP Atualização do Sistema
• Save Master
 Atualiza a configuração de projeto
 Cria variáveis globais & grupos
 Cria dispositivos de I/O
• Envia a configuração para o
controlador
 Sincroniza o controlador com o projeto
• Reenergize o Controlador
 Reinicie ou energize novamente para
utilizar a nova configuração
• Make, Download, Warm start
 Novas variáveis e hardware requerem
um Novo Start

261
Aplicação em Modbus/TCP Confirme o Hardware Mestre

• Global_Variables e IO_Configuration mostram novo


hardware Modbus/TCP

262
Aplicação em Modbus/TCP Variável de Status
• Verifique a variável de status Indica que a visualização está em
hexadecimal
 Online Help: 1.9.3
 Valor Esperado: 16#1000 (conectado) ou 16#1400 (durante
processamento)

263
Aplicação em Modbus/TCP Variáveis do Mestre
Mestre
• Crie variáveis do Mestre
 Crie variáveis nos grupos
(utilize o “Create Variable Set”)
 Utilize a faixa de endereço
Palavras de 16 bits
indicada no cabeçalho do
utilizam 2 Bytes grupo

PRESTE MUITA
ATENÇÃO NOS
ENDEREÇOS!

SEMPRE utilize
O endereço Criamos apenas 3 variáveis de um total de 8 MAÍUSCULAS para os
disponíveis endereços
depende da
configuração
264
Aplicação em Modbus/TCP Rode o Programa
• Dê um MAKE/Download, rode os programas tanto no
Mestre quanto no Escravo, e monitore a comunicação
Mestre

Escravo
265
Driving Value UNIDADE 4
Comunicação Ethernet

Aplicação em Ethernet/IP

Instâncias E/IP
Comparação com Modbus/TCP
Configuração do Mestre
Configuração do Assembly
Aplicação em Ethernet/IP Ajuda Online
• Utilize o Online Help, itens 1.9.4 e 1.9.5

267
Aplicação em Ethernet/IP Instâncias Ethernet/IP
• Ethernet / IP utiliza “instâncias” para comunicar dados, ao
invés dos Function Codes
 Como se fosse um canal específico para comunicar
 Instâncias diferentes para ENTRADAS E SAÍDAS
 Cada instância no MP2000iec contém 128 ou 256 bytes
• Terminologia
 Scanner (Mestre)
 Adapter (Escravo)
• A criação de variáveis e a variável de status é semelhante ao
Modbus/TCP

268
Aplicação em Ethernet/IP Comparação com Modbus/TCP

• Diagrama de uso de Instâncias


 É fácil confudir qual é a entrada e qual é a saída

Scanner Adapter

269
Aplicação em Ethernet/IP Configuração do Mestre
• Tipo de Conexão= Multicast para MP2000iec

270
Aplicação em Ethernet/IP Configuração do Assembly
• Configuration de Instâncias do Assembly
 Refira à documentação do adapter(Slave)
 Não necessário para comunicação MP2000iec para MP2000iec

271
Driving Value

UNIT 5
Execução de Tarefas

Execução de Tarefas Básicas


Multi Tasking
Driving Value UNIDADE 5
Execução das Tarefas

Execução das Tarefas


Básicas

Ordem de execução
Desabilitando um POU
Monitorando a Task
Scan da Aplicação
Scan da Mechatrolink
Execução das Tarefas Ordem de Execução
• A ordem de execução padrão não é necessariamente a mais
indicada para sua aplicação
• A ordem da VISUALIZAÇÃO dos programas na aba Project
não é a mesma da ordem de EXECUÇÃO na aba Hardware

274
Execução das Tarefas Desabilitando um POU

• Para desabilitar um POU,


simplesmente delete-o da
aba hardware
 Ele poderá ser adicionado
posteriomente
 Fique tranquilo: ele não é
deletado do projeto

275
Execução das Tarefas Tempos de Varredura
• Intervalo de tarefas
 Default: 8, 20, 100ms
 Execução do programa
 É o scan da Aplicação
 Deve múltiplo inteiro do scan
da Mechatrolink

• Ciclo de Comunicação da
Mechatrolink-II
 Default: 2 ms
 Executa os Movimentos e trata
os I/Os da MLINK
 “MLINK Scan”

276
Execução das Tarefas Ordem de Execução
2 ms MLINK SCAN 10 ms APPLICATION TASK SCAN

ISR ISR ISR ISR


MLINK EXECUTION (MOTION)

PLC APPLICATION PROGRAM SCAN

3 5
OUTPUTS WRITTEN
INPUTS READ

2 4
1

ISR = Interrupt Service


Request

0 2 4 6 8 10
277
Execução das Tarefas Ordem de Execução
 BFs inseridos nas partes mais inferiores da página de
programa (com “execution order” maior) normalmente geram o
movimento no eixo em uma tempo maior do que comparados
aos blocos mais “no começo” do programa (com um “execution
order” menor). Isso significa que os dois blocos
MC_MoveAbsolute no exemplo anterior não irão iniciar o
movimento dos seus respectivos eixos exatamente no mesmo
instante, mesmo sendo acionados pela mesma variável (V006).

 (Para a versão PRO) Coloque os blocos de movimento em


uma task dedicada à isso com a prioridade mais alta, definida
na mesma taxa de atualixação que a Mechatrolink. Isso irá
garantir que o movimento dos eixos sejam executados na
simultaneamente, conforme a varredura da Mechatrolink.

278
Execução das Tarefas Scan da Máquina

 O maior o tempo de execução de um bloco é de 1 ms. A maioria é


executada na ordem de centenas de microsegundos (μs). A primeira
vez que ele é executado leva mais tempo.
 O tempo de execução da máquina não é constante; ele depende de
cada BF e de cada lógica que está sendo executada naquele
momento.
 As variáveis são atualizadas imediatamente durante a execução do
código. Uma mesma variável pode alterar seu valor várias vezes
durante a execução.

279
Execução das Tarefas Monitorando a Task
• Monitore a PLC_TASK_INFO no Watch

Nível de Prioridade (apenas para


versão PRO)

“Scan Time” ou “Tempo de


Atualização”

Duração Total (para TODAS as


Tarefas)

Maior Tempo de Varredura

280
Execução das Tarefas Watchdog
• Certifique-se de que o valor do Watchdog Time = Intervalo

281
Execução das Tarefas Scan da Mechatrolink

 O tempo de execução da MLINK não é constante; ele depende de


que tipo de movimento está sendo executado e em que parte do
programa está isso; quantidade de eixos que estão em movimento
simultaneamente, etc.
 Normalmente o tempo de Scan da MLINK é de 0.3ms a 0.6ms por
eixo que está sendo controlado/movimentado.
 O tempo de execução da MLINK deve ser significativamente menor
que a taxa de atualização da rede MLINK para permitir que o código
escrito trabalhe/rode.

Guia de quantidade de eixos pela Taxa de atualização da Rede


0.5 1.0 1.5 2.0 2.5 3.0 4.0
ms ms ms ms ms ms ms
Quantidade
1 2 4 6 7 8 16
Máxima

282
Driving Value

Multi-Tarefas

Conceitos de Multi-Tarefas
Tarefa Nova
Tipos de Tarefas
Tarefas de Sistema
Instâncias de Programas
Prioridade das Tarefas
Tarefas de I/O
Multi-Tarefas Conceitos de Multi-Tarefas
• Até 16 tarefas
• Intervalo de tarefas (tempo de scan) independente para cada
tarefa
• Prioridade da tarefa
• Endereçamento manual dos POUs para uma determinada
Task
• Endereçamento manual dos I/Os (hardware) para uma
determinada Task

284
Multi-Tarefas Inserindo uma Tarefa Nova
• Clique com o botão direito na pasta Tasks (aba Hardware)
• Insert  Task

285
Multi-Tarefas Tipos de Tarefas
• Default
 Este é o tipo de tarefa com menor
prioridade (número mais alto) e roda
sempre que “sora tempo” em outras
tarefas.
• Cyclic
 Esse tipo de tarefa é repetida a cada
intrvalo pré-determinado.
 Ideal para tarefas que executam
movimento no servo, com tempos de
varredura tão rápidos como a própria
rede Mechatrolink.
 Tarefas que movimentam o servo
normalmente são definidas com tempos
menores de varredura do que aquelas
que não fazem movimento no servo,
como no caso das lógicas de
intertravamento, etc. Mas isso depende
da aplicação.
• Event
 Roda baseado em condições de
interrupção, causada por I/Os.
• System
 Roda essa tarefa apenas uma vez,
quando o sistema atinge um determinado
estado, como um “warm start”, etc. Boa
para rotinas de inicializações e
verificações de condições de falha.
286
Multi-Tarefas Tarefas de Sistema
• Utililze as Tarefas de Sistema para executar um ou mais
programas conforme o sistema atinge um determinado ponto
 Warm Start
 Cold Start
 Erros

287
Multi-Tarefas Instâncias de Programas
• Manualmente insira uma instância de programa à uma Task
 Acusa erro se não houver nenhum programa naquela Task

 Clique com o direito do mouse na Task, Insert  Program


instance

288
Multi-Tarefas Tarefas Cíclicas
• Crie tarefas rápidas e lentas, do tipo cíclicas
 Otimiza a execução do programa
 Programas de controle de movimento em tarefas rápidas
 Programas que fazem interface de usuário em tarefas mais
lentas

289
Multi-Tarefas Intervalo de Tarefas
• O intervalo de execução pode ser ajustado tão rápido quanrto
da própria Mechatrolink
• Ajuste o Watchdog para coincidir com o Intervalo

290
Multi-Tarefas Prioridade das Tarefas
• As tarefas são executadas sequencialmente por ordem de
prioridade (0 = primeira, 31 = última)
 Tarefas críticas com intervalo de execução pequeno precisam
ser definidas com um nível de prioridade alto (número menor,
maior preferencia de execução)

291
Endereçamento
Multi-Tarefas
das Tarefas de I/O
• Os I/Os de Hardware
precisam estar
sincronizados com alguma
tarefa
• A “IO task” (criada
automaticamente pelo
template) já foi criada
pensando nisso
• Ethernet IP pode ser
sincronizada com uma task
de 2ms (em sincronismo
com a MLINK)

292
Driving Value

Apêndice

Done vs InPosition
OPC server eLearning Video
MotionWorks IEC Express vs Pro
Introdução à Programação SFC
Driving Value

DONE VS INPOSITION

Done vs InPosition
Done vs. InPosition A Diferençã é a Realimentação
• Done não é o mesmo que InPosition
 Done = o controlador acabou de traçar o perfil de movimento
 In Position = o motor alcançou a posição final
 Mais informações no FU/FB Help “Motion Details”

Velocity

Done

In Position

295
Done vs. InPosition Lógica Ladder
• Use a Lógica Ladder “seal-in circuit” para gerar In Position
 Servo Axis “PSET” global variable (Position Settled)
 Trabalha em conjunto com Pn522 [pulsos de encoder]

296
Done vs. InPosition Exemplo
• Exemplo de programa POU “Positioning” com
implementação do In Position usando PSET

297
Driving Value

MotionWorks IEC
OPC Server

Class ID: YE-TRM804-MWIEC-OPC


Doc ID: eLV.MotionWorksIEC.04.OPC
Rev .
Date: .
Introdução
• Visão Geral do OPC •Exemplo Live

299
Driving Value

VISÃO GERAL DO OPC


Visão geral Definição
• OLE for Process Control
OLE = Object Linking and Embedding
• Um formato padrão para comunicação de
hardware com um PC via Ethernet
• Analogia: Windows Printer Driver
 “printer” = controlador de máquina
 “driver” = OPC Server
ANTES:
 O desenvolvedor de Software costumava escrever
driver para cada impressora suportada
AutoCAD, WordPerfect, etc escreviam driver para cada
modelo de Epson, HP, etc
DEPOIS:
 O fabricante escreve o próprio driver
 O Driver entrega e recebe informação de acordo
com especificação do Windows
301
Visão geral Benefícios
• Programa padrão de Interface para a máquina
 Escreve um programa em VB, VC++ etc
 Usa o PC para aquisição de dados, IHM ou CLP

302
Visão geral
Diagrama

Server Client

3rd Party
OPC
Server

Controlador
3rd Party

303
Visão geral
O que você precisa?
• Software: MWIEC OPC Server
 Part Number: PDE-U-OPCPA
• Client Software
 OEMs escrevem software padrão
 Software configurável
• OPCWareXL usado nesta apresentação

304
Driving Value

Demonstração
Demonstração Visão Geral
• Monitora e controla simultaneamente
 Dois controladores MP2300Siec
 Dois motores para cada controlador
• Client OPC “OPCWareXL” Plug-In para Excel

306
Demonstração Opção de Configuração Simples

307
Demonstração Configuração
192.168.15.41 192.168.15.40 192.168.15.42

192.168.15.83 192.168.15.85

308
Demonstração Controladores
192.168.15.41 192.168.15.40 192.168.15.42

192.168.15.83 192.168.15.85

309
Demonstração OPC Server
192.168.15.41 192.168.15.40 192.168.15.42

192.168.15.83 192.168.15.85

310
Demonstração OPC Client
192.168.15.41 192.168.15.40 192.168.15.42

192.168.15.83 192.168.15.85

311
Driving Value

Motionworks IEC
Express vs Pro

Express and Pro


Compatibility
Project Tree
Options
Project Comparison
Look and Feel
Informações Gerais Express x Pro
• MotionWorks IEC “Express” • MotionWorks IEC
 Interface Simplificada “Professional”
 Execução de Programas  Interface Completa
Simples
 Multi-Tarefas
 Principais Linguagens de
 Todas as 5 Linguagens de
Programação (ST, LD)
Programação da
 Fácil de Utilizar IEC61131 (ST, LD, FBD,
 Rápida Aprendizagem IL, SFC)
 Baixo Custo  Custo médio
 Para aplicações que  Para aplicações especiais
necessitam de posicionamento e de alta performance
ponto-a-ponto, Came e
Engrenamento Eletrônicos,
Comunicação via Ethernet

313
Informações Gerais Compatibilidade
• As duas versões podem ser instaladas em um mesmo PC
 A lincença deles é tratada individualmente
• Projetos do Express podem ser abertos no Pro
 Os projetos do Express são automaticamente convertidos em
projetos do Pro
» Salve o projeto com outro nome ou compacte-o antes de abrir no Pro
 O contrário não funciona…
• As lógicas dentro dos programas podem ser “copiadas /
coladas”
 Podemos abrir vários projetos no Express e no Pro
simultaneamente
 Somente o primeiro projeto poderá ser editado, os demais ficam
restritos para visualização
 Fica fácil copiar todo o programa
• Mesmo firmware no controlador
 Não existe nenhum firmware especial para a versão Pro
314
Informações Gerais Árvore do Projeto

• Janela Project Tree


 DataTypes – você pode
inserir outras “páginas” com
os seus prórios tipos de
dados, mais adequados para
sua aplicação específica
 Cada POU mostra
informações e a lista de
variáveis como ícones
 Mais opções de abas para
melhor
organização/visualização
 Os programas podem ser
alocados em grupos para
melhor
localização/visualização
315
Informações Gerais Opções

• Mais opções de
configuração
 MENU: Extras - Options
 Graphical Editor
» Largura dos Contatos
» Atraso para detecção de
colisão
» Todas as funções com
ou sem EN/ENO
 Backup e Auto-Save

316
Informações Gerais Comparação de Projeto
• Mostra exatamente de uma revisão anterior de um projeto
para uma nova versão, por exemplo

317
Informações Gerais Visual Melhorado
• Botões menores para deixar a área de programação livre
• Novos botões como o “Download Changes” para agilizar o
desenvolvimento do programa

318
Driving Value

Programação em Fluxograma
(SFC)

O que é o SFC
Quando utilizar o SFC
Exemplo de Programa
Programação em Fluxograma (SFC) O que é SFC

• Uma programação de
forma gráfica, refletindo a
sequência da aplicação,
que pode ser claramente
interpretada
• Uma ferramenta de
análise do tipo “top-down”
• Mostra os principais
“estados” de um programa

Exemplo de Semáforo

320
Programação em Fluxograma (SFC) Quando Utilizar SFC
• Quando existe um sequência pré-determinada para o
funcionamento de uma determinada máquina
• Quando é vantajoso pensar /visualizar o funcionamento da
máquina como em um fluxograma
• Quando alguém que não está muito familiarizado precisa
trabalhar com seu programa. Olhar o programa em SFC dá
uma boa idéia de como um determinada máquina funciona.

321
Programação em Fluxograma (SFC) SFC no MotionWorks IEC

• O que iremos fazer:


 Criar um SFC juntos
» Edição básica de um SFC
» Regras básicas de um SFC
 Executaremos um programa em SFC no MotionWorks IEC Pro

• Isto não será um treinamento exaustivo de SFC…

322
Programação em Fluxograma (SFC) Status do Projeto
• Inicialização do Eixo na Task de Startup
• Came, Engrenamento, Posicionamento em uma “Fast Task”
• Todo o resto em uma “Medium Task”
 O nome da Task pode ser alterado

323
Programação em Fluxograma (SFC) A Aplicação
O desafio:
• Dê uma olhada no programa
Start N Clear_Outputs
em SFC ao lado. Você 001 MO1_DI_03

consegue presumir o que


esse programa faz? Fwd N Move_Forward InProgress N Blink

002 MoveDone

A resposta: Out N MO1_DO_03

• Entradas para mover o eixo Start_Rev

avante / reverso Rev D Move_Reverse


T#750ms

• Liga uma saída quando o


movimento for concluído
Rev_Done
• A saída “In Progress”
Start
enquanto a máquina está
operando

324
Programação em Fluxograma (SFC) Carta de Tempo
• Movimento Avante / Reverso
• O movimento é iniciado pela Input 3
• Saída de confirmação

325
Programação em Fluxograma (SFC) Criando o Programa
• Inserindo o POU
• Adicione esse programa a
uma “Fast Task”

326
Programação em Fluxograma (SFC) O Programa em SFC

Ferramentas de Edição do SFC

S = Etapa (Step)
A = Ação
T = Transição

Pastas para as AÇÕES e TRANSIÇÕES.


As páginas de programa irão aparecer
conforme você for desenvolvendo o programa

327
Programação em Fluxograma (SFC) Editando os Nomes

S001 N A001 Init N Clear_Outputs


Clique com o direito
do mouse em
T002 Properties para T001
alterar o nome
S002 N A002 Fwd N Move_Forward

T003 T003

S003 N A003 Out N Set_Output

T004 T004

S004 N A004 Rev N Clear_Output

T005 T005

S005 N A005 Init Não atribua um mesmo


nome para as Etapas e
Ações!
T001

328
Programação em Fluxograma (SFC) Primeiro Passo
• Primeiro Passo Init N Clear_Outputs

 Indicado pela linha dupla


T001
 Executado no start cold/warm
 Todo programa em SFC precisa ter um Fwd N Move_Forward

paso inicial
T003
 Só pode haver 1 passo inicial
Out N Set_Output

T004

Rev N Clear_Output

T005

Init

329
Programação em Fluxograma (SFC) Jump
• Jump Init N Clear_Outputs

 Indicado por um linha transversal


T001
 Digite o nome do destino
Fwd N Move_Forward

T003

Out N Set_Output

T004

Rev N Clear_Output

T005

Init

330
Programação em Fluxograma (SFC) Ação: Zerar as Saídas

• Criar um programa para essa ação


Start N Clear_Outputs

O1_DI_03

Fwd N Move_Forward InProgress N Blink

MoveDone

Out N MO1_DO_03
MOVE
WORD#0 MO1_DO_Bank

Start_Rev

331
Programação em Fluxograma (SFC) Transição Direta
• Altere as propriedades do T001 para “direct”
• Adicione um programa em Ladder para essa “transição
direta”
Start N Clear_Outputs

001 MO1_DI_03

Clique com o direito do mouse para OBJECT PROPERTIES


Fwd N Move_Forward InProgress

002 MoveDone

Out N MO1_DO_03

332
Programação em Fluxograma (SFC) Ação: Mover para Frente

Init N Clear_Outputs

001 MO1_DI_03

Fwd N Move_Forward

MC_MoveRelative_1
T003 MC_MoveRelative
LeftMotor Axis Axis LeftMotor

Execute Done MoveDone


Out Distance
N
Distance
Set_Output Busy

Velocity Velocity Active

AccDec Acceleration CommandAborted


T004
AccDec Deceleration Error

Jerk ErrorID V008


Rev N Clear_Output
BufferMode

T005 333
Programação em Fluxograma (SFC) Utilizando o Bit “Step.X”

Init N Clear_Outputs

001 MO1_DI_03

Fwd N Move_Forward

MC_MoveRelative_1
T003
MC_MoveRelative
LeftMotor Axis Axis LeftMotor
001 Fwd.X
Execute Done MoveDone
Out N Set_Output
Distance Distance Busy

Velocity Velocity Active

AccDec Acceleration CommandAborted


T004
AccDec Deceleration Error

Jerk ErrorID V008

Rev NBufferMode
Clear_Output

T005 334
Programação em Fluxograma (SFC) Movimento Concluído
Init N Clear_Outputs

001 MO1_DI_03

Fwd N Move_Forward

002 MoveDone

MC_MoveRelative_1
Out N Set_Output
MC_MoveRelative
LeftMotor Axis Axis LeftMotor
001 Fwd.X
Execute Done MoveDone
T004
Distance Distance Busy

Velocity Velocity Active


Rev N Clear_Output
AccDec Acceleration CommandAborted

AccDec Deceleration Error

T005 Jerk ErrorID V008

BufferMode

Init 335
001 MO1_DI_03
Programação em Fluxograma (SFC) Ação por Variável
Fwd N Move_Forward

002 MoveDone

Out N MO1_DO_03

T004

Rev N Clear_Output

Uma variável do tipo binária


T005
pode ser utilizada como
“trigger” da ação sem a
Init
necessidade de escrever mais
um programa para isso

336
Programação em Fluxograma (SFC)
Fwd N Move_Forward
Ação por Detalhe
002 MoveDone

Out N MO1_DO_03
Clique com o direito do mouse em Properties
para alterar o nome
Input3

Rev N Clear_Output

T004

Init

337
001 MO1_DI_03

Programação em Fluxograma (SFC) Fwd


Ação por Detalhe
N Move_Forward

002 MoveDone

Out N MO1_DO_03

Input3

Rev N Clear_Output

T004

Init
O bit que controla se a transição é VERDADEIRA
ou FALSA precisa ter o mesmo nome daquele
dado à transição

001 MO1_DI_03 Input3

338
002 MoveDone
Programação em Fluxograma (SFC) Comportamento da Ação
Out N MO1_DO_03

Input3

Rev D Move_Reverse
T#750ms

T004

Init

339
Programação em Fluxograma (SFC) Comportamento da Ação

340
002
Programação em Fluxograma (SFC)
MoveDone
Ação: Mover para Trás
Out N MO1_DO_03

Input3

Rev D Move_Reverse
T#750ms

T004

MC_MoveRelative_2
Init MC_MoveRelative
LeftMotor Axis Axis LeftMotor

Rev.X Execute Done MoveDone


MUL
Distance Distance Busy

LREAL#-1.0 Velocity Velocity Active

AccDec Acceleration CommandAborted

AccDec Deceleration Error

Jerk ErrorID V010

BufferMode

341
002 MoveDone
Programação em Fluxograma (SFC) Movimento Concluído
Out N MO1_DO_03

Input3

Rev D Move_Reverse
T#750ms

Done

Init

001 MoveDone Done

342
Programação em Fluxograma (SFC) Bifurcação

Init N Clear_Outputs

001 MO1_DI_03

Fwd N Move_Forward S010 N A011

002 MoveDone

Out N MO1_DO_03

Input3

Rev D Move_Reverse
T#750ms

Done

Init

343
Programação em Fluxograma (SFC) Ação Paralela: Piscar

INIT N Clear_AllOutputs

001 MO1_DI_03

Fwd N Move_Forward InProgress N Blink

002 MoveDone

Out N MO1_DO_03

DINT_TO_DWORD
PLC_SYS_TICK_CNT FlickerDWORD
Start_Rev

REV N Clear_Output

D Move_Reverse
001 T#750ms
FlickerDWORD.X6 MO1_DO_04

Rev_Done

INIT
344
Programação em Fluxograma (SFC) Rodando o Programa
• Modo Debug
 Fácil acompanhamento do programa

345
Entre em Contato com a Yaskawa

(11) 3585-1100

www.yaskawa.com.br

treinamento@yaskawa.com.br

346

Você também pode gostar