1. Introdução
Em nossa universidade, o complexo educacional e de laboratório "Ferrovia Virtual" foi criado, e não nos primeiros dez anos. O complexo inclui não apenas simuladores de material circulante, mas também simuladores de locais de trabalho para despachantes de trem, atendentes de estações, despachantes de energia, simuladores de equipamentos para diagnosticar a estrutura superior da pista. Falando especificamente sobre os simuladores de material circulante, observo que as especificidades de seu desenvolvimento são um pouco diferentes do conceito de simulador para o motorista. Uma universidade ferroviária não treina maquinistas; nossos graduados são engenheiros ferroviários. Portanto, a tarefa do simulador de uma locomotiva ou trem elétrico não é apenas familiarizar o aluno com o dispositivo da cabine, controles, técnicas e regras para controlar o material circulante. O simulador de material circulante também é um simulador, que em tempo real reproduz a operação dos sistemas de material circulante. Ao projetá-los, a ênfase principal é colocada exatamente em quais processos ocorrem no equipamento da máquina em diferentes modos de operação, como o impacto nos controles se reflete nesses processos.
Mais recentemente, nossa equipe concluiu o desenvolvimento do simulador de trem ES1 "Swallow". Será discutido mais adiante
1. A parte do software e a estrutura geral do complexo de treinamento
O que significa criar um complexo de treinamento ferroviário? Isso significa desenvolver um sistema de hardware e software que inclua
- Simulação do local de trabalho do motorista - um painel de controle com todos os órgãos e meios de exibição de informações;
- Um complexo de computadores que em tempo real simula a dinâmica do trem, a operação de seus sistemas: circuitos de potência, tração, tração, equipamento de frenagem;
- Um dispositivo para interface de controles, meio de exibição de informações no controle remoto e, se necessário, equipamento de trem real incluído no simulador com um modelo de computador.
- Sistema de visualização para uma visão da cabine no local de trabalho do motorista
- Subsistema de gerenciamento de treinamento com capacidade de apresentar e analisar visualmente dados sobre a operação de sistemas de trens
Como resultado, tudo isso resultou em um sistema cuja estrutura está representada na figura.
Diagrama funcional de um complexo de treinamento para trens elétricos ES1
O complexo de computadores do simulador consiste em dois computadores (PC1 e PC2) conectados à rede local através de um roteador doméstico (TPLink 842 nd rev3, nada de extraordinário), com a possibilidade de acesso remoto ao sistema via Wi-Fi.
Um sistema operacional baseado no GNU / Linux foi escolhido como plataforma de sistema para ambas as máquinas. Os motivos são os seguintes:
- Licença grátis;
- A capacidade de personalizar profundamente a composição do software do sistema;
- Orientação do sistema para soluções embarcadas;
- O núcleo suporta todos os periféricos necessários "prontos para uso".
Apesar de os PCs domésticos serem usados em geral, o software de aplicativo em um sistema desse tipo deve levar o usuário a um nível de percepção em que ele nem perceberá que existe algum tipo de sistema operacional. Sem teclado! Sem mouse! Abaixo a área de trabalho! Ele veio, ligou o interruptor, não esperou muito e preparou um sistema para o trabalho. Aqui você pode argumentar por um longo tempo, mas o Linux, no sentido da simplicidade da implementação dessa abordagem, excede em muito outros sistemas operacionais. Entre a variedade variada de distribuições, nossa escolha foi limitada ao Arch Linux pelos seguintes motivos:
- A possibilidade de personalização profunda no estágio de implantação do sistema;
- Liberação de rolamento, o que significa novas versões de pacotes;
- Pacotes binários, ao contrário do mesmo Gentoo, o que significa implantação e manutenção de alta velocidade do sistema.
O PK1 é o principal, executa um modelo de computador do trem, representado estruturalmente pela dinâmica do motor do TrainEngine, que simula o movimento da parte mecânica do trem e módulos que implementam modelos matemáticos de equipamentos não relacionados à mecânica. Esses módulos, juntamente com o módulo do servidor TCP e a biblioteca Modbus RTU, formam um único módulo executável do núcleo de computação.
O TrainEngine implementa o chamado modelo de trem generalizado. Qualquer trem, seja um trem elétrico de alta velocidade ou um trem de carga, é mecanicamente um sistema de corpos conectados cujo movimento é limitado pela configuração da estrutura superior da pista. Os pares de rodas de alguns corpos são momentos aplicados pelo subsistema de tração e freios. Portanto, para qualquer simulador, a funcionalidade será a mesma. Portanto, toda a mecânica do movimento do trem é realizada em bibliotecas configuráveis separadas. A diferença entre os tipos de material circulante é implementada no nível dos modelos de software do restante do equipamento.
A interface de interação do motorista com uma locomotiva moderna / trem elétrico agora está saturada de módulos de exibição. De fato, muitos dos meios de exibição de informações, implementados anteriormente pelos dispositivos apontadores, foram reduzidos a um conjunto de telas de computador nas quais as informações atuais são exibidas. Existem quatro telas no mesmo “Swallow”: duas interfaces homem-máquina multifuncionais, uma exibição de um complexo de locomotivas seguras (BLOCK) e uma exibição do sistema de vigilância por vídeo.
Interface homem-máquina de um trem elétrico real
Exibição complexa de locomotivas seguras (BLOCO)
Interior da cabine e layout da tela em um trem elétrico real
Em um trem elétrico real, cada módulo de exibição é um computador industrial separado que se comunica com o sistema de controle usando protocolos MVB / WTB específicos. Esses módulos estão executando o Windows XP Embedded (sim, imagine!).
No nosso caso, esse desperdício é inútil - quatro telas sensíveis ao toque da Elo, conectadas ao PC1 via porta de exibição e cabos USB para a interface de toque. Os módulos de exibição são implementados como processos separados, comunicando-se com o núcleo de computação via soquetes TCP. A configuração do Xorg permite que cada janela viva exclusivamente no monitor pretendido. Os botões de hardware no quadro da tela são simulados pelo software.
Foi possível reproduzir a funcionalidade básica desses dispositivos em relação aos sistemas de trens elétricos responsáveis pela tração e frenagem. Os aplicativos são gravados em C ++ usando a estrutura Qt5. Em geral, o Qt5 permeia todos os softwares, tendo em vista sua alta adaptabilidade à criação de interfaces de usuário e à disponibilidade de bibliotecas para trabalhar com os protocolos TCP / IP e Modbus RTU. Além disso, a famosa tecnologia de slot de sinal acabou sendo absolutamente indispensável na organização da interação das classes em todos os níveis.
Interface homem-máquina do simulador
Simulador de BLOCO de exibição
Devido às especificidades do nosso simulador, a exibição do sistema de videovigilância era desnecessária; em vez disso, a tela restante foi usada para nossas necessidades de controlar o lançamento do treinamento, configurar e gerenciar a energia dos computadores.
Interface de inicialização do treino
2. Hardware - controles e interface distribuída
A operação mais difícil e cara é equipar o simulador com controles autênticos para o cockpit real. Aproximadamente a compra de peças originais de ferro não ocorre por dois motivos. O primeiro é o enorme custo dos componentes originais, justificado pelo uso em material circulante real e fabricado de acordo com os requisitos relevantes. A segunda - a interface com um computador é complicada pelo fato de que, em um material circulante real, são utilizados protocolos fechados para a interação de equipamentos e sistemas de controle. A única saída para nós era projetar e fabricar de forma independente elementos como um controlador de tração / frenagem, uma válvula de freio e manômetros para o sistema de freio de um trem elétrico.
Para deixar claro, isso é principalmente sobre essa alavanca
Controlador real de tração / frenagem na cabine do trem elétrico
Foi possível medir suas dimensões externas, o que se destaca acima do painel, sob os sorrisos céticos da brigada de locomotivas "Swallows" com um barbell. Projetamos os interiores conforme nos pareceu conveniente em termos de layout da unidade no futuro console e na instalação de transdutores de medição nele. O resultado é um conceito unificado para os dois "joysticks"
O conceito de um controlador unificado para o simulador
Pneumática, a válvula do freio difere do controlador de tração apenas na posição inicial da alavanca em "zero" e na presença de um revestimento decorativo de plástico. O restante dos controladores acabou sendo unificado por peças, sensores e placas eletrônicas.
Codificadores incrementais foram usados como sensores de posição, um sensor óptico de posição zero foi usado para definir o zero no programa de controle. O firmware da parte eletrônica do dispositivo interroga o codificador ecológico e o acoplador óptico e fornece a posição da manopla como uma porcentagem da força de tração / frenagem e vários sinais lógicos: posição zero, pressionando a tampa na manopla, modo de frenagem de emergência.
Sob o spoiler, há outra série de fotos explicando em termos gerais o design desses dispositivos.
Uma breve história de desenvolvimento na forma de fotosMecânica em metal nu sem pintura, recém-fabricado de fábrica
Kit Controlador de Tração Pintado
Controle a mecânica imediatamente após o revestimento em pó. Tentamos codificadores
Assunto do teste
A válvula pneumática do motorista depois de instalar uma sobreposição decorativa impressa em uma impressora 3D
Conjunto do controlador de tração depurado com cérebros
Controlador de tração montado em um painel padrão. O módulo de E / S discreta adjacente é visível.

