Você está na página 1de 14

Aplicação: EPE00083 SPDSW V4.4.

05

SPDSW - Versão 4.4.05

Projeto: EPE00083
Endereço de acesso: 255
Programa de Aplicação: EPE00083
Controlador: ZAP91X
Versão: 1.000
Descrição: Programa exemplo EPE00083
Responsavel: Eng. de Aplicação
Empresa: HI Tecnologia Ind. e Com. Ltda
Criado por: SPDSW Ver 1.8.00
Criado em: 23/08/2006 17:28:35
Última carga: 13/05/2014 09:44:30
Última Alteração: 16/03/2018 17:52:23

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 1 de 13


Aplicação: EPE00083 SPDSW V4.4.05

Especificação dos módulos do controlador

Rack Slot Código Módulo Canais

00 00 301.108.900.002 ZMB900 22 --- --- ---


Processor com canal Ethernet 10/100 eu canais seriais, 8 ent. PNP, 8 saídas PNP, 1 int. encoder, 2 contadores, 1 ger. freq. + PWM

Canal Ident. Tipo Descrição

00 COM0 Canal serial RS232-C


01 COM1 Canal serial RS232-C
02 I0000 Entrada Digital PNP Isolada
03 I0001 Entrada Digital PNP Isolada
04 I0002 Entrada Digital PNP Isolada
05 I0003 Entrada Digital PNP Isolada
06 I0004 Entrada Digital PNP Isolada
07 I0005 Entrada Digital PNP Isolada
08 I0006 Entrada Digital PNP Isolada
09 I0007 Entrada Digital PNP Isolada
10 O0000 Saída Digital PNP Isolada
11 O0001 Saída Digital PNP Isolada
12 O0002 Saída Digital PNP Isolada
13 O0003 Saída Digital PNP Isolada
14 O0004 Saída Digital PNP Isolada
15 O0005 Saída Digital PNP Isolada
16 O0006 Saída Digital PNP Isolada
17 O0007 Saída Digital PNP Isolada
18 T0000 Contador Quadratura
19 T0001 Contador Quadratura
20 T0002 Contador Quadratura
21 T0000 Frequencia Programável

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 2 de 13


Aplicação: EPE00083 SPDSW V4.4.05

Tabela de Constante inteira (16bits)

Ident. NU Valor Tag Descrição

K0000 X 0 COM1 Identificador da COM1 do controlador HI [ 0 ]


K0001 1 COM2 Identificador da COM2 do controlador HI [ 1 ]
K0002 X 2 COM3 Identificador da COM3 do controlador HI [ 2 ]
K0003 235 F-COMU Identificador da função de comunicação remota [ 235 ]
K0005 %04Hh RD COIL Codigo função "Read Coil" do Modbus [ 0000h ]
K0006 %04Hh WR COIL Codigo função "Write Coil" do Modbus [ 0080h ]
K0007 %04Hh RD REG Codigo função "Read Holding Register" do Modbus (simples) [ 0001h ]
K0008 %04Hh WR REG Codigo função "Write Register" do Modbus (simples) [ 0081h ]
K0009 %04Hh RD REG2 Codigo função "Read Holding Register" do Modbus (DUPLO) para M [ 0002h ]
K0010 %04Hh WR REG2 Codigo função "Write Holding Register" do Modbus (DUPLO) para M [ 0082h ]
K0011 %04Hh RD REG3 Codigo função "Read Holding Register" do Modbus (DUPLO) para L [ 0003h ]
K0012 %04Hh WR REG3 Codigo função "Write Holding Register" do Modbus (DUPLO) para L [ 0083h ]
K0013 X %04Hh RD IREG Codigo função "Read Input Register" do Modbus [ 0005h ]
K0014 X %04Hh RD DINP Codigo função "Read Discrete Input" do Modbus [ 0006h ]
K0015 1 ADD 1 SCB: Identificador do dispositivo remoto a ser acessado [ 1 ]
K0020 100 100 SCB: Identificador inicial da base local R no controlador HI [ 100 ]
K0021 10 16 SCB: Quantidade de dados a serem manipulados [ 10 ]
K0022 50 50 SCB: Identificador inicial da base de dados R no dispositivo remoto [ 50 ]
K0025 120 120 SCB: Identificador inicial da base local R no controlador HI [ 120 ]
K0026 9 9 SCB: Quantidade de dados a serem manipulados [ 9 ]
K0027 32 32 SCB: Identificador inicial da base de dados R no dispositivo remoto [ 32 ]
K0030 107 107 SCB: Identificador inicial da base local M no controlador HI [ 107 ]
K0031 5 5 SCB: Quantidade de dados a serem manipulados [ 5 ]
K0032 60 60 SCB: Identificador inicial da base de dados "holding" no dispositivo remoto [ 60 ]
K0035 150 150 SCB: Identificador inicial da base local M no controlador HI [ 150 ]
K0036 4 4 SCB: Quantidade de dados a serem manipulados [ 4 ]
K0037 31 31 SCB: Identificador inicial da base de dados "holding" no dispositivo remoto [ 31 ]
K0040 10 10 SCB: Identificador inicial da base local D no controlador HI [ 10 ]
K0041 5 5 SCB: Quantidade de dados a serem manipulados [ 5 ]
K0042 10074 10074 SCB: Identificador inicial da base de dados D no dispositivo remoto [ 10074 ]
K0045 20 20 SCB: Identificador inicial da base local D no controlador HI [ 20 ]
K0046 6 6 SCB: Quantidade de dados a serem manipulados [ 6 ]
K0047 10150 10150 SCB: Identificador inicial da base de dados D no dispositivo remoto [ 10150 ]
K0050 X 200 200 SCB: Identificador inicial da base local M no controlador HI [ 200 ]
K0051 X 5 5 SCB: Quantidade de dados a serem manipulados [ 5 ]
K0052 X 60 60 SCB: Identificador inicial da base de dados "input register" no dispositivo remo [ 60 ]
K0055 X 230 230 SCB: Identificador inicial da base local M no controlador HI [ 230 ]
K0056 X 7 7 SCB: Quantidade de dados a serem manipulados [ 7 ]
K0057 X 5 5 SCB: Identificador inicial da base de dados "discrete input" no dispositivo remo [ 5 ]
K0060 X 20 20 SCB: Identificador inicial da base local D no controlador HI [ 20 ]
K0061 X 6 6 SCB: Quantidade de dados a serem manipulados [ 6 ]
K0062 X 75 75 SCB: Identificador inicial da base de dados D no dispositivo remoto [ 75 ]
K0065 X 20 20 SCB: Identificador inicial da base local D no controlador HI [ 20 ]
K0066 X 6 6 SCB: Quantidade de dados a serem manipulados [ 6 ]
K0067 X 75 75 SCB: Identificador inicial da base de dados D no dispositivo remoto [ 75 ]
K0070 21 21 SCB: Identificador inicial da base local L no controlador HI [ 21 ]
K0071 11 11 SCB: Quantidade de dados a serem manipulados [ 11 ]
K0072 20062 20062 SCB: Identificador inicial da base de dados L no dispositivo remoto [ 20062 ]
K0075 40 40 SCB: Identificador inicial da base local L no controlador HI [ 40 ]
K0076 7 7 SCB: Quantidade de dados a serem manipulados [ 7 ]
K0077 20028 20028 SCB: Identificador inicial da base de dados L no dispositivo remoto [ 20028 ]

