Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
11.10.2020
Размер:
3.87 Mб
Скачать

5.3Funções comuns do acoplador/controlador

5.3.1Funções MODBUS implementadas

A tabela que se segue apresenta as funções que tanto o acoplador MODBUS como o controlador MODBUS suportam:

Código

Função

Descrição

 

de função

 

 

 

 

 

 

 

0x01

Read Coil Status

Leitura de bits de entrada e de saída como Octet

Funções são

 

 

String.

idênticas

0x02

Read Input Status

Leitura de bits de entrada como Octet String.

 

 

 

 

 

0x03

Registros Read

Leitura do número de palavras de entrada.

Funções são

 

Holding

 

idênticas

0x04

Registros Read Input

Leitura do número de palavras de entrada.

 

 

 

 

 

0x05

Force Single Coil

Registrar bit de saída.

 

 

 

 

 

0x06

Registros Preset

Registra um valor em uma palavra de saída.

 

 

Single

 

 

0x0B

Fetch Comm Event

Leitura da palavra de status e contador de eventos.

 

 

Ctr

 

 

0x0F

Force Multiple Coils

Registra uma quantidade de bits de saída.

 

 

 

 

 

0x10

Regist. Preset

Registra uma quantidade de palavras de saída.

 

 

Multiple

 

 

Tabela 5.29: Funções implementadas

MODBUS / Configuração

53

01-03-16

 

 

5.3.1.1 Aplicação das funções MODBUS

A vista geral gráfica mostra com que funções MODBUS é possível aceder aos dados da figura do processo.

Terminais de entrada

750-

400

400

467

467

400

467

400

400

467

Terminais de saída

750-

550

501

550

Read Holding Registers (0x03)

Preset Single Register (0x06)

Read Input Registers (0x04)

Preset Multiple Registers (0x10)

 

Endereços MODBUS

 

Endereços MODBUS

 

0x0000

Word12

 

0x0000 / 0x0200

Word12

 

0x0001

Word2

1

0x0001 / 0x0201

Word2

 

0x0002 / 0x0202

 

 

0x0002

Word12

 

Word12

1

0x0003

Word2

 

0x0003 / 0x0203

Word2

0x0004

Word12

 

0x0004 /

 

 

3

 

 

0x0005

Word2

 

 

0x0204

 

 

0x0006

Word12

 

 

 

 

 

 

 

0x0007

Word2

 

 

 

Read Holding Registers (0x03)

Read Input Registers (0x04)

3 0x0008

 

 

Endereços MODBUS

 

 

 

0x0200

Word12

 

 

 

Word2

 

 

1

0x0201

 

 

 

 

 

0x0202

Word12

 

 

 

Read Coil Status (0x01)

 

0x0203

Word2

Read Input Status (0x02)

3

0x0204

 

 

 

 

 

Endereços

 

 

 

 

MODBUS

 

 

 

 

0x0000

 

Force Single Coil (0x05)

 

0x0001

 

Force Multiple Coils (0x0F)

 

0x0002

 

 

 

 

0x0003

 

Endereços MODBUS

2

0x0004

 

0x0000 / 0x0200*

0x0005

 

2

 

 

 

 

 

 

0x0001 / 0x0201*

 

0x0006

 

 

 

 

 

 

0x0007

 

 

 

 

0x0008

 

Read Coil Status (0x01)

 

0x0009

 

 

 

Read Input Status (0x02)

 

 

 

 

 

 

Endereços MODBUS

 

 

 

0x0200

 

 

 

 

2

 

 

 

 

0x0201

 

 

 

Valores com * são válidos a partir da versão 2.5

Figura 5.14: Vista geral das funções MODBUS, p. ex. no acoplador

 

 

g012825p

É sensato aceder aos sinais analógicos com as funções de registro e aos sinais binários com as funções Coil . Apesar de se aceder aos sinais binários através funções de registro por via da leitura e do registro, os endereços são deslocados se forem instalados outros terminais analógicos.

54

MODBUS / Configuração

 

01-03-16

 

5.3.1.2 Status Read Coil (código de função 0x01):

Esta função lê o status dos bits de entrada e de saída (coils) no slave. A difusão não é suportada. No acoplador/controlador o número dos pontos I/O está limitada em 256.

Função! Consulta:

A consulta determina o endereço de partida e o número dos bits que devem ser lidos. O primeiro ponto é endereçado com 0. Em Modicon o endereçamento começa com 1 (0x01).

Na tabela que se segue apresenta-se um exemplo para uma consulta através da qual devem ser lidos os bits 0 a 7 do slave 11:

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x01

