INÍCIO > Fórum > Programação IEC 61131 (LogicLab) > Exemplo de manipulação de carrinho na linguagem SFC
- Este tópico tem 5 respostas, 2 participantes e foi atualizado pela última vez 10 anos, 5 meses atrás da Sergio Bertana.
-
autorPublique
-
Setembro 13, 2013 em 8: 56 am #35412Stephenparticipante
Estou tentando me familiarizar com o LogicLab e a linguagem SFC, mas ainda não estou certo sobre alguns aspectos da interface do usuário (como blocos de posicionamento, ações de vinculação etc.). Estou procurando exemplos para esclarecer, mas não encontro projetos um pouco articulados para LogicLab com componentes SFC. Um exemplo útil seria algo como mover um carro com duas posições (FcA e FcB) e uma tecla de início. Com uma sequência como:
- Comece.
- Confirme o botão de início.
- Se (NÃO FcA) e (NÃO FcB): Avance até que FcA seja ativado -> Botão Iniciar Jump Wait.
Se FcB: Avance até que FcA seja ativado -> Botão Iniciar de Jump Waiting
Se FcA: Reverter até a ativação do FcB -> Botão Iniciar de Salto em EsperaPS: Eu sei que o segundo caso descrito deve ser inserido no caso 1 para otimização. Eu divido para ter por exemplo mais uma transação.
Setembro 14, 2013 em 6: 24 am #37773Sergio BertanaAdministrador do fórumNão sou um programador SFC especialista, quando tenho programas sequenciais para criar prefiro usar a linguagem ST, a instrução CASE OF permite gerenciá-los de uma forma muito ordenada. Mas tento responder ao seu pedido fazendo um programa SFC simples que atenda ao propósito (Programa de impressão, Fonte Download).
- Na etapa de inicialização, eu zerei as duas saídas de comando de direção.
- Na próxima transação aguardo a ativação do botão iniciar.
- Antes de abrir uma transição, devo inserir à força uma etapa, a etapa Dummy e apenas um preenchimento.
- Eu abro uma transição divergente, realizando duas transações de controle sobre o estado dos interruptores de limite. Se nenhuma chave de limite estiver ativa, o ramo mais à esquerda prevalece, portanto, o eixo de avanço está ativo (conforme sua solicitação).
- Eu executo as duas etapas para frente e para trás nas quais a saída de comando relativa é ativada.
- Quando a chave fim de curso é ativada, ele salta para o passo Init que reinicia as saídas de comando.Setembro 16, 2013 em 8: 42 am #37775StephenparticipanteOk, eu diria que está bem claro.
Muito obrigado !!Setembro 17, 2013 em 1: 11 pm #37778Sergio BertanaAdministrador do fórumCom um momento de tempo livre, continuei expandindo o carrinho e / ou o projeto de manipulação de eixo, adicionando o movimento automático, como visto a partir do captura de tela do programa SFC.
No modo manual, espera-se que o comando de partida se mova para frente ou para trás, o movimento continua até que o interruptor de limite relativo seja alcançado.
No modo automático, o movimento para a frente é executado no comando de partida, o tempo de pausa é atingido, o movimento de trás é executado. Quando o interruptor de limite é atingido, uma pausa é executada, então o ciclo é retomado com o movimento para a frente. Para parar o ciclo automático, é necessário mudar para o modo manual.
Também preparei uma entrada de simulação% IX0.2, com a entrada ativa os fins de curso são simulados após um tempo desde o início do movimento, desta forma é possível testar o funcionamento de uma forma muito mais fácil, não tendo que gerir o interruptor de limite.
As várias ações e transições são gerenciadas com programas em linguagem Ladder LD e texto estruturado ST, isso para demonstrar como um único programa SFC pode conter partes escritas nas outras 4 linguagens do padrão IEC61131, estou anexando programa de imprensa e arquivos de origem.
Dezembro 2, 2013 em 9: 34 am #37913StephenparticipanteCom relação a este exemplo, eu tenho algumas perguntas.
Um diz respeito ao LogicLab:
Acessando o menu de depuração -> modo de Sinulação aparece o erro “definição do simulador (TGSX) não encontrada”. Há algum arquivo faltando no LogicLab?A outra é sobre o projeto de amostra.
Se você quiser adicionar dois alarmes, um que intervém se o vagão demorar mais de X para atingir a chave fim de curso e outro que intervém quando um contato fecha (que pode ser o botão de emergência ou um contato de proteção térmica) , qual seria a forma mais correta de gerenciá-los?Dezembro 2, 2013 em 9: 54 am #37914Sergio BertanaAdministrador do fórumO simulador dentro do LogicLab não está implementado na versão atual, ele estará disponível a partir da próxima versão a ser lançada. Atualmente fornecemos um simulador externo, você precisa selecionar o destino do simulador para usá-lo (Tema).
Converti seu programa para uso com o simulador e adicionei o gerenciamento do alarme de avanço do eixo (Download do programa fonte). Aqui é imagem de tela do seu programa de simulação.
-
autorPublique
- Você deve estar logado para responder a este tópico.