» »

HIQ(cybro) krmilnik in sprememba spremenjlivk

HIQ(cybro) krmilnik in sprememba spremenjlivk

Davidoff ::

Kot del "pametne" instalacije imam doma robotinin HIQ Home sistem. Vse sem lepo povezal, zadeva lepo deluje vendar ima težavo, da mi ne uspe spremeniti časa za spuščanje in dvigovanje žaluzij, ki je po defaultu 30s. Če se na krmilnik povežem z Cybro OPC serverjem se tam lepo vidijo podatki(slika), ki jih hočem spremenit vendar ko sprembo ustvarim, se po osvežitvi postavijo na začetne vrednosti. Kot clienta sem uporabil MatrikonOPC, kjer spremebe naredim vendar se kot rečeno ne shranijo. Prosim kakšnega experta, da mi pove pove kaj delam narobe oz. če je boljše zadeve lotiti oz. lažje zadeve spremeniti preko CyPro aplikacije.
 CybroOPC

CybroOPC

Pivo Laško vsak dan eno flaško!
  • spremenilo: Davidoff ()

Apple ::

Ali pošlješ dopolnjen program nazaj na PLC?

Jaz z drugimi klienti nisem isprobaval - vse sem naredil z njihovim klientom Cypro.
LP, Apple

Zgodovina sprememb…

  • spremenilo: Apple ()

Davidoff ::

Ne s Cypro še nisem poskušal. Poskusil sem z zgoraj omenjenim postopkom vendar kot rečeno brez uspeha. Tako, da tiste žaluzije, ki so na večjih oknah in vratih stojijo zaenkrat na 30s. :)

Pri uporabi Cypro klienta - a je treba cel program potegnit iz PLC-ja ga urediti in poslati nazaj?

Koda, ki jo potegnem iz PLC-ja..

// ****************************************************************************
// parameters initialization
// ****************************************************************************

//if first_scan then
// blinds
//    blinds_time_up[0] :=    350; // *0.1s
//    blinds_time_dn[0] :=    320; // *0.1s
//    blinds_time_pause[0] :=  10; // *0.1s
//    blinds_overshoot[0] :=   10; // %
//
//    for i := 0  to 9 do
//      blinds_time_pause[i] :=  850; //ms
//      blinds_overshoot[i] :=   1; // %
//    end_for;
//end_if;

// ****************************************************************************
// parameters initialization
// ****************************************************************************

for i:=0 to 24 do
  if blinds_time_up[i]<=0 then blinds_time_up[i]:=300; end_if;
  if blinds_time_dn[i]<=0 then blinds_time_dn[i]:=300; end_if;
  if blinds_time_up[i]>3000 then blinds_time_up[i]:=3000; end_if;
  if blinds_time_dn[i]>3000 then blinds_time_dn[i]:=3000; end_if;
end_for;

//send blinds time up/down/stop position to BC modules
if fn(clock_1s) then

  if !bc00_general_error and !virtual_bc[0] then
    if blinds_time_up[0]!=bc00_blinds_time_up_00 then
      bc00_blinds_time_data:=blinds_time_up[0];
      bc00_blinds_time_index:=0;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_up[1]!=bc00_blinds_time_up_01 then
      bc00_blinds_time_data:=blinds_time_up[1];
      bc00_blinds_time_index:=1;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_up[2]!=bc00_blinds_time_up_02 then
      bc00_blinds_time_data:=blinds_time_up[2];
      bc00_blinds_time_index:=2;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_up[3]!=bc00_blinds_time_up_03 then
      bc00_blinds_time_data:=blinds_time_up[3];
      bc00_blinds_time_index:=3;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_up[4]!=bc00_blinds_time_up_04 then
      bc00_blinds_time_data:=blinds_time_up[4];
      bc00_blinds_time_index:=4;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_dn[0]!=bc00_blinds_time_dn_00 then
      bc00_blinds_time_data:=blinds_time_dn[0];
      bc00_blinds_time_index:=5;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_dn[1]!=bc00_blinds_time_dn_01 then
      bc00_blinds_time_data:=blinds_time_dn[1];
      bc00_blinds_time_index:=6;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_dn[2]!=bc00_blinds_time_dn_02 then
      bc00_blinds_time_data:=blinds_time_dn[2];
      bc00_blinds_time_index:=7;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_dn[3]!=bc00_blinds_time_dn_03 then
      bc00_blinds_time_data:=blinds_time_dn[3];
      bc00_blinds_time_index:=8;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_time_dn[4]!=bc00_blinds_time_dn_04 then
      bc00_blinds_time_data:=blinds_time_dn[4];
      bc00_blinds_time_index:=9;
      bc00_blinds_time_req:=1;
    end_if;
    if blinds_stop[0]!=bc00_blinds_stop_00 then
      bc00_blinds_stop_data:=blinds_stop[0];
      bc00_blinds_stop_index:=0;
      bc00_blinds_stop_req:=1;
    end_if;
    if blinds_stop[1]!=bc00_blinds_stop_01 then
      bc00_blinds_stop_data:=blinds_stop[1];
      bc00_blinds_stop_index:=1;
      bc00_blinds_stop_req:=1;
    end_if;
    if blinds_stop[2]!=bc00_blinds_stop_02 then
      bc00_blinds_stop_data:=blinds_stop[2];
      bc00_blinds_stop_index:=2;
      bc00_blinds_stop_req:=1;
    end_if;
    if blinds_stop[3]!=bc00_blinds_stop_03 then
      bc00_blinds_stop_data:=blinds_stop[3];
      bc00_blinds_stop_index:=3;
      bc00_blinds_stop_req:=1;
    end_if;
    if blinds_stop[4]!=bc00_blinds_stop_04 then
      bc00_blinds_stop_data:=blinds_stop[4];
      bc00_blinds_stop_index:=4;
      bc00_blinds_stop_req:=1;
    end_if;
  end_if;


