Open TatianaResend opened 2 years ago
Explicação de cada bloco (Leitura dos códigos QR e DataMatrix)
IniciarDados: -Este bloco reset todos os dados dentro do array de 1 a 10. Defenindo:
Registo de dados: -Contador do nº atual de dados; -Definição da variável i correspondente ao número atual de dados; -Guardar o número de dados de acordo com número atual de dados; -Definição da variável temp como a leitura de data e hora local; -Transição do código registado para o código lido; -Desligar DL300_start_com e o DL300_Ready_Ok;
DL300_Interface: -Inicialização + tempo de ON/OFF;
Arquivo de dados - onde está os dados arquivados
DadosLidos - byte 27.0 que muda (31-peca1;32-peca2;33-peca3)
DataTypes: Foram criados dois tipos de dados: -Dados (com NDados, Data_Hour, e Code) -DataMatrixInput (array de 1 a 25 bytes)
Main: -Network 3: Interface com DL300 -Network 4: Inicialização dos dados_Reset -Network 5: Set da variavél Read_OK atráves do pulso da leitura OK -Network 6: Registo de dados Leitura Ok - true; Move os dados do DL300_NDados para o Datablock DadosLidos; Converte os dados que vêm em chars (caracteres) para strings; Passar essas strings para o registo de dados;
Variáveis: NDados - nº do próprio registo; NDadosAtual - nº total de registos feito
I/O Datalogic: i256.4 - Setup Good (DL300_Read Ok) i258.0 - DL300_NDados do tipo DataMatrixInput q256.7 - Device trigger (DL300_Out_Trigger)
I auxiliares (HMI posteriormente): -I0.1 - (DL300_Iniciar) Reset do registo de dados -I0.0 - (DL300_start_com) Começar o setup do ready
A fazer: -Guardar os dados a partir de 10 substituindo o valor -DL300_start_com associar ao sensor do tapete o Quando a peça intercetar o sensor fotoelétrico o tapete para, a peça é lida (DL300_start_com acionado, sendo desligada após o registo de 1 dado) o Só volta a ligar (DL300_start_com) quando a peça for recolhida e receber uma nova peça (intercetanto o sensor fotoelétrico). -Criar uma HMI com botões DL300_start_com e DL300_Iniciar;
NDados vai no máximo até 9 (em vez de 10), pois o nosso depósito tem no máximo 9 lugares, ou seja, NDados [1,9]. Assim faz reset ao NDados quando o depósito é novo. No início verificar que o NDadosAtual não é superior a 9. Se for levar as principais variáveis de leitura a Falso para não ler nada. Eventualmente se for necessário parar o tapete também se coloca a variável do tapete. NDadosTotal, lê continuamente NDadosAtual, lê só até 9 Quando lê o 10 código volta a contagem a 1 De resto, tudo igual, NDados = NDadosAtual
Dados Data type já tem as duas novas variaveis booleanas. FlagPLC e Flag PC Coloquei a FlagPLC aqui com o Read_OK. Faz reset no final do Registo de dados. Não sei se aqui está bem, é uma questão de se testar
Falta a implementação da FlagPC no código
Ler dados - feito Problema: Sensor a ler os dados em loop;
Falta: -Conseguir registar dados direitinhos no DataBlock