PWM
A função deste bloco é controlar um canal PWM disponível no equipamento.
Importante
A utilização deste bloco depende da disponibilidade do canal de PWM no equipamento associado ao programa de aplicação.
Bloco
PWM
+---------------------+
| |
UINT ----|SLOT FAIL|---- BOOL
| |
UINT ----|CHANNEL FAIL_CODE|---- BOOL
| |
BOOL ----|RUN |
| |
REAL ----|FREQ |
| |
REAL ----|DUTY |
| |
+---------------------+
Dica
Para conhecer melhor o recurso e suas funcionalidades acesse o vídeo tutorial: Trabalhando com Bloco de Função PWM.
Parâmetros
Nome |
Parâmetro |
Tipo Dado |
V. Ini. |
Descrição |
SLOT |
Entrada |
UINT |
1 |
Nro do slot associado ao módulo que possui o canal do PWM |
CHANNEL |
Entrada |
UINT |
0 |
Nro do canal pwm no módulo associado |
RUN |
Entrada |
BOOL |
TRUE |
Habilita o PWM se TRUE. Mantem o mesmo inativo se FALSE. |
FREQ |
Entrada |
REAL |
0 |
Valor da frequencia em HZ com resolução máxima de 0,1 Hz |
DUTY |
Entrada |
REAL |
50.0 |
Valor do duty cycle em % com resolução máxima de 0,1 % |
FAIL |
Saída |
BOOL |
FALSE |
Quando ativo indica bloco em falha |
FAIL_CODE |
Saída |
INT |
0 |
Código de falha associado (Se 0 indica bloco operacional) |
SLOT
Número do slot associado ao módulo que possui o canal do PWM. O primeiro módulo de I/O do controlador esta alocado no slot 1, o segundo no slot 2 e assim sucessivamente. A quantidade de slots disponíveis é função do modelo do controlador utilizado. Verifique no manual do equipamento para mais informações.
CHANNEL
Número do canal PWM associado ao módulo. O primeiro canal PWM possui o nro Zero, o segundo o nro 1 e assim sucessivamente. A quantidade de canais PWM em um módulo de I/O é função do modelo do módulo de I/O utilizado. Verifique no manual do módulo de I/O do controlador para mais informações.
RUN
Controla a operação do PWM. Habilita o PWM se TRUE e mantem o mesmo inativo se FALSE. Quando inativo a saída associada se manterá desligada (nivel zero).
Nota
Se o valor do parâmetro REQ ou o valor do parâmetro DUTY forém ZERO o PWM sera mantido inativo independente do estado da entrada RUN
FREQ
Especifica a frequência de operação em Hz do PWM. Este valor pode ser especificado na faixa de 0.0 a 3200.0 Hz com resolução de 0.1 Hz. Valores menores que 0.0 são limitados em 0.0 e, valores maiores que 3200.0 são limitados em 3200.0. Valores especificados entre a resolução de 0.1Hz são truncados em 0.1 Hz por exemplo, se especificado o valor 5.43Hz será utilizado o valor 5.4Hz.
Nota
Se for especificado qualquer valor menor que 0.1 Hz para frequência de operação o bloco PWM irá considerar o valor de frequencia igual a zero mantendo a saída inativa.
DUTY
Especifica a ciclo de trabalho (DUTY CYCLE) do PWM em porcentagem. Este valor pode ser especificado na faixa de 0.0 a 100.0 Hz com resolução de 0.1 Hz. Valores menores que 0.0 são limitados em 0.0 e, valores maiores que 100.0 são limitados em 100.0. Valores especificados entre a resolução de 0.1Hz são truncados em 0.1 Hz por exemplo, se especificado o valor 20.57% será utilizado o valor 20.5%.
Nota
Se for especificado qualquer valor menor que 0.1% para ciclo de trabalho o PWM se mantém inativo com a saída em zero. Se for especificado o valor 100% para o ciclo de trabalho o PWM mantém a saida constantemente ativa, portanto com frequencia igual a zero.
FAIL
Quando ativo indica que o bloco detectou alguma falha operacional ou de parâmetros. Neste caso, o código de fallha estará disponível na saída FAIL_CODE
FAIL_CODE
Se igual a zero indica que o bloco esta operacional. Caso contrario, o valor apresentado indica o código de falha responsável identificado na operação do bloco. Note que, quando o usuário especificar um valor inválido para os parâmetros FREQ ou DUTY o valor especificado será limitado em um valor válido mantendoo bloco operacional mas, neste caso será retornado um codigo de falha HILS.GL_INV_PAR.
Para mais informações sobre as possíveis falhas, consulte: RET_CODE - Códigos de retorno do firmware G5.
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Valor Inicial |
Opções |
Descrição |
|---|---|---|---|---|
my_slot |
UINT |
1 |
const |
Nro do slot do canal PWM |
my_chan |
UINT |
0 |
const |
Nro do canal PWM a ser obtido |
my_freq |
REAL |
Frequencia de operação do PWM em Hz |
||
my_duty |
REAL |
Ciclo de trabalho (duty cycle) do PWM em % |
||
my_pwm |
HILS.PWM |
Instancia do bloco PWM |
Código ST
(* chama o bloco PWM *)
(* ... *)
(* Note que o bloco possui o parâmetro RUN inicializado com TRUE. Portanto não
é necessário especificar o mesmo na chamada do bloco a menos que seja necessário
controlar a habilitação da saída do PWM *)
my_pwm(SLOT:= my_slot, CHANNEL:= my_chan, FREQ:= my_freq, DUTY:= my_duty);
if (my_pwm.FAIL = TRUE) then
(* trata condição de falha no bloco, o código de falha esta disponível em my_pwm.FAIL_CODE *)
(* ... *)
end_if;
(* ... *)