araujor Posted March 13, 2012 at 05:39 PM Report #443785 Posted March 13, 2012 at 05:39 PM Boas pessoal, Tenho um projecto em mãos para desenvolver um software de programação de balanças, a desenvolver em c# .net4.0 através de uma porta de série... Tou com dificuldades sobretudo em enviar dados para a balança pois preciso de estabelecer um protocolo de comunicações com a máquina, através de comandos ... Protocolo 255caracteres [EOT] [ENQ] [DLE] [sTX] [ETX] [LRC] com polling... O computador envia um pacote [EOT] 00 [ENQ] a máquina supostamente deveria retornar um [DLE] 0 e aí o computador envia os dados [sTX] dados... [ETX] [LRC] a balança responde com um DLE 1 (recebido) e de seguida [EOT] Não consigo enviar o pacote inicial, ([EOT] 00 [ENQ]) embora se fizer apenas byte[] tosend = new byte[1] {0x05}; em que 0x05 corresponde ao ENQ (ASCII) serialport.write(tosend, 0, 1); o simbolo de comunicação aparece no ecra da balança, de certa forma consegui por o computador a ler o buffer da balança mas esta apenas retorna caracteres AT 0 0 0 3 9.... Alguém me pode dar uma luz acerca deste assunto? Muito agradecido....
Flinger Posted March 13, 2012 at 10:43 PM Report #443839 Posted March 13, 2012 at 10:43 PM coloca aqui o modelo da balanca, e, de preferencia, um atalho para o protocolo. parece-me estranho o protocolo comecar com EOT (end of transmission) mas e possivel. Verifica que tens os parametros de coneccao correctos (baudrate, data bits, paridade, stop bits e handshake). Desculpem os erros mas tou no telemovel com teclado Ingles.
Flinger Posted March 14, 2012 at 10:39 AM Report #443874 Posted March 14, 2012 at 10:39 AM oh carago... Se tens um programa a funcionar, já tens maneira de sacar informação 😄 Só tens de pendurar uma outra porta no cabo e vês os dados que estão a ser transmitidos. Não te sei ajudar com as ligações, talvez o bubulindo te consiga dar umas dicas acerca disso, no sub-fórum de electrónica. Normalmente tenho alguém que me trata disso quando preciso 😄 De qualquer forma vou dar uma vista de olhos ao equipamento logo que possa, e digo-te algo. Ou melhor, nem precisas de andar a inventar... Existe SW que te consegue apanhar o que passa na porta... Como exemplo tens o Serial Port Monitor da Eltima. Não é gratuíto mas permite-te usar durante 14 dias em trial. Cheguei a sacar para testar, mas depois acabei por não precisar, já que no meu caso as comunicações eram 485 e optei por "sniffar" o cabo.
araujor Posted March 14, 2012 at 12:17 PM Author Report #443887 Posted March 14, 2012 at 12:17 PM Não tinha pensado nisso, mas é uma boa pratica ?... Não sei é como pendurar outra porta no cabo, tou a usar um cabo usb-serial mas entretanto fiz o download do programa e fiz algumas experiencias uma vez que permite adicionar sequencias de caracteres em vários formatos e enviar ficheiros... Apercebi-me que a balança faz uma especie de ping de x em x tempo e usa comandos ou activex (IRP_MJ_ ...), é possivel enviar informação a partir deste metodo?
Flinger Posted March 14, 2012 at 02:35 PM Report #443920 Posted March 14, 2012 at 02:35 PM Tens aqui mais material, embora não tenha o protocolo: http://www.europesagem.com/uploads/elementos/ele248-ri0hrccd1ezrcme.pdf Faz upload do protocolo para dropbox, divshare, ou qq coisa do género, e manda-me por pm o link. Não percebi o que queres dizer com activex... a balança não deve usar nada de muito sofisticado. Provavelmente tem é o que se chama uma trama de vida, enviada de X em X tempo para testar a conexão. É muito usado nos protocolos de série, para detectares se existe ou não quebra de ligação e muitas vezes é usado para transportar dados. Como a balança tem uma opção para mostrar se há ligação ou não é provável que seja mais isso.
Flinger Posted March 14, 2012 at 05:21 PM Report #443950 Posted March 14, 2012 at 05:21 PM ok, acho que tenho 2 reparos a fazer. Estavas a tentar enviar o comando de pooling, mas parece-me que só estavas a usar 3 bytes. São 4: [EOT] D1 D2 [ENQ] Em que D1 e D2 são o endereço da balança. Podes ter várias balanças penduradas na ligação usando para isso adaptadores rs232/rs422. Este endereço é configurado na própria balança. Vê o ficheiro que postei acima, a partir da página 35 (comunicações). Antes de continuares a tentar seja o que fôr acho melhor tentares perceber essas configurações e configurar a balança correctamente. Referiste que ela te devolve comandos AT, pelo que é possível que esteja configurada para comunicar directamente com um modem.
araujor Posted March 14, 2012 at 09:09 PM Author Report #443992 Posted March 14, 2012 at 09:09 PM Ta dificil ir byte a byte, conheces algum tutorial para comunicar com a balança através de comandos AT? é que esses tou a "snifá-los todos" 😄 a unica coisa que apanha são os status da ligação, creio que a solução vai ser mesmo essa...
araujor Posted March 16, 2012 at 03:50 PM Author Report #444236 Posted March 16, 2012 at 03:50 PM Boas de certa forma consegui "falar com a balança" ela já retorna NAK quando envio [sTX] dados.... [ETX][LRC] eu penso que é o calculo do LRC que sinceramente tá me a deixar maluco... Para enviar os dados uso serialport.write(encbyte, o encbytes.lenght); envio byte a btye... Alguma dica para resolver isto?
Flinger Posted March 16, 2012 at 07:49 PM Report #444289 Posted March 16, 2012 at 07:49 PM Esse LRC é um CRC, não? Se sim tens de saber qual é o algoritmo. O protocolo que postaste apenas tem a descrição desta layer de encapsulamento, não fala nada sobre a estrutura dos dados, pelo que não faço a menor ideia do que é suposto lá ir. PS: respondendo à minha própria pergunta sobre o LRC: http://www.automatas.org/modbus/crc7.html
araujor Posted March 20, 2012 at 12:22 PM Author Report #444744 Posted March 20, 2012 at 12:22 PM Boas, antes de mais agradeco a tua disponibilidade e ajuda... Neste momento já consigo programar a balança... Depois de terminar este projecto irei postar um tutorial com o funcionamento deste protocolo... Irei faze-lo com muito gosto visto que a mentalidade das pessoas tem que mudar muito neste país... primeiro porque passei muitas horas a tentar resolver isto, dias, sensivelmente 2 a 3 semanas, o distribuidor das balanças não disponibilizou a informação necessária por mau gosto "uma espécie muito rara" de ganância mas infelizmente muito comum neste país. 2/3 semanas de tempo perdido mas reconfortante quando uma pequena da estutura do protocolo ou até mesmo um algoritmo de 5 linhas poupava todo este tempo. Pessoal, partilhem!
Flinger Posted March 20, 2012 at 01:40 PM Report #444750 Posted March 20, 2012 at 01:40 PM Nao partilhou, nem a maioria partilha. trabalho com varios dispositivos que usam protocolos proprietarios, e e sempre o cabo dos trabalhos para conseguir os protocolos, principalmente quando perdem dinheiro, ou deixam de ganhar. No teu caso, existe uma empresa que vende o sw para configurar as balancas. Provavelmente o distribuidor tambem ganha qualquer coisa com isso, por isso nao lhe interessa concorrencia.
araujor Posted March 21, 2012 at 01:35 AM Author Report #444856 Posted March 21, 2012 at 01:35 AM ja era de esperar.. la fora nao se importam de disponibilizar toda a informacao, so pa teres uma pequena ideia a primeira semana foi perdida pk forneceram a pinagem do cabo serial errada... o resto foi a tentar decifrar o protocolo por suposicoes... entao quanto mais sw existir para as balancas deles melhor.. mais balancas eles vendem..
momceras Posted July 22, 2015 at 04:07 PM Report #586313 Posted July 22, 2015 at 04:07 PM Boa tarde, Sei que este tópico é muito antigo, mas alguém conseguiu alguns dados sobre o protocolo ? Cumprimentos Impossível até ser feito.
nelsonr Posted July 22, 2015 at 04:21 PM Report #586314 Posted July 22, 2015 at 04:21 PM Sei que este tópico é muito antigo, mas alguém conseguiu alguns dados sobre o protocolo ? Para que modelo de balança?
momceras Posted July 22, 2015 at 06:40 PM Report #586318 Posted July 22, 2015 at 06:40 PM Uma BM3 da Europesagem. Impossível até ser feito.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now