Obs: NU = X -> Constante inteira (16bits) associada não utilizada no programa.

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 3 de 13


Aplicação: EPE00083 SPDSW V4.4.05

- - - -< HI TECNOLOGIA INDUSTRIA E COMERCIO LTDA. >- - - -

Aplicação: Interface de comunicação com dispositivos remotos


Controladores HI - Geração GII e G3
( Baseado no Protocolo MODBUS-RTU/TCP )
Cliente: HI Tecnologia Ind. Com. Ltda
Analista: Eng. de Aplicação da HI Tecnologia
Software: SPDSW Versão: 3.1.16 ou superior
Equip.: ZAP91X Firmware: 1.2.03 ou superior
Programa: EPE00083 Criado em: 08/Mai/2014
Versão: 1.00 Modificado em: 08/Mai/2014

> Obs.: Aplicação desenvolvida para controlador: ZAP91X


> consulte nota de aplicação ENA.00045
> e-mail para suporte: suporte@hitecnologia.com.br

0000
<<<<<<<< Configuração do Controlador HI Mestre >>>>>>>>>>

Neste exemplo, utilizamos um controlador HI, no caso,


um ZAP910, com o canal COM2 configurado como MESTRE e com
protocolo MODBUS-RTU/TCP, para se comunicar com outro equipamento
da HI Tecnologia que possua o mesmo protocolo MODBUS. Neste caso,
o controlador HI que executa este programa pode trocar dados
(ler e/ou escrever) com este dispositivo remoto via o protocolo
MODBUS.

-------------------------------------------------------------------------
Identificação do canal de comunicação para controladores com
firmware geração G3 :
-1 : canal de comunicação Ethernet
0 : canal de comunicação serial COM1
1 : canal de comunicação serial COM2
2 : canal de comunicação serial COM3 (se disponível no controlador)

São exemplos de controladores que suportam esta geração de firmware:


P7C com CPU300 / CPU301 / PPU305, ZAP910, eZAP910, ZAP911, eZAP911.

0002
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo R1: Funcao "READ COIL"
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Ler variaveis do tipo R do dipositivo remoto (equipamento HI escravo),
armazenando-as em variaveis do tipo R do controlador
HI mestre.

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 4 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


