como reparar parei de POSTAR no DEVBRASIL. Pois vejo apenas alunetes querendo algumas LUZ como MARIPOSAS. Ninguém nasce sabendo, aqueles que sabem alguma coisa são malhadores em pesquisas e tentativas e erros.
Para uma pequena dose, abaixo uma rotina homologada que chega e valida o CRC no protocolo RS485.
#Region " Cálculo do CRC e Tratamento de separação de Bytes " Friend Function CRC(ByVal buf() As Byte, ByVal lbuf As Integer) As Integer '------------------------------------------------- Dim CRC1, k As Integer CRC1 = &HFFFF ' init CRC For i = 0 To lbuf - 1 Step 1 ' for each byte CRC1 = CRC1 Xor buf(i) For j = 0 To 7 Step 1 ' for each bit k = CRC1 And 1 ' memo bit 0 state CRC1 = ((CRC1 And &HFFFE) / 2) And &H7FFF If k > 0 Then CRC1 = CRC1 Xor &HA001 Next j Next i CRC = CRC1 Return CRC End Function
Tenho várias classes para usar em diversas situações no que tange a comunicação serial RS485 na industria.
João, as vezes penso em por artigos de como acessar serial em um CLP via RS485, mas ao mesmo tempo penso qual seria a vantagem nisso de apenas deixar um legado a pessoas que usam os nossos conhecimentos em proveitos pessoais. Esses grupos que vemos por ai é nada mais que salinhas de aulas de pessoas que nem pesquisam ou testam.
Somos almas, e fomos forjados num mesmo instante. Não posso te chamar de senhor e nem tio, mas posso te chamar de amigo. Apenas pedi que cuide do seu browser aberto para que outros ou um lapso insano venha ocorrer mais uma vez. Quanto a distância, e quem disse que existe isso no universo só porque o "homem" criou essa abstração?
João, por favor ... cuidado ao deixar seu devbrasil aberto. Isso pode causar sérios problemas na credibilidade de vossa pessoa. Eu ainda creio em sua seriedade.
Um forte abraço .... em breve iremos conversar bem sobre comunicação serial protocolo MODBUS RS485.
São máquinas injetoras com vários moldes para fabricação de diversos utensílios. Exemplo: tampinhas de refrigerantes etc. E empresa optou do zero porque eles são do Rama Automação industrial. Estou usando uma placa microprocessadora que transmite via protocolo RS485 MODBUS para um pc onde é inserido o número de contagem pela úlTIMA pulsada para uma base de dados em MYSQL. Optamos usar o MYSQL devido sua reflebilidade de acessar remotamente VIA URL. O PIC foi programado em C.
Fiz o sistema em VB.NET que lê OS SLAVES ( máquinas -PIC) e depois remete ao banco de dados MYSQL que está na locaweb.
Quanto a INTEGRIDADE dos DADOS, já que recebo EM BYTES, foi necessário criar O CHEKSUM onde foi a maior doidera, pois quase não existe LITERATURA EM C# ou VB.NET. Resolvi quando encontrei um algoritmo que explica bem e só assim foi possível terminar.
A única interface ficará na web, os getores terão uma senha e após autenticação é remetido a um "PÁTIO INDUSTRIAL" onde terão uma visão "gráfica" de suas máquinas. Toda inclusão, alteração, exclusão de qualquer rotina ou função está sendo usado em STORE PROCEDURE.
Sabe, abrir a porta serial, lê o frame de retorno do modbus foi tudo bem, mas o grande horror foi como calcular cheksum. Não encontrei nenhuma literatura no dotnet. Respondendo a você caro amigo, estou usando o RS485 porque a rede de comunicação é sincrona, onde eu solicito ao PIC e e espero uma resposta "FRAME DE BYTES". Checo seu cheksum e depois gravo numa base de dados.
-Imagine um pátio industrial onde várias máquinas injetoras efetuam contagens via PIC. O meu sistema lê os slave via serial.
O projeto tem como a primeira etapa, realizar contagem de máquinas injetoras.
E armazenar nuam base de dados MYSQL devido a facilidade de conectar via URL e pela incrível capacidade de armazenamento. Esta em fase de teste e em breve iremos implantar em diversas industria. Esta correndo aparte um site onde os proprietários desse sistema poderão analisar a produção.
Comentários de João Castro
Caixa de Recados (13 comentários)
Você precisa ser um membro de DevBrasil para adicionar comentários!
Entrar em DevBrasil
Que boa notícia João! Que bom que deu tudo certo!
Mas, se precisar novamente, estamos por aqui à disposição, blz?
#tamojunto
caro João,
A empresa em que trabalho ela me obriga a desenvolver em vb.net. Sobri pra caramba no começo, com isso todas as classes estão nessa modalidade.
Justamente,
como reparar parei de POSTAR no DEVBRASIL. Pois vejo apenas alunetes querendo algumas LUZ como MARIPOSAS. Ninguém nasce sabendo, aqueles que sabem alguma coisa são malhadores em pesquisas e tentativas e erros.
Para uma pequena dose, abaixo uma rotina homologada que chega e valida o CRC no protocolo RS485.
#Region " Cálculo do CRC e Tratamento de separação de Bytes "
Friend Function CRC(ByVal buf() As Byte, ByVal lbuf As Integer) As Integer
'-------------------------------------------------
Dim CRC1, k As Integer
CRC1 = &HFFFF ' init CRC
For i = 0 To lbuf - 1 Step 1 ' for each byte
CRC1 = CRC1 Xor buf(i)
For j = 0 To 7 Step 1 ' for each bit
k = CRC1 And 1 ' memo bit 0 state
CRC1 = ((CRC1 And &HFFFE) / 2) And &H7FFF
If k > 0 Then CRC1 = CRC1 Xor &HA001
Next j
Next i
CRC = CRC1
Return CRC
End Function
Tenho várias classes para usar em diversas situações no que tange a comunicação serial RS485 na industria.
João, as vezes penso em por artigos de como acessar serial em um CLP via RS485, mas ao mesmo tempo penso qual seria a vantagem nisso de apenas deixar um legado a pessoas que usam os nossos conhecimentos em proveitos pessoais. Esses grupos que vemos por ai é nada mais que salinhas de aulas de pessoas que nem pesquisam ou testam.
João, não sei se da para criar em tempo de execução não. Na verdade nem sei qual necessidade disso.
Em tempo de execução eu não sei João Castro. Não sei qual a necessidade disso, quando se pensa na segurança e controle do sistema.
Mas se for uma necessidade... talvez tenha como realizar assim como realizamos manualmente. Só que só sei da forma que coloquei, usando o NuGet.
não to conseguindo acessar seu post e por isso não consigo ver sua mensagem completa.
Somos almas, e fomos forjados num mesmo instante. Não posso te chamar de senhor e nem tio, mas posso te chamar de amigo. Apenas pedi que cuide do seu browser aberto para que outros ou um lapso insano venha ocorrer mais uma vez. Quanto a distância, e quem disse que existe isso no universo só porque o "homem" criou essa abstração?
Abraços fraternos ....
João, por favor ... cuidado ao deixar seu devbrasil aberto. Isso pode causar sérios problemas na credibilidade de vossa pessoa. Eu ainda creio em sua seriedade.
Um forte abraço .... em breve iremos conversar bem sobre comunicação serial protocolo MODBUS RS485.
Olá João Castro,
São máquinas injetoras com vários moldes para fabricação de diversos utensílios. Exemplo: tampinhas de refrigerantes etc. E empresa optou do zero porque eles são do Rama Automação industrial. Estou usando uma placa microprocessadora que transmite via protocolo RS485 MODBUS para um pc onde é inserido o número de contagem pela úlTIMA pulsada para uma base de dados em MYSQL. Optamos usar o MYSQL devido sua reflebilidade de acessar remotamente VIA URL. O PIC foi programado em C.
Fiz o sistema em VB.NET que lê OS SLAVES ( máquinas -PIC) e depois remete ao banco de dados MYSQL que está na locaweb.
Quanto a INTEGRIDADE dos DADOS, já que recebo EM BYTES, foi necessário criar O CHEKSUM onde foi a maior doidera, pois quase não existe LITERATURA EM C# ou VB.NET. Resolvi quando encontrei um algoritmo que explica bem e só assim foi possível terminar.
A única interface ficará na web, os getores terão uma senha e após autenticação é remetido a um "PÁTIO INDUSTRIAL" onde terão uma visão "gráfica" de suas máquinas. Toda inclusão, alteração, exclusão de qualquer rotina ou função está sendo usado em STORE PROCEDURE.
Sabe, abrir a porta serial, lê o frame de retorno do modbus foi tudo bem, mas o grande horror foi como calcular cheksum. Não encontrei nenhuma literatura no dotnet. Respondendo a você caro amigo, estou usando o RS485 porque a rede de comunicação é sincrona, onde eu solicito ao PIC e e espero uma resposta "FRAME DE BYTES". Checo seu cheksum e depois gravo numa base de dados.
-Imagine um pátio industrial onde várias máquinas injetoras efetuam contagens via PIC. O meu sistema lê os slave via serial.
O projeto tem como a primeira etapa, realizar contagem de máquinas injetoras.
E armazenar nuam base de dados MYSQL devido a facilidade de conectar via URL e pela incrível capacidade de armazenamento. Esta em fase de teste e em breve iremos implantar em diversas industria. Esta correndo aparte um site onde os proprietários desse sistema poderão analisar a produção.
João, estou desenvolvendo para automação industrial. Protocolo RS485 MODBUS.
Bem-vindo a
DevBrasil
Registre-se
ou acesse
Or sign in with: