/// <summary> /// ReadServo Load and Current Details on All axis /// </summary> /// <param name="current">Current in Amp</param> /// <returns>Servo Load</returns> public static string ReadServoLoadCurrentDetails(ushort handle, out string current) { current = string.Empty; string buff = ""; //string sb = ""; string DL = "#"; short[] types = { 0, 1, 2 }; /* * cls = 2 (Servo) * type = 0 : Servo load meter * 1 : Load current (% unit) * 2 : Load current (Ampere unit) */ short MAX_AXIS = FocasLibBase.MAX_AXIS; short len = MAX_AXIS; FocasLibBase.ODBAXDT odbaxdt = new FocasLibBase.ODBAXDT(); List <string> pos = new List <string>(); //1st parameter - Position(=1), Servo(=2), Spindle(=3) //4th parameter - After execution, "(*len)" will have the actual number of axes. short ret = FocasLib.cnc_rdaxisdata(handle, 2, types, (short)types.Length, ref len, odbaxdt); if (ret == 0) { MAX_AXIS = len; get_actual_axis_value(odbaxdt, ref pos, len, types.Length); int i; //Servo load meter for (i = 0 * MAX_AXIS; i < 0 * MAX_AXIS + len; i++) { buff += pos[i]; buff += ","; } buff += DL; // Load current (% unit) for (i = 1 * MAX_AXIS; i < 1 * MAX_AXIS + len; i++) { buff += pos[i]; buff += ","; } buff += DL; //Load current (Ampere unit) for (i = 2 * MAX_AXIS; i < 2 * MAX_AXIS + len; i++) { buff += pos[i]; buff += ","; current += pos[i]; current += ","; } } return(buff); }
private static void get_actual_axis_value(FocasLibBase.ODBAXDT odbaxdt, ref List <string> pos, short len, int types) { pos.Add(FocasData.get_ax_val2(odbaxdt.data1.data, odbaxdt.data1.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data2.data, odbaxdt.data2.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data3.data, odbaxdt.data3.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data4.data, odbaxdt.data4.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data5.data, odbaxdt.data5.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data6.data, odbaxdt.data6.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data7.data, odbaxdt.data7.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data8.data, odbaxdt.data8.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data9.data, odbaxdt.data9.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data10.data, odbaxdt.data10.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data11.data, odbaxdt.data11.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data12.data, odbaxdt.data12.dec).ToString()); if (types == 3 && len == 4) { return; } pos.Add(FocasData.get_ax_val2(odbaxdt.data13.data, odbaxdt.data13.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data14.data, odbaxdt.data14.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data15.data, odbaxdt.data15.dec).ToString()); if (types == 3 && len == 5) { return; } pos.Add(FocasData.get_ax_val2(odbaxdt.data16.data, odbaxdt.data16.dec).ToString()); if (types == 4 && len == 4) { return; } pos.Add(FocasData.get_ax_val2(odbaxdt.data17.data, odbaxdt.data17.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data18.data, odbaxdt.data18.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data19.data, odbaxdt.data19.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data20.data, odbaxdt.data20.dec).ToString()); if (types == 4 && len == 5) { return; } pos.Add(FocasData.get_ax_val2(odbaxdt.data21.data, odbaxdt.data21.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data22.data, odbaxdt.data22.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data23.data, odbaxdt.data23.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data24.data, odbaxdt.data24.dec).ToString()); pos.Add(FocasData.get_ax_val2(odbaxdt.data25.data, odbaxdt.data25.dec).ToString()); }