ModbusSlaveSimulação
Aplicativo autônomo do Windows com suporte aos protocolos Modbus RTU, TCP, UDP e ASCIIoverRTU para simulação.
Também estão incluídas suas versões Mono para Linux e Mac OS X, estas são versões VB Net, portanto:
- Para Linux você terá que instalar pacotes
mono-complete
e mono-vbnc
- O Mac pode ser diferente dependendo da versão do OS X, talvez instale pacotes
mono
e mono-basic
Se um firewall estiver ativado, ele poderá solicitar que você permita que este aplicativo se comunique na rede:
- Normalmente deve ser permitido comunicar-se na rede privada, caso contrário poderá não funcionar corretamente
- Não permita o acesso público a menos que você saiba o que está fazendo
- Assim que o teste for concluído, lembre-se de remover este aplicativo da lista de aplicativos permitidos do firewall
O aplicativo foi projetado para permitir a execução de várias instâncias do aplicativo ao mesmo tempo, por exemplo:
- Use o mesmo protocolo para cada instância, mas com números de porta diferentes, semelhante a:
- IP 127.0.0.1 Porta TCP 501 e IP 127.0.0.1 Porta TCP 502
- Use uma combinação de protocolos diferentes com a ajuda de outras ferramentas (como com0com para protocolo RTU no Windows)
O aplicativo deve atender solicitações de qualquer ID de escravo Modbus válido.
Tudo isso é baseado em bibliotecas nModbus .NET 3.5 modificadas, Copyright (c) 2006 Scott Alexander:
- Eles estão incluídos como um recurso para a versão Windows, mas são separados para a versão Mono
Destinado a ser usado como uma ferramenta de teste rápido:
- Pode ser testado com seu homólogo ModbusMaster (confira o vídeo mais abaixo)
- Ou talvez use o software AdvancedHMI, pois é altamente funcional e gratuito.
Captura de tela
Funcionalidade
- Todos os valores podem ser definidos antes da conexão ser estabelecida - Bobinas, Entradas Discretas, Registros de Entrada, Registros de Retenção.
- A visualização da grade de dados está configurada para mostrar inicialmente 20 linhas de endereços, mas pode ser alterada no menu suspenso
Row Count
para mostrar mais ou todas as linhas, se necessário. - Na visualização de grade de dados, selecionada no menu suspenso
I/O Address Range
, clique duas vezes no valor para alterá-lo:- Os valores booleanos irão variar entre 0 e 1
- Os valores Uint16 requerem um valor inteiro sem sinal entre 0 e 65535
- Entradas Discretas e Registros de Entrada fornecem acesso
read-only
à aplicação Master:- O dispositivo MODBUS designado como
Master
SÓ pode enviar solicitações de leitura destes valores - Esses valores deverão ser manipulados pelo usuário diretamente no simulador, caso contrário não serão alterados
- Bobinas e registros de retenção fornecem acesso
read/write
ao aplicativo Master:- O dispositivo MODBUS designado como
Master
pode enviar solicitações para leitura desses valores, bem como enviar solicitações para que esses valores sejam modificados - Esses valores também podem ser manipulados pelo usuário diretamente no simulador se necessário
- Para protocolos
RTU
e ASCIIoverRTU
, em um único PC, este simulador pode contar com a ajuda de:- Programa com0com para Windows para fornecer pares de portas seriais virtuais
- Programa tty0tty para Linux para fornecer pares de portas seriais virtuais
- TextBox adicional permite entrada manual da porta serial:
- Destinado principalmente ao Linux para que aqueles pares de portas virtuais
tty0tty
, como /dev/tnt0
<=> /dev/tnt1
, possam ser acessados - Esta caixa foi removida na versão Mac Mono
- A biblioteca também suporta Masked Bit Write, código de função 22 (0x16H ou FC22).
Uso
-> Para Windows
- Use arquivos executáveis do Windows da pasta
exe
ou siga as instruções abaixo para construí-lo você mesmo:- Baixe e instale a edição comunitária do Visual Studio (de preferência 2019).
- Baixe e extraia o arquivo zip deste projeto.
- Abra isto como um projeto existente no Visual Studio e, no menu, faça:
- Construir/Construir Solução (ou pressione Ctrl-Shift-B).
- Depurar/Iniciar depuração (ou pressione F5) para executar o aplicativo.
- Localize o arquivo EXE criado na pasta
/bin/Debug
e copie-o para a pasta ou área de trabalho de sua preferência
- Para testar protocolos RTU, use com0com para criar portas seriais virtuais
-> Para Mono
- Certifique-se de que o Mono esteja instalado no seu computador:
- Pacotes
mono-complete
e mono-vbnc
para Linux - Para Mac você pode precisar experimentar, talvez pacotes
mono
e mono-basic
- Baixe e extraia o arquivo zip deste projeto e localize o arquivo Mono na pasta
Mono
. - Extraia 4 arquivos e potencialmente renomeie a pasta e/ou arquivo exe recém-criado para algo mais curto, se desejar (apenas para tornar a navegação no terminal mais rápida).
- Abra o terminal, navegue até a pasta e digite:
sudo mono ModbusSlaveSimulation.exe
:- No Mac, pode ser necessário mudar para a conta de superusuário
su
- Para testar protocolos RTU, no Linux você pode instalar e usar portas virtuais tty0tty, enquanto no Mac as versões posteriores do OS X parecem ter pseudoterminais - pares de dispositivos como
/dev/ptyp3
e /dev/ttyp3
.
Nota para usuários de Mac: isso foi testado em um antigo computador iMac G5 PowerPC com Mono v2.10.2. Houve algum comportamento estranho, no sentido de que o aplicativo estava perdendo o foco, interrompendo assim a comunicação TCP contínua. Há uma caixa de texto com um X vermelho na qual você pode clicar para tentar manter o foco (se você fizer outra coisa depois, clique novamente). Como não posso testá-lo de outra forma, cabe a você experimentar.
Vídeo
Modbus.TCP.Comunicação.mp4
Licença
Licenciado sob licença MIT - veja também o arquivo README.txt dentro da pasta Resources.
Marcas registradas
Toda e qualquer marca registrada, direta ou indiretamente mencionada neste projeto, pertence aos seus respectivos proprietários.
Recursos úteis
O fórum do site AdvancedHMI, que é outro projeto de código aberto.