INÍCIO > Fórum > Programação IEC 61131 (LogicLab) > Novo bloco de funções para envio de e-mail
- Este tópico tem 25 respostas, 1 participante e foi atualizado pela última vez anos 4 atrás da Sergio Bertana.
-
autorPublique
-
Novembro 14, 2019 em 4: 43 pm #51034Sergio BertanaAdministrador do fórum
Sim o FB FIFOFile_v1 tem os controles In para inserir um registro no FIFO, Out para ler o registro inserido, e Delete para excluí-lo.
a saída DataOn é ativado se houver pelo menos um registro no FIFO. Se você definir FIFOFilename o FB suporta os dados no arquivo definido; se você os definir como NULL, os dados serão colocados em um buffer de memória RMalloc.
Novembro 15, 2019 em 7: 25 am #51042RuboxparticipanteLendo a explicação de FIFOFile_v1 no manual diz: Este bloco de função gerencia um registro FIFO em um arquivo (Pode ser executado em um único loop de programa como uma função).
O que significa a parte em negrito? O que posso usar apenas um FIFO FB por programa?
Novembro 15, 2019 em 7: 33 am #51050Sergio BertanaAdministrador do fórumA nota Pode ser executado em um único loop de programa como uma função, colocamos em todos os CEs que esgotam seu trabalho em um único ciclo de execução. Ou seja, eles não têm variáveis estáticas neles. Portanto, se o regulamento IEC61131 não impusesse limites estritos à definição das funções, uma função teria sido criada em vez de um FB para esse tipo de operação.
A nota informa que você pode executá-lo como uma função toda vez que você executá-lo termina sua tarefa, então por exemplo o FIFO se você ver alguns dos meus programas onde ele é usado você verá que eu instancio o FIFO nas variáveis globais e então executo a chamada para inserir elementos ou para extrair elementos em todas as partes do programa quando necessário.
Mas em um programa eu posso ter todos os FIFOs que você deseja, todos serão instanciados com um nome diferente.
Novembro 20, 2019 em 10: 10 am #51275RuboxparticipanteSe eu não alocar o FIFOIdx em uma memória buffer, perco os dados gravados no FIFO no desligamento. Para mim não é um problema. Mas notei que o arquivo de suporte não é recriado toda vez que o sistema é iniciado, mas permanece o mesmo de antes.
Existe alguma maneira de reiniciar com um arquivo vazio? Ou melhor: se o arquivo já contém dados antigos, isso pode causar problemas? (Me ocorre que se eu não indicar nem o arquivo de suporte nem o FIFOIdx talvez comece novamente com uma situação "limpa", correto?)
Novembro 20, 2019 em 10: 13 am #51282Sergio BertanaAdministrador do fórumSim, para não perder os dados salvos no FIFO quando desativados, o FIFOIDx deve ser RETENÇÃO e os dados devem ser colocados em um arquivo.
Se o arquivo de suporte não for indicado, os dados são salvos na memória e não importa como o FIFOIDx é definido porque eles ainda estão perdidos.
O arquivo é sempre o mesmo porque contém os dados salvos nele. Se você definiu FIFOIDx RETAIN, a escrita continua a partir do ponto correto, se não for RETAIN a escrita começa no início do arquivo.
Novembro 21, 2019 em 7: 08 am #51286RuboxparticipanteEstou relutante em usar a memória de retenção para escrever valores a cada minuto: em uma postagem sobre terminais Weintek, li que, a longo prazo, isso pode danificar a memória. Este também é o caso do PLC ou ele tolera ciclos de gravação intensivos?
Novembro 21, 2019 em 7: 16 am #51311Sergio BertanaAdministrador do fórumO problema a que você se refere está relacionado ao uso das memórias EEPROM e FLASH, mas na família SlimLine ARM7 e CortexM7, a memória usada para o armazenamento de dados RETAIN é uma memória FRAM que possui ciclos de gravação infinitos.
Deve-se considerar o número de ciclos se o FIFO for colocado em um arquivo, se você usar a memória FLASH presente nos sistemas ARM7 e CortexPara suportar o arquivo M7, você deve considerar o número de ciclos de gravação que são da ordem de centenas de milhares para cada setor. Mas, considerando que um arquivo de disco ocupa muitos setores, o número de ciclos deve ser multiplicado pelo número de setores usados. Portanto, quanto maior o arquivo, maior o número de ciclos possíveis.
A fala separada é para o SDCard; se você usar chips com o gerenciador de nivelamento de desgaste, a gravação será automaticamente distribuída em todos os setores do cartão, aumentando significativamente o número de ciclos de gravação. Essa é a mesma técnica usada nos discos SSD para o PC.
Abril 10, 2020 no 5: 00 pm #54581RuboxparticipanteEstou de volta ao fórum pedindo ajuda. Tive que mudar o PC do Win 8.1 para o Win 10. Baixei e instalei a última versão do LogicLab, 3.1.0.0, Build: 13 de dezembro de 2019.
Hoje tive que alterar alguns valores no programa que está em execução há 5 meses no PLC. A recompilação fornece o seguinte aviso, aviso que não apareceu antes.
EMailSend(504) – warning G0138: ADD => Illegal conversion to pointer
Se eu colocar o comentário na linha onde invoco a variável do tipo EMailSend, o aviso desaparece. É um aviso que pode prejudicar a execução da lógica e do programa? A que isso se deve? Existe uma maneira de contornar?
Abril 10, 2020 no 5: 04 pm #54585Sergio BertanaAdministrador do fórumA nova versão do LogicLab introduziu verificações adicionais na correspondência dos tipos de dados, em geral esse tipo de aviso indica que uma soma é executada entre um ponteiro e uma variável.
Os avisos não afetam o funcionamento do programa, mas se você quiser evitar o aviso, sugiro que baixe a versão mais recente da biblioteca eLLabNetworkLib e use o novo FB EMailSend.
Abril 11, 2020 no 2: 20 pm #54586RuboxparticipanteNa verdade a primeira coisa que fiz foi verificar se havia novas bibliotecas e com a nova não havia esse aviso. Percebi que na nova versão da biblioteca o campo "Dados" passou a ser "Corpo": imagino que fique sempre limitado a 256 caracteres como corpo do e-mail como na versão anterior?
Quando comecei a usar seus produtos achei o PDF “Programação IEC 61131-3 (LogicLab)” muito útil: na versão que ainda é baixada do site, é mostrada a versão antiga desta biblioteca e não a nova. Baixando as novas bibliotecas utilizadas, é possível encontrar um PDF com as especificações? No momento os vi no conhecimento, mas o PDF foi e é muito útil nessas ocasiões de ausência da internet.
Abril 11, 2020 no 2: 25 pm #54588Sergio BertanaAdministrador do fórumO FB foi totalmente reescrito e agora não tem mais o limite de caracteres, se você ver o exemplo ST_SendFileByEMail um corpo de 2048 bytes é enviado, mas também pode ser maior.
O manual em PDF nos forçou a criar uma nova versão a cada alteração, também não foi possível gerenciar a tradução automática. Com o manual on-line, todas as modificações estão disponíveis imediatamente e podemos publicá-las automaticamente em vários idiomas, graças a um tradutor automático inserido em nosso site de suporte.
-
autorPublique
- Você deve estar logado para responder a este tópico.