0x01

”01”

0x30, 0x31

Starting address high

0x00

0x00

”00”

0x30, 0x30

Starting address low

0x00

0x00

”00”

0x30, 0x30

Number of points high

0x00

0x00

”00”

0x30, 0x30

Number of points low

0x08

0x08

”08”

0x30, 0x38

Error Check (LRC / CRC)

-

0x3D

”EC”

0x45, 0x43

 

 

0x66

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.30: Exemplo, status Read Coil

 

 

 

Resposta:

Os valores atuais dos bits consultados são condensados no campo de dados. Um 1 corresponde ao estado ON e um 0 ao estado OFF. O bit com o valor mais baixo contém o primeiro bit da consulta. Os outros bits seguem-se de forma ascendente. Se o número das entradas não for múltiplo de 8, os bits restantes do último byte de dados são preenchidos com zeros. Se forem consultados mais bits do que as entradas ou saídas existentes no nó, os outros bits de entrada são colocadas em zero e as saídas obtêm o último valor válido.

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3A

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x01

0x01

”01”

0x30, 0x31

Byte Count

0x01

0x01

”01”

0x30, 0x31

Data (point 8...0)

0x12

0x12

”12”

0x31, 0x32

Error Check (LRC / CRC)

-

0xD2

”E1”

0x45, 0x31

 

 

0x5D

 

 

End of frame

-

t1-t2-t3

-

0xD, 0xA

Tabela 5.31: Exemplo resposta, status Read Coil

MODBUS / Configuração

55

01-03-16

 

 

O status das entradas 7 a 0 é indicado como valor byte 0x12 ou binário 0001 0010. A entrada 7 é o bit com o valor mais elevado deste byte e a entrada 0 o valor mais baixo. Por conseguinte, a atribuição é feita de 7 a 0 com OFF-OFF-OFF-ON-OFF-Off-ON- OFF.

Bit:

0

0

0

1

0

0

1

0

Coil:

7

6

5

4

3

2

1

0

56

MODBUS / Configuração

 

01-03-16

 

5.3.1.3 Status Read Input (Código de função 0x02):

Esta função lê o status dos bits de entrada no slave. A difusão não é suportada. No acoplador/controlador o número dos pontos I/O está limitado em 256.

 

 

Consulta:

 

 

 

 

 

Função!

 

 

 

 

 

 

A consulta determina o endereço de partida e o número dos bits que devem ser lidos.

 

 

 

 

O primeiro ponto é endereçado com 0. Em Modicon o endereçamento começa com 1

 

 

(0x01).

 

 

 

 

 

 

 

Na tabela que se segue apresenta-se um exemplo para uma consulta através da qual

 

 

devem ser lidos os bits 0 a 7 do slave 11:

 

 

 

 

 

 

 

 

 

 

 

 

 

Nome do campo

Exemplo

RTU

ASCII

 

 

 

 

Start of frame

-

t1-t2-t3

”:”

0x3a

 

 

 

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

 

 

 

Function code

0x02

0x02

”02”

0x30, 0x32

 

 

 

Starting address high

0x00

0x00

”00”

0x30, 0x30

 

 

 

Starting address low

0x00

0x00

”00”

0x30, 0x30

 

 

 

Number of points high

0x00

0x00

”00”

0x30, 0x30

 

 

 

Number of points low

0x08

0x08

”08”

0x30, 0x38

 

 

 

Error Check (LRC / CRC)

-

0x79

”EC”

0x45, 0x42

 

 

 

 

 

0x66

 

 

 

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

 

 

 

 

 

 

 

 

 

Tabela: 5.32: Exemplo consulta, status Read Input

Resposta:

Os valores atuais dos bits consultados são condensados no campo de dados. Um 1 corresponde ao estado ON e um 0 ao estado OFF. O bit com o valor mais baixo contém o primeiro bit da consulta. Os outros bits seguem-se de forma ascendente. Se o número das entradas não for múltiplo de 8, os bits restantes do último byte de dados são preenchidos com zeros. Se forem consultados mais bits do que as entradas ou saídas existentes no nó, os outros bits de entrada são colocados em zero.

Nome de campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3A

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x02

0x02

”02”

0x30, 0x32

Byte Count

0x01

0x01

”01”

0x30, 0x31

Data (point 8...0)

0x12

0x12

”12”

0x31, 0x32

Error Check (LRC / CRC)

-

0x22

”E0”

0x45, 0x30

 

 

0x5D

 

 

End of frame

-

t1-t2-t3

-

