Mitsubishi MC

Conecte CLPs Mitsubishi MELSEC pelo protocolo MC (quadro 3E): códigos de dispositivo, numeração decimal e hexadecimal, e comprimentos de leitura.

Ver como Markdown

O driver Mitsubishi MC conversa com CLPs Mitsubishi MELSEC pelo protocolo MC, usando o quadro 3E binário sobre TCP, o quadro que as séries Q, L e iQ falam. Você endereça valores com a notação MELSEC de dispositivo que já conhece: um código de dispositivo mais um número, como D100 ou M50. Adicione um dispositivo sob o driver Mitsubishi MC no Connector; o painel mostra só os campos que este protocolo usa.

Conexão

Campo Significado Padrão
Host ou IP Endereço IP ou nome de host da interface Ethernet do CLP. vazio
Porta Porta TCP da conexão do protocolo MC, de 1 a 65535. Um campo vazio mostra 5007 em cinza e o dispositivo é chamado nela, que é também como se lê um dispositivo salvo com 0. 5007

O cabeçalho do dispositivo mostra o endpoint montado, por exemplo mcp://192.168.0.20:5007. Não há campos de intervalo de leitura neste driver: as tags dele são lidas uma vez por segundo. O lado do CLP precisa de uma conexão do protocolo MC (SLMP), TCP e binária, na porta escolhida: Preparar o CLP diz onde ela é criada.

Preparar o CLP

Uma CPU MELSEC só serve o protocolo MC numa conexão que o projeto dela cria, e recusa uma escrita enquanto está em RUN, a não ser que a porta Ethernet dela permita. As definições são feitas na ferramenta de engenharia e gravadas na CPU com os parâmetros dela (Online > Write to PLC); a CPU lê essas definições quando parte, então depois reinicie a CPU ou desligue e ligue de novo.

Definição GX Works3 (iQ-R, iQ-F) GX Works2 (Q, L) Sem ela
Uma conexão MC, TCP, na Porta do dispositivo Module Parameter > Ethernet Port > Basic Settings > External Device Configuration: arraste um SLMP Connection Module para a tabela, com Protocol TCP e a porta do dispositivo em Port No. PLC Parameter > Built-in Ethernet Port Setting > Open Setting: uma linha com Protocol TCP, Open System MC Protocol e a porta do dispositivo em Host Station Port No. A CPU recusa a conexão nessa porta, e o dispositivo fica offline.
Communication Data Code em binário Module Parameter > Ethernet Port > Basic Settings: Binary. PLC Parameter > Built-in Ethernet Port Setting: Binary Code. A CPU responde em caracteres ASCII, ou não responde, e nenhuma tag lê.
Escrita em RUN permitida iQ-R: Module Parameter > Ethernet Port > Basic Settings, Enable/Disable Online Change em Enable All (SLMP). PLC Parameter > Built-in Ethernet Port Setting, Enable online change (FTP, MC Protocol) marcado. A CPU lê normalmente e recusa toda escrita enquanto está em RUN, com o código de fim 0x0055.

Uma CPU Q ou L reserva para si as portas 5000 a 5009, então a conexão MC dela não pode ficar com a 5007, o padrão do dispositivo: dê a ela outra porta, a 5010 por exemplo, e digite essa na Porta do dispositivo. O GX Works2 pode mostrar Host Station Port No. em hexadecimal, onde 5010 é 1392. O código de dados é um só para toda a porta Ethernet: outro programa que fale com a CPU em ASCII nessa porta também precisa passar para binário.

Quando a CPU recusa a porta, responde em ASCII ou recusa uma escrita em RUN, a página do dispositivo diz qual definição é, com estes passos e a porta que o dispositivo disca, num aviso que some sozinho assim que a CPU aceita. Para uma escrita recusada em RUN ele nomeia as tags cujas escritas foram recusadas. O diário e o agente leem os mesmos passos.

Endereçamento

Uma tag Mitsubishi é endereçada por dois campos no cartão Origem da tag:

Campo Significado Valores aceitos Padrão
Endereço do dispositivo Código de dispositivo MELSEC mais número, por exemplo D100. Obrigatório. texto livre vazio
Comprimento de leitura (bytes, vazio = automático) Quantos bytes transferir por leitura. Em branco, o tamanho da leitura vem do tipo de dado. 1 ou mais, em branco em branco

O endereço não diferencia maiúsculas de minúsculas e o código mais longo que casar vence, então SD100 é o registrador especial 100, e não o relé de passo S. O número é hexadecimal nos dispositivos que a Mitsubishi numera em hexadecimal (X, Y, B, W, SB, SW, DX, DY) e decimal em todo o resto (X1F é a entrada 0x1F). Códigos de dispositivo aceitos:

