Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Referência macro
Macros fornecer a funcionalidade adicional sua aplicação pode precisar. As macros são automatizado sequências de
comandos que são executados em tempo de execução. Macros permitem que você execute tarefas como operações
complexas de escala, manipulação de strings e interações do usuário com seus projetos. Este capítulo descreve a sintaxe,
b. Desfazer refazer
d. Selecionar tudo
2. Abra o editor de macro; você vai ver os números de linha exibidos no lado esquerdo da edição
área.
2
Referência macro
área de edição
3. Botão direito do mouse na área de edição para abrir o menu pop-up, como mostrado abaixo:
3
Referência macro
Os itens com deficiência são de cor cinza, que indica que não é possível usar essa função no estado actual do editor. Por
exemplo, você deve marcar uma área selecionada para ativar a função de cópia, caso contrário ele será desativado.
4. Acima da área de edição localiza a barra de ferramentas. Ele fornece “Desfazer”, “Refazer”, “Cut”, “Copiar”, “Colar”,
“Toggle Bookmark”, “Next Bookmark”, “Favorito Anterior” e “Limpar Todos os Favoritos” botões para uso
imediato.
5. Modificações feitas para o editor irá habilitar a função de desfazer. função Refazer será ativado
após a tomada da ação de desfazer. Para executar a ação de desfazer / refazer, clique direito para selecionar o item ou usar o acelerador
Desfazer
Desfazer
4
Referência macro
refazer
refazer
6. Escolha uma palavra no editor para habilitar a função de corte e cópia. Após corte ou cópia é feita,
5
Referência macro
6
Referência macro
8. Se o código de macro vai muito longo, para facilitar a leitura, os favoritos são fornecidos. a ilustração
uma. Mova o cursor para a posição na área de edição onde inserir um marcador. Certo
clique, selecione “Alternar Bookmark”. Haverá um pequeno quadrado azul que representa um marcador no lado
b. Se já existe um marcador onde o cursor é colocado, selecione “Alternar Bookmark” para fechá-la, caso contrário,
para abri-lo.
c. Botão direito do mouse e selecione “Next Bookmark”, o cursor irá se mover para onde o próximo marcador localiza. A
7
Referência macro
próxima Bookmark
próxima Bookmark
próxima Bookmark
9. editor macro fornece código de macro função de delinear, para facilitar a visualização. Esta função é
esconder códigos macro que pertencem ao mesmo bloco, e exibi-los com um ícone. Lá
será um diagrama de árvore no lado esquerdo da área de edição. Os usuários podem clicar para esconder o bloco ou
8
Referência macro
10. Botão direito do mouse para selecionar “Alternar Todos Destaques” para abrir todos os blocos de código de macro.
9
Referência macro
11. Às vezes o delineamento pode ser incorrecta, uma vez que as palavras-chave são oprimidos. Para
exemplo:
Para resolver este problema , clique direito para selecionar “Update All Destaques” para recuperar delineamento correto.
b. declarações reiterativa:
Eu. a seguir
c. declarações lógicas:
10
Referência macro
Um Macro é composta de declarações. As declarações contêm constantes, variáveis e operações. As demonstrações são
[Demonstrações]
Macro deve ter uma e apenas uma função principal, que é o ponto de início de execução da macro. O formato é:
macro_command Function_Name ()
fim macro_command
As variáveis locais são usadas dentro do principal função macro ou em um bloco de funções definido. Seu valor permanece válida
As variáveis globais são declaradas antes de todos os blocos de função e são válidos para todas as funções na macro. Quando
as variáveis locais e variáveis globais têm a mesma declaração de nome, apenas as variáveis locais são válidos.
O exemplo abaixo é uma macro simples que inclui uma declaração variável e uma função de chamada.
macro_command principal ()
macro_command final
11
Referência macro
18,3 Sintaxe
18.3.1.1Constants
Constantes são valores fixos e podem ser escritos diretamente em declarações. O formato é como abaixo:
A, B // A e B são variáveis
A = B = 1234
0x12 // 1234 e 0x12 são constantes
macro_command final
18.3.1.2 Variáveis
Variáveis são nomes que representam informações. As informações podem ser alteradas conforme a variável é modificada
por declarações.
Existem 8 tipos de variáveis diferentes, 5 para tipos de dados assinados e 3 para tipos de dados não assinados:
12
Referência macro
declarando variáveis
Variáveis devem ser declaradas antes de serem utilizados. Para declarar uma variável, especificar o tipo antes do nome da
variável.
Exemplo:
int um
curto b, interruptor
flutuador unsigned
short pressão c
declarando Arrays
Macros apoiar matrizes unidimensionais (índice de base zero). Para declarar uma matriz de variáveis, especificar
o tipo e o nome da variável seguido pelo número de variáveis na matriz entre colchetes “[]”. Arrays são de 1 a
4096 variáveis de comprimento. (Macros só suportam até 4096 variáveis per macro).
Exemplo:
int um [10]
Exemplo:
char data 100] // tamanho da matriz é 100
13
Referência macro
Exemplo:
int um
flutuador b [3]
a = 10 b [0] = 1
A declaração de matrizes é um caso especial. toda a matriz pode ser inicializado durante declaração
colocando valores separados por vírgulas dentro de chavetas “{}”.
Exemplo:
flutuar dados [4] = {11, 22, 33, 44} // Agora, os dados [0] é de 11, dados [1] é 22 ....
18.3.2 Operadores
Operações são usados para designar como os dados devem ser manipulados. Em cada declaração, o operador da esquerda
14
Referência macro
operadores de deslocamento e bit a bit são usados para manipular bits dentro char, curto, e tipos de variáveis int com ambas
assinadas e sem sinal. A prioridade destes operadores é da esquerda para a direita dentro da instrução.
15
Referência macro
Palavras-chave reservadas
As palavras-chave são reservados para uso Macro. Eles não podem ser usados para nomes variável, matriz ou
função.
+ , -, *, /,%,> =,>, <=, <, <>, ==, e, OR, XOR, não, <<, >>, =, &, |, ^, ~
saída, macro_command, para, para, para baixo, passo, em seguida, retorno, bool, short, int, char, float, nula, se, então, o resto, pausa,
SQRT, Cubert, LOG, LOG10, SIN, COS, TAN, COT, SEC, CSC, ASEN, ACOS, ATAN, BIN2BCD, BCD2BIN,
DEC2ASCII, FLOAT2ASCII, HEX2ASCII, ASCII2DEC, ASCII2FLOAT, ASCII2HEX, FILL, RAND, ATRASO,
SWAPB, SWAPW, LOBYTE, HIBYTE, LOWORD, HIWORD, GETBIT, SETBITON, SETBITOFF, INVBIT,
ADDSUM, XORSUM, CRC, INPORT, OUTPORT, POW, getError, GetData, GetDataEx, SetData, SetDataEx,
SetRTS, GetCTS, Beep, SYNC_TRIG_MACRO, ASYNC_TRIG_MACRO, VESTÍGIO
16
Referência macro
18.4 Declaração
Exemplo:
int A // definir uma variável A como um número inteiro
Exemplo:
int B [10] onde definir uma variável B, tal como uma matriz unidimensional de
tamanho 10
instruções de atribuição usar o operador de atribuição de mover dados a partir da expressão no lado direito do operador
para a variável no lado esquerdo. Uma expressão é a combinação de variáveis, constantes e os operadores para se
obter um valor.
Variável = Expressão
Exemplo
A=2 onde uma variável A é atribuído a dois
declarações lógicas executar ações, dependendo da condição de uma expressão booleana. A sintaxe é como se
segue:
17
Referência macro
Format-Linha
[Afirmações]
outro
[Afirmações]
fim se
Exemplo:
se um == 2, em seguida
b=1
else
b=2
fim se
bloco Format
[Afirmações]
else if < Condição - n> então
[Afirmações]
outro
[Afirmações]
fim se
Exemplo:
se um == 2, em seguida
b = 1 else if
um == 3
b=2
else
b=3
fim se
descrição de sintaxe:
18
Referência macro
então Deve preceder as declarações para executar se a <condição> avaliada como TRUE.
[Afirmações] É opcional em formato de bloco, mas necessária em formato de linha única, sem mais. A
instrução será executada quando o <Condition> é TRUE.
A construção select-caso pode ser utilizado para executar grupo selectivo de acções dependendo do valor de uma dada
variável. As acções no âmbito do caso combinado são executadas até que um comando pausa é lido. A sintaxe é como
se segue.
caso [ valor]
[Afirmações]
quebrar
final Selecione
Exemplo:
Selecione Caso A
Caso 1
b=1
ruptura final
Select
caso [ valor]
[Afirmações]
quebrar Caso
outra pessoa
19
Referência macro
[Afirmações]
pausa
end Select
Exemplo:
Selecione Caso A
Caso 1
b=1
Caso pausa
pessoa
b=0
ruptura final
Select
caso [ value1]
[Afirmações]
caso [ value2]
[Afirmações]
pausa
end Select
Exemplo:
Selecione Caso A
Caso 1
Caso 2
b=2
Caso 3
b=3
ruptura final
Select
descrição de sintaxe:
20
Referência macro
cada caso.
Case else Opcional. Representa o caso padrão. Se nenhum dos casos acima são correspondidos, pelas
afirmações feitas em caso padrão será executado. Quando um caso padrão está ausente, ele irá saltar
directamente para o fim das declarações select-caso, se não há nenhum caso correspondido.
pausa Opcional. As demonstrações no âmbito do caso combinado será executado até que o comando de interrupção
é atingido. Se um comando de pausa está ausente, ele simplesmente continua a executar próxima declaração
declarações reiterativa controlar loops e tarefas repetitivas, dependendo das condições. Existem dois tipos de
declarações reiterativa.
O para-próxima construção é por etapas através de um número fixo de iterações. Uma variável é utilizado como um contador para
controlar o progresso e teste para terminando condições. Utilize este para a contagem de execução fixos. A sintaxe é como se segue:
[Afirmações]
Próximo [ Contador]
ou
[Afirmações]
Próximo [ Contador]
Exemplo:
para a = 0 a 10 etapa 2
b = a um
lado
21
Referência macro
descrição de sintaxe:
[Contador] Requeridos. Esta é a declaração de controle. O resultado da avaliação da variável é utilizado como
um ensaio de comparação.
<EndValue> Requeridos. O ponto de teste. Se o <Contra> for maior que esse valor, o
macro sai do loop.
degrau Opcional. Especifica que uma <StepValue> que não é para ser usado.
[StepValue] Opcional. A etapa de incremento / decréscimo de <contador>. Ele pode ser omitida
[Afirmações] Opcional. Demonstrações para executar quando a avaliação é TRUE. "a seguir"
Próximo Requeridos.
A construção while-wend é para percorrendo um número desconhecido de iterações. Uma variável é utilizada para testar
para terminando condições. Quando a condição for verdadeira, as instruções são executadas repetidamente até que a
[Afirmações]
dirigir-se
Exemplo:
enquanto a <10
a = a + 10
wend
descrição de sintaxe:
22
Referência macro
continuar Requeridos. Esta é a declaração de controle. Quando for TRUE, o loop começa a
execução. Quando for FALSE, o loop termina.
valor de retorno] Demonstrações para executar quando a avaliação é TRUE.
pausa Usado em para a próxima e while-wend. Ele salta imediatamente para o fim da instrução
reiterativa.
continuar Usado em para a próxima e while-wend. Ele termina a iteração atual de um ciclo e começa a
próxima.
Retorna O comando de retorno dentro do bloco principal pode forçar a macro para parar em qualquer lugar. Ele
23
Referência macro
Os blocos de função são úteis para reduzir os códigos repetitivas. Ele deve ser definido antes de usar e suporta qualquer
tipo variável e comunicado. Um bloco de função é chamada, colocando seu nome seguido por parâmetros, entre
parênteses, na função Macro principal. Após o bloco de função é executado, ele retorna o valor para a função principal,
onde ele é usado como uma atribuição ou condição. Um tipo de retorno não é necessária definição de função, o que
significa que um bloco de função nem sempre é necessário para retornar um valor. Os parâmetros também podem estar
ausentes em definição de função enquanto a função não tem nenhuma necessidade de tomar quaisquer parâmetros da
fim sub
Exemplo:
sub int Adicionar (int x, int y)
resultado = x + y
resultado de retorno
macro_command principal ()
final:
sub extremidade
24
Referência macro
macro_command principal ()
macro_command extremidade
[Demonstrações]
fim sub
Exemplo:
int resultado
resultado = x + y sub
extremidade
macro_command principal ()
int a = 10, b = 20
Adicionar (a, b) ou
macro_command final:
sub Adicionar ()
25
Referência macro
macro_command principal ()
Adicionar()
macro_command final
descrição de sintaxe:
tipo Opcional. Este é o tipo de dados do valor que a função retorna. Um bloco de função nem
(parâmetros) Opcional. Os parâmetros têm valores que são passados para a função pelo Macro
principal. Os parâmetros passados devem ter o seu tipo declarado no campo de
parâmetro e atribuído um nome de variável. Por exemplo: int sub MinhaFunção (int x, int
y). x e y seria inteiros passados para a função pelo Macro principal. Esta função é
chamada por uma instrução que é semelhante a este: ret = MyFunction (456, pressão),
onde “pressão” deve ser inteiro de acordo com a definição de função.
Observe que a instrução de chamada pode passar valores ou variáveis codificados para
a função. Após esta função é executada, um valores inteiros é voltar a 'ret'.
declaração de Variáveis que são usadas no bloco de função devem ser declarados em primeiro lugar. Isto é,
variável local além de parâmetros passados. No exemplo acima de x e y são variáveis que a função pode
utilizados. As variáveis globais também estão disponíveis para uso no bloco de função.
[valor de retorno]] Opcional. Usado para retornar um valor para a instrução de chamada. O valor que
pode ser uma constante ou uma variável. Retorno também termina a execução do bloco de
função. Um bloco de função nem sempre é necessário para retornar um valor, mas, quando o tipo
26
Referência macro
EasyBuilder8000 tem algumas funções de compilação-in para recuperar e transferir dados para o PLC, gerenciamento
Nome SQRT
Sintaxe SQRT (fonte, resultado)
flutuador (, resultar
fonte = 9,0
SQRT (fonte, resultado) // resultado é 3,0
macro_command final
Nome Cubert
Sintaxe Cubert (fonte, resultado)
Descrição Calcular a raiz cúbica de fonte em resultado.
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável. Fonte deve ser
flutuador (, resultar
fonte = 27,0
Cubert (fonte, resultado) // resultado é 3,0
macro_command final
27
Referência macro
y, y = 0,5 resultar
macro_command
Nome PECADO
flutuador (, resultar
macro_command final
Nome COS
Sintaxe COS (fonte, resultado)
flutuador (, resultar
28
Referência macro
fonte 60 =
GetData (fonte, "HMI Local", LW, 0, 1) COS (fonte,
resultado) // resultado é 0,5
macro_command final
Nome BRONZEADO
flutuador (, resultar
fonte 60 =
TAN (fonte, resultado) // resultado é 1.732
macro_command final
Nome BERÇO
flutuador (, resultar
fonte 60 =
COT (fonte, resultado) // resultado é 0,5774
macro_command final
29
Referência macro
Nome SEC
Sintaxe SEC (fonte, resultado)
flutuador (, resultar
fonte 60 =
SEC (fonte, resultado) // se é de origem 60, o resultado é 2
macro_command final
Nome CSC
Sintaxe CSC (fonte, resultado)
flutuador (, resultar
fonte 30 =
CSC (fonte, resultado) // resultado é 2
macro_command final
Nome COMO EM
flutuador (, resultar
30
Referência macro
fonte = 0,5
ASIN (fonte, resultado) // resultado é 30
macro_command final
Nome ACOS
Sintaxe ACOS (fonte, resultado)
flutuador (, resultar
fonte = 0,5
ACOS (fonte, resultado) // resultado é 60
macro_command final
Nome UM BRONZEADO
flutuador (, resultar
resultado) // resultado é 60
macro_command final
31
Referência macro
Nome REGISTRO
macro_command final
Nome LOG10
Sintaxe LOG10 (fonte, resultado)
macro_command final
Nome RAND
Sintaxe RAND (resultado)
curta
RAND (resultado) // resultado não é um valor fixo quando executa macro cada
Tempo
macro_command final
32
Referência macro
Nome BIN2BCD
Sintaxe BIN2BCD (fonte, resultado)
fonte = 5678
BIN2BCD (fonte, resultado) // resultado é 0x5678
macro_command final
Nome BCD2BIN
Sintaxe BCD2BIN (fonte, resultado)
Descrição Transforma um valor do tipo BCD (fonte) em um valor do tipo binário (resultado).
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
macro_command final
Nome DEC2ASCII
Sintaxe DEC2ASCII (fonte, resultar [Iniciar], len)
Descrição Transforma um valor decimal (fonte) em ASCII string salvo para uma matriz
(resultado).
33
Referência macro
len representa o comprimento da corda e a unidade de comprimento depende do tipo de resultado., ou seja, se
o tipo de resultado é “char” (o tamanho é byte), o comprimento da cadeia é (byte * len). Se o tipo de resultado é
“curto” (o tamanho é a palavra), o comprimento da cadeia é (word * len), e assim por diante.
O primeiro carácter é posto em resultado [start], o segundo carácter é posto em resultado [start + 1], e
o último carácter é posto em resultado [start + (len -1)]. Fonte e len pode ser uma constante ou uma
variável, mas resultado deve ser uma variável. Iniciar deve ser uma constante.
fonte = 5678
DEC2ASCII (fonte, result1 [0], 4) //
result1 [0] é '5', result1 [1] é '6', result1 [2] é '7', result1 [3] é '8' //
o comprimento da corda (result1) é de 4 bytes (= 1 * 4)
macro_command final
Nome HEX2ASCII
Sintaxe HEX2ASCII (fonte, resultar [Iniciar], len)
len representa o comprimento da corda e a unidade de comprimento depende do tipo de resultado., ou seja, se
o tipo de resultado é “char” (o tamanho é byte), o comprimento da cadeia é (byte * len). Se o tipo de resultado é
“curto” (o tamanho é a palavra), o comprimento da cadeia é (word * len), e assim por diante.
fonte e len pode ser uma constante ou uma variável, mas resultado deve ser uma variável. início deve
34
Referência macro
fonte = 0x5678
HEX2ASCII (fonte, resultar [0], 4) //
resultado [0] é '5', resultado [1] é '6', resultado [2] é '7', resultado [3] é '8'
macro_command final
Nome FLOAT2ASCII
Sintaxe FLOAT2ASCII (fonte, resultar [Iniciar], len)
Descrição Transforma um valor flutuante (fonte) em ASCII string salvo para uma matriz
(resultado).
len representa o comprimento da corda e a unidade de comprimento depende do tipo de resultado., ou seja, se
o tipo de resultado é “char” (o tamanho é byte), o comprimento da cadeia é (byte * len). Se o tipo de resultado é
“curto” (o tamanho é a palavra), o comprimento da cadeia é (word * len), e assim por diante.
Fonte e len pode ser uma constante ou uma variável, mas resultado deve ser uma variável. Iniciar deve
fonte = 56,8
FLOAT2ASCII (fonte, resultar [0], 4) //
resultado [0] é '5', resultado [1] é '6', resultar [2] é '', resultar [3] é '8'
macro_command final
Nome ASCII2DEC
Sintaxe ASCII2DEC (fonte [Iniciar], resultado, len)
Descrição Transforma uma string (fonte) em um valor decimal salvos em uma variável
(resultado).
Fonte e len pode ser uma constante ou uma variável, mas resultado deve ser uma variável. Iniciar deve
principal () [4]
35
Referência macro
resultado curta
macro_command final
Nome ASCII2HEX
Sintaxe ASCII2HEX (fonte [Iniciar], resultado, len)
Descrição Transforma uma string (fonte) em um valor hexadecimal salvos em uma variável
(resultado).
Fonte e len pode ser uma constante ou uma variável, mas resultado deve ser uma variável. Iniciar deve
macro_command final
Nome ASCII2FLOAT
Sintaxe ASCII2FLOAT (fonte [Iniciar], resultado, len)
Descrição Transforma uma string (fonte) em um valor flutuante salvos em uma variável (resultado).
36
Referência macro
Fonte e len pode ser uma constante ou uma variável, mas resultado deve ser uma variável. Iniciar deve
macro_command final
37
Referência macro
Nome PREENCHER
Descrição Define os primeiros elementos de contagem de uma matriz (fonte) de um valor especificado
(Pré-definido).
e fonte inicial deve ser uma variável, e pode ser memorizada uma constante ou variável.
resultado [0] é 0x30, resultar [1] é 0x30,, resultar [2] é 0x30,, resultar [3] é 0x30
predefinidas = 0x31
FILL (resultar [0], alvo, 2) // resultado [0] é 0x31, resultar [1] é 0x31
macro_command final
Nome SWAPB
Sintaxe SWAPB (fonte, resultado)
Descrição Trocas os dados de alta e de baixa byte byte de uma fonte de 16 bits em resultado.
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
fonte (, resultam
macro_command final
Nome SWAPW
Sintaxe SWAPW (fonte, resultado)
38
Referência macro
Descrição Trocas os dados de palavras de alta e baixa de palavras de uma fonte de 32 bits em resultado.
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
(, resultar
macro_command final
Nome LOBYTE
Sintaxe LOBYTE (fonte, resultado)
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
fonte (, resultam
fonte = 0x123
LOBYTE (fonte, resultado) // resultado é 0x23
macro_command final
Nome HIBYTE
Sintaxe HIBYTE (fonte, resultado)
fonte (, resultam
fonte = 0x123
39
Referência macro
macro_command final
Nome LOWORD
Sintaxe LOWORD (fonte, resultado)
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
(, resultar
macro_command final
Nome HIWORD
Sintaxe HIWORD (fonte, resultado)
Fonte pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
(, resultar
macro_command final
40
Referência macro
Nome GETBIT
Sintaxe GETBIT (fonte, resultado, bit_pos)
Descrição Obtém o estado de posição de bit designada de um conjunto de dados (de origem) em resultado.
Fonte e bit_pos pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
Source = 4 = 2
bit_pos
GETBIT (fonte, resultado, bit_pos) // é um resultado
macro_command final
Nome SETBITON
Sintaxe SETBITON (fonte, resultado, bit_pos)
Descrição Altera o estado de posição de bit designada de um conjunto de dados (fonte) para 1, e
Fonte e bit_pos pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
Source = 0 = 2
bit_pos
SETBITON (fonte, resultado, bit_pos) // resultado é 4
macro_command final
41
Referência macro
Nome SETBITOFF
Sintaxe SETBITOFF (fonte, resultado, bit_pos)
Fonte e bit_pos pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
Source = 4 = 2
bit_pos
SETBITOFF (fonte, resultado, bit_pos) // resultado é 0
macro_command final
Nome INVBIT
Sintaxe INVBIT (fonte, resultado, bit_pos)
Descrição Inverte o estado de posição de bit designada de um conjunto de dados (de origem), e colocar
Fonte e bit_pos pode ser uma constante ou uma variável, mas resultado deve ser uma variável.
Source = 6 = 1
bit_pos
INVBIT (fonte, resultado, bit_pos) // resultado = 4
macro_command final
42
Referência macro
18.6.5 Comunicação
Nome DEMORA
tempo == 500
macro_command final
Nome ADDSUM
Sintaxe ADDSUM (fonte [Iniciar], resultado, data_count)
Descrição Adiciona-se os elementos de uma matriz (de origem) a partir de fonte [início] a
fonte [start + data_count - 1] para gerar uma soma de verificação. Coloca no checksum no resultado.
Resultado deve ser uma variável. Data_count é a quantidade de elementos acumulados e pode ser
macro_command final
43
Referência macro
Nome XORSUM
Sintaxe XORSUM (fonte [Iniciar], resultado, data_count)
Descrição Usa um método de exclusão para calcular a soma de verificação da fonte [Iniciar] para
char data [5] = {0x1, 0x2, 0x3, 0x4, 0x5} curto soma de
verificação
macro_command final
Nome CRC
Sintaxe CRC (fonte [Iniciar], resultado, data_count)
Descrição Calcula 16-bit CRC das variáveis de fonte [Iniciar] à fonte [start +
count - 1].
Coloca na CRC de 16 bits no resultado. Resultado deve ser uma variável. Data_count é a quantidade
dos elementos calculados da matriz e pode ser uma constante ou uma variável.
macro_command final
Nome OUTPORT
Sintaxe OUTPORT (fonte [start], device_name, data_count)
Descrição Envia os dados especificados a partir da fonte [start] à fonte [start + contar -1] a
PLC através de uma porta COM ou a Ethernet.
44
Referência macro
Data_count é a quantidade de dados transmitidos e pode ser uma constante ou uma variável.
Exemplo Para usar uma função OUTPORT, um dispositivo de “Protocolo livre” deve ser criado primeiro da seguinte forma:
Abaixo está um exemplo de realização de uma acção de escrita única bobina (SET ON) para um dispositivo
MODBUS.
macro_command principal ()
soma de verificação
45
Referência macro
endereço = 0
comando [5] = 0
macro_command final
Nome INPORT
Sintaxe INPORT (read_data [start], device_name, read_count, return_value)
Descrição Lê dados a partir de uma porta COM ou a Ethernet. Estes dados são armazenados para
read_count é a quantidade necessária de leitura e pode ser uma constante ou uma variável.
Se a função é utilizada com sucesso para obter dados suficientes, return_value é 1, caso contrário é 0.
Exemplo Abaixo está um exemplo de executar uma ação de segurar leitura registros de um dispositivo
MODBUS.
46
Referência macro
endereço = 0
se return_value> 0, em seguida,
read_data [0] = resposta [4] + (resposta [3] << 8) // dados em 4x_1 read_data [1] =
resposta [6] + (resposta [5] << 8) // dados em 4x_2
macro_comm final e
47
Referência macro
ou
[2], read_data_2
Device_name é o nome PLC fechado em aspas duplas ( “) e este nome foi definido na lista de
dispositivos de parâmetros do sistema da seguinte forma (ver FATEK KB Series):
Device_type é o tipo de aparelho e método de codificação (ou binário BCD) dos dados do PLC. Por
exemplo, se é device_type LW_BIN, isso significa que o registo é LW e o método de codificação é binária.
48
Referência macro
Se address_offset usa o formato - “N # AAAAA”, N indica que o número da estação de PLC é N. AAAAA
representa o endereço de offset. Este formato é usado enquanto múltiplos CLPs ou controladores estão
ligados a uma única porta de série. Por exemplo, GetData (read_data_1 [0], “FATEK série KB”, RT, 2 # 5,
1) representa o número da estação do PLC é 2. Se GetData () usa o número da estação padrão definido
na lista de dispositivos como se segue, não é necessário para definir o número da estação em
address_offset.
O número de registros realmente ler a partir depende tanto do tipo da variável read_data eo valor
do número de data_count.
char (8 bits) 1 1
char (8 bits) 2 1
booleano (8 bits) 1 1
booleano (8 bits) 2 1
49
Referência macro
Quando um GetData () é executado utilizando um tipo de dados de 32 bits (int ou flutuador), a função vai
macro_command final
Exemplo macro_command principal () boleano
// obtém 50 palavras de LW0 ~ LW49 às variáveis de d [0] ~ d [49] GetData (d [0]
“HMI Local”, LW, 0, 50)
// obtém 20 palavras (10 valores inteiros) de LW0 ~ LW19 a variáveis de f [0] ~ f [9] // uma vez que
cada valor inteiro ocupa 2 palavras GetData (f [0] “HMI Local”, LW, 0, 10)
50
Referência macro
macro_command final
Nome GetDataEx
Sintaxe GetDataEx (read_data [start], device_name, device_type, address_offset, data_count) ou
51
Referência macro
// obtém 20 palavras (10 valores inteiros) de LW0 ~ LW19 para f [0] ~ f [9] // uma vez que
cada valor inteiro ocupa 2 palavras GetDataEx (f [0] “HMI Local”, LW, 0, 10 )
macro_command final
Nome SetData
Sintaxe SetData (send_data [start], device_name, device_type, address_offset, data_count) ou
+ data_count - 1].
data_count é a quantidade de dados enviados. Em geral, send_data é uma matriz, mas se data_count é 1,
send_data pode ser uma matriz ou uma variável comum. A seguir estão dois métodos para enviar dados de
uma palavra.
macro_command principal ()
device_name é o nome PLC fechado em aspas duplas ( “) e este nome foi definido na lista de
parâmetros do sistema dispositivo. device_type é o tipo de aparelho e método de codificação (ou
binário BCD) dos dados do PLC. Por exemplo, se é device_type LW_BIN, isso significa que o
registo é LW e o método de codificação é binária. Se utilizar o método BIN codificação “_bin”
pode ser ignorado.
52
Referência macro
AAAAA representa o endereço de offset. Este formato é usado enquanto múltiplos CLPs ou
controladores estão ligados a uma única porta de série. Por exemplo, SetData (read_data_1 [0]
número da estação padrão definido na lista de dispositivos, é não é necessário para definir o número
da estação em address_offset.
O número de registros realmente envia para depende tanto do tipo da variável send_data eo
valor do número de data_count.
read_data
char (8 bits) 1 1
char (8 bits) 2 1
booleano (8 bits) 1 1
booleano (8 bits) 2 1
Quando um SetData () é executado utilizando um tipo de dados de 32 bits (int ou flutuador), a função irá enviar
= 2,6
53
Referência macro
SetData (f, "MODBUS", 6x, 2, 1) // irá enviar um valor de ponto flutuante para o
dispositivo
macro_command final
Exemplo macro_command principal () int i
boleano verdadeiro =
e = 5 int f [10]
para i = 0 a 29 b [i] =
verdadeira seguinte i
* 2 seguinte i
para i = 0 a 9 f [i] =
i * 3 seguinte i
// definir os valores das LW6 ~ LW7, note que o tipo de e é int SetData (e, “HMI
Local”, LW, 6, 1)
54
Referência macro
// 10 inteiros iguais a 20 palavras, uma vez que cada valor inteiro ocupa 2 palavras.
macro_command final
Nome SetDataEx
Sintaxe SetDataEx (send_data [start], device_name, device_type, address_offset, data_count) ou
boleano verdadeiro =
e = 5 int f [10]
para i = 0 a 29 b [i] =
verdadeira seguinte i
* 2 seguinte i
para i = 0 a 9 f [i]
=i*3
55
Referência macro
proximo eu
// definir os valores das LW6 ~ LW7, note que o tipo de e é int SetDataEx (e,
“HMI Local”, LW, 6, 1)
// 10 inteiros iguais a 20 palavras, uma vez que cada valor inteiro ocupa 2 palavras.
macro_command final
Nome getError
Sintaxe GetError (ERR)
// se err é igual a 0, é bem sucedida para executar GetDataEx () GetErr (err) // salvar um
56
Referência macro
macro_command final
Nome PURGA
Sintaxe PURGA (com_port)
Descrição com_port refere-se ao número da porta COM, que varia de 1 a 3. Pode
ser uma variável ou uma constante.
Esta função é usada para limpar os buffers de entrada e de saída associados com a porta COM.
PURGA (1)
macro_command final
Nome SetRTS
Sintaxe SetRTS (com_port, fonte)
Descrição Definir o estado RTS para RS232.
com_port refere-se ao número da porta COM 1. Ele pode ser qualquer uma variável ou constante.
Fonte também pode ser uma variável ou uma constante. Este comando levantar sinal RTS enquanto
o valor da fonte é maior do que 0 e inferior sinal RTS enquanto o valor da fonte é igual a 0.
macro_command final
57
Referência macro
Nome GetCTS
Sintaxe GetCTS (com_port, resultado)
com_port refere-se ao número da porta COM 1. Ele pode ser qualquer uma variável ou constante. O
resultado é usado para receber o sinal CTS. Deve ser uma variável. Este comando recebe o sinal
CTS e armazena os dados recebidos na variável resultado. Quando o sinal CTS é puxada alta,
macro_command final
Nome Bip
Sintaxe Bip ()
Descrição Reproduz som de bip.
Este comando desempenha um sinal sonoro com frequência de 800 hertz e duração de 30
milissegundos.
Bip()
macro_command final
58
Referência macro
A macro atual fará uma pausa até o final da execução deste chamado macro.
ON = 1, = 0 OFF
macro_command final
Nome ASYNC_TRIG_MACRO
Sintaxe ASYNC_TRIG_MACRO (macro_id)
Descrição Desencadear a execução de uma macro de forma assíncrona (uso macro_id para
designar essa macro) em uma macro em execução.
ON = 1, = 0 OFF
macro_command final
59
Referência macro
Nome VESTÍGIO
Descrição Use esta função para enviar cadeia especificada ao EasyDiagnoser. Os usuários podem
imprimir o valor atual de variáveis durante o tempo de execução da macro para depuração.
Quando TRACE encontra a primeira especificação do formato (se houver algum), que converte o valor do
formato refere-se ao controlo de formato de cadeia de saída. Uma especificação do formato, o qual consiste
em opcional (em []) e os campos requeridos (em negrito), tem a seguinte forma:
bandeiras ( opcional):
-
+
largura ( opcional):
caracteres impressos.
precisão ( opcional):
Um número inteiro não negativo decimal que especifica a precisão e o número de
tipo:
C ou c : Especifica um caractere de byte único.
ignorados.
60
Referência macro
1,234567
macro_command final
61
Referência macro
Passo 1:
Clique no ícone “Macro Manager” na barra de ferramentas de EasyBuilder 8000 para abrir a caixa de diálogo Gerenciador de
62
Referência macro
Em Macro Manager, todas as macros compilados com sucesso são exibidos em “lista de Macro”, e todas as macros em
desenvolvimento são exibidos em 'Macro em desenvolvimento”. O seguinte é uma descrição dos vários botões.
[Novo]
[Excluir]
[Colar]
Cola o macro na área de transferência na lista, e cria um novo nome para a macro.
Passo 2:
Pressione o botão “Novo” para abrir um editor em branco “WorkSpace”. Cada macro tem um número único definido na caixa
de edição “Macro ID”, e nome da macro deve existir, caso contrário, um erro será exibido ao compilar.
63
Referência macro
Etapa 3:
Projete sua macro. Se for necessário o uso de build-in funções (como SetData () ou Getdata ()), pressione 'Get / botão
para abrir diálogo API e selecione a função e definir parâmetros essenciais Set FN ...”.
64
Referência macro
Passo 4:
Após a conclusão de uma nova macro, pressione 'botão “Compilar para compilar o macro.
65
Referência macro
Se não houver nenhum erro, pressione o botão “Sair” e achar que uma nova macro “macro_test” existe na “lista Macro”.
66
Referência macro
1. Abra o objeto de controle PLC e definir o atributo para “Executar programa de macro”.
2. Selecione a macro pelo nome. Escolha um pouco e selecione uma condição de gatilho para disparar a macro. A
macro continuará a ser re-acionado enquanto a condição for atendida. A fim de garantir que a macro será
executada apenas uma vez, considere trancando a pouco gatilho, e, em seguida, reiniciar a condição de disparo
dentro do macro.
1. Na guia Geral da Bit Set ou diálogo Toggle Switch, selecione a opção “Executar Macro”.
2. Selecione a macro para executar. A macro será executada uma vez quando o botão é ativado.
2. Selecione a macro para executar. A macro será executada uma vez quando o botão é ativado.
67
Referência macro
1. O espaço de armazenamento máximo de variáveis locais em uma macro é 4K bytes. Assim, o tamanho máximo da gama
char a [4096]
boleano b [4096]
[1024] flutuador e
[1024]
4. O tempo de comunicação PLC pode causar a macro para executar mais lento do que o esperado. Além disso, muitas
68
Referência macro
Quando EasyBuilder 8000 não fornece um driver essencial para a comunicação com um dispositivo, os usuários também
podem fazer uso de OUTPORT e INPORT para controlar o dispositivo. Os dados enviados com OUTPORT e INPORT
deve seguir protocolo de comunicação do dispositivo. O exemplo a seguir explica como usar essas duas funções para
Primeiro, crie um novo dispositivo na tabela de dispositivo. O tipo do novo dispositivo dispositivo é definido como “Protocolo Livre” e
A interface do dispositivo (PLC I / F) usa “RS-232” agora. Se ligar um dispositivo Modbus TCP / IP, a interface
deve selecionar 'Ethernet”. Além disso, é necessário definir IP correcto e o número da porta da seguinte forma:
69
Referência macro
Suponha que HMI irá ler os dados de 4x_1 e 4x_2 no dispositivo. Em primeiro lugar, utilizar OUTPORT para enviar uma
Desde “dispositivo RTU MODBUS” é um dispositivo MODBUS RTU, a solicitação de leitura deve seguir protocolo
Modbus RTU. O pedido utiliza”(0x03) Reading Holding Registers” comando para ler os dados. A figura a seguir
exibe o conteúdo do comando. (Os itens do número da estação (byte 0) e os dois últimos bytes (CRC) são
ignorados).
de verificação
FILL (comando [0], 0, 32) // comando inicializar [0] ~ comando [31] para 0
70
Referência macro
Por fim, use OUPORT para enviar esta solicitação de leitura para PLC
Depois de enviar a solicitação, use INPORT para obter a resposta do PLC. Dependendo do protocolo, o conteúdo
da resposta é como se segue (o byte total é de 9): comando [0]: número da estação
(Byte 0)
comando [1]: código de função (BYTE 1)
comando [2]: contagem de bytes (Byte 2)
comando [3]: byte alto da 4x_1 (Byte 3)
comando [4]: byte baixo de 4x_1 (BYTE 4)
comando [5]: byte alto da 4x_2 (Byte 5)
comando [6]: byte alto da 4x_2 (Byte 6)
comando [7]: baixo byte de 16 bits CRC (BYTE 7)
comando [8]: alta byte de 16 bits CRC (Byte 8)
Quando a contagem lida real é restaurado para o return_value variável (unidade é byte). Se return_value é 0, isso significa
71
Referência macro
Dependendo do protocolo, a resposta [1] deve ser igual a 0x3, se a resposta for correcta. Depois de obter a
resposta correta, calcular os dados de 4x_1 e 4x_2 e colocar nos dados em LW100 e LW101 da HMI.
soma de verificação
FILL (comando [0], 0, 32) // comando inicializar [0] ~ comando [31] para 0
endereço = 0
72
Referência macro
OUTPORT (comando [0], "Device MODBUS RTU", 8) // enviar pedido INPORT (resposta
[0], "Device MODBUS RTU", 9, return_value) // ler resposta
macro_command final
O exemplo a seguir explica como criar um pedido para definir o status de 0x_1. O pedido utiliza “Write Single Coil
(0x5)” comando.
FILL (comando [0], 0, 32) // comando inicializar [0] ~ comando [31] para 0
73
Referência macro
endereço = 0
macro_command final
74
Referência macro
Quando há erros de compilação, a descrição do erro pode ser referenciado pelo número mensagem de erro do
compilador.
2. Descrição do erro
Por exemplo:
macro_command principal () i
char, 123xyz // este é um nome de variável não suportada
macro_command final
Por exemplo:
macro_command principal () carbonizar
i int g [i]
constante numérica
Por exemplo:
macro_command principal () int
g [10] , g // macro_command final
de erro
75
Referência macro
Por exemplo :
sub int if () // erro
Por exemplo :
macro_command principal) // ausência de "("
fim se
76
Referência macro
próximo [variável]
dirigir-se
Erro na expressão.
77
Referência macro
Por exemplo :
macro_command principal () int a,
b para a = 0 a 2 b = 4 + // xyz
macro_command final
extremidade
Incompatibilidade de tipo de dados de parâmetro. Quando uma função é chamada, o tipo de dados eo número de parâmetros
deve coincidir com a declaração de função, caso contrário ele irá causar um erro de compilação.
de compilação.
78
Referência macro
O parâmetro de GetData (...), SetData (...) deve ser o endereço PLC legal. Se o endereço é ilegal, será
mostrada esta mensagem de erro.
O formato de array é:
Declaração: Array_Name [constante] (constante é o tamanho da matriz) Uso:
Array_Name [inteiro, caracteres ou constante]
(C40) sintaxe execução não deve existir antes de declaração de variável ou definição constante
Por exemplo :
macro_command principal ( )
int a, b
para a = 0 a 2 b = 4
+ h um int, k //
ilegais - definições devem ocorrer antes de quaisquer declarações ou expressões //
um
macro_command final
79
Referência macro
function_name macro_command ()
macro_command extremidade
Por exemplo :
SetData (bits [0], “PLC 1”, LB, 300 # 123, 100) //
ilegal: 300 # 123 significa o número da estação é de 300, mas o máximo é de 255
Por exemplo :
“PLC 1” está conectado com o HMI remoto, para que ele não pode trabalhar.
80
Referência macro
1. “para” declaração e outras expressões (aritmética, deslocamento bit a bit, lógica e comparação)
[10], b [10], i
para i = 0 a 4 passo 1
macro_command final
[10], ii = 5
enquanto i == 5-20% 3
quebrar
final se
81
Referência macro
dirigir-se
macro_command final
g de char
regresso y
End Sub
b, i
a=b=
23
i = diversão (a, b)
macro_command extremidade
4. “if”
[10], j
para j = 0 a 10
k [j] = j j
próxima
se K [0] == 0 então
82
Referência macro
se K [0] == 0 então
se K [0] == 0 então
== 1, então
se K [0] == 0 então
2, em seguida,
macro_command final
=0
b [0] = 13
enquanto b [0]
um [i] = + 20, i * 10
c = 200 fim
ruptura se
i=i+1
83
Referência macro
dirigir-se
macro_command extremidade
=0
b [0] = 13
enquanto b [0]
um [i] = + 20, i * 10
então
i = i + 1 End
If continuar
i=i+1
Se C == 200 então
ruptura se wend
macro_command final
7. matriz
[25], b [25], i
b [0] = 13
84
Referência macro
um [i] = + 20, i * 10
próximo i
macro_command extremidade
85
Referência macro
1. função de rastreio é adicionado à macro, e pode ser usado com EasyDiagnoser, para a visualização do conteúdo actual da
variável utilizada.
Primeiro de tudo, adicione macro_1 no projeto, e em macro_1 adicionar TRACE ( “LW =% d”, a) . “% D” indica para
macro_command a Principal()
baixo uma
a=a+1
fim macro_command
86
Referência macro
Em segundo lugar, adicionar Numeric Display e função objetos Key na janela 10 do projeto. As definições desses objetos
são mostrados abaixo. Função objeto Key é usado para executar macro_1.
87
Referência macro
Ao processar simulação no PC, clique direito e selecione “Run EasyDiagnoser” no menu pop-up.
Depois, EasyDiagnoser será iniciado. [Logger] vitrines se EasyDiagnoser é capaz de se conectar com o
HMI para ser assistido ou não. [Saída] janela exibe a saída da função TRACE. A figura abaixo mostra que
88
Referência macro
Quando EasyDiagnoser não é capaz de se conectar com HMI, [Logger] vitrines de conteúdo como mostrado abaixo:
89
Referência macro
A possível razão de não ser capaz de obter conexão com HMI pode ser falha na execução de simulação no PC. Outra
razão é que o Porto No. usado em projeto de simulação no PC é incorreta (ou ocupado pelo sistema). Por favor, altere
Porto No. como mostrado, compilar projeto, em seguida, fazer a simulação novamente.
comunicação bem-sucedida.
Os três portas sucessivas da porta projecto não. são preservados para comunicação IHM. Tomar a definição acima, como
90
Referência macro
8007 será preservada. Neste caso, ao executar a simulação em PC, certifique-se de que estas portas não estão
Nome VESTÍGIO
Descrição Use esta função para enviar cadeia especificada ao EasyDiagnoser. Os usuários podem
imprimir o valor atual de variáveis durante o tempo de execução da macro para depuração.
Quando TRACE encontra a primeira especificação do formato (se houver algum), que converte o valor do
formato refere-se ao controlo de formato de cadeia de saída. Uma especificação do formato, o qual consiste
em opcional (em []) e os campos requeridos (em negrito), tem a seguinte forma:
bandeiras ( opcional):
-
+
largura ( opcional):
caracteres impressos.
precisão ( opcional):
Um número inteiro não negativo decimal que especifica a precisão e o número de
tipo:
C ou c : Especifica um caractere de byte único.
91
Referência macro
é opcional.
1,234567
macro_command final
3. LB9059 recentemente adicionados - desabilitar a função TRACE MACRO (quando ON) Quando definir ON, a
4. Os usuários podem executar diretamente EasyDiagnoser.exe do Gerente de Projeto. Na Project Manager, HMI atual na linha
serão listados; os usuários podem simplesmente selecionar o HMI para ser assistido.
Por favor, note que o Projeto Porto deve ser o mesmo que Porto No. usado em arquivo de projeto.
92
Referência macro
5. projeto Download to HMI para começar a operar. Quando EasyDiagnoser é incapaz de obter conexão com o HMI para
ser assistido, é possível que o poder HMI não é ON, ou Nº porta está incorreta. Isso pode causar EasyDiagnoser para
se conectar em seguida, desligue com HMI continuamente. Por favor, verifique se a porta No. em ambientes
6. Quando EasyDiagnoser consegue ligar com HMI, simplesmente executar macro_1, janela [saída] irá
93
Referência macro
94