#OnInit debug = 0; file_delete("Modbus_HuanYang_VFD_Error_LOG.txt"); _VFD = nan(); _VFD_status = 1; current_speed = _hw_spindle; cnt_error_fwd = 0; cnt_error_fwd_speed = 0; cnt_error_rev = 0; cnt_error_rev_speed = 0; retry_enable = 0; retry_max_count = 0; _time = 0; _current_time = 0; _start_time = 0; _stopwatch = 0; _time_ok = 0; ;============================================================================== #Loop _current_time = datetime(); _time = _current_time - _start_time; if(_stopwatch, if(_time > 3.5, _time_ok = 1, _time_ok = 0 ) ); if(abs(_hw_spindle) != current_speed, exec(_VFD_status = 0, _VFD = _hw_spindle)); if(_VFD_status != 0, return()); if(!(isnum(_VFD)), return()); _VFD_status = 1; speed = _VFD; _VFD = nan(); if(speed == 0, dir = 0); if(speed > 0, dir = 1); if(speed < 0, dir = -1); current_speed = abs(speed); if(dir == 0, exec('#Stop')); if(dir == 1, exec('#Fwd')); if(dir == -1, exec('#Rev')); ;============================================================================== #Fwd print("#Fwd entry"); _VFD_status = 11; print("VFD Status: ", _VFD_status); .rc = exec(current_speed, '#Modbus_HuanYang_VFD_control_speed'); if(.rc != 0, exec( if(retry_max_count > 2, exec( print("Error FWD speed counter: ", retry_max_count), retry_enable = 0, retry_max_count = 0, _VFD_status = 11, _VFD = nan(), return() ) ), retry_max_count = retry_max_count + 1, fhnd = file_open("Modbus_HuanYang_VFD_Error_LOG.txt"), file_append(fhnd, year(datetime()),"-", day(datetime()),"-", month(datetime()),"-", hour(datetime()),":", minute(datetime()),":", second(datetime()), " Error FWD speed: ", retry_max_count, "\n"), file_flush(fhnd), file_close(fhnd), print("Error FWD speed ", retry_max_count ), _VFD_status = 0, _VFD = speed, return() ) ); retry_max_count = 0; _VFD = nan(); ;================= _VFD_status = 12; print("VFD Status: ", _VFD_status); .rc = exec(1, '#Modbus_HuanYang_VFD_control'); if(.rc != 0, exec( if(retry_max_count > 2, exec( print("Error FWD counter: ", retry_max_count), retry_enable = 0, retry_max_count = 0, _VFD_status = 12, _VFD = nan(), return() ) ), retry_max_count = retry_max_count + 1, fhnd = file_open("Modbus_HuanYang_VFD_Error_LOG.txt"), file_append(fhnd, year(datetime()),"-", day(datetime()),"-", month(datetime()),"-", hour(datetime()),":", minute(datetime()),":", second(datetime()), " Error FWD: ", retry_max_count, "\n"), file_flush(fhnd), file_close(fhnd), print("Error FWD ", retry_max_count), _VFD_status = 0, _VFD = speed, return() ) ); retry_enable = 0; retry_max_count = 0; _VFD = nan(); _VFD_status = -1; print("VFD Status: ", _VFD_status); ;============================================================================== #Rev print("#Rev entry: ", "VFD: ", _VFD); _VFD_status = 21; print("VFD Status: ", _VFD_status); .rc = exec(current_speed,'#Modbus_HuanYang_VFD_control_speed'); if(.rc != 0, exec( if(retry_max_count > 2, exec( print("Error REV speed counter: ", retry_max_count), retry_enable = 0, retry_max_count = 0, _VFD_status = 21, _VFD = nan(), return() ) ), retry_max_count = retry_max_count + 1, fhnd = file_open("Modbus_HuanYang_VFD_Error_LOG.txt"), file_append(fhnd, year(datetime()),"-", day(datetime()),"-", month(datetime()),"-", hour(datetime()),":", minute(datetime()),":", second(datetime()), " Error REV speed: ", retry_max_count, "\n"), file_flush(fhnd), file_close(fhnd), print("Error REV speed ", retry_max_count), _VFD_status = 0, _VFD = speed, return() ) ); retry_enable = 0; retry_max_count = 0; _VFD = nan(); ;================= _VFD_status = 22; print("VFD Status: ", _VFD_status); .rc = exec(17, '#Modbus_HuanYang_VFD_control'); if(.rc != 0, exec( if(retry_max_count > 2, exec( print("Error REV counter: ", retry_max_count), retry_enable = 0, retry_max_count = 0, _VFD_status = 22, _VFD = nan(), return() ) ), retry_max_count = retry_max_count + 1, fhnd = file_open("Modbus_HuanYang_VFD_Error_LOG.txt"), file_append(fhnd, year(datetime()),"-", day(datetime()),"-", month(datetime()),"-", hour(datetime()),":", minute(datetime()),":", second(datetime()), " Error REV: ", retry_max_count, "\n"), file_flush(fhnd), file_close(fhnd), print("Error REV ", retry_max_count), _VFD_status = 0, _VFD = speed, return() ) ); retry_enable = 0; retry_max_count = 0; _VFD = nan(); _VFD_status = -1; print("VFD Status: ", _VFD_status); ;============================================================================== #Stop _VFD_status = 31; print("VFD Status: ", _VFD_status); .rc = exec(8, '#Modbus_HuanYang_VFD_control'); if(.rc != 0, exec( if(retry_max_count > 2, exec( print("Error STOP counter: ", retry_max_count), retry_max_count = 0, _VFD_status = 12, _VFD = nan(), return() ) ), retry_max_count = retry_max_count + 1, fhnd = file_open("Modbus_HuanYang_VFD_Error_LOG.txt"), file_append(fhnd, year(datetime()),"-", day(datetime()),"-", month(datetime()),"-", hour(datetime()),":", minute(datetime()),":", second(datetime()), " Error STOP: ", retry_max_count, "\n"), file_flush(fhnd), file_close(fhnd), print("Error STOP ", retry_max_count), _VFD_status = 0, _VFD = speed, return() ) ); retry_enable = 0; retry_max_count = 0; _VFD = nan(); _VFD_status = -1; print("VFD Status: ", _VFD_status);