Sisitemas Supervisórios em C#

Opiniões / comentarios sobre livros

Moderador: 51

Sisitemas Supervisórios em C#

Mensagempor MOR_AL » 01 Set 2013 13:25

Olá pessoal.
Não podia deixar de compartilhar isso.
Estava querendo saber fazer uma comunicação entre o PC e um uC.
Para a programação no PC, escolhi a linguagem C# porque já tem muitos tutoriais e o aplicativo Visual C# Express é free e dá para fazer muita coisa com ele.
Comprei duas vídeo aulas sobre C#, C# Básico e C# Avançado. Tem um total de aprox. 70 horas de vídeo aulas. Ensina o normal direitinho, mas é voltado para o mercado como lojas, bancos etc., não para a eletrônica.
A partir daí, comecei a pesquisar sobre comunicação via porta serial em C#. Baixei muita coisa, mas cada um optava por um caminho para acessar a porta serial, gerando além de muitas dúvidas com instruções que eu não compreendia, muitas falhas na comunicação.
Comecei a estudar cada uma das opções baixadas para acessar a porta serial. Descartei as mais difíceis por não entender o procedimento e agrupei as restantes em grau de dificuldade e de sucesso no procedimento. Após muitas horas de estudo já tinha uma noção de como proceder, mas mesmo assim, ainda ficaram muitas dúvidas. Não queria simplesmente copiar e colar.
Certo dia, despretensiosamente, pesquisei em livros sobre o C#. Dentre vários deles, um me chamou a atenção. Era em português e seu nome era “Criação de Sistemas Supervisórios em Visual C# 2010 Express”. Acessei o menu e não acreditei no conteúdo. Tinha tudo o que eu procurava e mais um pouco, além do preço ser menor que outros sobre C#.
Encomendei e comprei o livro. Ele é extremamente didático e tudo muito bem explicado. O livro começava com o básico em C# e depois vai criando um aplicativo relacionado a uma conexão serial entre PC e o uC. Nos capítulos seguintes evolui para um sistema completo que transmite o dado do PC para o uC e este envia de volta para o PC. Como se não fosse suficiente, ele cria um sistema que lê no PC um valor da conversão AD do uC, cria um gráfico e ainda salva os dados em um arquivo. É um sistema SCADA (Supervisory Control and Data Acquisition).
No final do livro o autor ainda mostra como fazer uma conexão via USB.
Os firmwares são completos e feitos tanto em CCS como em C18.
Para quem se interessa pelo assunto, esse livro é excelente.
Não possuo nenhum relacionamento com o autor e nem com a editora, mesmo porque, para chegar até o livro é necessário procurar na net. A propaganda é função apenas do conteúdo e da qualidade da didática do livro. Até eu entendi quase tudo!
Boas leituras.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Sisitemas Supervisórios em C#

Mensagempor KrafT » 01 Set 2013 16:10

Boa dica, MOR_AL.

Creio que seja esse: http://www.erica.com.br/detalhes.asp?cod=4087
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sisitemas Supervisórios em C#

Mensagempor MOR_AL » 01 Set 2013 21:33

KrafT escreveu:Boa dica, MOR_AL.

Creio que seja esse: http://www.erica.com.br/detalhes.asp?cod=4087