Os manômetros se tornaram outro obstáculo, esses
Controladores de verificação para o sistema pneumático do trem elétrico
Mesmo se tivermos aparelhos regulares - esses dispositivos são pneumáticos, conectados às tubulações do sistema de freio. O que era necessário era um dispositivo que exibisse pressões provenientes de um modelo de computador. Além disso, parecendo o original. Além disso, incapaz de fazer as engrenagens, tive que inventar e criar um mecanismo sem engrenagens que permite que você gire as duas setas independentemente
Meta para invenções de astúciaPeça executiva dos manômetros eletromecânicos

Como resultado, após alguns meses de deliberação, desenvolvimento, fabricação e depuração, esse conjunto saiu

Mais fotos do manômetroUm conjunto de peças feitas em uma impressora 3D
Depurando ao escrever firmware
Não houve problemas com outros controles - o resto são apenas botões e interruptores. No entanto, seu número é suficiente para refletir sobre como inserir todos esses sinais no computador.
Decidimos seguir a trilha batida em escala industrial - o RS485 é o nosso tudo. Os chicotes curtos dos botões e lâmpadas de controle vão para placas de E / S discretas e, a partir daí, suas condições são inseridas na máquina por meio de duas conexões de par trançado.
Painel na zona J da vista superior do console do motorista
... vista inferior da instalação. Placas de E / S visíveis
O Modbus RTU foi escolhido como protocolo de troca de dados devido à sua simplicidade, abertura e prevalência em áreas relacionadas à automação industrial. As placas de entrada / saída discretas são universais e são instaladas no painel de controle remoto no local onde são necessárias. Para dispositivos como controladores e manômetros, bem como um semáforo de locomotiva, soluções separadas foram aplicadas devido às especificidades de seu trabalho.
O resultado é uma rede de 12 assinantes. O sinal é inserido no complexo do computador através do adaptador RS485 / USB. O software usou uma implementação pronta do Modbus RTU a partir da estrutura Qt5.
Miudezas do console antes da montagem final do simulador
Mais algumas fotosO primeiro lançamento de módulos de exibição em telas padrão
Depuração em pleno andamento
Compartimento elétrico
Uma das etapas da montagem final
É montado e depurado. Pronto para instalação da cabine
Em geral, resultou bastante confiável e, o mais importante, conveniente para a subsequente expansão de funções. Todos os componentes eletrônicos do sistema estão sob controle vigilante do sistema de diagnóstico do programa. As mensagens de falha são emitidas o mais legível possível, com vistas à detecção precoce de um bloco de lixo eletrônico
Tela de diagnóstico com um log da sessão atual do simulador
3. Subsistema de visualização tridimensional
Com todo o poder em termos de criar o efeito da presença, essa parte do sistema é a menos funcional. Não há "física" por dentro, toda a "física" é do lado do servidor. O cliente gráfico é movido para um computador PC2 separado. Do servidor, ele recebe as chamadas coordenadas ferroviárias - movendo-se ao longo do caminho em quilômetros, traduz-as em coordenadas tridimensionais da câmera e mostra a vista da cabine para a paisagem circundante. No PC2, o NVidia GTX 1060 usual é instalado.O sistema de vídeo é escrito em Unity Personal.
Sistema de vídeo no processo de depuração
Aqui ainda temos muito trabalho a fazer em termos de encontrar a melhor arquitetura, e estamos constantemente trabalhando nela. Existem nuances suficientes para tornar a história sobre eles o tópico de um post separado.
Conclusão
Atualmente, o simulador está passando por operação de teste e teste no processo educacional no laboratório de transporte de alta velocidade de nossa universidade. Espero ter uma história interessante, agradeço aos leitores pela atenção. Peço desculpas pelo grande número de fotos pesadas, bem, sem isso de forma alguma.
(c) Centro para o Desenvolvimento de Competências em Inovação