if virtual_bc[0] then
  bc00_general_error:=0;

  blinds_position[0] := bc00_blinds_position_00;
  blinds_setpoint[0] := bc00_blinds_setpoint_00;
  blinds_position[1] := bc00_blinds_position_01;
  blinds_setpoint[1] := bc00_blinds_setpoint_01;
  blinds_position[2] := bc00_blinds_position_02;
  blinds_setpoint[2] := bc00_blinds_setpoint_02;
  blinds_position[3] := bc00_blinds_position_03;
  blinds_setpoint[3] := bc00_blinds_setpoint_03;
  blinds_position[4] := bc00_blinds_position_04;
  blinds_setpoint[4] := bc00_blinds_setpoint_04;

  for i := 0 to 4 do
    f_blinds_algo(i);
  end_for;

  bc00_blinds_position_00 := blinds_position[0];
  bc00_blinds_setpoint_00 := blinds_setpoint[0];
  bc00_qxs00_dn := blinds_dn[0];
  bc00_qxs00_up := blinds_up[0];
  bc00_blinds_position_01 := blinds_position[1];
  bc00_blinds_setpoint_01 := blinds_setpoint[1];
  bc00_qxs01_dn := blinds_dn[1];
  bc00_qxs01_up := blinds_up[1];
  bc00_blinds_position_02 := blinds_position[2];
  bc00_blinds_setpoint_02 := blinds_setpoint[2];
  bc00_qxs02_dn := blinds_dn[2];
  bc00_qxs02_up := blinds_up[2];
  bc00_blinds_position_03 := blinds_position[3];
  bc00_blinds_setpoint_03 := blinds_setpoint[3];
  bc00_qxs03_dn := blinds_dn[3];
  bc00_qxs03_up := blinds_up[3];
  bc00_blinds_position_04 := blinds_position[4];
  bc00_blinds_setpoint_04 := blinds_setpoint[4];
  bc00_qxs04_dn := blinds_dn[4];
  bc00_qxs04_up := blinds_up[4];

end_if;
if fn(virtual_bc[0]) then
  bc00_general_error:=1;
end_if;

Pivo Laško vsak dan eno flaško!

Zgodovina sprememb…

  • spremenilo: Davidoff ()

Apple ::

Prek Cyprota potegneš cel program dol, nato ga editiraš in pošlješ nazaj ter ga štartaš.
LP, Apple

MajorM ::

Preko OPC si ti spreminjal časove variablam, ki se ponastavijo ob vsakem resetu PLCja.

Če želiš spremeniti potem moraš modificirati program, ki si ga potegni iz krmilnika in ga nato nazaj naložiti na krmilnik.

Tele vrstice so aktualne zate:

//if first_scan then
// blinds
// blinds_time_up[0] := 350; // *0.1s
// blinds_time_dn[0] := 320; // *0.1s
// blinds_time_pause[0] := 10; // *0.1s
// blinds_overshoot[0] := 10; // %
//
// for i := 0 to 9 do
// blinds_time_pause[i] := 850; //ms
// blinds_overshoot[i] := 1; // %
// end_for;
//end_if;

Davidoff ::

Sem uredil. Hvala obema za pomoč.
Pivo Laško vsak dan eno flaško!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

WIN XP Theme

Oddelek: Pomoč in nasveti
51283 (1248) JOKER
»

Xp Theme

Oddelek: Operacijski sistemi
72327 (1463) veteran
»

Styles XP

Oddelek: Novice / Ostala programska oprema
262503 (2503) andrej
»

Novi Skini @ WinXP

Oddelek: Programska oprema
121244 (1101) andrej
»

prozorno ozadje teksta na namizju

Oddelek: Operacijski sistemi
151615 (1368) MRB0rYS

Več podobnih tem