Aviso de codificação ANSI
8.4 Processo de Desenvolvimento SOP
8.4.2 Input Source File
8.4.2 Input Source File
O arquivo de origem de entrada é a versão do texto ASCII do programa de sistema que é editado pelo usuário. A edição pode ser executada usando qualquer editor de texto ASCII padrão em um PC. O arquivo pode conter as expressões lógicas e os comentários explicativos para auxiliar na documentação do conteúdo e do objetivo das expressões lógicas. Com exceção de atribuições de lógica verdadeira e falsa simples, a sequência das expressões no arquivo de origem é a ordem em que as expressões serão executadas pelo software de runtime do drive. As expressões verdadeiras e falsas são colocadas primeiro no arquivo hex no momento da compilação e são executadas somente uma vez após a
inicialização do programa do sistema. Todas as outras expressões são executadas de cima para baixo de forma contínua. Os resultados da avaliação de uma expressão lógica são imediatamente disponibilizados como entradas para as expressões que seguem.
O formato para uma expressão de origem do programa de sistema é o seguinte:
output_symbol = {unary_operator} input_symbol { [ binary_operator {unary_operator}
input_symbol ] ... };
onde:
output_symbol representa um símbolo de saída definido no arquivo
= the assignment operator (only one per source statement)
input_symbol representa um símbolo de entrada definido no arquivo unary_operator Boolean NOT operator (/ character)
binary_operator Boolean operators OR and AND (+ and *, respectively) { } representa sintaxe
opcional [ ] representa sintaxe necessária
... the previous operation may be repeated
; statement terminator
A expressão pode expandir-se em múltiplas linhas e conter os espaços necessários para ser legível. O output_symbol é um campo necessário e pode ser qualquer símbolo que fosse válido como uma variável de saída. O output_symbol é seguido por um ou mais espaços opcionais e pelo operador de atribuição necessário “=”. A expressão de origem pode conter somente um único operador de atribuição.
Nota
As expressões do programa podem expandir-se em múltiplas linhas quando são quebradas com um operador conveniente. O comprimento de linha única de 132 caracteres não deve ser excedido.
O lado de entrada da equação deve ser igual a uma forma booleana simples (verdadeira ou falsa) após a avaliação. Ele é formado por um símbolo de entrada simples (possivelmente negado com um operador unário NÃO) ou uma combinação de símbolos de entrada em que os operadores binários operam. Símbolos entradas e os operadores binários são avaliados da esquerda para a direita pelo software de runtime.
A precedência de operações é resumida na próxima seção.
Manual de funcionamento, NXG ToolSuite 02/2021, A5E03086439H AJ 134 SOP Utilities
Nota
No caso das atribuições da lógica em que o estado de origem é um simples
“verdadeiro” ou “falso”, a atribuição é feita somente uma vez ao iniciar o software de runtime.
O fluxo de execução do software de runtime é o seguinte:
1. As avaliações do comparador são executadas e os sinalizadores resultantes do sistema são atualizados.
2. Os sinalizadores de entrada são varridos e seus estados atuais são registrados.
3. As equações lógicas são executadas com base nos estados de entrada registrados.
4. Os resultados da expressão ou expressões lógicas são gerados.
Uma amostra do arquivo de origem está ilustrada no final deste capítulo. Embora esta amostra do arquivo de origem possa parecer ser muito complexa, ela contém somente quatro tipos básicos de expressões:
• Expressões lógicas que podem continuar com linhas adicionais
• Linhas de comentário para explicação da operação e do objetivo do código ou para documentar as atribuições da E/S
• As etiquetas de texto para falhas designadas pelo usuário
• Atribuições que substituem uma etiqueta definida pelo usuário para uma variável interna para fácil compreensão
Os pontos-e-vírgulas têm dupla finalidade no arquivo de origem. Todas as expressões lógicas devem terminar com um ponto-e-vírgula. Além disso, os comentários são qualquer texto que segue o ponto-e-vírgula em qualquer posição em uma linha.
Todas as linhas que começam com texto em vez de ponto-e-vírgula são interpretadas pelo programa compilador como linhas de expressão lógica. As linhas de origem do programa podem continuar com outras linhas e são finalmente concluídas com um ponto-e-vírgula. Esta técnica pode ser usada para tornar a lógica mais fácil de ler.
Assim, os comentários não podem ser adicionados dentro do escopo de uma única expressão de programa com várias linhas porque os ponto-e-vírgulas serão interpretados como o fim da expressão lógica e a próxima linha sem um ponto-e-vírgula, como a próxima expressão lógica.
Os operadores lógicos separam as variáveis usadas dentro das expressões lógicas.
Após todas as variáveis, deve haver um operador lógico na expressão lógica. Os operadores lógicos suportados pelo SOP são AND (*), OR (+), ASSIGNMENT (=), término da expressão (;) e NOT (/).
As linhas de comentário fornecem informações extras ao leitor, mas não informam nada para o compilador. É apenas uma ferramenta para melhorar a compreensão da lógica pretendida das expressões lógicas. Assim, os comentários não devem ser simplesmente adicionados, mas devem estar estruturados para fornecer uma visão geral do que a lógica está tentando realizar no sistema. Esta informação é
fundamental para a manutenção do SOP como referência futura sobre a intenção da lógica, não apenas para o criador, mas também para todos que devem manter ou alterar o código no futuro. É uma ferramenta para transportar informações que não são óbvias nas próprias expressões lógicas.
Manual de funcionamento, NXG ToolSuite 02/2021, A5E03086439H AJ 135 SOP Utilities
Os nomes substitutos também servem para esclarecer a intenção das expressões lógicas.
Quando um sinalizador de sistema genérico, como um temporizador, contador, designação de E/S ou sinalizador temporário for usado para um propósito específico, considere o uso do operador substituto para definir um rótulo que melhor atenda à sua funcionalidade. Por exemplo, se uma saída for usada para ligar uma bomba ou um ventilador, considere renomear a saída como “Pump_on” (Bomba_ligada) ou “Fan_on” (Ventilador_ligado) no lugar do “ExternalDigitalOutputxxx_O” (SaídaDigitalExternaxxx_O) genérico.
Notas
• Todas as linhas de comentário do código de origem são ignoradas pelo compilador programa do sistema. Somente as expressões do programa (com quaisquer sufixos de comentários opcionais ocultos) são compiladas no programa do sistema binário (hex formatado) que é descarregado para o drive. Por esta razão, o processo de reversão que compila o programa do sistema gera um código fonte sem comentários. Para mais informações sobre o processo de compilação reversa, consulte a Tabela 8-1 e a Tabela 8-7.
• O texto de comentário pode ser adicionado dentro do contexto de uma expressão lógica com várias linhas, mas deve usar o ponto-e-vírgula que termina a expressão lógica. As expressões lógicas podem estender-se a múltiplas linhas para facilitar a leitura, mas devem ser terminadas por um ponto-e-vírgula.
• As expressões lógicas não devem exceder 132 caracteres de comprimento. O compilador trunca todas as linhas simples que ultrapassem o comprimento e ignora todas as demais informações na linha. Esta limitação de comprimento é para uma linha simples e a contagem é reiniciada quando iniciar uma nova linha. Portanto, continuar com as expressões lógicas longas por várias linhas é fundamental para a compilação correta, bem como para melhorar a capacidade de leitura.
• Geralmente, as expressões lógicas são divididas no operador OR (+) na notação sum-of-products.
• Todas as expressões devem estar na forma de notação de soma-dos-produtos.
Manual de funcionamento, NXG ToolSuite 02/2021, A5E03086439H AJ 136 SOP Utilities
8.4.2.1
Identificação de tipo de sistema
Como o compilador e o compilador reverso suportam diversos produtos finais, o compilador precisa saber qual é o sistema de destino para que possa gerar o código adequado.
Para identificar o tipo de sistema, inclua o comando do identificador do tipo do sistema como a primeira linha no arquivo SOP. A sintaxe deste comando é mostrada abaixo:
#system_type
A expressão deve estar na primeira linha, um caractere sustenido (#) deve aparecer na coluna 1 e a linha do programa deve terminar com um ponto-e-vírgula. O formato adequado deste comando é mostrado abaixo para cada sistema operacional:
• Para sistemas NXGpro+: #NXGPROPLUS
• Para sistemas NXGpro: #NXGPRO;
• Para sistemas NXG (podem também ser usados nos sistemas NXGpro, mas nem todos os recursos do NXGpro estarão disponíveis): #NEXTGEN;
Nota
Um comentário pode seguir o ponto-e-vírgula com o comando de identificação do tipo de sistema.
O compilador também reconhece outros tipos de sistema.
A tabela 8-2 mostra a interface do seletor de tipo de produto suspenso. Alternativamente, se você tiver um arquivo SOP que não inclua o identificador #system_type; , o seletor suspenso tipo de produto é ativado e deve ser feita uma seleção antes que um arquivo de diretório possa ser selecionado ou antes que a compilação seja ativada (observe que o botão Compile (Compilar) está desabilitado até que a seleção seja feita).
Manual de funcionamento, NXG ToolSuite 02/2021, A5E03086439H AJ 137 SOP Utilities
Tabela 8-2: Tipos de produtos reconhecidos pelo compilador do sistema
Tipo de produto alvo Identification Command SINAMICS PERFECT HARMONY GH180 #HARMONY;
454 GT #ID_454GT;
ID-CSI #ID_CSI;
DC HARMONY #HARMONY_DC;
ID-2010 #ID_2010;
NXG Control #NEXTGEN
Silcovert H #SILCOVERT_H
High Availability #HIGH_AVAIL
Sistemas NXGpro #NXGPRO
Sistemas NXGpro+ #NXGPROPLUS
Figura 8-4: Guia Compiler (Compilar) do SOP Utilities mostrando o menu suspenso com os tipos de produtos
Manual de funcionamento, NXG ToolSuite 02/2021, A5E03086439H AJ 138 SOP Utilities
Tabela 8-3: Associações ao nome dos arquivos dos diretórios
Tipo de sistema alvo Nome do arquivo de diretórios SINAMICS PERFECT HARMONY GH180 DRCTRY.PWM
454 G T DRCTRY.IGB ID-CSI DRCTRY.CSI DC Harmony (ex.: fonte de iluminação) DRCTRY.HDC
ID-2010 DRCTRY.DC
NXG Control DRCTRY.NXG
Silcovert H DRCTRY.SIH
High Availability DRCTRY.HA
Sistemas NXGpro DRCTRY.PRO
Sistema NXGpro+ DRCTRY.PLUS