ModbusMaster
Aplicativo autônomo do Windows com suporte aos protocolos Modbus RTU
, TCP
, UDP
, RTUoverTCP
, RTUoverUDP
, ASCIIoverRTU
, ASCIIoverTCP
e ASCIIoverUDP
.
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)
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 ModbusSlaveSimulation (confira o vídeo mais abaixo)
Uma alternativa fácil de usar seria o software AdvancedHMI, pois é altamente funcional e gratuito.
Captura de tela
Funcionalidade
- Leia os comentários dentro do formulário e passe o mouse sobre os rótulos para obter dicas.
- Sem endereçamento de deslocamento (onde xxxxx vai de 00000 a 65534):
- Bobinas = 0xxxxx
- Entradas Discretas = 1xxxxx
- Registros de entrada = 3xxxxx
- Registros de retenção = 4xxxxx
- Além de
Int16
, que é apenas um endereço de registro sem modificador, este aplicativo também suporta:- Modificadores
U
, F
, L
, UL
e S
(que são usados para UInt16
, Float32
, Int32
, UInt32
, String
)
- Foi adicionado suporte para valores de 64 bits - Float64, Integer64 assinado e não assinado:
- Use modificadores
FQ
, LQ
e UQ
(onde Q
significa Quad Word)
- Foi adicionado suporte experimental para valores de 128 bits - Integer128 assinado e não assinado:
- Use modificadores
LO
e UO
(onde O
significa Octa Word)
- Ele também suporta leitura/gravação de bits/caracteres:
- selecione bits/caracteres consecutivos dentro de um único elemento ou o bit/caractere individual exato de cada um dos vários elementos
- um valor único ou o número exato de valores separados por vírgula será necessário para escrever se Número
Points
> 1
- Para protocolos baseados em RTU, em um único PC, este aplicativo pode contar com a ajuda de:
- O programa com0com Windows para fornecer pares de portas seriais virtuais
- TextBox adicional permite a entrada manual da porta serial, destinada ao Linux para que pares de portas virtuais tty0tty, como
/dev/tnt0
<=> /dev/tnt1
, possam ser acessados- Esta caixa foi removida na versão Mac Mono
- A biblioteca suporta
Masked Bit Write
, código de função 22 (0x16H ou FC22) - O aplicativo também inclui o código integrado para dispositivos escravos que não suportam
FC22
:- Isso envolve um processo
read-modify-write
que pode demorar um pouco e pode sobrescrever valores que foram alterados durante sua execução
IMPORTANTE: Tenha cuidado ao tentar escrever qualquer valor no PLC.
Uso
-> Para Windows
- Use os 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 de sua preferência ou para a área de trabalho
-> 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 instalar pacotes
mono
e mono-basic
- Baixe e extraia o arquivo zip deste projeto e localize o arquivo zip 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 ModbusMaster.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 pares de portas virtuais tty0tty, enquanto no Mac as versões posteriores do OS X parecem ter pseudoterminais - pares de dispositivos como
/dev/ptyp3
<=> /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 no modo de leitura automática. 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, resta a você experimentar.
Vídeo
Modbus.TCP.Comunicação.mp4
Licença
Licenciado sob licença MIT - consulte 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.