Материал: m012800p

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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