==> Exemplo: Ler variáveis tipo R de um dispositivo remoto R0000: CMD Ativa Exemplo R1
armazenado-as em variaveis do tipo R no controlador HI mestre R0001: Status de Execução do Exemplo R1
==> Parametros de Entrada do bloco SCB:
.M0 = Id. da porta serial mestre (ver identificador no inicio deste programa------- [ Memória inteira (16bits) ] -------
exemplo)
.M1 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1 M0000: SCB: Identificador da porta serial do controlador
.M2 = Codigo da funcao de comunicacao a ser executada, no caso, para M0001: SCB: Identificador do dispositivo remoto a ser ac
função "read Coil" do dispositivo remoto deve ser 0 decimal ou 0 em hexadecimal.
M0002: SCB: Codigo da função de comunicação a ser ut
.M3 = Id. inicial da variavel R da base local do controlador HI M0003: SCB: Identificador inicial da base local R no cont
onde serao armazenados os "coils" lidos do dispositivo remoto, no M0004: SCB: Quantidade de dados a serem manipulados
caso, a partir do R100, entao deve-se especificar o valor 100.
.M4 = Quantidade de dados "coil" a serem lidos, no caso, 10 variaveis coils
M0005: SCB: Identificador inicial da base de dados R no
.M5 = Id. inicial da variavel R na base de dados do dispositivo M0006: SCB: Parâmetro de saida "dummy" (não utilizado
remoto a ser acessado. No caso, a variavel R 50, entao deve-se M0007: SCB: Codigo de retorno da execução da função d
especificar o valor 50.
==> Parametros de Saida do bloco SCB: ------- [ Constante inteira (16bits) ] -------
.M6 = Sem parametros de saida, parametro dummy. K0001: [ Tag: COM2 ]
==> Codigo de Retorno do bloco SCB: Identificador da COM2 do controlador HI [ 1 ]
.M7 = Codigo de retorno da execução da função de comunicação, onde : K0015: [ Tag: ADD 1 ]
SCB: Identificador do dispositivo remoto a ser acessado [
K0005: [ Tag: RD COIL ]
Codigo função "Read Coil" do Modbus [ 0000h ]
K0020: [ Tag: 100 ]
SCB: Identificador inicial da base local R no controlador H
K0021: [ Tag: 16 ]
SCB: Quantidade de dados a serem manipulados [ 10 ]
0004 K0022: [ Tag: 50 ]
SCB: Identificador inicial da base de dados R no dispositi
- - Exemplo R1 - - < Ative R0 p/ executar o exemplo > - - - K0003: [ Tag: F-COMU ]
. Ler 10 variaveis do tipo R 50..59 do dispositivo remoto Identificador da função de comunicação remota [ 235 ]
remoto endereço 1, armazenando-as nas variaveis locais
R de R100..R109 do controlador HI Mestre.

+----------------+ +----------------+
| Controlador HI | Le 10 R | Dispositivo |
| Mestre | <========== | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(R100..R109) (R50..R59)

R0000 MOV MOV MOV MOV MOV MOV SCB R0000


COM2 ADD 1 RD COIL 100 16 50 F-COMU

R0001
M0000 M0001 M0002 M00030006
M0004 M0005 M0000

M0006

0008 M0007

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo R2: Função "WRITE SINGLE COIL" / "WRITE MULTIPLE COILS"
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Escreve variaveis do tipo R do controlador HI mestre em
variaveis do tipo R do dipositivo HI remoto.

Se a quantidade de variaveis especificada em M14 for igual a 1 (um)


utiliza-se a funcao "WRITE SINGE COIL", caso contrario, para quantidades
maiores que 1, utiliza-se a função "WRITE MULTIPLE COIL"

0010

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 5 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


==> Exemplo: Escrever um conjunto de variaveis do tipo R do controlador R0002: CMD Ativa Exemplo R2
HI em um conjunto de variáveis R do dispositivo remoto R0003: Status de Execução do Exemplo R2
==> Parametros de Entrada do bloco SCB:
-------
.M10 = Id. da porta serial mestre (ver identificador no inicio deste programa [ Memória inteira (16bits) ] -------
exemplo)
.M11 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1 M0010: SCB: Identificador da porta serial do controlador
.M12 = Codigo da funcao de comunicacao a ser executada, no caso, para M0011: SCB: Identificador do dispositivo remoto a ser ac
escrita de variaveis do tipo "coil" no dispositivo remoto deve M0012: SCB: Codigo da função de comunicação a ser ut
ser 128 decimal ou 80 em hexadecimal. M0013: SCB: Identificador inicial da base local R no cont
.M13 = Id. inicial da variavel R da base local do controlador HI M0014: SCB: Quantidade de dados a serem manipulados
onde serao lidos os valores R a serem enviados para as variaveis coil remotas,
no caso, a partir do R120, entao deve-se especificar o valor 80.
M0015: SCB: Identificador inicial da base de dados R no
M0016: SCB: Parâmetro de saida "dummy" (não utilizado
.M14 = Quantidade de dados "coil" a serem escritos, no caso, 9 variaveis coil
.M15 = Id. inicial da variavel "coil" na base remota do dispositivo M0017: SCB: Codigo de retorno da execução da função d
remoto a serem escritos os dados. No caso, a partir do coil 32,
entao deve-se especificar o valor 32. ------- [ Constante inteira (16bits) ] -------
==> Parametros de Saida do bloco SCB: K0001: [ Tag: COM2 ]
.M16 = Sem parametros de saida, parametro dummy. Identificador da COM2 do controlador HI [ 1 ]
==> Codigo de Retorno do bloco SCB: K0015: [ Tag: ADD 1 ]
SCB: Identificador do dispositivo remoto a ser acessado [
K0006: [ Tag: WR COIL ]
Codigo função "Write Coil" do Modbus [ 0080h ]
K0025: [ Tag: 120 ]
SCB: Identificador inicial da base local R no controlador H
K0026: [ Tag: 9 ]
SCB: Quantidade de dados a serem manipulados [ 9 ]
0011 K0027: [ Tag: 32 ]
SCB: Identificador inicial da base de dados R no dispositi
- - Exemplo R2 - - < Ative R2 p/ executar o exemplo > - - - K0003: [ Tag: F-COMU ]
. Escrever 9 variaveis do tipo R : R120..R128 do controlador HI Identificador da função de comunicação remota [ 235 ]
mestre, nas variaveis R 32..40 do dispositivo HI remoto escravo.

+----------------+ +----------------+
| Controlador HI | Escreve 9 R | Dispositivo |
| Local Mestre | ==========> | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(R120..R129) (R32..R40)

R0002 MOV MOV MOV MOV MOV MOV SCB R0002


COM2 ADD 1 WR COIL 120 9 32 F-COMU

R0003
M0010 M0011 M0012 M00130013
M0014 M0015 M0010

M0016

0015 M0017

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo M1: Função "READ HOLDING REGISTERS"
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Le variaveis do tipo M do equipamento HI remoto armazenando-as
em variaveis do tipo M do controlador HI mestre.

A quantidade de variaveis especificada em M24 corresponde a quantidade


efetiva de "holding register" lidos do equipamento remoto, sendo
então armazenadas em variaveis do tipo M do controlador HI mestre

0017

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 6 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


==> Exemplo: Ler um conjunto de variáveis M de um dispositivo HI R0005: CMD Ativa Exemplo M1
configurado com modbus remoto e armazenado-as em variaveis R0006: Status de Execução do Exemplo M1
do tipo M no controlador HI
==> Parametros de Entrada do bloco SCB: ------- [ Memória inteira (16bits) ] -------
.M20 = Id. da porta serial mestre (ver identificador no inicio deste programa exemplo)
M0020: SCB: Identificador da porta serial do controlador
.M21 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1 M0021: SCB: Identificador do dispositivo remoto a ser ac
.M22 = Codigo da funcao de comunicacao a ser executada, no caso, para M0022: SCB: Codigo da função de comunicação a ser ut
leitura de variaveis do tipo "holding register" do dispositivo M0023: SCB: Identificador inicial da base local M no cont
remoto deve ser 1 decimal ou 1 em hexadecimal. M0024: SCB: Quantidade de dados M a serem lidos
.M23 = Id. inicial da variavel M da base local do controlador HI onde
serao armazenados os "holding register" lidos do dispositivo remoto
M0025: SCB: Identificador inicial da base de dados M no
no caso, M107, entao deve-se especificar o valor 107. M0026: SCB: Parâmetro de saida "dummy" (não utilizado
M0027: SCB:
.M24 = Quantidade de dados "holding registee" a serem lidos, no caso, 5 variaveis Codigo
"holding de retorno da execução da função d
register"
.M25 = Id. inicial da variavel "holding register" na base remota do dispositivo
------- [deve-se
remoto a ser acessado. No caso, a partir do "holding register" 60, entao Constante inteira (16bits) ] -------
especificar o valor 60. K0001: [ Tag: COM2 ]
==> Parametros de Saida do bloco SCB: Identificador da COM2 do controlador HI [ 1 ]
.M26 = Sem parametros de saida, parametro dummy. K0015: [ Tag: ADD 1 ]
SCB: Identificador do dispositivo remoto a ser acessado [
K0007: [ Tag: RD REG ]
Codigo função "Read Holding Register" do Modbus (simp
K0030: [ Tag: 107 ]
SCB: Identificador inicial da base local M no controlador H
K0031: [ Tag: 5 ]
SCB: Quantidade de dados a serem manipulados [ 5 ]
0018 K0032: [ Tag: 60 ]
SCB: Identificador inicial da base de dados "holding" no d
- - Exemplo M1 - - < Ative R5 p/ executar o exemplo > - - - K0003: [ Tag: F-COMU ]
. Ler 5 variaveis do tipo M 60..64 do dispositivo HI remoto Identificador da função de comunicação remota [ 235 ]
endereço 1, armazenando-as nas variaveis locais M de
M107..M111 do controlador HI Mestre.

+----------------+ +----------------+
| Controlador HI | Le 5 M | Dispositivo |
| Mestre | <========== | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(M107..M111) (M60..64)

R0005 MOV MOV MOV MOV MOV MOV SCB R0005


COM2 ADD 1 RD REG 107 5 60 F-COMU

R0006
M0020 M0021 M0022 M00230020
M0024 M0025 M0020

M0026

0022 M0027

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo M3: Função "WRITE SINGLE REGISTER" / "WRITE MULTIPLE REGISTER"
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Escreve variaveis do tipo M do controlador HI mestre, nas
variaveis do tipo "holding register" do equipamento remoto.

Se a quantidade de variaveis especificada em M34 for igual a 1 (um)


utiliza-se a funcao "WRITE SINGLE REGISTER", caso contrario, para quantidades
maiores que 1, utiliza-se a função "WRITE MULTIPLE REGISTER"

0024

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 7 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


R0007: CMD Ativa Exemplo M3
==> Exemplo: Escrever um conjunto de variaveis do tipo M do controlador HI mestre
em um conjunto de variáveis "holding register" no dispositivo remoto R0008: Status de Execução do Exemplo M3
==> Parametros de Entrada do bloco SCB:
-------
.M30 = Id. da porta serial mestre (ver identificador no inicio deste programa [ Memória inteira (16bits) ] -------
exemplo)
.M31 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1 M0030: SCB: Identificador da porta serial do controlador
.M32 = Codigo da funcao de comunicacao a ser executada, no caso, para M0031: SCB: Identificador do dispositivo remoto a ser ac
escrita de variaveis do "holding register" no dispositivo remoto M0032: SCB: Codigo da função de comunicação a ser ut
deve ser 129 decimal ou 81 em hexadecimal. M0033: SCB: Identificador inicial da base local M no cont
.M33 = Id. inicial da variavel M da base local do controlador HI M0034: SCB: Quantidade de dados M a serem manipulad
onde serao lidos os valores M a serem enviados, no caso,
a partir do M150, entao deve-se especificar o valor 150.
M0035: SCB: Identificador inicial da base de dados M no
M0036: SCB:holding
.M34 = Quantidade de dados "holding register" a serem escritos, no caso, 4 variaveis Parâmetro de saida "dummy" (não utilizado
.M35 = Id. inicial da variavel "holding register" na base do dispositivo M0037: SCB: Codigo de retorno da execução da função d
remoto a serem escritos os dados. No caso, a partir do "holding register" 31,
entao deve-se especificar o valor 31. ------- [ Constante inteira (16bits) ] -------
==> Parametros de Saida do bloco SCB: K0001: [ Tag: COM2 ]
.M36 = Sem parametros de saida, parametro dummy. Identificador da COM2 do controlador HI [ 1 ]
==> Codigo de Retorno do bloco SCB: K0015: [ Tag: ADD 1 ]
.M37 = Codigo de retorno da execução da função de comunicação, onde : SCB: Identificador do dispositivo remoto a ser acessado [
. igual a Zero : Função executada com sucesso K0008: [ Tag: WR REG ]
. diferente de Zero : Codigo de erro da execução da função Codigo função "Write Register" do Modbus (simples) [ 00
K0035: [ Tag: 150 ]
SCB: Identificador inicial da base local M no controlador H
K0036: [ Tag: 4 ]
SCB: Quantidade de dados a serem manipulados [ 4 ]
K0037: [ Tag: 31 ]
SCB: Identificador inicial da base de dados "holding" no d
K0003: [ Tag: F-COMU ]
Identificador da função de comunicação remota [ 235 ]
0025
- - Exemplo M3 - - < Ative R7 p/ executar o exemplo > - - -
. Escrever 4 variaveis do tipo M : M150..M153 do controlador HI
mestre, para as variaveis "holding register" 31..34 do dispositivo

R0007 MOV MOV MOV MOV MOV MOV SCB R0007


COM2 ADD 1 WR REG 150 4 31 F-COMU

R0008
M0030 M0031 M0032 M00330027 M0034 M0035 M0030

M0036

0029 M0037

0031

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 8 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = R0010: CMD Ativa Exemplo D2
Exemplo D2: Função "READ HOLDING REGISTERS" (duplo) para Tipo D R0011: Status de Execução do Exemplo D2
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Le variaveis do tipo D do equipamento remoto armazenando-as ------- [ Memória inteira (16bits) ] -------
em variaveis do tipo D do controlador HI. M0040: SCB: Identificador da porta serial do controlador
Solicita-se o dobro da quantidade de variaveis especificada em M0041: SCB: Identificador do dispositivo remoto a ser ac
M44 de "holding register" para serem lidas do equipamento remoto, sendo que M0042: SCB: Codigo da função de comunicação a ser ut
a cada 2 variaveis do tipo "holding register" do equipamento remoto M0043: SCB: Identificador inicial da base local D no cont
e´ mapeada em 1 variavel do D do controlador HI mestre. M0044: SCB: Quantidade de dados D duplos a serem lid
Para endereçar uma variável D em um equipamento da HI Tecnologia
M0045: SCB: Identificador inicial da base de dados D no
utilizando-se Modbus deve ser multiplicar o indice da variável
remota D por 2 e somar 10000 (dez mil) ------- [ Constante inteira (16bits) ] -------
Exemplo: Para acessar a D152, o endereço da variavel para a K0001: [ Tag: COM2 ]
comunicação deve ser 10304 Identificador da COM2 do controlador HI [ 1 ]
K0015: [ Tag: ADD 1 ]
SCB: Identificador do dispositivo remoto a ser acessado [
K0009: [ Tag: RD REG2 ]
Codigo função "Read Holding Register" do Modbus (DUP
K0040: [ Tag: 10 ]
SCB: Identificador inicial da base local D no controlador H
0032 K0041: [ Tag: 5 ]
SCB: Quantidade de dados a serem manipulados [ 5 ]
==> Exemplo: Ler um conjunto de variáveis D de um dispositivo modbus K0042: [ Tag: 10074 ]
remoto armazenando-as em variaveis do tipo D do controlador HI mestre. SCB: Identificador inicial da base de dados D no dispositi
==> Parametros de Entrada do bloco SCB: K0003: [ Tag: F-COMU ]
.M40 = Id. da porta serial mestre (ver identificador no inicio deste programa exemplo)da função de comunicação remota [ 235 ]
Identificador
.M41 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1
.M42 = Codigo da funcao de comunicacao a ser executada, no caso, para
leitura de variaveis do tipo "holding register" duplo do dispositivo
remoto deve ser 2 decimal ou 2 em hexadecimal.
.M43 = Id. inicial da variavel D da base local do controlador HI
onde serao armazenados os dados "holding register" duplos lidos do
dispositivo remoto, no caso, D10, entao deve-se especificar o valor 10.
.M44 = Quantidade de variáveis D a serem lidos, no caso, 5
.M45 = Id. inicial da variavel D na base remota do dispositivo HI
remoto a ser acessado multiplicado por 2 e somado 10000.
No caso, D37, entao deve-se especificar o valor 10074.
==> Parametros de Saida do bloco SCB:
.M46 = Sem parametros de saida, parametro dummy.
==> Codigo de Retorno do bloco SCB:
.M47 = Codigo de retorno da execução da função de comunicação, onde :
. igual a Zero : Função executada com sucesso
. diferente de Zero : Codigo de erro da execução da função

- - Exemplo D2 - - < Ative R10 p/ executar o exemplo > - - -


. Ler 5 variaveis do tipo D a partir de D37, sendo
entao efetivamente lidos 10 variaveis "holding register" simples,
no caso de D37..D46 do dispositivo HI remoto endereço 1,
armazenando-as nas variaveis locais D de D10..D14 do controlador
HI Mestre.

+----------------+ +----------------+
| Controlador HI | Le 5 D | Dispositivo |
| Mestre | <============ | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(D10..D14) (D37..D46)

R0010 MOV MOV MOV MOV MOV MOV SCB R0010


COM2 ADD 1 RD REG210 0034
5 10074 F-COMU

R0011
M0040 M0041 M0042 M0043 M0044 M0045 M0040

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 9 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Memória inteira (16bits) ] -------


M0046: SCB: Parâmetro de saida "dummy" (não utilizado
M0047: SCB: Codigo de retorno da execução da função d
0036 M0046

M0047

0038
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo D4: Função "WRITE MULTIPLE REGISTERS" (duplo) para tipo D
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Escreve variaveis do tipo D do controlador HI mestre, nas
variaveis do tipo D do equipamento HI remoto.

Cada variavel D do controlador HI e´ mapeada em 2 variaveis


do tipo "holding register" do equipamento remoto.

Para endereçar uma variável D em um equipamento da HI Tecnologia


utilizando-se Modbus deve ser multiplicar o indice da variável
remota D por 2 e somar 10000 (dez mil)
Exemplo: Para acessar a D152, o endereço da variavel para a
comunicação deve ser 10304

==> Exemplo: Escrever um conjunto de variáveis D do controlador HI mestre


em variaveis do tipo holding register do dispositivo remoto.
==> Parametros de Entrada do bloco SCB:
.M50 = Id. da porta serial mestre (ver identificador no inicio deste programa exemplo)
.M51 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1
.M52 = Codigo da funcao de comunicacao a ser executada, no caso, para
escrita de variaveis do tipo D no dispositivo remoto deve
ser 130 decimal ou 82 em hexadecimal.
.M53 = Id. inicial da variavel D da base local do controlador HI
onde serao lidos os valores D a serem enviados, no caso,
a partir de D20, entao deve-se especificar o valor 20.
.M54 = Quantidade de dados D a serem escritos, no caso, 6 variaveis D.
.M55 = Id. inicial da variavel D na base remota do dispositivo HI
remoto a ser acessado multiplicado por 2 e somado 10000.
No caso, D75, entao deve-se especificar o valor 10150.
==> Parametros de Saida do bloco SCB:
.M56 = Sem parametros de saida, parametro dummy.
==> Codigo de Retorno do bloco SCB:

0040

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 10 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


- - Exemplo D4 - - < Ative R12 p/ executar o exemplo > - - - R0012: CMD Ativa Exemplo D4
. Escrever 6 variaveis do tipo D : D20..D25 do controlador HI R0013: Status de Execução do Exemplo D4
local, para as variaveis D75..D86 do dispositivo HI remoto escravo.
No caso, 6 variaveis D sao mapeadas em 12 variaveis do tipo ------- [ Memória inteira (16bits) ] -------
holding register no dispositivo remoto. M0050: SCB: Identificador da porta serial do controlador
M0051: SCB: Identificador do dispositivo remoto a ser ac
+----------------+ +----------------+ M0052: SCB: Codigo da função de comunicação a ser ut
| Controlador HI | Escreve 6 D | Dispositivo | M0053: SCB: Identificador inicial da base local D no cont
| Local Mestre | ==============> | Escravo Remoto | M0054: SCB: Quantidade de dados D a serem manipulad
+----------------+ ( MODBUS ) +----------------+
(D20..D25) (D75..D86)
M0055: SCB: Identificador inicial da base de dados D no
[6 variaveis D] [12 variaveis holding register] M0056: SCB: Parâmetro de saida "dummy" (não utilizado
M0057: SCB: Codigo de retorno da execução da função d

------- [ Constante inteira (16bits) ] -------


K0001: [ Tag: COM2 ]
R0012 MOV MOV MOV MOV MOV MOV SCB R0012 Identificador da COM2 do controlador HI [ 1 ]
K0015: [ Tag: ADD 1 ]
COM2 ADD 1 WR REG220 0041
6 10150 F-COMU SCB: Identificador do dispositivo remoto a ser acessado [
K0010: [ Tag: WR REG2 ]
R0013 Codigo função "Write Holding Register" do Modbus (DUP
M0050 M0051 M0052 M0053 M0054 M0055 M0050 K0045: [ Tag: 20 ]
SCB: Identificador inicial da base local D no controlador H
K0046: [ Tag: 6 ]
SCB: Quantidade de dados a serem manipulados [ 6 ]
0043 M0056 K0047: [ Tag: 10150 ]
SCB: Identificador inicial da base de dados D no dispositi
K0003: [ Tag: F-COMU ]
Identificador da função de comunicação remota [ 235 ]
M0057

0045

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Exemplo L2: Função "READ HOLDING REGISTERS" (duplo) para Tipo L
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Le variaveis do tipo L do equipamento remoto armazenando-as
em variaveis do tipo L do controlador HI.
Solicita-se o dobro da quantidade de variaveis especificada em
M44 de "holding register" para serem lidas do equipamento remoto, sendo que
a cada 2 variaveis do tipo "holding register" do equipamento remoto
e´ mapeada em 1 variavel do L do controlador HI mestre.

Para endereçar uma variável L em um equipamento da HI Tecnologia


utilizando-se Modbus deve ser multiplicar o indice da variável
remota L por 2 e somar 20000 (vinte mil)
Exemplo: Para acessar a L149, o endereço da variavel para a
comunicação deve ser 20298

0047

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 11 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


==> Exemplo: Ler um conjunto de variáveis L de um dispositivo modbus R0015: CMD Ativa Exemplo L1
remoto armazenando-as em variaveis do tipo L do controlador HI mestre. R0016: Status de Execução do Exemplo L1
==> Parametros de Entrada do bloco SCB:
-------
.M40 = Id. da porta serial mestre (ver identificador no inicio deste programa [ Memória inteira (16bits) ] -------
exemplo)
.M41 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1 M0060: SCB: Identificador da porta serial do controlador
.M42 = Codigo da funcao de comunicacao a ser executada, no caso, para M0061: SCB: Identificador do dispositivo remoto a ser ac
leitura de variaveis do tipo "holding register" duplo do dispositivo M0062: SCB: Codigo da função de comunicação a ser ut
remoto deve ser 2 decimal ou 2 em hexadecimal para mapeamento M0063: SCB: Identificador inicial da base local L no contr
nas memórias M. M0064: SCB: Quantidade de dados a serem manipulados
.M43 = Id. inicial da variavel L da base local do controlador HI
onde serao armazenados os dados do L lidos do dispositivo
M0065: SCB: Identificador inicial da base de dados L no
remoto, no caso, L21, entao deve-se especificar o valor 21. M0066: SCB: Parâmetro de saida "dummy" (não utilizado
.M44 = Quantidade de variáveis L a serem lidos, no caso, 11 M0067: SCB: Codigo de retorno da execução da função d
.M45 = Id. inicial da variavel L na base remota do dispositivo HI
remoto a ser acessado multiplicado por 2 e somado 20000. ------- [ Constante inteira (16bits) ] -------
No caso, L31, entao deve-se especificar o valor 20062. K0001: [ Tag: COM2 ]
==> Parametros de Saida do bloco SCB: Identificador da COM2 do controlador HI [ 1 ]
.M46 = Sem parametros de saida, parametro dummy. K0015: [ Tag: ADD 1 ]
==> Codigo de Retorno do bloco SCB: SCB: Identificador do dispositivo remoto a ser acessado [
.M47 = Codigo de retorno da execução da função de comunicação, onde : K0011: [ Tag: RD REG3 ]
. igual a Zero : Função executada com sucesso Codigo função "Read Holding Register" do Modbus (DUP
K0070: [ Tag: 21 ]
SCB: Identificador inicial da base local L no controlador H
K0071: [ Tag: 11 ]
SCB: Quantidade de dados a serem manipulados [ 11 ]
K0072: [ Tag: 20062 ]
SCB: Identificador inicial da base de dados L no dispositi
K0003: [ Tag: F-COMU ]
Identificador da função de comunicação remota [ 235 ]
0048
- - Exemplo L2 - - < Ative R10 p/ executar o exemplo > - - -
. Ler 11 variaveis do tipo L a partir de L31, sendo
entao efetivamente lidos 22 variaveis "holding register" simples,
no caso de L31..L41 do dispositivo HI remoto endereço 1,
armazenando-as nas variaveis locais L de L21..L31 do controlador
HI Mestre.

+----------------+ +----------------+
| Controlador HI | Le 11 L | Dispositivo |
| Mestre | <============ | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(L21..D31) (L31..L41)
[11 variaveis L] [22 variaveis holding register]

R0015 MOV MOV MOV MOV MOV MOV SCB R0015


COM2 ADD 1 RD REG321 11 20062 F-COMU

R0016
M0060 M0061 M0062 M00630050 M0064 M0065 M0060

M0066

0052 M0067

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 12 de 13


Aplicação: EPE00083 SPDSW V4.4.05

------- [ Contato auxiliar ] -------


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = R0017: CMD Ativa Exemplo L2
Exemplo L4: Função "WRITE MULTIPLE REGISTERS" (duplo) para tipo L
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ------- [ Constante inteira (16bits) ] -------
Escreve variaveis do tipo L do controlador HI mestre, nas K0001: [ Tag: COM2 ]
variaveis do tipo L do equipamento HI remoto. Identificador da COM2 do controlador HI [ 1 ]
K0015: [ Tag: ADD 1 ]
Cada variavel L do controlador HI e´ mapeada em 2 variaveis SCB: Identificador do dispositivo remoto a ser acessado [
do tipo "holding register" do equipamento remoto. K0012: [ Tag: WR REG3 ]
Codigo função "Write Holding Register" do Modbus (DUP
Para endereçar uma variável L em um equipamento da HI Tecnologia
utilizando-se Modbus deve ser multiplicar o indice da variável
K0075: [ Tag: 40 ]
remota L por 2 e somar 20000 (vinte mil) SCB: Identificador inicial da base local L no controlador H
Exemplo: Para acessar a L149, o endereço da variavel para a K0076: [ Tag: 7 ]
comunicação deve ser 20298 SCB: Quantidade de dados a serem manipulados [ 7 ]
K0077: [ Tag: 20028 ]
SCB: Identificador inicial da base de dados L no dispositi
K0003: [ Tag: F-COMU ]
Identificador da função de comunicação remota [ 235 ]

0054
==> Exemplo: Escrever um conjunto de variáveis L do controlador HI mestre
em variaveis do tipo L do dispositivo HI remoto.
==> Parametros de Entrada do bloco SCB:
.M50 = Id. da porta serial mestre (ver identificador no inicio deste programa exemplo)
.M51 = Id. do dispositivo remoto a ser acessado, por exemplo, endereço 1
.M52 = Codigo da funcao de comunicacao a ser executada, no caso, para
escrita de variaveis do tipo L no dispositivo remoto deve
ser 131 decimal ou 83 em hexadecimal.
.M53 = Id. inicial da variavel L da base local do controlador HI
onde serao lidos os valores L a serem enviados, no caso,
a partir de L40, entao deve-se especificar o valor 40.
.M54 = Quantidade de dados L a serem escritos, no caso, 7 variaveis L.
.M55 = Id. inicial da variavel L na base remota do dispositivo HI
remoto a ser acessado multiplicado por 2 e somado 20000.
No caso, L14, entao deve-se especificar o valor 20028.
==> Parametros de Saida do bloco SCB:
.M56 = Sem parametros de saida, parametro dummy.
==> Codigo de Retorno do bloco SCB:
.M57 = Codigo de retorno da execução da função de comunicação, onde :
. igual a Zero : Função executada com sucesso
. diferente de Zero : Codigo de erro da execução da função

- - Exemplo L4 - - < Ative R12 p/ executar o exemplo > - - -


. Escrever 6 variaveis do tipo D : D20..D25 do controlador HI
local, para as variaveis D75..D86 do dispositivo HI remoto escravo.
No caso, 6 variaveis D sao mapeadas em 12 variaveis do tipo
holding register no dispositivo remoto.

+----------------+ +----------------+
| Controlador HI | Escreve 7 L | Dispositivo |
| Local Mestre | ==============> | Escravo Remoto |
+----------------+ ( MODBUS ) +----------------+
(L40..L46) (L14..L20)
[7 variaveis L] [14 variaveis holding register]

R0017 MOV MOV MOV MOV MOV MOV SCB R0017


COM2 ADD 1 WR REG340 0056 7 20028 F-COMU

Copyright 2001, 2015 by HI Tecnologia impresso em 02/12/2019 as 00:12:26 Página 13 de 13

Você também pode gostar