Pular para o conteúdo principal

WEG CFW500

Biblioteca para controle simplificado da linha CFW500.

Pré-requisitos:

  • O keeper deve ser client da rede Modbus;
  • A palavra de controle e de referência de velocidade devem estar configurados no arquivo de configuração Modbus client;
  • O driver deve estar configurado corretamente para controle via serial (modo local ou remoto);
  • As memórias wMB e wMI devem ser identificadas no arquivo de configuração Modbus client;
  • Carregar o arquivo da biblioteca para a memória do equipamento.

Clique aqui para baixar a biblioteca.


Utilização

Devemos declarar um objeto contendo as memórias utilizadas para controle do driver. Caso tenha mais de um driver na rede Modbus, basta criar um novo objeto, sendo cada objeto referente ao driver.

let inv1 = {wmb_run: 1, wmb_en: 2, wmb_fault: 3, wmi_speed: 1, hz: 60};

Onde:

  • wmb_run: A wMB que está sendo escrita no bit de run do registrador da palavra de controle;
  • wmb_en: A wMB que está sendo escrita no bit de habilita geral do registrador da palavra de controle;
  • wmb_fault: A wMB que está sendo escrita no bit de limpar falha do registrador da palavra de controle;
  • wmi_speed: A wMI que está sendo escrita no registrador de controle de velocidade;
  • hz: Frequência da rede CA (50 ou 60 Hz).

map_cfw500.control

Altera a palavra de controle do driver. O primeiro argumento é o objeto que guarda a referencia de memória dos registros do driver desejado. O segundo argumento é o status do bit de run(1)/stop(0) da palavra de controle do driver.

map_cfw500.control(inv1, run);

map_cfw500.changeSpeed

Altera a palavra de referência de velocidade do driver. O primeiro argumento é o objeto que guarda a referencia de memória dos registros do driver desejado. O segundo argumento é a velocidade desejada em Hz.

map_cfw500.changeSpeed(inv1, 45); //seta inv1 em 45Hz

Exemplo 1 - Estrutura básica

Estrutura básica:

  • Inclua a biblioteca (salve na memória interna do equipamento);
  • Declare o objeto que guarda as informações das memórias de controle do driver;
  • Utilize as funções com as lógicas desejadas.
main.js

version(1);

include("/js/map_cfw500.js");
let inv1 = {wmb_run: 1, wmb_en: 2, wmb_fault: 3, wmi_speed: 1, hz: 60}; //inversor 1

let loop = function() {
map_cfw500.changeSpeed(inv1, 45); //seta velocidade para 45hz
map_cfw500.control(inv1, true); //coloca o inversor no modo run
};

Exemplo 2 - Remoto via MHO Cloud

Estrutura básica:

  • Inclua a biblioteca (salve na memória interna do equipamento);
  • Declare o objeto que guarda as informações das memórias de controle do driver;
  • Salve o arquivo de setpoints na memória interna do equipamento;
  • Utilize a função fjson para manipular o arquivo de setpoints;
  • Utilize as funções com as lógicas desejadas, veja o exemplo de M2M ou controle via atributos para mais detalhes.

Arquivo de setpoints:

/js/setpoints.js
{"inv1_run": false, "inv1_vel": 0}

Arquivo de programa:

/js/main.js

version(1);//16/08/2024

include("/js/map_cfw500.js");
let inv1 = {wmb_run: 1, inv1_run: 2, wmb_fault: 3, wmi_speed: 1};

cloud.setAtt('inv1_vel,inv1_run'); //definicao de mensagens de interesse para sincronismo em reconexoes
let sp = fjson.open(); //objeto de setpoints salvo na memoria flash

//funcao chamada quando chega uma mensagem do MHO Cloud
let sa_callback = function(obj) {
//log("sa_callback => ", obj);
if(haskey(obj, 'inv1_vel')) sp.inv1_vel = obj.inv1_vel;
if(haskey(obj, 'inv1_run')) sp.inv1_run = obj.inv1_run;
fjson.create(sp, true); //salva objeto de setpoints na memoria flash
};

let loop = function() {
map_cfw500.changeSpeed(inv1, sp.inv1_vel);
map_cfw500.control(inv1, sp.inv1_run);
};