Loading…

方法名称: tvl_manual_calib_method

方法ID: 0x434B

方法标签: Manual Calibration

方法描述:


  • {
  • float qa, qb, qc, qd, qe, mpp; int q, q0, q1, q2, q3, q4, q5, q6, q7, q8; char S[3];
  • int q01, q02, q03, q04, q05, q06, q07, q08, q09, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29, q30, q31, q32, q33, q34, q35, q36, q37, q38, q39, q40, qj, qk, qm; float qa0, qa1, qa2, qa3, qa4, qa5, qa6, qa7, qa8, qa9, qb0, qb1, qb2, qb3, qb4, qb5, qb6, qb7, qb8, qb9, qc0, qc1, qc2, qc3, qc4, qc5, qc6, qc7, qc8, qc9, qd0, qd1, qd2, qd3, qd4, qd5, qd6, qd7, qd8, qd9, qe0, qe1, qe2, qe3, qe4, qe5, qe6, qe7, qe8, qx, qy, qz;
  • int ctrl_mode,
  • i,
  • i1,
  • i2,
  • feedback,
  • pass,
  • s,
  • ns,
  • t,
  • hcivp,
  • pst;
  • float fRoundingFactor,
  • x,
  • ivp;
  • long ids[5];
  • _set_device_status(0xFF,0);
  • _set_xmtr_device_status(0xFF,0);
  • _set_all_resp_code(1);
  • _set_resp_code((8),0);
  • _set_no_device(2);
  • send(151,S); if(_ivar_value(16804)>2) { ACKNOWLEDGE("|en|The DD revision is not compatible with the firmware in the device.\nContact your Fisher sales office for an upgrade to your DD."); return; };
  • if(((_ivar_value(16532)&0x18)>0)) { ACKNOWLEDGE("|en|This instrument's Relay Type is set to a High Cv Spool Valve. This is not supported by this version of the DD. Please use a version of ValveLink Software or ValveLink Mobile that supports the High Cv Relay Type to properly configure this instrument."); process_abort(); };
  • q = 0.9; fRoundingFactor = 0.0; if(q < 1) fRoundingFactor = 0.5;
  • send_trans(129,35,S); if(0x02==_ivar_value(16509)) { ACKNOWLEDGE("|en|This action cannot be performed in Press Control."); return; } send(138,S); if((_ivar_value(16789)&0x01)>0) { ACKNOWLEDGE("|en|The instrument is reporting a Tvl Sensor failure."); return; };
  • send_trans(129,0,S); _vassign(16452,16427); save_values(); if(1==_ivar_value(167)) { ACKNOWLEDGE("|en|Protection must be disabled to perform this operation."); process_abort(); } if((_ivar_value(16427))) { if(((_ivar_value(16465) & 0x01C0) == 0x0100)) { _get_dev_var_value(("|en|WARNING! Output will not track input and the SIS safety function will be disabled when Instrument Mode is Out of Service."),0,16452); } else { _get_dev_var_value(("|en|WARNING! Output will not track input when Instrument Mode is Out of Service."),0,16452); } save_values(); if(_ivar_value(16452)>0) { ACKNOWLEDGE("|en|Instrument Mode is still In Service."); process_abort(); } else { send_trans(130,6,S); } } send_trans(129,0,S); if((1==_ivar_value(16472)) || (5==_ivar_value(16472))) { if(1==_ivar_value(16472)) { ACKNOWLEDGE("|en|Access restricted\n\nInstrument was set to 'Out of Service' by a secondary master."); } else { ACKNOWLEDGE("|en|Access restricted\n\nInstrument was set to 'Out of Service' by a primary master."); } process_abort(); } _add_abort_method(17167); DELAY(1,"|en|Please wait...");
  • send(138,S); send_trans(129,0,S); if(((_ivar_value(16790) & 0x31) > 0) || (_ivar_value(10098) == 0)) { send_trans(142,8,S); send_trans(142,1,S); send_trans(157,0,S); if(1 != _ivar_value(167)) { _iassign(16622,(0)); save_values(); send_trans(130,75,S); } if((_ivar_value(171) == 0)) _iassign(16453,(2)); else _iassign(16453,(3)); save_values(); send_trans(130,7,S); send_trans(129,0,S); DELAY(1,"|en|Please wait..."); };
  • send(138,S); if((_ivar_value(171) > 0)) { send(3,S); while (_fvar_value(237) < 3.8) { if(select_from_list("|en|Input must exceed 3.8 mA (7.8 mA if loop powered local control panel is attached.)", ids,"|en|Adjust Analog Input and continue;Exit")) { process_abort(); } send(3,S); } };
  • if(1 - SELECT_FROM_LIST("|en|WARNING! Calibration will cause sudden changes in instrument output and loss of process control.","|en|Continue;Exit"))
  • {
  • DELAY(1,"|en|Please wait...");
  • _vassign(16942,10098);
  • if((_ivar_value(171) > 0))
  • {
  • _iassign(16641,(3));
  • }
  • else
  • {
  • _iassign(16641,(2));
  • }
  • send_trans(130, 78, S);
  • send(138,S); q0 = 0; q1 = 1; while((_ivar_value(16792) & 0x08) > 0) { if(1 == q1) { send_trans(129,35,S); if((1 == _ivar_value(16464)) && ((_ivar_value(16794)) & 0x08)) { q0 = SELECT_FROM_LIST("|en|The Auxiliary Terminal Action is configured for a connected local control panel, but no local control panel is detected. You will need to correct the Auxiliary Terminal Action configuration or exit and fix the connected local control panel.","|en|Change Configuration;Exit"); if(0 == q0) { q == SELECT_FROM_LIST("|en|Aux Term Action","|en|Disabled;PST Diagnostic"); _iassign(16464,((2 * q))); send_trans(130,89,S); } } } if(0 == q0) { q0 = SELECT_FROM_LIST("|en|Instrument is locked in safety and must be unlocked before proceeding.\nWARNING! Unlocking the device may cause the valve to move.","|en|Unlock;Exit"); } if(1 == q0) { remove_all_abort(); _add_abort_method(17167); process_abort(); } if(1 == q1) { q2 = _ivar_value(16529); if(2 == q2) q2 = -1; q2 = q2 * ((-2 * _ivar_value(16508)) + 1); if(0 == 0) { if((_ivar_value(171) == 0)) { if(2 == _ivar_value(16529)) { qa = 0.0; } else { qa = 1.0; } _fassign(16640,(qa)); send_trans(130,77,S); } _iassign(16452,(1)); save_values(); send_trans(130,6,S); } } if((_ivar_value(171) == 0)) { if(1 == q1) { q1 = 2; _fassign(16405,((qa * 100.0))); save_values(); send_trans(130,4,S); } if(1 == _ivar_value(16464)) { ACKNOWLEDGE("|en|To unlock the device, press the button next to GREEN light on Local Control Panel for more than 1/2 sec."); } else { ACKNOWLEDGE("|en|To unlock the device, short the Aux. terminals between 3 and 5 secs."); } } else { if(1 == _ivar_value(16464)) { if(q2 < 0) { ACKNOWLEDGE("|en|To unlock the device\n1. Set the input current to 8 mA if the Local Control Panel is loop powered or 4 mA if the LCP has a seperate power supply.\n2. Press the button next to GREEN light on Local Control Panel for more than 1/2 sec."); } else { ACKNOWLEDGE("|en|To unlock the device\n1. Set the input current to 20 mA.\n2. Press the button next to GREEN light on Local Control Panel for more than 1/2 sec."); } } else { if(q2 < 0) { ACKNOWLEDGE("|en|To unlock the device\n1. Set the input current to 4 mA.\n2. Short the Aux. terminals between 3 and 5 secs."); } else { ACKNOWLEDGE("|en|To unlock the device\n1. Set the input current to 20 mA.\n2. Press the button next to GREEN light on Local Control Panel for more than 1/2 sec."); } } } send(138,S); } if(0 == 0) { _iassign(16452,(0)); save_values(); send_trans(130,6,S); send_trans(129,0,S); };
  • if(((_ivar_value(16496) & 0x01) > 0)) { if((_ivar_value(171) == 0)) { ACKNOWLEDGE("|en|The Hardware Shutdown DIP switch on the main electronics board must be Disabled to operate in multidrop mode."); process_abort(); } else { send(3,S); if((3 == _ivar_value(16496))) { while (_fvar_value(237) > 9.0) { if(select_from_list("|en|Adjust the Analog Input current to move the valve to its normal (not tripped) position.", ids,"|en|Adjust Analog Input and continue;Exit")) { process_abort(); } send(3,S); } } if((1 == _ivar_value(16496))) { while (_fvar_value(237) < 15.0) { if(select_from_list("|en|Adjust the Analog Input current to move the valve to its normal (not tripped) position.", ids,"|en|Adjust Analog Input and continue;Exit")) { process_abort(); } send(3,S); } } } } else { send(138,S); if((_ivar_value(171) > 0)) { send(3,S); while (_fvar_value(237) < 3.8) { if(select_from_list("|en|Input must exceed 3.8 mA (7.8 mA if loop powered local control panel is attached.)", ids,"|en|Adjust Analog Input and continue;Exit")) { process_abort(); } send(3,S); } }; };
  • if(!((!(inst_level & 0x0008)))) { i = 0; send(138,S); if((_ivar_value(16789) & 0x02) > 0) { q = _ivar_value(16539); _iassign(16539,(0x07)); send_trans(130,134,S); send_trans(129,30,S); if(0x7FA00000==_lvar_value(16940)) i=0x01; if(0x7FA00000==_lvar_value(16938)) i=i | 0x02; if(0x7FA00000==_lvar_value(16939)) i=i | 0x04; _iassign(16539,(q)); send_trans(130,134,S); if(((i & 0x01)>0) && ((_ivar_value(16465) & 0x0200) == 0x0200)) { ACKNOWLEDGE("|en|Supply Press Sensor Failure occurred"); } if((i & 0x02)>0) { ACKNOWLEDGE("|en|Press A Sensor Failure occurred"); } if((i & 0x04)>0) { ACKNOWLEDGE("|en|Press B Sensor Failure occurred"); } } switch(_ivar_value(16434)) { case 7: if(((_ivar_value(16532)&0x18)>0)) qb=2.41; else qb=0.689; qd=0.1; break; case 12: if(((_ivar_value(16532)&0x18)>0)) qb=241.3; else qb=68.9; qd=10.0; break; case 10: if(((_ivar_value(16532)&0x18)>0)) qb=2.46; else qb=0.703; qd=0.1; break; default: if(((_ivar_value(16532)&0x18)>0)) qb=35.0; else qb=10.0; qd=5.0; break; } if(!(i & 0x01)) { qa = _fvar_value(16947); _fassign(16947,((qb * 15.0))); send_trans(130,91,S); send(42,S); send_trans(129,29,S); q=0; while ((_fvar_value(16439)send_trans(129,29,S); q=SELECT_FROM_LIST("|en|The Supply Press is not sufficient to move the valve.","|en|Adjust Supply and retry;Abort;Continue with Current Press"); } qc=_fvar_value(16439); if (qc>qa) { qa=qc + qb / 2.0; q0=qa / qd; qa=q0 * qd; } _fassign(16947,(qa)); send_trans(130, 91,S); send_command(42); if (1==q) process_abort(); if(_fvar_value(16439)| 0x08; } } };
  • if(((_ivar_value(16530) & 0x01) > 0) && (((_ivar_value(16532)&0x18)>0) == 0))
  • {
  • ACKNOWLEDGE ("|en|It is recommended to run relay adjustment for double acting relays in new installations.");
  • if(1 - SELECT_FROM_LIST("|en|Run Relay Adjust now?","|en|Yes;No"))
  • {
  • if((i & 0x07) > 0)
  • {
  • ACKNOWLEDGE("|en|Relay Adjust requires all three press sensors.");
  • }
  • else
  • {
  • if(0x08 == (i & 0x08))
  • {
  • ACKNOWLEDGE("|en|The Supply Press is not sufficient to perform the relay adjust.");
  • }
  • else
  • {
  • DELAY(1,"|en|Please wait..."); send_trans(142,0,S); send_trans(129,32,S); save_values(); remove_all_abort(); _add_abort_method(17203); ACKNOWLEDGE("|en|Remove the instrument front cover. Then continue."); DELAY(1,"|en|Please wait..."); _iassign(16453,(0)); send_trans(130,7,S); send_trans(129,0,S); _iassign(16478,(4062)); send_trans(130,15,S); _iassign(16476,(9137)); send_trans(130,14,S); send_trans(129,6,S); if((_ivar_value(16617) > 13312) || (_ivar_value(16617) < 9216)) { _iassign(16617,(12032)); send_trans(130,74,S); } _fassign(16941,(50.0)); save_values(); send_trans(130,5,S); q0=1; while(q0 == 1) { for(q=15; q>0; q--) { send_trans(129,5,S); ids[0] = 16454; switch(_ivar_value(16434)) { case 7: qa = 100 * relay_adjust * 14.50377; break; case 12: qa = 100 * relay_adjust * 0.1450377; break; case 10: qa = 100 * relay_adjust * 14.2233; break; default: qa = 100 * relay_adjust; break; } delay(1,"|en|Rotate relay adjust disc until value = 50 - 70%\n%[L]{0}: %[.1f]{qa} %\nTime remaining (sec): %{q}", ids); } q0 = !(SELECT_FROM_LIST("|en|Continue monitoring the relay adjustment for another 15 secs?","|en|Yes;No")); } send_trans(142,1,S); DELAY(1,"|en|Please wait..."); _vassign(16453,16942); send_trans(130,7,S); send_trans(129,0,S); _vassign(16478,16479); send_trans(130,15,S); _vassign(16476,16477); send_trans(130,14,S); _vassign(16617,16619); send_trans(130,74,S); remove_all_abort(); _add_abort_method(17167); ACKNOWLEDGE("|en|Replace the instrument front cover. Then continue.");
  • }
  • }
  • DELAY(2,"|en|Returning to Manual Tvl Calib...:");
  • }
  • }
  • if(SELECT_FROM_LIST("|en|Is it OK to MOVE the valve NOW to set the tvl sensor motion?","|en|Yes;No") == 0)
  • {
  • DELAY(1,"|en|Please wait..."); _iassign(16622,(1)); save_values(); send_trans(130,75,S); send_trans(129,25,S); q1 = _ivar_value(16655); if(((_ivar_value(16532)&0x01) > 0)) { _iassign(16650,(0x3fff)); } else { _iassign(16650,(0x0000)); } save_values(); send_trans(130,79,S); q = 0; q0 = 0; q4 = 0; while(q4 == 0) { DELAY_TIME(3); send_trans(129,29,S); save_values(); send_trans(129,25,S); save_values(); q3 = _ivar_value(16655); if(((((_ivar_value(16532)&0x01) > 0)) && (_fvar_value(16437) < 5.0)) || ((((_ivar_value(16532)&0x01) > 0) == 0) && (_fvar_value(16433) < 5.0))) { q0++; } else { q0 = 0; } if((q3 - q1) >= 0.000000) q6 = (q3 - q1); else q6 = -1.0 * (q3 - q1); if((q0 >= 2) || (q > 120) || (q6 > 700)) { q4 = 1; } else { q++; } } if(q6 > 700) { if((q1 > 16) && (q3 > 16) && (q1 < 12272) && (q3 < 12272)) { if(((((_ivar_value(16532)&0x01) > 0) == 0) && (q1 < q3)) || ((((_ivar_value(16532)&0x01) > 0)) && (q1 > q3))) { _iassign(16511,((_ivar_value(16511) ^ 1))); send_trans(130,96,S); } q5 = 1; } } else { if(((_ivar_value(16532)&0x01) > 0)) { _iassign(16650,(0x0000)); } else { _iassign(16650,(0x3fff)); } save_values(); send_trans(130,79,S); q = 0; q4 = 0; while(q4 == 0) { DELAY_TIME(3); send_trans(129,25,S); save_values(); q2 = _ivar_value(16655); if((q2 - q3) >= 0.000000) q6 = (q2 - q3); else q6 = -1.0 * (q2 - q3); if((q6 > 700) || (q > 120)) { q4 = 1; } else { q++; } } if((q2 > 16) && (q3 > 16) && (q2 < 12272) && (q3 < 12272) && (q6 > 700)) { if(((((_ivar_value(16532)&0x01) > 0) == 0) && (q3 > q2)) || ((((_ivar_value(16532)&0x01) > 0)) && (q3 < q2))) { _iassign(16511,((_ivar_value(16511) ^ 1))); send_trans(130,96,S); } q5 = 1; } } _iassign(16622,(0)); save_values(); send_trans(130,75,S); if(q5 != 1) { ACKNOWLEDGE("|en|Tvl Sensor Motion could not be determined."); ACKNOWLEDGE("|en|The Supply Press could be low or the tvl sensor or feedback connection could be out of adjustment."); _get_dev_var_value(("|en|Tvl Sensor Motion"),0,16511); } send(42,S);
  • }
  • DELAY(1,"|en|Please wait...");
  • if(((_ivar_value(16532)&0x18)>0))
  • {
  • _iassign(16524,(0));
  • _iassign(16556,(0));
  • save_values();
  • send_trans(130, 30, S);
  • send_trans(130, 42, S);
  • }
  • if(((_ivar_value(16532)&0x18)>0))
  • {
  • ctrl_mode = 2;
  • }
  • else
  • {
  • ctrl_mode = 0;
  • if((_ivar_value(171) > 0) && ((_ivar_value(16496) & 0x01) == 0))
  • {
  • ctrl_mode = 3 * (1 - SELECT_FROM_LIST("|en|Select source for moving valve","|en|Analog;Digital"));
  • }
  • }
  • send_trans(129, 32,S);
  • _iassign(16622,(0));
  • save_values();
  • send_trans(130, 75,S);
  • remove_all_abort();
  • _add_abort_method(17203);
  • send_trans(129, 35,S);


请登录以获得完整内容