Skip to content

Releases: underautomation/Fanuc.NET

v3.3.0.0

17 Dec 23:41

Choose a tag to compare

  • Add GetEncoding method to StringUtils for retrieving encoding by controller language
namespace UnderAutomation.Fanuc.Common;

public static class StringUtils {
    public static Encoding GetEncoding(Languages language);
}
  • Fix Telnet program Breakpoint commands for Japanese and Chinese controllers

  • Set FTP encoding according to robot controller language

v3.1.1.0

16 Dec 14:01

Choose a tag to compare

  • Added support for Japanese and Chinese languages. You can now set the language in the Connect Parameters.
var robot = new FanucRobot();

var parameters = new ConnectParameters("192.168.0.1");
parameters.Language = Languages.English; // or Languages.Japanese, or Languages.Chinese

robot.Connect(parameters);
  • The SDK now supports Shift-JIS and GB2312 encodings for Japanese and Chinese string data.
  • Throws a ConnectException when the connection fails instead of a generic exception. It now includes more details about the failure and the protocol that caused it.

v3.0.0.0

03 Dec 15:30

Choose a tag to compare

Major new feature

Added forward and inverse kinematics support for CRX cobots and other Fanuc robots with a traditional spherical wrist.

using UnderAutomation.Fanuc.Kinematics;

JointsPosition position = new JointsPosition(10, 20, 120, 0, 0, 25);

// ---- Get DH parameters ----
// Example: CRX-10iA/L
DhParameters dh = new DhParameters(-540, 150, -160, 0, 710, 0);

// From a known arm model
dh = DhParameters.FromArmKinematicModel(ArmKinematicModels.CRX10iA);

// From OPW parameters: M10iA/7L
dh = DhParameters.FromOpwParameters(0.15, -0.20, 0.60, 0.86, 0.10);

// From an online robot (SYSMOTN file)
dh = DhParameters.FromSymotnFile(_robot.Ftp.KnownVariableFiles.GetSymotnFile())[0];

// ---- Forward kinematics ----
CartesianPosition pose = KinematicsUtils.ForwardKinematics(position, dh);

// ---- Inverse kinematics with multiple solutions ----
JointsPosition[] positions = KinematicsUtils.InverseKinematics(pose, dh);

Minor fixes

  • SNPX: Fixed writing of position registers and position variables where the configuration was always written with the default value.
  • SNPX: Fixed reading of position register configuration so that it uses the correct Turn4 to Turn6 values.
  • Removed properties T4, T5, T6 from UnderAutomation.Fanuc.Common.ExtendedCartesianPosition. This information is now available in the Configuration property.
  • Renamed and fixed properties Turn1, Turn2, Turn3 to Turn4, Turn5, Turn6 in UnderAutomation.Fanuc.Common.Configuration so they match the correct axes.
  • Allowed connection to ROBOGUIDE by setting both the robot folder path and the path to the services.txt file.

v2.3.0.0

28 Oct 20:30

Choose a tag to compare

  • FTP Error List : add occuring time and parse error code

v2.2.0.0

27 Oct 09:17

Choose a tag to compare

  • SNPX / TELNET : Allow writing empty string variables

v2.1.0.0

23 Oct 21:03

Choose a tag to compare

  • SNPX : implement direct writing of variables without assignment
_robot.Snpx.SetVariable("SYSTEM_VARIABLE_NAME", NewValue);

v2.0.0.0

30 Sep 14:12

Choose a tag to compare

  • Experimental support for RMI (Remote Motion Interface)

v1.20.0.1

26 Sep 09:09

Choose a tag to compare

  • Telnet : add capability to send a custom KCL command
robot.Telnet.SendCustomCommand("My KCL Command");
  • SNPX : Add active alarm and alarm history access
RobotAlarm firstActiveAlarm = robot.Snpx.ActiveAlarm.Read(1);
RobotAlarm secondAlarmInHistory = robot.Snpx.AlarmHistory.Read(1);

v1.20.0.0

12 Sep 21:25

Choose a tag to compare

  • Telnet : add capability to send a custom KCL command
robot.Telnet.SendCustomCommand("My KCL Command");
  • SNPX : Add active alarm and alarm history access
RobotAlarm firstActiveAlarm = robot.Snpx.ActiveAlarm.Read(1);
RobotAlarm secondAlarmInHistory = robot.Snpx.AlarmHistory.Read(1);

v1.19.0.0

01 Jul 13:43

Choose a tag to compare

  • SNPX : Enable batch reading of registers and variables
NumericRegistersBatchAssignment assignment = _robot.Snpx.NumericRegisters.CreateBatchAssignment(1, 40);

float[] values = assignment.Read();