0xD, 0xA

Tabela 5.33: Exemplo resposta, status Read Input

MODBUS / Configuração

57

01-03-16

 

 

O status das entradas 7 a 0 é indicado como valor byte 0x12 ou binário 0001 0010. A entrada 7 é o bit com o valor mais elevado deste byte e a entrada 0 o valor mais baixo. Por conseguinte, a atribuição é feita de 7 a 0 com OFF-OFF-OFF-ON-OFF-Off-ON- OFF.

Bit:

0

0

0

1

0

0

1

0

Coil:

7

6

5

4

3

2

1

0

58

MODBUS / Configuração

 

01-03-16

 

5.3.1.4 Registro Read Holding (código de função 0x03)

Com esta função são lidos os conteúdos binários de registros holding nos slaves. A difusão não é suportada.. O número máximo é limitado em 128 registros em um frame.

Consulta:

Função! A consulta determina o endereço de partida (registro de partida) e o número dos registros que devem ser lidos.

O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01).

Exemplo para uma consulta dos registros 0 e 1 do slave 11:

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x03

0x03

”03”

0x30, 0x33

Starting address high

0x00

0x00

”00”

0x30, 0x30

Starting address low

0x00

0x00

”00”

0x30, 0x30

Number of points high

0x00

0x00

”00”

0x30, 0x30

Number of points low

0x02

0x02

”02”

0x30, 0x32

Error Check (LRC / CRC)

-

0xC4

”F0”

0x46, 0x30

 

 

0xA1

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.34: Exemplo consulta, registro Read Holding

Resposta:

Os dados de registro são condensados como 2 bytes por registro. O primeiro byte contém os bits de valores elevados, o segundo byte os bits de valores baixos. Uma resposta à consulta acima indicada, apresenta-se conforme se segue:

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3A

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x03

0x03

”03”

0x30, 0x33

Byte Count

0x04

0x04

”04”

0x30, 0x34

Data Hi (Register 0)

0x3F

0x3F

”3F”

0x33, 0x46

Data Lo (Register 0)

0xFB

0xFB

”FB”

0x46, 0x42

Data Hi (Register 1)

0x00

0x00

”00”

0x30, 0x30

Data Lo (Register 1)

0x00

0x00

”00”

0x30, 0x30

Error Check (LRC / CRC)

-

0x2D

”B4”

0x42, 0x34

 

 

0x61

 

 

End of frame

-

t1-t2-t3

-

0xD, 0xA

Tabela 5.35: Exemplo resposta, registro Read Holding

Os conteúdos do registro 0 são indicados por meio de dois valores de byte hexadecimais: 0x3F e 0xFB ou 16379 decimais. Os conteúdos do registro 1 são 0x00 e 0x00 ou 0 decimal.

MODBUS / Configuração

59

01-03-16

 

 

5.3.1.5 Registro Read Input (código de função 0x04)

Esta função serve para ler um número de palavras de entrada (também designado ”registros de entrada”). A difusão não é suportada e o número é limitado em 128 registros em um frame.

 

 

A consulta determina o endereço de partida (registro de partida) e o número dos

Função!

 

registros que devem ser lidos.

 

 

 

 

 

 

O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01).

 

 

Exemplo para uma consulta dos registros 0 e 1 do slave 11:

 

 

 

 

 

 

 

 

 

 

Nome do campo

Exemplo

RTU

ASCII

 

 

 

 

Start of frame

-

t1-t2-t3

”:”

0x3a

 

 

 

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

 

 

 

Function code

0x03

0x03

”03”

0x30, 0x33

 

 

 

Starting address high

0x00

0x00

”00”

0x30, 0x30

 

 

 

Starting address low

0x00

0x00

”00”

0x30, 0x30

 

 

 

Number of points high

0x00

0x00

”00”

0x30, 0x30

 

 

 

Number of points low

0x02

0x02

”02”

0x30, 0x32

 

 

 

Error Check (LRC / CRC)

-

0xC4

”F0”

0x46, 0x30

 

 

 

 

 

0xA1

 

 

 

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

 

Tabela 5.36: Exemplo consulta, registro Read Input

Resposta:

Os dados de registro são condensados como 2 bytes por registro. O primeiro byte contém os bits de valores elevados, o segundo byte os bits de valores baixos. Uma resposta à consulta acima indicada, apresenta-se conforme se segue:

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3A

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x03

0x03

”03”

0x30, 0x33

Byte Count

0x04

0x04

”04”

0x30, 0x34

Data Hi (Register 0)

0x3F

0x3F

