Ola
Estou querendo usar o ScadaBR para monitorar e comandar um PIC, sei que recomendável e implementar Modbus -RTU, porem no compilador que uso para programar o PIC, já tenho as opções de envio e recebimento usando UART que pode ser acessado pelo hiper terminal do windows, seria possível envio e recebimento usando UART padrão ASCII no ScadaBR?
Rafael
Não estou usando pic, tenho um equipamento que transmite telegramas de 1 em 1 segundo, informando mV. Cheguei até esse ponto, sem sucesso, acredito que funciona. Penso que o meu conversor serial-usb está sabotando minha comunicação.
Digamos que seu pic irá transmitir dados de um ponto de temperatura:
Crie um datasource do tipo ASCII Serial ;
Determine os parâmetros da comunicação (porta, velocidade, bit start, bit stop…)
Há 3 opções de modo de parada, você pode testar qual o melhor (por número de caracteres, por caracter x, ou por timeout).
Logo abaixo crie o data point e determine o tipo de dado, se alfa-numérico ou numérico ou outros tipos.
Caso numérico em meio, é provável determinar regex para captura.
Baseado na experiência acima, se possível, tente primeiro testar usando comunicação serial via DB-9 usando porta COM do windows ou devices /dev/ttyS do linux, antes de tentar usar conversor.
Obrigado por responder, no seu caso teria que testar o conversor usb-rs232 usando o hyper terminal, caso funcione deve funcionar no ScadaBR.
Mas minha duvida é se o ScadaBR que recebe ASCII, também enviaria strings pela porta serial em ASCII ?
Rafael
Valeu pela dica. Eu uso o Serial Port Terminal do linux (gtkterm), e lá mostra recepção de strings tudo ok usando conversor serial usb.
Resolvi testar um programinha java comunicação serial, simples assim, usando a mesma API rxtx do Scada e… mostra strings pela metade.
Isso me deixou intrigado. Pode estar acontecendo o mesmo dentro do scada. Não consegui sucesso até o momento.
Não testei isso:
a) No datasource recém criado, existe um campo chamado String de inicialização. Eu acredito que é somente para inicializar UARTs, como aquelas placas de fax/modem. Não tenho certeza se posso enviar comando do tipo ACK.
b)No datapoint recém criado:
Existe um campo chamado Comando. Acredito ser esta a função que você precisa para enviar string do tipo pergunta, ACK,
Eu criei um datapoint chamado mV e outro chamado ph. Espero obter duas grandezas de leitura, cada um enviando uma string específica para pergunta.
Estarei pesquisando mais
kraftwerk, apenas para esclarecer em ASCII (genérico ou padrão), não tem pergunta e resposta e sim envio e recebimento de strings, mas alguns equipamentos podem iniciar o envio apenas quando recebe determina string (e o caso de um multímetro rs232 que eu tenho), mas não é este o seu caso pois não conseguiria obter dados em Hyper Terminal.
Pelo que andei lendo existe um Bug no ASCII do ScadaBR 0,9, que estão tentando corrigir para a versao 1.0. Achei esta adaptação para o Mango, acredito resolver o nosso problema, mas preciso entender melhor…
Gostaria de uma opinião dos desenvolvedores sobre a assunto:
Link
http://mango.serotoninsoftware.com/forum/posts/list/753.page
Rafael
Mencionei pergunta e resposta, apenas como uma maneira ilustrativa.
Ex: Tenho uma balança, que “responde”, ou melhor, transmite a string PESO, somente após receber uma string “ENQ”, (hex 05)
Depende de cada protocolo. Não há nada errado em chamar isso de pergunta e resposta, nestes protocolos tão simples. Senão, começa a ficar chato escrever tudo o que acontece, que nem era o objetivo da pergunta que originou o post.
Obrigado pela informação sobre o workaround desenvolvido pelo oja em seu link acima:
http://mango.serotoninsoftware.com/forum/posts/list/753.page
Estarei testando pelos próximos dias