Código Dispositivo Numeração
M relé interno decimal
SM relé especial decimal
L relé de retenção decimal
F anunciador decimal
V relé de borda decimal
S relé de passo decimal
X entrada hexadecimal
Y saída hexadecimal
B relé de enlace hexadecimal
SB relé de enlace especial hexadecimal
DX entrada direta hexadecimal
DY saída direta hexadecimal
D registrador de dados decimal
SD registrador especial decimal
R registrador de arquivo decimal
ZR registrador de arquivo estendido decimal
W registrador de enlace hexadecimal
SW registrador de enlace especial hexadecimal
Z registrador de índice decimal
TC / TS / TN bobina / contato / valor atual do timer decimal
SC / SS / SN bobina / contato / valor atual do timer retentivo decimal
CC / CS / CN bobina / contato / valor atual do contador decimal

A biblioteca MC por baixo também aceita os códigos TT, TM, CT, CM e A. A linha somente leitura Endereço de origem (barramento) do cartão Origem mostra o endereço montado enquanto você edita.

Tipos de dado

O seletor de Tipo de dado oferece os quatro tipos que o driver empacota:

Tipo de dado Comprimento de leitura automático Notas
Boolean 1 byte num dispositivo de bit, o único relé nomeado; num dispositivo de palavra, qualquer palavra diferente de zero
Int32 4 bytes duas palavras consecutivas de 16 bits, por exemplo D100+D101
Float 4 bytes duas palavras consecutivas guardando um IEEE de precisão simples
String 16 bytes texto até o primeiro NUL do buffer de leitura

Os dados de palavra chegam na ordem little-endian nativa do MELSEC e são decodificados automaticamente; não existe opção de ordem de bytes. Um valor de 32 bits ocupa dois dispositivos de palavra consecutivos. Para um String com mais de 16 caracteres, eleve o Comprimento de leitura para cobrir o texto guardado. O Comprimento de leitura é uma contagem de bytes e o protocolo transfere palavras inteiras de 16 bits, então um comprimento ímpar é arredondado para cima, até a palavra que carrega o último byte dele.

Os dispositivos de bit, os que o driver lê um relé por vez, são X, Y, M, L, F, V, B, S, TS, TC, SS, SC, CS, CC, SB, DX e DY. Neles uma tag booleana responde pelo endereço que você digitou e por mais nada. Todo outro código é um dispositivo de palavra, inclusive o valor atual de um timer ou de um contador (TN, SN, CN) e os registradores de enlace (W, SW), e ali a palavra inteira decide: D100 guardando 0x0100 lê como verdadeiro.

Uma leitura que o CLP recusa, como a de um endereço além do fim da sua faixa, deixa aquela tag sem valor, e o erro dela nomeia o código de fim e o que o manual diz que ele significa, por exemplo end code 0xC056 (the request goes past the last address of the device). Todas as outras tags do dispositivo continuam lendo.

Escritas

Tags cujo Acesso é Leitura e escrita ou Somente escrita podem ser escritas, no mesmo endereço de dispositivo que a leitura usa. Uma escrita booleana num dispositivo de bit liga ou desliga o único relé nomeado e não toca em nenhum vizinho dele. Todo o resto é escrito como palavras inteiras de 16 bits: duas palavras em Int32 e Float, uma palavra para uma booleana num dispositivo de palavra e, em String, o Comprimento de leitura inteiro da tag, com os bytes UTF-8 do texto na frente e zeros atrás, arredondado até a última palavra. Um texto mais curto escrito sobre um mais longo, portanto, substitui o valor inteiro e nada do antigo sobrevive. Um texto que não cabe no comprimento declarado é recusado, com o comprimento nomeado no diário, nunca cortado para caber. Uma tag nova nasce como Somente leitura.

Uma escrita que o CLP recusa volta recusada e nomeia o código de fim e o significado dele da mesma forma. Uma escrita recusada porque a CPU está em RUN (código de fim 0x0055) também aparece na página do dispositivo, com a definição que a permite (veja Preparar o CLP).

Descoberta

O protocolo MC não tem descoberta por difusão neste driver, então o Connector não mostra botão Descobrir. Adicione o dispositivo e os endereços dele à mão.

Bom saber

  • A leitura cíclica é fixa em um segundo para toda tag deste driver; os campos usuais de intervalo de leitura não são mostrados.
  • O driver só fala o quadro 3E binário, nunca ASCII: uma conexão configurada em código ASCII não lê nada (veja Preparar o CLP).
  • Um CLP inalcançável não custa nada na inicialização: o dispositivo segue tentando em segundo plano e as tags dele leem qualidade ruim até a conexão acontecer.
  • A conexão TCP tem 5 segundos para abrir, e cada pedido 10 segundos para ser respondido. Um CLP que aceita a conexão e não responde a tempo é desconectado e tentado de novo como um inalcançável; o erro dele nomeia a porta e os dois motivos comuns: uma CPU Q ou L com a porta em código ASCII, que não responde nada a um pedido binário, ou um equipamento que não fala o protocolo MC nessa porta.