INÍCIO > Fórum > controladores SlimLine e Netsyst (LogicLab) > Informações sobre o gerenciamento CAN Bus
- Este tópico tem 9 respostas, 3 participantes e foi atualizado pela última vez 4 anos, 10 meses atrás da Sergio Bertana.
-
autorPublique
-
Setembro 6, 2013 em 9: 50 am #35409Rubenparticipante
Olá, preciso de informações mais detalhadas sobre o barramento CAN da Slimline. Eu li o manual de programação, mas não consigo entender completamente.
SYSCANMESSAGE.MsgID: O que significa FF: Bit 31?
SysCANTSetMode: Filter and Mask referem-se à ID da mensagem? Lógica entre eles? São esses filtros Rx e Tx?
SysCANRxMsg: No exemplo, a máscara é 16 # 3FFFFFFF. Para 29 bits, não deveria ser 16 # 1FFFFFFF? O ID no exemplo é 16 # 00000000. Isso só permite o Rxing de pacotes com SYSCANMESSAGE.MsgID 16 # 00000000 nem todos os pacotes. É verdade ?
Você tem uma documentação mais detalhada?
Qual é o tempo de execução do SysCANTxMsg () e SysCANRxMsg ()?
O controlador de barramento CAN e o da Freescale MX257?Setembro 10, 2013 em 9: 06 am #37760Sergio BertanaAdministrador do fórumTento esclarecer como o barramento CAN funciona no SlimLine, vamos começar dizendo que o controlador CAN 1 no controlador ARM é usado como um controlador CAN (Allego folha de dados abstrata). O bit 31 (FF) de SYSCANMESSAGE.MsgID indica se a mensagem possui um identificador para o bit 11 ou para o bit 29.
Para utilizar o CAN é necessário inicializá-lo definindo a velocidade e os filtros, normalmente é configurado para receber todas as mensagens SysCANSetMode(CAN_500KBIT, 16#00000000, 16#00000000);
CAN recepção de mensagens
As mensagens são recebidas em interrupção e armazenadas no buffer de recebimento (mensagens 32 até bytes 8 de dados cada). O programa do usuário com a função SysCANRxMsg(Mask, ID, ADR(Msg)); ele extrai a mensagem desejada do buffer e a armazena na variável Msg. É necessário executar a função até que o buffer de recepção esteja completamente vazio, gerenciando todas as mensagens recebidas. O tempo de execução da função é de poucos uS, mas para não perder mensagens ela deve ser executada ciclicamente em um tempo menor que o tempo de preenchimento do buffer (32 mensagens).Transmissão de mensagem CAN
As mensagens são carregadas no buffer de transmissão (mensagens 32 até 8 bytes de dados cada) com a função SysCANTxMsg(ADR(Msg)); Os mensagens são então transmitidas interrompidas pelo sistema.Junho 15, 2019 em 6: 12 am #48173RuboxparticipanteTenho dúvidas quanto ao uso da comunicação CAN, tenho uma CPU RS485 estendida (então não gerencia CAN, certo?) E um módulo de expansão PCB126C130 que possui características fieldbus CAN / RS485.
Posso usar o módulo de expansão para ler valores usando CAN?
Como tudo é gerenciado? Nas funções de leitura / gravação CAN não vejo um tipo de endereço de módulo no qual fazer leituras e escritas: é algo automaticamente gerenciado pela CPU?
Obrigado pela ajuda que você vai querer me dar.
Junho 15, 2019 em 6: 21 am #48178Sergio BertanaAdministrador do fórumO módulo CPU com porta RS485 não consegue gerenciar o CAN, o espaço no módulo da CPU é reduzido então dividimos o espaço entre RS485 e CAN, devemos escolher a versão desejada.
No módulo de expansão PCB126C130 há uma porta RS232 que pode ser usada para acesso ao programa é exatamente a mesma das portas no módulo de CPU usando o FB SysSerialPort, definindo a definição no campo COM PCOMx.y onde x é o endereço do módulo e com y o número da porta no formulário no seu caso, o número 0.
Junho 15, 2019 em 6: 47 am #48191RuboxparticipanteOlá, obrigado pela resposta: Eu nunca encontrei como endereçar a porta serial dos módulos. Então eu posso usar o conector P1 no módulo de expansão.
Para usar o conector P12 desse módulo para comunicações CAN, como posso fazer, sempre que for viável?
Junho 15, 2019 em 6: 50 am #48194Sergio BertanaAdministrador do fórumSim, a porta serial RS232 pode ser usada, mas o módulo que você possui (Modelo PCB126C130) tendo 1 como o primeiro número após o nível C, é um módulo com apenas RS232, o número 3 indica os canais de entrada analógica 10.
De fato, no seu módulo, o conector P12 não está montado.
Junho 15, 2019 em 8: 02 am #48198RuboxparticipanteEmh ... (há a cara que se enterra?): Estas são as perguntas que se fazem quando não se tem o hardware em mãos, mas apenas o que o cliente diz que leu sobre os recursos.
Fiquei na dúvida se devo acessar o sistema que sai com CAN e RS232… e tirei todas as dúvidas 🙂
Antes de fazer mais perguntas como idiota, vou ler a documentação duas vezes, prometo!
Obrigado e bom trabalho
Junho 15, 2019 em 8: 04 am #48202Sergio BertanaAdministrador do fórumAs perguntas do cliente são sempre úteis ... uma pergunta pode nos dar respostas úteis para entender melhor como o sistema funciona.
Junho 17, 2019 em 6: 06 am #48208RuboxparticipanteEntão eu me permito outra pergunta, supondo que o CAN eu nunca usei. Eu li algo na net para entender algo mais.
Se eu tivesse um módulo de expansão com porta CAN e conectasse um sistema que se comunica em CAN com ele, é correto que no FB não haja "endereçamento" da porta CAN? Deve ser algum tipo de "TCP" que envia o pacote de dados pelas portas CAN e aguarda a resposta, certo?
No entanto, eu ainda deveria ter a CPU principal que gerencia o protocolo CAN, caso contrário eu não conseguiria ler nada de qualquer maneira?
Junho 17, 2019 em 6: 14 am #48225Sergio BertanaAdministrador do fórumNo momento, a única forma de gerenciar o barramento CAN é ter a versão CAN do módulo da CPU, (Conselho MPS054B200). Se você olhar para o Manual de programação IEC61131-3, você encontrará instruções sobre como usar os recursos SysCANTxMsg e SysCANRxMsg.
Uma mensagem CAN é composta por um identificador único de 11 ou 29 bits e um quadro de dados que pode atingir no máximo 8 bytes. Todos os dispositivos da rede são mestre e escravo, cada mensagem transmitida é recebida por todos os sistemas da rede que a filtram com o ID desejado.
-
autorPublique
- Você deve estar logado para responder a este tópico.