|
Previous Top Next |
| · | No início, o programa deve apresentar, após a cláusula obrigatória clp, um nome ou denominação, o qual poderá descrever, de modo sintético, mas significativo, do que se trata o controle. E o fim do programa-fonte é sinalizado com a cláusula fim.
|
|
|
| · | Com a cláusula var torna-se possível (mas não obrigatório) a associação de nomes significativos a variáveis do programa, os quais podem ser referenciados posteriormente, no corpo da lógica do programa, tornando mais clara sua compreensão.
|
|
|
| · | A cláusula rede segmenta o programa em partes, onde cada parte inicializa a utilização da pilha (stack), tornando sua gerência mais racional, pois se garante que a mesma não crescerá ilimitadamente durante o funcionamento do programa. Além disso, quando acrescidos comentários esclarecedores da função de cada segmento, o programa de controle fica mais bem documentarizado, facilitando sua compreensão e manutenção.
|
|
|
| · | A sintaxe da LCE é similar à das linguagens de programação de uso geral, como C, C++, Pascal, Basic, mas é infinitamente menor e mais simples que estas, aproximando-se de comandos imperativos em linguagem natural (em português, inglês, ou bilíngüe, indiferentemente) e do Texto Estruturado (Structured Text - ST) o que minimiza em muito a curva de aprendizagem da LCE, mesmo para os leigos em programação, pois ela oculta do usuário a complexidade inerente às linguagens de controle baseadas em listas de instruções.
|
|
|
| · | Os modos alternativos de programação de PLCs, o desenho direto do diagrama ladder ou do diagrama de blocos de função, são apropriados, em programas de menor porte, para engenheiros e técnicos eletricistas ou eletrônicos, respectivamente, os quais detêm os conhecimentos especializados requeridos.
|
|
|
| · | Ressalte-se que em programas de maior porte tal técnica, mesmo para os especialistas da área, sofre no aspecto da documentarização do controle implementado, que constitui um extenso trabalho suplementar a ser feito, decorrente da ausência de significado e semântica textual do programa obtido, características naturalmente inerentes às linguagens de alto nível, onde o próprio texto do programa escrito compõe sua melhor documentarização.
|
|
|
| · | Para fins da visualização da simulação, a partir da Lista de Instruções, é gerado automaticamente o diagrama ladder correspondente, o qual funcionará como se percorrido por ciclos de varredura (scan cycles) reais, reiteradamente lendo os pontos de entrada virtuais e atualizando as variáveis internas correspondentes (simulação da memória-imagem do processo de E/S (I/O)), processando as instruções do início ao fim do programa de controle, ou de acordo com a lógica de desvios utilizada, atendendo, se habilitadas, as ocorrências de eventos de interrupções virtuais, e, ao final, colocando os resultados nos pontos de saída virtuais. Obs.: a forma de atualização das entradas e atuação das saídas pode ser alterada pelo item de menu I/O.
|
|
|
| · | Tal ciclo é repetido indefinidamente, até que o Simulador seja posto no Modo Stop.
|
| quando (cond) temporiza idVar id tempo; mais_coman |
|
|
|
| quando_não (cond) temporiza idVar id tempo; mais_coman |
|
|
|
| quando (cond) temporiza_acumula idVar id tempo; mais_coman |
|
|
|
| quando_não (cond) temporiza_acumula idVar id tempo; mais_coman |
|
|
|
| conta (cond) reset_quando (cond) em idVar referencia id;
|
| mais_coman |
|
|
|
| conta_decrescente (cond) quando (cond) faz idVar receber id;
|
| mais_coman |
|
| conta_crescente (cond) conta_decrescente (cond)
|
| reset_quando (cond) em idVar referencia id; mais_coman |
|
|
|
| label id: mais_coman |
|
|
|
| seqüência idVar circuito fim_cto_seq rede id se (cond) { mais_ação
|
| transfere_seqüência id; } else_seq mais_transfere rede id fim_seq; |
|
|
|
| IL comando_il carriage_return new_line mais_coman |
|
|
|
| |
|
| F | -> tipo_ação idVar | id_cmp tipop Rel id | não tipo_ação idVar | (cond) | sem_erro | overflow | pulso_desliga (cond) | pulso_liga (cond) | nega (cond)
|
| desliga tipo_ação idVar; mais_ação |
|
| aciona tipo_ação idVar; mais_ação |
|
| se (cond) { listacão } mais_ação |
|
| vai_para id; |
|
| para idVar de id a id comandos fim_para |
|
| idVar tipopop:= expressão; mais_ação |
|
| permuta_bytes de idVar; mais_ação |
|
| incrementa tipop idVar; mais_ação |
|
| decrementa tipop idVar; mais_ação |
|
| desloca para direção tipop idVar id posições; mais_ação |
|
| rotaciona para direção tipop idVar id posições; mais_ação |
|
| encode id em idVar; mais_ação |
|
| decode idVar de id; mais_ação |
|
| display7seg id em idVar; mais_ação |
|
| pid id, SP = id, Kc = id, Ti = id, Td = id,
|
| MX = id, PV = id, Mn = id; |
|
| id_sbr (id1, id2); mais_ação |
|
| converte tipop id para tipop idVar; mais_ação |
|
| BCD_para_inteiro em idVar; mais_ação |
|
| inteiro_para_BCD em idVar; mais_ação |
|
| extrai_raiz_quadrada de id em idVar; mais_ação |
|
| extrai_seno de id em idVar; mais_ação |
|
| extrai_cosseno de id em idVar; mais_ação |
|
| extrai_tangente de id em idVar; mais_ação |
|
| extrai_logaritmo_natural de id em idVar; mais_ação |
|
| randomize id em idVar; mais_ação |
|
| arredonda id em idVar; mais_ação |
|
| trunca id em idVar; mais_ação |
|
| inverte tipop idVar; mais_ação |
|
| retorna; |
|
| stop; |
|
| finaliza_scan; |
|
| habilita_interrupções; mais_ação |
|
| desabilita_interrupções; mais_ação |
|
| vincula id à interrupção evento; mais_ação |
|
| desvincula evento; mais_ação |
|
| recebe_byte em id vindo_do port; mais_ação |
|
| transmite_byte id no port; mais_ação
|
| mais_ação | -> listação | ou (cond_OuSe) { listacão } mais_ação_OuSe | e
|