”3F”

0x33, 0x46

Data Lo (Register 0)

0xFB

0xFB

”FB”

0x46, 0x42

Data Hi (Register 1)

0x00

0x00

”00”

0x30, 0x30

Data Lo (Register 1)

0x00

0x00

”00”

0x30, 0x30

Error Check (LRC / CRC)

-

0x2D

”B4”

0x42, 0x34

 

 

0x61

 

 

End of frame

-

t1-t2-t3

-

0xD, 0xA

Tabela 5.37: Exemplo resposta, registro Read Input

Os conteúdos do registro 0 são indicados por meio de dois valores de byte hexadecimais: 0x3F e 0xFB ou 16379 decimais. Os conteúdos do registro 1 são 0x00 e 0x00 ou 0 decimal.

60

MODBUS / Configuração

 

01-03-16

 

5.3.1.6 Force Single Coil (código de função 0x05):

Com a ajuda desta função é escrito um bit de saída individual. Esta função também pode ser enviada como difusão, sendo definido o mesmo bit em todos os slaves. No acoplador/controlador o número dos pontos I/O está limitado em 256.

Enecessesmioque Consulta:

O estado fique ON ou OFF é especificado como constante no campo de dados da consulta. Um valor de 0xFF00 define o bit de saída para 1, um valor de 0x00 para 0. Não estão especificados outros valores e não têm qualquer efeito sobre o estado das saídas. Neste exemplo, o bit 0 no slave 11 é definido para 1:

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x05

0x05

”05”

0x30, 0x35

Coil address high

0x00

0x00

”00”

0x30, 0x30

Coil address low

0x00

0x00

”00”

0x30, 0x30

Force data high

0xFF

0xFF

”FF”

0x46, 0x46

Force data low

0x00

0x00

”00”

0x30, 0x30

Error Check (LRC / CRC)

-

0x8C

”F1”

0x46, 0x31

 

 

0x90

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.38: Exemplo consulta, Force Single Coil

Resposta:

A resposta é um eco da consulta. É dada uma resposta se tiver sido definido um bit.

Nome de campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x05

0x05

”05”

0x30, 0x35

Coil address high

0x00

0x00

”00”

0x30, 0x30

Coil address low

0x00

0x00

”00”

0x30, 0x30

Force data high

0xFF

0xFF

”FF”

0x46, 0x46

Force data low

0x00

0x00

”00”

0x30, 0x30

Error Check (LRC / CRC)

-

0x8C

”F1”

0x46, 0x31

 

 

0x90

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.39: Exemplo resposta, Force Single Coil

MODBUS / Configuração

61

01-03-16

 

 

5.3.1.7 Registro Preset Single (Código de função 0x06):

Esta função escreve um valor em uma palavra de saída individual (também designado por ”Registro de saída”). Esta função também pode ser enviada como difusão, sendo definida a mesma palavra de saída em todos os slaves.

Função! Consulta:

O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01). A consulta determina o endereço da primeira palavra de saída que deve ser definida.

O valor a definir é definido no campo de dados de consulta.

No exemplo o registro 0 é definido no slave 11.

Nome do campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x06

0x06

”06”

0x30, 0x36

Register address high

0x00

0x00

”00”

0x30, 0x30

Register address low

0x00

0x00

”00”

0x30, 0x30

Preset data high

0x12

0x12

”12”

0x31, 0x32

Preset data low

0x34

0x34

”34”

0x33, 0x34

Error Check (LRC / CRC)

-

0x8C

”A9”

0x41, 0x39

 

 

0x17

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.40: Exemplo consulta, registro Preset Single

Resposta:

A resposta é um eco da consulta que é enviada depois de definir os registros.

Nome de campo

Exemplo

RTU

ASCII

 

Start of frame

-

t1-t2-t3

”:”

0x3a

Slave address

0x0B

0x0B

”0B”

0x30, 0x42

Function code

0x06

0x06

”06”

0x30, 0x36

Register address high

0x00

0x00

”00”

0x30, 0x30

Register address low

0x00

0x00

”00”

0x30, 0x30

Preset data high

0x12

0x12

”12”

0x31, 0x32

Preset data low

0x34

0x34

”34”

0x33, 0x34

Error Check (LRC / CRC)

-

0x8C

”A9”

0x41, 0x39

 

 

0x17

 

 

End of frame

 

t1-t2-t3

-

0xD, 0xA

Tabela 5.41: Exemplo resposta, registro Preset Single

62

MODBUS / Configuração

 

01-03-16

 

Соседние файлы в папке 750-812