Comunicação Para comunicação com computador, em ambiente Windows, é utilizada a DLL Rmt6000.dll. Rotinas da dll A DLL Rmt6000.dll tem quatro funções que permitem estabelecer a comunicação entre o SP6000 e o micro computador. Abaixo seguem as descrições das funções da Rmt6000.dll: Abre(Serial, Velocidade, Paridade) Parâmetros: A função Abre recebe como parâmetro uma string contendo o nome da porta serial do micro na qual o SP6000 está conectado, um inteiro, de 32 bits, com o valor da velocidade e um inteiro de 32 bits com a paridade (0 sem, impar, 2 par). Exemplos: Abre ( COM:, 9600, 0); Abre ( COM5:, 9200, 2); Retorno: A função Abre retorna um número inteiro. Abaixo segue a descrição do significado dos valores de retorno da função: 0 Ok. A porta seria foi aberta; -32766 Falta serial. O string passado como parâmetro está vazio; -32765 Serial usada por outro aplicativo ou serial inexistente; -32764 Erro na configuração da serial; -32763 Erro na configuração da serial; -32762 Erro na configuração da serial; -3276 Erro na criação das threads. Fecha A função Fecha não recebe nenhum parâmetro, nem retorna valor algum. Ela apenas fecha a serial utilizada para comunicação. Recebe (buffer, tamanho, aparelho) A função Recebe lê um dado enviado pelo SP6000. Ela recebe como parâmetro o endereço inicial de uma seqüência de caracteres (string). O endereço (em algumas linguagens, como C, este endereço é chamado de apontador, em outras linguagens é chamado de "pesagem de parâmetro por referência") do "string" é onde a função copiará os dados recebidos do SP6000. O parâmetro tamanho é do tipo inteiro com sinal (integer) de 32 bits e deve conter o tamanho máximo, em bytes, do "string" passado no primeiro parâmetro. Aparelho é um inteiro com sinal (32 bits) que informa o número do equipamento. Página de
A função retorna um inteiro com sinal, de 32 bits, com um dos seguintes valores: 0 - nenhum dado recebido >0 - dado lido e copiado no buffer, o valor retornado indica o tamanho do sinal. <0 (mas > -32766) - dado lido e copiado no buffer. O dado era maior que o tamanho do buffer. Foi copiado no buffer o valor absoluto do número retornado. O restante dos bytes foi PERDIDO. -32766 - Tamanho do buffer muito pequeno (< 2). -32767 - Não foi possível verificar os dados. O windows não liberou o acesso porque o programa do protocolo esta gravando dados, espere alguns mili-segundos e tente novamente. Envia (Buffer, Tamanho, Aparelho) Esta função manda uma seqüência de caracteres para o SP6000. Ela recebe como parâmetro o endereço inicial da seqüência de caracteres a ser enviada (Buffer). O parâmetro tamanho é tipo inteiro com sinal, de 32 bits, e deve conter o tamanho, em bytes, dos dados que serão enviados. O parâmetro aparelho é um número de a 3 que identifica o aparelho que receberá o dado. A função retorna um inteiro com sinal, de 32 bits, com um dos seguintes valores: 0 - dado enviado -32766 - sinal muito longo (o sinal máximo pode ter 800 bytes) -32767 - não foi possível enviar os dados. Espere alguns mili-segundos e tente novamente. Página 2 de
Comandos aceitos pelo SP6000 Fluxo O numero acima dos quadros indica o comprimento do campo em bytes. Todos os dados são ascii. Tanto para comunicação em 485 ou Ethernet, os comando são os mesmos descritos abaixo: 7 7 7 7 Coluna Coluna Alimentação Configuração - A Modo Alimentação Valor Grossa Fina fina 7 3 Residual Total Modo C Continuo P Programado L Limpa linha Alimentação G Grossa F Fina D Dupla Valor, coluna grossa, coluna fina, alimentação fina, residual e total ASCII Resposta: Configuração OK a Erro z Campo com erro Partida - B Resposta: Partida OK b Modo 2 Alimentação 3 Valor 4 Coluna Grossa 5 Coluna Fina 6 Alimentação fina 7 Residual 8 Total Parada - C Resposta: Parada OK c Página 3 de
Pausa - D Resposta: Pausa OK d Encerra - E Resposta: Final aceito e Manual - F Resposta: Manual aceito f 7 Peso - G Resposta: Valor do peso g Valor Estabilidade Estabilidade: E - Estável I - Instável O Sobrecarga F Erro no A/D 8 Lê Entradas - H Resposta: Entradas h Estado das entradas Bytes do campo estado das entradas: Grossa Fina Descarga Pulmão Auxiliar Pressão Emergência Energia Grossa, fina, descarga 0 Fechada Aberta Pulmão, auxiliar, pressão 0 OK Erro Emergência 0 Desacionada Acionada Energia 0 Com energia Sem energia 5 Lê Saídas - I Resposta: Saídas i Estado das saídas Página 4 de
Bytes do campo estado das saídas: Aux Alarme Descarga Fina Grossa 0 Desacionada Acionada 5 Acionar Saídas - J Valor Bytes do campo valor: Aux Alarme Descarga Fina Grossa 0 Desaciona Aciona Resposta: Saídas acionadas j Erro z 0 (balança em ciclo de pesagem) Lê Status - 3 K Resposta: k Impressão Relógio Simulação Status Valor do campo Impressão: 0 Buffer de impressão vazio Buffer de impressão com dados Valor do campo Relógio: 0 Não em acerto de relógio Em acerto de relógio Valor do campo Simulação: 0 Normal Simulação Página 5 de
Valor do campo status 000 Não partida (repouso). 00 Em Operação 2XX Parada XX (motivo da parada). 300 Manual 4XX Parada Manual XX (motivo da parada). Valores do byte XX 0 Sobrecarga 02 Parada externa (Emergência) 03 Energia 04 Falha no AD 05 Pressão baixa 08 Descarga aberta 09 Grossa não abre 0 Fina não abre Descarga não abre 2 Alimentação aberta 3 Alimentação não fecha 5 Descarga não fecha 6 Descarga fechada 7 Pausa 8 Parada 9 Peso não estabiliza 20 Não descarrega 2 Falha na placa de E/S 22 Pulmão cheio 23 Fila cheia 24 Sem material Lê Batch - L Resposta: atch 6 2 20 5 5 20 30 40 l Nº do sinal Nº da balança Item Item 2 Item 3 Item 4 Item 5 Item 6 6 7 7 7 3 0 8 Nº do Batch Bruto Tara Liquido Total Data Hora Status Batch não encerrado z 0 Onde Status indica: 0 Pesagem Normal Pesagem manual 2 Simulação de peso 3 Simulação de peso e manual 4 Final 5 Fim de simulação Obs.: Os campos itens ( a 6) podem ser configurados para serem solicitados ao operador ou não. Os campos que forem configurados para não serem solicitados não são incluídos no sinal. Página 6 de
6 Batch Lido - M Nº do sinal Se este sinal não for enviado a proxima leitura causará o envio do mesmo sinal de batch, o dado é apagado da memória da balança quando este sinal é enviado. Resposta: m - Sinal apagado z 0 - Sinal não existe Comandos para balança em manual: Abre Grossa - N Resposta: Comando aceito n 0 Fecha Grossa - O Resposta: Comando aceito o ) Abre Fina - P Resposta: Comando aceito p Fecha Fina - Q Resposta: Comando aceito q Página 7 de
Abre Descarga - R Resposta: Comando aceito r Fecha Descarga - S Resposta: Comando aceito s Zerar balança - T Resposta: Comando aceito t 2 2 4 2 2 2 Acerto do Relógio U Dia Mês Ano Hora Minuto Segundo Resposta: Comando OK u Comando não aceito z 0 Erro no parâmetro x ( a 6) z x Configura Impressão V Impressão batch 2 2 Impressão Impressão por falhas intervalo (minuto) Impressão por intervalo (hora) 4 4 4 4 Turno Turno 2 Turno 3 Turno 4 Página 8 de
Impressão por batch e falha 0 - não executar - executar Impressão por intervalo (minuto) 00 - desligado 05 - impressão a cada 5 minutos 0 - impressão a cada 0 minutos 5 - impressão a cada 5 minutos 20 - impressão a cada 20 minutos 30 - impressão a cada 30 minutos Impressão por intervalo (hora) 00 - desligado 0 - impressão a cada hora 02 - impressão a cada 2 horas 03 - impressão a cada 3 horas 04 - impressão a cada 4 horas 06 - impressão a cada 6 horas 08 - impressão a cada 8 horas 2 - impressão a cada 2 horas Turno ( a 4) 0000 - desligado hhmm - hora e minuto da impressão Resposta: Comando OK v Comando não aceito z 0 Erro no parâmetro x ( a 8) z x 20 5 5 20 30 40 Partida com nome do produto W Item Item2 Item3 Item4 Item5 Item6 Resposta: - Partida Ok w Obs.: Os itens que forem configurados no SP6000 para não serem preenchidos não devem ser enviados. Abortar Impressão - X Resposta: Impressão abortada x Quando o SP6000 estiver com dados no buffer de impressão o comando de status será respondido com esta informação. Caso a impressora esteja desligada está situação será mantida até que a impressora volte a operar. Este comando faz o SP6000 abortar a impressão, limpando o buffer de impressão. Os dados que estava no buffer não serão impressos. Página 9 de
Le Configuração Y 7 7 7 7 7 3 Coluna Coluna Alimentação Impressão Resposta: y Batch Alimentação Valor Residual Total Grossa Fina fina Bach 2 2 4 4 4 4 Impressão Impressão por Impressão por Turno Turno2 Turno3 Turno4 Falhas intervalo (minuto) intervalo (hora) 2 2 4 2 2 2 Dia Mês Ano Hora Minuto Segundo Le Status Geral 0 6 8 5 8 Resposta: 0 Status Entradas Saídas Peso Status mesmo formato do comando K Entradas mesmo formato do comando H Saídas mesmo formato do comando I Peso mesmo formato do comando G Le Status 2 6 8 8 7 7 7 Resposta: Status Entradas Peso Batch Batch novo Fundo de Escala Decimais Divisão mínima O campo Batch Novo muda de valor (0 ou ) sempre que o campo Batch é atualizado. Status mesmo formato do comando K Entradas mesmo formato do comando H Peso mesmo formato do comando G Página 0 de
Le Relógio 2 2 2 4 2 2 2 22 Resposta: 2 Dia Mês Ano Hora Minuto Segundo Configuração de impressão mesmo formato do comando 4, (abaixo). Configuração de impressão Le Configuração 3 7 7 7 7 Resposta: 3 Batch Alimentação Valor Grossa Fina Alimentação fina 7 3 7 7 Resíduo Total Fundo de Escala Decimais Divisão mínima Le Configuração de Impressão 4 Resposta: 4 2 2 4 4 4 4 Imp. Batch Imp. Falhas Intervalo Hora Turno Turno2 Turno 3 Turno 4 Aborta acerto de relógio 5 Resposta: Comando executado 5 Parada Instantânea 6 Resposta: Comando executado 6 Cancela encerramento 7 Resposta: Comando executado 7 Página de