Loading…

方法名称: tvl_manual_calib_method

方法ID: 0x434B

方法标签: Manual Calibration

方法描述:


  • {
  • float qa, qb, qc, qd, qe; int q, q0, q1, q2, q3; 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, q23, q24, qj, qk; float qa0, qa1, qa2, qa3, qa4, qa5, qa6, qa7, qa8, qa9, qb0, qb1, qb2, qb3, qb4, qb5, qx;
  • int ctrl_mode,
  • i,
  • i1,
  • i2,
  • feedback,
  • pass,
  • s,
  • ns,
  • t,
  • 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) > 1) { ACKNOWLEDGE("|en|The DD revision is not compatible with the firmware in the device.\nContact your Fisher sales office for an upgrade to your Device Description."); return; };
  • q = 0.9; fRoundingFactor = 0.0; if(q < 1) fRoundingFactor = 0.5;
  • send_trans(129,34,S); if(0x02 == _ivar_value(16509)) { ACKNOWLEDGE("|en|This action cannot be performed in Pressure Control."); return; } send(138,S); if((_ivar_value(16789) & 0x01) > 0) { ACKNOWLEDGE("|en|The instrument is reporting a Travel 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,6,S); send_trans(142,1,S); send_trans(157,0,S); if(1 != _ivar_value(167)) { _iassign(16622,(0)); save_values(); send_trans(130,74,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..."); };
  • 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);
  • i = 0; send(138,S); if((_ivar_value(16789) & 0x02) > 0) { send_trans(142,0,S); send_trans(129,29,S); send_trans(142,1,S); if(0x7FA00000==_lvar_value(16940)) i=0x01; if(0x7FA00000==_lvar_value(16938)) i=i | 0x02; if(0x7FA00000==_lvar_value(16939)) i=i | 0x04; if(((i & 0x01)>0) && ((_ivar_value(16465) & 0x0200) == 0x0200)) { ACKNOWLEDGE("|en|Supply Pressure Sensor Failure occurred"); } if((i & 0x02)>0) { ACKNOWLEDGE("|en|Pressure A Sensor Failure occurred"); } if((i & 0x04)>0) { ACKNOWLEDGE("|en|Pressure B Sensor Failure occurred"); } } switch(_ivar_value(16434)) { case 7: qb=0.689; qd=0.1; break; case 12: qb=68.9; qd=10.0; break; case 10: qb=0.703; qd=0.1; break; default: qb=10.0; qd=5.0; break; } if(!(i & 0x01)) { qa = _fvar_value(16947); _fassign(16947,((qb * 15.0))); send_trans(130,88,S); send(42,S); send_trans(142,0,S); send_trans(129,28,S); q=0; while ((_fvar_value(16439)send_trans(129,28,S); q=SELECT_FROM_LIST("|en|The Supply Pressure is not sufficient to move the valve.","|en|Adjust Supply and retry;Abort;Continue with Current Pressure"); } send_trans(142,1,S); qc=_fvar_value(16439); if (qc>qa) { qa=qc + qb / 2.0; q0=qa / qd; qa=q0 * qd; } _fassign(16947,(qa)); send_trans(130, 88,S); send_command(42); if (1==q) process_abort(); if(_fvar_value(16439)| 0x08; } };
  • send(138,S); q0 = 0; q1 = 1; while((_ivar_value(16792) & 0x08) > 0) { if(1 == q1) { send_trans(129,34,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 Terminal Action","|en|Disabled;PST Diagnostic"); _iassign(16464,((2 * q))); send_trans(130,86,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,78,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 second."); } else { ACKNOWLEDGE("|en|To unlock the device, short the Aux. terminals between 3 and 5 seconds."); } } 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 second."); } 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 second."); } } 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 seconds."); } 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 second."); } } } 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(16418) > 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(16418) < 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(16418) < 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(((_ivar_value(16530) & 0x01) > 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 pressure sensors.");
  • }
  • else
  • {
  • if(0x08 == (i & 0x08))
  • {
  • ACKNOWLEDGE("|en|The Supply Pressure is not sufficient to perform the relay adjust.");
  • }
  • else
  • {
  • DELAY(1,"|en|Please wait..."); send_trans(142,0,S); send_trans(129,31,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,73,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; delay(1,"|en|Rotate relay adjustment disc until value is 50 - 70 %\n%[L]{0}: %{0}\n\nTime remaining (sec): %{q}", ids); } q0 = !(SELECT_FROM_LIST("|en|Continue monitoring the relay adjustment for another 15 seconds?","|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,73,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...:");
  • }
  • }
  • DELAY(1,"|en|Please wait...");
  • 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"));
  • }
  • i = 0; send(138,S); if((_ivar_value(16789) & 0x02) > 0) { send_trans(142,0,S); send_trans(129,29,S); send_trans(142,1,S); if(0x7FA00000==_lvar_value(16940)) i=0x01; if(0x7FA00000==_lvar_value(16938)) i=i | 0x02; if(0x7FA00000==_lvar_value(16939)) i=i | 0x04; if(((i & 0x01)>0) && ((_ivar_value(16465) & 0x0200) == 0x0200)) { ACKNOWLEDGE("|en|Supply Pressure Sensor Failure occurred"); } if((i & 0x02)>0) { ACKNOWLEDGE("|en|Pressure A Sensor Failure occurred"); } if((i & 0x04)>0) { ACKNOWLEDGE("|en|Pressure B Sensor Failure occurred"); } } switch(_ivar_value(16434)) { case 7: qb=0.689; qd=0.1; break; case 12: qb=68.9; qd=10.0; break; case 10: qb=0.703; qd=0.1; break; default: qb=10.0; qd=5.0; break; } if(!(i & 0x01)) { qa = _fvar_value(16947); _fassign(16947,((qb * 15.0))); send_trans(130,88,S); send(42,S); send_trans(142,0,S); send_trans(129,28,S); q=0; while ((_fvar_value(16439)send_trans(129,28,S); q=SELECT_FROM_LIST("|en|The Supply Pressure is not sufficient to move the valve.","|en|Adjust Supply and retry;Abort;Continue with Current Pressure"); } send_trans(142,1,S); qc=_fvar_value(16439); if (qc>qa) { qa=qc + qb / 2.0; q0=qa / qd; qa=q0 * qd; } _fassign(16947,(qa)); send_trans(130, 88,S); send_command(42); if (1==q) process_abort(); if(_fvar_value(16439)| 0x08; } };
  • send_trans(129, 31,S);
  • save_values();
  • remove_all_abort();
  • _add_abort_method(17203);
  • send_trans(129, 34,S);
  • send_trans(129, 6,S);
  • send_trans(129, 24,S);
  • _iassign(16481,(_ivar_value(16480) ));
  • _iassign(16483,(_ivar_value(16482) ));
  • _iassign(16652,(_ivar_value(16651) ));
  • send_trans(142, 0,S);
  • _iassign(16453,(ctrl_mode));
  • send_trans(130, 7,S);
  • _iassign(16478,(0));
  • send_trans(130, 15,S);
  • _iassign(16476,(12288));
  • send_trans(130, 14,S);
  • send_trans(129, 6,S);
  • if((_ivar_value(16617) > 13312) || (_ivar_value(16617) < 9216))
  • {
  • _iassign(16617,(11520));
  • send_trans(130, 73,S);
  • }
  • pass = 1;
  • t = 1;
  • ivp = 50.0;
  • s = 6;
  • ns = 1;
  • while (s != 0)
  • {
  • send_trans(129, 24,S);
  • save_values();
  • switch (s)
  • {
  • case 1:
  • send_trans(142,7,S);
  • DELAY(2,"|en|Please wait...");
  • send_trans(129, 23,S);
  • save_values();
  • _vassign(16617,16649);
  • send_trans(130, 73,S);
  • feedback = _ivar_value(16475);
  • if(6 == feedback)
  • {
  • t = 4;
  • ivp = 50;
  • s = 6;
  • ns = 2;
  • }
  • else
  • {
  • s = 2;
  • }
  • DELAY(1,"|en|Please wait...");
  • break;
  • case 2:
  • t = 0;
  • ivp = 25;
  • s = 6;
  • ns = 3;
  • break;
  • case 3:
  • i1 = _ivar_value(16655);
  • t = 3;
  • ivp = 75;
  • s = 6;
  • ns = 4;
  • break;
  • case 4:
  • i2 = _ivar_value(16655);
  • if(_ivar_value(16508))
  • {
  • _iassign(16476,(i1));
  • _iassign(16478,(i2));
  • }
  • else
  • {
  • _iassign(16476,(i2));
  • _iassign(16478,(i1));
  • }
  • send_trans(130, 14,S);
  • send_trans(130, 15,S);
  • s = 0;
  • if((6 == feedback) && (1 == pass))
  • {
  • t = 2;
  • ivp = 50;
  • s = 6;
  • ns = 5;
  • pass = 2;
  • }
  • break;
  • case 5:
  • send_trans(129, 30,S);
  • x = (50.0 - _fvar_value(16441)) * 117.7;
  • if(_ivar_value(16508)) x = x * -1.0;
  • _iassign(16651,(_ivar_value(16651) + x));
  • send_trans(130, 81,S);
  • s = 2;
  • break;
  • case 6:
  • if(4 == t)
  • {


请登录以获得完整内容