É esse mesmo, Kraft!
[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Sisitemas Supervisórios em C#

Mensagempor KrafT » 01 Set 2013 21:53

Eu faço uso semelhante do C# ao que você pretende Mor_Al, e lembro que a parte mais chata foi resolver a fragmentação de pacotes grandes recebidos pela serial.

O windows gera interrupções de pacotes recebidos que não estão sincronizados com o fim do (meu) pacote. Mas isso resolvido, ficou mais tranquilo trabalhar com C#, inclusive registrando os dados num banco de dados via Sql Server.

Mas para quem "aprendi" programar em Clipper Summer 87, é bem difícil se adaptar com as modernidades do C#. Dá para fazer a mesma coisa de tantas formas diferentes, que muitas vezes a busca de informações na net não é nada produtiva, pois só te dispersa mais ainda.

Acho que vou dar uma força para o autor desse livro, adquirindo-o.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sisitemas Supervisórios em C#

Mensagempor MOR_AL » 01 Set 2013 22:38

O endereço que você passou possui uma aba "Sumário" na parte inferior.
Clique lá e dê uma olhada no índice disponibilizado.
Também disponibiliza a leitura parcial de 26 páginas. Não acessei, mas se puder opte pelo início do capítulo 7 em diante.
[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Sisitemas Supervisórios em C#

Mensagempor Red Neck Guy » 01 Set 2013 22:53

Esse livro parece legal. Mas cabe uma ressalva aqui, não é que seja difícil programar utilizando C# ou Java qqs, o caso é que o pre-requisito para se conseguir trabalhar com essas linguagens sem utilizar de POG ou GO-HORSE é manjar de orientação a objetos. Uma vez dominada, tudo fica mais fácil.
Alias, não existe fragmentação da porta serial por parte do windows... Isso é coisa da classe SerialPort, já que o que é disparado é um evento de timeout do buffer recebido...
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Sisitemas Supervisórios em C#

Mensagempor Maffeis » 01 Set 2013 22:58

Kraft, como vc fez pra resolver a fragmentação?

Parei de mexer mais ou menos nessa parte, enrosquei na parte de thread tb.

Obrigado.
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: Sisitemas Supervisórios em C#

Mensagempor MOR_AL » 02 Set 2013 13:06

Fiz e está funcionando a parte que envia uma string para a porta serial real (não virtual) e, por meio de loop back, recebo a string transmitida.
Agora vou continuar com a comunicação serial com microcontrolador.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Sisitemas Supervisórios em C#

Mensagempor KrafT » 02 Set 2013 14:52

Então, usar strings e se limitar ao ASCII "imprimível", facilita muito as coisas.

No meu caso como sou teimoso, uso formato binário e para identificar se o caractere escolhido é o STX ou dado, eu usei a técnica de "transparency check" do protocolo IrDA.

Assim não importa a fragmentação, pois o pacote já carrega a informação do seu início, tamanho e por consequência, seu fim.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Sisitemas Supervisórios em C#

Mensagempor Red Neck Guy » 02 Set 2013 19:42

Olhei o sumário do livro.
É interessante.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Sisitemas Supervisórios em C#

Mensagempor Maffeis » 03 Set 2013 13:13

eu consegui receber o dado pela serial calcular o crc e colocar os valores recebidos em textbox's

porém recebia 1 2 3 pacotes depois de um tempo começava a fragmentar a msg e a comunicação se perdia

tentei fazer com que o sw detectasse o tamanho da msg tipo assim tenho que receber 10 valores se receber somente 5 espera os outros 5

porém ficou meia boca outra ideia era fazer por timeout.

Oq eu que eu fiquei na duvida na época era em como eu iria fazer um sw de comunicação que eu pudesse usar em vários programas

como criar a classe corretamente.
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: Sisitemas Supervisórios em C#

Mensagempor Rodrigo_P_A » 03 Set 2013 22:51

Depois de muitos anos... eu sempre uso o mesmo protocolo para tudo, nesse protocolo eu posso transferir o que eu quiser, do tamanho que eu quiser, sem me preocupar com fragmentação nem timeout ( *opcional )

A idéia é a seguinte: Usar caracteres coringas ( eu sei, a maioria dos protocolos usa ) mas eu faço assim por exemplo:

START -> STX -> 0x02
STOP -> ETX -> 0x03
MARK -> SOH -> 0x01

qdo for enviar, se tiver algum dos caracteres coringas no meio do frame, substituir por:
Se for STX (0x02) adicionar: 0x01 0x04
Se for ETX (0x03) adicionar: 0x01 0x05
Se for SOH (0x01 ) adicionar>: 0x01 0x06

depois do outro lado, remontar o dado, dessa forma vc pode enviar o que quiser no meio do frame.

Claro que depois de montado você adiciona CRC, contador de frames para evitar receber pacotes em sequencia errada, etc... mas a idéia é essa.

essa foi a forma mais funcional que eu encontrei, copiei a ideia do frame tcpip que faz isso, substitui caracteres especiais por marca e código e depois remonta tudo do outro lado.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: Sisitemas Supervisórios em C#

Mensagempor mastk » 03 Set 2013 23:58

Opa, bacana mesmo, vou comprar em breve.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Re: Sisitemas Supervisórios em C#

Mensagempor KrafT » 04 Set 2013 07:57

Então, quanto mais robusto o protocolo, menos dependente do hardware você fica.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC


Voltar para Livros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x